基于51单片机多功能电子时钟设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计报告
多功能电子数字钟
姓名:
学号:
班级:
指导教师:
目录
一课程设计题目-------------------------------- 3 二电路设计--------------------------------------- 4 三程序总体设计思路概述------------------- 5 四各模块程序设计及流程图---------------- 6 五程序及程序说明见附录------------------- ** 六课程设计心得及体会---------------------- 11 七参考资料--------------------------------------- 12
一题目及要求
本次单片机课程设计在Proteus软件仿真平台下实现,完成电路设计连接,编程、调试,仿真出实验结果。具体要如下:用8051单片机设计扩展6位数码管的静态或动态显示电路,再连接几个按键和一个蜂鸣器报警电路,设计出一个多功能电子钟,实现以下功能:
(1)走时(能实现时分秒,年月日的计时)
(2)显示(分屏切换显示时分秒和年月日,修改时能定位闪
烁显示)
(3)校时(能用按键修改和校准时钟)
(4)定时报警(能定点报时)
本次课程设计要求每个学生使用Proteus仿真软件独立设计制作出电路图、完成程序设计和系统仿真调试,验收时能操作演示。最后验收检查
结果,评定成绩分为:
(1)完成“走时+显示+秒闪”功能----及格
(2)完成“校时修改”功能----中等
(3)完成“校时修改位闪”----良好
(4)完成“定点报警”功能,且使用资源少----优秀
二电路设计(电路设计图见附件电路图)
(1)采用89C51型号单片机
(2)采用8位共阴数码管
(3)因为单片机输出高电平时输出的电流不足以驱动数码管,所以在P0口与8位数码管之间加74LS373来驱动
数码管
(4)P2口与数码管选择位直接加74LS138译码器
(5)蜂鸣器接P3.7口。因为单片机输出高电平时输出的电流不足以驱动蜂鸣器所以蜂鸣器,所以P3.7口与蜂鸣
器直接接反相器再接蜂鸣器的一端,蜂鸣器的另一端
接5V电源。这样当P3.7口给高电平时蜂鸣器导通名
声。否则反之。
(6)单片机XTAL1,XTAL2端接外部时钟电路(时钟电路参考课本),RAT端接复位电路(复位电路参考课本)。
EA端接5V电源,使得单片机读取片内程序。
(7)修改时间控制开关key1接p1.0口,key2至key7用来对时间,日期,闹钟时间的修改,依次于p1.1至p1.6。
key2用来显示日期并做修改的开关,接于INT0(p3.2)口。key3用来显示闹钟时间并做预置的开关,接于
INT1(p3.3)口。所有按键的另一端接地。
三总体设计思路概述
(1), 数码管显示使用动态显示,每四毫秒轮流显示一个数码
管.一个循环耗时32ms(这样会有微闪烁可设置更快的动态显示)
(2), 设置四个中断,高:定时器1溢出中断外部
中断外部中断定时器1溢出中断.
A.首先允许前三个中断,当没有出现T0, T1中断时主程序在
判键并且计时器0在计时.每隔4ms定时器0溢出中断,动态轮流显示一个数码管.用LED_LP做标志,计中断次数.
每中断250次秒加一,每60秒分加一, 时日月年依规律类推(不用判断平润年).
B.当出现T0(显示日期并做修改)或T1(显示闹钟定时时间并
可修改定时时间)中断时都会自动关闭计时器0,此时软件控制打开计数器1,用它继续计时并且如A中用来动态显示日期或闹钟设置的时间,同时每个中断子程序都是在判键,通过按键修改日期或设置闹钟时间.此时已经是计数器1中断级别最高,同样每4ms动态轮流显示数码管,此时数码管显示的是日期或定时时间.当修改完时间或定时时间,人工弹出按键,中断结束返回主程序,在返回前关闭定时器1.这样,在没有T0,T1中断时计数器0中断级别最高.
四各模块程序设计及流程图
(1) 主程序判键修改时间及走时:
流程图:
(2)定时器0每隔4ms溢出中断(优先级别最低)
流程图:
(3) 外部中断0(优先级别第二)
流程图:
N
(4) 外部中断1(优先级别第三)
流程图:
N
(5) 定时器0每隔4ms溢出中断(优先级别最高)
流程图:
六课程设计心得体会:
此次课程设计是大学里来第二次课程设计,于我的感觉是这是一次与实际最贴切的一次课程设计,亦或是说实践。首先我的心得体会有如下几点
(1)万事开头难,要做好单片机课程设计必须要有足够的耐心与兴趣。要反复编程调试,检验。而本次软件编程我反复调试了多达几十次。
(2)要想全面的做好这次课程设计,必须要全面统筹,细心规划好自己所需使用的单片机内部资源以及硬件资源。并尽量做到少用资源而达到最大实用效果。同时也要单个功能慢慢编程调试,而不要好高骛远,急功心切。
(3)第一次设计编写这样较为难而大的课程设计必须要做到对单片机基础硬件与软件的熟练掌握,尤其单片机
里汇编语言指令。只有做到融汇贯通方能运筹帷幄。(4)做好课程设计要学会借鉴别人好的思想与技巧,而教材上就有许多很好的例子。同时要将每次单片机实验
灵活运用于此次课程设计。
七参考资料:
(1) 单片机授课教材
(2) 单片机网络资源
八.程序:
SHAN EQU
20H ;秒闪烁标志
BUFF_KEY EQU 21H ;键盘键
LED1 EQU
22H ;数码管显示缓存
LED2 EQU 23H
LED3 EQU 24H
LED4 EQU 25H
LED5 EQU 26H
LED6 EQU 27H
LED_LP EQU 28H ;计时标志
HOR EQU 30H ;小时值缓存
MIN EQU 31H ;分钟值缓存