以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!
大部分STM8内部带有AD,本节以使用STM8S105的内部AD为例,给出AD转换中断程序。
|
AD转换值低位,LED控制电路原理图
AD转换值高位,LED控制电路原理图
|
/*********************************************************************
微 雪 电 子 WaveShare http://www.waveShare.net
目标系统: 基于STM8单片机
应用软件: Cosmic CxSTM8
说 明: 若用于商业用途,请保留此段文字或注明代码来源
深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权
*********************************************************************/
#include <stm8s207s8.h>
void Init_AD(void)
{
ADC_CSR=0x09; //选择通道
ADC_CR2|=0x08; // 数据排列,右对齐
ADC_TDRL=0x20;
}
void main(void)
{
PB_DDR = 0xff;
PB_CR1 = 0xff;
PB_CR2 = 0x00;
PD_DDR = 0xff;
PD_CR1 = 0xff;
PD_CR2 = 0x00;
PE_DDR &= (~0x40);
Init_AD();
while (1)
{
ADC_CR1|=0x01;
for(i=0;i<100;i++); // 延时一段时间,至少7uS,保证ADC模块的上电完成
ADC_CR1|=0x01; // 再次将CR1寄存器的最低位置1,开启AD转换
while((ADC_CSR & 0x80)!=0x80); // 等待转换结束
PB_ODR=ADC_DRH;
PD_ODR=ADC_DRL;
ADC_CSR&=(~0x80);
}
}
|
用LED显示AD转换值,调“ADJ0.AD0”的可调电阻可改变AD转换值,观察它的变化。
|
STM8 AD转换
——