电子钟实训总结报告Word文件下载.docx
《电子钟实训总结报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《电子钟实训总结报告Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
1.4设计任务……………………………………………………………………1
1.3系统主要功能………………………………………………………………1
第2章系统的硬件设计…………………………………………………………2
2.1电子钟的硬件电路………………………………………………………2
2.2电路原理图………………………………………………………………3
2.3AT89C51单片机及其引脚说明…………………………………………3
2.474LS707芯片的介绍……………………………………………………5
2.574LS706芯片的介绍……………………………………………………5
第3章系统软件设计……………………………………………………………6
3.1电子钟的主程序…………………………………………………………6
3.2电子钟计时器的显示程序………………………………………………6
3.3定时器中断服务程序……………………………………………………7
3.5延时功能子程序…………………………………………………………10
第4章控制源程序………………………………………………………………10
第5章设计心得…………………………………………………………………13
第6章附录……………………………………………………………………14
附录1元器件清单表…………………………………………………………15
附录2实训产品照片…………………………………………………………16
基于单片机的电子钟的设计
重庆三峡学院应用技术学院
摘要:
介绍了基于ATMEL公司的AT89C51系列单片机的数字式电子钟的路设计与制作,包括硬件电路原理、设计与制作,并分析了相应的软件的设计及其要点,包括软件设计流程、整机仿真与调试.
关键词:
数字式电子钟;
蜂鸣器;
数码管;
;
51系列单片机;
AT89C51;
晶振;
第1章引言
单片机具有体积小,成本低,抗干扰能力强,面向控制,可以实现分机各分布式控制等优点。
本电子钟设计就是利用单片机的上述优点,采用目前市场上性能价格比较高的AT89C51单片机设计而成的最小系统。
它在实际生活中具有广泛的应用。
1.1电子钟的概述
介绍了一种基于AT89C51单片机设计数字电子钟的方法,数字电子钟的硬件设计和软件设计,以及它的性能和特点,该电子钟可以实现时间的显示,具有硬件成本低、计时准确特点。
LED数码管时钟电路采用24小时计时方式,时、分、秒用六位数码管显示。
该电路采用AT89C51单片机,使用5V电池供电,只使用一个按键进行复位状态的控制以及正常显示等状态。
.段选和位选是针对数码管而言的,位选是表示要让哪一片数码管工作,而段选就是要让选通的那片数码管显示什么样的内容。
而对于时钟电路的硬件部分:
LED显示采用动态扫描方式实现,P0口输出段码数据,P2口做位控口,采用6M晶振。
1.2设计目的
(1)通过课程设计,使学生深入理解单片机系统的工作原理,接口电路的设计及调试方法,培养学生综合运用所学理论知识分析和解决实际问题的能力。
(2)提高学生全局考虑问题,综合应用专业知识的能力,锻炼学生的独立工作能力,也是对前期理论与实践教学效果的检验。
(3)掌握用单片机进行实际产品开发的基本过程,加强模块化设计思想的培养,养成良好的设计和编程习惯,增加对本专业的兴趣,为学生今后在电子、测控、通信、机电等领域从事单片机技术工作打下良好基础。
1.3设计任务
1.3.1显示部分
设计一个时钟系统,时钟时间在六位数码管上进行显示,如下图。
从左到右依次为“时:
分:
秒”。
一上电,数码管显示起始时间为0时0分0秒,即数码管显示00.00.00,以后每秒钟时钟系统加1,最大显示值为23.59.59。
数码管可采用并口扩展也可采用串口扩展。
设计方案自定。
1.3.2扩展要求
(1)设计键盘电路,可从键盘进行显示初值设置,也可在系统运行过程中随时进行时间调整。
(2)显示电路也可选择液晶显示器。
1.增加附加功能模块的课程设计,根据难度系数,适当增加分数。
(1)
(2)根据具体题目要求,设计以单片机为控制核心的测量系统或控制系统,完成对指定目标或对象的测量及控制。
(3)设计单片机与测量及控制对象的接口并进行硬件调试。
(4)针对要求测量或控制的对象完成程序的编制。
(5)硬件软件联调,完成指导教师布置的各个具体题目所要求完成的功能。
1.4设计方案
1.5系统主要功能
1.5.1.时钟功能
对于时钟功能,需要在数码管上显示小时、分钟和秒钟,因此,可以在内部存储空间分别定义它们的显示缓存空间,来存放小时、分钟和秒钟的BCD码,各2个字节。
由于时钟是不能停止的,因此需要采用内部定时器自动计时,并使用定时器中断处理程序来定时进行时间数值的刷新。
51单片机的2个定时器都具有8位定时器的工作模式。
当晶振为6MHz时,8位定时器的最大定时值为512us;
要达到1秒钟,可以采用两种方法:
采用一个定时器定时与软件计数相结合的方法;
或者采用两个定时器级联的方法。
考虑到资源问题,我们采用第一个方法,只使用1个定时器T0,并使T0的溢出时间为500us,和两重循环计数一起来实现1秒钟定时。
1.5.2.计时功能
当该电子钟用作计时功能时,只需要一个定时器进行500uS的定时,在本设计中使用单片机的T0定时计数中断。
在T0的中断处理程序中对时、分、秒的缓存空间进行更新。
1.5.3.功能按键
在本次设计中,我们只用到了一个按键,并且此按键是用来控制电路复位的,我们将设计好的复位电路直接接在单片机的复位引脚(RST)上,这样程序在运行过程中就会自动查询该引脚上的电平,当该引脚电平为高电平时,则电路恢复初始状态,反之,则程序正常运行。
第2章系统硬件设计
电子钟的计时器的硬件电路如图所示,采用AT89C51单片机,最小化应用设计;
采用共阳八段LED显示器,P0口输出段码数据,P2.0-P2.5口作列扫描输出。
为了提供共阳LED数码管的驱动电压,用74LS06作为位控驱动输出。
用74LS07作为段控驱动。
采用6M晶振,有利于提高计时的精确性。
2.1电子钟的硬件电路
图2.1硬件系统的总体设计框架
2.2电路原理图设计
电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。
设计电路原理图:
2.3AT89C2051单片机引脚及其说明
AT89C51单片机,是一种低功耗、高性能的、片内含有4KBROM的8位CHMOS单片机,工作电压范围为2.7~6V(实际使用+5V供电),8位数据总线。
它有一个可编程的全双工串行通信接口,能同时进行串行发送和接收。
通过RXD引脚(串行数据接收端)和TXD引脚(串行数据发送端)与外界进行通信。
引脚图如下:
AT89C51单片机采用双列直插式ChipCarrier)的形式封装。
这里仅介绍最常用的有总线扩展引脚的(DIP),QFP44(QuadFlatPack)和LCC(LeadedDIP40封装,AT89C51有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含5个中断,2个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
主要功能特性:
•兼容MCS51指令系统
•4kROM
•32个双向I/O口
•128B内部RAM
•2个16位可编程定时/计数器中断
•时钟频率0-12MHz
•1个串行中断
•2个外部中断源
•共5个中断源
•2个读写中断口线
•低功耗空闲和掉电模式
2.474LS707的介绍
74ls07为六高压正向驱动芯片,引脚图如下
74ls07引脚图
主要电气特性:
电源电压7V
输入电压5.5V
输出截止态电压30V
工作环境温度-55~125℃
引出端符号:
1A-6A输入端
1Y-6Y输出端
2.574LS706的介绍
74ls06为六高压反向驱动芯片,引脚图如下
第3章系统软件的设计
电子钟系统的软件设计,采用主程序和子程序结构。
主程序流程图如下,主程序依次调用显示子程序,调用定时器中断服务程序,调用延时子程序。
显示程序完成时、分、秒各位的显示功能,定时器中断服务程序完成中断定时功能,延时子程序实现软件延时,完成校准时间等功能。
3.1电子钟的主程序
本设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能程序。
其主程序执行流程见下图。
主程序代码如下:
ORG0100H
MAIN:
MOVSP,#60H;
确立堆栈区
MOVR0,#79H;
显示缓冲区首地址
MOVR7,#06H;
显示位数
ML1:
MOV@R0,#00H;
显示缓冲单元清0
INCR0
DJNZR7,ML1
MOVTMOD,#02H;
定时器0,工作方式2
MOVTH0,#06H;
定时器定时500μs
MOVTL0,#06H
MOV30H,#100;
1s=100×
20×
500μs
MOV31H,#20
SETBEA;
EA置1,中断总允许
SETBET0;
ET0置1,定时器0中断允许
SETBTR0;
TR0置1,定时开始
ML0:
LCALLDIS;
调用显示子程序
SJMPML0
3.2电子钟定时器的显示程序
数码管显示的数据存放在内存单元79H~7EH中。
其中79H~7AH存放秒数据,7BH~7CH存放分数据,7DH~7EH存放时数据,每一地址单元内均为十进制BCD码。
由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM代码表中。
显示时,先取出79H~7EH某一地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。
显示子程序代码如下:
DIS:
MOVR0,#79H;
显示数据缓冲区首地址送R0
MOVR3,#0FEH;
使显示器最右边位亮
MOVA,R3
LD0:
MOVp2,A;
送扫描值
MOVA,@R0;
取欲显示的数据
ADDA,#18H;
加上偏移量
MOVCA,@A+PC;
取出字型码
CJNER3,#3BH,LD1
AJMPLD2
LD1:
CJNER3,#2FH,LD3
LD2:
ANLA,#7FH
LD3:
MOVP0,A;
送显