收藏 分享(赏)

基于单片机的数字钟设计.doc

上传人:精品资料 文档编号:10726073 上传时间:2020-01-02 格式:DOC 页数:30 大小:464.50KB
下载 相关 举报
基于单片机的数字钟设计.doc_第1页
第1页 / 共30页
基于单片机的数字钟设计.doc_第2页
第2页 / 共30页
基于单片机的数字钟设计.doc_第3页
第3页 / 共30页
基于单片机的数字钟设计.doc_第4页
第4页 / 共30页
基于单片机的数字钟设计.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、第 1 页 共 30 页泰山职业技术学院毕业设计(论文)题 目:基于单片机的数字时钟系 部: 汽车电子工程系专 业: 应用电子技术 学 号: 201103010103 学生姓名: 于 学 成指导教师: 宋 丽 玲 职 称: 讲 师 二 O 一四 年 六月 二十五 日第 2 页 共 30 页泰山职业技术学院毕业论文(设计)任务书课题名称:基于单片机的数字时钟系 部:汽 车 电 子 工 程 系专 业:应 用 电 子 技 术 姓 名:于 学 成 学 号:指导老师:宋 丽 玲 二一四 年 六 月二十五日第 3 页 共 30 页一、 毕业论文(设计)的目的与要求:要求:采用单片机实现数字钟的基本功能,要

2、求采用 4位数码管,高两位显示小时,低两位显示秒;采用开关控制数字钟的启动、停止、复位和调整时间;时间显示采用 24 小时制第 4 页 共 30 页二、毕业论文(设计)的内容:内容:1方案总体设计2控制系统硬件电路设计(显示采用四位数码管)3软件流程图设计,汇编程序编写4电气原理图的绘制三、毕业论文(设计)进程的安排序 号 论文(设计)各阶段名称 日 期 备 注 第一章 论文背景及设计任务 . 第二章 系统方案设计 . 第三章 硬件电路设计 . 第四章 软件系统设计 . 第五章 电路调试 . 第六章 总结 .第 5 页 共 30 页四、任务执行日期:自年月日起,至年月日止。学 生(签字)_指导

3、教师(签字)_系主任(签字)_第 6 页 共 30 页目录摘 要 .错误!未定义书签。第一章 论文背景及设计任务 .81.1 论文背景 .81.2 课程设计题目描述和任务 8第二章 系统方案设计 .92.1 整体设计 92.2 方案设计与论证 9第三章 硬件电路设计 .103.1 AT89C51 的单片机简介 103.2 LED 显示电路 123.3 键盘控制电路 .12第四章 软件系统设计 .134.1 程序编写设计流程图 .134.2 绘制数字时钟电路 Protues 仿真原理图 144.2.1 启动 ISIS 7 Professional 软件 144.2.2 仿真电路绘制 144.2.

4、3 电路检测 .144.3 软件设计 144.3.1 运行 keil 软件编写程序并编译、连接 错误!未定义书签。4.3.2 将程序烧入单片机并运行 .错误!未定义书签。4.3.3 运行程序 错误!未定义书签。第五章 电路调试 .155.1 软件与硬件调试 155.2 仿真结果分析 15第六章 总结 .17附录: 18数字时钟原理图 .18数字时钟源程序 .19参考文献: .29第 7 页 共 30 页摘 要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统

5、,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(3 个 2 位共阳数码管,一个发光二极管和一个蜂鸣器)和应用程序(proteus 软件和 KEIL 编译软件) ,构成相应的应用系统。关键词:单片机 AT89C51 共阳数码管 发光二极管 蜂鸣器 proteus软件 KEIL 编译软件摘要翻译:In recent years along with the computer in the s

6、ocial field of permeability and large scale integrated circuit of development, the application of single chip microcomputer, is continuously to further, because it has a strong function, small volume, low power consumption, the price is cheap, reliable work, use convenient wait for a characteristic,

7、 therefore particularly suitable for related control and system, more and more widely used in automatic control, intelligent instrument, instrument, data collection, military products and household electrical appliances, and other fields, microcontroller is often as a core component to use, in accor

8、ding to the specific hardware structure, and the view of the specific application of the characteristics of the object software combines tomake perfectThis do digital clock is a single chip microcomputer (AT89C51) as the core, combined with related components (3 two common Yang digital tube, a light

9、 emitting diode and a buzzer) and applications (proteus software and KEIL compiler software), constitutes corresponding application system. Keyword: A single-chip microcomputer, AT89C51, total Yang digital tube, light emitting diode, buzzer, proteus software, KEIL compiler software第 8 页 共 30 页基于单片机的

10、数字时钟第一章 论文背景及设计任务1.1 论文背景数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。单片机 STC89C51 在 Proteus 软件中实现数字时钟的定时、时间调整、闹正设置等功能。具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方

11、面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C51 芯片和 3 个两位一体的共阳极的数码管为核心,辅以必要的电路,构成了一个单片机数字时钟。单片机 AT89S51 可调数字钟系统设计的核心是目前应用极为广泛的 51 系列单片机,可调数字钟配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。1.2 课程设计

12、题目描述和任务单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。此数字钟是一个将“时” 、 “分” 、 “秒”显示于人的视觉器官的计时装置。显示器件选用 LED 七段数码管。在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。使用动态数码显示的方法,运用独立式按键识别过程,按“时” , “分” , “秒”数据送出显示处理方法。(1)具有时、分、秒计数显示功能,以24小时循环(2)LED数码管显示时、分、秒的个位和十位(3)可以在任意时刻校准时间(4)能够完成时间的显示、定时闹钟、复位等功能第 9 页 共 30

13、 页第二章 系统方案设计2.1 整体设计此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用 8 个共阴数码管分别显示,星期(年份) ,小时、分钟(月份)和秒(日) ,通过动态扫描进行显示,从而避免了译码器的使用,同时节约了 I/0 端口,使电路更加简单。单片机采用 AT89S51 系列,这种单片机应用简单,适合电子钟设计整体设计框图如图 2-1 所示:图 2-1 数字时钟整体电路2.2 方案设计与论证方案一:采用各种纯数字芯片实现数字时钟的设计。优点:各个模块功能清晰,电路易于理解实现。缺点:各个模块功能已定不能进行智能化调整,整体电路太庞大。方案二:采用 FPGA

14、 模块用硬件语言实现功能。优点:运算速度快,走时精度高,算法简单。缺点:成本高,大材小用。方案三:第 10 页 共 30 页采用单片机最小系统实现功能。优点:电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。缺点:走时有一定的误差。经过综合考虑成本问题以及电路实现问题,选择第三种方案实现设计要求。第三章 硬件电路设计3.1 AT89C51 的单片机简介(一)AT89C51 的介绍AT89C51 单片机是在一块芯片中集成了 CPU、RAM、ROM、定时器/计数器和多种功能的 I/O 接口电路等一台计算机所需要的基本功能部件,AT89C51 单片机内包含下列几个部件:(1) 一个 8

15、位 CPU;(2)一个片内振荡器及时钟电路;(3)4K 字节 ROM 程序存储器;(4)128 字节 RAM 数据存储器;(5)两个 16 位定时器/计数器;(6)可寻址 64K 外部数据存储器和 64K 外部程序存储器空间的控制电路;(7)32 条可编程的 I/O 线(四个 8 位并行 I/O 端口) ;(8)一个可编程全双工串行口;(9)具有五个中断源、两个优先级嵌套中断结构。(二) AT89C51 单片机的部分管脚说明:AT89C51 单片机采用 40 条引脚双列直插式器件,引脚除 5V( 40 脚)和电源地( 20脚)外,其功能分为时钟电路、控制信号、输入/输出三大部分,引脚图如下图:

16、第 11 页 共 30 页图 3-1 AT89C51 引脚图 Vcc 40 电源端;GND 20 接地端。工作电压为 5V 。 外接晶振引脚图 3-2 外 接 晶 振 引 脚 图XTAL1 19 、XTAL2 18 :XTAL1 是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外部振荡器时,外部振荡信号应直接加到 XTAL1,而 XTAL2 悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为 12MHz,时钟频率就为 6MHz。晶振的频率可以在1MHz-24MHz 内选择。电容取 30PF 左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。复位 RST 9第

17、12 页 共 30 页图 3-3 常用复位电路图在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后 P0P3 口均置 1引脚表现为高电平,程序计数器和特殊功能寄存器 SFR 全部清零。/EA=1 31 脚当/EA=1 时,访问内部程序存储器,当 PC 值超过内 ROM 范围时,自动转执行外部程序存储器的程序;当/EA=0 时,只访问外部程序存储器。(三)另外介绍一下输入输出引脚(本系统只用到 P0、P1、P2 口):(1) P0 端口P0.0-P0.7 是一个 8 位漏极开路型双向 I/O 端口,端口

18、置 1(对端口写 1)时作高阻抗输入端。作为输出口时能驱动 8 个 TTL。对内部 Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低 8 位)/数据总线,访问期间内部的上拉电阻起作用。(2) P1 端口P1.0P1.7是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 Flash 程序存储器编程时,接收低 8 位地址信息。(3) P2 端口P2.0P2.7是一个带有内部上拉电阻的 8 位双向 I/0 端

19、口。输出时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 Flash程序存储器编程时,接收高 8 位地址和控制信息。在访问外部程序和 16 位外部数据存储器时,P2 口送出高 8 位地址。而在访问 8 位地址的外部数据存储器时其引脚上的内容在此期间不会改变。第 13 页 共 30 页YNNY3.2 LED 显示电路本课程设计用到共阳极数码管通过其引脚图,便可顺利完成其连接。图 3-4 共阳数码管内部结构图3.3 键盘控制电路通过 S1、S2、S3 和 S4 四个按键,对时间进行修改和闹钟的设置,S0 控制闹钟的启动和停止。按下S1键显示闹钟,松开后显示时

20、间;按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整结束后按下S1恢复正常显示;按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2分加1,调整结束后按下S1恢复正常显示。当用手按下一个键时,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也会出现类似的情况,这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于 10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟 10ms 来等待抖动消失,这之后,再读入键盘码。第四章 软件系统设计4.1 程序编写设计流程图开始初

21、始化响铃判断主程序显示时间S0 闭合第 14 页 共 30 页NYNNYY图 4-1 程序编写流程图4.2 绘制数字时钟电路 Protues 仿真原理图4.2.1 启动 ISIS 7 Professional 软件元件的加载:找到原件后双击原件即可完成加载原件。如图 4-2 所示:图 4-2 Protues加载原件图4.2.2 仿真电路绘制放置元件调整原布局连线最后得到的原理图如下:闹钟调整显示闹钟响铃 时间调整S1 按下S4 按下S3 按下第 15 页 共 30 页图 4-3 Protues 仿真图通过 S1、S2、S3 和 S4 四个按键,对时间进行修改和闹钟的设置,S0 控制闹钟的启动和

22、停止。按下S1键显示闹钟,松开后显示时间;按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整结束后按下S1恢复正常显示;按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2分加1,调整结束后按下S1恢复正常显示。4.2.3 电路检测电路连接完毕后,单击运行按钮(如下图)检测电路是否有误,如果电路如果无误进行软件检测。4.3 软件设计图 4-6 仿真结果图第 16 页 共 30 页第五章 电路调试5.1 软件与硬件调试单片机应用系统的调试包括硬件和软件两部分,但是它们并不能完全分开。一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。软件调试是指用仿

23、真软件进行仿真调试,验证系统的各项功能;硬件调试即软件调试成功后,将程序下载至 AT89C51 芯片中,用焊接好的电路来进行各项功能的验证与检测。需要特别注意的是软件调试与硬件调试的差异,软件调试只是初步的估测,硬件的调试才是最真实的5.2 仿真结果分析按键问题我的设计中,很多功能选择是通过按键开关实现的。在仿真中发现,调整数值时,有时按键反应太快,按一次,跳了几下,使设置时间,日期很不方便。但是仿真多了之后,找到了按键(实际上是按鼠标)的节奏,对按键的掌控力提高了不少,不怎么会出现跳变的情况了。有些开关我采用了长按键的方式来防抖,效果不错,但是每次都要长按键,调整效率太低,我没有普及。本来想

24、把所有的按键都加延时防抖电路,但仿真中感觉对键盘的控制力没提高多少,有时还是会出问题。 P0口开关问题P0口比较特殊,它存在高阻态,要使其输入不是高电平就是低电平,就要接上拉电阻,给其高电平输入。中断冲突问题为了实现秒表,我在T0中断嵌套了秒表相关进位程序,由于秒表要求精度0.01秒,故我的T0中断定时为就刚好0.01秒,中断100次,刚好1秒。秒表确实实现了,但是我的闹铃音质变差了。一开始以为是闹铃程序存太多冗余环节,影响了T1的音乐输出中断,但是检查程序后,发现没什么多余的,裁剪无从下手。在仿真中,添加T0中断服务程序,但是将中断进入的间隔变大,即0.05秒进入一次中断,发现音质有所下降,

25、有滋滋声,但比原来的好。最后认定应该是T0中断过于频繁,T1音乐频率发生中断被打破,当单位时间内被打破的次数达到一定程度时,音符和节拍的对应发生紊乱,最终音质变差。定时功能的实现过程定时功能运用了一个内存地址3CH为标志位,只有3CH中所存值非0时,在主程序中才第 17 页 共 30 页判断定时是否已到。3CH值初始化为0,程序开始运行时并不判断定时是否已到。当通过按键进入定时初值设置,并开始倒计时,3CH的值被赋为1,当倒计时显示到0时,进入闪烁提示,提示结束后3CH又被赋值为0,程序回到主程序后,不必判断定时是否已到。但当倒计时未完,按返回键回到主程序时,3CH的值为1,故在主程序判断未完

26、成的定时任务,倒计时到0时调用同一个提示程序,最后仍可保证在主程序不再定时开启时去判断定时,从而节约资源。软件消抖消抖可以采用硬件(施密特触发器)的方式,也可以采用软件的方式。在此只讨论软件方式。软件消抖有定时器定时,和利用延时子程序两种方式。一,定时器定时消抖可以不影响显示模块扫描速度,其实现方法是:设置标志位,在定时器中断中将其置位,然后在程序中查询。将其中断优先级设置为低于时钟定时中断,那么它就可以完全不影响时钟定时。二,在采用延时子程序时,如果显示模块的扫描速度本来就不是很快,此时可能会影响到显示的效果,一般情况下,每秒的扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。因此,

27、延时子程序的延时时间应该小于20毫秒,如果采用定时器定时的方式,延时时间不影响时钟。如果,设计时采用的是中断的方式来完成有关操作,同样可以采用软件的方式来消抖,其处理思想是:中断不能连续执行,两次之间有一定的时间间隔。第六章 总结首先,我要感谢宋丽玲老师在此次设计中给于我的帮助。我深刻地感受单片机不单是一门文化课程,更是一门科学技术。单片机课程设计则是人生课程,我们学到了很多课堂上无法学到的东西。从新奇好玩到失败后的痛苦无助,从失败中爬起,哪怕再失败,也永不放弃。这就是单片机课程设计教会我们的最宝贵的知识。一分耕耘,一分收获。经过这次课程设计,让我获得了很多知识,进一步加深了我对 AT89C5

28、1 单片机的掌握,另外也巩固了我的编程思想和焊接技术。本次的数字时钟设计,让我对自己在大学三年的知识的到了回顾,例如模电和数电以及做 PCB 的软件。它也让我充分发挥了对所学知识的理解和设计的书面表达能力。这为今后自己进一步深化学习,积累了一定的宝贵经验。撰写报告的过程是对专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题第 18 页 共 30 页或实际问题,把知识转化为能力的实际训练。本次的课程设计,让我发现理论必须用于实践,否则只是一张白纸。此外只有理论水平提高了,才能更好的运用于实践。另外,本次课程设计也考验了我的认真的态度。只有做事拥有认真的态度与科

29、学的方法,才能成功。我认为课程设计非常有必要,它能让我们主动去寻找遇到问题的解决方法,同时也是对我们严谨认真工作态度的考验与锻炼,为以后我们进入社会参加工作是一个很好的培训与历练。附录:第 19 页 共 30 页图 7-1 数字时钟原理图数字时钟源程序使用 keil 软件编写源程序ORG 0000HLJMP STARTORG 000BHLJMP TIME;*初始化*START: MOV SP, #50HMOV 20H,#00H ;定义秒MOV 21H,#00H ;定义分MOV 22H,#00H ;定义时MOV 23H,#01H ;定义闹钟分钟MOV 24H,#01H ;定义闹钟小时MOV 25

30、H,#00HMOV 26H,#01HMOV 30H,#00H ;BCD SECONDMOV 31H,#00HMOV 32H,#00H ;BCD MINUTEMOV 33H,#00HMOV 34H,#00H ;BCD HOURMOV 35H,#00HMOV 36H,#01HMOV 37H,#00HMOV 38H,#01HMOV 39H,#00HMOV 50H,#00H ;按键次数MOV TMOD,#01H ;16 位计数器MOV TH0, #03CH ;赋初值第 20 页 共 30 页MOV TL0, #0B0HMOV IE, #87H ;中断允许SETB TR0 ;启动 T0MOV R2,#1

31、4HMOV P2,#0FFH;*主程序*MAIN: JB P1.4,GB LCALL TIMEPRO ;调用闹钟判断GB: LCALL DISPLAY1 ;调用时间显示JB P1.3,M1 ;P1.3=1 时转移 S4 没有按下LCALL SETTIME ;调用 SETTIME 调时子程序LJMP MAINM1: JB P1.2,M2 ;P1 g.2=1 时转移 S3LCALL SETATIME ;调用 SETATIME 子程序 LJMP MAINM2: JB P1.0,M4 ;P1.01 时转移 S1LCALL LOOKATIME ;调用 LOOKATIME 显示闹钟子程序M4: LJMP

32、MAIN;*延时子程序*DELAY: MOV R4,#030HDL00: MOV R5,#0FFHDL11: MOV R6,#9HDL12: DJNZ R6,DL12DJNZ R5,DL11DJNZ R4,DL00RET;*时间调整*SETTIME: ;设置时间L0: LCALL DISPLAY1MM1: JB P1.3,L1 ;P1.3=1 时转移 MOV C,P1.3 JC MM1LCALL DELAY1 ;延时JC MM1MSTOP1: MOV C,P1.3 ;P1.3 为 0 时转移JNC MSTOP1 第 21 页 共 30 页LCALL DELAY1 ;延时MOV A,50H IN

33、C 50H CJNE A,#00H,HJ1LJMP L0HJ1: MOV C,P1.3 JNC MSTOP1INC 22H ;小时自加一MOV A,22HCJNE A,#18H,GO12 ;小时计数循环 MOV 22H,#00H ;复位MOV 34H,#00HMOV 35H,#00HLJMP L0L1: JB P1.1,L2 ;P1.1=1 时转移MOV C,P1.1JC L1LCALL DELAY1 ;延时JC L1MSTOP2: MOV C,P1.1 ;P1.10 时转移JNC MSTOP2 LCALL DELAY1 ;延时MOV C,P1.1JNC MSTOP2INC 21H ;分钟加一

34、MOV A,21HCJNE A,#3CH,GO11 ;分钟计数循环MOV 21H,#00H ; 复位MOV 32H,#00HMOV 33H,#00HLJMP L0GO11: MOV B,#0AHDIV ABMOV 32H,B ; 将 A 的低 4 位存入 32 单元MOV 33H,A ; 将 A 的高 4 位存入 33 单元LJMP L0第 22 页 共 30 页GO12: MOV B,#0AHDIV ABMOV 34H,B ;将 A 的低 4 位存入 34 单元MOV 35H,A ; 将 A 的高 4 位存入 35 单元LJMP L0L2: JB P1.0,L0 ; P1.01 时转移MOV

35、 C,P1.0JC L2LCALL DELAY1 ;延时MOV C,P1.0JC L2STOP1: MOV C,P1.0 ; P1.00 时转移JNC STOP1 LCALL DELAY1 ;延时MOV C,P1.0JNC STOP1MOV 50H,#00HLJMP MAIN;*设置闹钟*SETATIME:LCALL DISPLAY2 ; 调用 DISPLAY2 显示闹钟N0: LCALL DISPLAY2MM2: JB P1.2,N1 ;P1.2=1 时转移MOV C,P1.2JC MM2LCALL DELAY1 ; 延时JC MM2MSTOP3: MOV C,P1.2 ; P1.20 时转

36、移JNC MSTOP3 LCALL DELAY1 ; 延时MOV A,50H INC 50HCJNE A,#00H,HJ2LJMP N0HJ2: MOV C,P1.2JNC MSTOP3INC 24H ;小时加一第 23 页 共 30 页MOV A,24HCJNE A,#24,GO22 ;小时计数循环MOV 24H,#00H ;复位MOV 38H,#00HMOV 39H,#00HLJMP N0N1: JB P1.1,N2 ;P1.11 时转移MOV C,P1.1JC N1LCALL DELAY1 ;延时JC N1MSTOP4: MOV C,P1.1 ;P1.10 时转移JNC MSTOP4 L

37、CALL DELAY1 ;延时MOV C,P1.1JNC MSTOP4INC 23H ;分钟加一MOV A,23HCJNE A,#60,GO21 ;分钟计数循环MOV 23H,#00H ;复位MOV 36H,#00HMOV 37H,#00HLJMP N0GO21: MOV B,#0AHDIV ABMOV 36H,B ;将 A 的低 4 位存入 36 单元MOV 37H,A ;将 A 的高 4 位存入 37 单元LJMP N0GO22: MOV B,#0AHDIV ABMOV 38H,B ;将 A 的低 4 位存入 38 单元MOV 39H,A ;将 A 的高 4 位存入 39 单元LJMP N

38、0N2: JB P1.0 ,N0 ;P1.01 时转移MOV C,P1.0JC N2第 24 页 共 30 页LCALL DELAY1 ;延时MOV C,P1.0JC N2STOP2: MOV C,P1.0JNC STOP2LCALL DELAY1MOV C,P1.0JNC STOP2MOV 50H,#00HLJMP MAIN;*闹钟判断*TIMEPRO: MOV A,21HMOV B,23HCJNE A,B,BK ;判断定时闹钟的分钟MOV A,22HMOV B,24HCJNE A,B,BK ;判断定时闹钟的小时SETB 25H.0MOV C,25H.0LCALL TIMEOUT ;调用 T

39、IMEOUTBK:RET;*喇叭报警*TIMEOUT:X1: LCALL BZ ;调用喇叭响应程序CLR 25H.0 ;调用喇叭响应程序结束LCALL DELAY ;延时CLR 25H.0LJMP DISPLAY1 BZ:MOV C,25H.1MOV P1.6,CCLR P1.7MOV R7,#0FFH ;喇叭响应时间T2: MOV R6,#0FFHT3: DJNZ R6,T3DJNZ R7,T2SETB P1.7第 25 页 共 30 页RET;*显示闹钟时间*LOOKATIME:LCALL DISPLAY2MM: JNB P1.0,LOOKATIME LCALL DELAY1LJMP MA

40、INDELAY1: MOV R4,#14H ;时间延时DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111DJNZ R4,DL001RET;*定时*TIME: PUSH ACC ;保护现场PUSH PSWMOV TH0,#03CH ;初值MOVTL0,#0B0HDJNZ R2,RET0MOV R2,#14HMOV A,20HCPL 25H.1CLR CINC A ;秒自加一CJNE A,#3CH,GO1 ;秒计数循环MOV 20H,#0 ;复位MOV 30H,#0MOV 31H,#0MOV A,21HINC A ;分钟自加一CJNE A,#3CH,GO2 ;分钟计数循

41、环MOV 21H,#0H ;复位MOV 32H,#0MOV 33H,#0MOV A,22HINC A ;小时自加一CJNE A,#18H,GO3 ;小时计数循环MOV 22H,#00H ;复位第 26 页 共 30 页MOV 34H,#0MOV 35H,#0AJMP RET0GO1: MOV 20H,AMOV B,#0AHDIV ABMOV 31H,A ;将 A 的低 4 位存入 31 单元MOV 30H,B ;将 A 的高 4 位存入 30 单元AJMP RET0GO2: MOV 21H,AMOV B,#0AHDIV ABMOV 33H,A ;将 A 的低 4 位存入 33 单元MOV 32

42、H,B ;将 A 的高 4 位存入 32 单元AJMP RET0GO3: MOV 22H,AMOV B,#0AHDIV ABMOV 35H,A ;将 A 的低 4 位存入 35 单元MOV 34H,B ;将 A 的高 4 位存入 34 单元AJMP RET0RET0: POP PSW ;恢复现场POP ACCRETI;*显示子程序*DISPLAY1: MOV R0,#30HMOV R3,#0FEHMOV A,R3PLAY1: MOV P2,AMOV A,R0 ;取要显示的数据MOV DPTR,#DSEG1 ;指向字形段码首地址MOVC A,A+DPTRCJNE R0,#34H,PAORL A,

43、#80HPA:CJNE R0,#32H,PBORL A,#80H 第 27 页 共 30 页PB:CPL A ;查表取字形段码MOV P0,A ;指向 P0 口LCALL DL1MOV P2,#0FFHMOV A,R3 ;判断是否显示到最低位RL A ;左移一位JNB ACC.6,LD1INC R0 ;缓冲器地址加一MOV R3,ALJMP PLAY1LD1: RETDISPLAY2: PUSH ACC ;保护现场PUSH PSWMOV R0,#36HMOV R3,#0FBHMOV A,R3PLAY2: MOV P2,AMOV A,R0 ;取要显示的数据MOV DPTR,#DSEG1 ;指向字

44、形段码首地址MOVC A,A+DPTRCJNE R0,#38H,PPORL A,#80HPP:CPL A ;查表取字形段码MOV P0,A ;指向 P0 口LCALL DL1 ;调用 DL1MOV P2,#0FFHMOV A,R3 ;判断是否显示到最低位RL A ;左移一位JNB ACC.6,LD2INC R0 ;缓冲器地址加一MOV R3,ALJMP PLAY2 ;调用 PLAY2LD2: POP PSWPOP ACC ;恢复现场RET第 28 页 共 30 页;*DELAY*DL1: MOV R7,#20HDL: MOV R6,#20HDL6: DJNZ R6,$DJNZ R7,DLRET

45、DSEG1: DB 3FH,06H,5BH,4FH,66H ;七段码表DB 6DH,7DH,07H,7FH,6FHEND第 29 页 共 30 页致谢本论文是在指导教师宋丽玲老师的悉心指导下完成的。宋丽玲老师严谨治学的态度给我树立了榜样,使我受益匪浅。在此特向指导教师的关心和帮助表示诚挚的敬意和衷心的感谢!在论文工作的过程中,碧陆斯单位(企业)为我的课题研究提供了良好的条件,使我顺向在论文完成过程中给予我支持和帮助的老师、同学们表示谢意。第 30 页 共 30 页参考文献: 单片机原理及应用 张毅刚 主编 高等教育出版社 新编 MCS-51 单片机应用设计(第 3 版) 张毅刚 哈尔滨工业大学出版社 数字电路与逻辑设计(第 3 版) 胡锦 主编 高等教育出版社 主编模拟电子技术(第 3 版) 胡宴如 主编 高等教育出版社 基于 Proteus 的 8051 单片机实例教程 李学礼 主编 高等教育出版社 单片机微机原理及应用 张毅刚 主编 西安电子科技大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报