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

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

?? pid.c.txt

?? 經典pid例程
?? TXT
字號:
#include <reg51.h>
#include <string.h>
#include <stdio.h>
#include <intrins.h>
#define uint  unsigned int
#define uchar unsigned char
#define slong signed long
#define  data_port  P0   //液晶數據口
sbit P1_0=P1^0;
sbit P1_1=P1^1;
uint count0,zkb;
slong rIn,Uk,sum1,ad1=0,SumError=0,LastError=0,PrevError=0,
      Error=0,dError=0; //定義全局變量
uchar ding=20;
sbit    CLOCK= P1^2;       //時鐘
sbit     _CS = P1^1;       //片選
sbit    D_IN = P2^5;       //數據入口
sbit   D_OUT = P3^3;       //數據出口
sbit   BUSY=P3^7;        // 液晶 BUSY
sbit   REQ=P3^6;         //液晶的REQ
sbit   RES=P2^0;          //液晶的REQ
void Dispay_asc16(unsigned char x,unsigned char y,unsigned char ascii);

void ocmj_write(uchar data1);                  //液晶顯示字節
void ocmj_init(void);                          //液晶初始化
void  delay_ms(uchar t);                      //  延時1MS
void clr();
void Dispay_asc16str(unsigned char x,unsigned char y,unsigned char *ascii);//顯示字符
void hz_tran(unsigned char x,unsigned char y,unsigned char *hz_p);// 傳送LCD內部漢字數據到LCD函數 x:0x00~0x09 y:0x00~0x05
void disp_bit_dot(unsigned char x,unsigned char y);
void Dispay_asc16(unsigned char x,unsigned char y,unsigned char ascii);//顯示數字字符(0-9)
void disp_cursor(void); //顯示光標
void guanbi_cursor(void);//關閉光標
/****************************
函數功能:延時
****************************/
void delay(uchar n)
{
uchar i;
for(i=0;i<n;i++)
{
   _nop_();
}
}

/*****************************
函數功能:2543模擬量輸入
*****************************/
uint read2543(uchar port)
{
uint ad=0,i;
CLOCK=0;
_CS=0;
port<<=4;
for(i=0;i<12;i++)
{
  if(D_OUT) ad|=0x01;
  D_IN=(bit)(port&0x80);
  CLOCK=1;
  delay(3);
  CLOCK=0;
  delay(3);
  port<<=1;
  ad<<=1;
}
_CS=1;
ad>>=1;
return(ad);
}
/**第一次讀2543的值**/
void first2543(void)
{  uint n=12,cout1;
   read2543(0);
for(cout1=0;cout1<n;cout1++)
         {
          sum1+=(slong)read2543(0);
          delay(1);
         };
	  sum1=(slong)sum1/n;
}

/*****************************
函數功能:PID運算程序
******************************/
slong PIDprogra(slong a,b,c)
{
slong  SetPoint=0,Proportion=0,Integral=0,Derivative=0,
       sum=0,rOut;
       uint i=0,j=0,n=12,cout;



       Proportion=a;
       Integral=b;
       Derivative=c;

       ad1+=13;
       SetPoint=(slong)ad1+sum1;
        read2543(0);
      for(cout=0;cout<n;cout++)
         {
          sum+=read2543(0);
          delay(1);
         };
	  rIn=(slong)sum/n;
	  Error=SetPoint-rIn; 		     // 偏差
	   //Error=100;
		 if(Error>0)
                 {
                 if(Error>30)
		 rOut=1000;
		 else
                      {
                       SumError+=Error;              // 積分
                       dError=LastError-PrevError;   // 當前微分
                       PrevError=LastError;
                       LastError=Error;
                       rOut=(slong)(Proportion * Error      // 比例項
                            +Integral * SumError            // 積分項
                            +Derivative * dError);
		       }
                  }
                  else
                  rOut=0;
		  //P3=(slong)rOut;                          // 微分項

		  for(i=0;i<1000;i++)
                  {
                   for(j=0;j<800;j++)
                   _nop_();
                  }
                  return rOut;
}
/****************定時器T1初始化************/
void T1int(void)
{
  EA=1;
  ET0=1;
  ET1=1;
  TMOD=0x11;
  TH0=(65536-20000)/256;
  TL0=(65536-20000)%256;
  TH1=0xb0;
  TL1=0x3C;
  TR0=1;
  TR1=1;
  count0=1;
}
//液晶寫數據
 void ocmj_write(uchar data1)
    {
         while(BUSY!=0);
         data_port=data1;
         _nop_();
         _nop_();
         REQ=1;
        _nop_();
        _nop_();
        while(BUSY==0) ;
        REQ=0;

    }

//延時1ms
void  delay_ms(uchar t)
{
  uchar j1,s1;
  for(j1=0;j1<t;j1++)
  for(s1=0;s1<125;s1++)
  { }
}
// 液晶初始化
void ocmj_init(void)
    {
         RES=0;                        //LCD復位
         delay_ms(10);
         RES=1;
         REQ=0;
         BUSY=1;
         delay_ms(10);
   }

//清屏
void clr()
{
   ocmj_write(0xf4);
}
/*-----------------顯示國標漢字-----------------*/
/****************************************************************************************
**函數名稱:Dispay_hz()
**函數功能:顯示16*16漢字
**輸入參數:x為橫坐標(0x00-0x07);    (0--7)
           y為縱坐標(0x00-0x0e);    (0--15)
**輸出參數:無
****************************************************************************************/
void hz_tran(unsigned char x,unsigned char y,unsigned char *hz_p)
    {
         x+=0;
     while((*hz_p)!=0)
            {
                 ocmj_write(0xf0);
                 ocmj_write(x);
                 ocmj_write(y);
                 ocmj_write(*hz_p-0xa0); //轉區位碼高位
                 hz_p++;
                 ocmj_write(*hz_p-0xa0); //轉區位碼低位
                 hz_p++;
                 if(x<0x0E)
                     x++;
                 else
                    {
                         x=0x00;
                         y++;
                    }
                }
  }

  /****************************************************************************************
**函數名稱:send_asc16str()
**函數功能:顯示8*16ASCII字符串
**輸入參數:X坐標X從0x00到0x1D共30個字符以字符為單位遞增;(0--29)
**         Y坐標Y從0到0x共80個點以點為單位遞增;        (0--127)
**輸出參數:無
****************************************************************************************/
void Dispay_asc16str(unsigned char x,unsigned char y,unsigned char *ascii)
{
    while((*ascii)!=0)
    {
        ocmj_write(0xF9);
        ocmj_write(x);
        ocmj_write(y);
        ocmj_write(*ascii);//寫要顯示的ASCII碼;
        ascii++;
        if(x<0x1D)
           x++;
        else
        {
           x=0x00;
           y+=16;
           if(y==0x40)
           y=0;
        }
    }
}

/*-----------------顯示字節點陣圖形-----------------*/
void disp_img (uchar  *img)
{
      uchar i,j;
      for(j=0;j<80;j++)
      {
        for(i=0;i<20;i++)
        {
        ocmj_write(0xf3);
        ocmj_write(i);
        ocmj_write(j);

        ocmj_write(img[j*20+i]);
        }
      }
}
/*****************************************************************************************
**函數名稱:Dispay_ASCII16()
**函數功能:顯示8*16ASCII字符變量
**輸入參數:X坐標X從0x04到0x13共16個字符以字符為單位遞增;(0--15)
**         Y坐標Y從0到0x3F共64個點以點為單位遞增;        (0--63)
**輸出參數:無
*****************************************************************************************/
void Dispay_asc16(unsigned char x,unsigned char y,unsigned char ascii)
{
   ocmj_write(0xf9);
   ocmj_write(x);
   ocmj_write(y);
   ocmj_write(ascii+0x30);
}

//顯示光標
void disp_cursor(void)
{
      ocmj_write(0xfb);
      ocmj_write(0x0f);
}
//關閉光標
void guanbi_cursor(void)
{
      ocmj_write(0xfb);
      ocmj_write(0x00);
}
//顯示1*8位點
void disp_bit_dot(unsigned char x,unsigned char y)
{
      ocmj_write(0xf3);
      ocmj_write(x);
      ocmj_write(y);
      ocmj_write(0x01);
}

/*****************************
        主程序
*****************************/
void main()
{ T1int();
  ocmj_init();
  first2543();
  while(1){
            Uk=(slong)PIDprogra(2,0,30);
            if(Uk>999)
               zkb=125;
            else
            {zkb=(uint)(Uk*125/1000);}
          };
}
/***************PWM子程序*******************/
void timer0(void) interrupt 1 using 1
{
 TH0=-20000/256;
 TL0=-20000%256;
 count0++;
 if(count0>zkb)
 {
 P1_0=1;}
 else
 P1_0=0;
 if(count0==125)                       //占空比周期
 {
   count0=1;

 }
}


void time1(void) interrupt 3 using 0
 {   long xianshi11=0;
     uchar wendu1,wendu2,wendu3,wendu4;
    TH1=0x3C;
    TL1=0xB0;
    ding--;
  if(ding==0)
   {
     ding=40;
           xianshi11=read2543(0);

                   wendu1=xianshi11/1000;
                   wendu2=xianshi11%1000/100;
                   wendu3=xianshi11%100/10;
                   wendu4=xianshi11%10;

                   Dispay_asc16(0x12,46,wendu1);
                   Dispay_asc16(0x13,46,wendu2);
                   Dispay_asc16(0x14,46,wendu3);
                   Dispay_asc16(0x15,46,wendu4);

                     xianshi11=xianshi11*400;
                     xianshi11=xianshi11/4096;
                     wendu2=xianshi11%1000/100;
                     wendu3=xianshi11%100/10;
                     wendu4=xianshi11%10;
                    Dispay_asc16(0x13,65,wendu2);
                   Dispay_asc16(0x14,65,wendu3);
                   Dispay_asc16(0x15,65,wendu4);

  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产成人av好男人在线观看| 日韩国产欧美视频| 亚洲欧美色图小说| 麻豆精品在线观看| 日本高清不卡aⅴ免费网站| 欧美xingq一区二区| 亚洲精品免费在线播放| 国产一区免费电影| 日韩无一区二区| 亚洲精品免费在线观看| 豆国产96在线|亚洲| 欧美一二三区在线观看| 亚洲国产成人高清精品| 91女厕偷拍女厕偷拍高清| 久久久久久久久久久久久夜| 亚洲成人激情自拍| 色婷婷久久综合| 国产精品丝袜久久久久久app| 蜜臀精品一区二区三区在线观看| 欧洲色大大久久| 亚洲色图.com| 91香蕉国产在线观看软件| 国产欧美一区二区精品仙草咪| 久久99精品国产| 精品国产污网站| 久久精品99国产精品日本| 日韩一区二区三区精品视频| 天天免费综合色| 精品视频一区三区九区| 亚洲国产精品精华液网站| 欧美影片第一页| 亚洲一区在线视频| 欧美日韩国产精选| 天使萌一区二区三区免费观看| 日本精品一级二级| 亚洲国产精品久久一线不卡| 91成人免费电影| 天天操天天综合网| 日韩丝袜美女视频| 国产一区二区三区视频在线播放| 精品国产免费一区二区三区香蕉| 国内成人精品2018免费看| 精品美女一区二区三区| 国内精品久久久久影院一蜜桃| 久久久精品黄色| 成人av在线观| 亚洲精品免费视频| 欧美日韩色综合| 久久精品国产99久久6| 久久久久久久网| 91免费看视频| 天堂成人国产精品一区| 亚洲精品一区二区三区蜜桃下载| 国产a区久久久| 亚洲制服欧美中文字幕中文字幕| 欧美在线一区二区| 看电影不卡的网站| 国产精品久久久久婷婷二区次| 91日韩精品一区| 日韩激情一二三区| 久久精品亚洲乱码伦伦中文| 91香蕉视频黄| 麻豆91在线播放| 国产精品久久久久久福利一牛影视| 色狠狠色噜噜噜综合网| 日韩成人一区二区三区在线观看| xnxx国产精品| 91福利视频久久久久| 精品一区二区三区不卡| 中文字幕亚洲综合久久菠萝蜜| 欧洲一区二区av| 国产成人精品午夜视频免费| 一区二区日韩av| 国产亚洲一二三区| 欧美日韩一区成人| 丁香天五香天堂综合| 天天色天天操综合| 中文字幕亚洲区| 精品久久久影院| 在线亚洲人成电影网站色www| 久色婷婷小香蕉久久| 亚洲久本草在线中文字幕| 精品欧美一区二区久久| 欧美四级电影网| av不卡免费在线观看| 免费成人av在线播放| 亚洲欧美日韩国产手机在线 | 日韩高清不卡一区二区| 中文一区在线播放| 欧美一区二区成人6969| 91在线一区二区三区| 国内精品嫩模私拍在线| 无吗不卡中文字幕| 亚洲婷婷国产精品电影人久久| 精品国产1区二区| 欧美人牲a欧美精品| 日本高清不卡aⅴ免费网站| 成人丝袜高跟foot| 国产美女精品人人做人人爽 | 亚洲在线观看免费| 国产欧美精品国产国产专区 | 国模冰冰炮一区二区| 日韩国产欧美三级| 午夜成人免费视频| 一区二区三区四区中文字幕| 一区在线中文字幕| 欧美国产激情一区二区三区蜜月| 精品毛片乱码1区2区3区| 欧美成人激情免费网| 日韩一区二区在线看片| 91精品国产色综合久久久蜜香臀| 欧美日韩视频专区在线播放| 欧美午夜精品一区二区三区| 在线亚洲精品福利网址导航| 欧美三日本三级三级在线播放| 91福利视频网站| 欧美日本一区二区在线观看| 欧美性极品少妇| 精品一区二区三区久久| 亚洲超丰满肉感bbw| 亚洲精品视频免费看| 亚洲最新视频在线播放| 亚洲品质自拍视频| 亚洲一级在线观看| 久久综合精品国产一区二区三区 | 欧美无人高清视频在线观看| 99视频有精品| 欧洲日韩一区二区三区| 欧美亚一区二区| 91精品国产综合久久久久久久| 欧美亚洲国产一区二区三区| 在线91免费看| 欧美精品一二三四| 欧美精品777| 91精品国产综合久久福利| 欧美日韩免费在线视频| 日韩免费福利电影在线观看| 欧美va亚洲va国产综合| 欧美激情在线一区二区| 国产精品伦理在线| 亚洲电影你懂得| 精品国产乱码久久久久久久| 国产日韩欧美综合一区| 亚洲精品国产一区二区精华液 | 国产欧美一区二区精品仙草咪| 久久久久久久电影| 一区二区三区蜜桃| 日韩电影一区二区三区四区| 成人午夜av在线| 91免费看视频| 亚洲精品一区二区三区影院 | 日韩一级免费一区| 欧美激情一区二区| 亚洲免费看黄网站| 秋霞成人午夜伦在线观看| 麻豆成人av在线| 在线观看日韩国产| 制服丝袜中文字幕一区| 国产精品灌醉下药二区| 一区二区三区在线免费播放| 人人狠狠综合久久亚洲| 成人动漫精品一区二区| 91福利在线观看| 911国产精品| 精品久久久久久久人人人人传媒 | 暴力调教一区二区三区| 欧美怡红院视频| 久久久久久久综合日本| 青青草成人在线观看| 色婷婷精品久久二区二区蜜臂av| 678五月天丁香亚洲综合网| 最新热久久免费视频| 天堂蜜桃91精品| 欧美在线视频日韩| 久久久久久久久久久黄色| 日韩主播视频在线| 欧美色图免费看| 中文子幕无线码一区tr| 国内精品国产成人国产三级粉色| 91搞黄在线观看| 亚洲人快播电影网| 欧美a级理论片| 欧美久久一二区| 亚洲一区二区欧美日韩| 国产东北露脸精品视频| 久久综合九色欧美综合狠狠 | 91黄色免费网站| 国产精品毛片久久久久久久| 午夜精品久久久久影视| 91黄色在线观看| 久久奇米777| 国产精品99久久不卡二区| 精品国产乱码久久久久久免费| 一区二区欧美精品| 欧美日韩激情一区二区三区| 国产精品久久看| 色综合一区二区| 亚洲一区在线观看免费| 91视频免费观看| 一区二区三区欧美|