找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3729|回复: 2
收起左侧

用1602液晶管想显示0到9数字 出现的现象是只能显示0

[复制链接]
ID:381002 发表于 2018-11-13 18:05 | 显示全部楼层 |阅读模式
本帖最后由 后影遁 于 2018-11-13 18:08 编辑


#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P3^5;
sbit lcden=P3^4;
sbit dula=P2^6;
sbit wela=P2^7;
uint num;
uint code table[]={'0','1','2','3','4','5','6','7','8','9'};
void delay(uint x)
{
uint a,b;
for(a=x;a>0;a--)
  for(b=10;b>0;b--);
}
void write_com(uchar com)
{
P0=com;
rs=0;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;

}
void write_date(uchar date)
{
P0=date;
rs=1;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;

}
void init()
{
dula=0;
wela=0;
write_com(0x38);
delay(20);
write_com(0x0e);
delay(20);
write_com(0x06);
delay(20);
write_com(0x01);
delay(20);
}
void main()
{
uint  j;
num=0;#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P3^5;
sbit lcden=P3^4;
sbit dula=P2^6;
sbit wela=P2^7;
uint num;
uint code table[]={'0','1','2','3','4','5','6','7','8','9'};
void delay(uint x)
{
uint a,b;
for(a=x;a>0;a--)
  for(b=10;b>0;b--);
}
void write_com(uchar com)
{
P0=com;
rs=0;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;

}
void write_date(uchar date)
{
P0=date;
rs=1;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;

}
void init()
{
dula=0;
wela=0;
write_com(0x38);
delay(20);
write_com(0x0e);
delay(20);
write_com(0x06);
delay(20);
write_com(0x01);
delay(20);
}
void main()
{
uint  j;
num=0;
j=0;
init();//液晶管初始化
write_com(0x80+1);//设定第一个显示数字的地址
write_date(table[j]);//显示第一个数字
    for( ; j>9; j++)
  {    j++;
     write_com(0x80+1+j);//设定地址
       delay(20);
     write_date(table[j]);//显示数字
       if(j==9)
          while(1);
     delay(100);//延时
  }
}

j=0;
init();//液晶管初始化
write_com(0x80+1);//设定第一个显示数字的地址
write_date(table[j]);//显示第一个数字
    for( ; j>9; j++)
  {    j++;
     write_com(0x80+1+j);//设定地址
       delay(20);
     write_date(table[j]);//显示数字
       if(j==9)
          while(1);
     delay(100);//延时
  }
}


回复

使用道具 举报

ID:111634 发表于 2018-11-14 08:20 | 显示全部楼层
本帖最后由 zl2168 于 2018-11-14 22:40 编辑

实例67  LCD1602显示屏显示
⒈ LCD1602显示屏简介
⑴ 引脚功能    …
⑵ 内部寄存器    …
⑶ 控制指令    …
⑷ 操作时序    …
⒉ 电路设计    …
⒊ 程序设计    …
⒋ Keil调试    …
⒌ Proteus仿真    …

Proteus仿真一下,确认有效。 实例61 LCD1602显示屏显示.rar (49.26 KB, 下载次数: 25)
回复

使用道具 举报

ID:403593 发表于 2018-11-14 09:39 | 显示全部楼层
一看就是郭老师的学生。。。
你这main程序有问题啊,是复制粘贴的时候弄错了还是本身就是错的?
我给你改了一下,试试看行不行
void main()
{
        uint  j;
        num=0;
        j=0;
        init();//液晶管初始化
        while(1)
        {
                write_com(0x80+1);//设定第一个显示数字的地址
                write_date(table[j]);//显示第一个数字
                for( j=0; j>9; j++)
                {
                        write_com(0x80+1+j);//设定地址
                        delay(20);
                        write_date(table[j]);//显示数字
                        delay(100);//延时
                }
        }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表