ADC,Analog-to-Digital Converter的縮寫,指模/數(shù)轉(zhuǎn)換器或者模數(shù)轉(zhuǎn)換器。是指將連續(xù)變化的模擬信號轉(zhuǎn)換為離散的數(shù)字信號的器件。真實世界的模擬信號,例如溫度、壓力、聲音或者圖像等,需要轉(zhuǎn)換成更容易儲存、處理和發(fā)射的數(shù)字形式。
我們現(xiàn)在學習ADC模塊是將介于0V~5V之間的電壓值轉(zhuǎn)換成0~1023的數(shù)值。STM8S105K4有7個ADC通道,分別對應PB0~PB5、PF4引腳。
如上圖所示,該元件是可調(diào)電阻,或者叫電位器,103表示10*10^3Ω,即10k歐姆,電位器1腳和2腳之間的阻值為10K,旋轉(zhuǎn)電位器可改變1腳和3腳或者2腳和3腳之間的阻值。1腳接5V,2腳接GND,旋轉(zhuǎn)電位器,可以改變3腳輸出的電壓。
一、庫函數(shù)1、打開DAHUME MINI.stw文件;
2、在STVD左側(cè)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);函數(shù)返回ADC指定通道的模數(shù)轉(zhuǎn)換結(jié)果,參數(shù)channel可為0~5或者PB0~PB5、PF4。
a = analogRead(0);是將PB0引腳上的模擬量轉(zhuǎn)換成數(shù)字量,在賦值給全局變量a。
4、編譯、仿真;
5、在菜單欄第二行找到眼鏡的圖標,即QuickWatch,或者Shift+F9,跳出QuickWatch對話框,在輸入欄輸入a,點擊Add Watch按鈕,將會在下方出現(xiàn)Watch窗口;
6、右擊Watch窗口任意處,點擊Read/Write On Fly;
7、點擊菜單欄第三行Run按鈕;
8、旋轉(zhuǎn)電位器,Watch窗口里a的值也跟著變化。
QuickWatch只能在程序非運行狀態(tài)下添加監(jiān)視對象,監(jiān)視對象可為全局變量、全局數(shù)組、寄存器等,刷新時間為1秒。
二、練習1、用PB0連接的電位器控制LED1的亮度,亮度等級為255級。