圖1中的電路是以前一個設(shè)計實例的擴展(在無內(nèi)置ADC的微控制器中如何使用模擬輸入),并參考了另一篇設(shè)計實例(不用外接開關(guān)晶體管如何驅(qū)動一個七段LED顯示屏)介紹的技巧(參考文獻1和參考文獻2)。
本電路增加了一個串行連接,只需要一個雙絞線對就可以向一臺兼容PC發(fā)送每個測量值。串行連接采用微軟的HyperTerminal作測試,其配置是:115200波特;8、N、1;無數(shù)據(jù)流控制。
簡單地說,軟件每次通過RA0和RB7兩根線,驅(qū)動一只七段 LED 顯示器。將RA0輸出設(shè)為高,RB7作為輸入,可激活共陽極顯示器DS3。設(shè)RA0輸出為低,RB7作為輸入,激活共陰極顯示器 DS2。用RA0作輸入時,設(shè)RB7輸出為高,可激活共陽極顯示器DS1,而設(shè)RB7輸出為低,則激活共陰極顯示器DS0。當依次地激活一個顯示器時,只有RB0~RB6 的一條線被置為輸出,驅(qū)動一個LED段。這種設(shè)計不再限于3V或更低的 VDD,因為LED是并行反向連接,因此一個二極管的正向電壓限制了另一個二極管的反向電壓。使用的紅色二極管顯示需要1.6V。
圖2是這個設(shè)計實例的一個新發(fā)展。Q1、R5和R6用作一個等
效可變電阻RX,為電容C3充電。此時不是將RX接地,而是連接到微控制器的一個I/O(例如RB0)。如果RB0 是低態(tài)輸出,則第一個模擬通道激活,而測量例程計算出充電高至 66% VDD的脈沖,然后,用一個查尋表將這個時間延遲轉(zhuǎn)換為一個三位數(shù)字的毫伏值。如果要擴展模擬輸入的數(shù)量,可以用并行方式,連接最多七個可變電阻器電路,即每個都連接到C3和一個I/O線上(RB1 ~ RB7)。值得注意的是,I/O線連接到顯示器,也激活或不激活模擬通道。當一個模擬輸入通道被輸出為低的一個I/O線激活時,其它線為高阻抗輸入,所有其它通道不激活。同時,顯示被關(guān)閉。
圖1電路亦在不增添元件情況下增加了一個簡單的串行連接。如果你將兩條I/O線RA1和RA2作輸出,連接到一個RS-232連接器的RXD(2 腳)和GND(5腳)上,則可以通過軟件,復(fù)制出相對PC的RS-232端口地的正、負電壓。當RA1為高,RA2為低時,RXD有相對于PC的RS-232端口地的+5V電壓。當RA1為低,RA2為高時,RXD則有相對于PC RS-232 端口地的-5V 電壓。
參考文獻
1. Benabadji, Noureddine, “Microcontroller, JFET form low-cost, two-digit millivoltmeter,” EDN, June 22, 2006, pg 71.
2. Benabadji, Noureddine, “Ultralow-cost, two-digit counter features few components,” EDN, Aug 17, 2006, pg 69.