给你改了一下试试。
- #include <reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit lcdrs = P2^1; //LCD寄存器选择
- sbit lcdrw = P2^2; //LCD读写控制
- sbit lcden = P2^3; //LCD使能控制
- void delay(uint m) //延时函数
- {while(--m);}
- void write(uchar com, uchar lcddata) //LCD1602写入8位命令/数据子函数
- {
- lcdrs=com; //写入命令 0 选择发送命令 1 选择输入数据
-
- //P1=(lcddata); //由于4位的接线是接到P1口的高四位,所以传送高四位不用改
- P1=(lcddata&0xf0)>>4; //由于4位的接线是接到P1口的低四位,接到LCD高四位
- delay(200);
- lcden=1; //写入时序
- delay(300); //保持时间
- lcden=0; //使能清零
- //P1=(lcddata & 0x0f)<< 4; //发送低四位
- P1=(lcddata&0x0f); //发送高四位
- delay(200);
- lcden=1; //写入时序
- delay(300); //保持时间
- lcden=0; //使能清零
- delay(20);
- }
- void init() //LCD初始化子函数
- {
- lcdrw=0; //选择写入
- lcden=0; //使能
- delay(5);
- write(0,0x32); //将8位总线转为4位总线
- write(0,0x28); //在四位线下的初始化
- write(0,0x0c); //开显示不显示光标
- write(0,0x06); // 读入后AC(指针)加1,向右写
- write(0,0x01); //清屏
- write(0,0x80); //设置数据指针起点
- delay(255);
- }
- void main()
- {
-
- init(); //LCD初始化
- while(1)
- {
- write(1,'a');write(1,'b');delay(65255);delay(65255);
- }
- }
复制代码
|