- 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有關的幾個函數都在這里了,幫忙看一下有沒有什么問題唄 |