6位数码管电子时钟c语言程序,利用AT89C51单片机设计简易电子钟(六位),通过8位LED数码管实现时间显示;系统可以通过三个按键实现时间...

利用AT89C51单片机设计简易电子钟(六位),通过8位LED数码管实现时间显示;系统可以通过三个按键实现时间 常见问题

汇编可以么LED_1 EQU 30HLED_2 EQU 31HLED_3 EQU 32HLED_4 EQU 33HLED_5 EQU 34HLED_6 EQU 35HLED_7 EQU 36HLED_8 EQU 37HTIMER EQU 38HMODE EQU 39H ;模式判断FLASH EQU 40H ;闪烁判断 1亮 0不亮BUTTON1 EQU 41H ;按钮开关BUTTON2 EQU 42H ;按钮开关BUTTON3 EQU 43H ;按钮开关BUTTON4 EQU 44H ;按钮灵敏CS1 EQU P2.0CS2 EQU P2.1WR_ON EQU P2.2;-------------------------------; 按钮;-------------------------------IN_SET EQU P2.3IN_GAL EQU P2.4IN_SUB EQU P2.5;-------------------------------; 主程序;接口:D0-D7 接 P1.0-P1.7; CS1 P2.0 CS2 P2.1 WR P2.2;-------------------------------ORG 0000HJMP MAINORG 000BHJMP T0INTORG 0030HMAIN:CALL SYSINIT;-------------------------------START:JMP START;-------------------------------; 计时器子程序;-------------------------------T0INT:MOV TH0,#03CHMOV TL0,#0AFHCALL SHOWDJNZ BUTTON4,T0INT1MOV BUTTON4,#10CALL AJ1CALL AJ3CALL AJ5T0INT1:DJNZ TIMER,T0INTENDCALL MODE_PD1T0INTEND:RETI;-------------------------------; 模式判断;-------------------------------MODE_PD1:MOV A,MODECJNE A,#0,MODE_PD2MOV TIMER,#200CALL CADDJMP MODE_PDENDMODE_PD2:MOV A,MODECJNE A,#1,MODE_PD3MOV TIMER,#50CALL FLASH1JMP MODE_PDENDMODE_PD3:MOV A,MODECJNE A,#2,MODE_PD4MOV TIMER,#50CALL FLASH3JMP MODE_PDENDMODE_PD4:MOV A,MODECJNE A,#3,MODE_PDENDMOV TIMER,#50CALL FLASH5MODE_PDEND:RET;-------------------------------; 按钮;-------------------------------AJ1:MOV A,BUTTON1CJNE A,#1,AJ2JB IN_SET,AJENDMOV BUTTON1,#0CALL SAVE2MOV TIMER,#1INC MODEMOV A,MODECJNE A,#4,AJENDMOV MODE,#0MOV TIMER,#100JMP AJENDAJ2:MOV A,BUTTON1CJNE A,#0,AJ1JNB IN_SET,AJENDMOV BUTTON1,#1JMP AJENDAJ3:MOV A,BUTTON2CJNE A,#1,AJ4JB IN_GAL,AJENDMOV BUTTON2,#0CALL GAL1JMP AJENDAJ4:MOV A,BUTTON2CJNE A,#0,AJ3JNB IN_GAL,AJENDMOV BUTTON2,#1JMP AJENDAJ5:MOV A,BUTTON3CJNE A,#1,AJ6JB IN_SUB,AJENDMOV BUTTON3,#0CALL SUB1JMP AJENDAJ6:MOV A,BUTTON3CJNE A,#0,AJ5JNB IN_SUB,AJENDMOV BUTTON3,#1JMP AJENDAJEND:RET;-------------------------------; 加法;-------------------------------GAL1:MOV A,MODECJNE A,#3,GAL2INC 58HMOV A,58HCJNE A,#10,GALENDMOV 58H,#0INC 57HMOV A,57HCJNE A,#6,GALENDMOV 57H,#0GAL2:MOV A,MODECJNE A,#2,GAL3INC 55HMOV A,55HCJNE A,#10,GALENDMOV 55H,#0INC 54HMOV A,54HCJNE A,#6,GALENDMOV 54H,#0GAL3:MOV A,MODECJNE A,#1,GALENDINC 52HMOV A,52HCJNE A,#10,GAL32MOV 52H,#0INC 51HGAL32:CJNE A,#4,GALENDMOV A,51HCJNE A,#2,GALENDMOV 52H,#0MOV 51H,#0GALEND:CALL SAVE2RET;-------------------------------; 减法;-------------------------------SUB1:MOV A,MODECJNE A,#3,SUB2DEC 58HMOV A,58HCJNE A,#-1,SUBENDMOV 58H,#9DEC 57HMOV A,57HCJNE A,#-1,SUBENDMOV 57H,#5SUB2:MOV A,MODECJNE A,#2,SUB3DEC 55HMOV A,55HCJNE A,#-1,SUBENDMOV 55H,#9DEC 54HMOV A,54HCJNE A,#-1,SUBENDMOV 54H,#5SUB3:MOV A,MODECJNE A,#1,SUBENDDEC 52HMOV A,52HCJNE A,#-1,SUBENDMOV 52H,#9DEC 51HMOV A,51HCJNE A,#-1,GALENDMOV 52H,#3MOV 51H,#2SUBEND:CALL SAVE2RET;-------------------------------; 闪烁;-------------------------------FLASH1:MOV A,FLASHCJNE A,#0,FLASH2MOV 51H,LED_1MOV 52H,LED_2MOV LED_1,#11MOV LED_2,#11MOV FLASH,#1JMP FLASHENDFLASH2:MOV A,FLASHCJNE A,#1,FLASHENDMOV LED_1,51HMOV LED_2,52HMOV FLASH,#0JMP FLASHEND ;小时闪烁FLASH3:MOV A,FLASHCJNE A,#0,FLASH4MOV 54H,LED_4MOV 55H,LED_5MOV LED_4,#11MOV LED_5,#11MOV FLASH,#1JMP FLASHENDFLASH4:MOV A,FLASHCJNE A,#1,FLASHENDMOV LED_4,54HMOV LED_5,55HMOV FLASH,#0 JMP FLASHEND ;分钟闪烁FLASH5:MOV A,FLASHCJNE A,#0,FLASH6MOV 57H,LED_7MOV 58H,LED_8MOV LED_7,#11MOV LED_8,#11MOV FLASH,#1JMP FLASHENDFLASH6:MOV A,FLASHCJNE A,#1,FLASHENDMOV LED_7,57HMOV LED_8,58HMOV FLASH,#0 ;秒钟闪烁FLASHEND:RET;-------------------------------; 数据加减;-------------------------------CADD:INC LED_8MOV A,LED_8CJNE A,#10,CADDENDMOV LED_8,#0INC LED_7MOV A,LED_7CJNE A,#6,CADDENDMOV LED_7,#0INC LED_5MOV A,LED_5CJNE A,#10,CADDENDMOV LED_5,#0INC LED_4MOV A,LED_4CJNE A,#6,CADDENDMOV LED_4,#0INC LED_2MOV A,LED_2CJNE A,#10,CADD2MOV LED_2,#0INC LED_1CADD2:CJNE A,#4,CADDENDMOV A,LED_1CJNE A,#2,CADDENDCALL SYSINITCADDEND:CALL SAVE1RET;-------------------------------; 数据显示;-------------------------------SHOW:MOV R0,#30HMOV R1,#8MOV R2,#01111111BSHOW1:MOV A,R2MOV P0,ACALL CS2_ONRR AMOV R2,AMOV A,@R0MOVC A,@A+DPTRMOV P0,ACALL CS1_ONCALL DELAYMOV P0,#0FFHCALL CS1_ONCALL CS2_ONINC R0DJNZ R1,SHOW1RETCS1_ON:CLR WR_ONCLR CS1SETB WR_ONSETB CS1RETCS2_ON:CLR WR_ONCLR CS2SETB WR_ONSETB CS2RET;-------------------------------; 数据储存;-------------------------------SAVE1:MOV 51H,LED_1MOV 52H,LED_2MOV 54H,LED_4MOV 55H,LED_5MOV 57H,LED_7MOV 58H,LED_8RETSAVE2:MOV LED_1,51HMOV LED_2,52HMOV LED_4,54HMOV LED_5,55HMOV LED_7,57HMOV LED_8,58HRET;-------------------------------; 数据初始化;-------------------------------SYSINIT:MOV LED_1,#0MOV LED_2,#0MOV LED_3,#10MOV LED_4,#0MOV LED_5,#0MOV LED_6,#10MOV LED_7,#0MOV LED_8,#0CALL SAVE1MOV TIMER,#200MOV MODE,#0MOV FLASH,#0MOV BUTTON1,#1MOV BUTTON2,#1MOV BUTTON3,#1MOV BUTTON4,#3MOV TH0,#03CHMOV TL0,#0AFHSETB TR0SETB ET0SETB EAMOV DPTR,#TABRET;-------------------------------; 延迟;-------------------------------DELAY:MOV R6,#255DJNZ R6,$RET;-------------------------------; 段码;-------------------------------TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH,0FFH;0- "0";1- "1";2- "2";...;9- "9";10-"-";11-" "END

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值