1、1 单片机原理课程设计报告 1.设计课题任务 设计一个具有特定功能的电子钟。具有时间显示、报时等功能。并有时间设定,时间调 整功能。 2.功能要求说明 设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符 “8”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从 0 时 0 分 0 秒开始运行, 进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用调 整键校时,调整结束后可按启动/调整键再次进入时钟运行状态。同时,要求电子中具有整点 报时功能。 3.设计总体方案介绍及工作原理说明 本电子钟主要由单片机、两个独立按键、显示接口电路和复位电
2、路构成,设计课题的总 体方案如图所示: 4.设计课题硬件系统各模块功能简要介绍 本设计的硬件系统主要采用以下基本模块来实现,单片机模块,输入模块、输出模块。 (1)单片机模块:包高性能 80C51 单片机,晶振电路。晶振电路通过引脚在芯片外并接 石英晶体振荡器和两只电容。这样就构成一个稳定的自激振荡器。 (2)输入模块:本模块共用到 2 个按键,一个是功能键,主要负责校时功能的开闭,另 一个为调节键,它们可以独立实现相应的电子钟功能。 (3)输出模块:8 位 LED 显示,采用共阳极数码管作为显示窗口。 2 5. 设计课题电路元器件布局图 6. 设计课题软件系统个模块功能简要介绍 本设计的软件
3、系统主要采用以下基本模块来实现,主程序、中断服务程序、键盘输入程 序模块、数码管及延时模块。 主程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用 及其控制。 中断服务程序:主要是用于电子钟的准确运行、数据输入过程中的闪烁。 键盘输入程序模块:主要是用于确定按键并得到特定的键码值。 数码管:主要是用于扫描数码管及利用数码管显示时间。 延时模块:程序中有两种延时子程序,一种是短延时用于判键按下等,一种是长延时。 7. 设计课题软件系统程序流程框图 该设计采用 WAVE6000 编译汇编程序,之后使用 Proteus 进行仿真。 程序框图如下: 3 8.设计课题的设计结论及
4、使用说明 本设计为基于单片机的电子钟的设计。刚开始,我们很多地方理不清头绪,无从下手, 但通过认真研究设计课题,找书查资料,最终确定基本设计方案,但真正的过程中虽然经历 了许多困难,却积累了很多宝贵的经验,本设计用 1 个八位一体的共阳数码管做为显示器, 它显示时间值;设计中有两个按键,其中 S1 为功能键区,S2 为调节键,按住 S2 时加速调节, 4 当整点时间到时蜂鸣器(提示灯)报警。这样的结果与设计要求完全相符。 9.设计课题的仿真结果 在 Proteus ISIS 的 Debug 菜单中选择 Execute,运行程序,系统仿真结果如下: (1) 、开机动画,“8”循环状态,依靠上电或
5、按复位键进入,在此状态下,按 S2 键无效, 按 S1 键有效,使电子钟进入运行状态; (2) 、电子钟状态,在此状态下,按 S2 键无效,只有按下 S1 键后,退出运行状态,进入 校时状态; (3) 、校时状态,按 S1 键进入时、分的闪烁,在此状态下,按 S2(+1 键) 、键有效;校 时结束后按 S1 键,退出调整状态,返回电子钟状态。在调整状态时长按 S2 时可以 连加及连减。 时间显示格式为:时-分-秒; 开机动画 5 电子钟运行仿真 整点报时 10.程序设计 ;- ;50H 1ms ;51H 秒寄存器 ;52H 分寄存器 ;53H 时寄存器 ;5FH 秒个位; 6 ;5EH 秒十位
6、 ;5DH 分个位 ;5CH 分十位 ;5BH 时个位 ;5AH 时十位 ;54H 控制调时闪烁 ;- ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定时器 0 中断入口地址 LJMP TIMET0 ORG 1000H ;- ;开机程序 ;屏幕上循环闪烁 8,作者:宗睿 ;- START: MOV R6, #2 ;闪烁次数 MOV A, #01H ;位选 TT: MOV P3, A MOV P0, #80H ;段码“8“ LCALL DELAY MOV P3, #00H DJNZ R6, TT LCALL DELAY LCALL DELAY1 RR A JB P1.0, TT ;检测键是否按下 LCALL DELAY ;延时去抖 JNB P1.0, KAI ;再