读取是很容易的
#include "HC89S103K6T6.h"
void ADC_Init(void) {
// 设置ADC时钟和采样时间
ADC_CFG = 0x01; // 选择ADC通道1
ADC_CK = 0x03; // 设置时钟分频
ADC_ST = 0x0F; // 设置采样时间
ADC_CR = 0x01; // 使能ADC
}
uint16_t Read_ADC_Value(void) {
// 启动ADC转换
ADC_CR |= 0x02; // 启动转换
while (!(ADC_SR & 0x01)); // 等待转换完成
return ADC_DR; // 返回转换结果
}
void main(void) {
uint16_t adc_value;
ADC_Init(); // 初始化ADC
while (1) {
adc_value = Read_ADC_Value(); // 读取ADC值
// 处理adc_value,例如转换为实际物理量
Delay_ms(500); // 延时500ms
}
}
|