久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 光電編碼盤的直流伺服電機PID閉環調速系統proteus仿真 [打印本頁]

作者: 51黑ff    時間: 2016-9-4 22:13
標題: 光電編碼盤的直流伺服電機PID閉環調速系統proteus仿真
這個設計的仿真原理圖:


基于單片機的光電編碼盤的直流伺服電機PID閉環調速系統proteus仿真的所有資料下載:
基于光電編碼盤的直流伺服電機PID閉環調速系統.zip (122.5 KB, 下載次數: 119)


  1. ;HC11 PWM Motor Control Example
  2. ;Demonstrates ADC and Timer Output Capture functions

  3. PORTA             equ      $1000
  4. PORTC             equ      $1003
  5. PORTB             equ      $1004
  6. DDRC              equ      $1007
  7. TOC1              equ      $1016
  8. TOC2              equ      $1018
  9. TCTL1             equ      $1020
  10. TCTL2             equ      $1021
  11. TMSK1             equ      $1022
  12. TFLG1             equ      $1023
  13. TMSK2             equ      $1024
  14. PACTL             equ      $1026
  15. ADCTL             equ      $1030
  16. ADR1              equ      $1031
  17. ADR2              equ      $1032

  18.                 org $F000

  19. start:          lds  #$FF

  20.                 ldaa #$FF                        ;Port C is output
  21.                 staa DDRC

  22.                 ldaa #$80                        ;Enable OC1 interrupts.
  23.                 staa TMSK1                        ;

  24.                 ldaa #$2                        ;Set the prescaler (divide by 16)
  25.                 staa TMSK2

  26.                 ldaa #$80                        ;Enable PA7 as output
  27.                 staa PACTL
  28.        
  29.                           
  30.                 ldaa #$10                        ;Start first ADC conversion - multi mode enable
  31.                 staa ADCTL
  32.                           
  33.                 ldd #$0100                        ;Load the capture register
  34.                 std TOC1
  35.                        
  36.                 cli                                ;Enable interupts

  37. loop                wai
  38.                 bra loop



  39. ;OC1 interrupt service
  40. oc1f                ldaa #$10                         ;Start another ADC conversion
  41.                 staa ADCTL

  42.                 ldaa ADR1                        ;Read the pot position from ADC channel 1
  43.                 staa PORTB                        ;Display it
  44.                                                                                                    
  45.                 suba #127                        ;0x7F is zero reference.
  46.                
  47.                 bne oc1f_ne                            ;Jump if values not same

  48. ;Set Both outputs low. Motor is stationary
  49.                 clrb                                   
  50.                 stab PORTA                        ;Both OC1 and OC2 outputs low
  51.                 stab TCTL1                        ;TOC2 mode is disabled
  52.                 bra done
  53.                
  54. ;Non-zero drive - decide if +ve or -ve:
  55.                
  56. oc1f_ne                bcs oc1f_cs

  57. ;Positive result - motor spins clockwise:

  58.                 ldab #$40                        ;Port A drives this value:
  59.                 stab PORTA
  60.                 clrb                                ;Release TOC2 latch - Port A acquires value, above.
  61.                 stab TCTL1
  62.                 ldab #$40                         ;TOC 2 output toggles on OC2 event; motor drive stops.
  63.                 stab TCTL1
  64.                 bra done               

  65. ;Negative result - motor spins anti-clockwise:

  66. oc1f_cs                ldab #$80                        ;Port A drives this value:
  67.                 stab PORTA
  68.                 clrb                            ;Release TOC2 latch - Port A acquires value, above.
  69.                 stab TCTL1
  70.                 ldab #$40                         ;TOC 2 output toggles on OC2 event; motor drive stops.
  71.                 stab TCTL1
  72.                 nega                                ;Invert result -> 0xFF -> 0x01 etc.

  73. ;Now set up TOC2 to trigger at a time forward of TOC1. This means that the motor will
  74. ;be powered for the number of ticks in ACCA * 256.                                                                                
  75.                                                                                                                                                                                                                
  76. done:                tab                             ;TOC 2 is set to trigger after this no of cycles.
  77.                 clra
  78.                 rolb
  79.                 rola
  80.                 rolb
  81.                 rola               
  82.                 rolb
  83.                 rola
  84.                 rolb
  85.                 rola               
  86.                 rolb
  87.                 rola               
  88.                 addd TOC1  
  89.                 std TOC2
  90.                
  91.                 ldd #$1000
  92.                 addd TOC1
  93.                 std TOC1
  94.                
  95.                 ldaa #$80                        ;Clear the TOC 1 interrupt
  96.                 staa TFLG1
  97.                 rti


  98. ;Interrupt Vectors

  99.                 org $FFE8
  100.                 dw oc1f               

  101.                 org $FFFE
  102.                 dw start
復制代碼




作者: zxy1    時間: 2017-5-16 22:00
看看感覺還行




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 三级av在线 | 亚洲一区二区免费 | 夜夜嗨av一区二区三区网页 | 91爱爱爱 | 日韩中文在线观看 | 免费国产一区 | 完全免费av | 日本午夜视频 | 一级黄色录像片 | www.国产| 国产精品福利视频 | 日韩视频免费大全中文字幕 | 日本在线www | 国产三区四区 | 天天色播| 人人艹人人 | 国产呦小j女精品视频 | 免费黄色av | 97超碰资源站 | 日本国产在线观看 | 午夜www | 黄色一级片免费看 | 国产一区在线播放 | 亚洲国产免费 | 婷婷久久五月 | 午夜精品视频 | 97国产精品人人爽人人做 | 狠狠做| 亚洲男人天堂 | 在线免费观看黄色片 | 色噜噜狠狠一区二区三区果冻 | 色噜噜狠狠一区二区三区果冻 | 亚洲免费成人 | 亚洲狠狠| 在线看av网址 | 成人a毛片 | 国产激情综合 | 日韩精品久久久久久免费 | 日本a视频 | 久久精品视频网站 | 免费一区 |