<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          PIC16F877A的AD學(xué)習(xí)

          作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò) 收藏
          今天晚上開(kāi)始編寫(xiě)ADC程序!

          下面是一個(gè)3*3AD鍵盤(pán)的原理圖

          本文引用地址:http://www.ex-cimer.com/article/201611/317654.htm

          程序的頭文件

          #ifndef ADC_H
          #define ADC_H

          #include "main.h"
          void init_adc() ;
          char get_key() ;

          #endif
          子程序

          #include "adc.h"
          void init_adc()
          {
          //定義端口方向
          TRISA0=1 ;
          ADCS1=0 ;//選擇系統(tǒng)時(shí)鐘
          ADCS0=0 ;
          //選擇通道RA0 ;
          //CH2=0 ;
          //CH1=0 ;
          //CH3=0 ;
          bitclr(ADCON0,5) ;
          bitclr(ADCON0,4) ;
          bitclr(ADCON0,3) ;
          ADON=1 ;//AD就緒
          ADFM=0 ;

          }
          char get_key()
          { char adata=0;
          ADGO=1;
          while(ADGO);
          if(ADRESH>0xcb)
          adata=1;
          else if(ADRESH>0xa8)
          adata=2;
          else if(ADRESH>0x8f)
          adata=3;
          else if(ADRESH>0x7d)
          adata=4;
          else if(ADRESH>0x6f)
          adata=5;
          else if(ADRESH>0x63)
          adata=6;
          else if(ADRESH>0x5a)
          adata=7;
          else if(ADRESH>0x53)
          adata=8;
          else if(ADRESH>0x4c)
          adata=9;
          else
          adata=0;

          return adata;

          }
          主程序

          #include
          #include
          #include

          #include "main.h"
          #include "t232.h"
          #include "adc.h"
          #include "lcd.h"

          bank1 char temp ;
          bank1 char t1 ;
          bank1 char dat[6] ;
          bank1 char key_data=0 ;


          void init_all()
          {
          init_adc() ;
          init_232() ;
          init_lcd() ;
          }

          void main()
          {
          init_all() ;
          while(1)
          {
          key_data=0 ;
          while(key_data==0)
          {
          key_data=get_key() ;
          }
          temp=get_key() ;
          if(temp==key_data)
          {
          while(key_data)
          {
          key_data=get_key() ;
          }
          t1=temp+0x30 ;
          sprintf(dat,"key%c",t1) ;
          send_str(dat) ;

          }
          }
          }
          將讀取的鍵盤(pán)數(shù)值傳送到上位機(jī)!

          經(jīng)測(cè)試發(fā)現(xiàn)AD鍵盤(pán)不是很好用,容易出現(xiàn)按鍵錯(cuò)誤,不是很穩(wěn)定,所以實(shí)際當(dāng)中最好不要使用AD鍵盤(pán),打算使用zlg7290鍵盤(pán)來(lái)作鍵盤(pán)和顯示!



          關(guān)鍵詞: PIC16F877AAD學(xué)

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();