基于51单片机汇编语言的数字钟课程设计报告含有闹钟万毕业论文Word文档格式.docx
《基于51单片机汇编语言的数字钟课程设计报告含有闹钟万毕业论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机汇编语言的数字钟课程设计报告含有闹钟万毕业论文Word文档格式.docx(58页珍藏版)》请在冰豆网上搜索。
![基于51单片机汇编语言的数字钟课程设计报告含有闹钟万毕业论文Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/9/c1be0b5b-f73a-4d34-8565-4b232754c67a/c1be0b5b-f73a-4d34-8565-4b232754c67a1.gif)
单模块流程设计…………………………………………8
各模块设计概述、流程图
模块源程序集合及注释
8
13
六:
单模块软件测试…………………………………………23
七:
系统检测调试……………………………………………24
硬件电路调试
软件部分烧写调试
八:
系统优化及拓展…………………………………………26
九:
心得体会…………………………………………………28
单片微型计算机课程设计
一、概述
基于汇编语言的电子数字钟
概述
课程设计题目:
电子数字钟
应用知识简介:
●51单片机
单片机又称单片微控制器,它不是完成某一个逻辑功能
的芯片,而是把一个计算机系统集成到一个芯片上。
作为嵌
入式系统控制核心的单片机具有其体积小、功能全、性价比
高等诸多优点。
51系列单片机是国内目前应用最广泛的单
片机之一,随着嵌入式系统、片上系统等概念的提出和普遍
接受及应用,51系列单片机的发展又进入了一个新的阶段。
在今后很长一段时间内51系列单片机仍将占据嵌入式系统
产品的中低端市场。
●汇编语言
汇编语言是一种面向机器的计算机低级编程语言,通常
是为特定的计算机或系列计算机专门设计的。
汇编语言保持
了机器语言的优点,具有直接和简捷的特点,其代码具有效
率高实时性强等优点。
但是对于复杂的运算或大型程序,用
汇编语言编写将非常耗时。
汇编语言可以与高级语言配合使
用,应用十分广泛。
●ISP
ISP(In-SystemProgramming)在系统可编程,
是当今流行的单片机编程模式,指电路板上的空白元器
件可以编程写入最终用户代码,而不需要从电路板上取
下元器件。
已经编程的器件也可以用ISP方式擦除或再
编程。
本次课程设计便使用ISP方式,直接将编写好的
程序下载到连接好的单片机中进行调试。
选题
系统功能分析
硬件电路设计
整体流程设计
及模块划分
模块流程设计
模块编
码测试
系统合成调
试编译
下载调试(含硬
件电路调试及软
件烧写调试)
验收
完成总结报告
课程设计流程图↑
选题目的及设计思想简介:
课程设计是一次难得的对所学的知识进行实践的机会,我希望通过课程设计独立设计一个简
单的系统从而达到强化课本知识并灵活运用的目的。
电子数字钟是日常生活钟随处可见的简单系
统。
对电子数字钟的设计比较容易联系实际并进行拓展,在设计中我将力求尽可能跳出课本的样
板,从现实生活中寻找设计原型和设计思路,争取有所突破。
如图所示便是我本次课程设计流程图,设计的整个过程运用自顶向下分析、自底向上实现的
办法进行设计,借鉴在软件工程中学习到的软件设计流程和规范来完成系统设计并在设计过程中
体会软件设计的流程。
06电气工程及其自动化2班
1
设计基本原理简介
二、设计基本原理简介
数字钟的设计首先要保证其走时尽可能准确,其次再根据人们日常的使用
习惯来设定其附加功能。
在设计中利用单片机定时计数器来完成走时并用两组输出口控制数码管来
显示;
通过编程向某一输出口输出方波实现报时及闹铃;
利用输入端口外接各
种开关来完成对走时及显示的控制(如预置时间等)。
在设计中需要用到许多技巧。
以下为我在学习单片机课程中总结的一些设
计思想或方法:
●占空比概念在设计中的运用
如图所示的一串方波序列,导通时间同周期的比值
即占空比。
在用单片机控制对多个数码管的扫描显示
中,数码管接收到的电压可以看成是一串方波序列,占
空比控制了数码管的亮度。
实际上对显示延时时间的调
节就是调节数码管电压的占空比,当占空比大于一定数
值的时候数码管可以显示,实验证明占空比在0.1时仍可以使数码管清晰显示。
利用这个概念可以
比较直观地理解显示延时的调节。
●CPU的分时复用
单片机只有一个CPU,因此在一个时间内只能执行一条语句,要使单片机同时控制多个外部元
件(比如扬声器和数码管)就必须对单片机的CPU进行分时复用,让单片机在一小段时间内连续交
替执行控制多个器件的语句,从表面上看,单片机便用一个CPU控制了多个元件。
本次课程设计中
对整点报时和闹铃功能的实现便用到了这个概念。
●单片机位寻址区的使用
单片机内部数据存储器由20H到2FH共有16个字节的位寻址区可以被作为程序执行过程中的状
态参数,许多程序模块至于两个状态(比如闪烁与正常显示,报时与不报时等)用位寻址区中的
某一位来记录程序执行状态,在需要对状态进行判断的时候十分方便并且节约空间,一个字节便
可以判断八个状态,而非位寻址区的地址记录程序状态时可能需要先进行变换,增加了执行成本
且容易出错。
●检测开关时需要注意的问题
对于用各种开关控制程序执行状态的程序设计中,需要注意实时地进行开关的检测,以确保
一旦有开关动作,程序状态立即随之改变。
此外,在用多个开关控制不同执行状态时,应注意设
置开关检测的优先级以防止多个开关同时按下时出现错误。
●系统资源分配与使用
单片机有许多资源是有限的不能滥用,比如定时计数器T,外部中断等,在设计一个多模块程
序时,要注意先做一个整体规划,把稀缺资源用在最需要用的地方。
此外在有多个模块时,要注
意模块间的数据传递,比如累加器A和进位标志C,在使用时要注意不能让前一个模块的数据对下一
个模块产生不希望有的影响。
在模块间的数据传递比较多时最好用固定的内部数据存储器,以避
免冲突发生错误。
2
设计要求及说明
三、设计要求及说明
㈠设计要求:
基于单片机电路,借鉴生活中常见的电子钟的功能,结合课本的要求使用汇编语
言设计一个简单的电子钟系统。
要求使用简便,功能实用,错误少,有一定创新性。
㈡电子数字钟实现的主要功能:
①实现正常走时(秒→分→时→日→月→年进位)
②能够预置时间和日期
③能够自动区分平闰年和大小月
④具有闹铃及设定闹铃时间功能
⑤具有整点报时功能
⑥具有生日提醒功能,能够预置生日时间
⑦在任何一种预置状态下,预置项目会闪烁显示
㈢其它设计说明
①优先级:
预置>
闹铃>
报时>
生日提醒>
正常显示,即预置状态下闹铃、报时功
能及生日提醒功能都无效
②生日时间到五个数码管显示“HAPPY”
③生日显示状态下,按下中断INT0恢复正常显示且此后只有在下更改生日日期
或第二年生日显示才有效。
④正常显示状态下按下中断INT0进入预置状态,再按一次恢复。
⑤用数码管(K0,K1)控制显示状态:
00:
时间,01:
闹铃时间,10:
日期,11:
生日时间且显示样板如下图所示:
时间:
12点39分45秒
日期:
08年2月29日
闹铃:
于早晨6点10分响,
最后一位为一表示使能有效
生日:
6月1日生日,最后
两位bd为birthday的缩写
⑥预置由拨码开关K2K3K4分别控制数码管123456显示值,预置优先级:
LED34>
LED12>
LED56(相应数码管显示的项目,显示状态下才能预置)
⑦整点报时声音为59分51、53、55、57秒的后半秒报四声低音,59秒的后半秒
报一声高音
⑧闹铃每次响一分钟
⑨不论是预置状态还是正常走时状态均能够自动区分平闰年和大小月
⑩闹铃使能由拨码开关K5控制并实时显示
3
整体设计方案
四、整体设计方案
㈠硬件电路设计
系统硬件电路根据系统功能可知,需要六个数码管,一个外部中断
INT0,一个扬声器,由此结合单片机课程学习中对实验面板的了解,做
出如下电路:
如图,晶振频率12MHz,拨码开关数值由P0口读入;
P2口的输出作为
控制数码管的段控信号,经74LS573即8位数据锁存器接到数码管中。
数
码管采用共阴接法(图中未标示);
P1.0-P1.5作为数码管的位控信号输
出端;
开关W2经一个基本RS锁存器接入INT0,每按一次开关INTO取反一
次,按两次输入一个下降沿;
扬声器由P1.6口控制。
㈡系统软件总流程设计
根据系统要求,设计出系统软件总流程图如下以T0作为正常走时的
计时器,T1作为预置状态下预置项目值自动跳升的控制计时器,INT0
作为设定预置及清楚生日信号的控制按钮
初始化
开关检测并将要
显示的项目送入
显示缓存
预置项目
闪烁显示
Y
预置有效?
其余项目
正常显示
N
闹铃报时?
闹铃
报时
生日信号?
显示生日祝
福HAPPY
T0中断走时(进
位秒→分→时→
日→月→年)
T1预置时间日期
闹铃时间生日日
期
软件系统总流程图
↑
INT0中断设定(预
置信号设置清除;
生日标志清除)
设计使每一轮显示(即六个数码管都显示一次)便检测一次开关使
上图的“检测开关值→判断并显示→检测开关值”的循环时间大约为
10ms,即每隔10ms检测一次开关值,每个数码管接收到的电压信号占空
比大约为17,确保数码管正常显示。
三个中断源中断程序执行时间每
次均为几十毫秒,基本不影响主程序的显示及闹铃输出。
中断优先级
T0>
INT0>
T1,首先确保走时尽可能的准确,其次由于T1的开启和关闭是
由INT0进行控制的,故INT0优先级较高。
此外有优先级“预置显示>
闹
铃>
整点报时>
生日显示”,由于预置显示是人为控制的故优先级最高,
考虑到日常生活中假如闹铃或整点报时被生日显示覆盖可能使影响到
人们的日常生活故设定生日优先级最低,且闹铃最多影响生日信号一分
钟。
闹铃和整点报时不影响正常的时间等的显示。
㈢模块划分及分析
根据系统功能将模块划分如下
●ONE:
初始化程序模块
进行资源分配(EQU,BIT伪指令),设定初值,各中断初始化
●TWO:
开关检测模块
检测开关号,将要显示值送入显示缓存
●THREE:
显示主程序
显示显示缓存中值,并进行生日,闹铃,报时判断
●SEVEN:
显示生日祝福HAPPY程序
经显示主程序判断生日时间到要执行的显示HAPPY程序(其