//以总线方式实现8051与1602的通信 //这个程序主要实现功能是向1602发送一串字符串,并显示出来 #include<reg52.h> #include<absacc.h> #define uchar unsigned char #define uint unsigned int #define LCDDDATA XBYTE[0xffff] //读数据地址 #define LCDXDATA XBYTE[0xfdff] //写数据地址 #define LCDDCOM XBYTE[0xfeff] //读命令 #define LCDXCOM XBYTE[0xfcff] //写命令 uchar idata s_GOOD[5]={‘W‘,‘D‘,‘J‘,‘X‘,0x00}; uchar idata s_GOOD1[]={‘2‘,‘0‘,‘1‘,‘6‘,‘-‘,‘0‘,‘7‘,‘-‘,‘2‘,‘2‘,0x00}; sbit bflag=ACC^7; void wait(void) { do{ACC=LCDDCOM;}while(bflag==1); } void init_lcd(void) { LCDXCOM=0x38; //设置模式 wait(); LCDXCOM=0x0f; //显示开关及光标设置 wait(); LCDXCOM=0x06; //显示开关及光标设置 wait(); LCDXCOM=0x01; //清屏 wait(); } void d_char(uchar a) //写入数据函数 { LCDXDATA=a; wait(); } void display(uchar x ,uchar idata *s) //显示函数 第一个变量是地址比如 0x80或0x80+0x40 第二个是数据 { uchar i=0; LCDXCOM=x; wait(); while(s[i]!=0x00) { d_char(s[i]); i++; } } void main(void) { init_lcd(); display(0x80+0x01,s_GOOD); display(0x80+0x40,s_GOOD1); while(1); } //转载请注明出处
相关仿真程序地址:
http://pan.baidu.com/s/1bGuyaa
时间: 2024-10-08 18:34:59