|
楼主 |
发表于 2013-9-12 15:55:08
|
显示全部楼层
经过楼上两位大神的指正,我重新改正后编译下载调试,结果还是一样,LED长亮,不会随电位器的调整而亮灭。
还请大神们帮我再看看程序哪里出问题了。
#include <HIC.h>
#include <HR7P90H.h>
#define unchar unsigned char
section1 unchar ADC_RESULT_L;
section1 unchar ADC_RESULT_H;
void main()
{
PCT3 = 0; //PC口输出,用以AD转换结果显示
PAT2 = 1; //PA2输入,用以AD输入
ANSEL = 0B11111011; //选择AIN2通道(PA2口)为模拟IO
ADCCH=0B00000010; //ADCCH控制寄存器设置: (BIT7-BIT4)设置AIN11-AIN8通道数模IO切换。
//(BIT3-BIT2)----。
//(BIT1) ADFM=(0 左对齐, 1 右对齐)。
//(BIT0) ADVREF=(1 外部参考, 0 内部VDD作为参考电压) 。
ADCCL=0B00100101; //ADCCL控制寄存器设置: (BIT7-BIT4)设置ADCHSx ADC模块输入通道选择。
//(BIT3-BIT2)设置ADCSx ADC时钟选择位: 00--FOSC, 01--FOSC/4, 10--FOSC/16, 11--内部NC时钟(250K HZ)。
//(BIT1) 设置ADTRG转换状态位:0--AD未进行转换或已经转换完成, 1--AD正在进行转换,该位置1启动ADC转换。
//(BIT0) 设置ADEN模块使能位:0--OFF,1--ON。
_asm
{
NOP;
NOP;
}
ADTRG=1; //使能AIN2通道开始ADC转换
while(1)
{
if(ADTRG==0)
{
//AD转换结果从ADCRH,ADCRL获取
ADC_RESULT_L=ADCRL;
ADC_RESULT_H=ADCRH;
ADTRG=1;
}
PCT3 = ADC_RESULT_L & (1<<3); //将结果的低八位中的第3位送与PC3口
}
}
|
|