打印

关于PIC16F877A的AD采样问题

[复制链接]
2384|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
f136025450|  楼主 | 2012-7-5 17:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用中断的方法去采AD值,怎么就只进入一次中断呢?(启动后第一次采的值是正确的,这后在怎么调电位器它显示的值就是不变,除非从新启动),我是按手册写的啊,为什么就采一次呢?请大神看看,谢谢!!
这是代码
#include<htc.h>
#include"display.h"
uint AD_value,a1,a2,a3,a4;
uint temp;
void main()
{
TRISD=0X00;
TRISA=0XFF;
TRISE=0X01; //RE0输入
ADCON1=0b10001001; //0X89设置模拟端口.选择参考电压为VDD,VSS,AN0-AN5为模拟通道
ADCON0=0b01101001; //0X69设置AN5为模拟输入端
ADIF=0;
ADIE=1;  //开AD允许中断
    INTCON=0XC0;
delay(5);
GO_nDONE=1;
while(1)
{
  
  temp=AD_value;
  a1=temp/1000;
  a2=temp%1000/100;
  a3=temp%100/10;
  a4=temp%10;
  display(a4,a3,a2,a1);
}
}
void interrupt ADpress()
{
float AD_temp;
AD_value=ADRESH;
AD_value=(AD_value<<8)|ADRESL;
AD_temp=AD_value/1023.0*5.0;
AD_value=AD_temp*1000;
ADIF=0; //软件清除AD标志位
}
沙发
f136025450|  楼主 | 2012-7-6 08:26 | 只看该作者
中断后GO_nDONE没有置1.。

使用特权

评论回复
板凳
yewuyi| | 2012-7-6 08:42 | 只看该作者
具体请参考数据中相关章节,此类问题不需要请教别人,只要自己仔细读手册就行了。

使用特权

评论回复
地板
wylbw| | 2012-8-3 09:51 | 只看该作者
GO_nDONE是什么东东???

使用特权

评论回复
5
hww5408| | 2014-5-5 11:59 | 只看该作者
123

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

34

帖子

1

粉丝