#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS = P2^1
sbit RW = P2^2
sbit E = P2^3
uchar idata wlcome[16]={"asdfghjklpoiuytr"}
uchar idata lcdtimer[16]={"qwertyuioplkjhgf"}
void delayus(uint a)//微秒延时//
{
while(a--)
}
void delay(uint dell)//毫秒延时//
{
uchar x
for(delldell>0dell--)
for(x=110x>0x--)
}
void wr_com(uchar temp)//写指令//0
{
RS=0
RW=0
P0=temp
E=1
E=0
}
void wr_data(uchar num)//写数据//
{
RS=1
RW=0
P0=num
E=1
E=0
}
void disp_lcd(uchar addr,uchar *templ)
{
uchar i
wr_com(addr)
delay(50)
for(i=0i<16i++)
{
wr_data(templ[i])
delay(50)
}
}
void lcd_init()//初始化液晶//
{
wr_com(0x30)
delay(50)
wr_com(0x38)
delay(50)
wr_com(0x01)
delay(50)
wr_com(0x06)
delay(50)
wr_com(0x0c)
delay(50)
}
void main()
{
lcd_init()
while(1)
{
disp_lcd(0x80,wlcome)
disp_lcd(0xc0,lcdtimer)
}
}
1 注意是忙返回1,不忙返回0result=(BOOL)(P0&0X80)//这里是查看是否在繁忙状态。如果不忙STA7(接到P0^7)应该是0
return result
2 如果不想在忙时等,只能用if语句判断,忙则退出,并返回一个不成功标志。主程序可以在一定时间后或空闲时重试。
3 无论如何,不应该在while循环里面写数据,你不需要也不应该多次写同一数据的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)