亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pidmotor.lst

?? 基于時間觸發調度器的直流電機閉環控制
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V8.08   PIDMOTOR                                                              06/30/2007 15:58:44 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE PIDMOTOR
OBJECT MODULE PLACED IN PIDmotor.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE PIDmotor.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*------------------------------------------------------------------*-
   2          
   3             PID_Motor.c (v1.01)
   4          
   5            ------------------------------------------------------------------
   6          
   7             Small library for PID control of a DC motor.
   8             For C515c microcontroller.
   9             
  10             The set point (required speed) is read via a potentiometer 
  11             and on-chip ADC.
  12             
  13             The current speed is read via an optical encoder.  The pulses
  14             from the encoder are counted using T0.
  15          
  16             The new speed is set by PWM using the on-chip capture-compare 
  17             unit (Timer 2).
  18          
  19          
  20             COPYRIGHT
  21             ---------
  22          
  23             This code is from the book:
  24          
  25             PATTERNS FOR TIME-TRIGGERED EMBEDDED SYSTEMS by Michael J. Pont 
  26             [Pearson Education, 2001; ISBN: 0-201-33138-1].
  27          
  28             This code is copyright (c) 2001 by Michael J. Pont.
  29           
  30             See book for copyright details and other information.
  31          
  32          -*------------------------------------------------------------------*/
  33          
  34          #include "Main.h"
  35          #include "Port.h"
  36          
  37          #include "PIDMotor.h"
  38          #include "PC_O_in.h"
  39          
  40          
  41          // ------ Public constants -----------------------------------------
  42          
  43          extern const char code CHAR_MAP_G[10];
  44          
  45          // ------ Private function prototypes ------------------------------
  46          
  47          static tByte PID_MOTOR_Get_Required_Speed(void);
  48          static tByte PID_MOTOR_Read_Current_Speed(void);
  49          static void  PID_MOTOR_Set_New_PWM_Output(const tByte);
  50          
  51          // ------ Private constants ----------------------------------------
  52          
  53          #define PULSE_HIGH (0)
  54          #define PULSE_LOW (1)
  55          
C51 COMPILER V8.08   PIDMOTOR                                                              06/30/2007 15:58:44 PAGE 2   

  56          // PID parameters
  57          #define PID_PROPORTIONAL (5)
  58          #define PID_INTEGRAL     (50)
  59          #define PID_DIFFERENTIAL (50)
  60          
  61          // ------ Private variables ----------------------------------------
  62          
  63          // Used for demo purposes only
  64          tWord Ticks = 0;
  65          
  66          // Stores the latest count value
  67          static tByte Pulse_count_G;
  68          
  69          // Data to be copied to the serial port
  70          static char PID_MOTOR_data_G[50] = {"  "};
  71          
  72          // Measured speed, required speed and controller output variables
  73          static tByte Speed_measured_G = 45;
  74          static tByte Speed_required_G = 50;
  75          static tByte Controller_output_G = 128;
  76          
  77          static int Old_error_G = 0;
  78          static int Sum_G = 0;
  79          
  80          
  81          /*------------------------------------------------------------------*-
  82          
  83            PID_MOTOR_Init()
  84          
  85            Prepare for UD motor control.
  86          
  87          -*------------------------------------------------------------------*/
  88          void PID_MOTOR_Init(void)
  89             {
  90   1         // -----------------------------------------------------------
  91   1         // Set up the initial data to be sent to the PC via RS-232
  92   1         // -----------------------------------------------------------
  93   1         char* pScreen_Data =  "Cur     Des     PWM     \n";
  94   1      
  95   1         tByte c;
  96   1         
  97   1         for (c = 0; c < 30; c++)
  98   1            {
  99   2            PID_MOTOR_data_G[c] = pScreen_Data[c];
 100   2            }  
 101   1      
 102   1         // -----------------------------------------------------------
 103   1         // Set up the A-D converter
 104   1         // (used to measure the 'set point' (the desired motor speed)
 105   1         // -----------------------------------------------------------
 106   1      
 107   1         // Select internally-triggered single conversion
 108   1         // Reading from P6.0 (single channel)
 109   1         ADCON0 = 0xC0;  // Mask bits 0 - 5 to 0 
 110   1         
 111   1         // Select appropriate prescalar ratio: see manual for details
 112   1         ADCON1 = 0x80;  // Make bit 7 = 1 : Prescaler ratio=8
 113   1      
 114   1         // -----------------------------------------------------------
 115   1         // Set up the PWM output (Cap Com) unit - T2
 116   1         // (used to set the desired motor speed)
 117   1         // -----------------------------------------------------------
C51 COMPILER V8.08   PIDMOTOR                                                              06/30/2007 15:58:44 PAGE 3   

 118   1      
 119   1         // ---------- T2 Mode ---------------------------
 120   1         // Mode 1 = Timerfunction
 121   1       
 122   1         // Prescaler: Fcpu/6
 123   1      
 124   1         // ---------- T2 reload mode selection ----------
 125   1         // Mode 0 = auto-reload upon timer overflow
 126   1         // Preset the timer register with autoreload value ! 0xFF00;
 127   1         TL2 = 0x00;
 128   1         TH2 = 0xFF;
 129   1          
 130   1         // ---------- T2 general compare mode ----------
 131   1         //  Mode 0 for all channels
 132   1         T2CON |= 0x11;
 133   1      
 134   1         // ---------- T2 general interrupts ------------
 135   1         //  Timer 2 overflow interrupt is disabled
 136   1         ET2=0;
 137   1         //  Timer 2 external reload interrupt is disabled
 138   1         EXEN2=0;
 139   1      
 140   1         // ---------- Compare/capture Channel 0 ---------
 141   1         // Disabled??
 142   1         // Set Compare Register CRC on: 0xFF00;
 143   1         CRCL = 0x00;
 144   1         CRCH = 0xFF;
 145   1        
 146   1         // CC0/ext3 interrupt is disabled
 147   1         EX3=0;
 148   1        
 149   1         // ---------- Compare/capture Channel 1 ---------
 150   1         // Compare enabled
 151   1         // Set Compare Register CC1 on: 0xFF80;
 152   1         CCL1 = 0x80;
 153   1         CCH1 = 0xFF;
 154   1        
 155   1         // CC1/ext4 interrupt is disabled
 156   1         EX4=0;
 157   1        
 158   1         // ---------- Compare/capture Channel 2 ---------
 159   1         // Disabled
 160   1         // Set Compare Register CC2 on: 0x0000;
 161   1         CCL2 = 0x00;
 162   1         CCH2 = 0x00;
 163   1         //  CC2/ext5 interrupt is disabled
 164   1         EX5=0;
 165   1        
 166   1         // ---------- Compare/capture Channel 3 ---------
 167   1         // Disabled
 168   1         // Set Compare Register CC3 on: 0x0000;
 169   1         CCL3 = 0x00;
 170   1         CCH3 = 0x00;
 171   1        
 172   1         // CC3/ext6 interrupt is disabled
 173   1         EX6=0;
 174   1        
 175   1         // Set all above mentioned modes for channel 0-3 
 176   1         CCEN = 0x08; 
 177   1      
 178   1         // -----------------------------------------------------------
 179   1         // Count pulses on Pin 3.5 [software only]
C51 COMPILER V8.08   PIDMOTOR                                                              06/30/2007 15:58:44 PAGE 4   

 180   1         // (used to measure the current motor speed)
 181   1         // -----------------------------------------------------------
 182   1         Pulse_count_pin = 1;
 183   1         Pulse_count_G = 0;   
 184   1         }
 185          
 186          /*------------------------------------------------------------------*-
 187          
 188            PID_MOTOR_Control_Motor()
 189          
 190            The main motor control function.
 191          
 192          -*------------------------------------------------------------------*/
 193          void PID_MOTOR_Control_Motor(void)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一级在线| 99re66热这里只有精品3直播| 国产欧美一区二区精品秋霞影院| 日本丰满少妇一区二区三区| 国产在线播放一区| 日韩成人免费电影| 亚洲精品午夜久久久| 久久久久久免费| 日韩一级免费一区| 欧美天堂亚洲电影院在线播放| 高清成人在线观看| 玖玖九九国产精品| 日韩成人免费在线| 亚洲h动漫在线| 一区二区三区蜜桃| 亚洲视频在线一区观看| 国产欧美日韩激情| 精品成人免费观看| 日韩一区二区在线观看视频 | 精品国产乱码久久久久久牛牛| 欧亚洲嫩模精品一区三区| aaa欧美日韩| 成人自拍视频在线观看| 国产一区中文字幕| 国产伦精品一区二区三区免费| 日本亚洲三级在线| 免费成人在线观看视频| 日本中文字幕一区| 日韩国产一区二| 日韩在线a电影| 日日摸夜夜添夜夜添精品视频| 亚洲国产日韩精品| 亚洲成人久久影院| 亚洲国产精品影院| 偷拍与自拍一区| 午夜精品爽啪视频| 肉色丝袜一区二区| 奇米影视在线99精品| 久久精品国产亚洲一区二区三区| 日韩高清一区在线| 卡一卡二国产精品| 国产精品亚洲一区二区三区妖精 | 国产成人精品亚洲777人妖| 国产精品一区在线观看你懂的| 国产一区二区三区免费| 国产成人在线色| 懂色av一区二区三区免费看| av在线播放一区二区三区| 91在线国内视频| 欧美日韩国产影片| 欧美一区二区三区视频免费| 日韩精品专区在线| 国产亚洲va综合人人澡精品| 中文字幕av不卡| 洋洋成人永久网站入口| 亚洲成av人片一区二区三区| 日韩高清不卡一区二区| 韩国欧美国产1区| 国产成人精品1024| 色8久久精品久久久久久蜜| 欧美日韩国产影片| 久久一留热品黄| 亚洲免费大片在线观看| 日韩高清国产一区在线| 国产激情视频一区二区在线观看| 成人sese在线| 欧美性高清videossexo| 欧美本精品男人aⅴ天堂| 国产精品久久99| 首页国产丝袜综合| 懂色av中文字幕一区二区三区| 91国在线观看| 精品久久久网站| 亚洲欧美日本韩国| 九一九一国产精品| 不卡区在线中文字幕| 欧美精品 日韩| 国产视频亚洲色图| 亚洲国产精品视频| 国产1区2区3区精品美女| 欧美午夜理伦三级在线观看| 欧美精品一区二区精品网| 日韩美女久久久| 国产综合色精品一区二区三区| 91亚洲精品久久久蜜桃| 日韩精品一区国产麻豆| 亚洲精品ww久久久久久p站| 狠狠色狠狠色综合| 色天天综合久久久久综合片| 精品国内片67194| 亚洲一二三级电影| 成人免费av在线| 日韩欧美在线影院| 国产精品久久久久久久久图文区 | 视频一区二区三区入口| 国产成人免费在线观看不卡| 欧美午夜精品久久久久久超碰 | 99久久综合精品| 欧美va亚洲va香蕉在线| 亚洲成在线观看| 99国产精品久久久久| 久久亚洲捆绑美女| 日韩av成人高清| 欧美视频一区二区三区| 中文字幕一区二区三区四区| 狠狠色狠狠色综合系列| 日韩一区二区在线免费观看| 亚洲一区二区三区四区五区中文| 国产成人激情av| 久久久久九九视频| 久久精品国产免费看久久精品| 欧美天天综合网| 一区二区三区四区蜜桃| 9色porny自拍视频一区二区| 国产性色一区二区| 国产又粗又猛又爽又黄91精品| 日韩亚洲欧美在线观看| 亚洲h在线观看| 欧美日韩国产123区| 亚洲一区二区三区四区在线免费观看 | 亚洲成年人网站在线观看| 91丨九色丨蝌蚪富婆spa| 国产精品国产三级国产aⅴ中文 | 欧美xxx久久| 另类小说图片综合网| 51久久夜色精品国产麻豆| 日日夜夜一区二区| 91精品国产综合久久福利| 亚洲风情在线资源站| 在线视频国产一区| 洋洋成人永久网站入口| 在线观看亚洲a| 亚洲成av人片在线观看| 欧美巨大另类极品videosbest| 亚洲成人av资源| 欧美一区二区三区四区五区 | 亚洲国产视频网站| 欧美日韩精品福利| 天天色图综合网| 欧美岛国在线观看| 狠狠色2019综合网| 中文字幕的久久| 一本大道久久a久久综合婷婷| 亚洲视频一区二区在线| 欧美中文字幕亚洲一区二区va在线 | 欧美国产精品专区| 成人av第一页| 一区二区三区加勒比av| 欧美视频在线一区二区三区| 天天色天天操综合| 欧美精品一区二区三区一线天视频| 国产乱人伦偷精品视频免下载| 中文字幕的久久| 在线观看亚洲精品视频| 免费在线欧美视频| 国产女主播一区| 色妹子一区二区| 三级欧美在线一区| 久久久久久免费毛片精品| 97精品久久久久中文字幕 | 成人免费av网站| 夜色激情一区二区| 欧美大片日本大片免费观看| 高清久久久久久| 亚洲福利视频三区| 久久精品免视看| 91免费国产在线| 日韩国产精品久久久久久亚洲| 久久久五月婷婷| 在线精品视频小说1| 精品在线你懂的| 亚洲欧美日韩在线不卡| 日韩视频一区二区三区 | 精品免费一区二区三区| 不卡免费追剧大全电视剧网站| 午夜久久久影院| 久久久www成人免费毛片麻豆 | 亚洲午夜一区二区三区| 欧美精品一区二区三区四区| 91色视频在线| 精品一二线国产| 一区二区三区在线影院| 久久女同互慰一区二区三区| 91福利在线播放| 国产成人在线电影| 日日夜夜精品视频免费| 中文字幕在线一区免费| 日韩一区二区三区在线| 色婷婷综合中文久久一本| 国内偷窥港台综合视频在线播放| 亚洲人成网站影音先锋播放| 337p日本欧洲亚洲大胆精品| 欧美日韩精品是欧美日韩精品| 国产99一区视频免费| 奇米精品一区二区三区四区| 亚洲精品国产视频| 久久久激情视频| 欧美刺激午夜性久久久久久久| 欧美无乱码久久久免费午夜一区| 福利电影一区二区|