在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

  • <dfn id="79stg"></dfn>
    <object id="79stg"><div id="79stg"><label id="79stg"></label></div></object>
    <ruby id="79stg"><dl id="79stg"><noscript id="79stg"></noscript></dl></ruby>

      新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC16F877A的AD學(xué)習(xí)

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

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

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

      本文引用地址:http://www.biyoush.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) ;

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

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



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

      評(píng)論


      技術(shù)專區(qū)

      關(guān)閉