基于汇编语言数字时钟 联系客服

发布时间 : 星期一 文章基于汇编语言数字时钟更新完毕开始阅读a8e7023268eae009581b6bd97f1922791788be30

一摘要

单片计算机即单片微型计算机。

品和工业自动化上。而51 单片机是各单片机中最为典型和最有代表性的一种。这次毕业设 计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

二 说明

系统由AT89C51、LED 数码管、按键、发光二极管等部分构成,能实现时间的调整、定 时时间的设定,输出等功能。系统的功能选择由SB0、SB1、SB2、SB3、SB4 完成。其中SB0

为时间校对,定时器调整功能键,按SB 0 进入调整状态。SB1 为功能切换键。第一轮按动

SB1 依次进入一路、二路、三路定时时间设置提示程序,按SB3 进入各路定时调整状态。定

时时间到,二极管发亮。到了关断时间后灭掉。如果不进入继续按SB1 键,依次进入时间 ? 年? 位校对、? 月? 位校对、? 日? 位校对、? 时? 位校对、? 分? 位校对、? 秒? 位b5E2RGbCAP 校对状态。不管是进入那种状态,按动SB2 皆可以使被调整位进行不进位增量加1 变化。各

预置量设置完成后,系统将所有的设置存入RAM 中,按SB1 退出调整状态。上电后,系统自

动进入计时状态,起始于? 00? 时? 00? 分。SB4 为年月日显示转换键,可使原来显示时分 秒转换显示年月日。

1 / 15

三、电路原理分析 1. 显示原理

电原理图见附图1。由6 个共阴极的数码管组成时、分、秒的显示。P0 口的8 条数据线 P0.0 至P0.7 分别与两个CD4511 译码的ABCD 口相接,P2 口的P2.0 至P2.2 分别通过电阻p1EanqFDPw R10 至R13 与VT1 至VT3 的基极相连接。这样通过P0 口送出一个存储单元的高位、低位BCDDXDiTa9E3d 显示代码,通过P2 口送出扫描选通代码轮流点亮LED1 至LED6,就会将要显示的数据在数

码管中显示出来。从P0 口输出的代码是BCD 码,从P2 口输出的就是位选码。这是扫描显示 原理。 。

2键盘及读数原理

键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去 抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电 平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里 采用软件延时的方法来避开抖动,延时时间20ms.

3 连击功能的实现

按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应 的功能会反复执行,好象连续执行,在这里我们采用软件延时250ms,当按键没释放则 执行下一条对应程序。利用连击功能,能实现快速调时操作。

四、程序设计思想和相关指令介绍

本系统的主程序主要完成时间显示和定时输出判断功能。而年月日显示和各时间单元进 位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。

2 / 15

1.数据与代码转换。

由前述可知,从P2 口输出位选码,从P0 口输出段选码,LED 就会显示出数字来。但P0 口的输出的数据是要BCD 码,各存储单元存储的是二进制数,也就是和要显示出的字符表达

的含义是不一致的。可见,将要显示的存储单元的数据直接送到P0 口去驱动LED 数码管显

示是不能正确表达的,必须在系统内部将要显示的数据经过BCD 码行转换后,将各个单元数

据的段选代码送入P0 口,给CD4511 译码后去驱动数码管显示。 具体转换过程如下:

我们先将要显示的数据装入累加器A 中,再将A 中的数据转换成高低两位的BCD 码, 再放回A 中,然后将A 中的值输出。如:有一个单元存储了45 这样一位数,则需转换成四 位的BCD 码:<0100)<0101)然后放入A 中。A 中BCD 码,高位四位代表?4?低四位代 表?5?同时送给两个译码器中,译码后? 45? 字就在两个LED 中显示出来。

2.计时功能的实现与中断服务程序

时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器T0 打开后, 进入计时,满100 毫秒后,重装定时。中断一次,满一秒后秒进位,满60 秒后即为1 分钟,

分钟单元进位,60 分到了后,时单元进位,24 小时满后,天单元进位。这样然后根据进率,

得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送LED 中显示出来,

实现时钟计时功能。累加是用指令INC 来实现的。

3 / 15

进入中断服务程序以后,执行PUSH PSW 和PUSH A 将程序状态寄存器PSW 的内容和累 加器A 中的数据保存起来,这便是所谓的? 保护现场? . 以保护现场和恢复现场时存取关键 数据的存储区叫做堆栈。在软件的控制之下,堆栈可在片内RAM 中的任一区间设定,而堆栈

的数据存取与一般的RAM 存取又有区别,对它的操作,要遵循? 后进先出? 的原则。

3时间控制功能与比较指令

系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:先 将执行设备开启的时间和关闭时间置入RAM 某一单元,在计时主程序当中执行几条比较指 令,如果当前计时时间与执行设备的设定开启时间相等,就执行一条CLR 指令,将对应的 那路P3 置为高电位,开启;如果当前计时时间与执行设备设定的关闭时间相等,就执行SETB

对应的P3 置低电位,二极管截止,。实现此控制功能用到的比较指令为CJNE A,#direct,

rel,其转移条件是累加器A 中的值与立即数不等则转移。

参考文献

1、谢自美,《电子线路设计、实验、测试》武汉:华中理工大学出版社,2000 2、何书森、何华斌《实用数字电路原理与设计速成》福州:福建科学技术出版社,2000.6

3、白驹衍,《单片计算机及应用》北京:电子工业出版社,1999.2

五:程序

SEC EQU 32H 。秒即时时间\\伪指令

YEAR EQU 33H 。年

MIN_1 EQU 41H 。分定时器1 路、开存储单元

MIN EQU 31H 。分

HOUR_1 EQU 42H 。时

HOUR EQU 30H 。时

DAY_1 EQU 43H 。

DAY EQU 35H 。日

MON_1 EQU 44H 。

MON EQU 34H 。月

4 / 15