版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢 業(yè) 論 文</b></p><p> 基于單片機(jī)霓虹燈廣告牌的設(shè)計(jì)</p><p><b> 2011年9月5日</b></p><p> 學(xué)生姓名</p><p> 所 在 系機(jī)械工程系</p><p> 班 級(jí)09級(jí)機(jī)電3班&l
2、t;/p><p> 專(zhuān) 業(yè)機(jī)電一體化技術(shù)</p><p> 指導(dǎo)教師</p><p><b> 摘要</b></p><p> 隨著社會(huì)的發(fā)展,各種商家不斷的追求低成本,而點(diǎn)陣電子顯示屏的性價(jià)比越來(lái)越明顯,而電子顯示屏的關(guān)鍵就是單片機(jī)的運(yùn)用。</p><p> 由于單片機(jī)價(jià)格的低成本、高性
3、能,在自動(dòng)控制產(chǎn)品中得到了廣泛的應(yīng)用。本設(shè)計(jì)利用Atmel公司的AT89S52單片機(jī)對(duì)點(diǎn)陣電子顯示屏進(jìn)行開(kāi)發(fā),設(shè)計(jì)了實(shí)現(xiàn)所需功能的硬件電路,應(yīng)用匯編語(yǔ)言進(jìn)行軟件編程,并用實(shí)驗(yàn)板進(jìn)行演示、驗(yàn)證。</p><p> 隨著現(xiàn)代電子技術(shù)的發(fā)展,人們正處于一個(gè)信息時(shí)代。每天都要通過(guò)電視,廣播,通信,互聯(lián)網(wǎng)等多種每體獲取大量的信息。而現(xiàn)代信息的存儲(chǔ)和傳輸越來(lái)越趨于高科技化,LED電子顯示屏作為一個(gè)信息傳遞的媒介,在人們?nèi)粘?/p>
4、生活,生產(chǎn)中,起著不可替代的作用。在本文中對(duì)LED顯示屏的顯示技術(shù),做了全面的分析。以及國(guó)內(nèi)外的最新動(dòng)態(tài)和研究方向,并有大量的程序和電路圖,以及各種核心器件的介紹,使研究更加深刻,易懂。</p><p><b> 目錄</b></p><p><b> 摘要V</b></p><p><b> 1 緒論
5、3</b></p><p><b> 1.1 背景3</b></p><p> 1.2 LED顯示屏的發(fā)展與應(yīng)用3</p><p> 1.3 本章小節(jié)4</p><p> 2LED顯示方式5</p><p> 3 系統(tǒng)硬件介紹8</p><p&g
6、t; 3.1 單片機(jī)介紹8</p><p><b> TYP14</b></p><p><b> OE15</b></p><p> 3.3復(fù)位電路的分析18</p><p> 3.4振蕩電路22</p><p> 3.5 驅(qū)動(dòng)電路23</p
7、><p> 3.6顯示電路24</p><p> 3.7本章小節(jié)24</p><p><b> 4 軟件設(shè)計(jì)25</b></p><p> 4.1單片機(jī)延時(shí)子程序25</p><p> 4.2點(diǎn)陣的移動(dòng)27</p><p> 4.3主程序模塊設(shè)計(jì)31&l
8、t;/p><p> 4.4 本章小節(jié)31</p><p><b> 5 系統(tǒng)調(diào)試33</b></p><p> 附錄A:實(shí)驗(yàn)板原理圖34</p><p><b> 參考文獻(xiàn)35</b></p><p><b> 1 緒論</b></p
9、><p><b> 1.1 背景</b></p><p> 隨著微處理器和微型計(jì)算機(jī)的問(wèn)世,加之超大規(guī)模集成電路的發(fā)展以及軍事、通信、工業(yè)自動(dòng)化、機(jī)電一體化技術(shù)的需求,使微型機(jī)向兩個(gè)方向發(fā)展:一個(gè)是向高速、性能優(yōu)異的高檔微型機(jī)方向發(fā)展;另一個(gè)是向簡(jiǎn)單可靠、小巧便宜的單片機(jī)方向發(fā)展。單片機(jī)自1974年美國(guó)仙童公司生產(chǎn)出世界上第一塊單片機(jī)F8,迄今已有二十多年了。由于單片
10、機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗低、使用方便、價(jià)格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動(dòng)化、汽車(chē)電子、PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。</p><p> 本文討論的單片機(jī)點(diǎn)陣電子顯示屏的核心是目前應(yīng)用極為廣泛的51系列單片機(jī),配置了16×16的顯示屏,構(gòu)成了一個(gè)可編程的LED顯示器,
11、具有可靠性高,功能多、應(yīng)用廣泛等特點(diǎn)。不僅能滿足所需要求而且還有很多功能可供擴(kuò)展,有著廣泛的應(yīng)用領(lǐng)域。</p><p> 1.2 LED顯示屏的發(fā)展與應(yīng)用 </p><p> LED顯示器(屏)的優(yōu)點(diǎn),具有視角大、亮度高、色彩艷麗的特點(diǎn),現(xiàn)已十分廣泛的應(yīng)用在體育場(chǎng)館,大屏幕顯示系統(tǒng)可以顯示比賽實(shí)況及比賽比分、時(shí)間、精彩回放等;在交通運(yùn)輸行業(yè),可以顯示道路運(yùn)行情況;在金融行業(yè),可以實(shí)
12、時(shí)顯示金融信息,如股票、匯率、利率等:在商業(yè)郵電系統(tǒng),可以向廣大顧客顯示通知、消息、廣告,在商業(yè)領(lǐng)域可以顯示新品信息、促銷(xiāo)方式等等。具調(diào)查顯示,人們接收的信息有2/3的信息是通過(guò)眼睛取得的。顯示技術(shù)還應(yīng)用于工業(yè)生產(chǎn)、軍事、醫(yī)療單位、公安系統(tǒng)乃至宇航事業(yè)等國(guó)民經(jīng)濟(jì)、社會(huì)生活和軍事領(lǐng)域中,并起著重要作用,顯示技術(shù)已經(jīng)成為現(xiàn)代人類(lèi)社會(huì)生活的一項(xiàng)不可或缺的技術(shù)。</p><p><b> 1.3 本章小節(jié)&l
13、t;/b></p><p> 本章主要介紹了課題背景和課題意義,對(duì)單片機(jī)的優(yōu)點(diǎn)及結(jié)構(gòu)作了簡(jiǎn)要敘述,也對(duì)本系統(tǒng)的應(yīng)用及概況進(jìn)行了說(shuō)明。</p><p><b> LED顯示方式</b></p><p><b> 2.1顯示的步驟</b></p><p> 漢字顯示屏用于顯示漢字、字符及圖
14、像信息,在公共汽車(chē)、銀行、醫(yī)院及戶外廣告等地方都有廣泛的應(yīng)用。下面是簡(jiǎn)單的漢字顯示屏的制作,由單片機(jī)控制漢字的顯示內(nèi)容。為了降低成本,使用了四塊8×8的LED點(diǎn)陣發(fā)光管的模塊,組成了一個(gè)16×16的LED點(diǎn)陣顯示屏,如圖2.10所示。在這里僅做了四個(gè)漢字的顯示,在實(shí)際的使用中可以根據(jù)這個(gè)原理自行的擴(kuò)展顯示的漢字,下面是介紹漢字顯示的原理。 </p><p> 圖2.10 四塊8×
15、8的LED點(diǎn)陣組成16×16的LED點(diǎn)陣</p><p> LED驅(qū)動(dòng)顯示采用動(dòng)態(tài)掃描方法,動(dòng)態(tài)掃描方式是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)多行的同名列共用一套列驅(qū)動(dòng)器。以16×16點(diǎn)陣為例,把所有同一行的發(fā)光管的陽(yáng)極連在一起,把所有同一列的發(fā)光管的陰極連在一起(共陽(yáng)的接法),先送出對(duì)應(yīng)第1行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1行使其燃亮一定的時(shí)間,然后熄滅;再送出第2行的數(shù)據(jù)并鎖存,
16、然后選通第2行使其燃亮相同的時(shí)間,然后熄滅;….第16行之后,又重新燃亮第1行,反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺(jué)暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形。該方法能驅(qū)動(dòng)較多的LED,控制方式較靈活,而且節(jié)省單片機(jī)的資源。</p><p> 顯示數(shù)據(jù)傳輸采用串行傳輸?shù)姆椒ǎ刂齐娐房梢灾挥靡桓盘?hào)線,將列數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器,在硬件方面無(wú)疑是十分經(jīng)濟(jì)的。但串行傳輸過(guò)程較長(zhǎng),數(shù)據(jù)按順
17、序一位一位地輸出給列驅(qū)動(dòng)器,只有當(dāng)一行的各列數(shù)據(jù)都已傳輸?shù)轿恢螅@一行的各列才能并行地進(jìn)行顯示。對(duì)于串行傳輸方式來(lái)說(shuō),列數(shù)據(jù)準(zhǔn)備時(shí)間可能相當(dāng)長(zhǎng),在行掃描周期確定的情況下,留給行顯示的時(shí)間就太少了,以致影響到LED的亮度。</p><p> 采用串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時(shí)間矛盾,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要有鎖存功能
18、。對(duì)于列數(shù)據(jù)準(zhǔn)備來(lái)說(shuō),它應(yīng)能實(shí)現(xiàn)串入并出的移位功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時(shí),串行移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會(huì)影響本行的顯示。</p><p> LED點(diǎn)陣顯示模塊進(jìn)行的方法有兩種:</p><p> ?。?)水平方向(X方向)掃描,即逐列掃描的方式(簡(jiǎn)稱列掃描方式):此時(shí)用一個(gè)P口輸出列碼決定哪一列能亮(相當(dāng)于位碼),用另一個(gè)P口輸出行碼(列數(shù)據(jù))
19、,決定該行上那哪個(gè)LED亮(相當(dāng)于段碼)。能亮的列從左到右掃描完16列(相當(dāng)于位碼循環(huán)移動(dòng)16次)即顯示出一個(gè)完整的圖像。</p><p> ?。?)豎直方向(Y方向)掃描,即逐行掃描方式(簡(jiǎn)稱行掃描方式):此時(shí)用一個(gè)P口輸出決定哪一行能亮(相當(dāng)于位碼),另一個(gè)P口輸出列碼(行數(shù)據(jù),行數(shù)據(jù)為將列數(shù)據(jù)的點(diǎn)陣旋轉(zhuǎn)90度的數(shù)據(jù))決定該行上哪些LED燈亮(相當(dāng)于段碼)。能亮的行從上向下掃描完16行(相當(dāng)于位碼循環(huán)移位16
20、次)即顯示一幀完整的圖像。</p><p> 本設(shè)計(jì)應(yīng)用的是第一種的掃描方法,即水平方向(X方向)掃描。</p><p> 每一個(gè)字由16行16列的點(diǎn)陣形成顯示,即每個(gè)字均由256個(gè)點(diǎn)陣來(lái)表示,我們可以把每一個(gè)點(diǎn)理解為一個(gè)像素。一般我們使用的16×16的點(diǎn)陣宋體字庫(kù),即所謂的16×16,是每一個(gè)漢字在縱橫各16點(diǎn)的區(qū)域內(nèi)顯示的。漢字庫(kù)從該位置起的32字節(jié)信息記錄了該
21、字的字模信息。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內(nèi)的任何圖形。</p><p> 我們以水平方向(x方向)掃描顯示漢字的“江”為例來(lái)說(shuō)明其掃描原理,每一個(gè)字由16行16列的點(diǎn)陣組成顯示,如圖下的,如果用8位的AT89S51的單片機(jī)來(lái)控制,由于單片機(jī)的總線為8位,一個(gè)字需要拆分成兩個(gè)部分。一般我們把它分解成上部分和下部分,上部分由8*16的點(diǎn)陣組成,下部分也由8*16的</p>
22、;<p> 點(diǎn)陣組成。在本例中單片機(jī)首先顯示的是左上角的第一列的部分,即第0列的P00~P07口。方向?yàn)镻00到P07,顯示漢字“江”的時(shí)候,P00到P04都是滅的,P05亮,即二進(jìn)制00001000,轉(zhuǎn)換為16進(jìn)制為08H,如圖2.11所示。</p><p> 上半部分第一列完成之后,繼續(xù)掃描下半部分的第一列,為了接線的方便,我們?nèi)栽O(shè)計(jì)成由上往下的掃描方式,即從P27向P20方向掃描,從上圖可
23、以看到,這一列所有的都不亮,所以代碼為00000000,16進(jìn)制為00H,然后單片機(jī)轉(zhuǎn)向上半部的第二列,除了P05亮,其他的都不亮,即為00000100,16進(jìn)制為04H,這一列掃描完成之后繼續(xù)進(jìn)行下半部分的掃描,除了P21亮,其他的為不亮,為二進(jìn)制00100000,即16進(jìn)制20H。</p><p><b> 2.2 本章小結(jié)</b></p><p> 通過(guò)本章
24、的的學(xué)習(xí),能正確的理解LED的顯示方式,為后續(xù)的硬件和編程打好理論基礎(chǔ)。</p><p><b> 3 系統(tǒng)硬件介紹</b></p><p><b> 3.1 單片機(jī)介紹</b></p><p> 單片機(jī)(Microcontroller,又稱微處理器)是在一塊硅片上集成了各種部件的微型機(jī),這些部件包括中央處理器CPU
25、、數(shù)據(jù)存儲(chǔ)器RAM、程序存儲(chǔ)器ROM、定時(shí)器/計(jì)數(shù)器和多種I/O接口電路。</p><p> 8051單片機(jī)的基本結(jié)構(gòu)見(jiàn)圖2。</p><p> 圖2 8051單片機(jī)的基本結(jié)構(gòu)</p><p> 8051系列的內(nèi)部結(jié)構(gòu)可以劃分為CPU、存儲(chǔ)器、并行口、串行口、定時(shí)器/計(jì)數(shù)器、中斷邏輯幾部分。</p><p><b> ?。?)
26、中央處理器</b></p><p> 8051的中央處理器由運(yùn)算器和控制器構(gòu)成,其中包括若干特殊功能寄存器(SFR)。算術(shù)邏輯單元ALU能對(duì)數(shù)據(jù)進(jìn)行加、減、乘、除等算術(shù)運(yùn)算;“與”、“或”、“異或”等邏輯運(yùn)算以及位操作運(yùn)算。</p><p> ALU只能進(jìn)行運(yùn)算,運(yùn)算的操作數(shù)可以事先存放到累加器ACC或寄存器TMP中,運(yùn)算結(jié)果可以送回ACC或通用寄存器或存儲(chǔ)單元中,累加器A
27、CC也可以寫(xiě)成A。B寄存器在乘法指令中可以用來(lái)存放一個(gè)乘數(shù),在除法指令中用來(lái)存放除數(shù),運(yùn)算后B中為部分運(yùn)算結(jié)果。ALU主要用于完成二進(jìn)制數(shù)據(jù)的算術(shù)和邏輯運(yùn)算,并通過(guò)對(duì)運(yùn)算結(jié)果的判斷影響程序狀態(tài)字寄存器PSW中有關(guān)位的狀態(tài)。 </p><p> 程序狀態(tài)字PSW是個(gè)8位寄存器,用來(lái)寄存本次運(yùn)算的特征信息,用到其中七位。PSW的格式如下所示,其各位的含義如表1。</p><p> 表1程序
28、狀態(tài)字PSW</p><p> CY:進(jìn)位標(biāo)志。在進(jìn)行加法或減法運(yùn)算時(shí),若運(yùn)算結(jié)果的最高位有進(jìn)位或借位,CY=1,否則CY=0,在執(zhí)行位操作指令時(shí),CY作為位累加器。</p><p> AC:輔助進(jìn)位標(biāo)志。在進(jìn)行加法或減法運(yùn)算時(shí),若低半字節(jié)向高半字節(jié)有進(jìn)位或借位, AC=1,否則AC=0,AC還作為BCD碼運(yùn)算調(diào)整時(shí)的判別位。</p><p> F0:用戶可設(shè)
29、定的標(biāo)志位,可置位/復(fù)位,也可供測(cè)試。</p><p> RS1和RS0:工作寄存器組選擇,如表2所示。</p><p> 表2 RS1和RS0工作寄存器組選擇</p><p> OV:溢出標(biāo)志。當(dāng)兩個(gè)帶符號(hào)的單字節(jié)數(shù)進(jìn)行運(yùn)算,結(jié)果超出-128~+127的范圍時(shí),OV=1,表示有溢出,否則OV=0表示無(wú)溢出。</p><p> P:奇
30、偶校驗(yàn)標(biāo)志。每條指令指行完畢后,都按照累加器A中“1”的個(gè)數(shù)來(lái)決定P值,當(dāng)“1”的個(gè)數(shù)為奇數(shù)時(shí),P=1,否則P=0。 </p><p> PSW中的D1位為保留位,對(duì)于8051來(lái)說(shuō)沒(méi)有意義,對(duì)于8052來(lái)說(shuō)為用戶標(biāo)志,與F0相同。</p><p> 控制器包括程序計(jì)數(shù)器PC、指令寄存器、指令譯碼器、數(shù)據(jù)指針DPTR、堆棧指針SP、緩沖器以及定時(shí)與控制電路等??刂齐娐吠瓿芍笓]控制工作,協(xié)
31、調(diào)單片機(jī)各部分正常工作。</p><p> 程序計(jì)數(shù)器PC:當(dāng)一條指令按PC所指向的地址從程序存儲(chǔ)器中取出之后,PC的值會(huì)自動(dòng)增量,即指向下一條指令。</p><p> 堆棧指針SP:用來(lái)指示堆棧的起始地址。80C51單片機(jī)的堆棧位于片內(nèi)RAM中,而且屬于“上長(zhǎng)型”堆棧,復(fù)位后SP被初始化為07H,使得堆棧實(shí)際上由08H單元開(kāi)始。</p><p> 指令譯碼器
32、:當(dāng)指令送入指令譯碼器后,由譯碼器對(duì)該指令進(jìn)行譯碼,CPU根據(jù)譯碼器輸出的電平信號(hào)使定時(shí)控制電路產(chǎn)生執(zhí)行該指令所需要的各種控制信號(hào)。</p><p> 數(shù)據(jù)指針寄存器DRTR:它是一個(gè)16位寄存器,由高位字節(jié)DPH和低位字節(jié)DPL組成,用來(lái)存放16位數(shù)據(jù)存儲(chǔ)器的地址,以便對(duì)片外64kB的數(shù)據(jù)RAM區(qū)進(jìn)行讀寫(xiě)操作。片內(nèi)RAM有256個(gè)字節(jié),其中00H~7FH地址空間是直接尋址區(qū),該區(qū)域內(nèi)從00H~1FH地址為工作
33、寄存器區(qū),安排了4組工作寄存器,每組都為R0~R7,在某一時(shí)刻,CPU只能使用其中任意一組工作寄存器,由程序狀態(tài)字PSW中RS0和RS1的狀態(tài)決定。</p><p><b> ?。?)存儲(chǔ)器組織</b></p><p> 8051單片機(jī)在物理上有三個(gè)存儲(chǔ)空間:片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM 、片外數(shù)據(jù)存儲(chǔ)器RAM 、程序存儲(chǔ)器ROM 。</p><p>
34、; 程序存儲(chǔ)器ROM地址空間為64kB,片外數(shù)據(jù)存儲(chǔ)器RAM也有64kB的尋址區(qū),在地址上是與ROM重迭的。8051單片機(jī)通過(guò)不同信號(hào)來(lái)選通ROM或RAM。當(dāng)從外部ROM中取指令時(shí),采用選通信號(hào)PSEN,而從外部RAM中讀寫(xiě)數(shù)據(jù)時(shí)則采用讀RD和寫(xiě)WR信號(hào)或來(lái)選通,因此不會(huì)因地址重迭而發(fā)生混亂。 </p><p> 片內(nèi)RAM的20H~2FH地址單元為位尋址區(qū),其中每個(gè)字節(jié)的每一位都規(guī)定了位地址。每個(gè)地址單元除
35、了可進(jìn)行字節(jié)操作之外,還可進(jìn)行位操作。</p><p> 片內(nèi)RAM的80H~FFH地址空間是特殊功能寄存器SFR區(qū),對(duì)于51子系列在該區(qū)域內(nèi)安排了21個(gè)特殊功能寄存器,對(duì)于52子系列則在該區(qū)域內(nèi)安排了26個(gè)特殊功能寄器,同時(shí)擴(kuò)展了128個(gè)字節(jié)的間接尋址片內(nèi)RAM,地址也為80~FFH,與SFR區(qū)地址重迭。</p><p> 8051的存儲(chǔ)器組成結(jié)構(gòu)如圖3所示。</p>
36、<p> 圖3 8051的存儲(chǔ)器組成結(jié)構(gòu)</p><p><b> ?。?)管腳說(shuō)明</b></p><p><b> VCC:供電電壓。</b></p><p><b> GND:接地。</b></p><p> P0口(P0.0~P0.7):該端口為漏極
37、開(kāi)路的8位準(zhǔn)雙向口,它為外部低8位地址線和8位數(shù)據(jù)線復(fù)用端口驅(qū)動(dòng)能力為8個(gè)LSTTL負(fù)載。</p><p> P1口(P1.0~P1.7):它是一個(gè)內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P1口的驅(qū)動(dòng)能力為4個(gè)LSTTL負(fù)載。</p><p> P2口(P2.0~P2.7):它為一個(gè)內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P2口的驅(qū)動(dòng)能力也為4個(gè)LSTTL負(fù)載。在訪問(wèn)外部程序存儲(chǔ)器時(shí),作為高8
38、位地址線。</p><p> P3口(P3.0~P3.7):為內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P3口除了作為一般的I/O口使用之外,每個(gè)引腳都具有第二功能。</p><p> P3口也可作為AT89C51的一些特殊功能口,如下所示:</p><p> P3.0 RXD(串行輸入口)</p><p> P3.1 TXD(串行輸出口)
39、</p><p> P3.2 /INT0(外部中斷0)</p><p> P3.3 /INT1(外部中斷1)</p><p> P3.4 T0(計(jì)時(shí)器0 外部輸入)</p><p> P3.5 T1(計(jì)時(shí)器1 外部輸入)</p><p> P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)</p><
40、;p> P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p> 時(shí)鐘電路引腳XTAL1和XTAL2:</p><p> XTAL1:接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,若使用外部TTL時(shí)鐘時(shí),該引腳必須接地。 XTAL2:接外部晶振和微調(diào)電容的另
41、一端,在片內(nèi)它是振蕩器倒相放大器的輸出,若使用外部TTL時(shí)鐘時(shí),該引腳為外部時(shí)鐘的輸入端。</p><p> 地址鎖存允許ALE:</p><p> 系統(tǒng)擴(kuò)展時(shí),ALE用于控制地址鎖存器鎖存P0口輸出的低8位地址,從而實(shí)現(xiàn)數(shù)據(jù)與低位地址的復(fù)用。</p><p> 外部程序存儲(chǔ)器讀選通信號(hào)PSEN:</p><p> PSEN是外部程序
42、存儲(chǔ)器的讀選通信號(hào),低電平有效。</p><p> 程序存儲(chǔ)器地址允許輸入端EA /VPP: </p><p> 當(dāng)EA為高電平時(shí),CPU執(zhí)行片內(nèi)程序存儲(chǔ)器指令,但當(dāng)PC中的值超過(guò)0FFFH時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外程序存儲(chǔ)器指令。當(dāng)EA為低電平時(shí),CPU只執(zhí)行片外程序存儲(chǔ)器指令。</p><p><b> 復(fù)位信號(hào)RST:</b></
43、p><p> 該信號(hào)高電平有效,在輸入端保持兩個(gè)機(jī)器周期的高電平后,就可以完成復(fù)位操作。</p><p><b> 3.2零件介紹</b></p><p> 3.2.1發(fā)光二極管</p><p> 普通發(fā)光二極管的正向飽和壓降為1.6V~2.1V, 正向工作電流為5~20MA</p><p>
44、<b> LED的特性:</b></p><p><b> 1.極限參數(shù)的意義</b></p><p> (1)允許功耗Pm:允許加于LED兩端正向直流電壓與流過(guò)它的電流之積的最大值。超過(guò)此值,LED發(fā)熱、損壞。 </p><p> ?。?)最大正向直流電流IFm:允許加的最大的正向直流電流。超過(guò)此值可損壞二極管。
45、 </p><p> ?。?)最大反向電壓VRm:所允許加的最大反向電壓。超過(guò)此值,發(fā)光二極管可能被擊穿損壞。 </p><p> ?。?)工作環(huán)境topm:發(fā)光二極管可正常工作的環(huán)境溫度范圍。低于或高于此溫度范圍,發(fā)光二極管將不能正常工作,效率大大降低</p><p><b> 電參數(shù)的意義</b></p><p>
46、; 正向工作電流If:它是指發(fā)光二極管正常發(fā)光時(shí)的正向電流值。在實(shí)際使用中應(yīng)根據(jù)需要選擇IF在0.6?IFm以下。 </p><p> 正向工作電壓VF:參數(shù)表中給出的工作電壓是在給定的正向電流下得到的。一般是在IF=20mA時(shí)測(cè)得的。發(fā)光二極管正向工作電壓VF在1.4~3V。在外界溫度升高時(shí),VF將下降。 </p><p> (3)V-I特性:發(fā)光二極管的電壓與電流的關(guān)系
47、 </p><p> 在正向電壓正小于某一值(叫閾值)時(shí),電流極小,不發(fā)光。當(dāng)電壓超過(guò)某一值后,正向電流隨電壓迅速增加,發(fā)光。由V-I曲線可以得出發(fā)光管的正向電壓,反向電流及反向電壓等參數(shù)。正向的發(fā)光管反向漏電流IR<10μA以下。</p><p> 3.2.2譯碼器74HC595的介紹</p><p> 8位串行輸入/輸出或者并行輸出移位寄存器,具有
48、高阻關(guān)斷狀態(tài)。三態(tài)。 </p><p><b> 1 特點(diǎn)</b></p><p><b> 8位串行輸入</b></p><p> 8位串行或并行輸出 </p><p> 存儲(chǔ)狀態(tài)寄存器,三種狀態(tài)</p><p> 輸出寄存器可以直接清除</p>
49、<p> 100MHz的移位頻率</p><p><b> 2 輸出能力</b></p><p><b> 并行輸出,總線驅(qū)動(dòng)</b></p><p><b> 串行輸出;標(biāo)準(zhǔn)</b></p><p><b> 中等規(guī)模集成電路</b>
50、;</p><p><b> 3 應(yīng)用</b></p><p> 串行到并行的數(shù)據(jù)轉(zhuǎn)換。</p><p><b> 4 描述</b></p><p> 595是告訴的硅結(jié)構(gòu)的CMOS器件,</p><p> 兼容低電壓TTL電路,遵守JEDEC標(biāo)準(zhǔn)。</p&g
51、t;<p> 595是具有8位移位寄存器和一個(gè)存儲(chǔ)器,三態(tài)輸出功能。</p><p> 移位寄存器和存儲(chǔ)器是分別的時(shí)鐘。</p><p> 數(shù)據(jù)在SCHcp的上升沿輸入,在STcp的上升沿進(jìn)入的存儲(chǔ)寄存器中去。如果兩個(gè)時(shí)鐘連在一起,則移位寄存器總是比存儲(chǔ)寄存器早一個(gè)脈沖。</p><p> 移位寄存器有一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出(
52、Q7’),和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線。</p><p><b> 5 參考數(shù)據(jù)</b></p><p> CPD決定動(dòng)態(tài)的能耗,</p><p> PD=CPD×VCC×f1+∑(CL×VCC2×f0)
53、</p><p> F1=輸入頻率,CL=輸出電容 f0=輸出頻率(MHz) Vcc=電源電壓</p><p><b> 6 引腳說(shuō)明</b></p><p><b> 7 功能表</b></p><p><b> H=高電平狀態(tài)</b></p>&l
54、t;p><b> L=低電平狀態(tài)</b></p><p><b> ↑=上升沿</b></p><p><b> ↓=下降沿</b></p><p><b> Z=高阻</b></p><p><b> NC=無(wú)變化</b&
55、gt;</p><p><b> ×=無(wú)效</b></p><p> 當(dāng)MR為高電平,OE為低電平時(shí),數(shù)據(jù)在SHCP上升沿進(jìn)入移位寄存器,在STCP上升沿輸出到并行端口。</p><p> 3.2.3譯碼器74HC138的介紹</p><p> CD74HC138 ,CD74HC238和CD74HCT1
56、38 , CD74HCT238是高速硅柵CMOS解碼器,適合內(nèi)存地址解碼或數(shù)據(jù)路由應(yīng)用。74HC138 作用原理于高性能的存貯譯碼或要求傳輸延遲時(shí)間短的數(shù)據(jù)傳輸系統(tǒng),在 高性能存貯器系統(tǒng)中,用這種譯碼器可以提高譯碼系統(tǒng)的效率。將快速賦能電路用于高速存貯器時(shí),譯碼器的延遲時(shí)間和存貯器的賦能時(shí)間通常小于存貯器的典型存取時(shí)間,這就是說(shuō)由肖特基鉗位的系統(tǒng)譯碼器所引起的有效系統(tǒng)延遲可以忽略不計(jì)。HC138 按照三位二進(jìn)制輸入碼和賦能輸入條件,從8
57、 個(gè)輸出端中譯出一個(gè) 低電平輸出。兩個(gè)低電平有效的賦能輸入端和一個(gè)高電平有效的賦能輸入端減少了擴(kuò)展所需要的外接門(mén)或倒相器,擴(kuò)展成24 線譯碼器不需外接門(mén);擴(kuò)展成32 線譯碼器,只需要接一個(gè)外接倒相器。在解調(diào)器應(yīng)用中,賦能輸入端可用作數(shù)據(jù)輸入端。</p><p> 74hc138引腳圖</p><p> 1,2,3 A0--A1
58、 地址輸入端</p><p> 4,5 /E1,/E2 輸入使能端(低電平有效)</p><p> 6 E3 輸入使能端(高電平有效)</p><p> 8
59、 GND 接地端</p><p> 15, 14, 13, 12, 11, 10, 9, 7/Y0 -- /Y7輸出端(低電平有效)</p><p> 16 VCC 電源</p>&l
60、t;p> 74HC138功能表</p><p> 3.3復(fù)位電路的分析</p><p> 復(fù)位信號(hào)RST高電平有效,在輸入端保持兩個(gè)機(jī)器周期的高電平后,就可以完成復(fù)位操作。</p><p> 復(fù)位的實(shí)現(xiàn)通常用2種方式:開(kāi)機(jī)上電復(fù)位和外部手動(dòng)復(fù)位,本設(shè)計(jì)用的是外部手動(dòng)復(fù)位。電路圖6如下:</p><p><b> 圖6
61、 單片機(jī)復(fù)位圖</b></p><p> 圖7 單片機(jī)最小應(yīng)用系統(tǒng)原理圖</p><p> 注:該最小系統(tǒng)由按鍵復(fù)位RESET電路、晶體振蕩電路以及I/O接口電路組成。</p><p><b> 硬件電路設(shè)計(jì)</b></p><p> 本系統(tǒng)硬件部分主要由:51最小系統(tǒng)、16*16點(diǎn)陣模塊、列控制模塊
62、、行控制模塊這幾個(gè)模塊組成。各模塊的原理圖如下:</p><p> 我們運(yùn)用的是將四個(gè)8*8的點(diǎn)陣焊接成為一個(gè)16*16的點(diǎn)陣屏</p><p><b> 16*16點(diǎn)陣模塊</b></p><p><b> 列控制模塊</b></p><p><b> 行控制模塊</b&g
63、t;</p><p><b> 51最小系統(tǒng)</b></p><p><b> 3.4振蕩電路</b></p><p> 單片機(jī)的定時(shí)控制功能是由片內(nèi)的時(shí)鐘電路和定時(shí)電路來(lái)完成的,而片內(nèi)的時(shí)鐘產(chǎn)生有兩種方式:一種是內(nèi)部時(shí)鐘方式;一種是外部時(shí)鐘方式,如圖3-3(a)、(b)所示。</p><p>
64、; 圖3-3 HMOC型MCS—51單片機(jī)時(shí)鐘產(chǎn)生方式</p><p> 內(nèi)部振蕩器方式 (b)外部振蕩器方式</p><p> 采用內(nèi)部時(shí)鐘方式時(shí),如圖3-3(a)所示。片內(nèi)的高增益反相放大器通過(guò)XTAL1、XTAL2外接作為反饋元件的片外晶體振蕩器(呈感性)與電容組成的并聯(lián)諧振回路構(gòu)成一個(gè)自激振蕩器,向內(nèi)部時(shí)鐘電路提供振蕩時(shí)鐘。振蕩器的頻率主要取決于晶體的振蕩頻率,一般晶體
65、可在1.2~12MHz之間任選,電容C1、C2可在5~30pF之間選擇,電容的大小對(duì)振蕩頻率有微小的影響,可起頻率微調(diào)作用。</p><p> 采用外部時(shí)鐘方式時(shí),如圖2-4(b)所示。外部振蕩信號(hào)通過(guò)XTAL2端直接接至內(nèi)部時(shí)鐘電路,這時(shí)內(nèi)部反相放大器的輸入端XTAL1端應(yīng)接地。通常外接振蕩信號(hào)為低于12MHz的方波信號(hào)。</p><p> 本電路選用的是內(nèi)部振蕩器方式,如圖3-3(
66、a)所示。選用內(nèi)部振蕩器比選用外部時(shí)鐘電路簡(jiǎn)單并且易于實(shí)現(xiàn)。最重要的是此電路易于調(diào)試,而且精度高。</p><p><b> 3.5 驅(qū)動(dòng)電路</b></p><p> 3.5.1 驅(qū)動(dòng)器的基本結(jié)構(gòu) </p><p> 本文采用的驅(qū)動(dòng)器是74LS04(也就是六反相器),內(nèi)部結(jié)構(gòu)框圖如圖3-7所示。此集成片的內(nèi)部結(jié)構(gòu)非常簡(jiǎn)單,內(nèi)部由6個(gè)非
67、門(mén)構(gòu)成,主要達(dá)到驅(qū)動(dòng)的作用。因顯示器是共陽(yáng)極的,需要一定的電流才能達(dá)到顯示的作用,而單片機(jī)輸出為低電平,不能直接對(duì)顯示器進(jìn)行驅(qū)動(dòng),需要驅(qū)動(dòng)電路,也就是六個(gè)非門(mén)對(duì)單片機(jī)輸入的</p><p> 信號(hào)進(jìn)行反相后,得到所需的高電平,提</p><p> 供給顯示器,使顯示器能夠正常工作,因</p><p> 此達(dá)到了驅(qū)動(dòng)的作用。</p><p&g
68、t; 3.5.2驅(qū)動(dòng)控制原理</p><p> 用于發(fā)布消息、顯示漢字的點(diǎn)陣式LED顯示屏通常由若干塊LED點(diǎn)陣顯示模塊組成;用于顯示漢字、圖形的8*8單色LED顯示點(diǎn)陣模塊,每塊有64個(gè)LED器件。為了減少引腳且便于封裝,各種LED顯示點(diǎn)陣模塊都采用陣列形式排布,即在行列線的交點(diǎn)處接有顯示LED器件。因此,LED點(diǎn)陣顯示模塊的顯示驅(qū)動(dòng)只能采用動(dòng)態(tài)驅(qū)動(dòng)方式,每次最多只能點(diǎn)亮一行LED(共陽(yáng)形式LED顯示點(diǎn)陣模
69、塊)或一列LED(共陰形式LED顯示點(diǎn)陣模塊)。通過(guò)單片機(jī)總線操作控制來(lái)完成對(duì)每一個(gè)LED點(diǎn)陣顯示模塊內(nèi)每個(gè)LED顯示點(diǎn)的亮、暗控制操作。以此類(lèi)推,可實(shí)現(xiàn)整屏LED點(diǎn)陣的亮、暗控制,從而實(shí)現(xiàn)LED顯示屏漢字或圖象的顯示控制操作。 由此可知,選用此驅(qū)動(dòng)電路,可以很方便的達(dá)到所需要的驅(qū)動(dòng)電流,使顯示器能夠正常發(fā)光。同時(shí),使整個(gè)電路簡(jiǎn)單化,易于實(shí)現(xiàn)。</p><p><b> 3.6顯示電路<
70、;/b></p><p> 在數(shù)字系統(tǒng)和裝置中,經(jīng)常需要把數(shù)字、文字和符號(hào)等的二進(jìn)制編碼,翻譯成人們習(xí)慣的形式直觀的顯示出來(lái),以便于查看和對(duì)話。在計(jì)算機(jī)中,漢字以內(nèi)碼的形式進(jìn)行表示、交換、處理。需要顯示時(shí),由內(nèi)碼轉(zhuǎn)換成區(qū)位碼,利用區(qū)位碼在字庫(kù)中提取要顯示漢字的字模,然后根據(jù)字模信息在屏幕上以畫(huà)點(diǎn)的方法顯示出來(lái) 。用LED點(diǎn)陣模塊代替計(jì)算機(jī)屏幕,則每個(gè)LED對(duì)應(yīng)字模中的一個(gè)位,在控制器的控制下,讓LED根據(jù)
71、字模信息亮或滅,就可顯示漢字。</p><p><b> 3.7本章小節(jié)</b></p><p> 本章主要對(duì)芯片作了介紹,對(duì)其內(nèi)存單元作了詳細(xì)說(shuō)明,并對(duì)系統(tǒng)硬件(實(shí)驗(yàn)板)的結(jié)構(gòu)框圖和各功能電路作了說(shuō)明,以及這些電路在本設(shè)計(jì)中的用途。</p><p><b> 4 軟件設(shè)計(jì)</b></p><p&
72、gt; 4.1單片機(jī)延時(shí)子程序</p><p> 延時(shí)程序在單片機(jī)編程中使用非常廣泛,也很重要,在本畢業(yè)設(shè)計(jì)的程序中用到了延時(shí)子程序,所以在此詳細(xì)的敘述一下。在弄清延時(shí)程序指令的用法之前,要清楚的了解延時(shí)程序的基本概念,機(jī)器周期和指令周期的區(qū)別和聯(lián)系、相關(guān)指令的用法等。 </p><p> 我們知道程序設(shè)計(jì)是單片機(jī)開(kāi)發(fā)最重要的工作,而程序在執(zhí)行過(guò)程中常常需要完成延時(shí)的功能。例如在本設(shè)
73、計(jì)中,行向的掃描要控制每行的掃描時(shí)間,還有所有的字移動(dòng)有一定的時(shí)間間隔,而在所有的字移動(dòng)一遍結(jié)束的一瞬間到下一遍移動(dòng)開(kāi)始的一瞬間要有延時(shí),這時(shí)的延時(shí)可以和移動(dòng)的時(shí)間相同以保持移動(dòng)的連貫性,也可以不同作為每次從頭開(kāi)始的停頓,在上述就可以通過(guò)延時(shí)程序來(lái)完成。</p><p> 1. 機(jī)器周期和指令周期 </p><p> ?。?)機(jī)器周期是指單片機(jī)完成一個(gè)基本操作所花費(fèi)的時(shí)間,一般使用微秒來(lái)
74、計(jì)量單片機(jī)的運(yùn)行速度,51單片機(jī)的一個(gè)機(jī)器周期包括12 個(gè)時(shí)鐘振蕩周期,也就是說(shuō)如果51 單片機(jī)采用12MHz 晶振,那么執(zhí)行一個(gè)機(jī)器周期就只需要1μs;如果采用的是6MHz 的晶振,那么執(zhí)行一個(gè)機(jī)器周期就需要2 μs。 </p><p> ?。?)指令周期是指單片機(jī)執(zhí)行一條指令所需要的時(shí)間,一般利用單片機(jī)的機(jī)器周期來(lái)計(jì)量指令周期。 </p><p> 在51 單片機(jī)里有單周期指令(執(zhí)行
75、這條指令只需一個(gè)機(jī)器周期),雙周期指令(執(zhí)行這條指令只需要兩個(gè) 機(jī)器周期),四周期指令(執(zhí)行這條指令需要四個(gè)機(jī)器周期)。除了乘、除兩條指令是四周期指令,其余均 為單周期或雙周期指令。也就是說(shuō),如果51 單片機(jī)采用的是12MHz 晶振,那么它執(zhí)行一條指令一般只需 1~2 微秒的時(shí)間;如果采用的是6MHz 晶振,執(zhí)行一條指令一般就需2~4微秒的時(shí)間。</p><p> 以12MHZ晶振為例,指令周期、機(jī)器周期與時(shí)鐘
76、周期的關(guān)系是: </p><p> 指令周期:CPU執(zhí)行一條指令所需要的時(shí)間稱為指令周期,它是以機(jī)器周期為單位的,指令不同,所需的機(jī)器周期也不同。 </p><p> 時(shí)鐘周期:也稱為振蕩周期,一個(gè)時(shí)鐘周期=晶振的倒數(shù)。 </p><p> MCS-51單片機(jī)的一個(gè)機(jī)器周期=6個(gè)狀態(tài)周期=12個(gè)時(shí)鐘周期。 </p><p> MCS-
77、51單片機(jī)的指令有單字節(jié)、雙字節(jié)和三字節(jié)的,它們的指令周期不盡相同,一個(gè)單周期指令包含一個(gè)機(jī)器周期,即12個(gè)時(shí)鐘周期,所以一條單周期指令被執(zhí)行所占時(shí)間為12×(1/12000000)=1μs。 </p><p> 了解以上概念后,那么可以依據(jù)單片機(jī)器件手冊(cè)中89C51的指令執(zhí)行周期和其所用晶振頻率來(lái)完成需要精確延時(shí)時(shí)間的延時(shí)程序。 </p><p><b> 2.
78、延時(shí)指令 </b></p><p> 在單片機(jī)編程里面并沒(méi)有真正的延時(shí)指令,從上面的概念中我們知道單片機(jī)每執(zhí)行一條指令都需要一 定的時(shí)間,所以要達(dá)到延時(shí)的效果,只須讓單片機(jī)不斷地執(zhí)行沒(méi)有具體實(shí)際意義的指令,從而達(dá)到了延時(shí) 的效果。 </p><p> (1)數(shù)據(jù)傳送指令 MOV </p><p> 數(shù)據(jù)傳送指令功能是將數(shù)據(jù)從一個(gè)地方復(fù)制、拷貝到另一
79、個(gè)地方。 </p><p> 如:MOV R7,#80H ;將數(shù)據(jù)80H 送到寄存器R7,這時(shí)寄存器R7 里面存放著80H,就單這條 指令而言并沒(méi)有任何實(shí)際意義,而執(zhí)行該指令則需要一個(gè)機(jī)器周期。 </p><p> ?。?)空操作指令 NOP </p><p> 空操作指令功能只是讓單片機(jī)執(zhí)行沒(méi)有意義的操作,消耗一個(gè)機(jī)器周期。 </
80、p><p> ?。?)循環(huán)轉(zhuǎn)移指令 DJNZ </p><p> 循環(huán)轉(zhuǎn)移指令功能是將第一個(gè)數(shù)進(jìn)行減1 并判斷是否為0,不為0 則轉(zhuǎn)移到指定地點(diǎn);為0 則往下執(zhí)行。 </p><p> 如:DJNZ R7,KK ;將寄存器R7 的內(nèi)容減1 并判斷寄存器R7 里的內(nèi)容減完1 后是否為0,如果 不為0 則轉(zhuǎn)移到地址標(biāo)號(hào)為KK 的地方;如果為0 則執(zhí)行下一條指令。這條指令
81、需要2個(gè)機(jī)器周期。 </p><p> 循環(huán)轉(zhuǎn)移指令(DJNZ )除了可以給定地址標(biāo)號(hào)讓其跳轉(zhuǎn)外,還可以將地址標(biāo)號(hào)改成$,這樣 程序就跳回本指令執(zhí)行。例如: DJNZ R7,$ ;R7 內(nèi)容減1 不為0,則再次執(zhí)行本指令;為0 則往下執(zhí)行,當(dāng)R7 的值改為10 時(shí),則執(zhí)行完該條程序所需的時(shí)間為2*10=20 μs。</p><p> 利用以上三條指令的組合就可以比較精確地編寫(xiě)出所需要的
82、延時(shí)程序。</p><p><b> 4.2點(diǎn)陣的移動(dòng)</b></p><p> 以下以16×16點(diǎn)陣為例介紹點(diǎn)陣的移動(dòng)。要顯示一個(gè)字符,該字符的點(diǎn)陣數(shù)據(jù)可以列向(縱向)16點(diǎn)組字,又可以行向(橫向)16點(diǎn)組字。無(wú)論哪一種組字方法,都既可以顯示字符的水平方向的移動(dòng),又可以顯示豎直方向的移動(dòng)。</p><p> 4.2.1.顯示字
83、符的左右移動(dòng)</p><p> (1)列掃描方式左移動(dòng):列向組字顯示字符水平方向的移動(dòng)(左滾動(dòng))</p><p><b> 在這里有兩個(gè)方法:</b></p><p> 方法1:延長(zhǎng)數(shù)組法。將原來(lái)字符點(diǎn)陣數(shù)組的16個(gè)數(shù)據(jù)重復(fù)一遍延長(zhǎng),點(diǎn)陣數(shù)組的數(shù)據(jù)個(gè)數(shù)為32個(gè)。每掃描儀幀取8個(gè)數(shù)據(jù)顯示,下一幀取數(shù)要在數(shù)組中后移一個(gè)數(shù)取數(shù)。循環(huán)一遍掃16幀
84、。可以假想有兩塊16×16的點(diǎn)陣模塊(共32幀)水平平行排列,用一個(gè)恰好能罩住8列點(diǎn)陣的中空方框去罩這個(gè)點(diǎn)陣,第1(第1幀)罩住最左邊數(shù)起第一列開(kāi)始的16列,就掃描顯示這16列;第2次(第2幀)使方框右移一列,罩住做左邊數(shù)起第2列開(kāi)始的16列,就掃描顯示這16列;······;這樣每掃描完一幀使方框右移一列,最后第16次(第16幀)時(shí),罩住左邊數(shù)起的第16列開(kāi)始的16
85、列,就掃描顯示這16列。如此完成16幀畫(huà)面的掃描顯示,也就完成了整個(gè)一次移動(dòng)循環(huán)掃描、之后反復(fù)循環(huán),即可呈現(xiàn)顯示字符沿水平向左移動(dòng)的圖像,如圖2.13所示。</p><p> 圖2.13 方框圖法左右移動(dòng)示意圖</p><p> 因?yàn)槭橇邢蚪M字(列掃描方式,點(diǎn)陣數(shù)據(jù)為行碼,上邊為地位下面為高位),希望顯示移動(dòng)的一個(gè)字符,第1次掃描從行碼的點(diǎn)陣數(shù)組中取第1~16個(gè)數(shù)據(jù),送行碼輸出口,對(duì)應(yīng)
86、于這8個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸出列碼,分別控制第1~16列。掃描完前16個(gè)數(shù)據(jù)之后,第2次掃描從點(diǎn)陣數(shù)組中取第2~14個(gè)數(shù)據(jù)(第17個(gè)數(shù)據(jù)與地1個(gè)數(shù)據(jù)同),送行碼輸出口,對(duì)應(yīng)于這16個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸出列碼,仍分別控制掃地1~16列。第3次掃描從點(diǎn)陣數(shù)組中取第3~18個(gè)數(shù)據(jù)(第18個(gè)數(shù)據(jù)碼與地2個(gè)數(shù)據(jù)碼相同)掃描······;如此實(shí)現(xiàn)字符向左移動(dòng)。</p>
87、<p> 以上完成一個(gè)圖形移動(dòng)的方法,也可以看成是移動(dòng)16個(gè)不同的字形。如圖2.13所示,首先掃描第一個(gè)字型,同樣是16行,16次掃描,16次顯示;完成一個(gè)字型的掃描以后,再掃描第二個(gè)字型;完成第二個(gè)字型的掃描之后,再掃描第三個(gè)字型······依此類(lèi)推,即可產(chǎn)生該文字的左移的感覺(jué)。</p><p> 圖2.13字形法左右移動(dòng)示意圖<
88、;/p><p> 假設(shè)如果原本某個(gè)漢字的字型(第一個(gè)字型),其編碼為:</p><p> 00H,10H,20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H;</p><p> 第二個(gè)字型的編碼為:</p><p> 10H,20H,30H,40H,50H,60H,70
89、H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H, 00H,</p><p> 也就是把第一個(gè)字型的編碼中,第1行顯示數(shù)據(jù),變?yōu)榈?行顯示數(shù)據(jù);第2行顯示數(shù)據(jù),變成第3行顯示數(shù)據(jù);第3行顯示數(shù)據(jù),變成第4行顯示數(shù)據(jù);第4行顯示數(shù)據(jù),變成第5行顯示數(shù)據(jù)······以此類(lèi)推。</p><p> 當(dāng)?shù)谝粋€(gè)
90、字型掃描顯示完成之后,就進(jìn)行這樣的動(dòng)作調(diào)整,以產(chǎn)生第二個(gè)字型的編碼。同樣的,當(dāng)?shù)诙€(gè)字型掃描完成之后,就進(jìn)行這樣的調(diào)整動(dòng)作,以產(chǎn)生第三個(gè)字型的編碼。這個(gè)調(diào)整動(dòng)作時(shí)先將16個(gè)編碼根據(jù)序填入存儲(chǔ)器,例如第1行編碼存入20H,第二行編碼存入21H······要進(jìn)行左移調(diào)整時(shí),則先將20H地址的數(shù)據(jù)轉(zhuǎn)移到36H地址,再將21 H地址的數(shù)據(jù)轉(zhuǎn)移到20 H地址,將22 H地址的數(shù)據(jù)轉(zhuǎn)移到2
91、1 H地址,將23 H地址的數(shù)據(jù)轉(zhuǎn)移到22 H地址,將24 H地址的數(shù)據(jù)轉(zhuǎn)移到23 H地址,將25 H地址的數(shù)據(jù)轉(zhuǎn)移到24 H地址,將26 H地址的數(shù)據(jù)轉(zhuǎn)移到25 H地址,將27 H地址的數(shù)據(jù)轉(zhuǎn)移到26 H地址,將28 H地址的數(shù)據(jù)轉(zhuǎn)移到27H地址······</p><p> 方法2:數(shù)組數(shù)據(jù)“循環(huán)左移法” (適合用C語(yǔ)言編寫(xiě),在此僅作了解)。注意,
92、不是把二進(jìn)制數(shù)據(jù)按位循環(huán)左移,而是把數(shù)組中的數(shù)據(jù)按其在數(shù)組中的位置循環(huán)左移。具體的方法入下。</p><p> 原字符點(diǎn)陣數(shù)組中的16個(gè)數(shù)據(jù)不延長(zhǎng),但下一幀取的16個(gè)數(shù)據(jù),是把上一幀的16個(gè)數(shù)據(jù)的位置(先后順序)“循環(huán)左移”一次,即原來(lái)第2個(gè)移到第1個(gè),原來(lái)第3個(gè)移到第2個(gè)······原來(lái)第1個(gè)移到第16個(gè)。實(shí)現(xiàn)數(shù)組數(shù)據(jù)循環(huán)左移的方法有:第一,遍一個(gè)“
93、數(shù)組數(shù)據(jù)循環(huán)左移子程序”,該子程序每執(zhí)行一次可把數(shù)組中的額數(shù)據(jù)循環(huán)左移一次,主程序中先調(diào)用一次該子程序,時(shí)數(shù)組中的數(shù)據(jù)循環(huán)左移這一次,然后再?gòu)臄?shù)組中取數(shù)據(jù)顯示。當(dāng)數(shù)組中的額數(shù)據(jù)個(gè)數(shù)較多時(shí),片內(nèi)RAM將不夠大,必須將數(shù)組定義在片外RAM中。第二,不用子程序,而是用變量判斷控制實(shí)現(xiàn)數(shù)組數(shù)據(jù)的循環(huán)左移。</p><p> (2) 行掃描方式左移:行向組字顯示字符水平方向的左移。如果是行向組字(行掃描方式,點(diǎn)陣數(shù)據(jù)為列
94、碼,左邊為敵位右邊為高位),希望顯示向左移動(dòng)的一個(gè)字符,第1次掃描從列碼的點(diǎn)陣數(shù)組中取第1~16個(gè)數(shù)據(jù),送到列碼輸出口,對(duì)應(yīng)的8個(gè)數(shù)據(jù),同時(shí)用行碼輸出口輸出行碼,分別控制掃描第1~16行。掃描完成這16個(gè)數(shù)據(jù)之后,第2次掃描的第16個(gè)數(shù)據(jù),應(yīng)將原來(lái)第1次掃描的16列碼每一個(gè)都循環(huán)右移一位(如果是顯示右移則應(yīng)循環(huán)左移),再進(jìn)行掃描。如此,每進(jìn)行下一次掃描,把上一次掃描的16個(gè)列碼都循環(huán)右移一位,再進(jìn)行掃描。</p><
95、p> 數(shù)據(jù)的右移與數(shù)據(jù)的左移相似,只是取碼的順序相反而已,在此就不再贅述。</p><p> 4.2.2數(shù)據(jù)的上下移動(dòng)</p><p> (1)列掃描方式向上移動(dòng)</p><p> 列向組字顯示字符豎直方向的移動(dòng)。若是列向組字,希望顯示向上移動(dòng)一個(gè)字符,第1次掃描從行碼的點(diǎn)陣數(shù)組中取第1~16個(gè)數(shù)據(jù),送行碼輸出口,對(duì)應(yīng)于這16個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸
96、出列碼,分別控制掃描第1~16列。由于是列向組字(上高下低),掃描完成這16個(gè)數(shù)據(jù)后,第2次掃描的16個(gè)數(shù)據(jù),應(yīng)將原來(lái)的第1次掃描的16個(gè)行碼每一個(gè)都循環(huán)右移一位,使顯示的點(diǎn)都上移一行(如果是顯示向下滾動(dòng)則應(yīng)循環(huán)左移),再進(jìn)行掃描。如此,每進(jìn)行下一次的掃描,把上一次的16個(gè)行碼都循環(huán)右移一位,再進(jìn)行掃描就實(shí)現(xiàn)了數(shù)據(jù)的向上移動(dòng)。</p><p> 也可以用字型的方法容易理解,以下的16×16的LED顯示
97、一個(gè)字是8個(gè)字型,首先掃描的而是第一個(gè)字型,同樣是16行,16列掃描,16次顯示;完成一個(gè)字型后,再掃描第二個(gè)字型;完成第二個(gè)字型后,再掃描第三個(gè)字型······以此類(lèi)推,即可產(chǎn)生該文字向上移動(dòng)的感覺(jué)</p><p> 當(dāng)把第一個(gè)字型編碼中,每行顯示的數(shù)據(jù)都右移一位,以產(chǎn)生第二個(gè)字型編碼,即可產(chǎn)生字符向上滾動(dòng)的感覺(jué)。</p><p&
98、gt; 當(dāng)?shù)谝粋€(gè)字符掃描完成后,就進(jìn)行這樣的調(diào)整動(dòng)作,以產(chǎn)生第二個(gè)字型的編碼。同樣的,當(dāng)?shù)诙€(gè)字型完成之后,就進(jìn)行這樣的調(diào)整動(dòng)作,以產(chǎn)生第三個(gè)字型的編碼。調(diào)整的動(dòng)作是先將8個(gè)編碼根據(jù)序填入儲(chǔ)存器,例如第1行編碼存入20地址,第2行編碼存入21地址······要進(jìn)行上移調(diào)整時(shí),則從20地址數(shù)據(jù)開(kāi)始,每筆數(shù)據(jù)都右移一位即可。
99、
100、 </p><p> (2)行掃描方式上下移動(dòng)</p><p> 行向組字顯示字符豎直方向的移動(dòng)</p><p> 方法1:延長(zhǎng)數(shù)組法。如果是行向組字,希望顯示向上移動(dòng)的一個(gè)
101、字符,第1次掃描從列碼的點(diǎn)陣數(shù)組中取第1~16個(gè)數(shù)據(jù),送列碼輸出口,對(duì)應(yīng)于這8個(gè)數(shù)據(jù),同時(shí)用行碼輸出口輸出行碼,分別控制掃描第1~16行。第2次掃描從點(diǎn)陣數(shù)組中取第2~17個(gè)額數(shù)據(jù)(第17個(gè)數(shù)據(jù)與地1個(gè)數(shù)據(jù)同),分別送列碼輸出口,對(duì)應(yīng)于這16個(gè)數(shù)據(jù),同時(shí)用行碼輸出口輸出行碼,仍分別控制地1~16行。第3次掃描從點(diǎn)陣數(shù)組中取第3~18個(gè)數(shù)據(jù)(第18個(gè)數(shù)據(jù)與地2個(gè)數(shù)據(jù)同)掃描;·····
102、183;如此就實(shí)現(xiàn)了字符的向上移動(dòng)。</p><p> 方法2:數(shù)組數(shù)據(jù)“循環(huán)左移法”。實(shí)現(xiàn)數(shù)組數(shù)據(jù)循環(huán)左移的方法與上類(lèi)似。也有:用數(shù)組數(shù)據(jù)循環(huán)左移子程序;不用子程序,而是用變量判斷控制實(shí)現(xiàn)數(shù)組數(shù)據(jù)的循環(huán)左移。</p><p> 4.3主程序模塊設(shè)計(jì)</p><p> 整個(gè)程序進(jìn)行模塊化設(shè)計(jì),主程序只需調(diào)用相應(yīng)的程序即可。主程序流程如附件一所示。</p&
103、gt;<p><b> 4.4 本章小節(jié)</b></p><p> 本章主要對(duì)系統(tǒng)的軟件設(shè)計(jì)進(jìn)行了詳細(xì)說(shuō)明,從數(shù)據(jù)單元及標(biāo)志單元的分配,到各子程序模塊的實(shí)現(xiàn)方法,以及對(duì)時(shí)鐘的誤差分析、校正,定時(shí)音與顯示相沖突問(wèn)題及解決方案。</p><p><b> 5 系統(tǒng)調(diào)試</b></p><p> 附錄A:實(shí)
104、驗(yàn)板原理圖</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 胡漢才.單片機(jī)原理及接口技術(shù)[M].北京:清華大學(xué)出版社,1996.</p><p> [2] 胡健.單片機(jī)原理及接口技術(shù)[M].北京:機(jī)械工業(yè)出版社,2004.</p><p> [3] 胡健.單片機(jī)實(shí)用教程[M].北京:兵器工業(yè)
105、出版社,2001.</p><p> [4] 周行慈.單片機(jī)應(yīng)用程序設(shè)計(jì)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1991.</p><p> [5] 李廣弟.單片機(jī)基礎(chǔ)[M].修訂本,北京:北京航空航天大學(xué)出版社,2001.</p><p> [6] 李朝青.單片機(jī)原理及接口技術(shù)[M],簡(jiǎn)明修訂版.北京:北京航空航天大學(xué)出版社,1999.</p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)霓虹燈設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的智能霓虹燈控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的霓虹燈設(shè)計(jì)-本科畢業(yè)論文
- 基于單片機(jī)的霓虹燈控制器設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文---基于單片機(jī)的霓虹燈控制器的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---可變霓虹燈設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的廣告燈設(shè)計(jì)
- 霓虹燈plc控制畢業(yè)設(shè)計(jì)
- 基于單片機(jī)控制的無(wú)線電子廣告牌的設(shè)計(jì)_畢業(yè)設(shè)計(jì)論文
- 基于plc的霓虹燈廣告彩屏的設(shè)計(jì)
- 基于plc的霓虹燈控制系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 廣告牌畢業(yè)設(shè)計(jì)
- 基于單片機(jī)控制的霓虹燈控制器【開(kāi)題報(bào)告】
- 基于plc的霓虹燈控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 其于單片機(jī)的霓虹燈控制器設(shè)計(jì)【任務(wù)書(shū)】
- 基于plc的霓虹燈設(shè)計(jì)
- 51單片機(jī)控制的廣告牌顯示設(shè)計(jì)論文.doc
- 霓虹燈廣告屏課程設(shè)計(jì)2
- 51單片機(jī)控制的廣告牌顯示設(shè)計(jì)論文.doc
- 霓虹燈廣告屏設(shè)置課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論