读取是很容易的
- #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
- }
- }
|