完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
做了个电子时钟,不知哪里出了错误,仿真时只显示开机设定时间12:00:00,中断程序不能计时,请高手指教。 DISSEC EQU 20H ;定义秒显示单元 DISMIN EQU 21H ;定义分钟显示单元 DISHOR EQU 22H ;定义小时显示单元 CLKSEC EQU 23H ;定义秒走时单元 CLKMIN EQU 24H ;定义分钟走时单元 CLKHOR EQU 25H ;定义小时走时单元 SECSIG EQU 29H ;定义一秒钟到标志位 ORG 000H LJMP START ORG 000BH LJMP INT_B ORG 0030H START: MOV SP ,#70H ;堆栈指针赋初值 MOV SECSIG,#2 ;2*500ms=1s MOV TMOD,#01H ;使用定时器1定时500ms MOV TH0,#3CH ;对定时器赋初值 MOV TL0,#0B0H SETB EA ;开总中断 SETB ET0 ;开定时器0中断 SETB TR0 ;启动定时器0 CLR A ;将开机时钟显示设置为12:00:00 MOV CLKSEC,A MOV CLKMIN,A MOV CLKHOR,#12 DISPLY: ;显示程序 MOV DISSEC,CLKSEC ;将走时单元数据传送到显示单元 MOV DISMIN,CLKMIN MOV DISHOR,CLKHOR MOV A,DISSEC ;转换显示程序 MOV B,#10 DIV AB MOV 42H,B ;秒位转换 MOV 43H,A MOV A,DISMIN MOV B,#10 DIV AB MOV 44H,B ;分钟转换 MOV 45H,A MOV A,DISHOR MOV B,#10 DIV AB MOV 46H,B ;小时转换 MOV 47H,A MOV DPTR,#TABLE MOV A,42H ;秒位显示 MOV P2,#0FEH ;将位选码送P2 MOVC A,@A+DPTR MOV P0,A LCALL DELAY2ms MOV A,43H MOVC A,@A+DPTR MOV P2,#0FDH ;将位选码送P2 MOV P0,A LCALL DELAY2ms MOV A,44H ;分钟显示 MOVC A,@A+DPTR MOV P2,#0FBH ;将位选码送P2 MOV P0,A LCALL DELAY2ms MOV A,45H MOVC A,@A+DPTR MOV P2,#0F7H ;将位选码送P2 MOV P0,A LCALL DELAY2ms MOV A,46H ;小时显示 MOVC A,@A+DPTR MOV P2,#0EFH ;将位选码送P2 MOV P0,A LCALL DELAY2ms MOV A,47H MOVC A,@A+DPTR MOV P2,#0DFH ;将位选码送P2 MOV P0,A LCALL DELAY2ms LJMP DISPLY
INT_B:PUSH PSW ;中断程序 PUSH ACC ;入栈保护现场 MOV TH0,#3CH ;对计数器重新赋值 MOV TL0,#0B0H DJNZ SECSIG,TT ;判断 1秒时间到否,不到转向TT MOV SECSIG,#2 ;一秒到时对标志位重新赋值 MOV A,CLKSEC ;对秒数据进行加一处理 ADD A,#1 CJNE A,#60,TT MOV A,#0 MOV CLKSEC,A MOV A,CLKMIN ;对分钟数据进行加一处理 ADD A,#1 CJNE A,#60,TT MOV A,#0 MOV CLKMIN,A MOV A,CLKHOR ;对小时数据进行加以处理 ADD A,#1 CJNE A,#24,TT MOV A,#0 MOV CLKHOR,A TT:POP ACC ;TT为恢复现场中断返回 POP PSW REti DELAY2ms:MOV 40H,#4 ;2MS延时程序 D1:MOV 41H,#248 DJNZ 41H,$ DJNZ 40H,D1 RET TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;显示数码表0~9
END [此贴子已经被作者于2008-10-18 19:15:29编辑过]
|
|
相关推荐
3 个讨论
|
|
INT_B:PUSH PSW ;中断程序
PUSH ACC ;入栈保护现场 MOV TH0,#3CH ;对计数器重新赋值 MOV TL0,#0B0H DJNZ SECSIG,TT ;判断 1秒时间到否,不到转向TT MOV SECSIG,#2 ;一秒到时对标志位重新赋值 MOV A,CLKSEC ;对秒数据进行加一处理 ADD A,#1 还有MOV A,#CLKSEC才是传入的CLKSEC地址的数据 [此贴子已经被作者于2008-10-19 15:25:08编辑过]
|
|
|
|
|
|
不知你写的是什么?
|
|
|
|
|
|
【FireBeetle 2 ESP32-S3开发板体验】官方Arduino例程学习
914 浏览 0 评论
【FireBeetle 2 ESP32-S3开发板体验】ESP-IDF搭建北斗二代模块进行北斗RDSS通信
1782 浏览 1 评论
【FireBeetle 2 ESP32-S3开发板体验】基于GDI接口的高清IPS屏的LVGL使用(方法通用所有支持接口的屏)
5192 浏览 1 评论
【FireBeetle 2 ESP32-S3开发板体验】基于ESP32S3+SPIFFS+AsyncWebServer+SQLite3的硬件地址归属品牌(厂商)查询工具
987 浏览 1 评论
【FireBeetle 2 ESP32-S3开发板体验】蓝牙BLE控制LED
976 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 粤ICP备14022951号 )
GMT+8, 2023-10-3 12:22 , Processed in 0.524776 second(s), Total 48, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:粤 B2-20160233