当前位置:首页 > 单片机汇编语言实验程序集合
51单片机汇编语言实验程序集合
说明:最近一直在做51的编程,下面的程序是基于AT89S52实验板的汇编练习程序,适合于初学者练习和对实验板进行下载测试用,自己写的目的是熟练一下单片机的硬件和软件编程,呵呵,把所有通过调试和下载的源程序都贴在下面了:
;功能说明:实现p0口输出循环右移的led流水灯,500ms延时 START: MOV R0,#8; MOV A,#01111111B; LOOP: MOV P0,A; ACALL DELAY RR A
DJNZ R0,LOOP JMP START
DELAY: MOV R5,#50 DLY1: MOV R6,#100 DLY2: MOV R7,#100 DJNZ R7,$ DJNZ R6,DLY2 DJNZ R5,DLY1 RET
END
***********************************************************************
;function description: T0 as timer contrled p0.7's led 50ms
; while T1 as counter contrled p0.0's led while T0 reached 100 (--10S) ;hardware: p0.0 p0.7 led; p0.7----p3.5(t1's extern int) ORG 0 JMP MAIN
ORG 000BH ;T0 OVERFLOW JMP EXT0
ORG 001BH ;T1 OVERFLOW JMP EXT1
MOV SP,#60H;SET SP
MAIN: MOV TMOD,#01100001B ;SET T/C MODE MOV TL0,#LOW(65536-50000)
MOV TH0,#HIGH(65536-50000) MOV TL1,#LOW(256-100) MOV TH1,#HIGH(256-100)
MOV IE,#10001010B ;OPEN INT SETB TR0 SETB TR1 JMP $
EXT0: MOV TL0,#LOW(65536-50000) MOV TH0,#HIGH(65536-50000) CPL P0.7 RETI
EXT1: CPL P0.0 RETI END
**************************************************************************** ;用四个按键控制8个led左移右移加闪烁,p2.4-p2.7,p0出LED START: MOV P0,#0FFH MOV A,#0FFH MOV P2,A
LOOP: MOV A,P2 CJNE A,#0FFH,LP0 JMP LOOP
LP0: ACALL DELAY1 MOV A,P2 CJNE A,#0FFH,LP1 JMP LOOP
LP1: JNB P2.4,A1 JNB P2.5,A2 JNB P2.6,A3 JNB P2.7,A4 JMP START
A1: MOV R0,#8 MOV A,#0FEH
LOOP2: MOV P0,A ACALL DELAY RL A
DJNZ R0,LOOP2 JMP START
A2: MOV R0,#8 MOV A,#0FCH LOOP3: RR A MOV P0,A
ACALL DELAY DJNZ R0,LOOP3 JMP START
A3: MOV R0,#6 MOV A,#0F0H
LOOP4: MOV P0,A ACALL DELAY CPL A MOV P0,A
DJNZ R0,LOOP4 JMP START
A4: MOV R0,#10 MOV A,#00H
LOOP5: MOV P0,A ACALL DELAY CPL A MOV P0,A
DJNZ R0,LOOP5 JMP START
DELAY1: MOV R3,#60 ;30MS D2: MOV R4,#248 DJNZ R4,$ DJNZ R3,D2 RET
DELAY: MOV R5,#10 ;200MS DLY1: MOV R6,#100 DLY2: MOV R7,#100 DJNZ R7,$ DJNZ R6,DLY2 DJNZ R5,DLY1 RET END
******************************************************************** ORG 0
JMP START
START: MOV R4,#00H L1: MOV R3,#0F7H MOV R1,#00H L2: MOV A,R3 MOV P2,A
MOV A,P2 ;READ P2 MOV R4,A SETB C
MOV R5,#04H ;SCAN P2.4-P2.7 L3: RLC A JNC KEY INC R1
DJNZ R5,L3 MOV A,R3 SETB C RRC A MOV R3,A JC L2 JMP L1
KEY: ACALL DELAY D1: MOV A,P2 XRL A,R4 JZ D1
MOV A,R1 ACALL DISP JMP L1
DISP: MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A RET
DELAY: MOV R6,#60 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 RET
TABLE: DB 0C0H, 0F9H, 0A4H, 0B0H DB 99H, 92H, 82H, 0F8H DB 80H, 90H, 88H, 83H DB 0C6H, 0A1H, 86H, 8EH END
*********************************************************************** ;function description: int0 and int1 contriled p0*8 led shift ;2008.11.16 BY XIAOZ ORG 0
JMP START ; SET JMP S ORG 03H JMP EXT0
共分享92篇相关文档