標(biāo)題: 單片機(jī)+Proteus仿真電機(jī)控制正反轉(zhuǎn) 匯編語(yǔ)言程序 [打印本頁(yè)]

作者: 白天57    時(shí)間: 2022-3-21 11:17
標(biāo)題: 單片機(jī)+Proteus仿真電機(jī)控制正反轉(zhuǎn) 匯編語(yǔ)言程序
單片機(jī)設(shè)計(jì),在Proteus仿真下,按鍵實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)



附仿真工程和單片機(jī)匯編語(yǔ)言代碼
  1. FOR_LED     BIT P2.1         ;正轉(zhuǎn)指示燈
  2. REV_LED     BIT P2.2         ;反轉(zhuǎn)指示燈
  3. ORG         0000H            ;主程序起始地址設(shè)置
  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       ;電平觸發(fā)
  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          ;正轉(zhuǎn)指示燈亮
  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       ;反轉(zhuǎn)控制
  43.       SETB  FOR_LED
  44.           CLR   REV_LED          ;反轉(zhuǎn)指示燈亮
  45.                   
  46. LP3:  MOV   A,#00H           ;清除累加器
  47.       MOVC  A,@A+DPTR        ;查表
  48.           CJNE  A,1BH,LP4        ;取出碼不是結(jié)束碼,則進(jìn)行下一步
  49.           JMP   EXIT2            ;是結(jié)束碼,重新進(jìn)行操作
  50.          
  51. LP4:  MOV   P0,A             ;A中的值送P0口
  52.       LCALL DELAY            ;延時(shí)
  53.           INC   DPTR             ;數(shù)據(jù)指針加一,指向下一個(gè)碼
  54.           JMP   LP3              ;返回,取碼
  55.          
  56. EXIT2:NOP
  57.       RET

  58. INTR0:MOV   R0,#01
  59.       RETI                   ;中斷結(jié)束,返回主程序
  60.          
  61. INTR1:MOV   R0,#02
  62.       RETI                   ;中斷返回
  63.          
  64. DELAY:MOV   R7,#20           ;延時(shí)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相激勵(lì)磁反轉(zhuǎn)驅(qū)動(dòng)代碼
  72.           DB    0CH,04H,06H,02H
  73.           DB    1BH
  74.           END
  75.          
  76.                  
復(fù)制代碼

Keil代碼與Proteus仿真下載: 電機(jī)控制.rar (69 KB, 下載次數(shù): 15)





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1