IO口不够用,所以只能用4位控制1602屏,不成功。不知道问题在哪里,望高人指导!
单片机源程序如下:
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit lcdrs= P2^1;
- sbit lcdrw= P2^2;
- sbit lcden= P2^3;
- void delay(uint m)
- {while(--m);}
-
- void write(uchar com,uchar date)
- {
- uint nn=20;
- lcdrs=com;
-
- P1=(date&0xf0);
- delay(nn);
- lcden=1;
- delay(nn);
- lcden=0;
- P1=(date&0x0f)<<4;
- delay(nn);
- lcden=1;
- delay(nn);
- lcden=0;
- delay(nn);
- }
- void init()
- {
- lcdrw=0;
- lcden=0;
- delay(5);
- write(0,0x28);
- write(0,0x0c);
- write(0,0x01);
- write(0,0x80);
- delay(255);
- }
- void main()
- {
- init();
- while(1){
- write(0,0x80);write(1,'a');
- }
- }
复制代码
|