版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要廣告燈是用于廣告匾,樓宇裝飾和戶外裝潢的燈具,近來隨著國家經(jīng)濟(jì)的迅速發(fā)展,人民物質(zhì)文化生活水平的不斷提高,對(duì)于裝飾的美化美觀的要求也越來越高,廣告燈的越來越多的出現(xiàn)在個(gè)人們的視野中。近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)自動(dòng)控制系統(tǒng)日新月益更新。本文結(jié)合國內(nèi)外霓虹燈控制技術(shù)的發(fā)展?fàn)顩r設(shè)計(jì)了一種采用美國ATMEL公司生產(chǎn)的AVR系列單片機(jī)中的ATmega8作控制芯片的霓虹燈控制器通過ATmega8芯片控制驅(qū)動(dòng)電路,在由驅(qū)動(dòng)電路驅(qū)動(dòng)繼電器,而繼電器則作為霓虹燈的功率控制。其中,與別的產(chǎn)品在設(shè)計(jì)上不同的是,功率控制板塊采用的是繼電器陣列,而不是通常用的可控硅,將繼電器陣
2、列模塊化,電路的設(shè)計(jì)條理也很清晰,既方便檢查線路故障,有方便技術(shù)維修。該板塊的設(shè)計(jì)也是本次設(shè)計(jì)的重點(diǎn)和難點(diǎn)。另外,文中還介紹了電源電路、PC機(jī)與單片機(jī)的通訊接口電路的設(shè)計(jì)原理。軟件設(shè)計(jì)部分采用的是ICC-AVR環(huán)境下的C語言進(jìn)行編寫程序,使用AVR Studio進(jìn)行仿真說明。本文設(shè)計(jì)的霓虹燈單片機(jī)控制器,電路簡(jiǎn)單,抗干擾性強(qiáng),圖案變化方式多,可適用于各種霓虹燈牌面,可根據(jù)用戶的要求,通過修改軟件,控制多種多樣花樣的變化,是一代新型的霓虹燈控制器。關(guān)鍵字:霓虹燈;控制器;繼電器;ATmega8 目錄摘 要1目錄2一 系統(tǒng)方案論證與比較4方案一:使用CD4060與KD5603作為主控制器4方案二:
3、NE555與CD4541作為主控制器5方案三:采用LED點(diǎn)陣與ATmega8作為主驅(qū)動(dòng)器6二 元器件簡(jiǎn)介81.主控芯片ATmega8簡(jiǎn)介8(1)產(chǎn)品特性8(2)外設(shè)特點(diǎn)9(3)特殊的處理器特點(diǎn)9(4)I/O 和封裝9(5)工作電壓9(6)速度等級(jí)10(7)引腳說明11(8)ATmega8狀態(tài)寄存器12(9)通用寄存器13(10)堆棧指針14(11)復(fù)位與中斷152. 點(diǎn)陣顯示器16(1)8*8點(diǎn)陣原理圖16(2)8*8點(diǎn)陣實(shí)物圖17(3)8*8點(diǎn)陣掃描方式17(4)8*8點(diǎn)陣應(yīng)用舉例173.驅(qū)動(dòng)芯片4-16譯碼器CC451419(1)推薦工作條件19(2)工作溫度范圍19(3)極限值19三 廣
4、告控制器系統(tǒng)設(shè)計(jì)211.系統(tǒng)硬件設(shè)計(jì)21(1)主控制器ATmega821(2)點(diǎn)陣掃描驅(qū)動(dòng)電路212.系統(tǒng)軟件設(shè)計(jì)22(1)程序流程圖22(2)程序清單23一 系統(tǒng)方案論證與比較方案一:使用CD4060與KD5603作為主控制器這是一例變色廣告燈自動(dòng)控制電路,它采用了兩種控制方式:光控方式,白天自動(dòng)關(guān)閉,夜晚自動(dòng)開啟;時(shí)間控制方式,夜晚自動(dòng)開啟后,通過定時(shí)控制 使其在預(yù)定的時(shí)間自動(dòng)關(guān)閉,以節(jié)約電能。在廣告燈開啟后,通過控制電路使兩種彩色的廣告燈光交替循環(huán)顯示,增強(qiáng)廣告效果。電路在燈光顯示的同時(shí)還伴有廣告 語言,介紹廣告要說明的內(nèi)容,是一種功能較完善的廣告燈控制器。變色廣告燈控制器的電路組成如圖
5、6-45 所示。電路工作原理分析變色廣告燈控制器電路由光控電路、時(shí)間控制電路、語言電路、彩燈循環(huán)控制電路和電源電路組成。光控電路是本電路的主控電路,它通過為其余控制電路接通工作電源的方式控制著整個(gè)工作電路的開啟時(shí)間。光控電路主要由光敏電阻RG 和由VTl 、VT2 組成的直接桐合式晶體管放大電路組成。白天, RG 受光的照射阻值變小, VTl 的基極得到較大的偏置電壓而導(dǎo)通,VT2 則因VTl的導(dǎo)通而截止。IC21C4因無工作電源而停止工作。夜晚來臨時(shí),光照減弱, RG 阻值升高, VTl 截止, VT2 因VTl 的截止而導(dǎo)通, 12V電源經(jīng)VT2 向IC2IC4 提供工作電源,使其進(jìn)入工作
6、狀態(tài)。時(shí)間控制電路的作用是:當(dāng)夜晚來臨后使電路投入工作,夜深人靜時(shí)停止工作,以避免不必要的電源消耗。時(shí)間控制電路由一只14 級(jí)二進(jìn)制計(jì)數(shù)/分頻電路CD4060 組成。該電路通過外接R4 、C7 組成一個(gè)RC 振蕩器,其振蕩周期T= 2. 2R4C7 = LIs 。經(jīng)內(nèi)部14 級(jí)分頻(分頻系數(shù)為16384) 后,控制時(shí)間約為5 小時(shí)( 1. 1 X 16384 =18022s , 18022/36005小時(shí))。當(dāng)VT2 導(dǎo)通后,電源通過C6 、R3 形成的復(fù)位脈沖使CD4060 復(fù)位,隨后電路工作,產(chǎn)生脈沖并分頻。在接通電源之初,由于IC2 的腳輸出低電平, VT3 導(dǎo)通,為IC3 及IC4提供
7、工作電源。5 小時(shí)后定時(shí)結(jié)束,腳輸出高電平, VT3 截止,切斷了IC3 與IC4的工作電源,廣告燈與語言電路因失去控制電源而停止工作。方案二:NE555與CD4541作為主控制器廣告燈控制器由NE555組成的光控及抗干擾電路、CD4541定時(shí)電路、繼電器控制、電源電路等部分組成。電原理圖如圖1所示。NE555時(shí)基電路接成施密特觸發(fā)器,對(duì)光敏電阻RC接收到的信號(hào)進(jìn)行整形和功率放大以后,驅(qū)動(dòng)后續(xù)電路。當(dāng)白天有光照時(shí),其第腳輸出低電平,夜晚無光照時(shí)輸出高電平。 CD4541是一塊具有振蕩計(jì)數(shù)、定時(shí)功能的IC,在電路中作為定時(shí)控制,各腳功能如表1所示。CD4541工作時(shí),第腳接振蕩電阻,第腳接振蕩電
8、容,第腳接保護(hù)電阻,第腳為輸出腳,第腳可選擇第腳的輸出狀態(tài),第腳接低電平為單定時(shí)模式,接高電平為循環(huán)定時(shí)模式,第12、13腳可設(shè)定時(shí)間或設(shè)定輸出頻率,CD4541分頻或計(jì)數(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第腳復(fù)位端為高電平,其內(nèi)部計(jì)數(shù)器清零復(fù)位,第腳輸出端為低電平,BG2截止,繼電器常開觸電斷開,其
9、受控電路不工作。 當(dāng)夜幕降臨的時(shí)候,RG阻值逐漸增大,NE555第腳電位逐漸降低,當(dāng)小于13Vcc時(shí),NE555第腳輸出端信號(hào)翻轉(zhuǎn)為高電平。BG1基極電位升高而導(dǎo)通,給CD4541第腳提供一個(gè)由高電平變?yōu)榈碗娖降拿}沖負(fù)跳變沿,使內(nèi)部電路開始計(jì)數(shù),輸出端第腳輸出高電平。BG2導(dǎo)通,繼電器K1得電,常開觸點(diǎn)閉合,受控電路工作。WR2和C3為CD4541外接振蕩電阻和振蕩電容,當(dāng)經(jīng)t=32768×2.3RC24871秒時(shí)間后,輸出端第腳變?yōu)榈碗娖?。VT2截止,K1的常開觸點(diǎn)失電而斷開,受控電路停止工作。通過微調(diào)WR2,可改變定時(shí)時(shí)長(zhǎng)。此電路對(duì)于外界干擾引起的白天瞬間變暗不會(huì)導(dǎo)致繼電器誤動(dòng)作
10、,因?yàn)镹E555第、腳所接R1和C1組成延時(shí)抗干擾電路,當(dāng)RG阻值瞬間增大時(shí),由于電容C1兩端電壓不能突變,從而保持第腳電位基本不變,第腳輸出仍為低電平。但當(dāng)RG阻值長(zhǎng)時(shí)間較大時(shí),C1充電完成后,NE555第腳電壓降低,第腳輸出高電平,從而導(dǎo)致繼電器動(dòng)作。方案三:采用LED點(diǎn)陣與ATmega8作為主驅(qū)動(dòng)器數(shù)控廣告燈掃描器有以下主要特點(diǎn): (1)分體聯(lián)控結(jié)構(gòu):解決了大型廣告燈工程既要求掃描器分體就近安裝又要求掃描器整體調(diào)控的矛盾。 (2)強(qiáng)抗干擾設(shè)計(jì):通過系統(tǒng)軟件的抗干擾處理,避免了廣告燈亂閃及抖動(dòng)的現(xiàn)象,使版面極為干凈。 (3)自動(dòng)同步:當(dāng)遇強(qiáng)干擾造成掃描器不能同步工作時(shí),系統(tǒng)軟件將在1分鐘內(nèi)
11、自動(dòng)修復(fù)。 (4)調(diào)試開關(guān):對(duì)于大型廣告燈工程的調(diào)試,這個(gè)功能極為有用。 (5)接插件結(jié)構(gòu):整個(gè)線路全部采用接插件繪聲結(jié)構(gòu),拆卸簡(jiǎn)單,維修方便。圖3 ATmega8與點(diǎn)陣顯示廣告控制系統(tǒng)綜上所述,我們選擇方案三。二 元器件簡(jiǎn)介1.主控芯片ATmega8簡(jiǎn)介(1)產(chǎn)品特性 高性能、低功耗的 8 位AVR® 微處理器 先進(jìn)的RISC 結(jié)構(gòu) 130 條指令 大多數(shù)指令執(zhí)行時(shí)間為單個(gè)時(shí)鐘周期 32個(gè)8 位通用工作寄存器 全靜態(tài)工作 工作于16 MHz 時(shí)性能高達(dá)16 MIPS 只需兩個(gè)時(shí)鐘周期的硬件乘法器 非易失性程序和數(shù)據(jù)存儲(chǔ)器 8K 字節(jié)的系統(tǒng)內(nèi)可編程Flash 擦寫壽命: 10,000
12、 次 具有獨(dú)立鎖定位的可選Boot 代碼區(qū) 通過片上Boot 程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程 真正的同時(shí)讀寫操作 512 字節(jié)的EEPROM 擦寫壽命: 100,000 次 1K字節(jié)的片內(nèi)SRAM 可以對(duì)鎖定位進(jìn)行編程以實(shí)現(xiàn)用戶程序的加密(2)外設(shè)特點(diǎn) 兩個(gè)具有獨(dú)立預(yù)分頻器8 位定時(shí)器/ 計(jì)數(shù)器, 其中之一有比較功能 一個(gè)具有預(yù)分頻器、比較功能和捕捉功能的16 位定時(shí)器/ 計(jì)數(shù)器 具有獨(dú)立振蕩器的實(shí)時(shí)計(jì)數(shù)器RTC 三通道PWM TQFP與MLF 封裝的8 路ADC 路10 位ADC 8 路10 位ADC 面向字節(jié)的兩線接口 兩個(gè)可編程的串行USART 可工作于主機(jī)/ 從機(jī)模式的SPI 串行接口 具有獨(dú)立片
13、內(nèi)振蕩器的可編程看門狗定時(shí)器 片內(nèi)模擬比較器(3)特殊的處理器特點(diǎn) 上電復(fù)位以及可編程的掉電檢測(cè) 片內(nèi)經(jīng)過標(biāo)定的RC 振蕩器 片內(nèi)/ 片外中斷源 5種睡眠模式: 空閑模式、ADC 噪聲抑制模式、省電模式、掉電模式及Standby 模式。(4)I/O 和封裝 23個(gè)可編程的I/O 口 28引腳PDIP 封裝,32 引腳TQFP 封裝,32 引腳MLF 封裝(5)工作電壓 2.7 - 5.5V (ATmega8L) 4.5 - 5.5V (ATmega8)(6)速度等級(jí) 0 - 8 MHz (ATmega8L) 0 - 16 MHz (ATmega8) 4 Mhz 時(shí)功耗, 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)簡(jiǎn)圖(7)引腳說明VCC 數(shù)字電路的電源。GND 地。端口B(PB7.PB0)XTAL1/XTAL2/TOSC1/TOSC2端口B 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸收大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘還未起振,端口B 處于高阻狀態(tài)。通過時(shí)鐘選擇熔絲位的設(shè)置, PB6 可作為反向振蕩放大器
15、或時(shí)鐘操作電路的輸入端。通過時(shí)鐘選擇熔絲位的設(shè)置PB7 可作為反向振蕩放大器的輸出端。若將片內(nèi)標(biāo)定RC 振蕩器作為芯片時(shí)鐘源,且ASSR 寄存器的AS2 位設(shè)置,PB7.6 作為異步 T/C2 的TOSC2.1 輸入端。端口B 的其他功能見P55“ 端口B 的第二功能” 及P 22“ 系統(tǒng)時(shí)鐘及時(shí)鐘選項(xiàng)” 。端口C(PC5.PC0) 端口C 為7 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸收大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘還未起振,端口C 處于高阻狀態(tài)。PC6/RESET 若RS
16、TDISBL 熔絲位編程, PC6 作為I/O 引腳使用。注意PC6 的電氣特性與端口C 的其他引腳不同若RSTDISBL 熔絲位未編程,PC6 作為復(fù)位輸入引腳。持續(xù)時(shí)間超過最小門限時(shí)間的低電平將引起系統(tǒng)復(fù)位。門限時(shí)間見P 35Table 15 。持續(xù)時(shí)間小于門限時(shí)間的脈沖不能保證可靠復(fù)位。端口C 的其他功能見后。端口D(PD7.PD0) 端口D 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸收大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,則端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘還未起振,端口D 處于高阻狀態(tài)。端口D 的其他功
17、能見后。RESET 復(fù)位輸入引腳。持續(xù)時(shí)間超過最小門限時(shí)間的低電平將引起系統(tǒng)復(fù)位。門限時(shí)間見 P35Table 15 。持續(xù)時(shí)間小于門限時(shí)間的脈沖不能保證可靠復(fù)位。AVCC AVCC 是A/D轉(zhuǎn)換器、端口C (3.0) 及ADC (7.6) 的電源。不使用ADC時(shí),該引腳應(yīng)直接與VCC 連接。使用ADC 時(shí)應(yīng)通過一個(gè)低通濾波器與VCC 連接。注意,端口C (5.4) 為數(shù)字電源, VCC。AREF A/D 的模擬基準(zhǔn)輸入引腳。ADC7.6(TQFP 與MLF 封裝) TQFP與MLF封裝的ADC7.6作為A/D轉(zhuǎn)換器的模擬輸入。為模擬電源 且作為10位ADC通道。(8)ATmega8狀態(tài)寄存器
18、狀態(tài)寄存器包含了最近執(zhí)行的算術(shù)指令的結(jié)果信息。這些信息可以用來改變程序流程以實(shí)現(xiàn)條件操作。如指令集所述,所有ALU 運(yùn)算都將影響狀態(tài)寄存器的內(nèi)容。這樣,在許多情況下就不需要專門的比較指令了,從而使系統(tǒng)運(yùn)行更快速,代碼效率更高。在進(jìn)入中斷服務(wù)程序時(shí)狀態(tài)寄存器不會(huì)自動(dòng)保存,中斷返回時(shí)也不會(huì)自動(dòng)恢復(fù)。這些工作需要軟件來處理。AVR 中斷寄存器 SREG 定義如下: Bit 7 I: 全局中斷使能I 置位時(shí)使能全局中斷。單獨(dú)的中斷使能由其他獨(dú)立的控制寄存器控制。如果I 清零,則不論單獨(dú)中斷標(biāo)志置位與否,都不會(huì)產(chǎn)生中斷。任意一個(gè)中斷發(fā)生后I 清零,而執(zhí)行RETI指令后I 恢復(fù)置位以使能中斷。I 也可以通
19、過SEI 和CLI 指令來置位和清零。 Bit 6 T: 位拷貝存儲(chǔ)位拷貝指令BLD 和BST 利用T 作為目的或源地址。BST 把寄存器的某一位拷貝到T,而BLD 把T 拷貝到寄存器的某一位。 Bit 5 H: 半進(jìn)位標(biāo)志半進(jìn)位標(biāo)志H 表示算術(shù)操作發(fā)生了半進(jìn)位。此標(biāo)志對(duì)于BCD 運(yùn)算非常有用。詳見指令集的說明。 Bit 4 S: 符號(hào)位, S = N VS 為負(fù)數(shù)標(biāo)志N 與2 的補(bǔ)碼溢出標(biāo)志V 的異或。詳見指令集的說明。 Bit 3 V:2 的補(bǔ)碼溢出標(biāo)志支持2 的補(bǔ)碼運(yùn)算。詳見指令集的說明。 Bit 2 N: 負(fù)數(shù)標(biāo)志表明算術(shù)或邏輯操作結(jié)果為負(fù)。詳見指令集的說明。 Bit 1 Z: 零標(biāo)志
20、表明算術(shù)或邏輯操作結(jié)果為零。詳見指令集的說明。 Bit 0 C: 進(jìn)位標(biāo)志(9)通用寄存器文件寄存器文件針對(duì)AVR 增強(qiáng)型 RISC 指令集做了優(yōu)化。為了獲得需要的性能和靈活性,寄存器文件支持以下的輸入/ 輸出方案: 輸出一個(gè) 8 位操作數(shù),輸入一個(gè) 8 位結(jié)果。 輸出兩個(gè) 8 位位操作數(shù),輸入一個(gè) 8 位結(jié)果。 輸出兩個(gè) 8 位位操作數(shù),輸入一個(gè) 16 位結(jié)果。 輸出一個(gè) 16 位位操作數(shù),輸入一個(gè) 16 位結(jié)果。CPU 32 個(gè)通用工作寄存器的結(jié)構(gòu)(10)堆棧指針堆棧指針主要用來保存臨時(shí)數(shù)據(jù)、局部變量和中斷/ 子程序的返回地址。堆棧指針總是指向堆棧的頂部。要注意AVR 的堆棧是向下生長(zhǎng)的,
21、即新數(shù)據(jù)推入堆棧時(shí),堆棧指針的數(shù)值將減小。堆棧指針指向數(shù)據(jù)SRAM 堆棧區(qū)。在此聚集了子程序堆棧和中斷堆棧。調(diào)用子序和使能中斷之前必須定義堆棧空間,且堆棧指針必須指向高于0x60 的地址空間。使用PUSH指令將數(shù)據(jù)推入堆棧時(shí)指針減一;而子程序或中斷返回地址推入堆棧時(shí)指針將減二。使用POP 指令將數(shù)據(jù)彈出堆棧時(shí),堆棧指針加一;而用RET 或RETI 指令從子程序或中斷返回時(shí)堆棧指針加二。AVR的堆棧指針由I/O空間中的兩個(gè)8位寄存器實(shí)現(xiàn)。實(shí)際使用的位數(shù)與具體器件有關(guān)。請(qǐng)注意某些AVR 器件的數(shù)據(jù)區(qū)太小,用SPL 就足夠了。此時(shí)將不給出SPH 寄存器。指令執(zhí)行時(shí)序這一節(jié)介紹指令執(zhí)行過程中的訪問時(shí)序
22、。AVR CPU 由系統(tǒng)時(shí)鐘clkCPU 驅(qū)動(dòng)。此時(shí)鐘直接來自選定的時(shí)鐘源。芯片內(nèi)部不對(duì)此時(shí)鐘進(jìn)行分頻。Figure 5 說明了由Harvard 結(jié)構(gòu)決定的并行取指和指令執(zhí)行,以及可以進(jìn)行快速訪問的寄存器文件的概念。這是一個(gè)基本的流水線概念,性能高達(dá)1 MIPS/MHz,具有優(yōu)良的性價(jià)比、功能/ 時(shí)鐘比、功能/ 功耗比。(11)復(fù)位與中斷處理AVR有不同的中斷源。每個(gè)中斷和復(fù)位在程序空間都有獨(dú)立的中斷向量。所有的中斷事件都有自己的使能位。當(dāng)使能位置位,且狀態(tài)寄存器的全局中斷使能位I 也置位時(shí),中斷可以發(fā)生。根據(jù)程序計(jì)數(shù)器PC 的不同,在引導(dǎo)鎖定位BLB02 或BLB12 被編程的情況下,中斷可
23、能被自動(dòng)禁止。這個(gè)特性提高了軟件的安全性。詳見 P 209“ 存儲(chǔ)器編程” 的描述。程序存儲(chǔ)區(qū)的最低地址缺省為復(fù)位向量和中斷向量。完整的向量列表請(qǐng)參見P 43“ 中斷”列表也決定了不同中斷的優(yōu)先級(jí)。向量所在的地址越低,優(yōu)先級(jí)越高。RESET 具有最高的優(yōu)先級(jí),第二個(gè)為INT0 外部中斷請(qǐng)求0。通過置位通用中斷控制寄存器 (GICR) 的IVSEL,中斷向量可以移至引導(dǎo)Flash的起始處,參見P 43“中斷” 。編程熔絲位BOOTRST也可以將復(fù)位向量移至引導(dǎo)Flash 的起始處。具體參見P 196“ 支持引導(dǎo)裝入程序 在寫的同時(shí)可以讀(RWW, Read-While-Write) 的自我編程能
24、力” 。任一中斷發(fā)生時(shí)全局中斷使能位I 被清零,從而禁止了所有其他的中斷。用戶軟件可以在中斷程序里置位I 來實(shí)現(xiàn)中斷嵌套。此時(shí)所有的中斷都可以中斷當(dāng)前的中斷服務(wù)程序。執(zhí)行RETI 指令后I 自動(dòng)置位。從根本上說有兩種類型的中斷。第一種由事件觸發(fā)并置位中斷標(biāo)志。對(duì)于這些中斷,程序計(jì)數(shù)器跳轉(zhuǎn)到實(shí)際的中斷向量以執(zhí)行中斷處理程序,同時(shí)硬件將清除相應(yīng)的中斷標(biāo)志。中斷標(biāo)志也可以通過對(duì)其寫”1” 的方式來清除。當(dāng)中斷發(fā)生后,如果相應(yīng)的中斷使能位為"0",則中斷標(biāo)志位置位,并一直保持到中斷執(zhí)行,或者被軟件清除。類似的,如果全局中斷標(biāo)志被清零,則所有已發(fā)生的中斷都不會(huì)被執(zhí)行,直到I 置位。然
25、后掛起的各個(gè)中斷按中斷優(yōu)先級(jí)依次執(zhí)行。2. 點(diǎn)陣顯示器(1)8*8點(diǎn)陣原理圖(2)8*8點(diǎn)陣實(shí)物圖圖為8×8點(diǎn)陣LED外觀及引腳圖,其等效電路如圖(2)所示,只要其對(duì)應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點(diǎn)亮,則Y0=1,X0=0即可。應(yīng)用時(shí)限流電阻可以放在X軸或Y軸(3)8*8點(diǎn)陣掃描方式LED一般采用掃描式顯示,實(shí)際運(yùn)用分為三種方式(1)點(diǎn)掃描(2)行列掃描16×64=1024Hz,周期小于1ms即可。若使用第二和第三種方式,則頻率必須大于16×8=128Hz,周期小于7.8ms即可符合視覺暫留要求。此外一次驅(qū)動(dòng)一列或一行(8顆LED
26、)時(shí)需外加驅(qū)動(dòng)電路提高電流,否則LED亮度會(huì)不足。(4)8*8點(diǎn)陣應(yīng)用舉例點(diǎn)陣內(nèi)部結(jié)構(gòu)及外形如下,8X8點(diǎn)陣共由64個(gè)發(fā)光二極管組成,且每個(gè)發(fā)光二極管是放置在行線和列線的交叉點(diǎn)上,當(dāng)對(duì)應(yīng)的某一行置1電平,某一列置0電平,則相應(yīng)的二極管就亮;如要將第一個(gè)點(diǎn)點(diǎn)亮,則9腳接高電平13腳接低電平,則第一個(gè)點(diǎn)就亮了;如果要將第一行點(diǎn)亮,則第9腳要接高電平,而(13、3、4、10、6、11、15、16)這些引腳接低電平,那么第一行就會(huì)點(diǎn)亮;如要將第一列點(diǎn)亮,則第13腳接低電平,而(9、14、8、12、1、7、2、5)接高電平,那么第一列就會(huì)點(diǎn)亮。 一般我們使用點(diǎn)陣顯示漢字是用的16*16的點(diǎn)陣宋體字庫,所
27、謂16*16,是每一個(gè)漢字在縱、橫各16點(diǎn)的區(qū)域內(nèi)顯示的。也就是說得用四個(gè)8*8點(diǎn)陣組合成一個(gè)16*16的點(diǎn)陣。如下圖所示,要顯示“你”則相應(yīng)的點(diǎn)就要點(diǎn)亮,由于我們的點(diǎn)陣在列線上是低電平有效,而在行線上是高電平有效,所以要顯示“你”字的話,它的位代碼信息要取反,即所有列(1316腳)送(1111011101111111,0xF7,0x7F),而第一行(9腳)送1信號(hào),然后第一行送0。再送第二行要顯示的數(shù)據(jù)(1316腳)送(1111011101111111,0xF7,0x7F),而第二行(14腳)送1信號(hào)。依此類推,只要每行數(shù)據(jù)顯示時(shí)間間隔夠短,利用人眼的視覺暫停作用,這樣送16次數(shù)據(jù)掃描完16
28、行后就會(huì)看到一個(gè)“你”字;第二種送數(shù)據(jù)的方法是字模信號(hào)送到行線上再掃描列線也是同樣的道理。同樣以“你”字來說明,16行(9、14、8、12、1、7、2、5)上送(0000000000000000,0x00,0x00)而第一列(13腳)送、“0”。同理掃描第二列。當(dāng)行線上送了16次數(shù)據(jù)而列線掃描了16次后一個(gè)“你”字也就顯示出來了。 因此,形成的列代碼為00H,00H,3EH,41H,41H,3EH,00H,00H;只要把這些代碼分別依次送到相應(yīng)的列線上面,即可實(shí)現(xiàn)“0”的數(shù)字顯示。3.驅(qū)動(dòng)芯片4-16譯碼器CC4514(1)推薦工作條件電源電壓范圍 .3V15V輸入電壓范圍.0VVDD(2)工
29、作溫度范圍M 類.55125E 類 .4085(3)極限值電源電壓 .0.5V18V輸入電壓 0.5VVDD+0.5V輸入電流 .±10mA儲(chǔ)存穩(wěn)定.65150CD4514引腳圖三 廣告控制器系統(tǒng)設(shè)計(jì)1.系統(tǒng)硬件設(shè)計(jì)(1)主控制器ATmega8本控制系統(tǒng)采用存儲(chǔ)容量大的AVR單片機(jī)ATmega8作為主控制器,直接可以將容量較大的系統(tǒng)字庫存儲(chǔ)在ATmega8內(nèi)部存儲(chǔ)器內(nèi),節(jié)約了資源,也使整個(gè)系統(tǒng)變得簡(jiǎn)潔。(2)點(diǎn)陣掃描驅(qū)動(dòng)電路掃描電路采用CD4514,即4-16的譯碼器來進(jìn)行行列掃描,用單片機(jī)控制其選通端INH來控制送行列字庫碼,控制掃描,并在輸出端加一個(gè)非門,來提高其驅(qū)動(dòng)能力,以滿足
30、點(diǎn)陣發(fā)光的需求。2.系統(tǒng)軟件設(shè)計(jì)(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("自己編的練習(xí)程序,");print_char("顯示效果與延時(shí)參數(shù)和電腦速度有很大關(guān)系.");print_char("我的電
31、腦太差運(yùn)行起來老是一頓一頓的_");print_char("相信換臺(tái)好點(diǎn)的電腦會(huì)有更好的效果! 劉偉");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/緩存大小,對(duì)應(yīng)LED屏的大小#define buffer_long64/定義字模數(shù)據(jù)數(shù)組的大小,即所存字的個(gè)數(shù) #define gb16_tabel_long 62/* 利用定時(shí)器1 定時(shí)掃描LED屏 */* 定時(shí)參數(shù)對(duì)顯示效果影響很大 */#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;/移動(dòng)方向 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 )/如果字向左移動(dòng)就順序讀字模 for (k=0; k<32; k+)d0 = gb_16j.maskk;k+;d1 = gb_16j.maskk;move_to_buffer (d0,d1);delay(1); else /如果字向右移動(dòng)就逆序讀字模 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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025私人合伙股權(quán)分配協(xié)議書-智能交通系統(tǒng)建設(shè)合作3篇
- 2025年度知識(shí)產(chǎn)權(quán)糾紛調(diào)解與仲裁常年顧問服務(wù)合同4篇
- 2025年版農(nóng)產(chǎn)品批發(fā)市場(chǎng)入駐協(xié)議書模板4篇
- 印尼動(dòng)力煤2025年度環(huán)境保護(hù)與合規(guī)合同3篇
- 二零二五年度重型機(jī)械設(shè)備的買賣與安裝指導(dǎo)合同3篇
- 2025版汽車經(jīng)銷商庫存管理及銷售合同4篇
- 二零二五年科技公司股權(quán)激勵(lì)與分紅實(shí)施細(xì)則協(xié)議3篇
- 2025年度林業(yè)生態(tài)補(bǔ)償樹木交易合同4篇
- 2025年度服裝產(chǎn)品設(shè)計(jì)保密協(xié)議范本4篇
- 2025年度高端化妝品原料采購合作意向書(美容護(hù)膚)4篇
- 《請(qǐng)柬及邀請(qǐng)函》課件
- 中小銀行上云趨勢(shì)研究分析報(bào)告
- 機(jī)電安裝工程安全培訓(xùn)
- 遼寧省普通高中2024-2025學(xué)年高一上學(xué)期12月聯(lián)合考試語文試題(含答案)
- 青海原子城的課程設(shè)計(jì)
- 常州大學(xué)《新媒體文案創(chuàng)作與傳播》2023-2024學(xué)年第一學(xué)期期末試卷
- 麻醉蘇醒期躁動(dòng)患者護(hù)理
- 英語雅思8000詞匯表
- 小學(xué)好詞好句好段摘抄(8篇)
- JT-T-1059.1-2016交通一卡通移動(dòng)支付技術(shù)規(guī)范第1部分:總則
- 《茶藝文化初探》(教學(xué)設(shè)計(jì))-六年級(jí)勞動(dòng)北師大版
評(píng)論
0/150
提交評(píng)論