LED显示的电子钟_课程设计报告

上传人:飞*** 文档编号:2663004 上传时间:2017-07-26 格式:DOC 页数:18 大小:348.50KB
返回 下载 相关 举报
LED显示的电子钟_课程设计报告_第1页
第1页 / 共18页
LED显示的电子钟_课程设计报告_第2页
第2页 / 共18页
LED显示的电子钟_课程设计报告_第3页
第3页 / 共18页
LED显示的电子钟_课程设计报告_第4页
第4页 / 共18页
LED显示的电子钟_课程设计报告_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《LED显示的电子钟_课程设计报告》由会员分享,可在线阅读,更多相关《LED显示的电子钟_课程设计报告(18页珍藏版)》请在金锄头文库上搜索。

1、1单片机原理及其接口技术课程设计报告课 题 LED 显示的电子钟 院 系 自动控制与机械工程学院 2目录一、设计目的及要求.1二、系统设计 .1 三、硬件设计 .11、AT89C51 22、LED 数码管显示部分 .22、晶振部分 .34、按键部分 .3四、软件设计.41、protues 软件42、流程图 .43、仿真结果 .6五、总结与心得体会 7六、附录(C 语言程序) .83一、设计目的及要求1、设计题目:LED 显示的电子钟2、设计任务:基于 AT89C51 单片机,制作一个 LED 显示的智能电子钟。3、设计要求:(1) 、用 6 个 7 段 LED 数码管作为显示设备,设计时钟功能

2、。(2) 、显示格式,日期:YY MM DD,时间:HH MM SS.(3) 、可以分别设计年、月、日,时、分、秒。在复位后的日期应该为:12 01 01,时间为:00 00 00。(4) 、秒钟复位功能,当秒位键按下后,秒的那位回到 00 。(5) 、键盘按键个数应该万为己确定。(6) 、时间、月、日自行交替显示,或者按键切换显示。二、系统设计设计中采用 AT89C51 芯片及 LED 显示器,一些独立式按键构成一个简单的数字电子钟。设计中是采用单片机的内部定时器进行定时,程序框图如图 2.1 所示: 内部时钟发生器复位清零控制按键AT89C51单片机LED 数码管74HCS245芯片图 2

3、.1 系统框图整个电子钟的工作原理是:在正常的供电状态下,首先利用单片机定时,到了相应的时间由单片机将所需要显示的数据送到 LED 显示器的输入口,当有键按下时则进入相应的按键显示和调整状态,进行按键调整。三、硬件设计:硬件设计是指应用系统的电路设计,包括单片机芯片、控制电路、存储器、I/O 接口等等。硬件设计时,应考虑留有充分余量,电路设计力求无误,因为在系统调试中不易修改硬件结构。如原理图所示,硬件系统主要由单片机最小应用系统、LED 数码管显示部分、电源部分、晶振部分、按键部分等组成。41、单片机最小系统AT89C51. AT89C51 是一种带 8K 字节闪烁可编程可擦除只读存储器的低

4、电压,高性能 CMOS8 位微处理器,俗称单片机。时钟电路由一个 12MHZ 的石英晶体振荡器和两个 22pF 的的电容组成振荡电路和分频电路,为单片机提供内部时钟。复位电路采用上电复位和按键复位结合的方式对电路进行复位,主要是通过 RST 引脚送入单片机。如图 3. 1:图 3.1 89C51 单片机图2、 LED 数码管显示模块 本系统利用 6 位 LED 数码管显示时间,共阴极结构。LED 数码管由 7 段发光二极管组成,当要显示某个数字时只要将数字所对应的引脚送入低电平。图 3.2 LED 数码管的数值表及其引脚图53、晶振模块:下图所示为时钟电路原理图,在 AT89S51 芯片内部有

5、一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚 XTAL2。而在芯片内部,XTAL1 和 XTAL2 之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。图 3.3 晶振部分电路图4、按键模块:本设计中主要有 8 个控制按键,按键功能为:(1)、P1.0 键位为秒复位键,当使用时,使秒所显示数据复位。回到 0 0;(2)、P1.1 键位为分钟加“1”;(3)、P1.2 键位为小时加“1”;(4)、P1.3 键位为切换日期和时间;(5)、P1.4 键位为天数加“1”;(6)、P1.5 键位月份加

6、“1”;(7)、P1.6 键位为年份加“1”;(8)、P1.7 为清零开关,当功能切换为日期显示时,P1.7 键位为日期复位。图 3.4 独立按键部分电路图6四、软件设计:1、Protues 软件的介绍:Proteus 软件所提供了 30 多个元件库,数千种元件。元件涉及到数字和模拟、交流和直流等。在Proteus 软件包中,不存在同类仪表使用数量的问题。Proteus 还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在

7、该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如 Keil C51 uVision2 等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和 SPICE 分析于一身的仿真软件,功能极其强大。在 protues 绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在 protues 的原理图中看到模拟的实物运行状态和过程。用 Protues 软件进行仿真,其仿真的电路图如图 4.1 所示仿真设计图如下:图 4.2 .1 仿真电路图2、程序设计流程图根据所编写的 C 语言程序,画出如下所示的流程图,程序按照流程图的步骤运行。7图 4.2.1 主程序流程图

8、图 4.2.2 时间处理子程序图8图 4.23 键盘扫描程序流程图3、软件仿真结果经过仿真,得到要求中的结果,如图所示:图 4.3.1 清零结果图9图 4.3.2 日期复位结果图图 4.3.3 秒复位结果图五、设计总结我们电气工程机自动化专业的学生学习单片机原理及接口技术课程,配套的开设课程设计。我们三个班的同学在一起进行了一次单片机的课程设计的实训,实训的时间为一个周,在这个周的实训中,我们通过本课程设计明白了这样的课程是培养学生的主专业课,是培养现代化人才的重要技术之一。单片机的课程设计是学习单片机理论的重要实践环节,在单片机的实验课程基础上,10我们通过课程的设计和学习,使我们增进对单片

9、机的感性认识,加深对单片机理论的的理解,使我们掌握单片机的内部功能模块的应用,掌握单片机的接口功能和扩展的应用,掌握一些特殊器件的使用方法,学习编辑综合的程序。使我们了解和掌握单片机应用系统的硬件和软件的设计的方法和调试的过程。充分发挥我们的主观能动性,更好的激发了我们的学习激情和学习的兴趣。这次试训培养了我们大学生能主动利用芯片解决工程上实际的问题的意识,培养了我们的工程实践能力、实际动手能力和自我学习的能力。使我们为完成从实际项目立题、调研、方案论证、方案实施、系统的调试、编写使用说明书等调研过程的基本训练,为今后在相关的领域中从事和单片机有关的设计、开发、应用等工作打下扎实的基础。六、附

10、录用 C 语言编写的程序:#include #define uchar unsigned char#define uint unsigned int/*七段共阴管显示定义*/ uchar code dispcode =0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,/*定义并初始化变量*/0x80,0xBF,0x86,0xCB,0xCF,0xEF,0xED,0xFD,0x87,0xFF,0xDF;uchar second=0;uchar minute=0;uchar hour=0;uchar mstcnt=0;uchar mon=1;ucha

11、r day=1;uchar year=12;int disp=0;int a=0,k1num;sbit P10=P10; / second 调整定义sbit P11=P11; /minite 调整定义sbit P12=P12; /hour 调整定义sbit P13=P13; /年月日与时分秒转换sbit P14=P14;sbit P15=P15;11sbit P16=P16;sbit P17=P17;/*函数声明*/void delay(uchar k ); /延时子程序void time_pro( ); /时间处理子程序void display( ); /时分秒显示子程序void displ

12、ay1( ); /年月日显示子程序void keyscan( ); /键盘扫描子程序/*/*延时子程序*/*/void delay (uchar k)uchar j;while(k-)!=0)for(j=0;j=99)year=1; /*/* 时分秒显示子程序*/*/void display(void) P2=0xfe;P0=dispcodehour/10; /显示小时的十位delay(4);P2=0xfd;P0=(dispcode(hour%10)|0X80; /显示小时的个位delay(4);P2=0xfb;P0=dispcodeminute/10; /显示分的十位delay(4);P2=

13、0xf7;P0=(dispcodeminute%10)|0X80; /显示分的个位delay(4);P2=0xef;P0=dispcodesecond/10; /显示秒的十位delay(4);14P2=0xdf;P0=dispcodesecond%10; /显示秒的个位delay(4); /*年月日显示程序*/void display1(void)P2=0xfe;P0=dispcodeyear/10;delay(4);P2=0xfd;P0=(dispcode(year%10)|0X80;delay(4);P2=0xfb;P0=dispcodemon/10;delay(4);P2=0xf7;P0=(dispcodemon%10)|0X80;delay(4);P2=0xef;P0=dispcodeday/10;delay(4);P2=0xdf;P0=dispcodeday%10;delay(4); /*/*键盘扫描子程序*/*/void keyscan (void) if(P10=0) /按键秒的调整 delay(30);k1num+;if(P10=0)n

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号