标题:
基于52单片机的源代码改成51单片机的,知识有限,请各位大神帮忙看一看怎么改啊谢谢啦
[打印本页]
作者:
zhangzhik
时间:
2019-1-19 03:24
标题:
基于52单片机的源代码改成51单片机的,知识有限,请各位大神帮忙看一看怎么改啊谢谢啦
该程序用的是汇编语音,由于知识有限实在看不懂,帮忙看一看这个基于52单片机的源代码怎么改成基于51单片机的啊。这个代码是用于汽车转向灯的一个控制系统的。
单片机汇编源码:
ORG 0000H
AJMP START1
ORG 0030H
SAME EQU 4EH
START1:MOV P1,#00H ;无输入时输出
START: MOV A,P2 ;读P2口数据
ANL A,#1FH ;取用P2口的低5位数据
CJNE A,#1FH,SHIY ;对P2口低5位数据进行判断
AJMP START1
SHIY: MOV SAME,A
LCALL YS ;延时
MOV A,P2 ;读P2口的数据
ANL A,#1FH ;取用P2口的低5位数据
CJNE A,#1FH,SHIY1 ;对P2口低5位数据进行判断
AJMP START1 ;开关没有动作时无输出
SHIY1: CJNE A,SAME,START1
CJNE A,#17H,NEXT1 ;P2.3=0时进入左转弯分支
AJMP LEFT
NEXT1: CJNE A,#0FH,NEXT2 ;P2.4=0时进入右转弯分支
AJMP RIGHT
NEXT2: CJNE A,#1DH,NEXT3 ; P2.1=0时进入紧急分支
AJMP EARGE
NEXT3: CJNE A,#1EH,NEXT4 ;P2.0=0时进入刹车分支
AJMP BRAKE
NEXT4: CJNE A,#16H,NEXT5 ;P2.0=P2.3=0时进入左转弯刹车分支
AJMP LEBR
NEXT5: CJNE A,#0EH,NEXT6 ;p2.0=P2.4=0时进入右转弯刹车分支
AJMP RIBR
NEXT6: CJNE A,#1CH,NEXT7 ;P2.0=P2.1=0时进入紧急刹车分支
AJMP BRER
NEXT7: CJNE A,#14H,NEXT8 ;P2.0=P2.1=P2.3=0时进入左转弯紧急刹车分支
AJMP LBE
NEXT8: CJNE A,#0CH,NEXT9 ; P2.0=P2.1=P2.4=0时进入右转弯紧急刹车分支
AJMP RBE
NEXT9: CJNE A,#1BH,NEXT10 ;P2.2=0时进入停靠分支
AJMP STOP
NEXT10: AJMP ERROR
LEFT: MOV P1,#2AH ;左转弯分支
LCALL Y1s
MOV P1,#00H
LCALL Y1s
AJMP START
RIGHT:MOV P1,#54H ;右转弯分支
LCALL Y1s
MOV P1,#00H
LCALL Y1s
AJMP START
EARGE: MOV P1,#7EH ;紧急分支
LCALL Y1s
MOV P1,#00H
LCALL Y1s
AJMP START
BRAKE: MOV P1,#60H ;刹车分支
AJMP START
AJMP LEBR
LEBR: MOV P1,#6AH ;左转弯刹车分支
LCALL Y1s
MOV P1,#20H
LCALL Y1s
AJMP START
RIBR: MOV P1,#74H ;右转弯刹车分支
LCALL Y1s
MOV P1,#40H
LCALL Y1s
AJMP START
BRER: MOV P1,#7EH ;紧急刹车分支
LCALL Y1s
MOV P1,#60H
LCALL Y1s
AJMP START
LBE: MOV P1,#7EH ;左转弯紧急刹车分支
LCALL Y1s
MOV P1,#20H
LCALL Y1s
AJMP START
RBE: MOV P1,#76H ;右转弯紧急刹车分支
LCALL Y1s
MOV P1,#40H
LCALL Y1s
AJMP START
STOP: MOV P1,#66H ;停靠分支
LCALL Y100ms
MOV P1,#00H
LCALL Y100ms
AJMP START
ERROR: MOV P1,#01H
AJMP START
YS: MOV R7,#20H ;延时
YS0: MOV R6,#0FFH
YS1: DJNZ R6,YS1
DJNZ R7,YS0
RET
Y1s: MOV R7,#04H ;延时
Y1s1: MOV R6,#0FFH
Y1s2: MOV R5,#0FFH
DJNZ R5,[ DISCUZ_CODE_0 ]nbsp;
DJNZ R6,Y1s2
DJNZ R7,Y1s1
RET
Y100ms: MOV R7,#66H ;延时
Y100ms1:MOV R6,#0FFH
Y100ms2:DJNZ R6,Y100ms2
DJNZ R7,Y100ms1
RET
复制代码
作者:
ahshmj
时间:
2019-1-19 14:14
这个如果没有用到定时器/计数器 2,也没用到128字节以上的RAM,可以不用改,直接用。
作者:
xuyaqi
时间:
2019-1-19 14:16
51单片机跟52单片机有什么区别,52多个定时器2,RAM 51是128,52是256。程序存储器,51是4K,52是8k。
你的程序没用定时器2,不用改直接用。
作者:
Y_G_G
时间:
2019-1-19 14:23
把第四行代码移到第一行
代码没有使用片上的外设,端口一样就可以直接下载,基本上很多STC的单片机都可以直接下载使用,如果延时不同就改一下延时子程序就可以了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1