PIC16F73的AD转换问题

2019-03-25 19:37发布

新手入门AD转换 直接将数据在RB口读出 代码如下  #include<pic.h>
  
   #define uint unsigned int
   #define uchar unsigned char
   uint adval,ad;
// void adget(uchar advel);
 void adintial();
 void delay(uint len);
 void initial();
 void display();
    void initial(void)
 {
  TRISA=0X02;
  TRISB=0x00;
 // PORTB=0x00;
 // RBIF=1;
 }
 
 void delay(uint len)
 {
  uint i,d=10;
  i=d*len;
  while(--i)
  {;}
 } 
 
 void adinitial(void)
 {
  ADCON1=0X00;     //AD配置,VDD参考电压
  ADCON0=0X08;     //F/2,AN1模拟输入,AD开
  TRISA1=1;         //RA1 is selectd for the input
  //ADON=1;        //启动AD转换
  ADIF=0;          //清除AD中断允许位
  ADIE=1;          //设置AD中断允许
  PEIE=0;          //AD interrupt enable
  GIE=1;           //全局中断开
  ADON=1;          //start AD conversion
 }
 
 void display()
 {
  TRISB=adval;
 }
 
 //uint adval,ad;
 uchar adget()
 {   delay(100);
 //     waiting(20);
  //ADIF=0;
  ADCON0=0X0D;
  GO=1;
     while(GO);
  adval=ADRES;
  delay(100);
  ad=adval;
  return(adval);
  /*while(GO)
  {
  
  }*/
 }
 
 void main()
 {
  initial();
  while(1)
  {
   adinitial();
   adget();
     
      display();
  }
 
 }
 问题是仿真时只有RB0-RB2和RB7有反应,其他口没反应,请高手指点。 此帖出自小平头技术问答
0条回答

一周热门 更多>