买了一个1602液晶屏想显示点东西玩 但是接上怎么都不现实 用的程序是 郭天祥的那个,我就把里面的 RW RS和EN改了一下
但是总是失败 一直是方块
我得 数据是接的P1 然后 RS是P3.4 RW 3.5 EN 3.6
2.jpg (167.88 KB, 下载次数: 0)
下载附件
2012-9-5 17:13 上传
线没有问题 开始用的杜邦线 后来直接焊接的 都不行 求教各位大神
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code table[]="I LIKE MCU!";
- uchar code table1[]="WWW.TXMCU.COM";
- sbit lcden=P3^6;
- sbit lcdrw=P3^5;
- sbit lcdrs=P3^4;
- uchar num;
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void write_com(uchar com)
- {
- lcdrs=0;
- P0=com;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- void write_data(uchar date)
- {
- lcdrs=1;
- P0=date;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- void init()
- {
- lcdrw=0;
- lcden=0;
- write_com(0x38);
- write_com(0x0e);
- write_com(0x06);
- write_com(0x01);
- write_com(0x80+0x10);
- }
- void main()
- {
- init();
- for(num=0;num<11;num++)
- {
- write_data(table[num]);
- delay(20);
- }
- // write_com(1);
- write_com(0x80+0x53);
- for(num=0;num<13;num++)
- {
- write_data(table1[num]);
- delay(20);
- }
- for(num=0;num<16;num++)
- {
- write_com(0x18);
- delay(20);
- }
- while(1);
- }
复制代码
如果硬件没问题楼主看看软件吧,另外液晶的IO口不要接其他的器件
走了一些弯路,主要是因为不小心使用了stm32的PB4管脚,
这个PB4管脚比较特殊一点,要把它的Jtag功能屏蔽掉才能当普通IO口用
一周热门 更多>