3047|0

26

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

PIC16F73的AD转换问题 [复制链接]

新手入门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有反应,其他口没反应,请高手指点。

点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表