標(biāo)題:
幫我看看,程序輸入單片機(jī)運(yùn)行怎么LCD沒(méi)顯示啊,也沒(méi)報(bào)警。幫忙改下,謝謝!附件帶圖
[打印本頁(yè)]
作者:
wenzhiming
時(shí)間:
2016-1-25 17:29
標(biāo)題:
幫我看看,程序輸入單片機(jī)運(yùn)行怎么LCD沒(méi)顯示啊,也沒(méi)報(bào)警。幫忙改下,謝謝!附件帶圖
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P2^0;
sbit rw=P2^1;
sbit e=P2^2;
sbit cs=P2^4;
sbit ds=P3^0;
sbit gs=P3^1;
sbit int0=P3^2;
sbit BJ=P3^3;
sbit rd=P3^6;
sbit wr=P3^7;
uchar code table[]="當(dāng)前機(jī)油壓力為: " ; //顯示的字母
uchar code table1[]="0123456789" ;
uint bj=0,zs=0,num;
uchar i,j;
void start_ad() //啟動(dòng)ad轉(zhuǎn)換
{ cs=0;
_nop_();
wr=0;
_nop_();
wr=1;
while(int0);
cs=1;
}
void read_ad() //使ad輸出
{
P0=0xff;
cs=0;
rd=0;
_nop_();
num=P0;
rd=1;
cs=1;
// return(number);
}
void delay(uchar x) //延時(shí)子函數(shù)
{
uchar i,j;
for(i=x;i>0;i--);
for(j=110;j>0;j--);
}
void read_busy()//讀忙子程序
{
P0=0xff;
rs=0;
rw=1;
e=1;
delay(5);
while(P0&0x80); //P0和10000000相與,D7位若不為0,停在此處
e=0; //若為0跳出進(jìn)入下一步;這條語(yǔ)句的作用就是檢測(cè)D7位
}
void write_cmd(uchar cmd) //寫(xiě)指令子函數(shù)
{
read_busy();
rs=0;
rw=0;
e=0;
_nop_();
P1=cmd;
_nop_();
_nop_();
rs=0;
_nop_();
_nop_();
wr=0;
_nop_();
e=0;
_nop_();
_nop_();
e=1;
}
void write_dat(uchar dat) //寫(xiě)數(shù)據(jù)子函數(shù)
{
read_busy();
rs=0;
rw=0;
e=0;
_nop_();
_nop_();
P2=dat;
_nop_();
_nop_();
rs=1;
_nop_();
_nop_();
wr=0;
delay(5);
e=0;
delay(5);
e=1;
}
void lcd_init() //初始化子函數(shù)
{
write_cmd(0x01);//清屏
delay(5);
write_cmd(0x3f);//功能設(shè)置
delay(5);
write_cmd(0x0d); //顯示控制
delay(5);
write_cmd(0x06); //輸入方式設(shè)置
}
void main()
{
uchar i; //定義局部變量
lcd_init(); //初始化LCD
write_cmd(0x80+0x02+0x10);//指針的位置
for(i=0;i<16;i++) //顯示
{
write_dat(table[i]);
delay(50);//延時(shí),用于調(diào)節(jié)速度不匹配
}
write_cmd(0x08+0x04+0x01);
for(i=0;i<16;i++)
{
write_dat(table1[num]);
delay(50);
}
for(i=0;i<16;i++)
{
write_cmd(0x18);
delay(50);
}
while (1) // 報(bào)警程序
{if(ds==0){zs=30;}
else if(gs==0){zs=180;}
if(num<zs){bj=1;}
else{bj=0;}
if(bj==1){BJ=0;}
else{BJ=1;}
}
}
QQ圖片20160125172616.png
(47.25 KB, 下載次數(shù): 89)
下載附件
2016-1-25 17:27 上傳
仿真圖
作者:
wc86110
時(shí)間:
2016-1-26 09:23
LCD1602 VEE接個(gè)電阻一般3K3左右或電位器來(lái)調(diào)節(jié)對(duì)比度。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1