ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:69.09KB ,
资源ID:6631046      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6631046.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电脑时钟Word格式.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

电脑时钟Word格式.docx

1、 SEC EQU 27H MIN EQU 28H HOUR EQU 29H ASEC EQU 2AH AMIN EQU 2BH AHOUR EQU 2CH SAFE EQU 2DH ;暂存A等特殊寄存器的值,保护作用 KEY EQU 2EH;键值寄存器 EN EQU 2FH ;时钟显示使能 CLOSE EQU 30H;关闭定时闹铃使能 TS EQU 31H;调时间使能 MAIN:MOV SP,#32H ACALL INIT ;缓冲区初始化 ACALL PT0M0 ;T0初始化 L1:ACALL KEYI ;调用按键子程序 ACALL DEAL ;调用按键处理程序 ACALL FUNC ;调用按

2、键功能判断程序 AJMP L1 RET * T0初始化* PT0M0:MOV TMOD,#01H ;T0,方式1 MOV TL0,#0B0H MOV TL1,#3CH SETB TR0 SETB ET0 SETB EA ;*计时、闹钟、显示缓冲区初始化 使能功能初始化显示缓冲区初始化 INIT:MOV DISP0,#00H MOV DISP1,#05H MOV DISP2,#09H MOV DISP3,#05H MOV DISP4,#03H MOV DISP5,#02H计时缓冲区初始化 MOV MSEC,#00H ;压缩BCD码 MOV SEC,#50H ;方便检测,设时间23:59:50 M

3、OV MIN,#59H MOV HOUR,#23H闹钟缓存区 MOV ASEC,#56H ; MOV AMIN,#34H MOV AHOUR,#12H使能初始化 MOV EN,#01H ;1:显示缓存区给时钟用 0:显示缓存区给闹钟定时用 SETB P1.1 ;关闭闹铃 MOV CLOSE,#00H ;关闭定时闹铃功能 MOV TS,#00H ;关闭调时 RET* 动态显示程序注意:内部程序,只让键盘之程序调用 DIR:MOV R0,#DISP0;显示缓冲区, 第一个地址 MOV R3,#01H ;选位码 MOV A,R3 LD0:MOV DPTR,#SELKEY;字位口 MOVX DPTR,

4、A MOV DPTR,#TABLE;给表格首地址 MOV A,R0 MOVC A,A+DPTR;找到对应字码 MOV DPTR,#DTIME;字形口 MOVX DPTR,A;输出数字 ACALL DELAY;延时1ms INC R0;显示下一个字符 MOV A,R3 ;未位选码送入A JB ACC.5,EXT ;6位一遍扫完退出 RL A;左移,下一个LED亮 MOV R3,A AJMP LD0 EXT:RET TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H;共阳0 1 2 3 4 DB 92H,82H,0F8H,80H,90H;5 6 7 8 9 DB 0FFH;0AH D

5、ELAY:MOV R7,#26H;延时1ms子程序 DL:MOV R6,#05H DL1:DJNZ R6,DL1 DJNZ R7,DL * 键盘子程序判断有无按键 KS1:键扫口 MOV A,#00H键扫口完为0 MOV DPTR,#KEYIN;键入口 MOVX A,DPTR;从键入口读数剧 CPL A ANL A,#0FH扫描按键输入 KEYI:ACALL KS1 JNZ LK1;有键闭合 NI:ACALL DIR;无键闭合,调用显示子程序,延时6ms AJMP KEYI;没有按键,接着扫描 LK1:调用显示子程序的6ms ACALL DIR;调用显示子程序的6ms,延时12ms,去抖判断

6、ACALL KS1; JNZ LK2;确有按键,跳LK2执行没有按键,调用显示子程序,延时6ms LK2:MOV R2,#0FEH;列选码赋值R2 MOV R4,#00H;R4为列计数器 LK4:键扫口的地址 MOV A,R2; MOVX DPTR,A;键扫口赋值键入口的地址读键入口的值 JB ACC.0,LONE;第0行无键闭合,跳到LONE,转判第1行 MOV A,#00H;第0行有键闭合,首键号0-A AJMP LKP;跳LKP,计算键号 LONE:JB ACC.1,LTWO MOV A,#08H AJMP LKP LTWO:JB ACC.2,LTHR MOV A,#10H LTHR:J

7、B ACC.3,NEXT MOV A,#18H LKP:ADD A,R4;计算键号,即行首键号+列号=键号 PUSH ACC;键号保护 LK3:调用显示延时,等待按键松开,键号出栈- ACALL KS1 JNZ LK3 POP ACC NEXT:INC R4;列计数器加1,扫描下一行 MOV A,R2 JNB ACC.7,KND;判断是否扫完一回列选码左移,选择第2列 MOV R2,A AJMP LK4;继续读键 KND:AJMP KEYI;扫完,没有发现按键,退回,继续扫描按键输入*按键处理程序 DEAL:MOV DPTR,#TAB;找到对应的值 MOV KEY,A;存储键值 TAB:DB

8、07H,04H,08H,05H,09H,06H,0AH,0BH ;0 1 2 3 4 5 6 7 DB 01H,00H,02H,0FH,03H,0EH,0CH,0DH ;8 9 A B C D E F DB 1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH ;16 17 18 19 20 21 22 23 DB 1FH,1FH,1FH,1FH,1FH,1FH,1FH,1FH ;24 25 26 27 28 29 30 31* 功能模块作用:键盘输入删选 闹钟设置键 0B- 闹钟查看键 0C- 0E-关闹铃 1F- 没定义,无用按键 FUNC:MOV A,KEY ;判断是否按了无用

9、键 CJNE A,#1FH,FUNC1 ;1F- RET ;是有用键,跳到FUNC1处理,不是,返回 FUNC1:判断按下闹钟设置键? CJNE A,#0AH,FUNC2 ; 闹钟设置键 ACALL TIMING ;是,调用定时闹铃程序 FUNC2:判断按下闹钟查看键? CJNE A,#0BH,FUNC3;0B- ACALL WATCH ;是,调用闹钟查看程序 FUNC3:判断按下时钟键? CJNE A,#0CH,FUNC4;0C- 时钟显示键 MOV EN,#01H FUNC4:判断按下关闭闹铃功能? CJNE A,#0EH,FUNC5 ;0E- MOV CLOSE,#00H FUNC5:M

10、OV A,KEY CJNE A,#0FH,FUNC6 ;关正在响的闹铃 SETB P1.1 FUNC6: CJNE A,#0DH,FUNC7 MOV TS,#01H ACALL TIMING MOV TS,#00H FUNC7:定时闹铃程序数字键:0 1 2 3 4 5 6 7 8 9功能键: 按非数字键退出- 重置 TIMING:MOV EN,#00H ;关闭时钟显示 MOV R5,#DISP5;第6LED管的显存位子 TIM3: MOV A,KEY ;取键值*排除非数值键* CJNE A,#00H,ERR0 AJMP TIM0 ERR0:CJNE A,#01H,ERR1 ;判断是否是重置键

11、,是跳出,返回 AJMP TIM0 ERR1:CJNE A,#02H,ERR2 ERR2:CJNE A,#03H,ERR3 ERR3:CJNE A,#04H,ERR4 ERR4:CJNE A,#05H,ERR5 ERR5:CJNE A,#06H,ERR6 ERR6:CJNE A,#07H,ERR7 ERR7:CJNE A,#08H,ERR8 ERR8:CJNE A,#09H,JJJ ;JJJ TIM0:MOV A,R5 MOV R1,A MOV R1,KEY ;存值*排除输入格式错误* CJNE A,#25H,DY4 MOV A,KEY CJNE A,#00H,DY50 AJMP DFIN D

12、Y50:CJNE A,#01H,DY51 DY51:CJNE A,#02H,JJJ ; MOV A,R5 DY4:CJNE A,#24H,DY3 MOV A,DISP5 CJNE A,#02H,DFIN CJNE A,#00H,DY40 DY40:CJNE A,#01H,DY41 DY41:CJNE A,#02H,DY42 DY42:CJNE A,#03H,TIM1 DY3:CJNE A,#23H,DY1 DY10: CJNE A,#09H,DY30 JJJ:AJMP TIM1 DY30:CJNE A,#08H,DY31 AJMP TIM1 DY31:CJNE A,#07H,DY32 DY32

13、:CJNE A,#06H,DFIN DY1:CJNE A,#21H,DFIN AJMP DY10* DFIN: CJNE A,#20H,TIM2 MOV A,DISP5 ;把显存里的数据转换成闹铃缓冲区的格式 SWAP A ADD A,DISP4* PUSH ACC MOV A,TS CJNE A,#00H,TSJ1 MOV AHOUR,A AJMP DSJ1 TSJ1:POP ACC MOV HOUR,A DSJ1:MOV A,DISP3 ADD A,DISP2 CJNE A,#00H,TSJ2 MOV AMIN,A AJMP DSJ2 TSJ2: MOV MIN,A DSJ2:MOV A,

14、DISP1 ADD A,DISP0 CJNE A,#00H,TSJ3 MOV ASEC,A AJMP DSJ3 TSJ3: MOV SEC,A DSJ3:MOV CLOSE,#01H ;开闹铃工能 TIM1:MOV EN,#01H ;开时钟显示 TIM2:DEC R5 AJMP TIM3 定时时间查看程序 WATCH :MOV EN,#00H MOV A,ASEC MOV R1,#DISP0 ;拆分,赋值给ASEC显存 ACALL SPL MOV A,AMIN MOV R1,#DISP2 ;拆分,赋值给AMIN显存 ACALL SPL MOV A,AHOUR MOV R1,#DISP4 ;拆分

15、,赋值给AHOUR显存 定时比较模块定时时间到,就响铃内涵数,只能定时中断调用 ALARM:;DJNZ CLOSE,BACK ;CLOSE=0,关闭定时闹铃功能 MOV A,CLOSE CJNE A,#01,BACK CJNE A,SEC,BACK CJNE A,MIN,BACK CJNE A,HOUR,BACK CLR P1.1;开闹铃 BACK: 拆字程序把计时缓冲区里以压缩BCD码形式的SEC,MIN,HOUR 转换成和显示缓存相匹配的非压缩BCD码DISP0DISP5的形式 SPL:MOV SAFE,A ;保护A寄存器 MOV R1,A MOV A,SAFE ANL A,#0F0H S

16、WAP A INC R1 RET T0中断子程序 TI0 :PUSH ACC MOV TL0,#0B0H ;0.1S MOV TH0,#3CH INC MSEC MOV A,MSEC CJNE A,#0AH,DONE1 ;1S MOV MSEC,#00H MOV A,SEC ADD A,#01H ;SEC加1 DA A CJNE A,#60H,TTT0 ;1MIN MOV SEC,#00H ;SEC=0 AJMP TT0 TTT0:MOV SEC,A ;SEC赋新值 AJMP DONE ;结束,显示,判断是否到定时时间 TT0:MOV A,MIN ;MIN加1 ADD A,#01H CJNE

17、A,#60H,TTT1 ;1HOUR MOV MIN,#00H ;MIN=0 AJMP TT1 TTT1:MOV MIN,A ;MIN 赋新值 TT1:MOV A,HOUR ;HOUR加1 CJNE A,#24H,TTT2 ; MOV HOUR,#00H AJMP DONE TTT2:MOV HOUR,A ;HOUR赋新值 DONE:MOV A,EN CJNE A,#01H,DONE1 ;EN=1,显存给时钟 。 EN=0,显存不赋值,结束拆分,赋值给S显存 MOV A,MIN MOV R1,#DISP2 ;拆分,赋值给MIN显存 MOV A,HOUR MOV R1,#DISP4 ;拆分,赋值给HOUR显存 ACALL ALARM ;判断是否到响铃时间 DONE1: RETI END

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2