仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
所有资料51hei提供下载:
电子时钟.zip
(72.96 KB, 下载次数: 59)
一、 项目要求
1. 能用LED显示时间,以“时:分:秒”的形式;2. 能通过拨动按键达到调时的目的;3. 能实现倒计时功能。二、 项目开发环境1. 硬件环境:Windows 102. 软件环境:Protues 8.6 Keil uVision4三、 项目分析1. 显示时间使用的LED可以使用LM016L,时间显示的原理可以使用定时器,定时器定时满1S,秒加1,判断秒大于59时,分加1,并且秒清0;判断分大于59时,时加1,并且分清0;判断时大于23时,时清0。主程序流程图:3. 倒计时设计当时间设定完成后,从当前时间开始倒计时,当秒小于0时,分减1,秒置59,当分小于0时,时减1,分置59,当时小于0时,从00:00:00开始正计时。四、 设计与实现1. 设计思路1) 首先要将时间显示部分的逻辑原理理清楚并画出仿真图,考虑按键进去,并写出时间显示部分的核心代码;2) 将按键的各个功能理清楚,以及按键控制的逻辑思路,编写出完整的代码,并进行仿真。3) 考虑增添倒计时功能,在原有的基础上增加一个按键,修改仿真图,并编写倒计时函数代码,最后仿真调试。2. 设计和实现的主要内容1) 设计实现一个以“时:分:秒”形式显示的电子时钟,使用4个按键实现:开始计时,设置时,设置秒,完成时间设置功能,最后增添按键实现倒计时功能。
五、 总结
本次课程设计仿真电子时钟,相对来说,电路比较简单,没有那么复杂,仿真图中需要注意的LM016L这个LED显示器件的工作原理,LM016L是1602的一种,它是以ASCII码为编码方式,不注意的话,可能会造成乱码。LM016L在写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该加上80H,它在显示字符时光标自动右移,无须人工干预,它的VL为液晶显示器对比度调整端,我们在仿真中为它接入一个滑动变阻器。对于本次课程设计,其重点在与理清其中的逻辑思路,再来编写代码,使得整个课程设计条理清晰。
本次课程设计让我对本学期所学的单片机是识进行了一次整合,对AT89C51单片机的认识更加的清晰明了。让我对单片机有关的硬件设计产生了浓厚的兴趣,特别时有关定时计数器的部分。
本次设计使用了Keil uVision4和Proteus 8 Professional软件,让我对这两个软件的运用更加熟练,更加得心应手。让我认识到了自己本身的不足以及问题解决的方法,让我认识到了实践与理论结合的重要性。
|