找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2081|回复: 3
打印 上一主题 下一主题
收起左侧

基于52单片机的源代码改成51单片机的,知识有限,请各位大神帮忙看一看怎么改啊谢谢啦

[复制链接]
跳转到指定楼层
楼主
ID:469810 发表于 2019-1-19 03:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
该程序用的是汇编语音,由于知识有限实在看不懂,帮忙看一看这个基于52单片机的源代码怎么改成基于51单片机的啊。这个代码是用于汽车转向灯的一个控制系统的。
单片机汇编源码:
  1.                 ORG   0000H   
  2.                 AJMP START1  
  3.                 ORG  0030H
  4.                 SAME  EQU  4EH
  5. START1:MOV P1,#00H  ;无输入时输出
  6. START: MOV  A,P2   ;读P2口数据
  7.        ANL  A,#1FH  ;取用P2口的低5位数据
  8.             CJNE  A,#1FH,SHIY ;对P2口低5位数据进行判断   
  9.            AJMP  START1
  10. SHIY:         MOV SAME,A  
  11.                 LCALL  YS       ;延时
  12.                 MOV  A,P2         ;读P2口的数据
  13.                 ANL  A,#1FH        ;取用P2口的低5位数据
  14.                 CJNE A,#1FH,SHIY1    ;对P2口低5位数据进行判断  
  15.                 AJMP START1        ;开关没有动作时无输出
  16. SHIY1:  CJNE A,SAME,START1   
  17.                 CJNE A,#17H,NEXT1  ;P2.3=0时进入左转弯分支  
  18.                 AJMP LEFT
  19. NEXT1: CJNE A,#0FH,NEXT2  ;P2.4=0时进入右转弯分支  
  20.                 AJMP RIGHT
  21. NEXT2: CJNE A,#1DH,NEXT3  ; P2.1=0时进入紧急分支  
  22.                 AJMP EARGE
  23. NEXT3: CJNE A,#1EH,NEXT4   ;P2.0=0时进入刹车分支  
  24.                  AJMP BRAKE
  25. NEXT4: CJNE A,#16H,NEXT5   ;P2.0=P2.3=0时进入左转弯刹车分支
  26.            AJMP LEBR
  27. NEXT5: CJNE A,#0EH,NEXT6  ;p2.0=P2.4=0时进入右转弯刹车分支
  28.            AJMP  RIBR
  29. NEXT6: CJNE A,#1CH,NEXT7   ;P2.0=P2.1=0时进入紧急刹车分支
  30.        AJMP  BRER
  31. NEXT7: CJNE A,#14H,NEXT8   ;P2.0=P2.1=P2.3=0时进入左转弯紧急刹车分支
  32.        AJMP  LBE
  33. NEXT8: CJNE A,#0CH,NEXT9  ; P2.0=P2.1=P2.4=0时进入右转弯紧急刹车分支
  34.        AJMP  RBE
  35. NEXT9: CJNE A,#1BH,NEXT10 ;P2.2=0时进入停靠分支
  36.        AJMP  STOP
  37. NEXT10:        AJMP ERROR
  38. LEFT: MOV P1,#2AH   ;左转弯分支
  39.           LCALL Y1s  
  40.           MOV P1,#00H
  41.           LCALL Y1s
  42.           AJMP  START
  43. RIGHT:MOV P1,#54H  ;右转弯分支
  44.           LCALL Y1s
  45.           MOV P1,#00H
  46.           LCALL Y1s
  47.           AJMP START
  48. EARGE: MOV  P1,#7EH ;紧急分支
  49.            LCALL Y1s
  50.            MOV P1,#00H
  51.            LCALL Y1s
  52.            AJMP START
  53. BRAKE: MOV P1,#60H         ;刹车分支
  54.            AJMP START
  55.            AJMP  LEBR
  56. LEBR: MOV  P1,#6AH       ;左转弯刹车分支
  57.           LCALL  Y1s  
  58.           MOV P1,#20H   
  59.           LCALL  Y1s  
  60.           AJMP START
  61. RIBR: MOV P1,#74H        ;右转弯刹车分支
  62.           LCALL  Y1s   
  63.           MOV P1,#40H  
  64.           LCALL  Y1s  
  65.           AJMP START
  66. BRER: MOV P1,#7EH       ;紧急刹车分支
  67.           LCALL  Y1s   
  68.       MOV P1,#60H  
  69.           LCALL  Y1s  
  70.           AJMP START
  71. LBE: MOV P1,#7EH    ;左转弯紧急刹车分支
  72.          LCALL  Y1s   
  73.          MOV P1,#20H  
  74.          LCALL  Y1s  
  75.          AJMP START
  76. RBE: MOV P1,#76H    ;右转弯紧急刹车分支
  77.          LCALL  Y1s   
  78.          MOV P1,#40H   
  79.          LCALL  Y1s  
  80.          AJMP  START
  81. STOP: MOV P1,#66H  ;停靠分支
  82.          LCALL  Y100ms
  83.          MOV P1,#00H   
  84.          LCALL  Y100ms  
  85.          AJMP  START
  86. ERROR: MOV P1,#01H
  87.         AJMP  START
  88. YS:  MOV R7,#20H   ;延时
  89. YS0: MOV R6,#0FFH
  90. YS1: DJNZ R6,YS1   
  91.          DJNZ R7,YS0  
  92.          RET
  93. Y1s:  MOV R7,#04H  ;延时
  94. Y1s1: MOV  R6,#0FFH
  95. Y1s2: MOV R5,#0FFH   
  96.           DJNZ R5,[        DISCUZ_CODE_0        ]nbsp;  
  97.           DJNZ R6,Y1s2   
  98.           DJNZ R7,Y1s1  
  99.           RET
  100. Y100ms: MOV R7,#66H   ;延时
  101. Y100ms1:MOV  R6,#0FFH
  102. Y100ms2:DJNZ  R6,Y100ms2  
  103.                 DJNZ  R7,Y100ms1
  104.                 RET
  105.         

复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:7485 发表于 2019-1-19 14:14 | 只看该作者
这个如果没有用到定时器/计数器 2,也没用到128字节以上的RAM,可以不用改,直接用。
回复

使用道具 举报

板凳
ID:94031 发表于 2019-1-19 14:16 | 只看该作者
51单片机跟52单片机有什么区别,52多个定时器2,RAM 51是128,52是256。程序存储器,51是4K,52是8k。
你的程序没用定时器2,不用改直接用。
回复

使用道具 举报

地板
ID:401564 发表于 2019-1-19 14:23 | 只看该作者
把第四行代码移到第一行
代码没有使用片上的外设,端口一样就可以直接下载,基本上很多STC的单片机都可以直接下载使用,如果延时不同就改一下延时子程序就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表