急急急!!!protues做LCD1602仿真时为什么没显示

2019-07-18 09:14发布

这是图和原理图:
QQ截图20150507184144.png
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P2^4;//位定义
sbit rw=P2^5;
sbit e=P2^6;
uchar table1[]=" whh";
uchar table2[]="LCD1602 test ok!";
void  delay_50us(uint t) //延时函数,在12兆赫兹的晶振频率下50us的延时
{
    uchar j;
for(;t>0;t--)
  for(j=19;j>0;j--);
}
void delay_50ms(uint t)
{
   uint j;
   for(;t>0;t--)
    for(j=6245;j>0;j--);
}
   void write_com(uchar com)//写指令
   {
     e=0;
rs=0;
rw=0;
P0=com;
delay_50us(10);
e=1;
delay_50us(20);
e=0;
   }
   void write_data(uchar dat)//输入数据
   {
     e=0;
rs=1;
rw=0;
P0=dat; //送数据
delay_50us(10);
e=1;
delay_50us(20);
e=0;
   }
   void init(void)
   {
     delay_50us(300); //延时15ms,换算15ms等于300us
     write_com(0x38);
  delay_50us(100);
  write_com(0x38);
  delay_50us(100);//延时5ms
  write_com(0x38);
  write_com(0x38);
  write_com(0x08);   
  write_com(0x01);
  write_com(0x06);
  write_com(0x0c);
   }
   void main()
   {
   uchar j;
   init();
   write_com(0x80);
   for(j=0;j<16;j++)
   {
      write_data(table1[j]);
   delay_50us(10);
   }
    write_com(0x80+0x40);
   for(j=0;j<16;j++)     
   {
      write_data (table2[j]);
   delay_50us(10);
   }
   while(1);
   }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
zhaoyd120
1楼-- · 2019-07-19 10:02
 精彩回答 2  元偷偷看……
findistdh
2楼-- · 2019-07-18 10:25
我也出现了这样的问题,我是按照郭天祥的那本书做的。这是原理图: lcd1602.PNG

findistdh
3楼-- · 2019-07-18 14:41
1     01
02   02

03   03





findistdh
4楼-- · 2019-07-18 15:36
没有权限发代码,,,只好发图片了。
求大神指点!
武力戡乱
5楼-- · 2019-07-18 19:30
本帖最后由 武力戡乱 于 2015-5-8 00:49 编辑

加上拉电阻!参考楼上的!
武力戡乱
6楼-- · 2019-07-18 19:40
findistdh 发表于 2015-5-7 19:44
没有权限发代码,,,只好发图片了。
求大神指点!

你这个好像没有错误啊!

一周热门 更多>