找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机+Proteus仿真电机控制正反转 汇编语言程序

[复制链接]
跳转到指定楼层
楼主
单片机设计,在Proteus仿真下,按键实现电机正反转
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)



附仿真工程和单片机汇编语言代码
  1. FOR_LED     BIT P2.1         ;正转指示灯
  2. REV_LED     BIT P2.2         ;反转指示灯
  3. ORG         0000H            ;主程序起始地址设置
  4. kAJMP        MAIN             ;跳到主程序入口
  5. ORG         0003H            ;中断地址入口(k1按键)
  6. AJMP        INTR0            ;中断子程序
  7. ORG         0013H            ;中断地址入口(k2按键)
  8. AJMP        INTR1            ;中断子程序入口

  9. MAIN: MOV   R0,#0FFH         

  10. START:MOV   IE,#85H          ;中断
  11.       MOV   TCON ,#00H       ;电平触发
  12.           MOV   SP,#60H

  13. CMP1: CJNE  R0,#01,CMP2
  14.       LCALL FOR
  15.           SJMP  CMP3
  16.          
  17. CMP2: CJNE  R0,#02,CMP1
  18.       LCALL REV
  19.          
  20. CMP3: NOP
  21.       SJMP  START

  22. FOR:  CLR   FOR_LED          ;正转指示灯亮
  23.       SETB  REV_LED
  24.           MOV   P0,#02H
  25.           LCALL DELAY
  26.           MOV   P0,#06H
  27.           LCALL DELAY
  28.           MOV   P0,#04H
  29.           LCALL DELAY
  30.           MOV   P0,#0CH
  31.           LCALL DELAY
  32.           MOV   P0,#08H
  33.           LCALL DELAY
  34.           MOV   P0,#09H
  35.           LCALL DELAY
  36.           MOV   P0,#01H
  37.           LCALL DELAY
  38.           MOV   P0,#03H
  39.           LCALL DELAY
  40.           RET
  41.          
  42. REV:  MOV   DPTR,#TAB2       ;反转控制
  43.       SETB  FOR_LED
  44.           CLR   REV_LED          ;反转指示灯亮
  45.                   
  46. LP3:  MOV   A,#00H           ;清除累加器
  47.       MOVC  A,@A+DPTR        ;查表
  48.           CJNE  A,1BH,LP4        ;取出码不是结束码,则进行下一步
  49.           JMP   EXIT2            ;是结束码,重新进行操作
  50.          
  51. LP4:  MOV   P0,A             ;A中的值送P0口
  52.       LCALL DELAY            ;延时
  53.           INC   DPTR             ;数据指针加一,指向下一个码
  54.           JMP   LP3              ;返回,取码
  55.          
  56. EXIT2:NOP
  57.       RET

  58. INTR0:MOV   R0,#01
  59.       RETI                   ;中断结束,返回主程序
  60.          
  61. INTR1:MOV   R0,#02
  62.       RETI                   ;中断返回
  63.          
  64. DELAY:MOV   R7,#20           ;延时0.2s子程序
  65. DELA1:MOV   R6,#20
  66. DELA2:MOV   R5,#248
  67.       DJNZ  R5,$
  68.           DJNZ  R6,DELA2
  69.           DJNZ  R7,DELA1
  70.           RET

  71. TAB2: DB    03H,01H,09H,08H  ;1~2相激励磁反转驱动代码
  72.           DB    0CH,04H,06H,02H
  73.           DB    1BH
  74.           END
  75.          
  76.                  
复制代码

Keil代码与Proteus仿真下载: 电机控制.rar (69 KB, 下载次数: 15)

评分

参与人数 1黑币 +30 收起 理由
admin + 30 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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