欧美午夜欧美,台湾成人av,久久av一区,最近看过的日韩成人

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

PID 控制的51匯編程序

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2011/2/18

;//**************************************************************************************************************
;//功    能: 電機控制的PID(積分分離)  PID(void)    執行時間少于70uS/932-12MHz
;//設 計 者: 牟聯樹
;//日    期: 2003.12.28
;//版 本 號: 1.0
;//申    明:
;//**************************************************************************************************************
$NOMOD51
    OCRAH  equ 0EFh
    OCRAL  equ 0EEh
    OCRBH  equ 0FBh
    OCRBL  equ 0FAh
    OCRCH  equ 0FDh
    OCRCL  equ 0FCh
    OCRDH  equ 0FFh
    OCRDL  equ 0FEh
    TCR21  equ 0f9h
$include (REG52.INC)
       NAME       PIDWork
    ?PR?PID?PIDWork     SEGMENT    CODE
    ?PR?PID_MUL?PIDWork SEGMENT    CODE
    ?PR?PID_out?PIDWork SEGMENT    CODE
    ?DT?PID_k?PIDWork   SEGMENT    DATA

    PUBLIC   PID_Kp,PID_Ki,PID_Kd,PID_Umax,PID_Emax
    PUBLIC   PID_U,PID_En1,PID_En2,PID_Temp,PID_TempL
   RSEG  ?DT?PID_k?PIDWork
     PID_Kp:  DS   2                    ;比例系數
     PID_KpL  data PID_Kp+1
     PID_Ki:  DS   2                    ;積分系數
     PID_KiL  data PID_Ki+1
     PID_Kd:  DS   2                    ;微分系數
     PID_KdL  data PID_Kd+1           
   PID_Umax:  DS   2                    ;期望最大值設定
   PID_UmaxL  data PID_Umax+1         
   PID_Emax:  DS   2                    ;積分分離的誤差最大值設定
   PID_EmaxL  data PID_Emax+1
      PID_U:  DS   2                    ;當前的采樣值
      PID_UL  data PID_U+1
    PID_En1:  DS   2                    ;上一次計算的誤差值
    PID_En1L  data PID_En1+1
    PID_En2:  DS   2                    ;上一次計算的誤差的誤差值
    PID_En2L  data PID_En2+1
   PID_Temp:  DS   4                    ;計算過程中的暫存
   PID_TempL  data PID_Temp+1
   PID_Temp1  data PID_Temp+2
  PID_Temp1L  data PID_Temp+3

   PUBLIC  _PID
   RSEG  ?PR?PID?PIDWork
   _PID: push  acc
         push  psw
         clr   c                        ;有符號減法
         mov   a,PID_UmaxL              ;計算當前的誤差En(PID_U里暫存運算結果)
         subb  a,PID_UL
         mov   PID_UL,a
         mov   a,PID_Umax
         subb  a,PID_U
         mov   PID_U,a
         jnb   acc.7,PID_k
         mov   a,PID_UL
  cpl   a
  add   a,#1
  mov   r7,a
  mov   a,PID_U
  cpl   a
  addc  a,#0
  xch   a,r7
         sjmp  PID_g
  PID_k: mov   r7,PID_U
         mov   a,PID_UL
  PID_g: clr   c
  subb  a,PID_EmaxL
  mov   a,r7
         subb  a,PID_Emax
         jnb   acc.7,PID_a              ;如果En>Emax則轉
  mov   r7,PID_KiL               ;Ki*En
         mov   r6,PID_Ki
  mov   r5,PID_UL
         mov   r4,PID_U
  acall PID_MUL                  ;二字節偽有符號乘法(r4-r7里暫存結果)
  mov   a,PID_Temp1L             ;PID加法子程序(將結果加入輸出)
  add   a,r7
  mov   PID_Temp1L,a
         mov   a,PID_Temp1
         addc  a,r6
  mov   PID_Temp1,a
         mov   a,PID_TempL
         addc  a,r5
  mov   PID_TempL,a
         mov   a,PID_Temp
         addc  a,r4
  mov   PID_Temp,a
  PID_a: mov   a,PID_En1L               ;更新PID_En1
         xch   a,PID_UL
  mov   PID_En1L,a
  mov   a,PID_En1
  xch   a,PID_U
  mov   PID_En1,a
  clr   c                        ;有符號減法
         mov   a,PID_En1L               ;計算當前的誤差差(En-En1)
         subb  a,PID_UL
  mov   PID_UL,a
  mov   a,PID_En1
  subb  a,PID_U
  mov   PID_U,a
         mov   r7,PID_KpL               ;+Kp*(En-En1)
  mov   r6,PID_Kp
  mov   r5,PID_UL
         mov   r4,PID_U
  acall PID_MUL
  mov   a,PID_Temp1L             ;PID加法子程序(將結果加入輸出)
  add   a,r7
  mov   PID_Temp1L,a
         mov   a,PID_Temp1
         addc  a,r6
  mov   PID_Temp1,a
         mov   a,PID_TempL
         addc  a,r5
  mov   PID_TempL,a
         mov   a,PID_Temp
         addc  a,r4
  mov   PID_Temp,a
  clr   c                        ;有符號減法
         mov   a,PID_UL                 ;計算誤差差的差(En-En1-En2),同時更新En2
  subb  a,PID_En2L
  mov   PID_En2L,a
         mov   a,PID_U
  subb  a,PID_En2
  mov   PID_En2,a
         mov   r7,PID_KdL               ;+Kd*(En-En1-En2)
         mov   r6,PID_Kd
  mov   r5,PID_En2L
         mov   r4,PID_En2
         acall PID_MUL
  mov   a,PID_Temp1L             ;PID加法子程序(將結果加入輸出)
  add   a,r7
  mov   PID_Temp1L,a
         mov   a,PID_Temp1
         addc  a,r6
  mov   PID_Temp1,a
         mov   a,PID_TempL
         addc  a,r5
  mov   PID_TempL,a
         mov   a,PID_Temp
         addc  a,r4
  mov   PID_Temp,a
  pop   psw
  pop   acc
  ret
  ret
;//**************************************************************************************************************
;//功    能: 電機控制電流環的PI  PI_I(void)    執行時間少于50uS/932-12MHz
;//設 計 者: 牟聯樹
;//日    期: 2003.12.28
;//版 本 號: 1.0
;//申    明:
;//**************************************************************************************************************
       PUBLIC _PID_out
       RSEG ?PR?PID_out?PIDWork
_PID_out: push acc
          push psw
          clr  c
          mov  a,r6
          rrc  a
          mov  r6,a
          mov  a,r7
          rrc  a
          mov  r7,a
out_a: mov  OCRAH,r6               ;PWM更新
          mov  OCRAL,r7
          mov  a,r7
          add  a,#25
          mov  OCRBL,a
          mov  a,r6
          addc a,#0
          mov  OCRBH,a
          orl  TCR21,#080h            ;PWM更新
   out_b: pop  psw
   pop  acc
          ret
;//**************************************************************************************************************
;//功    能: 整形乘法  long int PID_MUL(int a,int b)    用時13.5uS/932-12MHz
;//設 計 者: 牟聯樹
;//日    期: 2003.12.28
;//版 本 號: 1.0
;//申    明:
;//**************************************************************************************************************
  PUBLIC _PID_MUL
  RSEG ?PR?PID_MUL?PIDWork
_PID_MUL:
PID_MUL: push acc
         push psw
         clr  f0                        ;符號判斷
         mov  a,r4
         jb   acc.7,PID_Ma
         sjmp PID_Md
PID_Ma: setb f0
         mov  a,r5
         cpl  a
         add  a,#1
         mov  r5,a
         mov  a,r4
         cpl  a
         addc a,#0
         mov  r4,a       
PID_Md:; mov  a,r6
        ; mov  c,acc.7
         ;jnb  f0,PID_Mf
        ; cpl  c
PID_Mf:; mov  f0,c
        ; jb   acc.7,PID_Mb
        ; sjmp PID_Mc     
PID_Mb:; clr  c
        ; mov  a,r7
        ; subb a,#1
        ; cpl  a
        ; mov  r7,a
        ; mov  a,r6
        ; subb a,#0
        ; cpl  a
        ; mov  r6,a

PID_Mc: mov  a,r5
  mov  b,r7
  mul  ab
  xch  a,r7
  mov  r3,b
  mov  b,r4
  mul  ab
  add  a,r3
  mov  r3,a
  mov  a,b
  addc a,#0
  xch  a,r5
  mov  b,r6
  mul  ab
  addc a,r3
  xch  a,r6
  xch  a,r5
  addc a,b
  xch  a,r5
  mov  b,r4
  mul  ab
  addc a,r5
  mov  r5,a
  mov  a,b
  addc a,#0
  mov  r4,a
  jb   f0,PID_Me
  pop  psw
  pop  acc 
  ret
PID_Me: mov  a,r7
         cpl  a
         add  a,#1
         mov  r7,a
         mov  a,r6
         cpl  a
         addc a,#0
         mov  r6,a
         mov  a,r5
         cpl  a
         addc a,#0
         mov  r5,a
         mov  a,r4
         cpl  a
         addc a,#0
         mov  r4,a
         pop  psw
         pop  acc
         ret
         END  

Tags:51,單片機程序,pid,算法  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
欧美午夜欧美,台湾成人av,久久av一区,最近看过的日韩成人
性做久久久久久久久| 久久机这里只有精品| 麻豆精品视频在线观看视频| 成人免费高清在线| 日韩欧美一卡二卡| 一区二区三区精品在线| 国产一区二区三区四区五区美女| 91福利区一区二区三区| 国产精品视频一二| 韩国v欧美v亚洲v日本v| 欧美精品三级在线观看| 亚洲免费高清视频在线| av在线不卡免费看| 久久久久久久电影| 精品一区二区三区影院在线午夜| 欧美在线观看一二区| 日韩码欧中文字| 国产99久久久久| 久久久精品免费网站| 免费久久精品视频| 欧美一二三四区在线| 亚洲超碰精品一区二区| 91久久精品国产91性色tv| 成人欧美一区二区三区黑人麻豆 | 久久国产福利国产秒拍| 欧美性极品少妇| 一区二区三区免费| 色综合咪咪久久| 亚洲精品国产高清久久伦理二区| 99视频在线精品| 亚洲精品国产视频| 色综合久久九月婷婷色综合| 亚洲黄色性网站| 欧美日韩一区久久| 日韩国产欧美视频| 欧美一级免费大片| 久久精品国产澳门| 国产女同互慰高潮91漫画| 国产黄色精品网站| 国产精品传媒入口麻豆| 91小视频在线| 一区二区三区.www| 在线播放中文一区| 美国欧美日韩国产在线播放| 日韩视频一区在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲一区二三区| 666欧美在线视频| 美日韩一级片在线观看| 久久久久久久综合色一本| a级精品国产片在线观看| 亚洲免费电影在线| 4438x成人网最大色成网站| 国内国产精品久久| 自拍av一区二区三区| 欧美区在线观看| 国产一区二区三区免费看| 国产精品不卡一区| 91精品啪在线观看国产60岁| 国产成人精品午夜视频免费| 亚洲精品写真福利| 精品久久久久久久人人人人传媒| 国产成人精品免费在线| 午夜亚洲国产au精品一区二区| 精品日韩在线观看| 色综合久久久久久久| 久久99精品久久久久婷婷| 亚洲三级视频在线观看| 欧美tk—视频vk| 色94色欧美sute亚洲13| 国产尤物一区二区在线| 亚洲国产精品人人做人人爽| 久久精品欧美一区二区三区不卡| 日本丶国产丶欧美色综合| 激情综合色丁香一区二区| 亚洲欧美二区三区| 国产无人区一区二区三区| 欧美日韩一区中文字幕| 92国产精品观看| 精品一区二区精品| 三级久久三级久久久| 成人免费小视频| 精品久久久久久久久久久久久久久| 色丁香久综合在线久综合在线观看| 久久99热国产| 视频一区国产视频| 一区二区三区在线观看动漫| 中文字幕成人av| 26uuu久久综合| 欧美一级高清大全免费观看| 欧美中文字幕一二三区视频| 99热精品国产| 成人免费看的视频| 国产大片一区二区| 精品一区二区国语对白| 免费成人在线观看| 日日夜夜精品视频天天综合网| 中文字幕一区二区三中文字幕| 国产欧美一区二区精品秋霞影院| 91精品国产综合久久福利| 欧美日韩综合在线| 91高清视频在线| 色天使色偷偷av一区二区| 91浏览器在线视频| 色婷婷一区二区三区四区| 99免费精品视频| 99精品欧美一区| av毛片久久久久**hd| 99免费精品视频| 91网站最新网址| 色噜噜狠狠色综合中国| zzijzzij亚洲日本少妇熟睡| 成人免费福利片| 91在线你懂得| 欧美中文字幕久久| 欧美日韩国产在线观看| 欧美一卡二卡三卡| 精品国产一区二区三区不卡 | 欧美一区中文字幕| 欧美一区二区黄色| 日韩欧美一级二级三级久久久| 日韩欧美一区二区三区在线| 欧美一区二区三区视频免费| 欧美电视剧在线观看完整版| 欧美一区二区高清| 国产欧美一区二区三区鸳鸯浴| 国产精品久久看| 亚洲一二三四在线观看| 青青草原综合久久大伊人精品 | 91精品国产91久久综合桃花 | 欧美一区二区在线视频| 精品久久久网站| 中文字幕不卡的av| 亚洲国产一区二区在线播放| 久久疯狂做爰流白浆xx| 国产精品一区在线观看乱码 | 成人av小说网| 色婷婷综合久久久| 欧美一级久久久| 国产精品免费av| 亚洲成人自拍偷拍| 黄页网站大全一区二区| 99精品热视频| 欧美成人一区二区三区| 1000部国产精品成人观看| 日韩精品三区四区| 9i看片成人免费高清| 91精品综合久久久久久| 国产精品欧美一区二区三区| 亚洲午夜电影在线观看| 国产成人av影院| 欧美精品在线视频| 国产喷白浆一区二区三区| 亚洲国产成人porn| 东方欧美亚洲色图在线| 欧美精品久久天天躁| 中文字幕一区二区三区在线观看| 日本不卡一区二区| 91蝌蚪porny| 久久综合九色综合97婷婷| 午夜影视日本亚洲欧洲精品| 成人免费视频网站在线观看| 日韩精品一区二区三区swag | 久久久精品黄色| 亚洲国产精品自拍| 成人性生交大片| 欧美精品一区二区三区四区| 亚洲国产精品人人做人人爽| 99久久婷婷国产| 2020国产精品| 美女视频一区二区三区| 日本韩国一区二区| 国产精品福利一区| 国产成人在线视频网站| 精品日韩欧美在线| 亚欧色一区w666天堂| 在线精品国精品国产尤物884a| 国产精品高清亚洲| 国产成a人亚洲精| 国产亚洲精品超碰| 国内精品国产成人国产三级粉色| 日韩一区二区中文字幕| 日韩av网站在线观看| 欧美色视频在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 成人小视频免费在线观看| 国产欧美日韩视频一区二区| 国产精品一卡二卡在线观看| 精品欧美乱码久久久久久| 麻豆高清免费国产一区| 日韩欧美国产电影| 久久电影国产免费久久电影| 精品精品欲导航| 国产一区二区三区香蕉| 国产日韩一级二级三级| 成人动漫中文字幕| 亚洲激情av在线| 欧美精品日韩综合在线| 日本中文一区二区三区| 精品日韩在线观看|