实验6 ADC
扫描二维码
随时随地手机看文章
ADC,Analog-to-Digital Converter的缩写,指模/数转换器或者模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。
我们现在学习ADC模块是将介于0V~5V之间的电压值转换成0~1023的数值。STM8S105K4有7个ADC通道,分别对应PB0~PB5、PF4引脚。
如上图所示,该元件是可调电阻,或者叫电位器,103表示10*10^3Ω,即10k欧姆,电位器1脚和2脚之间的阻值为10K,旋转电位器可改变1脚和3脚或者2脚和3脚之间的阻值。1脚接5V,2脚接GND,旋转电位器,可以改变3脚输出的电压。
一、库函数1、打开DAHUME MINI.stw文件;
2、在STVD左侧Workspace窗口Source Files目录下找到main.c,双击打开;
3、编写如下代码;
#include "main.h"
unsigned int a;
void setup(void)
{
delay(10);
CLOCK(_16MHz);
}
main()
{
setup();
while (1)
{
a = analogRead(0);
}
}
定义了无符号16位全局变量a。unsigned int analogRead(char channel);函数返回ADC指定通道的模数转换结果,参数channel可为0~5或者PB0~PB5、PF4。
a = analogRead(0);是将PB0引脚上的模拟量转换成数字量,在赋值给全局变量a。
4、编译、仿真;
5、在菜单栏第二行找到眼镜的图标,即QuickWatch,或者Shift+F9,跳出QuickWatch对话框,在输入栏输入a,点击Add Watch按钮,将会在下方出现Watch窗口;
6、右击Watch窗口任意处,点击Read/Write On Fly;
7、点击菜单栏第三行Run按钮;
8、旋转电位器,Watch窗口里a的值也跟着变化。
QuickWatch只能在程序非运行状态下添加监视对象,监视对象可为全局变量、全局数组、寄存器等,刷新时间为1秒。
二、练习1、用PB0连接的电位器控制LED1的亮度,亮度等级为255级。