新手入门
- 积分
- 10
- 金钱
- 10
- 注册时间
- 2016-3-25
- 在线时间
- 0 小时
|
2金钱
求指导:昨天写了一个STC15W408AS 片内ADC的应用,但是检测出来的电压一直是0V,检测电压是来自于单片机的供电电源 前面加了L7805CV 模块,电源很稳定。请各位帮忙看看是不是程序出了问题!谢谢
#include<STC15F2K60S2.H>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uint adc_datah,adc_datal;
uint adc_data;
uchar aa,bb,cc;
uchar code dsp_duan[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0x3e,0xe0,0xfe,0xf6};
uchar code dsp_dian[]={0xfd,0x61,0xde,0xf3,0x67,0xb7,0xbf,0xe1,0xff,0xfd};
sbit du=P1^1;
sbit we=P1^0;
void delay1ms() //@11.0592MHz
{
unsigned char i, j;
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
//_____________________________________
void display()
{
du=1;
P3=dsp_dian[aa];
du=0;
P3=0xff;
we=1;
P3=0X7f; //For table[8];
we=0;
delay1ms();
du=1;
P3=dsp_duan[bb];
du=0;
P3=0xff;
we=1;
P3=0XBF;
we=0;
delay1ms();
du=1;
P3=dsp_duan[cc];
du=0;
P3=0xff;
we=1;
P3=0X1F;
we=0;
delay1ms();
delay1ms();
}
void main()
{
uint i;
// uchar status;
P1ASF=0X80;
ADC_CONTR=0X80;
for(i=0;i<10000;i++);
CLK_DIV|=0X20;
ADC_CONTR=0X88;
EADC=1;
EA=1;
while(1)
{
aa=adc_data/1000;
bb=adc_data/100%10;
cc=adc_data%100/10;
display();
}
}
void adc_int() interrupt 5
{
ADC_CONTR=0X80;
adc_datah=ADC_RES&0X03;
adc_datal=ADC_RESL;
adc_data=adc_datah<<8+adc_datal;
adc_data=adc_data*5/1023;
ADC_CONTR=0x8f;
}
|
|