|
以下是程序全文,能正常顯示,但是一次只能顯示一個字符,如果直接寫zifu("52") 那就報錯了,除非把52拆開來寫,這樣就行,是我的寫法有問題,還是1602也得像數(shù)碼管動態(tài)顯示那樣,寫一個字符,變換一下指針,再寫字符。。。。。
#include <STC89C5xRC.H>
#define uint unsigned int
#define uchar unsigned char
sbit RS=P2^2;
sbit RW=P2^1;
sbit EN=P2^0;
void delay(uint a)
{
uint x,y;
for(x=a;x>0;x--)
for(y=114;y>0;y--);
}
uchar mang( ) //判忙函數(shù)
{
P0=0xFF;
RS=0;
RW=1;
EN=0;
delay(1);
EN=1;
return (P0 & 0x80);
}
void zhiling(uchar com) //寫命令
{
while(mang( ));
RS=0;
RW=0;
P0=com;
delay(10);
EN=1;
delay(10);
EN=0;
}
void zifu(uchar fu) //寫字符
{
while(mang( ));
RS=1;
RW=0;
P0=fu;
delay(10);
EN=1;
delay(10);
EN=0;
}
void main()
{
EN=0;
RS=1;
RW=0;
zhiling(0X38); //設(shè)置顯示模式,16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)口
zhiling(0X0C); //光標(biāo)設(shè)置(顯示光標(biāo),且閃爍)
zhiling(0X04); //整屏不移動
zhiling(0XC0); //第二排顯示
zifu('2');
//zhiling(0XC1);
//zifu("56");
while(1);
}
|
|