STC8H第15路采样固定输出0X3FF
本帖最后由 liuyuhe 于 2023-5-29 23:40 编辑MCU:STC8H1K08
工作频率:22.118
VCC:5V
ADC_VRef+:5V
void GPIO_Init (void)
{
//设置IO端口模式
P0M0 = 0x00; P0M1 = 0x00;
P1M0 = 0x14; P1M1 = 0x03;
P2M0 = 0x00; P2M1 = 0x00;
P3M0 = 0x1c; P3M1 = 0x6c;
P4M0 = 0x00; P4M1 = 0x00;
P5M0 = 0x00; P5M1 = 0x00;
P6M0 = 0x00; P6M1 = 0x00;
P7M0 = 0x00; P7M1 = 0x00;
P1IE = 0xfc;
P3IE = 0x9f;
P_SW2 |= 0x80; //使能XFR
P_SW2 |= 0x30; //切换<i>I2C引脚</i>SCL_4/P3.2, SDA_4/P3.3
}
void ADC_init(void)//串口这么用的采的是第15路 1.19V内置电压
TI = 1;
printf("adc4:%d\n",GitADC(15));
TI = 0;
仿真显示ADCbuff值为 0x3f,串口使用pintf()函数输出的是1024附近的值
int GitADC (unsigned char CH)
{
int ADCbuff;
ADC_RES = 0;
ADC_RESL = 0;
CH &= 0xf0;
ADC_CONTR |= CH;
ADC_CONTR |=0x40;
Delay500us();
ADCbuff = ADC_RES<<8;
return ADCbuff |=ADC_RESL;
}
void ADC_Init(void)
{
ADCTIM = 0x2A; //����ADC�ڲ�ʱ��
ADCCFG = 0x20; //右对齐
ADC_RES = 0;
ADC_RESL = 0;
ADC_CONTR = 0xc0; //ʹ�ܲ�����ADCģ��
}
void ADC_Isr() interrupt 5
{
ADC_CONTR &= ~0x20; //���жϱ�־
}
TI = 1;
//printf("VREF:%d\n",GitADC(0));
//printf("RREF:%d\n",GitADC(1));
//printf("VOUT:%d\n",GitADC(14));
//printf("VIN:%d\n",GitADC(13));
printf("adc4:%d\n",GitADC(15));
TI = 0;
烧录附件例程到芯片里试试,串口1(P3.0,P3.1)打印采样结果,波特率115200,N,8,1。
烧录时, 选择IRC时钟 24MHz 乘风飞扬 发表于 2023-5-30 09:02
烧录附件例程到芯片里试试,串口1(P3.0,P3.1)打印采样结果,波特率115200,N,8,1。
烧录时, 选择IRC时钟...
接收←STC8H系列ADC测试程序!
接收←ADC00=0216
接收←ADC01=0037
接收←ADC02=0000
接收←ADC03=0000
接收←ADC04=0000
接收←ADC05=0000
接收←ADC06=0000
接收←ADC07=0000
接收←ADC08=1023
接收←ADC09=1023
接收←ADC10=1018
接收←ADC11=1018
接收←ADC12=1023
接收←ADC13=0084
接收←ADC14=0967
接收←Bandgap=0243 用例程测试没问题,内部参考电压根据15通道采样值计算出来差不多是1.19V左右:
页:
[1]