标题:
用1602液晶管想显示0到9数字 出现的现象是只能显示0
[打印本页]
作者:
后影遁
时间:
2018-11-13 18:05
标题:
用1602液晶管想显示0到9数字 出现的现象是只能显示0
本帖最后由 后影遁 于 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);//延时
}
}
作者:
zl2168
时间:
2018-11-14 08:20
本帖最后由 zl2168 于 2018-11-14 22:40 编辑
实例67 LCD1602显示屏显示
⒈ LCD1602显示屏简介
⑴ 引脚功能 …
⑵ 内部寄存器 …
⑶ 控制指令 …
⑷ 操作时序 …
⒉ 电路设计 …
⒊ 程序设计 …
⒋ Keil调试 …
⒌ Proteus仿真 …
先
Proteus
仿真一下
,确认有效。
实例61 LCD1602显示屏显示.rar
(49.26 KB, 下载次数: 25)
2018-11-14 22:39 上传
点击文件名下载附件
1602.jpg
(92.14 KB, 下载次数: 28)
下载附件
2018-11-14 22:39 上传
若需改变
1602
显示内容
,
只须将需显示的内容用
ASCII
码写入显示数组,即可。
以上摘自张志良编著《
80C51
单片机仿真设计实例教程——基于
Keil C
和
Proteus
》清华大学出版社
ISBN 978-7-302-41682-1
。书中电路和程序设计有详细说明,程序语句条条有注解。
作者:
这一生只为你
时间:
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);//延时
}
}
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1