虽然学过汇编,但看起来依然很头疼 |
底下还有一层电源吗?另外,这个at89c2051用什么烧录?isp行吗?必须要用编程器吗? |
如楼主说的继电器状态不同接法也不同,看各自需求加上 |
数码管倒计时提醒器.jpg (47.76 KB, 下载次数: 122)
给个图!!! |
楼主上传个电路图呗 |
是呀是呀,楼主真要赐给个电路图哦.我们这些土包子是从音响功放DIY出来玩的,不是电子专业人士,没有电路图,怎么玩呀 |
楼主给个电路图和HEX烧写文件吗?谢谢! |
thanks for sharing |
求楼主给个电路图和HFX烧写文件, |
czhaii 发表于 2017-8-23 14:20 那是我以前做的,现在用C写了 |
还有不少人弄汇编么?想当初入门也是一个一个汇编指令敲出来,一条一条研究。 |
源码怎么上传? |
MENU BIT P3.4 UPO BIT P3.5 ;DOWNO BIT P3.7 JDQ BIT P3.7 ORG 00H SJMP MAIN ;程序开始 ORG 0BH ;T0入口地址 JMP INTT0 ORG 1BH JMP INTT1 ORG 30H ;------------------------------------------------ MAIN: MOV SP,#70H ;堆键地址设置 MOV R1,#60H ;清除首址 MOV R7,#16 ;清除单元数 MOV P3,#0FFH SETB JDQ CLEARH: MOV @R1,#00H INC R1 DJNZ R7,CLEARH ;-------------------------------------------------- MOV R2,#00H ;60S计数单元 MOV R3,#00H ;60M计数单元 MOV R4,#14H ;1S中断20次 MOV 22H,#10 ;0.5S中断10次 MOV 29H,#00H ;MENU键按键次数 MOV 20H,#00H ;0.5S标志位 MOV 24H,#00H ;24小时到标志单元 MOV 6CH,#0BH ;熄灭符 MOV TMOD,#11H MOV TL0,#0B0H MOV TH0,#3CH MOV TL1,#0B0H MOV TH1,#3CH SETB EA SETB ET0 SETB ET1 SETB TR0 CLR TR1 JMP MENUD1 ;----------------------------- START1: CALL DISP JNB MENU,MENU0 ;时间调整按键 SJMP START1 ;------------------------------------------ MENU0: CALL DISP JNB MENU,MENU0 NEXT: MOV R0,#68H ;调时单元 MOV 29H,#00H CLR TR0 SETB TR1 NEXT1: CALL DISP JNB MENU,MENUD1 JNB UPO,UP ;JNB DOWNO,DOWN SJMP NEXT1 MENUD1: MOV R0,#68H ;调时单元 ;MOV 29H,#00H CLR TR0 SETB TR1 CALL DISP JNB MENU,MENUD1 INC R0 INC R0 INC 29H ;按“MENU”键29H单元加 1 SETB 20H.1 JNB MENU,MENUD1 JNB UPO,UP ;JNB DOWNO,DOWN MOV A,29H CJNE A,#02H,NEXT1 ;MENU键按下3次退出调时程序,不到3次继续 MOV 29H,#00H SETB TR0 CLR TR1 CLR JDQ MOV R2,66H CLR 20H.2 CLR 20H.1 MOV 60H,66H MOV 61H,67H MOV 62H,68H MOV 63H,69H JMP START1 ;------------------------------------------ UP: CALL DISP JNB UPO,UP UP2: CJNE R0,#68H,UP0 CALL ADDSS UP3: CALL DISP JNB MENU,MENUD1 JNB UPO,UP ;JNB DOWNO,DOWN SJMP UP3 UP0: CJNE R0,#6AH,UP1 CALL ADDMM1 UP1: SJMP UP3 ;--------------------------------------------- DOWN: CALL DISP ;JNB DOWNO,DOWN CJNE @R0,#00H,DOWN0 MOV @R0,#0AH DOWN0: DEC @R0 MOV 60H,66H MOV 61H,67H MOV 62H,68H MOV 63H,69H MOV 64H,6AH MOV 65H,6BH DOWN1: CALL DISP JNB MENU,MENUD1 JNB UPO,UP ;JNB DOWNO,DOWN JMP DOWN1 ;---------------------------------------------------- DISP: MOV R5,#04H ;数码管扫描位数 MOV R1,#60H ;显示首地址 ;MOV R5,#11110111B ;数码管位扫描码 PLAY: CJNE R5,#04H,D3 CLR P3.3 D3: CJNE R5,#03H,D4 CLR P3.2 D4: CJNE R5,#02H,D5 CLR P3.1 D5: CJNE R5,#01H,D6 CLR P3.0 ;MOV A,R5 ;MOV P3,A D6: MOV A,@R1 JNB 20H.0,D1 MOV DPTR,#TAB0 SJMP D2 D1: MOV DPTR,#TAB1 D2: MOVC A,@A+DPTR MOV P1,A CALL DL1MS INC R1 SETB P3.3 SETB P3.2 SETB P3.1 SETB P3.0 ;MOV A,R5 ;RR A ;MOV R5,A DJNZ R5,PLAY RET ;---------------------------------------------------- INTT1: PUSH ACC ;调时闪烁中断程序 PUSH PSW CLR TF1 MOV TL1,#0B0H MOV TH1,#3CH SETB TR1 DJNZ 22H,T1OUT CPL 20H.2 MOV 22H,#10 T1OUT: JB 20H.2,FLASH1 MOV 60H,66H MOV 61H,67H MOV 62H,68H MOV 63H,69H D1OUT: POP PSW POP ACC RETI FLASH1: JB 20H.1,FLASH2 MOV 60H,6CH MOV 61H,6CH MOV 62H,68H MOV 63H,69H AJMP D1OUT FLASH2: MOV 60H,66H MOV 61H,67H MOV 62H,6CH MOV 63H,6CH AJMP D1OUT ;==================================== INTT0: PUSH ACC ;秒中断程序 PUSH PSW CLR TF0 MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 DJNZ R4,T0OUT CALL DECSS;ADDSS T0OUT: CJNE R4,#10,D0OUT CPL 20H.0 D0OUT: POP PSW POP ACC RETI JIAYIOUT:RET ;=================================================== ADDSS: CPL 20H.0 MOV R4,#14H ;50毫秒中断20次 INC 66H INC R2 ;60S计数寄存器 MOV 60H,66H CJNE R2,#60,ADDSS1 JMP ADDMM ADDSS1: MOV A,66H ;秒个位传入显示 CJNE A,#0AH,JIAYIOUT ;不相等转移 ;---------------------------------------------------------- MOV 66H,#00H ;--------------------------------------------------------------------------- INC 67H MOV 61H,67H ;秒十位传入显示 RET ;----------------------------------------------------------- ADDMM: MOV 66H,#00H ;秒个位清零 MOV 60H,66H MOV 67H,#00H ;秒十位清零 MOV 61H,67H MOV R2,#00H ;秒计数寄存器清零 ;-------------------------------------------- ADDMM1: INC 68H INC R3 ;60分计数寄存器 MOV 62H,68H ;分个位传入显示 CJNE R3,#60,ADM1 JMP start1 ADM1: MOV A,68H CJNE A,#0AH,JIAYIOUT ;------------------------------------- MOV 68H,#00H INC 69H MOV 63H,69H ;分十位传入显示 RET ;---------------------------------------------------------------------------- DECOUT: CJNE R2,#00H,A1 MOV R2,66H DEC 67H MOV 61H,67H RET A1: DEC 66H DEC R2 MOV 60H,66H RET DECSS: CPL 20H.0 MOV R4,#14H ;50毫秒中断20次 MOV A,66H CJNE A,#00H,DECOUT MOV A,67H CJNE A,#00H,DECSS1 MOV A,68H CJNE A,#00H,DECSS2 MOV A,69H CJNE A,#00H,DECMM0 CLR TR0 ;SETB TR1 SETB JDQ RET ;JMP START1 ;SETB TRO DECSS1: MOV 66H,#9 ;秒个位从9-0开始 MOV 60H,66H JMP DECOUT DECSS2: MOV 66H,#9 MOV 60H,66H MOV 67H,#6 MOV 61H,67H DEC 68H MOV 62H,68H JMP DECOUT ;----------------------------- DECMM0: MOV 66H,#9 MOV 60H,66H MOV 67H,#6 MOV 61H,67H MOV 68H,#9 MOV 62H,68H DEC 69H MOV 63H,69H JMP DECOUT ;------------------------------------------------------------------------------ DL1MS: MOV 27H,#10 ;2MS DL2: MOV 28H,#200 DJNZ 28H,$ DJNZ 27H,DL2 RET ;-------0---1---2---3---4---5---6---7---8---9---0--熄灭符------------ TAB0:DB 02H,9EH,24H,0CH,98H,48H,40H,1EH,00H,08H,02H,0FFH;--“:”--亮 TAB1:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H,03H,0FFH;--“:”--灭 END |
好东东,楼主能分享一下源码吗? |