驅(qū)動(dòng)20個(gè)對(duì)數(shù)/線性點(diǎn)/柱狀LED的微控制器
掃描二維碼
隨時(shí)隨地手機(jī)看文章
自做模擬電路到LM3914顯示驅(qū)動(dòng)為用戶提供可編程性。
美國國家半導(dǎo)體公司的老產(chǎn)品LM3914點(diǎn)/柱狀顯示驅(qū)動(dòng)器已面市20多年了,但仍被廣泛應(yīng)用。LM3914可以感知模擬電壓,并通過點(diǎn)狀模式點(diǎn)亮10個(gè)LED中的一個(gè),或以柱形圖模式逐個(gè)點(diǎn)亮LED的方法,顯示電壓大小。
最近,有個(gè)應(yīng)用需要顯示模擬輸入電壓,要求具有線性或?qū)?shù)刻度格式下10個(gè)以上等級(jí)的LED顯示。根據(jù) LM3914的數(shù)據(jù)手冊(cè),可以將多個(gè)3914級(jí)聯(lián),從而獲得10個(gè)以上LED的顯示(參考文獻(xiàn)1),但即使這么做,LM3914也只能線性顯示輸入電壓。(編輯注:美國國家半導(dǎo)體還提供 LM3915,這是一款對(duì)數(shù)型3dB步長(zhǎng)版,而LM3916適于音頻應(yīng)用,以音量單位顯示輸入。)
本應(yīng)用的要求超出LM3914提供的靈活性,使用一個(gè)基于Atmel AVR系列ATTiny13微控制器電路,其具有1kB程序存儲(chǔ)器、一個(gè)四通道10位ADC,以及6個(gè)通用I/O 口。調(diào)整電路固件就可以實(shí)現(xiàn)0~5V輸入電壓范圍內(nèi)的線性或?qū)?shù)型轉(zhuǎn)換。
圖1中電路以20個(gè)LED連續(xù)顯示輸入電壓。當(dāng)開關(guān)S1關(guān)閉時(shí),將顯示凍結(jié)在其后電流水平的讀數(shù)上。微控制器6個(gè)I/O口中的5個(gè)控制著所有20個(gè)LED和開關(guān)。剩下的I/O口配置成ADC輸入通道,接收模擬輸入電壓。微控制器采用 Charlieplexing的方法(這是一種用I/O口線驅(qū)動(dòng)多達(dá)N×(N-1)個(gè)LED的方法),只用5個(gè)I/O口就可以驅(qū)動(dòng)20個(gè) LED(參考文獻(xiàn)2 ~ 4)。
固件用C語言編寫,并用AVR-GCC編譯,這是Windows和Linux版本下C和匯編編譯器的免費(fèi)軟件。它使用可自由運(yùn)