收藏 分享(赏)

带有LCD显示的定时闹钟.doc

上传人:精品资料 文档编号:10616612 上传时间:2019-12-07 格式:DOC 页数:30 大小:528.24KB
下载 相关 举报
带有LCD显示的定时闹钟.doc_第1页
第1页 / 共30页
带有LCD显示的定时闹钟.doc_第2页
第2页 / 共30页
带有LCD显示的定时闹钟.doc_第3页
第3页 / 共30页
带有LCD显示的定时闹钟.doc_第4页
第4页 / 共30页
带有LCD显示的定时闹钟.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、西安建筑科技大学课程设计(论文) 设计总说明单片机自 20 世纪 70 年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而 51 单片机是各单片机中最为典型和最有代表性的一种。本设计以 AT89C51 芯片为核心,辅以必要的外围电路,设计了一个结构简单,功能齐全的电子时钟,它 5V 直流电源供电。在硬件方面,除了CPU 外,使用 6 个 7 段 LCD 显示器来进行显示,LCD 采用的是动态扫描显示,使用 74LS245 芯片进行驱动。通过 LCD 能够较为准确地显示时、分、秒,利用四个简单的按键实现对时间的调整。软件方面采用汇编语言编程,整个电子钟系统能完成时间

2、的显示、调时、校时和定时的功能。选用单片机最小系统应用程序,添加比较程序、时间调整程序及蜂鸣程序,通过时间比较程序触发蜂鸣,实现闹钟功能,完成设计所需求的软件环境。介绍并使用 Keil 单片机模拟调试软件,测试程序的可行性并用 Proteus 进行仿真。关键词:单片机,LCD,定时器,闹钟西安建筑科技大学课程设计(论文) 目录1 设计要求与实现思路 - 1 -1.1 设计要求 - 1 -1.2 实现思路 - 1 -2 电子时钟 - 2 -2.1 电子时钟简介 - 2 -2.2 电子时钟的基本特点 - 2 -3 单片机 - 3 -3.1 程序存储器 - 3 -3.2 MCS-51 内部数据存储器

3、 .- 3 -4 控制系统的硬件设计 - 4 -4.1 器件的选择及功能原理 - 4 -4.1.1 单片机型号的选择 - 4 -4.1.2 液晶显示器的选择 - 4 -4.1.3 按键的选择 - 4 -4.1.4 电源的选择 - 5 -4.1.5 计时部分的选择 - 5 -4.2 总体设计思想及原理 - 6 -4.2.1 时钟电路的设计 - 6 -4.2.2 键盘电路设计 - 7 -4.2.3 闹铃功能的实现 - 8 -4.2.4 中断服务的设计 - 9 -4.2.5 显示器驱动电路 - 9 -4.3 整个电路原理图 .- 10 -5 控制系统的软件设计 .- 12 -5.1 程序设计 .-

4、12 -5.2 程序流程图 .- 12 -5.3 仿真图 .- 13 -5.4 仿真结果分析 .- 14 -设计总结 .- 16 -参考文献 .- 17 -程序源代码 .- 18 -西安建筑科技大学课程设计(论文) 第- 0 -页 共 27 页1 设计要求与实现思路1.1 设计要求1)能显示时时分分秒秒。2)能够设定定时时间、修改定时时间。3)定时时间到能发出报警声或者启动继电器,从而控制电器的启停。1.2 实现思路电子钟设计与制作既可以采用数字电路来实现,也可以采用单片机来完成。方案一:采用数字电路来实现,所设计的电路相当复杂,大概需要十几片数字集成块,其功能主要依赖于数字电路的各功能模块的

5、组合来实现,焊接的过程比较复杂,成本也非常高。方案二:采用单片机来实现,由于其功能的实现主要通过软件编程来完成,不仅降低了硬件电路的复杂性,而且成本也降低不少。 最终方案:采用单片机的方式来实现定时闹钟。电子闹钟的系统框图如下所示:图 1-1 电子闹钟的系统框图电子闹钟的主电路指的是图 1-1 中虚线框内部分,主要涉及到 CPU 电路和按键按钮电路。主机的设计具体地说有:1)系统时钟电路设计;2)系统复位电路设计;3)按键与按钮电路设计;4)闹铃声指示电路设计。复位、时钟等电路按钮电路6 位数码管显示电路闹铃声指示电路电源系统西安建筑科技大学课程设计(论文) 第- 1 -页 共 27 页2 电

6、子时钟 2.1 电子时钟简介时钟是将小时、分钟、秒钟显示于人的肉眼的计时装置。而单片机模块中最常见的正是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。由于时钟的实用性和在人们生活中的重要性,所以尝试设计以单片机为核心的数字时钟是很有意义的。钟表原先的报时功能已经原不能满足人们日益增长的要求,现代的电子时钟多带有类似自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、通断动力设备、甚至各种定时电气的自动启用等功能,本设计中 LCD 电子时钟采用 LCD 显示时间,直观实用

7、,而且可以方便的校调。2.2 电子时钟的基本特点LCD 电子定时闹钟是以单片机为基础的数字电路实现对时、分、秒的数字显示的数字计时装置,它的计时周期 24 小时,另外应有校时功能和一些显示日期、闹钟等附加功能。一个基本的数字钟电路主要由计数器、校时电路、报时电路、振荡器和显示电路组成。目前电子钟广泛用于各种私人和公众场合,成为我们生活、工作和学习中不可缺少的好帮手。西安建筑科技大学课程设计(论文) 第- 2 -页 共 27 页3 单片机3.1 程序存储器MCS-51 单片机的程序存储器用于存放应用程序和表格之类的固定常数。可扩充的程序存储器空间最大为 64K 字节。程序存储器的使用应注意以下两

8、点:(1)整个程序存储器空间可以分为片内和片外两部分,CPU 访问片内和片外程序存储器,可由引脚所接的电平来确定。EA=1,即引脚接高电平时,程序将从片内程序存储器开始执行;当 PC 值超出片内 ROM 的容量时,会自动转向片外程序存储器空间执行程序;EA=0,即引脚接低电平时,单片机只执行片外程序存储器中的程序。(2)各中断服务程序的入口地址MCS-51 单片机复位后,程序存储器 PC 的内容为 0000H,故系统从 0000H 单元开始取指令,执行程序。64K 程序存储器中有 5 个单元具有特殊用途,如下:0003H:外部中断 0 入口地址。000BH:定时器 0 中断入口地址。0013H

9、:外部中断 1 入口地址。001BH:定时器 1 中断入口地址。0023H:串行口中断入口地址。在系统中断相应之后,将自动转各中断入口地址处执行序,而中断服务程序一般无法存放于几个单元之内,因此在中断入口地址处往往存放一条无条件转移指令进行跳转,以便执行中断服务程序。3.2 MCS-51 内部数据存储器MCS-51 单片机的片内数据存储器单元共有 128 个,字节地址为 00H-7FH。 地址为 00H-1FH 的 32 个单元是 4 组通用工作寄存器区,每个区含 8 个 8 位寄存器,编号为 R7-R0。地址为 20H-2FH 的 16 个单元可进行共 128 位的位寻址。西安建筑科技大学课

10、程设计(论文) 第- 3 -页 共 27 页地址为 30H -7FH 的单元为用户 RAM 区,只能进行字节寻址。4 控制系统的硬件设计4.1 器件的选择及功能原理4.1.1 单片机型号的选择由于传统的 8031 单片机内部没有存储器,需要另扩展外部程序存储器,系统构成较为复杂. 在众多的 51 系列单片机中,要算 ATMEL 公司的 AT89C51 更实用,它是低功耗、高性能的 CMOS 型 8 位单片机。AT89C51 采用了高性能的处理器结构,指令执行时间只需 2 到 4 个时钟周期。AT89C51 集成了许多系统级的功能,这样可大大减少元件的数目和电路板面积并降低系统的成本。另外,AT

11、89C51 是一种高效微控制器,而且它与 MCS-51 兼容,且具有 4K 字节可编程序存储器和 1000 次擦写循环,数据保留时间为 10 年,是最好的选择。AT89C51 单片机内部主要有以下部件:8031CPU、振荡电路、总线控制部件、中断控制部件、片内 Flash 存储器、并行 I/O 接口、定时器和串行 I/O 接口。4.1.2 液晶显示器的选择为减少连接线路的复杂性,在此选用八位一体的共阴数码管,八位一体液晶显示器在内部已将段码相连,位选线则相互独立,可以很方便地外接为动态显示电路。其外部结构如下图 4-1:图 4-1 LCD 液晶显示器西安建筑科技大学课程设计(论文) 第- 4

12、-页 共 27 页4.1.3 按键的选择方案一:44 矩阵式键盘。如果选择此方案,那么在修改时钟或设置闹铃时间时就可以直接从键盘输入,方便、快捷,但程序较为复杂。方案二:独立式按键。如果设置过多按键,将会占用较多 I/O 口,而且会给布线带来不便,因此,此方案适用于按键较少的情况。如果选择此方案,由于按键较少,在修改时间或设置闹铃时间时就不能直接输入,只能通过加或减完成,稍为麻烦一些,但其程序简单。由于并不需要经常修改时间和设置闹铃时间,而且方案二的程序简单,按键少、成本低,因此,选择方案二。AT89C5 的引脚如下图 4-2:图 4-2 AT89C51 引脚4.1.4 电源的选择如果是用电池

13、供电,就比较方便携带,但是本系统,采用了数码管作为显示器,功耗较大,需要经常更换电池。况且,本系统的体积较大,即使使用电池供电也不能随身携带,因此,用电池供电不大合适,所以用 5V 外部稳压电源来供电。4.1.5 计时部分的选择如果使用时钟芯片,系统就不怕掉电且时间精确。但这种芯片比较贵,况西安建筑科技大学课程设计(论文) 第- 5 -页 共 27 页且,设计本系统主要是为了学习单片机程序的编写和调试以及设计硬件电路的一些方法,因此采用软件的方法来计时而没有采用价格较高的时钟芯片。4.2 总体设计思想及原理设计的总思路如图 4-3:AT89C51晶 振按 键 段 码 驱 动位 码 驱 动蜂 鸣

14、 器 8位 LCD显 示 器图 4-3 设计的总流程图4.2.1 时钟电路的设计AT89C51 系列的单片机的时钟方式分为内部方式和外部方式。内部方式就是在单片机的 XTAL1 和 XTAL2 的两引脚外接晶振,就够成了自激振荡器在单片机内部产生时钟脉冲信号。外部时钟方式是把外部已经有的时钟信号引入到单片机内部。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。本 LCD 电子闹钟设计

15、是采用内部时钟方式,用一个 12MHz 晶振和两个 30Pf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用。其电路图见图 4-4。西安建筑科技大学课程设计(论文) 第- 6 -页 共 27 页XTAL218XTAL119ALE30 EA31 PSEN29RST9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 3P0.7/AD7 32P1.01 P1.12 P1.23P1.34 P1.45 P1.56P1.67 P1.78P3.0/RXD10P3.1/TXD1P3.2/INT0

16、12P3.3/INT1 13P3.4/T0 14P3.7/RD17P3.6/WR16P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 2P2.2/A10 23P2.3/A1 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51X1CRYSTALC120pC220p图 4-4 时钟电路单片机之所以采用高性能的振荡电路,因为:1)单片机电子钟的计时脉冲基准是由外部晶振的频率经过 12 分频后提供,采用内部的定时/计数器来实现计时功能。所以,外接晶振频率精确度直接影响电子钟计时的准确性。 2)片机电子钟利用内部定时/计数器溢出产生中断(

17、12M 晶振一般为50ms)再乘以相应的倍率来实现秒、分、时的转换。大家都知道从定时/计数器产生中断请求到响应中断需要 3-8 个机器周期,定时中断子程序中的数据入栈和重装定时/计数器的初值还需要占用数个机器周期,还有从中断入口转到中断子程序也要占用一定的机器周期。4.2.2 键盘电路设计键盘采用 4 个独立按键配以 4 个上拉电阻实现对时钟和闹钟的设定及修改。 图 4-5 独立按键 图 4-6 键盘输入电路西安建筑科技大学课程设计(论文) 第- 7 -页 共 27 页4.2.3 闹铃功能的实现闹铃功能的实现涉及到两个方面:闹铃时间设定和是否闹铃判别与相应处理。闹铃时间设定模块的设计可参照时间

18、设定模块,这里着重阐述闹铃判别与处理模块的设计问题。闹铃判别与闹铃处理的关键在于判别何时要进行闹铃。当时十位、时个位、分十位、分个位中任一位发生改变(进位)时,就必须进行闹铃判别。译码显示电路将“时” 、 “分” 、 “秒”计数器的输出送到七段显示译码驱动器译码驱动,通过六个七段 LCD 显示器显示出来。闹铃电路根据计时系统的输出状态产生脉冲信号,然后加上一个高频或低频信号送到放大电路驱动蜂鸣器发声实现报时。校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时” 、 “分” 、 “秒”显示数字进行校对调整。N图 4-7 闹钟判别流程图考虑到实用性,在该电子钟的设计中修改定时或

19、调整时间时采用了闪烁,而且以定时 20 组闹钟。在编程上,首先进行了初始化定义了程序的入口地址以及中断的入口地址,在主程序的开始定义了一组固定单元用来存储计数的秒,分,时以及定时时间的序号等。在显示程序段中主要进行了闪烁的处理,采用定时器中断置标志位 ,再与位选相互结合的方法来控制调时或定时中的闪烁。时, 图 4-8 闹钟的实时十位、个位或分十位、个位改变了设置闹铃标志是否设置了闹铃清除闹铃标志判当前时间是设定时间中断返回中断返回 闹铃判别处理西安建筑科技大学课程设计(论文) 第- 8 -页 共 27 页现流程图分,秒显示则是用了软件译码(查表)的方式,再用了一段固定的程序段进行进制转化。初始

20、化之后,用中断方式对其计数,计数的同时采用了定时器比较的方法,比较当前计数时间与定时时间是否相等,若相等则将闹铃标志位置数。由于定义了定时闹钟组,在这里采用中断组次,每中断一次比较一组闹钟,避免了一次比较中断时间过长,影响下次中断时间。显示之后查询闹铃标志位是否与前面所置数相等,若相等则响铃。为了避免响铃影响显示,采用了每显示几屏以后在显示程序中出现脉冲,驱动喇叭,不会影响显示。之后用查询方式对按键进行判断,若有键按下,则进行软件延时消抖,避免了抖动引起的干扰,执行相应的定时,选时或调时程序段。对当前时间或定时时间修改后又返回到最初的显示程序段,如此循环下去。4.2.4 中断服务的设计数字电子

21、钟设计中主要使用定时器 T0 中断 ET0,利用 ET0 中断进行计时时间的自增,从而实现计时功能。AT89C51 有两个通用定时/计数器。两者均可配置为定时器或事件计数器。另外增加了定时器 T0/T1,溢出时 T0/T1 脚自动翻转的功能选项。用作“定时器”功能时,每经过一个机器周期,寄存器值加 1。用作“计数器”功能时,寄存器在对应的外部输入管脚 T0/T1 上每发生一次 1 到 0 的跳变时加 1。使用该功能时,外部输入每个机器周期被采样一次。 设计中采用了中断方式 1 作为定时中断,其定时计数初值的设置可由以下公式计算得到,中断服务流程图如下图4-9。图 4-9 中断处理流程图 T0中

22、 断显 示 时 间按 键 扫 描重 装 计 数 值中 断 返 回闹 铃闹 铃 是 见 到 ? YN西安建筑科技大学课程设计(论文) 第- 9 -页 共 27 页4.2.5 显示器驱动电路由于通过数码管公共及的电流较大且避免过多地使用分立元件,采用了一片 74LS245 来驱动段码,用 P0 口作位码驱动。74LS245 是我们常用的芯片,用来驱动 LCD 或者其他的设备,它是 8 路同相三态双向总线收发器,可双向传输数据。74LS245 还具有双向三态功能,既可以输出,也可以输入数据。当 8051 单片机的 P0 口总线负载达到或超过 P0 最大负载能力时,必须接入 74LS245 等总线驱动

23、器。 由于 P2 口始终输出地址的高 8 位,接口时 74LS245 的三态控制端 1G 和 2G 接地,P2 口与驱动器输入线对应相连。P0 口与 74LS245 输入端相连,E 端接地,保证数据线畅通。因此,可以用来作为驱动装置。A02B018A13B117A24B216A35B315A46B414A57B513A68B612A79B71CE19AB/BA1 U174LS245图 4-10 74LS245 引脚图西安建筑科技大学课程设计(论文) 第- 10 -页 共 27 页4.3 整个电路原理图图 4-11 总电路图定时闹钟以单片机 AT89C51 为核心来完成,使用 12MHZ 晶振与

24、单片机AT89C51 相连接,通过软件编程的方法实现了以 24 小时为一个周期同时显示小时、分钟和秒的要求,并在计时过程中具有报时功能,当时间到达整点进行蜂鸣报时。在硬件电路中采用 P0 口作为 6 位 LCD 显示器的驱动接口,这是由于 P0 口输出驱动电路工作处于开漏状态,它的驱动能力强,故只需外接上拉电阻便可以把 LCD 显示器点亮。因为共阴的 LCD 显示器它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故该电路中的 LCD 显示器采用共阴极的显示器。6 位 LCD 显示器的位选线分别由相应的 P2.0P2.5 控制,相应的段选线由 8 位的 I/O 口控制,即 P

25、0 口。该电子钟设有四个按键: S1、S2、S3 和 S4 键(由上至下依次为S1、S2、S3、S4) ,他们分别与单片机的 P1.1、P1.2、P1.3 和 P1.4 口相连接。S1、S2、S3 和 S4 键 Proteus 仿真图如下:西安建筑科技大学课程设计(论文) 第- 11 -页 共 27 页R210kR310kR410k R510k图 4-12 安装控制图5 控制系统的软件设计 5.1 程序设计考虑到实用性,在该电子钟的设计中修改定时或调整时间时采用了闪烁。在编程上,首先进行了初始化定义了程序的入口地址以及中断的入口地址,在主程序的开始定义了一个固定单元用来存储计数的秒、分、时。在

26、显示程序段中主要进行了闪烁的处理,采用定时器中断置标志位,再与位选相互结合的方初 始 化 设 置开 始闹 铃 判 断显 示 时 间键 盘 扫 描西安建筑科技大学课程设计(论文) 第- 12 -页 共 27 页法来控制调时或定时中的闪烁。时、分、秒的显示则是用了软件译码(查表)的方式,再用了一段固定的程序段进行进制转化。初始化之后,用中断方式对其计数,计数的同时采用了定时器比较的方法,比较当前计数时间与定时时间是否相等,若相等则将闹铃标志位置数。为了避免响铃影响显示,采用了每显示几屏以后在显示程序中出现脉 图 5-1 设计主线冲,驱动喇叭,不会影响显示。之后用查询方式对按键进行判断,若有键按下,

27、则进行软件延时消抖,避免了抖动引起的干扰,执行相应的定时,选时或调时程序段。对当前时间或定时时间修改后又返回到最初的显示程序段,如此循环下去。 5.2 程序流程图 图 5-2 主函数流程图5.3 仿真图Proteus 仿真图如下:1)按 S2 键开始对响铃 时间设置:CPU系 统 初 始 化定 时 器 T0初 始 化定 时 器 1初 始 化串 口 初 始 化现 时 代 及 数 字 有 关 变 量 初 始 化刷 新 显 示闹 铃延 时显 示 刷 新设 定 闹 铃 时 间设 置 闹 铃 否 ? 时 间 是 否 变 化 ?日 期 是 否 显 示 ?启 动 定 时是 否 到 设 定 时 间 ?秒 指

28、示YN YNNCPU系 统 初 始 化定 时 器 T0初 始 化定 时 器 1初 始 化串 口 初 始 化现 时 代 及 数 字 有 关 变 量 初 始 化刷 新 显 示闹 铃延 时显 示 刷 新设 定 闹 铃 时 间设 置 闹 铃 否 ? 时 间 是 否 变 化 ?日 期 是 否 显 示 ?启 动 定 时是 否 到 设 定 时 间 ?秒 指 示YN YYYNNN西安建筑科技大学课程设计(论文) 第- 13 -页 共 27 页图 5-3 开始设置响铃时间2)按键 3 对分设置,安键 1 对秒设置:图 5-4 定时时间为 6:073)按 S4 键回到闹钟运行模式 西安建筑科技大学课程设计(论文)

29、 第- 14 -页 共 27 页XTAL218XTAL119ALE301PSN29RST9P0./AD039.1/18P0.2/AD237.3/36P0.4/AD435.5/54P0.6/AD63.7/72P2.7/A1528P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47P1.01.2P1.23.34P1.45.56P1.67.78 P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15U180C51234567891RP1ESACK-8LS1SPEAKERR103R410X1CRYST

30、ALC150pC250p图 5-5 返回正常运行5.4 仿真结果分析该电子钟有三个按键: K1、 K2、K3 和 K4 键。按 K1 键进行校时,可以分别对时及分进行单独校时,使其校正到标准时间,操作位就闪烁;按 K2 键是对闪烁位进行加一或返回的操作;按 K3 键调整定时时间和定时组数,调整位就闪烁,该电子钟最多可定时 20 组闹钟。经测试该电子钟在一天的累计误差约为 0. 1 秒;K4 用于返回正常计时功能。该电子钟的误差主要由晶振自身的误差所造成,晶振的误差约为 0.00010.000001。在软件的编程过程中所产生的误差比较小,在重装初值的过程中大概需要约 8 个机器周期,但在程序开始

31、对定时器赋初值时,多加了 8 个机器周期,减小了这方面的误差。另外在中断的过程中,只会在第一次计时中产生时间的偏移,而它所产生累计误差很小,可以忽略。结构化软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。本次课设,采用keil 集成调试软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。仿真部分采用 proteus 7professional 软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。首先打开 proteu

32、s7professional 软西安建筑科技大学课程设计(论文) 第- 15 -页 共 27 页件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择 keil 已经编译好的*.hex 文件,选择运行,观察显示结果,根据显示的结果和课设的要求再修改程序,再运行查,直到满足要求。 设计总结通过这次一个礼拜的课程设计,使我对所学的知识进行了系统的复习与巩西安建筑科技大学课程设计(论文) 第- 16 -页 共 27 页固,在以前的学习中不够清晰的概念得到了更好地理解。这段时间的学习,使我了解到了理论和实际之间的差别,第一次真正接触到了实际中的问题,并通过和老师,同学交流,加强了自身

33、的分析问题,解决问题的能力。同时,我也发现了自己在某写方面的不足,这是我以后要加以改进的方面。课程设计过程也使我了解了自己能力的不足,不过通过资料收集和文献查询等方法,找出了设计过程中的一些问题以及解决问题的方法,从而比较顺利的完成了这个设计任务。这次自己所做的设计取得了一些宝贵的经验,提高了自己的动手能力,为将来的学习和工作很有好处。总之,理论必须和实际结合才有威力,知识必须通过应用才能实现其价值!所学的东西最终是要面向社会,是在以后的工作能够更好的应用,此时的知识积累是为以后的工作做好坚实的基础。这个设计总体上不算完美,但是在这个课程设计的经历的好处是不可估量的。参考文献1张毅刚,MCS-

34、51 单片机应用设计M,哈尔宾:哈尔宾工业大学出版社,1997 2王幸之、钟爱琴、王雷、王闪,AT89 系列单片机原理与接口技术M,西安建筑科技大学课程设计(论文) 第- 17 -页 共 27 页北京:北京航空航天大学出版社,20043ATMEL.8-bit Microcontroller with 32K Bytes Flash AT89C51RC.20004莫健.基于 89 系列单片机的电子闹钟的设计,南京工程学院自动化学院,2010程序源代码ORG 0000H ;开辟代码首地址LJMP MAINORG 000BH ;定时器/计数器 T0 溢出中断服务子程序入口地址LJMP TIME西安建

35、筑科技大学课程设计(论文) 第- 18 -页 共 27 页ORG 0100HMAIN:MOV SP,#50H ;设置堆栈指针首地址MOV 20H,#00H ;十六进制转化时分秒MOV 21H,#00H MOV 22H,#00H MOV 23H,#01H ;闹铃设置时分位 MOV 24H,#01H MOV 25H,#00H ;定义一个标志位MOV 30H,#00H ;时分秒十进制转化 MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#01H ;闹铃十进制转化MOV 37H,#00H MOV 38H,

36、#01H MOV 39H,#00H MOV TMOD,#01H ;选用 16 位计数器 T0,方式 1MOV TH0,#03CH ;赋初值MOV TL0,#0B0H MOV IE,#10000111B ;开中断 T0,EA=1SETB TR0 ;T0 启动计数MOV R2,#14H ;计数器MOV P2,#0FFHLOOP:LCALL TIMEPRO ;调用现在时间与闹铃时间比较程序LCALL DISPLAY1 ;调用现在时间显示子程序JB K1,M1 ;判断按键是否按下LCALL XIAOZHEN1 ;调用消抖程序MOV C,25H.0JC A1A1:CLR 25H.0LCALL SETTI

37、ME ;调用设置现在时间子程序LJMP LOOPM1:JB K2,M2LCALL XIAOZHEN2MOV C,25H.0JC A2西安建筑科技大学课程设计(论文) 第- 19 -页 共 27 页A2:CLR 25H.0LCALL SETATIME ;调用闹钟设置程序LJMP LOOPM2:JB K4,M3A3:LCALL XIAOZHEN3MOV C,25H.0JC A4A4:CLR 25H.0M3:LJMP LOOPSETTIME:L0:LCALL DISPLAY1 ;闹钟设置子程序JB K2,L1LCALL XIAOZHEN4MOV C,25H.0JC A5A5:CLR 25H.0INC

38、 22HMOV A,22HCJNE A,#18H,GO12MOV 22H,#00HMOV 34H,#00HMOV 35H,#00HLJMP L0L1:JB K3,L2LCALL XIAOZHEN5MOV C,25H.0JC A6A6:CLR 25H.0INC 21HMOV A,21HCJNE A,#3CH,GO11MOV 21H,#00HMOV 32H,#00HMOV 33H,#00HLJMP L0GO11:MOV B,#0AHDIV ABMOV 32H,B西安建筑科技大学课程设计(论文) 第- 20 -页 共 27 页MOV 33H,ALJMP L0GO12:MOV B,#0AHDIV AB

39、MOV 34H,BMOV 35H,ALJMP L0L2:JB K4,L0LCALL XIAOZHEN3MOV C,25H.0JC AXAX:CLR 25H.0RETSETATIME:LCALL DISPLAY2 ;调用闹钟设置,闹铃响时的显示程序N0:LCALL DISPLAY2JB K3,N1LCALL XIAOZHEN6MOV C,25H.0JC A7A7:CLR 25H.0INC 24HMOV A,24HCJNE A,#24,GO22MOV 24H,#00HMOV 38H,#00HMOV 39H,#00HLJMP N0N1:JB K1,N2LCALL XIAOZHEN7MOV C,25H

40、.0JC A8A8:CLR 25H.0INC 23HMOV A,23HCJNE A,#60,GO21MOV 23H,#00HMOV 36H,#00HMOV 37H,#00H西安建筑科技大学课程设计(论文) 第- 21 -页 共 27 页LJMP N0GO21:MOV B,#0AHDIV ABMOV 36H,BMOV 37H,ALJMP N0GO22:MOV B,#0AHDIV ABMOV 38H,BMOV 39H,ALJMP N0N2:JB K4,N0LCALL XIAOZHEN3MOV C,25H.0JC A9A9:CLR 25H.0RETTIMEPRO:MOV A,21HMOV B,23H

41、CJNE A,B,BKMOV A,22HMOV B,24HCJNE A,B,BKSETB 25H.0MOV C,25H.0JC XXXX:LCALL TIMEOUTBK:RETTIMEOUT:X1:LCALL BZ LCALL DISPLAY2CLR 25H.0JB K4, X1RETBZ:CLR P3.7MOV R7,#250T2:MOV R6,#124T3:DJNZ R6,T3西安建筑科技大学课程设计(论文) 第- 22 -页 共 27 页DJNZ R7,T2SETB P3.7JB K4,XYLCALL XIAOZHEN3MOV C,25H.0JC XY1XY:RETXY1:LJMP LO

42、OPXIAOZHEN1:LCALL DISPLAY1 ;闹钟的设定值与现行时间的对比及响应JB K1,XIAOZHEN1MOV C,K1JC XIAOZHEN1LCALL DELAYMOV C,K1JC XIAOZHEN1STOP1:MOV C,K1JNC STOP1LCALL DELAYMOV C,K1JNC STOP1SETB 25H.0RETXIAOZHEN2:LCALL DISPLAY2JB K2,XIAOZHEN2MOV C,K2JC XIAOZHEN2LCALL DELAYMOV C,K2JC XIAOZHEN2STOP2:MOV C,K2JNC STOP2LCALL DELAYM

43、OV C,K2JNC STOP2SETB 25H.0RETXIAOZHEN3:LCALL DISPLAY1JB K4,XIAOZHEN3西安建筑科技大学课程设计(论文) 第- 23 -页 共 27 页MOV C,K4JC XIAOZHEN3LCALL DELAYMOV C,K4JC XIAOZHEN3STOP3:MOV C,K4JNC STOP3LCALL DELAYMOV C,K4JNC STOP3SETB 25H.0RETXIAOZHEN4:LCALL DISPLAY1JB K2,XIAOZHEN4MOV C,K2JC XIAOZHEN4LCALL DELAYMOV C,K2JC XIAO

44、ZHEN4STOP4:MOV C,K2JNC STOP4LCALL DELAYMOV C,K2JNC STOP4SETB 25H.0RETXIAOZHEN5:LCALL DISPLAY1JB K3,XIAOZHEN5MOV C,K3JC XIAOZHEN5LCALL DELAYMOV C,K3JC XIAOZHEN5STOP5:MOV C,K3JNC STOP5LCALL DELAYMOV C,K3JNC STOP5西安建筑科技大学课程设计(论文) 第- 24 -页 共 27 页SETB 25H.0RETXIAOZHEN6:LCALL DISPLAY2JB K3,XIAOZHEN6MOV C,

45、K3JC XIAOZHEN6LCALL DELAYMOV C,K3JC XIAOZHEN6STOP6:MOV C,K3JNC STOP6LCALL DELAYMOV C,K3JNC STOP6SETB 25H.0RETXIAOZHEN7:LCALL DISPLAY2JB K1,XIAOZHEN7MOV C,K1JC XIAOZHEN7LCALL DELAYMOV C,K1JC XIAOZHEN7STOP7:MOV C,K1JNC STOP7LCALL DELAYMOV C,K1JNC STOP7SETB 25H.0RETDELAY:MOV R4,#14HDL00:MOV R5,#0FFHDL1

46、1:DJNZ R5,DL11DJNZ R4,DL00RETTIME:PUSH ACCPUSH PSWMOV TH0,#03CH西安建筑科技大学课程设计(论文) 第- 25 -页 共 27 页MOV TL0,#0B0HDJNZ R2,RET0MOV R2,#14HMOV A,20HCLR CINC ACJNE A,#3CH,GO1MOV 20H,#0MOV 30H,#0MOV 31H,#0MOV A,21HINC ACJNE A,#3CH,GO2MOV 21H,#0HMOV 32H,#0MOV 33H,#0MOV A,22HINC ACJNE A,#18H,GO3MOV 22H,#00HMOV

47、34H,#0MOV 35H,#0AJMP RET0GO1:MOV 20H,AMOV B,#0AHDIV ABMOV 31H,AMOV 30H,BAJMP RET0GO2:MOV 21H,AMOV B,#0AHDIV ABMOV 33H,AMOV 32H,BAJMP RET0 ;长跳转至恢复现场指令GO3:MOV 22H,AMOV B,#0AHDIV AB西安建筑科技大学课程设计(论文) 第- 26 -页 共 27 页MOV 35H,AMOV 34H,BAJMP RET0RET0:POP PSWPOP ACCRETIDISPLAY1:MOV R0,#30HMOV R3,#0FEHMOV A,R3

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

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

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


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

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

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