文档介绍:单片机课程设计报告
多功能电子数字钟
目录
一课程设计题目-------------------------------- 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)。因为单片机输出高电平时输出的电流不足以驱动蜂鸣器所以蜂鸣器,,蜂鸣器的另一端接5V电源。。否则反之。
(6)单片机XTAL1,XTAL2端接外部时钟电路(时钟电路参考课本),RAT端接复位电路(复位电路参考课本)。EA端接5V电源,使得单片机读取片内程序。
(7),key2至key7用来对时间,日期,闹钟时间的修改,。key2用来显示日期并做修改的开关,接于INT0()口。key3用来显示闹钟时间并做预置的开关,接于INT1()口。所有按键的另一端接地。
三总体设计思路概述
(1), 数码管显示使用动态显示,(这样会有微闪烁可设置更快的动态显示)
(2), 设置四个中断,高底:定时器1溢出中断外部中断0 外部中断1 定时器1溢出中断.
,当没有出现T0, ,,,每60秒分加一, 时日月年依规律类推(不用判断平润年).
(显示日期并做修改)或T1(显示闹钟定时时间并可修改定时时间)中断时都会自动关闭计时器0,此时软件控制打开计数器1,用它继续计时并且如A中用来动态显示日期或闹钟设置的时间,同时每个中断子程序都是在判键,,同样每4ms动态轮流显示数码管,,人工弹出按键,中断结束返回主程序,,在没有T0,T1中断时计数器0中断级别最高.
四各模块程序设计及流程图
(1) 主程序判键修改时间及走时:
开始
流程图:
是否到闹钟预置时间
ban
Y N
打开蜂鸣器一分钟后再关闭
时间修改控制键是否按下
N
Y N
是否有修改键按下
Y
处理相应按键对应时间的修改(加1减1)
并给出相应的修改闪烁标志(SXX)
(2) 定时器0每隔4ms溢出中断(优先级别最低)
流程图:进入中断
压栈
判断是否有秒闪和修改闪烁标志
结束中断
出栈
Y 轮流动