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