单片机电子时钟,仿真的时候没问题,但是焊接实物后LCD就是不显示,电路上也没发现什么错误,求教!
连接问题,单片机在仿真时 有些引脚 不接能仿真,在实际电路中 就必须按照数据手册说明的
连接,如复位电路等等,显示屏也一样。
程序问题的,我给你分享一个测试可以用的吧!显示字符串:
#include //51单片机相关库
typedef unsigned int uint;//数据类型重新定义
typedef unsigned char uchar;
sbit LCD_RS=P2^0;//数据/命令选择位
sbit LCD_RW=P2^1;//读/写选择位
sbit LCD_EN=P2^2;//使能信号
uchar lcd_tab[]={"89S52"};//第一行显示的字符串
uchar lcd_tab1[]={"I LOVE MCU"};//第二行显示的字符串
/**********************************************************************
*函数名称:_delay_ms
*输 入:uint x
*输 出:无
*功 能:延时函数
**********************************************************************/
void _delay_ms(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
/**********************************************************************
*函数名称:LCD_Write_Command
*输 入:uchar cmd
*输 出:无
*功 能:向LCD1602写指令
**********************************************************************/
void LCD_Write_Command(uchar cmd)
{
LCD_RS=0;//根据规定,RS和R/W同时为低电平时,可以写入指令
LCD_RW=0;
LCD_EN=0;//EN置低电平
P0=cmd;//将数据送入P2口,即写入指令或地址
LCD_EN=1;//EN置高电平
_delay_ms(1);//稍延时,给硬件反应时间
LCD_EN=0;//当EN由高电平跳变成低电平时,液晶模块开始执行命令
}
/**********************************************************************
*函数名称:LCD_Write_Data
*输 入:uchar dat
*输 出:无
*功 能:向LCD1602写数据
**********************************************************************/
void LCD_Write_Data(uchar dat)
{
LCD_RS=1;//RS为高电平,RW为低电平时,可以写入数据
LCD_RW=0;
LCD_EN=0;//EN置低电平
P0=dat;//将数据送入P0口,即将数据写入液晶模块
LCD_EN=1;//EN置高电平
_delay_ms(1);//稍延时,给硬件反应时间
LCD_EN=0;//当EN由高电平跳变成低电平时,液晶模块开始执行命令
}
/**********************************************************************
*函数名称:Init_LCD
*输 入:无
*输 出:无
*功 能:初始化LCD1602
**********************************************************************/
void Init_LCD(void)
{
LCD_Write_Command(0x38);//显示模式设置:16×2显示,5×7点阵,8位数据接口
_delay_ms(1);
LCD_Write_Command(0x06);//显示模式设置:光标右移,字符不移
_delay_ms(1);
LCD_Write_Command(0x0c);//显示模式设置:显示开,无光标,光标不闪烁
_delay_ms(1);
LCD_Write_Command(0x01);//清屏幕指令,将以前的显示内容清除
_delay_ms(1);
}
/**********************************************************************
*函数名称:LCD_POS
*输 入:uchar pos
*输 出:无
*功 能:字符显示位置
**********************************************************************/
void LCD_POS(uchar pos)
{
LCD_Write_Command(0x80|pos);//显示位置的确定方法规定为"80H+地址码x"
}
/**********************************************************************
*函数名称:Show_String
*输 入:uchar *str
*输 出:无
*功 能:LCD1602显示字符串处理函数
**********************************************************************/
void Show_String(uchar *str)
{
while(*str!='\0')//只要没有写到结束标志,就继续写
LCD_Write_Data(*str++);//将字符常量写入LCD,并指向下一个字符
}
/**********************************************************************
*函数名称:main
*输 入:无
*输 出:无
*功 能:函数主体
**********************************************************************/
void main(void)
{
Init_LCD();
while(1)
{
LCD_POS(0);//第一行第一列开始显示
Show_String(lcd_tab);//将lcd_tab数组字符串写入LCD显示出
LCD_POS(0x40);//第二行第一列开始显示
Show_String(lcd_tab1);//将lcd_tab1数组字符串写入LCD显示
}
}
电源检查下,是否正常;
晶振工作是否正常,可以用示波器看下波形;
复位信号是否正常;
以上3条能保证程序跑起来,LCD不显示,也有可能始终在等忙信号,检查连接的IO,及对比度电压调节;
4. 如果可以在线仿真的话,那会方便些。
祝你早日发现问题。
就你目前所说的情况,很难判断出来是什么地方的问题,我建议你逐级测试,首先测试lcd,用一个工作正常的单片机驱动lcd,随后检查单片机电源是否正常,晶振工作是否正常,随后就是检查是否存在焊接短路,虚焊。。。然后,就没事了。
VHDL电子时钟设计
2,此时钟实现时,分,秒计时功能,要求都显示在六个数码管上(数码管为共阳数码管,静态显示)3,画出系统框架图,完成代码设计和仿真波形。程序要求用顶层文件...2.谢自美. 电子线路设计 实验 测试(第二版) 武汉 华中科技大学出版社 2002文件名说明:Clock.gdf为不含秒表模块的顶层文件;Clock02.gdf为含秒表模块的...
单片机时钟制作的可行性研究,短点的,一二百字足矣
多功能电子时钟概述:加入世贸组织以后,中国会面临激烈的竞争。这种竞争将是一场科技实力、管理水平和人才素质的较量,风险和机遇共存。于是老师在单片机理论课程学习的基础上,为我们安排了一个涉及MCS—51 单片机多种资源应用及具有综合功能的电子时钟设计。关键字: 显示时间 定时 温度采集 系统仿真1引言《单片原理及...
单片机原理、应用与PROTEUS仿真的章节目录
15.8 单片机与ADC0809(0808)接口的设计与仿真15.9 单片机与DAC0832接口的设计与仿真*15.10 单片机与直流电动机接口的设计与仿真15.11 单片机控制步进电动机接口的设计与仿真15.12 单片机之间的串行通信接口设计与仿真*15.13 单片机与PC间的通信接口设计与仿真15.14 基于单片机、DS1302的电子时钟的设计与仿真15.15 带存储...
急求一个89c51设计的电子时钟,有原理图和C程序
有关用晶振电路产生秒脉冲电路的"12小时数字钟,请看下回贴图。 采用AT89C2051兼容芯片制作六位数显多路定时电子钟采用at89c2051兼容芯片制作六位数显多路定时电子钟电路特点这里介绍的电子钟,电路可称得上极简,它仅使用单片的20引脚单片机完成电子钟的全部功能,而笔者见到的其它设计方案均采用二片以上的多片ic实现。电路...
数字电子钟可设报告
7.2原理图仿真步骤 26总结27谢辞28参考资料及文献 29附录一:原理图 30附录二:PCB 31附录三 仿真 32附录四:程序清单 33第一章引言数字钟已成为人们日常...(2) 外部时钟方式在由单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的合用外部振荡脉冲作为各单自片机的时钟。外部时钟方式中是把外部...
如何让钟倒着走?
这个比较简单 我成功弄过一次。呵呵 你也和我一样有这个爱好啊。我的那个就是7快钱买的电子钟。先把机心拆开 看到一些齿轮,找到那个上面有磁铁的 被铁片包围的那个齿轮。包围他的磁心上有两根小铜线连到心片上 只要把这两根线对换位置接一下 就好了。别的都不用动。
电子时钟开题报告
课题名称 基于单片机的电子时钟设计 姓名xx 学号xx 班级 信息xx班 专业 电子信息工程 院系 信息工程学院 指导教师 xxx 一、选题依据 1 课题的目的 社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子时钟发展并且投入市场得到广泛应用。 2 课题意义 二十一世纪是数字化技术高速发展的时代,而单片机在数字化...
水印相机电子时钟模糊
摄像头配置太低。水印相机电子时钟模糊是因为手机的摄像头配置太低,比如成像元件像素不高,拍的照片就不够清晰。
...求程序和仿真~发邮箱648829172@qq.com不胜感激`
电子时钟,万年历,智能小车等等,单片机一般用于控制
在数字电子钟或电子表上,时间前面的PM和AM是什么意思?
上午AM -- antemeridiem;下午PM -- post meridiem。在电子钟或电子表上,时间前的PM和AM分别代表下午和上午。电子钟是一种利用数字电路技术显示时间的装置,它相较于传统的机械时钟,具有更直观和更准确的显示时间功能,并且由于非机械驱动,使用寿命更长,比石英钟更准确。电子钟已经成为人们日常生活中...
敛爽盐酸: 电源检查下,是否正常; 晶振工作是否正常,可以用示波器看下波形; 复位信号是否正常; 以上3条能保证程序跑起来,LCD不显示,也有可能始终在等忙信号,检查连接的IO,及对比度电压调节;4. 如果可以在线仿真的话,那会方便些. 祝你早日发现问题.
西乡塘区18791749666: 我做的电子时钟,用51单片机可以显示,但是仿真时显示屏不刷新时间是怎么回事,代码是没问题的 - ?
敛爽盐酸: 实际电路与仿真有些区别,一是电路图可能不一致,二是在延时时间上可能要求不尽相同.
西乡塘区18791749666: 自己在面包板上弄的单片机电子时钟为什么不运行程序?但是在proteus模拟没有任何问题?求大神帮忙 - ?
敛爽盐酸: 拿示波器看看单片机晶振起振了没有,加一个IO口接LED做运行指示,看到底是单片机没工作还是程序出错了
西乡塘区18791749666: 求救:为什么用单片机做的数字时钟,秒走的不均匀,时快时慢.仿真的时候也是这样?????
敛爽盐酸: ds1302时钟芯片是不断地读取内部数据送到外部显示的, 仿真的时候用的是系统时间, 如果出现时快时慢,要么是CPU负载100%卡了,要么就是你的显示程序不合理,显示程序没有实时地反应秒的状态.我以前做的都没这情况.显示刷新专门放在一个定时器里定时刷新
西乡塘区18791749666: 我用80C51和8155芯片做了一个电子时钟,可是编程仿真后显示屏上得数字不变化请您帮我改下程序 - ?
敛爽盐酸: 既然是仿真,你可以单步执行一下,看看是哪里出问题,或是单步执行一下,我想自己找出问题,比让别人帮你改程序要有用得多.记得注意你对8155的操作是不是正确的
西乡塘区18791749666: 单片机仿真时钟电路,焊接实物后秒针不走 - ?
敛爽盐酸: 一般仿真能用,现实中不能用都是延时出现了问题.仿真时,很多电路都可以不接上拉电阻,但实物必须加,所以这也有可能.前面说到的延时.就例如你仿真数码管动态扫描时,你会发现Delay延时的时间要很短,才能看起来感觉好些.但实物时,你根本 看不出数码管在显示什么.此时DELAY要适当加大些.有什么问题可以共同探讨,希望我的回答对你有所帮助
西乡塘区18791749666: 单片机时钟为什么实际和仿真上的时间不一样 - ?
敛爽盐酸: 仿真电子钟时,定时的时间也同样的计算方法,但计时后,要比实际时间慢,而用实物做的时钟,计时的误差就很小. 仿真时间误差很大,这很好理解,因仿真是用软件来模拟的,并不真的,软件运行就受电脑的各种因素影响,不可能与实物一样.用软件能模拟出这么逼真的动画效果,已经很不容易啦,也相当不错啦,就别再那么荷刻啦.仿真不过是学习的一种方法和手段,最终还是要以实物为准哪!
西乡塘区18791749666: 用单片机AT89S52制作了一个电子钟 显示屏用的是lcd1602 焊接好后不能显示数字,电路没什么问题 - ?
敛爽盐酸: 连接问题,单片机在仿真时 有些引脚 不接能仿真,在实际电路中 就必须按照数据手册说明的 连接,如复位电路等等,显示屏也一样.
西乡塘区18791749666: 为什么用KEIL软件仿真C8051F系列单片机时程序计时时钟走的这么慢? - ?
敛爽盐酸: keil是有这个问题,它只是单纯的软仿真,和硬仿真是有区别的,在时间上是有很大区别的,keil仿真时,只是看IO口的效果,并不关心它的速度,自己设计时逐步掌握它的时间就可以了.
西乡塘区18791749666: 关于单片机与程序的问题:延时出错 - ?
敛爽盐酸: 你仿真和实际硬件的晶振频率不一样.看一下电路板上晶振的频率,给protues里的加上相同频率的然后在仿真看看.还有就是在c语言环境下延时函数不好控制精度,一般用单片机的计时器.而汇编下就是每条指令是12个时钟了.比如12MHz的晶振 每条指令的执行时间是1ms,执行到1秒就需要1000000次.