云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > STM8教程-第十五章 STM8S207ADC 及其应用

STM8教程-第十五章 STM8S207ADC 及其应用

  • 62 次阅读
  • 3 次下载
  • 2026/1/23 22:01:50

第十五章 STM8S207ADC 及其应用

在计算机过程控制的数据采集等系统中,经常要对一些过程参数进行测量和控制,这些参数往往是连续变化的物理量,如温度,压力,流量和速度等。这里所指的连续变化即数值是随着时间连续可变的,通常称这些物理量为模拟量,然而计算机本身所能识别和处理的都是数字量。这些模拟量在进入计算机之前必须转换成二进制数码表示的数字信号。能够把模拟量变成数字量的器件称之为模数转换器。

15.1 STM8S207ADC 模块概述

STM8S207 系列高性能产品包括了一个 10 位连续渐进式模数转换器 ADC2,(注意 STM8S2XX 都没有 ADC1)提供了多达 16 个多功能的输入通道。主要性能有:转换时间为 14 个时钟周期,带有参考电压引脚,可设置为单次或联系的转换模式,可设置转换结束产生中断。

15.2 ATD 模块接口组成和特点

STM8S207 单片机内置的 ADC 模块如下图所示:

ADC 模块可以通过 ADC_CR1 寄存器来开启或者关闭。然后 ADC 的时钟是有f_master 时钟经过预分频后提供的。STM8S207 高达 16 个输入通道,支持多种转换模式

15.3 ADC 模块寄存器设置

STM8S207 的 ADC 模块共有 8 个寄存器。分为 4 个设置寄存器,2 个数据寄存器和 2 个施密特触发禁止寄存器。

15.3.1 ADC 控制/状态寄存器 ADC_CSR

EOC:转换结束。此位在 AD 转换结束后由硬件置位。由软件写“0”来清零 0:转换未结束 1:转换结束

AWD:因为 STM8S207 没有 ADC1,所以此位无效 EOCIE:转换结束 EOC 的中断使能 0:禁止转换结束中断 1:使能转换结束中断

AWDIE:在 STM8S207 中无效位

CH:选择转换通道,分别选择 0 到 15 共 16 个通道

15.3.2 ADC 配置寄存器 1 ADC_CR1

SPSEL:预分频选择位 000:f_adc = f_master/2 001:f_adc = f_master/3 010:f_adc = f_master/4 011:f_adc = f_master/6 100:f_adc = f_master/8 101:f_adc = f_master/10 110:f_adc = f_master/12 111:f_adc = f_master/18 CONT:连续转换 0:单次转换模式 1:连续转换模式 ADON:AD 转换开关

0:禁止 ADC 转换,进入低功耗模式 1:使能 ADC 并开始转换

需要注意的是:如果此位是 0 时,并且写 1 到此位,那么将把 ADC 从低功耗模式下唤醒。如果此位是 1,并且写 1 到此位,那么将启动 AD 转换。一旦 ADC上电,所选通道的 IO 输出功能就被禁用了。

15.3.3 ADC 配置寄存器 2 ADC_CR2

EXTTRIG:外触发使能位 0:禁止外部触发转换 1:使能外部触发转换

注意:为了避免错误的触发事件,使用 BSET 指令来设置 EXTTRIG 位,不用改变其它位 EXTSEL:外部事件选择位

00:内部定时器 1TRG 事件 01:ADC_ETR 引脚的外部中断 10:保留 11:保留

ALIGN:数据排列

0:数据左对齐。高 8 位在 ADC_DRH,其余的在低位字节 1:数据右对齐。低 8 位在 ADC_DRL,其余的在高位字节 SCAN:STM8S207 无效

15.3.4 ADC 配置寄存器 3 ADC_CR3

STM8S207 此寄存器无效

15.3.5 ADC 数据寄存器 ADC_DRH、ADC_DRL

根据 ADC_CR2 中的 ALIGN 设置数据对齐方式,ADC_DRH 和 ADC_DRL 存放这转换结果。

15.3.6 ADC 施密特触发器禁止寄存器 ADC_TDRH、ADC_TDRL

这些位由软件设置。当 TDx 为 1 时,禁止施密特触发功能,降低 IO 的静态功耗;为 0 时开启施密特触发器。

15.4 ADC 模块基础应用实例

本节通过一个简单示例,让读者掌握 ADC 模块的使用和编程方法。 本实例硬件连接入下图所示,在 STM8S207 实验板中 ADC 的外部输入可以使光敏电阻或者热敏电阻,通过实物图的短路冒可以自行选择。本节 ADC 内容只是简单说明 ADC 的编程实例,通过 ADC 的转换,把高 8 位转换结果作为延时时间,所以通过 LED1 的闪耀程度来判断 ADC 的大小。LED1 的接口是 PD0,实验中使用的 AD 接口是 PF0,也就是 AIN10

程序清单:

#include \ void DelayMS(unsigned int ms); main() {

int i;

// 将PD3设置成推挽输出,以便推动LED PD_DDR = 0x08; PD_CR1 = 0x08; PD_CR2 = 0x00;

// 初始化A/D模块

ADC_CR2 = 0x00; // A/D结果数据左对齐

ADC_CR1 = 0x00; // ADC时钟=主时钟/2=1MHZ // ADC转换模式=单次 // 禁止ADC转换

ADC_CSR = 0x0a; // 选择通道10 for(;;) // 进入无限循环 {

ADC_CR1 = 0x01; // CR1寄存器的最低位置1,使能ADC转换

for(i=0;i<100;i++); // 延时一段时间,至少7uS,保证ADC模块的上电完成 ADC_CR1 = ADC_CR1 | 0x01; // 再次将CR1寄存器的最低位置1 // 使能ADC转换

while((ADC_CSR & 0x80) == 0); // 等待ADC结束 i = ADC_DRH; // 读出ADC结果的高8位 DelayMS(i); // 延时一段时间

PD_ODR = PD_ODR ^ 0x08; // 将PD3反相 } }

// 函数功能:延时函数

// 输入参数:ms -- 要延时的毫秒数,这里假设CPU的主频为2MHZ // 输出参数:无 // 返 回 值:无 // 备 注:无

void DelayMS(unsigned int ms) {

unsigned char i; while(ms != 0) {

for(i=0;i<250;i++); for(i=0;i<75;i++); ms--; } }

编译下载下载后选择光敏电阻作为输入,有光照和没光照时 LED 的闪耀程度不一样,证明 ADC 模块正常工作了。而验证的结果是当光敏电阻对着光照时,电阻变小,采样电压

变大了,所以高 8 位转换数据也变大,因此 LED 闪耀频率变小。

搜索更多关于: STM8教程-第十五章 STM8S207ADC 及其应用 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

第十五章 STM8S207ADC 及其应用 在计算机过程控制的数据采集等系统中,经常要对一些过程参数进行测量和控制,这些参数往往是连续变化的物理量,如温度,压力,流量和速度等。这里所指的连续变化即数值是随着时间连续可变的,通常称这些物理量为模拟量,然而计算机本身所能识别和处理的都是数字量。这些模拟量在进入计算机之前必须转换成二进制数码表示的数字信号。能够把模拟量变成数字量的器件称之为模数转换器。 15.1 STM8S207ADC 模块概述 STM8S207 系列高性能产品包括了一个 10 位连续渐进式模数转换器 ADC2,(注意 STM8S2XX 都没有 ADC1)提供了多达 16 个多功能的输入通道。主要性能有:转换时间为 14 个时钟周期,带有参考电压引脚,可设置为单次或联系的转换模式,可设置转换结束产生中断。 15.

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com