你好,能不能帮我写个12分钟倒计时的汇编程序,51的
的有关信息介绍如下:
LOAD BIT P1.2 DIN BIT P1.0 DCLK BIT P1.1 DOUT BIT P3.3 KEY EQU 22H ;存放按键键码 KD EQU 23H ;存放按键号 KEY_F BIT 00H ;有键标志位 SEC EQU 25H ;秒单元 MIN EQU 26H ;分单元 ORG 0000H AJMP MAIN ORG 0100HMAIN: MOV SP, #60H ;初始化 MOV ST, #0 CLR KEY_F MOV KEY,#0 MOV KD,#0 MOV SEC,#0 MOV MIN,#0 MOV TMOD,#01H ;定时器初始化 MOV TH0,#0DBH MOV TL0,#0F9H MOV IE,#82HCH451_INIT: ;CH451初始化子程序 MOV P1,#60H CLR DIN ;先低后高 SETB DCLK ;置为默认的高电平 SETB DIN ;输出上升沿CH451选择4线串行接口 SETB LOAD SETB DOUT ;置为输入 NOP MOV B,#04H ;设置CH451 MOV A,#03H ;关看门狗开显示键盘 LCALL WRITE NOP MOV B,#05H ;设置显示模式为译码方式 MOV A,#80H LCALL WRITE NOP CLR IT1 ;置外部中断信号为低电平触发 CLR IE1 ;清中断标志 SETB EX1 ;允许键盘中断 SETB EA ;开总中断 START: LCALL DISP ;当前计时显示 JNB KEY_F,START ;无按键等待 CLR KEY_F ;有按键,清按键标志DISP: ;显示子程序 PUSH PSW PUSH ACC MOV B,#0FH ;加载字数据7 MOV A,SEC ANL A,#0FH ACALL WRITE MOV A,SEC SWAP A ANL A,#0FH DEC B ;加载字数据6 ACALL WRITE MOV A,#12H DEC B ;加载字数据5 ACALL WRITE MOV A,MIN ANL A,#0FH DEC B ;加载字数据4 ACALL WRITE MOV A, SWAP A ANL A,#0FH DEC B ;加载字数据3 ACALL WRITE MOV A,#10H DEC B ;加载字数据2 ACALL WRITE MOV A,MIN ANL A,#0FH DEC B ;加载字数据1 ACALL WRITE MOV A, SWAP A ANL A,#0FH DEC B ;加载字数据0 ACALL WRITE POP ACC POP PSW RETWRITE: PUSH PSW PUSH ACC CLR EX1 CLR LOAD MOV R7,#08HWRITE_8: RRC A CLR DCLK MOV DIN,C SETB DCLK DJNZ R7,WRITE_8 MOV A,B MOV R7,#04HWRITE_4: RRC A CLR DCLK MOV DIN,C SETB DCLK DJNZ R7,WRITE_4 SETB LOAD SETB EX1 POP ACC POP PSW RET把时分秒调换即可,你试试吧~



