这个是我编的1602的显示,跪求大神指点。谢谢。

2019-07-15 17:15发布

#include<reg52.h>  
#include<intrins.h>  //包含_nop_()函数定义的头文件
#define uchar unsigned char
#define uint unsigned int
uchar key_No[]={'1','2','3','4','5','6','7','8','9'};
sbit RS=P2^4;    //寄存器选择位
sbit RW=P2^0;    //读写选择位
sbit E=P2^3;     //使能信号位
void delay(uint z)
{
uchar i,j;
for(i=z;i>0;i--);
  for(j=110;j>0;j--);
}
//********************写指令
void Write_com(uchar com)
{  
// while(BusyTest()==1);
RS=0;                  //根据规定,RS和R/W同时为低电平时,可以写入指令
RW=0;  
E=0;                   //E置低电平(写指令时,E为高脉冲)
                             // 就是让E从0到1发生正跳变,所以应先置"0"
P0=com;            //将数据送入P0口,即写入指令或地址
delay(1);
/*_nop_();
   _nop_();
   _nop_();
  _ nop_();*/
  E=1;                   //E置高电平
  _nop_();
  _nop_();
  _nop_();
  _nop_();               //空操作四个机器周期,给硬件反应时间
   E=0;                  //当E由高电平跳变成低电平时,液晶模块开始执行命令
}
//*********************写数据
void WriteData(uchar dat)
{
// while(BusyTest()==1);   
RS=1;   //RS为高电平,RW为低电平时,可以写入数据
RW=0;
E=0;            //(写指令时,E为高脉冲)
                    // 就是让E从0到1发生正跳变,所以应先置"0"
P0=dat;         //将数据送入P0口,即将数据写入液晶模块
delay(1);
/*_nop_();
   _nop_();
   _nop_();
  _ nop_();*/
  E=1;          //E置高电平
  _nop_();
  _nop_();
  _nop_();
  _nop_();      //空操作四个机器周期,给硬件反应时间
  E=0;          //当E由高电平跳变成低电平时,液晶模块开始执行命令
}
//*******************初始化
void Init(void)
{
Write_com(0x30);  //显示模式设置:16×1显示,5×7点阵,8位数据接口
Write_com(0x0c);  //显示模式设置:显示开,无光标
Write_com(0x06);  //显示模式设置:光标右移,
Write_com(0x01);  //清屏幕指令,将以前的显示内容清除
}
//*******************主函数
void main(void)         
{
uchar a;
   Init();
    Write_com(0x80);
   for(a=0;a<9;a++)
   {   
   WriteData(uchar key_No[a]);
   delay(1);
   }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
Aidaohuakai
1楼-- · 2019-07-15 21:36
不知道你要问什么?
武力戡乱
2楼-- · 2019-07-15 23:28
E=0;                   //E置低电平(写指令时,E为高脉冲)
                             // 就是让E从0到1发生正跳变,所以应先置"0"
P0=com;            //将数据送入P0口,即写入指令或地址
delay(1);
/*_nop_();
这里吧!
蓝雨LOVE诗
3楼-- · 2019-07-16 04:28
Aidaohuakai 发表于 2015-5-10 22:50
不知道你要问什么?

编译时有“syntax error near ‘’unsigned”。我找不到问题在哪。
蓝雨LOVE诗
4楼-- · 2019-07-16 06:03
 精彩回答 2  元偷偷看……
Aidaohuakai
5楼-- · 2019-07-16 06:54
蓝雨LOVE诗 发表于 2015-5-11 10:09
编译时有“syntax error near ‘’unsigned”。我找不到问题在哪。

把这句WriteData(uchar key_No[a]);
改为WriteData(key_No[a]);
蓝雨LOVE诗
6楼-- · 2019-07-16 08:30
Aidaohuakai 发表于 2015-5-11 10:44
把这句WriteData(uchar key_No[a]);
改为WriteData(key_No[a]);

是这里,谢谢!

一周热门 更多>