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

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

自<b>整定</b>控制

  • C++完美演繹 經典算法 如 /* 頭文件:my_Include.h */ #include <stdio.h> /* 展開C語言的內建函數指令 */ #define PI 3.141

    C++完美演繹 經典算法 如 /* 頭文件:my_Include.h */ #include <stdio.h> /* 展開C語言的內建函數指令 */ #define PI 3.1415926 /* 宏常量,在稍后章節再詳解 */ #define circle(radius) (PI*radius*radius) /* 宏函數,圓的面積 */ /* 將比較數值大小的函數寫在自編include文件內 */ int show_big_or_small (int a,int b,int c) { int tmp if (a>b) { tmp = a a = b b = tmp } if (b>c) { tmp = b b = c c = tmp } if (a>b) { tmp = a a = b b = tmp } printf("由小至大排序之后的結果:%d %d %d\n", a, b, c) } 程序執行結果: 由小至大排序之后的結果:1 2 3 可將內建函數的include文件展開在自編的include文件中 圓圈的面積是=201.0619264

    標簽: my_Include include define 3.141

    上傳時間: 2014-01-17

    上傳用戶:epson850

  • 本電子鐘采用PIC16C55單片機控制

    本電子鐘采用PIC16C55單片機控制,適于溫室的定時恒溫或自來水的定時定壓控制等。PIC16C55單片機工作電壓為2.5~6.25V,功耗低、驅動能力強。本電子鐘可以控制一路負載在24小時內的3次開/關;一個雙限觸發的定時輸出口,既可接傳統的功率保持型繼電器,也可接脈沖繼電器。本機用四位LED數碼管掃描式顯示,還有消隱(省電)工作方式,使用起來非常靈活、方便。

    標簽: PIC 16C C55 16

    上傳時間: 2014-05-29

    上傳用戶:GHF

  • 汽車采制業務對接

    1           (1)    過程監控原則,以實現實時狀態數據監測; (2)    手自動切換無擾原則; (3)    滿足遠程控制和參數整定; (4)    時鐘同步和心跳檢測功能; (5)    滿足周期召喚和狀態變位主動上送; (6)    滿足歷史數據召喚; (7)    提供數據點表和通訊方式; (8)    數據傳輸鏈路包括PLC通訊鏈路和上位機通訊鏈路方式; (9)    具備RJ45以太網通信接口供集中管控系統接入,支持Modbus TCP(作為從站)或者OPC Server通訊協議; 業務數據通過Web Service或者數據庫中間表方式進行數據交互。如采用Web Service方式(遠光共創作為服務端),雙方公布API接口供對方調用,接口方式為報文接口方式,數據報文以XML進行描述;如采用數據庫中間表方式,則由第三方提供數據庫中間表;

    標簽: 汽車采制業務對接

    上傳時間: 2016-01-18

    上傳用戶:ganggehao

  • 12345

    /****************temic*********t5557***********************************/    #include   <at892051.h>     #include   <string.h>    #include   <intrins.h>     #include   <stdio.h>     #define    uchar    unsigned char     #define    uint     unsigned int     #define    ulong    unsigned long     //STC12C2051AD的SFR定義     sfr  WDT_CONTR = 0xe1;//stc2051的看門狗??????     /**********全局常量************/    //寫卡的命令     #define    write_command0       0//寫密碼     #define    write_command1       1//寫配置字     #define    write_command2       2//密碼寫數據     #define    write_command3       3//喚醒     #define    write_command4       4//停止命令     #define    TRUE       1     #define    FALSE      0     #define    OK         0     #define    ERROR      255     //讀卡的時間參數us     #define ts_min          250//270*11.0592/12=249//取近似的整數     #define ts_max          304//330*11.0592/12=304     #define t1_min          73//90*11.0592/12=83:-10調整     #define t1_max          156//180*11.0592/12=166     #define t2_min          184//210*11.0592/12=194     #define t2_max          267//300*11.0592/12=276     //***********不采用中斷處理:采用查詢的方法讀卡時關所有中斷****************/     sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13     sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE     PIN=6     sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut  PIN=2     sbit wtd_sck = P1^7;//SPI總線     sbit wtd_si = P1^3;    sbit wtd_so = P1^2;    sbit iic_data = P1^2;//lcd IIC     sbit iic_clk = P1^7;    sbit led_light = P1^6;//測試綠燈     sbit led_light1 = P1^5;//測試紅燈     sbit led_light_ok  = P1^1;//讀卡成功標志     sbit fengmingqi = P1^5;    /***********全局變量************************************/       uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密碼             //uchar idata card_snr[4];   //配置字     uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7};     //存儲卡上用戶數據(1-7)7*4=28     uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收數組ram     uchar command; //第一個命令     uchar command1;//     //uint  temp;     uchar j,i;    uchar myaddr = 8;    //uchar ywqz_count,time_count;             //ywqz jishu:     uchar bdata DATA;    sbit BIT0 = DATA^0;    sbit BIT1 = DATA^1;    sbit BIT2 = DATA^2;    sbit BIT3 = DATA^3;    sbit BIT4 = DATA^4;    sbit BIT5 = DATA^5;    sbit BIT6 = DATA^6;    sbit BIT7 = DATA^7;    uchar bdata DATA1;    sbit BIT10 = DATA1^0;    sbit BIT11 = DATA1^1;    sbit BIT12 = DATA1^2;    sbit BIT13 = DATA1^3;    sbit BIT14 = DATA1^4;    sbit BIT15 = DATA1^5;    sbit BIT16 = DATA1^6;    sbit BIT17 = DATA1^7;    bit i_CurrentLevel;//i_CurrentLevel  BIT 00H(Saves current level of OutPut pin of U2270B)     bit timer1_end;    bit read_ok = 0;    //緩存定時值,因用同一個定時器     union HLint { uint W;    struct   {    uchar H;uchar L;   }   B; };//union HLint idata a     union HLint data a;    //緩存定時值,因用同一個定時器     union HLint0 { uint W;    struct {   uchar H;   uchar L; } B; };//union HLint idata a     union HLint0 data b;    /**********************函數原型*****************/    //讀寫操作     void f_readcard(void);//全部讀出1~7 AOR喚醒     void f_writecard(uchar x);//根據命令寫不同的內容和操作     void f_clearpassword(void);//清除密碼     void f_changepassword(void);//修改密碼     //功能子函數     void write_password(uchar data *data p);//寫初始密碼或數據     void write_block(uchar x,uchar data *data p);//不能用通用指針     void write_bit(bit x);//寫位     /*子函數區*****************************************************/    void delay_2(uint x)    //延時,時間x*10us@12mhz,最小20us@12mhz     {    x--; x--;    while(x)    {      _nop_();      _nop_();      x--;    }    _nop_();//WDT_CONTR=0X3C;不能頻繁的復位     _nop_();    }    /////////////////////////////////////////////////////////////////////     void initial(void)    {    SCON = 0x50; //串口方式1,允許接收     //SCON  =0x50;     //01010000B:10位異步收發,波特率可變,SM2=0不用接收到有效停止位才RI=1,     //REN=1允許接收     TMOD = 0x21; //定時器1 定時方式2(8位),定時器0 定時方式1(16位)     TCON = 0x40; //設定時器1 允許開始計時(IT1=1)     TH1 = 0xfD;  //FB 18.432MHz 9600 波特率     TL1 = 0xfD;  //fd 11.0592 9600     IE = 0X90;     //EA=ES=1     TR1 = 1;     //啟動定時器     WDT_CONTR = 0x3c;//使能看門狗     p_U2270B_Standby = 0;//單電源     PCON = 0x00;    IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0     led_light1 = 1;    led_light = 0;    p_U2270B_OutPut = 1;    }    /************************************************/    void f_readcard()//讀卡     {    EA = 0;//全關,防止影響跳變的定時器計時     WDT_CONTR = 0X3C;//喂狗     p_U2270B_CFE = 1;//      delay_2(232);  //>2.5ms            /*   //   aor    用喚醒功能來防碰撞   p_U2270B_CFE = 0; delay_2(18);//start gap>150us   write_bit(1);//10=操作碼讀0頁   write_bit(0);       write_password(&bankdata[24]);//密碼block7   p_U2270B_CFE =1 ;//    delay_2(516);//編程及確認時間5.6ms   */    WDT_CONTR = 0X3C;//喂狗     led_light = 0;    b.W = 0;    while(!(read_ok == 1))    {             //while(p_U2270B_OutPut);//等一個穩定的低電平?超時判斷?              while(!p_U2270B_OutPut);//等待上升沿的到來同步信號檢測1       TR0 = 1;      //deng xia jiang       while(p_U2270B_OutPut);//等待下降沿       TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//定時器晚啟動10個周期       //同步頭       if((324 < a.W) && (a.W < 353)) ;//檢測同步信號1                  else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //等待上升沿        while(!p_U2270B_OutPut);   TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//b.N1<<=8;            if(a.B.L < 195);//0.5p       else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //讀0~7塊的數據       for(j = 0;j < 28;j++)      {       //uchar i;                  for(i = 0;i < 16;i++)//8個位        {        //等待下降沿的到來         while(p_U2270B_OutPut);                TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;              if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;//先左移再賦值          b.B.L += 0xc0;                             i++;        }        else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p         {         b.W >>= 1;         b.B.L += 0x80;                           }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;        while(!p_U2270B_OutPut);//上升                   TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;                      if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;         i++;        }        else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P         //else if(!(a.W==0))         {         b.W >>= 1;         //temp+=0x00;          //led_light1=0;led_light=1;delay_2(40000);         }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;       }       //取出奇位        DATA = b.B.L;       BIT13 = BIT7;    BIT12 = BIT5;    BIT11 = BIT3;    BIT10 = BIT1;       DATA = b.B.H;       BIT17 = BIT7;    BIT16 = BIT5;    BIT15 = BIT3;    BIT14 = BIT1;       bankdata[j] = DATA1;      }              read_ok = 1;//讀卡完成了     read_error:    _nop_();    }       }    /***************************************************/    void f_writecard(uchar x)//寫卡     {    p_U2270B_CFE = 1;    delay_2(232);  //>2.5ms            //psw=0 standard write     if (x == write_command0)//寫密碼:初始化密碼     {      uchar i;      uchar data *data p;      p = cominceptbuff;      p_U2270B_CFE = 0;   delay_2(31);//start gap>330us       write_bit(1);//寫操作碼1:10       write_bit(0);//寫操作碼0       write_bit(0);//寫鎖定位0       for(i = 0;i < 35;i++)      {       write_bit(1);//寫數據位1       }      p_U2270B_CFE = 1;      led_light1 = 0;   led_light = 1;   delay_2(40000);//測試使用       //write_block(cominceptbuff[4],p);       p_U2270B_CFE = 1;      bankdata[20] = cominceptbuff[0];//密碼存入       bankdata[21] = cominceptbuff[1];      bankdata[22] = cominceptbuff[2];      bankdata[23] = cominceptbuff[3];    }    else if (x == write_command1)//配置卡參數:初始化     {      uchar data *data p;      p = cominceptbuff;      write_bit(1);//寫操作碼1:10       write_bit(0);//寫操作碼0       write_bit(0);//寫鎖定位0               write_block(cominceptbuff[4],p);      p_U2270B_CFE=  1;    }    //psw=1  pssword mode     else if(x == write_command2)  //密碼寫數據    {      uchar data*data p;      p = &bankdata[24];      write_bit(1);//寫操作碼1:10       write_bit(0);//寫操作碼0       write_password(p);//發口令       write_bit(0);//寫鎖定位0       p = cominceptbuff;      write_block(cominceptbuff[4],p);//寫數據            }    else if(x == write_command3)//aor    //喚醒 {      //cominceptbuff[1]操作碼10 X xxxxxB       uchar data *data p;      p = cominceptbuff;      write_bit(1);//10       write_bit(0);             write_password(p);//密碼       p_U2270B_CFE = 1;//此時數據不停的循環傳出     }    else //停止操作碼     {      write_bit(1);//11       write_bit(1);             p_U2270B_CFE = 1;         }    p_U2270B_CFE = 1;    delay_2(560);//5.6ms     }    /************************************/    void f_clearpassword()//清除密碼     {    uchar data *data p;    uchar i,x;          p = &bankdata[24];//原密碼     p_U2270B_CFE = 0; delay_2(18);//start gap>150us     //操作碼10:10xxxxxxB     write_bit(1);    write_bit(0);              for(x = 0;x < 4;x++)//發原密碼     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    write_bit(0);//鎖定位0:0     p = &cominceptbuff[0];    write_block(0x00,p);//寫新配置參數:pwd=0             //密碼無效:即清除密碼     DATA = 0x00;//停止操作碼00000000B     for(i = 0;i < 2;i++)    {    write_bit(BIT7);    DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /*********************************/    void f_changepassword()//修改密碼            {       uchar data *data p;    uchar i,x,addr;    addr = 0x07;//block7     p = &Nkey_a[0];//原密碼     DATA = 0x80;//操作碼10:10xxxxxxB     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    for(x = 0;x < 4;x++)//發原密碼     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT7);       DATA >>= 1;      }    }    write_bit(0);//鎖定位0:0     p = &cominceptbuff[0];    write_block(0x07,p);//寫新密碼     p_U2270B_CFE = 1;    bankdata[24] = cominceptbuff[0];//密碼存入     bankdata[25] = cominceptbuff[1];    bankdata[26] = cominceptbuff[2];    bankdata[27] = cominceptbuff[3];    DATA = 0x00;//停止操作碼00000000B     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /***************************子函數***********************************/    void write_bit(bit x)//寫一位     {    if(x)    {      p_U2270B_CFE = 1;   delay_2(32);//448*11.0592/120=42延時448us       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26寫1     }    else    {      p_U2270B_CFE = 1;   delay_2(92);//192*11.0592/120=18       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26寫0     }    }    /*******************寫一個block*******************/    void write_block(uchar addr,uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//block0數據     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    DATA = addr <<= 5;//0地址     for(i = 0;i < 3;i++)    {      write_bit(BIT7);      DATA <<= 1;    }                   }    /*************************************************/    void write_password(uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }        }   /*************************************************/   void main()    {    initial();    TI = RI = 0;    ES = 1;    EA = 1;  delay_2(28);   //f_readcard();     while(1) {   f_readcard();      //讀卡   f_writecard(command1);  //寫卡    f_clearpassword();   //清除密碼     f_changepassword();    //修改密碼 } }

    標簽: 12345

    上傳時間: 2017-10-20

    上傳用戶:my_lcs

  • 自適應模糊滑模控制方法探究

    隨著模糊滑模理論的發展和應用,對模糊滑模控制理論的研究提 出了新的要求,本文針對模糊滑模控制研究中存在的一些問題進行了 深入研究,并最終得出了一系列相應的研究結果。

    標簽: 模糊 控制方法 滑模

    上傳時間: 2018-08-18

    上傳用戶:2113583389@qq.com

  • 淋浴器溫度

    淋浴器溫度控制調節采用MAT LAB 的附加組件Simulink, 仿真系 統的框圖如圖1 所示。圖中的虛線為模糊控制器, 作為二維模糊控制器機構以水的溫度偏差temp 和 流量偏差f low 為輸入量, 采用模糊推理方法對水 的溫度偏差和流量偏差進行整定, 用來確定冷水閥 門和熱水閥門的開口大小cold 和hot 以便控制冷 熱水的流量, 構成2 輸入2 輸出的一階模糊控制系 統; 模糊推理與去模糊化采用MIN - MAX 法及重 心法, 并用MA TLAB 模糊推理工具箱來編輯模糊 控制器。 圖1

    標簽: 淋浴器 溫度

    上傳時間: 2018-10-12

    上傳用戶:一只蟲蟲

  • 電動汽車車載光伏充電系統設計與實現

    針對電動汽車動力電池組長期不能完全充滿而影響其使用壽命,設計了一種光伏電池車載充電裝置,能夠對動力電池組長時間小電流涓流充電以改善其充電狀態,同時部分補充電池組能量,延長電動汽車續航里程與使用壽命。采用TMS320F2808 DSP芯片作為控制核心、以BOOST升壓變換器作為主電路的硬件設計方案,完成了主要元器件的選型和參數整定,對設計參數進行了仿真驗證和優化,并研制了樣機。制定了高性能算法與控制策略,既能完成光伏電池最大輸出功率的跟蹤,又能提高電池的充電效率,并基于MATLAB平臺完成了DSP嵌入式應用程序設計,生成代碼。配備了車載監控系統,實現良好的人機交互功能。實驗結果表明:該裝置性能穩定,光伏電池最大輸出功率跟蹤速度快,穩態誤差小,效率高,并具有防止電池組過充電保護,人性化的人機交互平臺,有很強的實用性。

    標簽: 電動汽車 光伏 充電 車載 系統設計

    上傳時間: 2018-10-17

    上傳用戶:cyyyyyy

  • 基于STM32的無刷直流電機控制器硬件電路設計及實驗研究

    以STM32F103C8T6為核心,設計了無刷直流電機控制器硬件電路。電路主要包括IR2310構成的PWM驅動電路、IRF3808構成的逆變電路、增量式旋轉編碼構成的速度反饋電路。控制器具有CAN和RS232通信接口,可與計算機或PLC構成速度或位置伺服系統。利用由xPC目標搭建的半實物仿真平臺對PI參數進行整定。測試了控制器的速度伺服響應性能,給定速度為2400rpm時,控制器響應時間為0.32s。實驗結果表明,系統工作可靠,穩定性好,響應速度快,可以滿足上肢康復機器人的機械臂速度控制性能要求。The hardware circuit of Brushless DC motor controller is designed by taking STM32F103C8T6 as the core,which mainly includes PWM driving circuits made up of IR2310,inverter circuit formed by IRF3808,speed feedback circuit composed of incremental rotary encoder and so on.Speed servo control system or position servo control system can be composed of BLDM controller with computer or PLC through CAN communication interface or RS232 serial communication interface.By using the hardware in the loop simulation platform built by xPC target,the PI parameters are set up.The Speed servo response performance of the controller is tested.When the speed is 2 400 rpm,the response time of the controller is 0...

    標簽: stm32 無刷直流電機

    上傳時間: 2022-05-07

    上傳用戶:

  • PID算法及其FPGA實現

    PID控制器結構清晰,參數可調,適用于各種控制對象,PID控制器的核心思想是針對控制對象的控制需求,建立描述對象動態特性的數學模型,通過PID參數整定實現在比例,微分,積分三個方面參數調整的控制策略來達到最佳系統響應和控制效果

    標簽: verilog pid FPGA

    上傳時間: 2022-05-12

    上傳用戶:qdxqdxqdxqdx

  • 賽元SC95F智能風扇項目源碼

    功能設計:1、風扇調速模式;        A、3檔調速,低中高風速        B、智能感知控制模式        根據環境溫度和人體感應控制風扇啟動以及風速大小和搖頭功能。        首先利用溫度傳感器DS18B20檢測當前環境溫度,當環境溫度>25度時,此時又通過人體紅外感應傳感器感應到有人時,風扇自動啟動。溫度越高風扇風速越大。溫度>32度時風速最大,當溫度小于25度時,風扇自動關閉待機。        當風扇人體感應檢測到人離開10分鐘后,風扇自動停止待機。當檢測到人時再重新啟動。當夜間0點至早7點除外,無論是否有人都不關機。2、        搖頭功能3、        定時時間功能,最長8小時。以分鐘計:0,10,20,30,40,50,60,90,120,180,240,300,360,420,480。4、支持紅外遙控器和風扇本身按鍵(開機鍵,功能鍵,風速模式切換鍵,搖頭按鍵,定時按鍵),按鍵使用賽元的觸摸按鍵資源。5、OLED液晶屏信息顯示        當前環境溫度、濕度顯示:利用DHT11溫濕度傳感器檢測房間溫濕度,當風扇待機時,任意按鍵后顯示。        風扇啟動后顯示風速模式和大小,是否搖頭標志以及房間當前檢測溫度。        風扇啟動后當設置了定時關機時間后,會顯示定時時間倒計時。        利用BaseTime定時器定時1秒實現了實時時間和日期,通過按鍵設置并在OLED上顯示。

    標簽: sc95f 智能風扇

    上傳時間: 2022-05-18

    上傳用戶:

主站蜘蛛池模板: 庄浪县| 吉林市| 仁化县| 宝清县| 喜德县| 陕西省| 瓦房店市| 亳州市| 吉水县| 赤峰市| 乐至县| 开原市| 高台县| 平南县| 金秀| 龙海市| 隆昌县| 府谷县| 吉水县| 台江县| 永春县| 醴陵市| 阳城县| 玉溪市| 闸北区| 衡山县| 诏安县| 璧山县| 屏山县| 榆中县| 衡东县| 万源市| 天长市| 栾城县| 红河县| 永春县| 阿合奇县| 武川县| 鸡西市| 武宁县| 个旧市|