- #include<reg51.h>
- #define uint unsigned int;
- #define uchar unsigned char;
- sbit rs=P1^0;//并行模式下为指令数据选择信H/L=指令/数据
- sbit rw=P1^1;//并行的读写信号H/L=读/写
- sbit e=P1^2; //并行下的使能信号
- unsigned char f;
- uchar d1,d2;//数据缓冲
- unsigned char i,j;
- uint code tab[]={ 0xd6d0,0xbdbb,0xd2bb,0xbabd,0xbed6,0x2000,0x04,0x04,
- 0xa3ba,0xc4d0,0x0d0a,0xd6b0,0xd2b5,0xa3ba,0xb5e7,0xb9a4,
- 0x0d0a,0xb5a5,0xcebb,0xa3ba,0xd6d0,0xbdbb,0xd2bb,0xbabd,
- 0xbed6,0xbef9,0xceb0,0xcdf2,0xcbea,0xa3a1,0x2020,0x2020, };
-
-
- void delay4_6ms()//
- {
- unsigned char av,bv;
- for(bv=12;bv>0;bv--)
- for(av=175;av>0;av--);
- }
- void delay(void)
- {
- ;;;
- }
- void writedate(unsigned int a)//写数据
- {
- d2=a;
- CY=0;
- a=(a>>8);
- d1=a;
-
- f=1;
- for(i=0;i<2;i++)
- {
- delay4_6ms();
- rs=1;
- delay();
- rw=0;
- delay();
- e=1;
- delay();
- if(f)
- {
- P0=d1;
- f=0;
-
- }
- else P0=d2;
- delay();
- e=0;
- delay();
-
- }
- }
- void writectrl(unsigned char ds)//写指令
- {
- rs=0;
- delay();
- rw=0;
- delay();
- e=1;
- delay();
- P0=ds;
- delay();
- e=0;
- delay();
- }
- void main()
- {
-
- writectrl(0x01);//写指令
- delay4_6ms();
- writectrl(0x02);//写指令
- delay4_6ms();
- writectrl(0x0f);//写指令
- delay4_6ms();
- writectrl(0x80);//写指令
-
-
- delay4_6ms();
- for(j=0;j<32;j++)
-
- writedate(tab[j]);//写数据
- delay4_6ms();
-
-
-
- while(1);
- }
复制代码
|