新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 可驅(qū)動20個LED對數(shù)/點(diǎn)狀/條狀的微控制器

可驅(qū)動20個LED對數(shù)/點(diǎn)狀/條狀的微控制器

作者: 時間:2012-01-18 來源:網(wǎng)絡(luò) 收藏

美國國家半導(dǎo)體公司的LM3914點(diǎn)狀/條狀顯示驅(qū)動器已經(jīng)面市20多年了,但仍然在設(shè)計者中廣泛流行。LM3914可以檢測模擬電壓,并使10個 LED顯示,方法是以點(diǎn)狀模式點(diǎn)亮10個LED中的一個,或以條形圖模式逐個點(diǎn)亮LED。最近,一種模擬輸入電壓顯示器的一項(xiàng)應(yīng)用,要求能夠以線性或?qū)?shù)級格式實(shí)現(xiàn)10個以上LED的顯示。根據(jù) LM3914的數(shù)據(jù)資料,可以將多支3914級聯(lián)起來,獲得10個以上LED的顯示(參考文獻(xiàn)1),但即使這么做,LM3914也只能線性地顯示輸入電壓。(編輯注:美國國家半導(dǎo)體還提供 LM3915,這是一款對數(shù)型3dB步長版,而LM3916則適合音頻應(yīng)用,以音量單位顯示輸入。)

圖1這個點(diǎn)狀條狀LED驅(qū)動器采用一個低成本微控制器可工作在線性或?qū)?shù)模式


本文應(yīng)用要求超出了LM3914提供的靈活性,它使用了一個基于Atmel AVR系列ATTiny13的電路,有1kB程序內(nèi)存、一個四通道10位ADC,以及6個通用I/O 腳。調(diào)整電路的固件就可以實(shí)現(xiàn)0 V ~ 5V輸入電壓范圍內(nèi)的線性或?qū)?shù)型縮放。


圖1中的電路以20個連續(xù)顯示輸入電壓。當(dāng)開關(guān)S1關(guān)閉時,即將顯示凍結(jié)在當(dāng)時的電流水平讀數(shù)。6個I/O腳中的5個控制著所有20個LE D和開關(guān)。剩下的I/O腳配置為一個 ADC 輸入通道,負(fù)責(zé)接收模擬輸入電壓。采用 Charlieplexing,這是一種用I/O線驅(qū)動多達(dá)N×(N-1)個LED的方法,這樣只用5個I/O腳就可以驅(qū)動20個 LED(參考文獻(xiàn)2 ~ 4)。

固件以C語言編寫,并用AVR-GCC編譯,這是一個以Windows和Linux版提供的免費(fèi)C編譯器和匯編器。它使用運(yùn)行在中斷驅(qū)動自由模式的 Tiny13內(nèi)部 10 位 ADC,將模擬輸入電壓轉(zhuǎn)換為一個數(shù)字值。每次轉(zhuǎn)換完成時,ADC 產(chǎn)生一個由子程序讀出的中斷,中斷將 ADC 轉(zhuǎn)換輸出保存在一個共享變量中。

圖2線性至對數(shù)轉(zhuǎn)換曲線定義了顯示某只LED所需的輸入電壓


為了產(chǎn)生無閃爍的顯示,一個內(nèi)部定時器從一個9.6MHz系統(tǒng)時鐘產(chǎn)生一個1875Hz中斷,以大于90Hz的速率驅(qū)動多路輸出的 LED。將ADC計數(shù)除以一個常數(shù)即得到輸入電壓的一個線性顯示。用一個查找表縮放ADC計數(shù)就產(chǎn)生一個對數(shù)顯示。圖2表示確定該查找表值的對數(shù)轉(zhuǎn)換曲線。用于線性和對數(shù)縮放的 ATTiny13控制程序版本都可以從本設(shè)計實(shí)例處下載??梢詫@些源碼作修改,而只顯示0V ~ 5V輸入電壓中的某個子區(qū)間。例如,可以設(shè)定1V ~ 3V的線性顯示范圍,或2V ~ 3V輸入電壓的對數(shù)縮放。

參考文獻(xiàn)
1. LM3914 data sheet.
2. Lancaster, Don, "Tech Musings," August 2001.
3. "Charlieplexing: Reduced Pin-Count LED Multiplexing," Maxim Application Note 1880, Feb 10, 2003.
4. Benabadji, Noureddine, "PIC microprocessor drives 20-LED dot- or bar-graph display," EDN, Sept 1, 2006, pg 71.



關(guān)鍵詞: 微控制器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉