• <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    技術(shù)熱線: 4007-888-234
    設(shè)計(jì)開(kāi)發(fā)

    專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

    開(kāi)發(fā)工具

    提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享

    技術(shù)支持

    從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!

    新品推廣

    提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力

    新聞中心

    提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

    普通IO口實(shí)現(xiàn)測(cè)量可調(diào)電阻,調(diào)節(jié)LED閃爍頻率

    更新時(shí)間: 2019-03-23
    閱讀量:3169

    十年專注單片機(jī)方案開(kāi)發(fā)的方案公司英銳恩,分享普通I/O口實(shí)現(xiàn)測(cè)量可調(diào)電阻,調(diào)節(jié)LED的閃爍頻率。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運(yùn)算放大器等。

    //引入頭文件*********************************************************
    #include          "delay.h"
    #include          "delay.c"
    #include          "pic1684.h"

    //輸入定義***********************************************************
    #define       Key       RA0                                //按鍵輸入
    #define       InRc      RA1                                //測(cè)量輸入                                  

    //輸出定義***********************************************************
    #define       RcSu      TRISA1                             //輸出設(shè)置

    //公用變量***********************************************************
         unsigned char cycle = 0;                              //計(jì)時(shí)母數(shù)
         unsigned char coune = 0;                              //時(shí)間計(jì)數(shù)

    //*******************************************************************
    //函數(shù)名稱:port_init();
    //輸入?yún)?shù):無(wú)
    //輸出參數(shù):無(wú)
    //功能描述:端口設(shè)置
    //建造日期:2008.07.08
    //*******************************************************************
    void PortInit(void) 

    {
         PORTA = 0x00;                                         //
         PORTB = 0x00;                                         //
      
         TRISA = 0x01;                                         //A 口設(shè)置   
         TRISB = 0x00;                                         //B 口設(shè)置
     }

    //*******************************************************************
    //函數(shù)名稱:IdsInit();
    //輸入?yún)?shù):無(wú)
    //輸出參數(shù):無(wú)
    //功能描述:中斷設(shè)置
    //建造日期:2008.07.08
    //*******************************************************************
    void IdsInit(void)
     {
         OPTION = 0x87;                                        //分頻因子 

     TMR0 = 0x3d;                                          //定時(shí)初值  
         T0IE = 1;                                             //開(kāi)啟定時(shí)       
         GIE = 1;                                              //準(zhǔn)許中斷
     }

    //*******************************************************************
    //函數(shù)名稱:DischargeOut();
    //輸入?yún)?shù):無(wú)
    //輸出參數(shù):無(wú)
    //功能描述:電容放電
    //建造日期:2008.07.08
    //*******************************************************************
    void DischargeOut(void)
     {
         InRc = 0;                                             //置低電平
         RcSu = 0;                                             //開(kāi)始放電

         DelayMs(1);                                           //放電時(shí)間
     }

    //*******************************************************************
    //函數(shù)名稱:SurveyRc();
    //輸入?yún)?shù):無(wú)
    //輸出參數(shù):充電時(shí)間
    //功能描述:測(cè)量充電時(shí)間
    //建造日期:2008.07.08
    //*******************************************************************
    unsigned char SurveyRc(void) 

     {
         unsigned char count = 0;                              //時(shí)間計(jì)數(shù)
         
         DischargeOut();                                       //電容放電
         RcSu = 1;                                             //輸入設(shè)置
        
         while (!InRc) 
          {
           count++;                                            //開(kāi)始計(jì)時(shí)
           if (count == 100) break;                            //最大限時(shí)  
          }
        
         return count;                                         //返回時(shí)間 
     }

    //******************************************************************* 

    //函數(shù)名稱:DataAdd(*buffer, size);
    //輸入?yún)?shù):緩沖區(qū)首址, 大小
    //輸出參數(shù):數(shù)據(jù)總和
    //功能描述:緩沖區(qū)所有數(shù)據(jù)相加
    //建造日期:2008.07.08
    //*******************************************************************
    unsigned int DataAdd(unsigned char *buffer, unsigned char size)
     {
         unsigned int add;
         unsigned char i;
         
         add = 0;                                              //數(shù)據(jù)清零
     
         for (i = 0; i < size; i++)
          {
           add += buffer[i];                                   //數(shù)據(jù)相加
          }
      
         return add;                                           //返回總和                   
     }

    //******************************************************************* 

    //函數(shù)名稱:DataMax(*buffer, size);
    //輸入?yún)?shù):緩沖區(qū)首址, 大小
    //輸出參數(shù):數(shù)據(jù)最大值
    //功能描述:選出緩沖區(qū)最大值
    //建造日期:2008.07.08
    //*******************************************************************
    unsigned char DataMax(unsigned char *buffer, unsigned char size)
     {
         unsigned char max, i;
         
         max = buffer[0];                                      //假設(shè)最大
         
         for (i = 1; i < size; i++)
          {
           if (max < buffer[i]) max = buffer[i];               //對(duì)比最大 
          }
      
         return max;                                           //最大數(shù)據(jù)                   
     }

    //*******************************************************************
    //函數(shù)名稱:DataMin(*buffer, size); 

    //輸入?yún)?shù):緩沖區(qū)首址, 大小
    //輸出參數(shù):數(shù)據(jù)最小大值
    //功能描述:選出緩沖區(qū)最小值
    //建造日期:2008.07.08
    //*******************************************************************
    unsigned char DataMin(unsigned char *buffer, unsigned char size)
     {
         unsigned char min, i;
         
         min = buffer[0];                                      //假設(shè)最小
         
         for (i = 1; i < size; i++)
          {
           if (min > buffer[i]) min = buffer[i];               //對(duì)比最小 
          }
      
         return min;                                           //最小數(shù)據(jù)
     }

    //*******************************************************************
    //函數(shù)名稱:DataEqually(idend, isor);
    //輸入?yún)?shù):被除數(shù),除數(shù)
    //輸出參數(shù):平均值
    //功能描述:使所數(shù)據(jù)相等
    //建造日期:2008.07.08
    //*******************************************************************
    unsigned char DataEqually(unsigned int idend, unsigned char isor)
     {
         return (idend / isor);                                //數(shù)據(jù)平均 

    //*******************************************************************
    //函數(shù)名稱:FilterData(); 
    //輸入?yún)?shù):無(wú) 
    //輸出參數(shù):平均值 
    //功能描述:取樣平均濾波
    //建造日期:2008.07.08
    //*******************************************************************
    unsigned char FilterData(void)
     {
         unsigned char i, max, min, data[10];
         unsigned int sum;
      
         for (i = 0; i < 10; i++) data[i] = SurveyRc();        //收集數(shù)據(jù) 

       sum = DataAdd(data, 10);                              //數(shù)據(jù)相加
         max = DataMax(data, 10);                              //取最大值
         min = DataMin(data, 10);                              //取最小值

         return (DataEqually((sum - max - min), 8));           //取平均值             
     }  

    //*******************************************************************
    //函數(shù)名稱:MonitorRC();
    //輸入?yún)?shù):無(wú)
    //輸出參數(shù):無(wú)
    //功能描述:監(jiān)測(cè)電位器
    //建造日期:2008.07.08
    //*******************************************************************
    void MonitorRC(void)
     {   
         static unsigned char value[8]; 
         unsigned char i, update;
         
         update = DataEqually((DataAdd(value, 8)), 8);         //數(shù)據(jù)平均

         if (update != cycle)                                  //數(shù)據(jù)變動(dòng)
          {
           cycle = update;                                     //更新周期
           coune = 0;                                          //計(jì)數(shù)清零 
          }  
        
         for (i = 0; i < 7; i++) value[i] = value[i + 1];      //數(shù)據(jù)左移 

    value[7] = FilterData();                              //采集數(shù)據(jù)
     }
     
    //*******************************************************************
    //函數(shù)名稱:TimeInt();
    //輸入?yún)?shù):無(wú)
    //輸出參數(shù):無(wú)
    //功能描述:定時(shí)中斷服務(wù)
    //建造日期:2008.07.08
    //*******************************************************************
    void interrupt TimeInt(void)
     {   
         coune++;                                              //周期遞增
          

      if (coune == cycle)                                   //是否相等
          {
           coune = 0;                                          //周期清零
           PORTB ^= 0x80;                                      //輸出指示
          }  
       
         TMR0 = 0x3d;                                          //定時(shí)初值
         T0IF = 0;                                             //清除標(biāo)志
     }

    //*******************************************************************
    //函數(shù)名稱:main();
    //輸入?yún)?shù):無(wú)
    //輸出參數(shù):無(wú)
    //功能描述:主要程序
    //建造日期:2008.07.08
    //*******************************************************************
    void main(void)
     {   
         PortInit();                                           //腳位設(shè)置
         IdsInit();                                            //中數(shù)設(shè)置

         while (1)
          {
           MonitorRC();                                        //啟動(dòng)監(jiān)測(cè)
           DelayMs(5);                                         //監(jiān)測(cè)周期
          }  
     } 

    (文源網(wǎng)絡(luò),侵刪)

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频
  • <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>