01-110903-0102-基于單片機的廣告燈控制系統(tǒng)設(shè)計論文_第1頁
01-110903-0102-基于單片機的廣告燈控制系統(tǒng)設(shè)計論文_第2頁
01-110903-0102-基于單片機的廣告燈控制系統(tǒng)設(shè)計論文_第3頁
01-110903-0102-基于單片機的廣告燈控制系統(tǒng)設(shè)計論文_第4頁
01-110903-0102-基于單片機的廣告燈控制系統(tǒng)設(shè)計論文_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、摘 要廣告燈是用于廣告匾,樓宇裝飾和戶外裝潢的燈具,近來隨著國家經(jīng)濟的迅速發(fā)展,人民物質(zhì)文化生活水平的不斷提高,對于裝飾的美化美觀的要求也越來越高,廣告燈的越來越多的出現(xiàn)在個人們的視野中。近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入,同時自動控制系統(tǒng)日新月益更新。本文結(jié)合國內(nèi)外霓虹燈控制技術(shù)的發(fā)展狀況設(shè)計了一種采用美國ATMEL公司生產(chǎn)的AVR系列單片機中的ATmega8作控制芯片的霓虹燈控制器通過ATmega8芯片控制驅(qū)動電路,在由驅(qū)動電路驅(qū)動繼電器,而繼電器則作為霓虹燈的功率控制。其中,與別的產(chǎn)品在設(shè)計上不同的是,功率控制板塊采用的是繼電器陣列,而不是通常用的可控硅,將繼電器陣

2、列模塊化,電路的設(shè)計條理也很清晰,既方便檢查線路故障,有方便技術(shù)維修。該板塊的設(shè)計也是本次設(shè)計的重點和難點。另外,文中還介紹了電源電路、PC機與單片機的通訊接口電路的設(shè)計原理。軟件設(shè)計部分采用的是ICC-AVR環(huán)境下的C語言進行編寫程序,使用AVR Studio進行仿真說明。本文設(shè)計的霓虹燈單片機控制器,電路簡單,抗干擾性強,圖案變化方式多,可適用于各種霓虹燈牌面,可根據(jù)用戶的要求,通過修改軟件,控制多種多樣花樣的變化,是一代新型的霓虹燈控制器。關(guān)鍵字:霓虹燈;控制器;繼電器;ATmega8 目錄摘 要1目錄2一 系統(tǒng)方案論證與比較4方案一:使用CD4060與KD5603作為主控制器4方案二:

3、NE555與CD4541作為主控制器5方案三:采用LED點陣與ATmega8作為主驅(qū)動器6二 元器件簡介81.主控芯片ATmega8簡介8(1)產(chǎn)品特性8(2)外設(shè)特點9(3)特殊的處理器特點9(4)I/O 和封裝9(5)工作電壓9(6)速度等級10(7)引腳說明11(8)ATmega8狀態(tài)寄存器12(9)通用寄存器13(10)堆棧指針14(11)復位與中斷152. 點陣顯示器16(1)8*8點陣原理圖16(2)8*8點陣實物圖17(3)8*8點陣掃描方式17(4)8*8點陣應用舉例173.驅(qū)動芯片4-16譯碼器CC451419(1)推薦工作條件19(2)工作溫度范圍19(3)極限值19三 廣

4、告控制器系統(tǒng)設(shè)計211.系統(tǒng)硬件設(shè)計21(1)主控制器ATmega821(2)點陣掃描驅(qū)動電路212.系統(tǒng)軟件設(shè)計22(1)程序流程圖22(2)程序清單23一 系統(tǒng)方案論證與比較方案一:使用CD4060與KD5603作為主控制器這是一例變色廣告燈自動控制電路,它采用了兩種控制方式:光控方式,白天自動關(guān)閉,夜晚自動開啟;時間控制方式,夜晚自動開啟后,通過定時控制 使其在預定的時間自動關(guān)閉,以節(jié)約電能。在廣告燈開啟后,通過控制電路使兩種彩色的廣告燈光交替循環(huán)顯示,增強廣告效果。電路在燈光顯示的同時還伴有廣告 語言,介紹廣告要說明的內(nèi)容,是一種功能較完善的廣告燈控制器。變色廣告燈控制器的電路組成如圖

5、6-45 所示。電路工作原理分析變色廣告燈控制器電路由光控電路、時間控制電路、語言電路、彩燈循環(huán)控制電路和電源電路組成。光控電路是本電路的主控電路,它通過為其余控制電路接通工作電源的方式控制著整個工作電路的開啟時間。光控電路主要由光敏電阻RG 和由VTl 、VT2 組成的直接桐合式晶體管放大電路組成。白天, RG 受光的照射阻值變小, VTl 的基極得到較大的偏置電壓而導通,VT2 則因VTl的導通而截止。IC21C4因無工作電源而停止工作。夜晚來臨時,光照減弱, RG 阻值升高, VTl 截止, VT2 因VTl 的截止而導通, 12V電源經(jīng)VT2 向IC2IC4 提供工作電源,使其進入工作

6、狀態(tài)。時間控制電路的作用是:當夜晚來臨后使電路投入工作,夜深人靜時停止工作,以避免不必要的電源消耗。時間控制電路由一只14 級二進制計數(shù)/分頻電路CD4060 組成。該電路通過外接R4 、C7 組成一個RC 振蕩器,其振蕩周期T= 2. 2R4C7 = LIs 。經(jīng)內(nèi)部14 級分頻(分頻系數(shù)為16384) 后,控制時間約為5 小時( 1. 1 X 16384 =18022s , 18022/36005小時)。當VT2 導通后,電源通過C6 、R3 形成的復位脈沖使CD4060 復位,隨后電路工作,產(chǎn)生脈沖并分頻。在接通電源之初,由于IC2 的腳輸出低電平, VT3 導通,為IC3 及IC4提供

7、工作電源。5 小時后定時結(jié)束,腳輸出高電平, VT3 截止,切斷了IC3 與IC4的工作電源,廣告燈與語言電路因失去控制電源而停止工作。方案二:NE555與CD4541作為主控制器廣告燈控制器由NE555組成的光控及抗干擾電路、CD4541定時電路、繼電器控制、電源電路等部分組成。電原理圖如圖1所示。NE555時基電路接成施密特觸發(fā)器,對光敏電阻RC接收到的信號進行整形和功率放大以后,驅(qū)動后續(xù)電路。當白天有光照時,其第腳輸出低電平,夜晚無光照時輸出高電平。 CD4541是一塊具有振蕩計數(shù)、定時功能的IC,在電路中作為定時控制,各腳功能如表1所示。CD4541工作時,第腳接振蕩電阻,第腳接振蕩電

8、容,第腳接保護電阻,第腳為輸出腳,第腳可選擇第腳的輸出狀態(tài),第腳接低電平為單定時模式,接高電平為循環(huán)定時模式,第12、13腳可設(shè)定時間或設(shè)定輸出頻率,CD4541分頻或計數(shù)次數(shù)如表2所示。220V交流市電經(jīng)R9、C6阻容降壓D2D5整流,C5濾波,WD2穩(wěn)壓,給繼電器提供24V的吸合電壓。此電壓通過R8和WD1穩(wěn)壓,C4濾波,給IC1和IC2提供9.1V的工作電壓。白天,光敏電阻RG阻值很小,通過RG和WR1分壓,NE555第腳電壓大于2/3Vcc,使第腳輸出為低電平,三極管BG1截止。CD4541第腳復位端為高電平,其內(nèi)部計數(shù)器清零復位,第腳輸出端為低電平,BG2截止,繼電器常開觸電斷開,其

9、受控電路不工作。 當夜幕降臨的時候,RG阻值逐漸增大,NE555第腳電位逐漸降低,當小于13Vcc時,NE555第腳輸出端信號翻轉(zhuǎn)為高電平。BG1基極電位升高而導通,給CD4541第腳提供一個由高電平變?yōu)榈碗娖降拿}沖負跳變沿,使內(nèi)部電路開始計數(shù),輸出端第腳輸出高電平。BG2導通,繼電器K1得電,常開觸點閉合,受控電路工作。WR2和C3為CD4541外接振蕩電阻和振蕩電容,當經(jīng)t=32768×2.3RC24871秒時間后,輸出端第腳變?yōu)榈碗娖?。VT2截止,K1的常開觸點失電而斷開,受控電路停止工作。通過微調(diào)WR2,可改變定時時長。此電路對于外界干擾引起的白天瞬間變暗不會導致繼電器誤動作

10、,因為NE555第、腳所接R1和C1組成延時抗干擾電路,當RG阻值瞬間增大時,由于電容C1兩端電壓不能突變,從而保持第腳電位基本不變,第腳輸出仍為低電平。但當RG阻值長時間較大時,C1充電完成后,NE555第腳電壓降低,第腳輸出高電平,從而導致繼電器動作。方案三:采用LED點陣與ATmega8作為主驅(qū)動器數(shù)控廣告燈掃描器有以下主要特點: (1)分體聯(lián)控結(jié)構(gòu):解決了大型廣告燈工程既要求掃描器分體就近安裝又要求掃描器整體調(diào)控的矛盾。 (2)強抗干擾設(shè)計:通過系統(tǒng)軟件的抗干擾處理,避免了廣告燈亂閃及抖動的現(xiàn)象,使版面極為干凈。 (3)自動同步:當遇強干擾造成掃描器不能同步工作時,系統(tǒng)軟件將在1分鐘內(nèi)

11、自動修復。 (4)調(diào)試開關(guān):對于大型廣告燈工程的調(diào)試,這個功能極為有用。 (5)接插件結(jié)構(gòu):整個線路全部采用接插件繪聲結(jié)構(gòu),拆卸簡單,維修方便。圖3 ATmega8與點陣顯示廣告控制系統(tǒng)綜上所述,我們選擇方案三。二 元器件簡介1.主控芯片ATmega8簡介(1)產(chǎn)品特性 高性能、低功耗的 8 位AVR® 微處理器 先進的RISC 結(jié)構(gòu) 130 條指令 大多數(shù)指令執(zhí)行時間為單個時鐘周期 32個8 位通用工作寄存器 全靜態(tài)工作 工作于16 MHz 時性能高達16 MIPS 只需兩個時鐘周期的硬件乘法器 非易失性程序和數(shù)據(jù)存儲器 8K 字節(jié)的系統(tǒng)內(nèi)可編程Flash 擦寫壽命: 10,000

12、 次 具有獨立鎖定位的可選Boot 代碼區(qū) 通過片上Boot 程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程 真正的同時讀寫操作 512 字節(jié)的EEPROM 擦寫壽命: 100,000 次 1K字節(jié)的片內(nèi)SRAM 可以對鎖定位進行編程以實現(xiàn)用戶程序的加密(2)外設(shè)特點 兩個具有獨立預分頻器8 位定時器/ 計數(shù)器, 其中之一有比較功能 一個具有預分頻器、比較功能和捕捉功能的16 位定時器/ 計數(shù)器 具有獨立振蕩器的實時計數(shù)器RTC 三通道PWM TQFP與MLF 封裝的8 路ADC 路10 位ADC 8 路10 位ADC 面向字節(jié)的兩線接口 兩個可編程的串行USART 可工作于主機/ 從機模式的SPI 串行接口 具有獨立片

13、內(nèi)振蕩器的可編程看門狗定時器 片內(nèi)模擬比較器(3)特殊的處理器特點 上電復位以及可編程的掉電檢測 片內(nèi)經(jīng)過標定的RC 振蕩器 片內(nèi)/ 片外中斷源 5種睡眠模式: 空閑模式、ADC 噪聲抑制模式、省電模式、掉電模式及Standby 模式。(4)I/O 和封裝 23個可編程的I/O 口 28引腳PDIP 封裝,32 引腳TQFP 封裝,32 引腳MLF 封裝(5)工作電壓 2.7 - 5.5V (ATmega8L) 4.5 - 5.5V (ATmega8)(6)速度等級 0 - 8 MHz (ATmega8L) 0 - 16 MHz (ATmega8) 4 Mhz 時功耗, 3V, 25°

14、;C 工作模式: 3.6 mA 空閑模式: 1.0 mA 掉電模式: 0.5 A 具有8KB 系統(tǒng)內(nèi)可編程 Flash 的 8 位 微控制器ATmega8引腳圖ATmega8內(nèi)部結(jié)構(gòu)簡圖(7)引腳說明VCC 數(shù)字電路的電源。GND 地。端口B(PB7.PB0)XTAL1/XTAL2/TOSC1/TOSC2端口B 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口B 處于高阻狀態(tài)。通過時鐘選擇熔絲位的設(shè)置, PB6 可作為反向振蕩放大器

15、或時鐘操作電路的輸入端。通過時鐘選擇熔絲位的設(shè)置PB7 可作為反向振蕩放大器的輸出端。若將片內(nèi)標定RC 振蕩器作為芯片時鐘源,且ASSR 寄存器的AS2 位設(shè)置,PB7.6 作為異步 T/C2 的TOSC2.1 輸入端。端口B 的其他功能見P55“ 端口B 的第二功能” 及P 22“ 系統(tǒng)時鐘及時鐘選項” 。端口C(PC5.PC0) 端口C 為7 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口C 處于高阻狀態(tài)。PC6/RESET 若RS

16、TDISBL 熔絲位編程, PC6 作為I/O 引腳使用。注意PC6 的電氣特性與端口C 的其他引腳不同若RSTDISBL 熔絲位未編程,PC6 作為復位輸入引腳。持續(xù)時間超過最小門限時間的低電平將引起系統(tǒng)復位。門限時間見P 35Table 15 。持續(xù)時間小于門限時間的脈沖不能保證可靠復位。端口C 的其他功能見后。端口D(PD7.PD0) 端口D 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口D 處于高阻狀態(tài)。端口D 的其他功

17、能見后。RESET 復位輸入引腳。持續(xù)時間超過最小門限時間的低電平將引起系統(tǒng)復位。門限時間見 P35Table 15 。持續(xù)時間小于門限時間的脈沖不能保證可靠復位。AVCC AVCC 是A/D轉(zhuǎn)換器、端口C (3.0) 及ADC (7.6) 的電源。不使用ADC時,該引腳應直接與VCC 連接。使用ADC 時應通過一個低通濾波器與VCC 連接。注意,端口C (5.4) 為數(shù)字電源, VCC。AREF A/D 的模擬基準輸入引腳。ADC7.6(TQFP 與MLF 封裝) TQFP與MLF封裝的ADC7.6作為A/D轉(zhuǎn)換器的模擬輸入。為模擬電源 且作為10位ADC通道。(8)ATmega8狀態(tài)寄存器

18、狀態(tài)寄存器包含了最近執(zhí)行的算術(shù)指令的結(jié)果信息。這些信息可以用來改變程序流程以實現(xiàn)條件操作。如指令集所述,所有ALU 運算都將影響狀態(tài)寄存器的內(nèi)容。這樣,在許多情況下就不需要專門的比較指令了,從而使系統(tǒng)運行更快速,代碼效率更高。在進入中斷服務程序時狀態(tài)寄存器不會自動保存,中斷返回時也不會自動恢復。這些工作需要軟件來處理。AVR 中斷寄存器 SREG 定義如下: Bit 7 I: 全局中斷使能I 置位時使能全局中斷。單獨的中斷使能由其他獨立的控制寄存器控制。如果I 清零,則不論單獨中斷標志置位與否,都不會產(chǎn)生中斷。任意一個中斷發(fā)生后I 清零,而執(zhí)行RETI指令后I 恢復置位以使能中斷。I 也可以通

19、過SEI 和CLI 指令來置位和清零。 Bit 6 T: 位拷貝存儲位拷貝指令BLD 和BST 利用T 作為目的或源地址。BST 把寄存器的某一位拷貝到T,而BLD 把T 拷貝到寄存器的某一位。 Bit 5 H: 半進位標志半進位標志H 表示算術(shù)操作發(fā)生了半進位。此標志對于BCD 運算非常有用。詳見指令集的說明。 Bit 4 S: 符號位, S = N VS 為負數(shù)標志N 與2 的補碼溢出標志V 的異或。詳見指令集的說明。 Bit 3 V:2 的補碼溢出標志支持2 的補碼運算。詳見指令集的說明。 Bit 2 N: 負數(shù)標志表明算術(shù)或邏輯操作結(jié)果為負。詳見指令集的說明。 Bit 1 Z: 零標志

20、表明算術(shù)或邏輯操作結(jié)果為零。詳見指令集的說明。 Bit 0 C: 進位標志(9)通用寄存器文件寄存器文件針對AVR 增強型 RISC 指令集做了優(yōu)化。為了獲得需要的性能和靈活性,寄存器文件支持以下的輸入/ 輸出方案: 輸出一個 8 位操作數(shù),輸入一個 8 位結(jié)果。 輸出兩個 8 位位操作數(shù),輸入一個 8 位結(jié)果。 輸出兩個 8 位位操作數(shù),輸入一個 16 位結(jié)果。 輸出一個 16 位位操作數(shù),輸入一個 16 位結(jié)果。CPU 32 個通用工作寄存器的結(jié)構(gòu)(10)堆棧指針堆棧指針主要用來保存臨時數(shù)據(jù)、局部變量和中斷/ 子程序的返回地址。堆棧指針總是指向堆棧的頂部。要注意AVR 的堆棧是向下生長的,

21、即新數(shù)據(jù)推入堆棧時,堆棧指針的數(shù)值將減小。堆棧指針指向數(shù)據(jù)SRAM 堆棧區(qū)。在此聚集了子程序堆棧和中斷堆棧。調(diào)用子序和使能中斷之前必須定義堆??臻g,且堆棧指針必須指向高于0x60 的地址空間。使用PUSH指令將數(shù)據(jù)推入堆棧時指針減一;而子程序或中斷返回地址推入堆棧時指針將減二。使用POP 指令將數(shù)據(jù)彈出堆棧時,堆棧指針加一;而用RET 或RETI 指令從子程序或中斷返回時堆棧指針加二。AVR的堆棧指針由I/O空間中的兩個8位寄存器實現(xiàn)。實際使用的位數(shù)與具體器件有關(guān)。請注意某些AVR 器件的數(shù)據(jù)區(qū)太小,用SPL 就足夠了。此時將不給出SPH 寄存器。指令執(zhí)行時序這一節(jié)介紹指令執(zhí)行過程中的訪問時序

22、。AVR CPU 由系統(tǒng)時鐘clkCPU 驅(qū)動。此時鐘直接來自選定的時鐘源。芯片內(nèi)部不對此時鐘進行分頻。Figure 5 說明了由Harvard 結(jié)構(gòu)決定的并行取指和指令執(zhí)行,以及可以進行快速訪問的寄存器文件的概念。這是一個基本的流水線概念,性能高達1 MIPS/MHz,具有優(yōu)良的性價比、功能/ 時鐘比、功能/ 功耗比。(11)復位與中斷處理AVR有不同的中斷源。每個中斷和復位在程序空間都有獨立的中斷向量。所有的中斷事件都有自己的使能位。當使能位置位,且狀態(tài)寄存器的全局中斷使能位I 也置位時,中斷可以發(fā)生。根據(jù)程序計數(shù)器PC 的不同,在引導鎖定位BLB02 或BLB12 被編程的情況下,中斷可

23、能被自動禁止。這個特性提高了軟件的安全性。詳見 P 209“ 存儲器編程” 的描述。程序存儲區(qū)的最低地址缺省為復位向量和中斷向量。完整的向量列表請參見P 43“ 中斷”列表也決定了不同中斷的優(yōu)先級。向量所在的地址越低,優(yōu)先級越高。RESET 具有最高的優(yōu)先級,第二個為INT0 外部中斷請求0。通過置位通用中斷控制寄存器 (GICR) 的IVSEL,中斷向量可以移至引導Flash的起始處,參見P 43“中斷” 。編程熔絲位BOOTRST也可以將復位向量移至引導Flash 的起始處。具體參見P 196“ 支持引導裝入程序 在寫的同時可以讀(RWW, Read-While-Write) 的自我編程能

24、力” 。任一中斷發(fā)生時全局中斷使能位I 被清零,從而禁止了所有其他的中斷。用戶軟件可以在中斷程序里置位I 來實現(xiàn)中斷嵌套。此時所有的中斷都可以中斷當前的中斷服務程序。執(zhí)行RETI 指令后I 自動置位。從根本上說有兩種類型的中斷。第一種由事件觸發(fā)并置位中斷標志。對于這些中斷,程序計數(shù)器跳轉(zhuǎn)到實際的中斷向量以執(zhí)行中斷處理程序,同時硬件將清除相應的中斷標志。中斷標志也可以通過對其寫”1” 的方式來清除。當中斷發(fā)生后,如果相應的中斷使能位為"0",則中斷標志位置位,并一直保持到中斷執(zhí)行,或者被軟件清除。類似的,如果全局中斷標志被清零,則所有已發(fā)生的中斷都不會被執(zhí)行,直到I 置位。然

25、后掛起的各個中斷按中斷優(yōu)先級依次執(zhí)行。2. 點陣顯示器(1)8*8點陣原理圖(2)8*8點陣實物圖圖為8×8點陣LED外觀及引腳圖,其等效電路如圖(2)所示,只要其對應的X、Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點亮,則Y0=1,X0=0即可。應用時限流電阻可以放在X軸或Y軸(3)8*8點陣掃描方式LED一般采用掃描式顯示,實際運用分為三種方式(1)點掃描(2)行列掃描16×64=1024Hz,周期小于1ms即可。若使用第二和第三種方式,則頻率必須大于16×8=128Hz,周期小于7.8ms即可符合視覺暫留要求。此外一次驅(qū)動一列或一行(8顆LED

26、)時需外加驅(qū)動電路提高電流,否則LED亮度會不足。(4)8*8點陣應用舉例點陣內(nèi)部結(jié)構(gòu)及外形如下,8X8點陣共由64個發(fā)光二極管組成,且每個發(fā)光二極管是放置在行線和列線的交叉點上,當對應的某一行置1電平,某一列置0電平,則相應的二極管就亮;如要將第一個點點亮,則9腳接高電平13腳接低電平,則第一個點就亮了;如果要將第一行點亮,則第9腳要接高電平,而(13、3、4、10、6、11、15、16)這些引腳接低電平,那么第一行就會點亮;如要將第一列點亮,則第13腳接低電平,而(9、14、8、12、1、7、2、5)接高電平,那么第一列就會點亮。 一般我們使用點陣顯示漢字是用的16*16的點陣宋體字庫,所

27、謂16*16,是每一個漢字在縱、橫各16點的區(qū)域內(nèi)顯示的。也就是說得用四個8*8點陣組合成一個16*16的點陣。如下圖所示,要顯示“你”則相應的點就要點亮,由于我們的點陣在列線上是低電平有效,而在行線上是高電平有效,所以要顯示“你”字的話,它的位代碼信息要取反,即所有列(1316腳)送(1111011101111111,0xF7,0x7F),而第一行(9腳)送1信號,然后第一行送0。再送第二行要顯示的數(shù)據(jù)(1316腳)送(1111011101111111,0xF7,0x7F),而第二行(14腳)送1信號。依此類推,只要每行數(shù)據(jù)顯示時間間隔夠短,利用人眼的視覺暫停作用,這樣送16次數(shù)據(jù)掃描完16

28、行后就會看到一個“你”字;第二種送數(shù)據(jù)的方法是字模信號送到行線上再掃描列線也是同樣的道理。同樣以“你”字來說明,16行(9、14、8、12、1、7、2、5)上送(0000000000000000,0x00,0x00)而第一列(13腳)送、“0”。同理掃描第二列。當行線上送了16次數(shù)據(jù)而列線掃描了16次后一個“你”字也就顯示出來了。 因此,形成的列代碼為00H,00H,3EH,41H,41H,3EH,00H,00H;只要把這些代碼分別依次送到相應的列線上面,即可實現(xiàn)“0”的數(shù)字顯示。3.驅(qū)動芯片4-16譯碼器CC4514(1)推薦工作條件電源電壓范圍 .3V15V輸入電壓范圍.0VVDD(2)工

29、作溫度范圍M 類.55125E 類 .4085(3)極限值電源電壓 .0.5V18V輸入電壓 0.5VVDD+0.5V輸入電流 .±10mA儲存穩(wěn)定.65150CD4514引腳圖三 廣告控制器系統(tǒng)設(shè)計1.系統(tǒng)硬件設(shè)計(1)主控制器ATmega8本控制系統(tǒng)采用存儲容量大的AVR單片機ATmega8作為主控制器,直接可以將容量較大的系統(tǒng)字庫存儲在ATmega8內(nèi)部存儲器內(nèi),節(jié)約了資源,也使整個系統(tǒng)變得簡潔。(2)點陣掃描驅(qū)動電路掃描電路采用CD4514,即4-16的譯碼器來進行行列掃描,用單片機控制其選通端INH來控制送行列字庫碼,控制掃描,并在輸出端加一個非門,來提高其驅(qū)動能力,以滿足

30、點陣發(fā)光的需求。2.系統(tǒng)軟件設(shè)計(1)程序流程圖(2)程序清單*/#include <32x16led.h>void main (void)while (1)led_initial();print_char("TEST LED 0123456789 abc");print_char("我愛金魚");delay(50);/led_initial();print_char("自己編的練習程序,");print_char("顯示效果與延時參數(shù)和電腦速度有很大關(guān)系.");print_char("我的電

31、腦太差運行起來老是一頓一頓的_");print_char("相信換臺好點的電腦會有更好的效果! 劉偉");delay(50);/*#include <iom16v.h>#include <macros.h>#include <font.h>#define LED_DATA_LOW PORTA#define LED_DDR_LOW DDRA#define LED_DATA_HIGH PORTB#define LED_DDR_HIGH DDRB#define LED_SCAN_DATAPORTC#define LED_SCAN_DD

32、RDDRC#define uchar unsigned char #define uint unsigned int/緩存大小,對應LED屏的大小#define buffer_long64/定義字模數(shù)據(jù)數(shù)組的大小,即所存字的個數(shù) #define gb16_tabel_long 62/* 利用定時器1 定時掃描LED屏 */* 定時參數(shù)對顯示效果影響很大 */#define T1_TIME_H 0xe7#define T1_TIME_L 0x50enum direction right,leftdir_f;uchar display_bufferbuffer_long;/* LED屏初始化*/v

33、oid led_initial ( void ) uchar i; /display_buffer initial for (i=0; i<buffer_long; i+) display_bufferi = 0x00; / port initialLED_DDR_LOW = 0xff;LED_DDR_HIGH = 0xff;LED_SCAN_DDR = 0x1f;/移動方向 right or leftdir_f = left;/t0 initial CLI(); /disable all interrupts TCCR1B = 0xe0; /stop TCNT1H = T1_TIME_

34、H; /setup TCNT1L = T1_TIME_L; OCR1AH = 0x01; OCR1AL = 0xF4; OCR1BH = 0x01; OCR1BL = 0xF4; ICR1H = 0x01; ICR1L = 0xF4; TCCR1A = 0x00; TCCR1B = 0x02; /start Timer MCUCR = 0x00; GICR = 0x00; TIMSK = 0x04; /timer interrupt sources SEI(); /re-enable interrupts/* 字符串輸出子程序*/void print_char (char *p)uchar t

35、ab_n,j,i=0;int k;uchar d0,d1;while(pi > 0)if (pi >=128)/如果是漢字/* 查找 移位輸出 */for(j=0; j<=gb16_tabel_long; j+)if (gb_16j.index0 = pi) && (gb_16j.index1 = pi+1) if ( dir_f = left )/如果字向左移動就順序讀字模 for (k=0; k<32; k+)d0 = gb_16j.maskk;k+;d1 = gb_16j.maskk;move_to_buffer (d0,d1);delay(1); else /如果字向右移動就逆序讀字模 for (k=31; k>=0; k-)d1 = gb_16j.maskk;k-;d0 = gb_16j.maskk;move_to_buffer (d0,d1);delay(1);break;/找到了就退出循環(huán)/* 字庫沒有的字,則輸出空白0x00 */if (j>gb16_tabel_long)/ for (k=0; k<16; k+)d0 = 0x00;d1 = 0x00;m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論