松翰单片机_SN8F570310——ADC

平台:松翰 SN8F570310

官网:

松翰单片机_SN8F570310——ADC

松翰单片机_SN8F570310——ADC

松翰单片机_SN8F570310——ADC

松翰单片机_SN8F570310——ADC

松翰单片机_SN8F570310——ADC

松翰单片机_SN8F570310——ADC

松翰单片机_SN8F570310——ADC

松翰单片机_SN8F570310——ADC

松翰单片机_SN8F570310——ADC

松翰单片机_SN8F570310——ADC

代码示例:

#include "Equ.h" /* 硬件: P13 AIN10 */ /* 1 将 ADC 输入通道设置为输入模式(由 PnM 寄存器设置); 2 必须禁止 ADC 输入通道的内部上拉电阻(由 PnUR 寄存器设置); 3 选择和使能 ADC 输入通道(由 CHS[3:0]位和 GCHS 位设置); 4 必须将 ADC 模拟输入通道的控制位设置为 1(由 PnCON 寄存器设置); 5 选择 ADC 高参考电压(由 VREFH 寄存器设置); 6 选择 ADC 时钟频率(由 ADCKS[1:0]位设置); 7 设置 ADENB 位后, ADC 准备开始转换。 */ void adc_init(void) { P1M &= ~0x08; //1.输入模式 P1UR &= ~0x08; //2.禁止上拉 ADM |= 0x8A; //3.选择和使能 ADC 输入通道 1010 P1CON |= 0x08; //4.模拟输入通道的控制位设置为 1 VREFH = 1<<2; //5.高参考电压 VDD ADR = 1<<6 | 2<<4 ; //6.ADC 时钟频率 IEN2 = 3<<1; //开启ADC中断 ADM |= 0X40; //7.开始转换 } void ADCInterrupt(void) interrupt ISRAdc { unsigned int ADCBuffer = 0; // data buffer unsigned long p; if ((IRCON2 &0x01) == 0x01){ IRCON2 &= ~0x01; //清除ADC标志位 ADCBuffer = (ADB << 4) | (ADR &0x0f); for(p=0;p<30000;p++){} for(p=0;p<30000;p++){} S0BUF = ADCBuffer; ADM &= ~0X20; //转换结束,手动清零 ADM |= 0X40; //开始转换 } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgxsg.html