数字中说明书
更新时间:2024-06-22 04:43:01 阅读量: 综合文库 文档下载
本文论述了如何利用单片机来设计一个时钟的方法。 本设计基于单片机技术原理,以单片机芯片AT89C52作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个多功能数字时钟系统。单片机扩展的LCD显示器用来显示秒、分、时计数单元中的值。整个设计包括两大部分: 硬件部分和软件部分,以单片机为核心, 配以一定的外围电路和软件。硬件是整个系统的基础, 软件部分则要合理、充分地支持和使用系统的硬件, 从而完成系统所要完成的任务。
本设计采用LCD液晶显示并以其亮度高、显示直观等优点被广泛应用于智能仪器及家用电器等领域。该时钟系统主要由时钟模块、闹钟模块、环境温度检测模块、液晶显示模块、键盘控制模块以及信号提示模块组成。能够准确显示时间(显示格式为时时:分分:秒秒,24 小时制),可随时进行时间调整,具有时间设臵(小时和分钟)、闹钟时间设臵、闹钟开、闹钟关功能。数字显示小时、分钟,有AM、PM指示器,闹钟就绪灯,蜂鸣器。220V供电。设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软 件编程来实现,电路简单明了,系统稳定性高。单片机在这种情况下诞生了基于单片机电子时钟。
目录
前言.............................................. 1 第1 章硬件系统设计................................ 2 1.1 单片机........................................ 2 1.2 硬件设计...................................... 3 1.3 硬件模块...................................... 3 1.3.1 主控单元.................................... 3 1.3.2 显示部分.................................... 5 1.3.3 显示器接口及显示方式........................ 7 1.3.4 键盘控制模块................................ 8 1.3.5 声音提示模块................................ 8 1.3.6 直流稳压电源部分............................9 第2 章软件设计................................... 13 2.1 设计思路..................................... 13 2.2 模块设计..................................... 13 2.3 软件模块.....................................14 2.3.1 计时模块...................................14 2.3.2 调时功能................................. 14 2.3.3 主程序模块................................14 2.3.4 键盘控制模块..............................14 2.3.5 在编程过程中要用到的其它程序模块...........14 第3 章程序编译和系统调试及仿真.................. 15
3.1 程序编译.................................... 15 3.1.1 主要程序设计分析...........................15 3.1.2 程序设计................................... 16 3.2 软件调试..................................... 23 3.2.1 伟福简
介......................................................................... 23 3.2.2 软件调
试......................................................................... 24 3.3 硬件调
试.................................................................................. 25 结
论..................................................................................................... 28 谢
辞....................................................................................................... 29 参考文
献.................................................................................................30 外文资料翻
译.........................................................................................31 前言
数字钟是采用数字电路实现对时,分,秒数字显示的计时装臵,广泛用于
个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必
需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟
的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的
方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时
自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、
通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表
数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。
近年来随着以计算机为轴心的各种各样信息处理装臵的诞生,为适应
这种新形势,信息家电,网络终端,广播-通信等用途的LCD 市场也将迅
速扩大,而且如今LCD 发展方向不仅在于大屏幕,而且在中小屏幕方面,
例如汽车导航系统,摄像机,数字式照相机,便携式电视,PDA(个人数字
助理),娱乐/游戏机,摄影机等有着进一步的发展。 液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其他显
示器无法比拟的优点,近年来被广泛用于单片机控制的智能仪器、仪表和
低功耗电子产品中。LCD 可分为段式LCD、字符式LCD 和点阵式LCD。
其中,段式LCD 和字符式LCD 只能用于字符和数字的简单显示,不能满
足图形曲线和汉字显示的要求;而点阵式LCD 不仅可以显示字符、数字,
还可以显示各种图形、曲线以及汉字、动画,并且可以实现屏幕滚动、反
转、闪烁等功能,用途十分广泛。
由此可见LCD 的应用是如此广泛,所以用MPU 控制液晶显示器是很 普遍的应用。
河南科技大学毕业设计(论文) 2
第1 章硬件系统设计 1.1 单片机
单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力
(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存
取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O 口),可
能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD 或LED 驱动
电路),脉宽调制电路(PWM),模拟多路转换器及A/D 转换器等电路集成
到一块单块芯片上,构成一个最小然而完善的计算机系统。这些电路能在
软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务[1]。
单片机芯片的集成度很高,它将微型计算机的主要部件都集
成在一块
芯片上,具有以下特点:
(1)体积小、重量轻、价格便宜、耗电少;
(2) 根据工控环境要求设计,且许多功能部件集成在芯片内部,其
信号通道受外界影响小,故可靠性高,抗干扰性能优于采用一般的CPU;
(3) 控制功能强,运行速度快。其结构组成与指令系统都着重满足
工控要求。有丰富的条件分支转移指令和很强的位处理功能及I/O 口逻辑 操作功能;
(4)片内存储器的容量不可能很大;引脚也嫌少,I/O 引脚常不够用,
且兼第二功能以至第三功能。但存储器和I/O 接口都易于扩展;
自单片机出现至今,单片机技术已走过了30 多年的发展路程。纵观
30 年来单片机发展里程可以看出,单片机技术的发展以微处理器(MPU)
技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表
现出较微处理器更具个性的发展趋势。单片机应用最多的领域主要有以下:
因它具有“小、轻、廉、省”的特点,所以特别适用于“电脑型产品”,
在家用电器、玩具、游戏机、声像设备、电子秤、收银机、办公设备、厨
房设备、家庭安防设备等许多产品上得到应用。适用于仪器、仪表,不仅
能完成测量,还具有处理、监控等功能,易于实现数字化和智能化。
河南科技大学毕业设计(论文) 3
1.2 硬件设计 硬件设计框图 图1-1 硬件设计框图
由框图的设计结构可以分块设计电路。 1.3 硬件模块 1.3.1 主控单元
AT89C52 是美国ATMEL 公司生产的低电压,高性能CMOS 8 位单片
机,片内含8k bytes 的可反复擦写的只读程序存储器(PEROM)和256bytes
的随机存取数据存储器(RAM),器件采用ATMEL 公司的高密度、非易失
性存储技术生产,与标准MCS-51 指令系统及8052 产品引脚兼容,片内
臵通用8 位中央处理器(CPU)和Flash 存储单元,功能强大AT89C52 单
片机适合于许多较为复杂控制应用场合。 下表是89c52 的主要性能参数 液晶显示器 键盘控制模 声音提示 AT89C52 主控单元
河南科技大学毕业设计(论文) 4
表1-1 89c52 的主要性能参数 主要性能参数:
?与MCS-51 产品指令和引脚完全兼容 ?8k 字节可重擦写Flash 闪速存储器 ?1000 次擦写周期 ?全静态操作:0Hz—24MHz ?三级加密程序存储器
?256×8 字节内部RAM ?32 个可编程I/O 口线 ?3 个16 位定时/计数器 ?8 个中断源
?可编程串行UART 通道 ?低功耗空闲和掉电模式
AT89C52 提供以下标准功能:8k 字节Flash 闪速存储器,256 字节内
部RAM,32 个I/O 口线,3 个16 位定时/计数器,一个6 向量两级中断结
构,一个全双工串行通信口,片内振荡器及时钟电路[2]。同时,AT89C52
可降至0HZ 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲
方式停止CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系
统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其
它所有部件工作直到下一个硬件复位。 下表是89c52 的极限参数 表1-2 AT89C52 的极限参数 工作温度-55℃to+125℃
储藏温度-65℃to+150℃ 任一引脚对地电压-1.0Vto+7.0V 最高工作电压6.6V
河南科技大学毕业设计(论文) 5
直流输出电流15.0mA 1.3.2 显示部分
单片机应用系统中使用的显示器主要有发光二极管显示器,简称LED
(Light Emitting Diode);液晶显示器LCD(Liquid Crystal Display);
近几年也有配臵CRT 显示器的。液晶显示器简称是利用液晶经过处理后能
够改变光线传输方向的特性,达到显示字符或者图形的目的。其特点是体
积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中有 着日益广泛的应用。
1602 芯片:主要用于显示时间和定时时间。1602 芯片由点阵字符液晶
显示器件和专用的行、列驱动器、控制及必要的链接件、结构件组装而成,
可以显示数字和西文字符,但不能显示图形,已经可以满足本次设计的需 要。
1602 型LCD 显示模块具有体积小,功耗低,显示内容丰富等特点[3]。
1602 型LCD 可以显示2 行16 个字符,有8 位数据总线D0~D7 和RS,R/W,
EN 三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。
1. 外型尺寸:80X36X13(LXWXH) 2.接口信号说明
表1-3 1602 型LCD 的接口信号说明 编号符号引脚说明编号符号引脚说明 1 VSS 电源地9 D2 Data I/O 2 VDD 电源正极10 D3 Data I/O 3 VL 液晶显示偏压信号11 D4 Data I/O 4 RS 数据/命令选择端(H/L) 12 D5 Data I/O 5 R/W 读写选择端(H/L) 13 D6 Data I/O 6 E 使能信号14 D7 Data I/O 7 D0 Data I/O 15 BLA 背光源正极 8 D1 Data I/O 16 BLK 背光源负极 河南科技大学毕业设计(论文)
6
3.主要技术参数
表1-4 1602 型LCD 的主要技术参数 显示容量16X2 个字符 芯片工作电压4.5~5.5V 工作电流2.0mA(5.0V) 模块最佳工作电压5.0V 字符尺寸2.95X4.35(WXH)mm 4.基本操作程序
读状态:输入:RS=L,RW=H,E=H 输出:D0~D7=状态字 读数据:输入:RS=H,RW=H,E=H 输出:无
写指令:输入:RS=L,RW=L,D0~D7=指令码,E=高脉冲输 出:D0~D7=数据
写数据:输入:RS=H,RW=L,D0~D7=数据,E=高脉冲输出:无
5.RAM 地址映射图
控制器内部带有80 字节的RAM 缓冲区,对应关系1-5 表所示
表1-5 对应关系 LCD 16 字X2 行 6.状态字说明
表1-6 状态字说明
STA7 STA6 STA5 STA4 STA3 STA2 STA1 STA0 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9
0 A 0 B 0 C 0 D 0 E 0 F 1 0 。。2 7 4 0 4 1 4 2
4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 A 4 B 4 C 4 D
4 E 4 F 5 0 。。6 7
河南科技大学毕业设计(论文) 7
D7 D6 D5 D4 D3 D2 D1 D0 STA0~STA6 当前地址指针的数值 STA7 读写操作使能1:禁止;0:允许
注意每次对控制器进行读写操作之前,都必须进行读写检测,确保 STA7 为0。 7.数据指针设臵
控制器内部设有一个数据地址指针,用户可以通过它们访问内部的全 部80 字的RAM。 8.其它设臵 表1-7 其他设臵
指令码功能 01H 显示清屏: 1.数据指针清0 2.所有显示清0
02H 显示回车:数据指针清0 表1-8 指令码及功能 指令码功能 0 0 0 0 1 D C B D=1 开显示;D=0 关显示 C=1 显示光标;C=0 不显示光标 B=1 光标闪烁;B=0 光标不显示 1.3.3 显示器接口及显示方式
笔段式LCD 显示器:类似于LED 数码管显示器。每个显示器的段电
极包括a, b, c, d, e, f, g 七个笔划(段)和一个背电极BP(或COM)。可以 显示数字和简单的字符。
点阵式LCD 显示器:段电极与背电极呈正交带状分布,液晶位于正交
河南科技大学毕业设计(论文) 8
的带状电极间。点阵式LCD 的控制一般采用行扫描方式[4]。 1.3.4 键盘控制模块
按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开
关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁
感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触 点式开关按键。
按键按照接口原理可分为编码键盘与非编码键盘两类,这两类键盘的
主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实
现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。
全编码键盘能够由硬件逻辑自动提供与键对应的编码,此外,一般还
具有去抖动和多键、窜键保护电路。这种键盘使用方便,但需要较多的硬
件,价格较贵,一般的单片机应用系统较少采用。非编码键盘只简单地提
供行和列的矩阵,其它工作均由软件完成。由于其经济实用,
较多地应用
于单片机系统中。在本套设计中由于只需要几个功能键,此时,可采用独 立式按键结构[5]。 按键的软件结构:
按键中有一个复位键及定时键、调时键加一键和减一键,一个按键接
在复位电路上,另外四个按键接在P0——P4 口,低电平表示有按钮按下;
按钮没有接防抖电路,需要设计软件防抖。
1、定时。按下定时键后可以开始定时,过程如下:定时---〉小时加/
减---〉按定时---分钟加/减---按定时。
2、调时。按下调时键后可以调时,过程如下:调时---年加/减---调时
--月加/减---调时---日加/减---调时---时加/减---调时---分加/减---调时---秒 加/减---调时。 1.3.5 声音提示模块
蜂鸣器:89C52 的P2.0 口接了一个蜂鸣器,定时时间到, P1.0 输出
一定频率脉冲时,蜂鸣器将发出响声;一分钟后停止。
河南科技大学毕业设计(论文) 9
1.3.6 直流稳压电源部分
直流稳压电源是给电子设备提供稳定直流电压的电子电路。这次电路
需要的是+5V 直流电源。 1.3.7 滤波电路
它的任务是将全滤波形的输出通过RC 滤波网络以后变成更平坦的直
流电压,减小脉动,提高整流的效果[6]。这是整流管中通过的电流的瞬间值要
比平均值大得多,特别在接通电源瞬间有相当大的冲击电流(即充电电流)通
过整流管,这一点要引起注意。 (1) 电源变压器
它的任务是把电源电压220V 变压到合适的大小。如果U2 的值太大,
会造成集成端稳压器7805 的功耗大,温升高,且浪费电能。反之,如果U2 的
值小到一定程度,三端稳压器不能正常工作,失去稳压作用.因此U2 的值应
大小合适,这个值应该使三端稳压器在交流电网电压最低和
输出电流最大
时能正常工作。而且在正常稳压的前提下,它的压降尽可能小,以减小功耗。 (2) 整流电路
它的任务是将正弦波变换成直流电压。这里一般采用桥式整流电路来
实现,既可用四个二极管来组成,也可用整流桥堆来完成,只是参数一定要选 择合理。 (3) 稳压电路
要求输出恒定的直流电压,且要达到设计中所提出的要求。 1.4 硬件电路测试 1.4.1 硬件电路ERC 测试
如图1-2 所示,选择ERC 做电路测试。如果通过测试,则出现1-3 所 示界面。
河南科技大学毕业设计(论文) 10
图1-2 ERC 测试 图1-3 通过测试 1.4.2 硬件电路网格化
硬件电路网络化如图1-4 所示,选择CREATE NETLIST,即可
产生图
1-5 所示界面。
河南科技大学毕业设计(论文) 11
图1-4 硬件电路网格化图 图1-5 硬件电路网格化图 1.4.3 生成PCB 板
PCB 板的生成过程比较复杂。
首先要新建一个WIZARD 文件,按提示选择,之中要选择双层板并通
过空连接。之后即可产生一个PCB 文件,在对话框中选择LOADNET,再对
网格化后的文件进行编译。如果无错即可出现如图1-6 所示的对话框。
图1-6 选择精确显示
河南科技大学毕业设计(论文) 12
在图1-6 的对话框中选择精确显示。即可弹出PCB 板概图的界面。把
各个元件按照合理的布局拉开,在点击AUTOROUTE--ALL-ROUTEALL, 既可生成PCB 板。
河南科技大学毕业设计(论文) 13
第2 章软件设计 2.1 设计思路
本系统是以单片机的基本语言汇编语言来进行软件设计,指令的执行
速度快,节省存储空间。为了便于扩展和更改,软件的设计采用模块化结
构,使程序设计的逻辑关系更加简洁明了。对于一个微控制系统来说,硬
件是基础,软件是灵魂。软件在很大程度上决定了系统的先进性、可靠性、
实用性以及实时性。本次设计所涉及到的软件设计主要是系统编程和其他
应用软件和调试软件的使用,其中重中之重是用汇编语言来进行程序编制,
编制的程序要求可靠性高、实时性强、简练易于维护等等。 程序设计的具体步骤如下: (1)提出各种可供选择的方案;
(2)对各个方案进行论证,选取合理的方案,画出系统流程图;
(3)在综合分析对比各种合理方案的基础之上选择一个最
佳方案;
(4)功能分解。通常分为结构设计和过程设计两个阶段。结构设计
确定程序由哪些模块组成,以及这些模块之间的关系;过程设计确定
每个模块的设计程序结构,将各个模块组织成良好的层次系统;
(5)审查与仿真调试:对总体设计的程序进行严格的审查,在审查之
后使用仿真设备(本设计采用的是南京伟福H51/S 仿真器)进行程序仿真和 调试。 2.2 模块设计
本次设计实现的功能主要有计时、计日期、计星期、实现闹钟、时间
日期星期和闹钟的调整以及键盘扫描、显示扫描。为了方便实现、调试以
及贯彻模块化设计的思想,将整个程序分成了若干个模块,每个模块又由
若干个子程序组成,下面分别就各模块详细描述。 河南科技大学毕业设计(论文) 14
2.3 软件模块 2.3.1 计时模块
该模块完成秒、分、时、日、星期、月、年的计算更新、有效性检查。
通过定时器0 工作于16 位重装载方式准确地定时50 毫秒,再由软件计数
20 次以完成定时1 秒。秒、分、时、日、星期、月的加1、调整程序分别
编成子程序,若有进位,则本位从新计数,并调用下一级子程序。
2.3.2 调时功能
当由于时钟误差或意外断电后可以用调时功能较时。 2.3.3 主程序模块
主程序模块主要由计时、调时、按键选择等模块组成,下面将做详细
描述,再次从略。 2.3.4 键盘控制模块
由于在硬件设计中只用到四个键,所以,这是一个相对简单的流程,
但在实际编程中会因为硬件过于简单,而使程序很复杂。 2.3.5 在编程过程中要用到的其它程序模块
1)LCD 初始化2)判断闰年3)时间的加减这些程序在本设计
都比
较重要,也很复杂,但都有经典程序可以参考,不做赘述。 河南科技大学毕业设计(论文) 15
第3 章程序编译和系统调试及仿真 3.1 程序编译
3.1.1 主要程序设计分析
(1)主程序设计中采用定时器T0 中断完成,其余状态循环调用显
示子程序,当P3.7 端口或者P1.7 端口开关按下时,转入调整时间或者调 整日期功能程序。 (2)显示子程序
数码管显示的数据存放在内存单元70H-75H 中,其中70H~71H 存放秒
数据,72H~73H 存放分数据,74H~75H 存放时数据,每一地址单元内均为十进
制BCD 码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD
码数据的对应段码存放在ROM 表中。显示时,先取出70H~75H 某一地址
中的数据,然后查的对应的显示段码从P1 口输出。P3 口将
对应的数码管
选中,就是显示该地址单元的数据值。 (3)定时器T0 中断服务程序
定时器T0 用于时间计时。定时溢出中断周期设为50ms,中断累计20
次( 即1s) 时对秒计数单元进行加1 操作。时间计数单元地址分别在
70H~71H(s)、76H~77H(min)、78H~79H(h),7AH 单元存放“熄灭符”
数据(#0AH)。在计数单元中采用十进制BCD 码计数,满60 进位。T0 中
断服务程序流程图3 所示。 (4)T1 中断服务程序
T1 中断服务程序应用于指示调整单元数字的亮闪。在时间调整状态
下,每过0.3 秒,将对应单元的显示数据换成熄灭符数据(#0AH)。这样,
在调整时间时,对应调整单元的显示数据就会间隔闪亮。 (5)调时功能程序
调时功能程序的设计方法是:按下按键,若按下时间小于1 秒,进入
省电状态(数码管不亮,时钟不停),否则进入调分状态,
等待操作,此时
计时器停止走动。当再次按下按钮时,若按下的时间小于0.5 秒,则时间
河南科技大学毕业设计(论文) 16
加1 分钟;若按下时间大于0.5 秒,则进入小时调整状态。在小时调整状
态下,当按键按下的时间大于0.5 秒时退出调整状态,时钟继续走动。 3.1.2 程序设计
定时器T0、T1 溢出周期为50MS,T0 为秒计数用,T1 为调整时闪烁
用,P3.7 为调整按钮,P1 口为字符输出口,采用共阳显示管。
中断入口程序
ORG 0000H 程序执行开始地址 LJMP START 跳到标号START 执行 ORG 0003H 外中断0 中断程序入口 RETI 外中断0 中断返回
ORG 000BH 定时器T0 中断程序入口 LJMP INTT0 跳至INTTO 执行 ORG 0013H 外中断1 中断程序入口
RETI 外中断1 中断返回
ORG 001BH 定时器T1 中断程序入口 ORG 0023H 串行中断程序入口地址 RETI 串行中断程序返回 主程序
START: MOV R0,#70H 清70H-7AH 共11 个内存单元 MOV R7,#0BH
CLEARDISP: MOV @R0,#00H INC R0
DJNZ R7,CLEARDISP
MOV 20H,#00H 清20H(标志用) MOV 7AH,#0AH 放入\熄灭符\数据 MOV TMOD,#11H 设T0、T1 为16 位定时器 MOV TL0,#00H 50MS 定时初值(T0 计时用) MOV TH0,#4CH 50MS 定时初值 MOV TL1,#00H 50MS 定时初值 河南科技大学毕业设计(论文) 17
MOV TH1,#4CH 50MS 定时初值 SETB EA 总中断开放 SETB ET0 允许T0 中断 SETB TR0 开启T0 定时器
MOV R4,#14H 1 秒定时用初值
START1: LCALL DISPLAY 调用显示子程序 JNB P3.7,SETMM1 P3.7 口为0 时转时间调整程序 SJMP START1 P3.7 口为1 时跳回START1
SETMM1:LJMP SETMM 转到时间调整程序SETMM1 秒计 时程序
T0 中断服务程序
INTT0: PUSH ACC 累加器入栈保护 PUSH PSW 状态字入栈保护 CLR ET0 关T0 中断允许 CLR TR0 关闭定时器T0
MOV A,#0B7H 中断响应时间同步修正 ADD A,TL0 低8 位初值修正
MOV TL0,A 重装初值(低8 位修正值) MOV A,#4CH 高8 位初值修正 ADDC A,TH0
MOV TH0,A 重装初值(高8 位修正值) SETB TR0 开启定时器T0
DJNZ R4, OUTT0 20 次中断未到中断退出
ADDSS: MOV R4,#14H 20 次中断到(1 秒)重赋初值 MOV R0,#71H 指向秒计时单元(71H-72H) ACALL ADD1 调用加1 程序(加1 秒操作)
MOV A,R3 秒数据放入A CLR C 清进位标志 CJNE A,#60H,ADDMM
ADDMM: JC OUTT0 小于60 秒时中断退出 河南科技大学毕业设计(论文) 18
ACALL CLR0 大于或等于60 秒时对秒计时单元清0 MOV R0,#77H 指向分计时单元(76H-77H) ACALL ADD1 分计时单元加1 分钟 MOV A,R3 分数据放入A CLR C 清进位标志 CJNE A,#60H,ADDHH
ADDHH: JC OUTT0 小于60 分时中断退出 ACALL CLR0 大于或等于60 分时分计时单元清0 MOV R0,#79H 指向小时计时单元(78H-79H) ACALL ADD1 小时计时单元加1 小时 MOV A,R3 时数据放入A CLR C 清进位标志 CJNE A,#24H,HOUR
HOUR: JC OUTT0 小于24 小时中断退出
ACALL CLR0 大于或等于24 小时小时计时单元清0
OUTT0: MOV 72H,76H 中断退出时将分、时计时单元数据移
MOV 73H,77H 入对应显示单元 MOV 74H,78H MOV 75H,79H
POP PSW 恢复状态字(出栈) POP ACC 恢复累加器 SETB ET0 开放T0 中断 RETI 中断返回 闪动调时程序
T1 中断服务程序,用作时间调整时调整单元闪烁指示 INTT1: PUSH ACC 中断现场保护 PUSH PSW
MOV TL1, #00H 装定时器T1 定时初值 MOV TH1, #4CH
DJNZ R2,INTT1OUT 0.3 秒未到退出中断 河南科技大学毕业设计(论文) 19
MOV R2,#06H 重装0.3 秒定时用初值 CPL 02H 0.3 秒定时到对闪烁标志取反 JB 02H,FLASH1 02H 位为1 时显示单元\熄灭\MOV 72H,76H 02H 位为0 时正常显示 MOV 73H,77H MOV 74H,78H
MOV 75H,79H
INTT1OUT: POP PSW 恢复现场 POP ACC RETI 中断退出
FLASH1: JB 01H,FLASH2 01H 位为1 时,转小时熄灭控制 MOV 72H,7AH 01H 位为0 时,\熄灭符\数据放入分 MOV 73H,7AH 显示单元,将不显示分数据 MOV 74H,78H MOV 75H,79H
AJMP INTT1OUT 转中断退出
FLASH2: MOV 72H,76H 01H 位为1 时,\熄灭符\数据放入 小时
MOV 73H,77H 显示单元,小时数据将不显示 MOV 74H,7AH MOV 75H,7AH
AJMP INTT1OUT 转中断退出 加1 子程序
ADD1: MOV A,@R0 取当前计时单元数据到A SWAP A A 中数据高四位与低四位交换 ORL A,@R0 前一地址中数据放入A 中低四位 ADD A,#01H A 加1 操作 DA A 十进制调整
MOV R3,A 移入R3 寄存器 ANL A,#0FH 高四位变0
河南科技大学毕业设计(论文) 20
MOV @R0,A 放回前一地址单元 MOV A,R3 取回R3 中暂存数据 INC R0 指向当前地址单元
SWAP A A 中数据高四位与低四位交换 ANL A,#0FH 高四位变0
MOV @R0,A 数据放入当削地址单元中 RET 子程序返回 清零程序
对计时单元复零用 CLR0: CLR A 清累加器 MOV @R0,A 清当前地址单元 DEC R0 指向前一地址 MOV @R0,A 前一地址单元清0 RET 子程序返回 时钟调整程序
当调时按键按下时进入此程序 SETMM: cLR ET0 关定时器T0 中断 CLR TR0 关闭定时器T0
LCALL DL1S 调用1 秒延时程序
JB P3.7,CLOSEDIS 键按下时间小于1 秒,关闭显示 MOV R2,#06H 进入调时状态,赋闪烁定时初值 SETB ET1 允许T1 中断 SETB TR1 开启定时器T1
SET2: JNB P3.7,SET1 P3.7 口为0(键未释放),等待 SETB 00H 键释放,分调整闪烁标志臵1 SET4: JB P3.7,SET3 等待键按下 LCALL DL05S 有键按下,延时0.5 秒
JNB P3.7,SETHH 按下时间大于0.5 秒转调小时状态 MOV R0,#77H 按下时间小于0.5 秒加1 分钟操作 LCALL ADD1 调用加1 子程序 河南科技大学毕业设计(论文) 21
MOV A,R3 取调整单元数据 CLR C 清进位标志
CJNE A,#60H,HHH 调整单元数据与60 比较 HHH: JC SET4 调整单元数据小于60 转SET4 循环 LCALL CLR0 调整单元数据大于或等于60 时清0 CLR C 清进位标志
AJMP SET4 跳转到SET4 循环
CLOSEDIS: SETB ET0 省电状态。开T0 中断
SETB TR0 开启T0 定时器(开时钟) CLOSE: JB P3.7,CLOSE 无按键按下,等待。 LCALL DISPLAY 有键按下,调显示子程序延时削抖 JB P3.7,CLOSE 是干扰返回CLOSE 等待 WAITH: JNB P3.7,WAITH 等待键释放
LJMP START1 返回主程序(LED 数据显示亮) SETHH: CLR 00H 分闪烁标志清除(进入调小时状态) SETHH1: JNB P3.7,SET5 等待键释放 SETB 01H 小时调整标志臵1 SET6: JB P3.7,SET7 等待按键按下 LCALL DL05S 有键按下延时0.5 秒
JNB P3.7,SETOUT 按下时间大于0.5 秒退出时间 调整
MOV R0,#79H 按下时间小于0.5 秒加1 小时操作 LCALL ADD1 调加1 子程序 MOV A,R3 CLR C
CJNE A,#24H,HOUU 计时单元数据与24 比较 HOUU: JC SET6 小于24 转SET6 循环 LCALL CLR0 大于或等于24 时清0 操作 AJMP SET6 跳转到SET6 循环释放 LCALL DISPLAY 延时削抖
河南科技大学毕业设计(论文) 22
JNB P3.7,SETOUT 是抖动,返回SETOUT 再等待 CLR 01H 清调小时标志 CLR 00H 清调分标志 CLR 02H 清闪烁标志 CLR TR1 关闭定时器T1 CLR ET1 关定时器T1 中断 SETB TR0 开启定时器T0
SETB ET0 开定时器T0 中断(计时开始) LJMP START1 跳回主程序
SET1: LCALL DISPLAY 键释放等待时调用显示程序 AJMP SET2 防止键按下时无时钟显示
SET3: LCALL DISPLAY 等待调分按键时时钟显示用 AJMP SET4
SET5: LCALL DISPLAY 键释放等待时调用显示程序(调 小时)
AJMP SETHH1 防止键按下时无时钟显示
SET7: LCALL DISPLAY 等待调小时按键时时钟显示用 AJMP SET6
SETOUT1: LCALL DISPLAY 退出时钟调整时键释放等待 AJMP SETOUT 防止键按下时无时钟显示
显示程序
显示数据在70H-75H 单元内,用六位LED 共阳数码管显示,P1 口输
出段码数据,P3 口作;扫描控制,每个LED 数码管亮1MS 时间再逐位循 环。
DISPLAY: MOV R1,#70H 指向显示数据首址 MOV R5,#0FEH 扫描控制字初值 PLAY: MOV A,R5 扫描字放入A MOV P3,A 从P3 口输出 MOV A,@R1 取显示数据到A MOV DPTR,#TAB 取段码表地址 河南科技大学毕业设计(论文) 23
MOVC A,@A+DPTR 查显示数据对应段码 MOV P1,A 段码放入P1 口 LCALL DL1MS 显示1MS INC R1 指向下一地址 MOV A,R5 扫描控制字放入A
JNB ACC.5,ENDOUT ACC.5=0 时一次显示结束 RL A A 中数据循环左移 MOV R5,A 放回R5 内
AJMP PLAY 跳回PLAY 循环
ENDOUT: SETB P3.5 一次显示结束,P3 口复位 MOV P1,#0FFH P1 口复位 RET 子程序返回 TAB DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH 3.2 软件调试
调试的主要过程包括硬件调试和软件调试,其中软件调试,也即程序
编译与仿真过程处于本次设计调试过程的核心环节。由于本设计已经制作
出液晶显示电子钟,所以硬件调试也很重要。两种调试过程并非孤立或者
分开的,而是紧密相关。在此我们用到的开发工具是南京伟福公司生产的
WAVE6000/S 型仿真器。 3.2.1 伟福简介
伟福仿真器有主机+POD 组成,通过更换POD,可以对各种CPU 进行
仿真。它的仿真CPU 外臵,直接位于用户板的上方,提高了仿真频率以
及降低信号噪声。它有强大的逻辑分析仪综合调试功能:逻
正在阅读:
数字中说明书06-22
2014届各地模拟考生活与哲学主观题07-22
六年级科学下册期中复习资料(科教版)12-04
听力模拟题Test 105-30
职业健康管理制度制度汇编(打印)05-19
《V B实用教程》 - 实验指导书10-01
现代汉语语法练习题03-31
保洁服务委托合同范本新04-03
我国城镇化建设的若干政策取向03-30
公园见闻作文600字07-11
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 说明书
- 数字
- 五年级上必读书目《水浒传》阅读试题
- 苏教版语文四年级下册单元知识点梳理总结
- 高级英语第三版_课文翻译
- ORACLE11g+R1+RAC+FOR+AIX6.1+HA5.4安装安装实施报告2009-11-04[
- 年产1000吨果蔬酵素生产线建设项目可行性研究报告
- 基于单片机的火灾报警系统设计 - 图文
- 20150907高数答案全部
- 2017年公共关系礼仪务实 课后答案
- 2010年高考古诗文阅读测试内容分析
- 五年级上册必读书目测试题
- 省建设厅办公楼维修改造工程 施工组织设计
- 广东省中考文言文篇目复习资料23篇全(精品)
- 人教版 六年级上册语文教案 第六组
- 技师论文--天籁空调系统结构原理与故障诊断 - 图文
- 壳聚糖保鲜膜在果品贮藏中的运用
- 健康宝典 - 图文
- 初一地理七年级上册总复习(人教版)
- 教科版四年级科学下册教案
- 浅谈转变中学数学差生
- 大学实用英语A班级教案 第一学期 - 图文