




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
45/45摘要廣告燈是用于廣告匾,樓宇裝飾和戶外裝潢的燈具,近來隨著國家經(jīng)濟的迅速進(jìn)展,人民物質(zhì)文化生活水平的不斷提高,關(guān)于裝飾的美化美觀的要求也越來越高,廣告燈的越來越多的出現(xiàn)在個人們的視野中。近年來隨著科技的飛速進(jìn)展,單片機的應(yīng)用正在不斷地走向深入,同時自動操縱系統(tǒng)日新月益更新。本文結(jié)合國內(nèi)外霓虹燈操縱技術(shù)的進(jìn)展?fàn)顩r設(shè)計了一種采納美國ATMEL公司生產(chǎn)的AVR系列單片機中的ATmega8作操縱芯片的霓虹燈操縱器.通過ATmega8芯片操縱驅(qū)動電路,在由驅(qū)動電路驅(qū)動繼電器,而繼電器則作為霓虹燈的功率操縱。其中,與不的產(chǎn)品在設(shè)計上不同的是,功率操縱板塊采納的是繼電器陣列,而不是通常用的可控硅,將繼電器陣列模塊化,電路的設(shè)計條理也專門清晰,既方便檢查線路故障,有方便技術(shù)維修。該板塊的設(shè)計也是本次設(shè)計的重點和難點。另外,文中還介紹了電源電路、PC機與單片機的通訊接口電路的設(shè)計原理。軟件設(shè)計部分采納的是ICC-AVR環(huán)境下的C語言進(jìn)行編寫程序,使用AVRStudio進(jìn)行仿真講明。本文設(shè)計的霓虹燈單片機操縱器,電路簡單,抗干擾性強,圖案變化方式多,可適用于各種霓虹燈牌面,可依照用戶的要求,通過修改軟件,操縱多種多樣花樣的變化,是一代新型的霓虹燈操縱器。
關(guān)鍵字:霓虹燈;操縱器;繼電器;ATmega8目錄一系統(tǒng)方案論證與比較方案一:使用CD4060與KD5603作為主操縱器這是一例變色廣告燈自動操縱電路,它采納了兩種操縱方式:①光控方式,白天自動關(guān)閉,夜晚自動開啟;②時刻操縱方式,夜晚自動開啟后,通過定時操縱使其在預(yù)定的時刻自動關(guān)閉,以節(jié)約電能。在廣告燈開啟后,通過操縱電路使兩種彩色的廣告燈光交替循環(huán)顯示,增強廣告效果。電路在燈光顯示的同時還伴有廣告語言,介紹廣告要講明的內(nèi)容,是一種功能較完善的廣告燈操縱器。變色廣告燈操縱器的電路組成如圖6-45所示。電路工作原理分析變色廣告燈操縱器電路由光控電路、時刻操縱電路、語言電路、彩燈循環(huán)操縱電路和電源電路組成。光控電路是本電路的主控電路,它通過為其余操縱電路接通工作電源的方式操縱著整個工作電路的開啟時刻。光控電路要緊由光敏電阻RG和由VTl、VT2組成的直接桐合式晶體管放大電路組成。白天,RG受光的照耀阻值變小,VTl的基極得到較大的偏置電壓而導(dǎo)通,VT2則因VTl的導(dǎo)通而截止。IC2~1C4因無工作電源而停止工作。夜晚來臨時,光照減弱,RG阻值升高,VTl截止,VT2因VTl的截止而導(dǎo)通,12V電源經(jīng)VT2向IC2~IC4提供工作電源,使其進(jìn)入工作狀態(tài)。時刻操縱電路的作用是:當(dāng)夜晚來臨后使電路投入工作,夜深人靜時停止工作,以幸免不必要的電源消耗。時刻操縱電路由一只14級二進(jìn)制計數(shù)/分頻電路CD4060組成。該電路通過外接R4、C7組成一個RC振蕩器,其振蕩周期T=2.2R4C7=LIs。經(jīng)內(nèi)部14級分頻(分頻系數(shù)為16384)后,操縱時刻約為5小時(1.1X16384=18022s,18022/3600≈5小時)。當(dāng)VT2導(dǎo)通后,電源通過C6、R3形成的復(fù)位脈沖使CD4060復(fù)位,隨后電路工作,產(chǎn)生脈沖并分頻。在接通電源之初,由于IC2的③腳輸出低電平,VT3導(dǎo)通,為IC3及IC4提供工作電源。5小時后定時結(jié)束,③腳輸出高電平,VT3截止,切斷了IC3與IC4的工作電源,廣告燈與語言電路因失去操縱電源而停止工作。方案二:NE555與CD4541作為主操縱器廣告燈操縱器由NE555組成的光控及抗干擾電路、CD4541定時電路、繼電器操縱、電源電路等部分組成。電原理圖如圖1所示。NE555時基電路接成施密特觸發(fā)器,對光敏電阻RC接收到的信號進(jìn)行整形和功率放大以后,驅(qū)動后續(xù)電路。當(dāng)白天有光照時,其第③腳輸出低電平,夜晚無光照時輸出高電平。
CD4541是一塊具有振蕩計數(shù)、定時功能的IC,在電路中作為定時操縱,各腳功能如表1所示。CD4541工作時,第①腳接振蕩電阻,第②腳接振蕩電容,第③腳接愛護電阻,第⑧腳為輸出腳,第⑨腳可選擇第⑧腳的輸出狀態(tài),第⑩腳接低電平為單定時模式,接高電平為循環(huán)定時模式,第12、13腳可設(shè)定時刻或設(shè)定輸出頻率,CD4541分頻或計數(shù)次數(shù)如表2所示。220V交流市電經(jīng)R9、C6阻容降壓.D2~D5整流,C5濾波,WD2穩(wěn)壓,給繼電器提供24V的吸合電壓。此電壓通過R8和WD1穩(wěn)壓,C4濾波,給IC1和IC2提供9.1V的工作電壓。白天,光敏電阻RG阻值專門小,通過RG和WR1分壓,NE555第⑥腳電壓大于2/3Vcc,使第③腳輸出為低電平,三極管BG1截止。CD4541第⑥腳復(fù)位端為高電平,其內(nèi)部計數(shù)器清零復(fù)位,第⑧腳輸出端為低電平,BG2截止,繼電器常開觸電斷開,其受控電路不工作。
當(dāng)夜幕降臨的時候,RG阻值逐漸增大,NE555第②腳電位逐漸降低,當(dāng)小于1/3Vcc時,NE555第③腳輸出端信號翻轉(zhuǎn)為高電平。BG1基極電位升高而導(dǎo)通,給CD4541第⑥腳提供一個由高電平變?yōu)榈碗娖降拿}沖負(fù)跳變沿,使內(nèi)部電路開始計數(shù),輸出端第⑧腳輸出高電平。BG2導(dǎo)通,繼電器K1得電,常開觸點閉合,受控電路工作。WR2和C3為CD4541外接振蕩電阻和振蕩電容,當(dāng)經(jīng)t=32768×2.3RC≈24871秒時刻后,輸出端第⑧腳變?yōu)榈碗娖?。VT2截止,K1的常開觸點失電而斷開,受控電路停止工作。通過微調(diào)WR2,可改變定時時長。此電路關(guān)于外界干擾引起的白天瞬間變暗可不能導(dǎo)致繼電器誤動作,因為NE555第②、⑥腳所接R1和C1組成延時抗干擾電路,當(dāng)RG阻值瞬間增大時,由于電容C1兩端電壓不能突變,從而保持第⑥腳電位差不多不變,第③腳輸出仍為低電平。但當(dāng)RG阻值長時刻較大時,C1充電完成后,NE555第⑥腳電壓降低,第③腳輸出高電平,從而導(dǎo)致繼電器動作。方案三:采納LED點陣與ATmega8作為主驅(qū)動器數(shù)控掃描器有以下要緊特點:
(1)分體聯(lián)控結(jié)構(gòu):解決了大型工程既要求掃描器分體就近安裝又要求掃描器整體調(diào)控的矛盾。
(2)強抗干擾設(shè)計:通過系統(tǒng)軟件的抗干擾處理,幸免了亂閃及抖動的現(xiàn)象,使版面極為潔凈。
(3)自動同步:當(dāng)遇強干擾造成掃描器不能同步工作時,系統(tǒng)軟件將在1分鐘內(nèi)自動修復(fù)。
(4)調(diào)試開關(guān):關(guān)于大型工程的調(diào)試,那個功能極為有用。
(5)接插件結(jié)構(gòu):整個線路全部采納接插件繪聲結(jié)構(gòu),拆卸簡單,維修方便。
圖3ATmega8與點陣顯示廣告操縱系統(tǒng)綜上所述,我們選擇方案三。二元器件簡介1.主控芯片ATmega8簡介(1)產(chǎn)品特性●高性能、低功耗的8位AVR?微處理器●先進(jìn)的RISC結(jié)構(gòu)●130條指令–大多數(shù)指令執(zhí)行時刻為單個時鐘周期●32個8位通用工作寄存器●全靜態(tài)工作●工作于16MHz時性能高達(dá)16MIPS●只需兩個時鐘周期的硬件乘法器●非易失性程序和數(shù)據(jù)存儲器●8K字節(jié)的系統(tǒng)內(nèi)可編程Flash●擦寫壽命:10,000次●具有獨立鎖定位的可選Boot代碼區(qū)●通過片上Boot程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程●真正的同時讀寫操作●512字節(jié)的EEPROM●擦寫壽命:100,000次●1K字節(jié)的片內(nèi)SRAM●能夠?qū)︽i定位進(jìn)行編程以實現(xiàn)用戶程序的加密(2)外設(shè)特點●兩個具有獨立預(yù)分頻器8位定時器/計數(shù)器,其中之一有比較功能●一個具有預(yù)分頻器、比較功能和捕捉功能的16位定時器/計數(shù)器●具有獨立振蕩器的實時計數(shù)器RTC●三通道PWM●TQFP與MLF封裝的8路ADC●路10位ADC●8路10位ADC●面向字節(jié)的兩線接口●兩個可編程的串行USART●可工作于主機/從機模式的SPI串行接口●具有獨立片內(nèi)振蕩器的可編程看門狗定時器●片內(nèi)模擬比較器(3)專門的處理器特點●上電復(fù)位以及可編程的掉電檢測●片內(nèi)通過標(biāo)定的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-8MHz(ATmega8L)●0-16MHz(ATmega8)●4Mhz時功耗,3V,25●工作模式:3.6mA●空閑模式:1.0mA●掉電模式: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)部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還未起振,端口B處于高阻狀態(tài)。通過時鐘選擇熔絲位的設(shè)置,PB6可作為反向振蕩放大器或時鐘操作電路的輸入端。通過時鐘選擇熔絲位的設(shè)置PB7可作為反向振蕩放大器的輸出端。若將片內(nèi)標(biāo)定RC振蕩器作為芯片時鐘源,且ASSR寄存器的AS2位設(shè)置,PB7..6作為異步T/C2的TOSC2..1輸入端。端口B的其他功能見P55“端口B的第二功能”及P22“系統(tǒng)時鐘及時鐘選項”。端口C(PC5..PC0)端口C為7位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,能夠輸出和汲取大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還未起振,端口C處于高阻狀態(tài)。PC6/RESET若RSTDISBL熔絲位編程,PC6作為I/O引腳使用。注意PC6的電氣特性與端口C的其他引腳不同若RSTDISBL熔絲位未編程,PC6作為復(fù)位輸入引腳。持續(xù)時刻超過最小門限時刻的低電平將引起系統(tǒng)復(fù)位。門限時刻見P35Table15。持續(xù)時刻小于門限時刻的脈沖不能保證可靠復(fù)位。端口C的其他功能見后。端口D(PD7..PD0)端口D為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,能夠輸出和汲取大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還未起振,端口D處于高阻狀態(tài)。端口D的其他功能見后。RESET復(fù)位輸入引腳。持續(xù)時刻超過最小門限時刻的低電平將引起系統(tǒng)復(fù)位。門限時刻見P35Table15。持續(xù)時刻小于門限時刻的脈沖不能保證可靠復(fù)位。AVCCAVCC是A/D轉(zhuǎn)換器、端口C(3..0)及ADC(7..6)的電源。不使用ADC時,該引腳應(yīng)直接與VCC連接。使用ADC時應(yīng)通過一個低通濾波器與VCC連接。注意,端口C(5..4)為數(shù)字電源,VCC。AREFA/D的模擬基準(zhǔn)輸入引腳。ADC7..6(TQFP與MLF封裝)TQFP與MLF封裝的ADC7..6作為A/D轉(zhuǎn)換器的模擬輸入。為模擬電源且作為10位ADC通道。(8)ATmega8狀態(tài)寄存器狀態(tài)寄存器包含了最近執(zhí)行的算術(shù)指令的結(jié)果信息。這些信息能夠用來改變程序流程以實現(xiàn)條件操作。如指令集所述,所有ALU運算都將阻礙狀態(tài)寄存器的內(nèi)容。如此,在許多情況下就不需要專門的比較指令了,從而使系統(tǒng)運行更快速,代碼效率更高。在進(jìn)入中斷服務(wù)程序時狀態(tài)寄存器可不能自動保存,中斷返回時也可不能自動恢復(fù)。這些工作需要軟件來處理。AVR中斷寄存器SREG定義如下:?Bit7–I:全局中斷使能I置位時使能全局中斷。單獨的中斷使能由其他獨立的操縱寄存器操縱。假如I清零,則不論單獨中斷標(biāo)志置位與否,都可不能產(chǎn)生中斷。任意一個中斷發(fā)生后I清零,而執(zhí)行RETI指令后I恢復(fù)置位以使能中斷。I也能夠通過SEI和CLI指令來置位和清零。?Bit6–T:位拷貝存儲位拷貝指令BLD和BST利用T作為目的或源地址。BST把寄存器的某一位拷貝到T,而BLD把T拷貝到寄存器的某一位。?Bit5–H:半進(jìn)位標(biāo)志半進(jìn)位標(biāo)志H表示算術(shù)操作發(fā)生了半進(jìn)位。此標(biāo)志關(guān)于BCD運算特不有用。詳見指令集的講明。?Bit4–S:符號位,S=N⊕VS為負(fù)數(shù)標(biāo)志N與2的補碼溢出標(biāo)志V的異或。詳見指令集的講明。?Bit3–V:2的補碼溢出標(biāo)志支持2的補碼運算。詳見指令集的講明。?Bit2–N:負(fù)數(shù)標(biāo)志表明算術(shù)或邏輯操作結(jié)果為負(fù)。詳見指令集的講明。?Bit1–Z:零標(biāo)志表明算術(shù)或邏輯操作結(jié)果為零。詳見指令集的講明。?Bit0–C:進(jìn)位標(biāo)志(9)通用寄存器文件寄存器文件針對AVR增強型RISC指令集做了優(yōu)化。為了獲得需要的性能和靈活性,寄存器文件支持以下的輸入/輸出方案:?輸出一個8位操作數(shù),輸入一個8位結(jié)果。?輸出兩個8位位操作數(shù),輸入一個8位結(jié)果。?輸出兩個8位位操作數(shù),輸入一個16位結(jié)果。?輸出一個16位位操作數(shù),輸入一個16位結(jié)果。CPU32個通用工作寄存器的結(jié)構(gòu)(10)堆棧指針堆棧指針要緊用來保存臨時數(shù)據(jù)、局部變量和中斷/子程序的返回地址。堆棧指針總是指向堆棧的頂部。要注意AVR的堆棧是向下生長的,即新數(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就足夠了?,F(xiàn)在將不給出SPH寄存器。指令執(zhí)行時序這一節(jié)介紹指令執(zhí)行過程中的訪問時序。AVRCPU由系統(tǒng)時鐘clkCPU驅(qū)動?,F(xiàn)在鐘直接來自選定的時鐘源。芯片內(nèi)部不對現(xiàn)在鐘進(jìn)行分頻。Figure5講明了由Harvard結(jié)構(gòu)決定的并行取指和指令執(zhí)行,以及能夠進(jìn)行快速訪問的寄存器文件的概念。這是一個差不多的流水線概念,性能高達(dá)1MIPS/MHz,具有優(yōu)良的性價比、功能/時鐘比、功能/功耗比。(11)復(fù)位與中斷處理AVR有不同的中斷源。每個中斷和復(fù)位在程序空間都有獨立的中斷向量。所有的中斷事件都有自己的使能位。當(dāng)使能位置位,且狀態(tài)寄存器的全局中斷使能位I也置位時,中斷能夠發(fā)生。依照程序計數(shù)器PC的不同,在引導(dǎo)鎖定位BLB02或BLB12被編程的情況下,中斷可能被自動禁止。那個特性提高了軟件的安全性。詳見P209“存儲器編程”的描述。程序存儲區(qū)的最低地址缺省為復(fù)位向量和中斷向量。完整的向量列表請參見P43“中斷”列表也決定了不同中斷的優(yōu)先級。向量所在的地址越低,優(yōu)先級越高。RESET具有最高的優(yōu)先級,第二個為INT0–外部中斷請求0。通過置位通用中斷操縱寄存器(GICR)的IVSEL,中斷向量能夠移至引導(dǎo)Flash的起始處,參見P43“中斷”。編程熔絲位BOOTRST也能夠?qū)?fù)位向量移至引導(dǎo)Flash的起始處。具體參見P196“支持引導(dǎo)裝入程序-在寫的同時能夠讀(RWW,Read-While-Write)的自我編程能力”。任一中斷發(fā)生時全局中斷使能位I被清零,從而禁止了所有其他的中斷。用戶軟件能夠在中斷程序里置位I來實現(xiàn)中斷嵌套?,F(xiàn)在所有的中斷都能夠中斷當(dāng)前的中斷服務(wù)程序。執(zhí)行RETI指令后I自動置位。從全然上講有兩種類型的中斷。第一種由事件觸發(fā)并置位中斷標(biāo)志。關(guān)于這些中斷,程序計數(shù)器跳轉(zhuǎn)到實際的中斷向量以執(zhí)行中斷處理程序,同時硬件將清除相應(yīng)的中斷標(biāo)志。中斷標(biāo)志也能夠通過對其寫”1”的方式來清除。當(dāng)中斷發(fā)生后,假如相應(yīng)的中斷使能位為"0",則中斷標(biāo)志位置位,并一直保持到中斷執(zhí)行,或者被軟件清除。類似的,假如全局中斷標(biāo)志被清零,則所有已發(fā)生的中斷都可不能被執(zhí)行,直到I置位。然后掛起的各個中斷按中斷優(yōu)先級依次執(zhí)行。2.點陣顯示器(1)8*8點陣原理圖(2)8*8點陣實物圖圖為8×8點陣LED外觀及引腳圖,其等效電路如圖(2)所示,只要其對應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。例如假如想使左上角LED點亮,則Y0=1,X0=0即可。應(yīng)用時限流電阻能夠放在X軸或Y軸(3)8*8點陣掃描方式LED一般采納掃描式顯示,實際運用分為三種方式(1)點掃描(2)行列掃描16×64=1024Hz,周期小于1ms即可。若使用第二和第三種方式,則頻率必須大于16×8=128Hz,周期小于7.8ms即可符合視覺暫留要求。此外一次驅(qū)動一列或一行(8顆LED)時需外加驅(qū)動電路提高電流,否則LED亮度會不足。(4)8*8點陣應(yīng)用舉例點陣內(nèi)部結(jié)構(gòu)及外形如下,8X8點陣共由64個發(fā)光二極管組成,且每個發(fā)光二極管是放置在行線和列線的交叉點上,當(dāng)對應(yīng)的某一行置1電平,某一列置0電平,則相應(yīng)的二極管就亮;如要將第一個點點亮,則9腳接高電平13腳接低電平,則第一個點就亮了;假如要將第一行點亮,則第9腳要接高電平,而(13、3、4、10、6、11、15、16)這些引腳接低電平,那么第一行就會點亮;如要將第一列點亮,則第13腳接低電平,而(9、14、8、12、1、7、2、5)接高電平,那么第一列就會點亮。
一般我們使用點陣顯示漢字是用的16*16的點陣宋體字庫,所謂16*16,是每一個漢字在縱、橫各16點的區(qū)域內(nèi)顯示的。也確實是講得用四個8*8點陣組合成一個16*16的點陣。如下圖所示,要顯示“你”則相應(yīng)的點就要點亮,由于我們的點陣在列線上是低電平有效,而在行線上是高電平有效,因此要顯示“你”字的話,它的位代碼信息要取反,即所有列(13~16腳)送(1111011101111111,0xF7,0x7F),而第一行(9腳)送1信號,然后第一行送0。再送第二行要顯示的數(shù)據(jù)(13~16腳)送(1111011101111111,0xF7,0x7F),而第二行(14腳)送1信號。依此類推,只要每行數(shù)據(jù)顯示時刻間隔夠短,利用人眼的視覺暫停作用,如此送16次數(shù)據(jù)掃描完16行后就會看到一個“你”字;第二種送數(shù)據(jù)的方法是字模信號送到行線上再掃描列線也是同樣的道理。同樣以“你”字來講明,16行(9、14、8、12、1、7、2、5)上送(0000000000000000,0x00,0x00)而第一列(13腳)送、“0”。同理掃描第二列。當(dāng)行線上送了16次數(shù)據(jù)而列線掃描了16次后一個“你”字也就顯示出來了?!瘛瘛瘛瘛瘛瘛瘛瘛瘛瘛瘛瘛瘛瘛瘛褚虼耍纬傻牧写a為00H,00H,3EH,41H,41H,3EH,00H,00H;只要把這些代碼分不依次送到相應(yīng)的列線上面,即可實現(xiàn)“0”的數(shù)字顯示。3.驅(qū)動芯片4-16譯碼器CC4514(1)推舉工作條件電源電壓范圍……………….3V~15V輸入電壓范圍………………..0V~VDD(2)工作溫度范圍M類……………….-55℃~E類……………….-40℃~(3)極限值電源電壓…...-0.5V~18V輸入電壓……-0.5V~VDD+0.5V輸入電流………….±10mA儲存穩(wěn)定…………….-65℃~150℃CD4514引腳圖三廣告操縱器系統(tǒng)設(shè)計1.系統(tǒng)硬件設(shè)計(1)主操縱器ATmega8本操縱系統(tǒng)采納存儲容量大的AVR單片機ATmega8作為主操縱器,直接能夠?qū)⑷萘枯^大的系統(tǒng)字庫存儲在ATmega8內(nèi)部存儲器內(nèi),節(jié)約了資源,也使整個系統(tǒng)變得簡潔。(2)點陣掃描驅(qū)動電路掃描電路采納CD4514,即4-16的譯碼器來進(jìn)行行列掃描,用單片機操縱其選通端INH來操縱送行列字庫碼,操縱掃描,并在輸出端加一個非門,來提高其驅(qū)動能力,以滿足點陣發(fā)光的需求。2.系統(tǒng)軟件設(shè)計(1)程序流程圖(2)程序清單**********************************************/#include<32x16led.h>voidmain(void){ while(1) { led_initial(); print_char("TESTLED0123456789abc"); print_char("我愛金魚"); delay(50); // led_initial(); print_char("自己編的練習(xí)程序,"); print_char("顯示效果與延時參數(shù)和電腦速度有專門大關(guān)系."); print_char("我的電腦太差運行起來老是一頓一頓的^_^"); print_char("相信換臺好點的電腦會有更好的效果!劉偉"); delay(50); }}/**********************************************#include<iom16v.h>#include<macros.h>#include<font.h>#defineLED_DATA_LOWPORTA#defineLED_DDR_LOWDDRA#defineLED_DATA_HIGHPORTB#defineLED_DDR_HIGHDDRB#defineLED_SCAN_DATA PORTC#defineLED_SCAN_DDR DDRC#defineucharunsignedchar#defineuintunsignedint//緩存大小,對應(yīng)LED屏的大小#definebuffer_long 64//定義字模數(shù)據(jù)數(shù)組的大小,即所存字的個數(shù) #definegb16_tabel_long62/*利用定時器1定時掃描LED屏*//*定時參數(shù)對顯示效果阻礙專門大*/#defineT1_TIME_H0xe7#defineT1_TIME_L0x50enumdirection{right,left}dir_f;uchardisplay_buffer[buffer_long];/****************LED屏初始化**************************/voidled_initial(void){uchari; //display_bufferinitialfor(i=0;i<buffer_long;i++) display_buffer[i]=0x00; //portinitial LED_DDR_LOW=0xff; LED_DDR_HIGH=0xff; LED_SCAN_DDR=0x1f; //移動方向rightorleft dir_f=left; //t0initialCLI();//disableallinterruptsTCCR1B=0xe0;//stopTCNT1H=T1_TIME_H;//setupTCNT1L=T1_TIME_L;OCR1AH=0x01;OCR1AL=0xF4;OCR1BH=0x01;OCR1BL=0xF4;ICR1H=0x01;ICR1L=0xF4;TCCR1A=0x00;TCCR1B=0x02;//startTimerMCUCR=0x00;GICR=0x00;TIMSK=0x04;//timerinterruptsourcesSEI();//re-enableinterrupts}/***************字符串輸出子程序***********************/voidprint_char(char*p){ uchartab_n,j,i=0; intk; uchard0,d1; while(p[i]>0) { if(p[i]>=128)//假如是漢字 { /*查找移位輸出*/ for(j=0;j<=gb16_tabel_long;j++) { if((gb_16[j].index[0]==p[i])&&(gb_16[j].index[1]==p[i+1])) { if(dir_f==left)//假如字向左移動就順序讀字模 for(k=0;k<32;k++) { d0=gb_16[j].mask[k]; k++; d1=gb_16[j].mask[k]; move_to_buffer(d0,d1); delay(1); } else//假如字向右移動就逆序讀字模 for(k=31;k>=0;k--) { d1=gb_16[j].mask[k]; k--; d0=gb_16[j].mask[k]; 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; move_to_buffer(d0,d1); delay(1); } i+=2; } else //假如是字符 { j=p[i]-32; if(dir_f==left) for(k=0;k<16;k++) { d0=ASC_MSK[(j*16)+k]; k++; d1=ASC_MSK[(j*16)+k]; move_to_buffer(d0,d1); delay(1); } else for(k=15;k>=0;k--) { d1=ASC_MSK[(j*16)+k];
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園數(shù)據(jù)共享合作合同(2篇)
- 2025全面協(xié)議借款合同
- 2025藝人經(jīng)紀(jì)公司合同范本下載
- 2025綜合高級顧問聘請合同范本
- 金融與新質(zhì)生產(chǎn)力
- 2025咖啡買賣合同范本標(biāo)準(zhǔn)版
- 2025年國家電網(wǎng)招聘之電網(wǎng)計算機自我檢測試卷B卷附答案
- 2025建筑拆除工程合同協(xié)議書范本
- 初中歷史明朝的統(tǒng)治+課件+2024-2025學(xué)年統(tǒng)編版七年級歷史下冊
- 2025年初級經(jīng)濟師之初級經(jīng)濟師人力資源管理能力測試試卷A卷附答案
- 有毒動植物食物中毒及其預(yù)防-河豚魚中毒(食品安全課件)
- 小鳥簡筆畫畫法課件-小鳥畫法簡筆畫圖片
- k線圖經(jīng)典圖解
- 對公客戶信息泄露應(yīng)急預(yù)案
- 教科版五年級科學(xué)下冊全套測試卷
- 塞外山城張家口
- 13.外墻涂料工程質(zhì)量樣板驗收表格
- 多發(fā)傷及復(fù)合傷的搶救處理流程
- 房室結(jié)折返性心動過速
- 歷史學(xué)科中考復(fù)習(xí)方法交流
- GB/T 6284-2006化工產(chǎn)品中水分測定的通用方法干燥減量法
評論
0/150
提交評論