没有合适的资源?快使用搜索试试~ 我知道了~
基于汇编语言的数字时钟(含电路原理图和程序).doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 145 浏览量
2023-06-19
20:22:34
上传
评论
收藏 183KB DOC 举报
温馨提示
试读
12页
基于汇编语言的数字时钟(含电路原理图和程序).doc
资源推荐
资源详情
资源评论
一 摘要
单片计算机即单片微型计算机。(Single-Chip Microcomputer ),是 集CPU ,RAM ,ROM ,
定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产
品和工业自动化上。而51 单片机是各单片机中最为典型和最有代表性的一种。这次毕业设
计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。
二 说明
系统由AT89C51、LED 数码管、按键、发光二极管等部分构成,能实现时间的调整、定
时时间的设定,输出等功能。系统的功能选择由SB0、SB1、SB2、SB3、SB4 完成。其中
SB0
为时间校对,定时器调整功能键,按SB 0 进入调整状态。SB1 为功能切换键。第一轮按动
SB1 依次进入一路、二路、三路定时时间设置提示程序,按SB3 进入各路定时调整状态。
定
时时间到,二极管发亮。到了关断时间后灭掉。如果不进入继续按SB1 键,依次进入时间
¡ 年¡ 位校对、¡ 月¡ 位校对、 ¡ 日¡ 位校对、¡ 时¡ 位校对、¡ 分¡ 位校对、¡ 秒¡ 位
校对状态。不管是进入那种状态,按动SB2 皆可以使被调整位进行不进位增量加1 变化。
各
预置量设置完成后,系统将所有的设置存入RAM 中,按SB1 退出调整状态。上电后,系统
自
动进入计时状态,起始于¡ 00¡ 时¡ 00¡ 分。SB4 为年月日显示转换键,可使原来显示时分
秒转换显示年月日。
三、电路原理分析
1. 显示原理
电原理图见附图1。由6 个共阴极的数码管组成时、分、秒的显示。P0 口的8 条数据线
P0.0 至P0.7 分别与两个CD4511 译码的ABCD 口相接,P2 口的 P2.0 至P2.2 分别通过
电阻
R10 至R13 与VT1 至VT3 的基极相连接。这样通过P0 口送出一个存储单元的高位、低位
BCD
显示代码,通过P2 口送出扫描选通代码轮流点亮LED1 至LED6,就会将要显示的数据在
数
码管中显示出来。从P0 口输出的代码是BCD 码,从P2 口输出的就是位选码。这是扫描显
示
原理。
。
2 键盘及读数原理
键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去
抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电
平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里
采用软件延时的方法来避开抖动,延时时间20ms.
3 连击功能的实现
按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应
的功能会反复执行,好象连续执行,在这里我们采用软件延时250ms,当按键没释放则
执行下一条对应程序。利用连击功能,能实现快速调时操作。
四、程序设计思想和相关指令介绍
本系统的主程序主要完成时间显示和定时输出判断功能。而年月日显示和各时间单元进
位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。
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 来实现的。
进入中断服务程序以后,执行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 ;秒 即时时间 \伪指令
MIN EQU 31H ;分
HOUR EQU 30H ;时
DAY EQU 35H ;日
MON EQU 34H ;月
YEAR EQU 33H ;年
MIN_1 EQU 41H ;分 定时器1 路、开存储单元
HOUR_1 EQU 42H ;时
DAY_1 EQU 43H ;
MON_1 EQU 44H ;
YEAR_1 EQU 45H ;
MIN_11 EQU 40H ;分 定时器1 路、关存储单元
HOUR_11 EQU 46H ;时
DAY_11 EQU 47H ;日
MON_11 EQU 48H ;月
YEAR_11 EQU 49H ;年
;***********************
ORG 0000H
ljmp MAIN
ORG 0003H ;中断转换显示年月日、INT0(SB4
键)
LJMP SHOW
ORG 000BH ;计数中断 T0、方式1
LJMP TIME
ORG 0013H
LJMP CHANGE; 调整时间、定时、INT1(SB0 键)
;------主程序
ORG 0030H
MAIN:
;--------初始化付值
MOV YEAR , #02
MOV MON , #05
MOV DAY , #01
MOV HOUR , #00
MOV MIN , #00
MOV SEC , #00
CLR 40H ;定时单元1 路清零
CLR 41H
CLR 42H
CLR 43H
CLR 44H
CLR 45H
CLR 46H
CLR 47H
CLR 48H
CLR 49H
;-------开中断
MOV TMOD , #01H ;计数、模式1、T0
MOV TL0, #0B0H ;100SM 计数定时
MOV TH0, #3CH ;
clr p3.0
MOV 20H, #0AH ;10 次*100SM
SETB PT0 ;T0 为最高级
SETB TR0 ;允许计数
SETB ET0 ;允许T0 中断
SETB EX0 ;允许INT0 中断
SETB EX1 ;允许INT1 中断
SETB EA ;开总中断
;------显示、定时器启动判断
LOOP:
MOV R1, #30H; 存储单元
MOV R4, #01H; 位选通
MOV R3, #03H; 三组显示
NEXT:
MOV A , @R1 ;
MOV B , #10 ;将存储单元转换成两高低两组的
BCD 码
DIV AB
SWAP A
ORL A, B
MOV P0, A;输出
MOV P2, R4
INC R1 ;下一单元
MOV A, R4 ;
RL A ;位移
MOV R4, A
LCALL DE5SM ;延时0.5SM
DJNZ R3, NEXT ;全扫描显示一偏
;------判断定时输出(只编写了一路)
CJNE R7, #88H,LOOP ;是8 则开,否则、定时已
关、转
;---------开
MOV A, YEAR
CJNE A, YEAR_1, LOOP_1;年比较,不等转关
MOV A, MON
CJNE A, MON_1, LOOP_1
MOV A, DAY
剩余11页未读,继续阅读
资源评论
- m0_657801552024-04-17感谢资源主的分享,很值得参考学习,资源价值较高,支持!
快乐无限出发
- 粉丝: 1134
- 资源: 7269
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功