新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 可驅動20個LED對數/點狀/條狀的微控制器

        可驅動20個LED對數/點狀/條狀的微控制器

        作者: 時間:2012-01-18 來源:網絡 收藏

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

        圖1這個點狀條狀LED驅動器采用一個低成本微控制器可工作在線性或對數模式


        本文應用要求超出了LM3914提供的靈活性,它使用了一個基于Atmel AVR系列ATTiny13的電路,有1kB程序內存、一個四通道10位ADC,以及6個通用I/O 腳。調整電路的固件就可以實現0 V ~ 5V輸入電壓范圍內的線性或對數型縮放。


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

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

        圖2線性至對數轉換曲線定義了顯示某只LED所需的輸入電壓


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

        參考文獻
        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.



        關鍵詞: 微控制器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大丰市| 阿瓦提县| 电白县| 永年县| 五原县| 萨嘎县| 阜阳市| 怀宁县| 中方县| 明星| 平顶山市| 禄丰县| 旺苍县| 开江县| 贡嘎县| 合山市| 阳春市| 平南县| 延津县| 平和县| 青浦区| 沁水县| 绥德县| 从化市| 五寨县| 金阳县| 五河县| 高碑店市| 喜德县| 邯郸市| 龙泉市| 营口市| 宜章县| 巍山| 崇仁县| 盐池县| 怀化市| 祁东县| 文山县| 千阳县| 连山|