急急急!!!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条回答
tumi
1楼-- · 2019-07-19 16:13
楼主问题解决了么,同求啊
晚安那人儿
2楼-- · 2019-07-19 16:50
我之前跟楼主碰到的一样的问题,用郭天祥书上的编程方法去proteus里面仿真,发现1602根本不亮,后来在P0口外面加了上拉电阻就好了,如图。
QQ图片20160303162354.png
╰☆╮帽子屋
3楼-- · 2019-07-19 20:04
findistdh 发表于 2015-5-7 19:37
我也出现了这样的问题,我是按照郭天祥的那本书做的。这是原理图:

你的可以了吗?我的显示不了
╰☆╮帽子屋
4楼-- · 2019-07-19 21:14
 精彩回答 2  元偷偷看……
╰☆╮帽子屋
5楼-- · 2019-07-20 01:10
晚安那人儿 发表于 2016-3-3 16:21
我之前跟楼主碰到的一样的问题,用郭天祥书上的编程方法去proteus里面仿真,发现1602根本不亮,后来在P0口外面加了上拉电阻就好了,如图。

我的显示不了,加了上啦电阻的
武力戡乱
6楼-- · 2019-07-20 03:44
╰☆╮帽子屋 发表于 2016-4-20 20:19
有上拉电阻还是显示不了

程序没做好,我确定!

一周热门 更多>