- void delay(unsigned int xms) // 延时x ms
- {
- unsigned int x,y;
- for(x=xms;x>0;x--)
- for(y=110;y>0;y--);
- }
- void in1602(unsigned char x)//向1602写入一个控制字
- {
- unsigned char t;
- RW=0;
- P0=x;
- for(t=0;t<10;t++);//延时
- E=1;
- for(t=0;t<10;t++);//延时
- E=0;
- }
- void init1602()//初始化1602
- {
- delay(15);
- RS=0;//写指令寄存器
- in1602(0x38);//显示模式
- delay(5);
- in1602(0x38);
- delay(5);
- in1602(0x38);
- delay(5);
- in1602(0x06);//输入模式
- in1602(0x0c);//显示开
- in1602(0x01);//清屏
- }
- void wr1602(unsigned char d[],a)//向1602写入数据
- {
- unsigned char i;
- unsigned int t;
- RS=0;
- in1602(a);//输入显示地址
- for(t=0;t<300;t++);//延时约1.6ms
- RS=1;//允许写
- for(i=0;i<16;i++)
- {
- in1602(d[i]);//依次输入存放在d[]中的16进制数据
- for(t=0;t<300;t++);延时约1.6秒
- }
- }
复制代码
和lcd1602有关的几个函数都在这里了,帮忙看一下有没有什么问题呗 |