基于C51单片机的1602显示变量,求指教!

2019-07-15 23:38发布

下面是我写的一串代码,实现了1602的正常显示
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

sbit rs=P2^5;
sbit rw=P2^6;
sbit e=P2^7;
uchar sz1[]="     a      !";
uchar sz2[]="--------56----  ";
void delay_50us(uint t)
{
     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(100);
e=1;
delay_50us(100);
e=0;
}
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_50us(100);
e=1;
delay_50us(100);
e=0;
}
void init(void)
{
delay_50us(300);
write_com(0x38);
delay_50us(100);
write_com(0x38);
delay_50us(100);
write_com(0x38);
write_com(0x38);
write_com(0x08);
write_com(0x01);
write_com(0x06);
write_com(0x0c);
}
void main()
{
    uchar k;
init ();
write_com(0x81);
for(k=0;k<16;k++)
{
  write_data(sz1[k]);
  delay_50us;
}
write_com(0x80 + 0x40);
  for(k=0;k<16;k++)
{
  write_data(sz2[k]);
  delay_50us;
}
while(1);
}
但是想让1602显示一个变量,想实现传感器传回来的任意值都能显示出来,但是想了很久都没找到办法,还请大神指教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
1055546697
1楼-- · 2019-07-17 12:51
红源源 发表于 2013-7-19 14:05
我现在才开始学习单片机,感觉难度有点大!!!!
现在只会一点流水灯,数码管动态扫描等等!!! ...

慢慢来满,我也是最近才开始学51的
qq1786897183
2楼-- · 2019-07-17 17:55
我以前做过温度显示,定义个数组变量,然后用拆分的形式将接收到的数据显示出来
1055546697
3楼-- · 2019-07-17 22:02
qq1786897183 发表于 2013-7-19 23:14
我以前做过温度显示,定义个数组变量,然后用拆分的形式将接收到的数据显示出来 ...

嗯嗯 谢谢啦,问题已经解决了

一周热门 更多>