導航:首頁 > 操作系統 > 單片機大液晶屏顯示數字

單片機大液晶屏顯示數字

發布時間:2022-12-21 04:13:30

A. c51單片機怎樣讓液晶顯示數字999

這是我的程序,不過 不同的板子程序是不一樣的,具體要看你的I/O口了
#include<reg52.h>
#define uchar unsigned char
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit la=P2^6;
sbit wela=P2^7;
void write_com(uchar);
void write_date(uchar);
void init();
void delay(uchar z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
init();
write_date('999');
while(1);
}
void init()
{
la=0;
wela=0;
lcdrs=0;
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);

}
void write_com(uchar com)
{
lcdrs=0;
P0=com;
delay(5);
lcden=0;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uchar date)
{
lcdrs=1;
P0=date;
delay(5);
lcden=0;
delay(5);
lcden=1;
delay(5);
lcden=0;
}

B. 做一個單片機液晶顯示數字的程序,程序沒錯,但是就是屏幕就是沒有顯示,麻煩大佬們看一看

程序只是沒有邏輯錯誤和語法錯誤,但液晶的控制貌似有些問題。給你一段1602的驅動程序做參考。
#define LCD1602_FLAG
#define LCD1602_PORT P1
#include<reg52.h>
#include<stddef.h>
#include"dtype.h"
sbit lcd1602_rs=P3^7;
sbit lcd1602_e=P3^5;
sbit lcd1602_rw=P3^6;
sbit lcd1602_busy=P1^7;
/*
************************************
* 函數名稱:lcd1602_CheckBusy()
* 函數功能:狀態查詢
************************************
*/
void lcd1602_CheckBusy()
{
do
{
lcd1602_busy=1;
lcd1602_rs=0;
lcd1602_rw=1;
lcd1602_e=0;
lcd1602_e=1;
}
while(lcd1602_busy);
}
/*
***************************************
* 函數名稱: lcd1602_WriteCmd()
* 函數功能:寫命令
* 入口參數:命令字
* 出口參數:無
***************************************
*/
void lcd1602_WriteCmd(const INT8U cmd)
{
lcd1602_CheckBusy();
lcd1602_rs=0;
lcd1602_rw=0;
lcd1602_e=1;
LCD1602_PORT=cmd;
lcd1602_e=0;
}
/*
*******************************************
* 函數名稱:lcd1602_WriteData()
* 函數功能:寫數據
* 入口參數:c--待寫數據
* 出口參數:無
*********************************************
*/
void lcd1602_WriteData(const INT8U c)
{
lcd1602_CheckBusy();
lcd1602_rs=1;
lcd1602_rw=0;
lcd1602_e=1;
LCD1602_PORT=c;
lcd1602_e=0;
}
/*
***********************************************
* 函數名稱:lcd1602_Init()
* 函數功能:初始化LCD
* 入口參數:無
* 出口參數:無
***********************************************
*/
void lcd1602_Init()
{
lcd1602_WriteCmd(0x38); //顯示模式為8位2行5*7點陣
lcd1602_WriteCmd(0x0f); //display enable,flag enable,flash enable,
lcd1602_WriteCmd(0x06); //flag move to right,screen don't move
lcd1602_WriteCmd(0x01); //clear screen
}
/*
************************************************
* 函數名稱:lcd1602_Display()
* 函數功能: 字元顯示
* 入口參數:ptr--字元或字元串指針
* 出口參數:無
* 說 明:用戶可通過以下方式來調用:
* 1)lcd1602_Display("Hello,world!");
* 2) INT8U 存儲類型 txt[]="要顯示的字元串";
* 或者 INT8U 存儲類型 txt[]={'t','x','t',..,'\0'};
* INT8U *ptr;
* ptr=&txt;
* lcd1602_Display(ptr);
* 或 lcd1602_Display(txt);
* 或 lcd1602_Display(&txt);
************************************************
*/
void lcd1602_Display(const INT8U *ptr)
{
INT8U data i=0;
INT8U *data q;
q=ptr;
lcd1602_WriteCmd(0x80);
while(q!=NULL && (*q!='\0') && i<16)
{
lcd1602_WriteData(*q);
q++;
i++;
}
lcd1602_WriteCmd(0xc0);
while(q!=NULL && (*q!='\0') && i>=16 && i<32)
{
lcd1602_WriteData(*q);
q++;
i++;
}
}

C. 單片機控制液晶屏顯示

解決方法:1.單片機更換為5V的單片機;2.液晶更換為3.3V的液晶;3.將單片機管腳高電平抬高至5V。
原因說明:我們現在所用的絕大多數的可編程晶元(這裡麵包含了你的單片機和液晶驅動晶元)均為CMOS晶元。5V供電的液晶屏,內部搭載了5V的CMOS驅動晶元來讓液晶屏顯示東西。CMOS器件有這樣一個規定:高電平,即數字信號「1」的電壓范圍是3.5V-5V,低電平,即數字信號「0」的電壓范圍是0-1.5V。在這兩個電壓范圍之外的,CMOS晶元將無法判別是高電平還是低電平。
所以,3.3V的單片機在輸出低電平時可以被液晶CMOS晶元識別,而輸出高電平時,單片機管腳為3.3V(單片機的工作電壓3.3V,無法輸出更高的電壓)這不在CMOS期間的電平識別范圍內,無法判別信號是0還是1。所以,液晶工作不正常。

D. 如何用51單片機在LCD12864上顯示數字

利用51單片機控制lcd12864顯示一串數字比如:123456789可...
際上很簡單,刷新而已,你讓他按一下就在程序里去一個數字,然後刷新lcd的顯示不就得了。

E. 單片機怎麼把一個實時的數字顯示到液晶屏12864(帶字型檔)上

可以直接賦值,代碼如下 ,
寫指令顯示那一行 void lcd_wcmd(0x80)第一行 ,
數據void lcd_wcmd(temp )

F. 51 單片機1602 液晶顯示數字

1602顯示要轉換為ANSI碼
如:
1602液晶要顯示數字5-----
把0x35送1602的顯示RAM(因為數字5的ANSI碼是0x35)

G. 51單片機lcd1602如何顯示數字變數

1602是可以顯示字元的,如'1','2'等,可以設置一個字元串,如char AA[]={'0123456789'}
那麼設置一個變數i, AA[i]就行了,

H. 用51單片機控制1602液晶顯示10進制數字~~

我自己函數庫裡面的,加點埠定義就o了unsigned char line1[16]={" Calculator "}; //液晶屏第一行內容
unsigned char line2[16]={" 0"}; //液晶屏第二行內容
unsigned char yuan[16];
unsigned char tab[]={'0','1','2','3','4','5','6','7','8','9'}; /********TIME DELAY********/
void delay5ms()
{unsigned int i; <br>for (i=0;i<1000;i++); <br>}

void delay50us()
{register int i; <br>for (i=0;i<20;i++); <br>}

void delay()
{unsigned char m,n; <br>for(m=50;m>0;m--) <br>for(n=255;n>0;n--);} /****************************************
函數名:WR_COM
功能:向FM1602C寫入控制字元
入口參數:控制字元
出口參數:
****************************************/
void wr_com(unsigned char comm)//控制字元寫入
{
LCDE=0;
RS=0;
RW=0;
LCDE=1;
Ddata=comm;
RS=0;
RW=0;
LCDE=0;
}
/****************************************
函數名:WR_DATA
功能:向FM1602C送入數據
入口參數:寫入字元
出口參數:
****************************************/
void wr_data(unsigned char dat)//數據寫入
{
LCDE=0;
RS=0;
RW=0;
RS=1;
RW=0;
LCDE=1;
Ddata=dat;
LCDE=0;
RS=0;
RW=0;
}
/****************************************
函數名:BUSYCHECK
功能:檢測FM1602C狀態
入口參數:
出口參數:i=0 空閑;i=1 忙
****************************************/
unsigned char busycheck()//忙狀態檢查
{
unsigned char i;
LCDE=0;
RS=0;
RW=0;
RS=0;
RW=1;
LCDE=1;
i=Ddata;
LCDE=0;
return(i);
}
/****************************************
函數名:INIT
功能:初始化FM1602C
入口參數:
出口參數:
特殊說明:顯示模式8位雙行顯示
AC加一計數,禁止畫面滾動
****************************************/
void init() //LCD初始化
{
wr_com(0x38); //顯示模式設置三次
delay5ms();
wr_com(0x38);
delay5ms();
wr_com(0x38);
delay5ms();
wr_com(0x01);
delay5ms();
busycheck();
delay5ms();
wr_com(0x06);
delay5ms();
busycheck();
delay50us();
wr_com(0x38);
delay50us();
busycheck();
delay50us();
wr_com(0x0c); //開啟畫面顯示
delay50us();
busycheck();
delay50us();
wr_com(0x40);
delay50us();
delay50us();
}

/****************************************
函數名:DISPLAY
功能:將雙行數據從P0口輸出
入口參數:
出口參數:
****************************************/
void display()
{
unsigned char i;

wr_com(0x80);
delay50us();
busycheck();
delay50us();
for(i=0;i<16;i++)
{
wr_data(line1[i]);
delay50us();
busycheck();
}

busycheck();
delay50us();

wr_com(0xc0);
delay50us();
busycheck();
delay50us();
for(i=0;i<16;i++)
{
wr_data(line2[i]);
delay50us();
busycheck();
}
}

I. 【單片機】如何用1602液晶顯示十六進制數

嗯,大概就是這個樣子...
可能會有拼寫錯誤,自己檢查下...
//-----------------------------------------
unsigned char hex_table[16] =
{
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
};
//------------------------------------------
void display_num(unsigned int num)
{
unsigned int a, b, c, d;

a = (num/256)/16; //取高位元組的高4位
b = (num/256)%16; //取高位元組的低4位

c = (num%256)/16; //取低位元組的高4位
d = (num%256)%16; //取低位元組的低4位

write_com(0x80); //顯示的初始地址

// write_data('n');
// write_data('u');
// write_data('m');
// write_data('=');
// write_data('0');
// write_data('x');
write_data(hex_table[a]);
write_data(hex_table[b]);
write_data(hex_table[c]);
write_data(hex_table[d]);
}
//------------------------------------------

J. 關於單片機用液晶屏顯示數字的問題

用液晶顯示數字比起用數碼管來說更方便,採用7段數碼管來顯示,需要定時掃描,打個類似的比方:就猶如動態RAM和靜態RAM一樣,用液晶顯示,只要初始化後,送位置和顯示內容就可以了。總體價格更便宜,比如1602液晶,不到20元錢,但可以顯示兩行共32個字元,而32個數碼管,總的價格要到50元左右,相差還是很大的。

閱讀全文

與單片機大液晶屏顯示數字相關的資料

熱點內容
抖音生活圈小程序源碼 瀏覽:620
建行預約解壓需要多久時間 瀏覽:568
命令式介面 瀏覽:399
電腦伺服器域名地址怎麼查 瀏覽:340
什麼行業要用編程 瀏覽:297
三洋立風櫃壓縮機 瀏覽:296
微拍app為什麼下載不了了 瀏覽:257
非常好的期貨5分鍾公式源碼 瀏覽:4
linuxcentos7安裝 瀏覽:691
華為網盤文件夾加密 瀏覽:74
安卓手機什麼真人游戲好玩 瀏覽:772
崑山加密軟體需求 瀏覽:270
蘋果照片壓縮包怎麼打開 瀏覽:796
檢測溫濕度和二氧化碳的單片機 瀏覽:964
安卓手機雨滴怎麼隱藏 瀏覽:587
pdf文件轉換器word 瀏覽:987
vscodepython模塊方法 瀏覽:344
如何知道伺服器有什麼漏洞 瀏覽:902
java電商訂單支付源碼 瀏覽:102
android手機滑鼠 瀏覽:465