|
发表于 2024-1-18 08:56:29
|
显示全部楼层
本帖最后由 metellan 于 2024-1-18 10:41 编辑
只好说:2051不是6116,也不是27C。
你这种玩法,还是不要碰它为好。
学习使用单片机,首先要搞懂记熟它的指令集。你这种对规格书抱着深仇大恨的心态,连这第一步都走不出去。
附当年学51的时候写的一个流水灯的汇编程序,是为做高位刹车灯的,有左/右流水、两侧交替闪烁等功能,每个功能都由IO口的输入低电平触发。可以看出编程思路和代码都很原始,但要求的功能毕竟是实现了。
;高位刹车灯
;LED驱动板 AT89C2051 晶振12M
;**********************************************************************************
ORG 0000H ;
LJMP MAIN ;
ORG 030H ;
MAIN:MOV P1,#00H ;
MOV P3,#0FFH ;
JNB P3.3,ZU ;
JNB P3.4,YO ;
JNB P3.5,shan ;
AJMP MAIN ;
ZU:NOP ;
NOP ;
JNB P3.4,ANQ ;
LCALL SHAND ;
LJMP ZUOL ;
RET ;
YO:NOP ;
NOP ;
JNB P3.3,ANQ ;
LCALL SHAND ;
LJMP YOUL ;
RET ;
ANQ:MOV P1,#00FH ;
LCALL SHAND ;
LCALL SHAND ;
MOV P1,#0F0H ;
LCALL SHAND ;
LCALL SHAND ;
MOV P1,#00FH ;
LCALL SHAND ;
LCALL SHAND ;
MOV P1,#0F0H ;
LCALL SHAND ;
LCALL SHAND ;
MOV P1,#00FH ;
LCALL SHAND ;
LCALL SHAND ;
MOV P1,#0F0H ;
LCALL SHAND ;
LCALL SHAND ;
NOP ;
NOP ;
LJMP MAIN ;
SHAN JMP ASSO ;
RET ;
DELAY:MOV R5,#100 ;
O1:MOV R4,#250 ;
O2 JNZ R4,O2 ;
DJNZ R5,O1 ;
NOP ;
NOP ;
RET ;
BAK:AJMP MAIN ;
DELA:MOV R7,#100 ;
Q1:MOV R6,#250 ;
Q2 JNZ R6,Q2 ;
DJNZ R7,Q1 ;
NOP ;
NOP ;
RET ;
ZUOL:JNB P3.4,BAK ;
MOV P1,#001H ;
LCALL DELAY ;
LCALL DELAY ;
MOV P1,#003H ;
LCALL DELAY ;
LCALL DELAY ;
MOV P1,#00EH ;
ACALL DELAY ;
ACALL DELAY ;
MOV P1,#01CH ;
ACALL DELAY ;
ACALL DELAY ;
MOV P1,#038H ;
ACALL DELAY ;
JNB P3.4,BAK ;
ACALL DELAY ;
MOV P1,#070H ;
ACALL DELAY ;
ACALL DELAY ;
MOV P1,#0E0H ;
ACALL DELAY ;
ACALL DELAY ;
MOV P1,#0C0H ;
ACALL DELAY ;
ACALL DELAY ;
MOV P1,#080H ;
ACALL DELAY ;
ACALL DELAY ;
MOV P1,#00H ;
ACALL DELAY ;
LJMP MAIN ;
BACK:AJMP MAIN ;
YOUL:JNB P3.3,BACK ;
MOV P1,#080H ;
LCALL DELA ;
LCALL DELA ;
MOV P1,#0C0H ;
LCALL DELA ;
LCALL DELA ;
MOV P1,#0E0H ;
ACALL DELA ;
ACALL DELA ;
MOV P1,#070H ;
ACALL DELA ;
ACALL DELA ;
MOV P1,#038H ;
ACALL DELA ;
JNB P3.3,BACK ;
ACALL DELA ;
MOV P1,#01CH ;
ACALL DELA ;
ACALL DELA ;
MOV P1,#00EH ;
ACALL DELA ;
ACALL DELA ;
MOV P1,#003H ;
ACALL DELA ;
ACALL DELA ;
MOV P1,#001H ;
ACALL DELA ;
ACALL DELA ;
MOV P1,#00H ;
ACALL DELA ;
LJMP MAIN ;
ASSO:MOV P1,#0FFH ;
ACALL SHAND ;
ACALL SHAND ;
MOV P1,#00H ;
ACALL SHAND ;
ACALL SHAND ;
LJMP MAIN ;
SHAND:MOV R1,#100 ;
S1:MOV R0,#250 ;
S2 JNZ R0,S2 ;
DJNZ R1,S1 ;
NOP ;
NOP ;
RET ;
END |
|