單片機(jī)課程設(shè)計(jì)點(diǎn)陣漢字顯示_第1頁(yè)
單片機(jī)課程設(shè)計(jì)點(diǎn)陣漢字顯示_第2頁(yè)
單片機(jī)課程設(shè)計(jì)點(diǎn)陣漢字顯示_第3頁(yè)
單片機(jī)課程設(shè)計(jì)點(diǎn)陣漢字顯示_第4頁(yè)
單片機(jī)課程設(shè)計(jì)點(diǎn)陣漢字顯示_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、武漢理工大學(xué)單片機(jī)原理及應(yīng)用課程設(shè)計(jì)說(shuō)明書 摘 要單片機(jī)是計(jì)算機(jī)技術(shù)、大規(guī)模集成電路技術(shù)和控制技術(shù)的綜合產(chǎn)物。經(jīng)過(guò)30多年的發(fā)展歷程,單片機(jī)應(yīng)用已十分廣泛和深入。所以可以毫不夸張地說(shuō),任何設(shè)備和產(chǎn)品的自動(dòng)化、數(shù)字化和智能化都離不開單片機(jī)。現(xiàn)在,凡是電腦控制的設(shè)備和產(chǎn)品,必有單片機(jī)嵌入其中。這一切表明,單片已成為人類生活中不可或缺的助手。隨著單片機(jī)應(yīng)用的日益廣泛,利用單片機(jī)控制漢字顯示屏被廣泛地應(yīng)用與汽車報(bào)站器,廣告屏等領(lǐng)域。本文詳細(xì)介紹了基于51單片機(jī)的LED顯示屏控制系統(tǒng)的顯示原理,對(duì)16*16點(diǎn)陣漢字進(jìn)行顯示,顯示屏由4個(gè)8*8的LED點(diǎn)陣模塊組成一個(gè)16*16點(diǎn)陣LED。系統(tǒng)仿真利用PO

2、RTEUS仿真軟件和KEIL軟件的聯(lián)調(diào)對(duì)LED點(diǎn)陣顯示屏系統(tǒng)進(jìn)行調(diào)試。關(guān)鍵詞: LED點(diǎn)陣顯示屏 單片機(jī) PROTEUS仿真目 錄摘 要11 硬件設(shè)計(jì)11.1設(shè)計(jì)框圖及介紹11.2 51系列單片機(jī)簡(jiǎn)介21.3 LED點(diǎn)陣介紹51.4 LED顯示方式61.5 硬件電路82 軟件設(shè)計(jì)102.1 程序流程圖102.2 程序代碼113主要芯片介紹143.1 8051系列的單片機(jī)143.2 74HC154164 PROTEUS仿真185心得體會(huì)20191 硬件設(shè)計(jì)1.1設(shè)計(jì)框圖及介紹 LED點(diǎn)陣總體框圖如圖1.1所示,點(diǎn)陣電路大體上可以分成微機(jī)本身的硬件、顯示驅(qū)動(dòng)電路、控制信號(hào)電路三部分。控制電路部分包

3、括一個(gè)51CUP和一些外圍電路。在整個(gè)電路當(dāng)中此控制電路部分相當(dāng)于一個(gè)上位機(jī),它負(fù)責(zé)控制整個(gè)電路以及相應(yīng)的程序的運(yùn)行、與PC機(jī)的串行通訊、以及給屏體電路部分發(fā)送命令。點(diǎn)陣顯示屏體、以及它的行和列的各個(gè)驅(qū)動(dòng)電路。由于兩部分的電路在制板時(shí)可以放到一起,所以可以將其字庫(kù)放到控制電路部分使用串行通訊方式來(lái)與屏體電路部分進(jìn)行數(shù)據(jù)和命令的傳送。此顯示電路采用掃描方式進(jìn)行顯示時(shí),每行有一個(gè)行驅(qū)動(dòng)器,各行的同名列共用一個(gè)列驅(qū)動(dòng)器。由行譯碼器給出的行選通信號(hào),從第一行開始,按順序依次對(duì)各行進(jìn)行掃描(把該行與電源的一端接通)。另一方而,根據(jù)各列鎖存的數(shù)據(jù),確定相應(yīng)的列驅(qū)動(dòng)器是否將該列與電源的另一端接通。接通的列,

4、就在該行該列點(diǎn)燃相應(yīng)的LED;未接通的列所對(duì)應(yīng)的LED熄滅。可通過(guò)掃描輸出口的控制實(shí)現(xiàn)顏色的轉(zhuǎn)換。圖1.1 點(diǎn)陣顯示的總體框圖1.2 51系列單片機(jī)簡(jiǎn)介單片機(jī)(Microcontroller,又稱微處理器)是在一塊硅片上集成了各種部件的微型機(jī),這些部件包括中央處理器CPU、數(shù)據(jù)存儲(chǔ)器RAM、程序存儲(chǔ)器ROM、定時(shí)器/計(jì)數(shù)器和多種I/O接口電路。8051單片機(jī)的基本結(jié)構(gòu)見圖1.2。圖1.2 8051單片機(jī)的基本結(jié)構(gòu)8051是MCS-51系列單片機(jī)的一個(gè)產(chǎn)品。MCS-51系列單片機(jī)是Intel公司推出的通用型單片機(jī),8051單片機(jī)系列指的是MCS-51系列和其他公司的8051衍生產(chǎn)品。這些衍生品是

5、在基本型基礎(chǔ)上增強(qiáng)了各種功能的產(chǎn)品。這些產(chǎn)品給8位單片機(jī)注入了新的活力,給它的開發(fā)應(yīng)用開拓了更廣泛的前景。8051系列的內(nèi)部結(jié)構(gòu)可以劃分為CPU、存儲(chǔ)器、并行口、串行口、定時(shí)器/計(jì)數(shù)器、中斷邏輯幾部分。(1)中央處理器8051的中央處理器由運(yùn)算器和控制邏輯構(gòu)成,其中包括若干特殊功能寄存器(SFR)。算術(shù)邏輯單元ALU能對(duì)數(shù)據(jù)進(jìn)行加、減、乘、除等算術(shù)運(yùn)算;“與”、“或”、“異或”等邏輯運(yùn)算以及位操作運(yùn)算。ALU只能進(jìn)行運(yùn)算,運(yùn)算的操作數(shù)可以事先存放到累加器ACC或寄存器TMP中,運(yùn)算結(jié)果可以送回ACC或通用寄存器或存儲(chǔ)單元中,累加器ACC也可以寫為A。B寄存器在乘法指令中用來(lái)存放一個(gè)乘數(shù),在除法

6、指令中用來(lái)存放除數(shù),運(yùn)算后B中為部分運(yùn)算結(jié)果。程序狀態(tài)字PSW是個(gè)8位寄存器,用來(lái)寄存本次運(yùn)算的特征信息,用到其中七位。PSW的格式如下所示,其各位的含義是:CY:進(jìn)位標(biāo)志。有進(jìn)位/錯(cuò)位時(shí)CY=1,否則CY=0。 AC:半進(jìn)位標(biāo)志。當(dāng)D3位向D4位產(chǎn)生進(jìn)位/錯(cuò)位時(shí),AC=1,否則AC=0,常用于十進(jìn)制調(diào)整運(yùn)算中。F0:用戶可設(shè)定的標(biāo)志位,可置位/復(fù)位,也可供測(cè)試。RS1、RS0:四個(gè)通用寄存器組選擇位,該兩位的四種組合狀態(tài)用來(lái)選擇03寄存器組。OV:溢出標(biāo)志。當(dāng)帶符號(hào)數(shù)運(yùn)算結(jié)果超出-128+127范圍時(shí)OV=1,否則OV=0。當(dāng)無(wú)符號(hào)數(shù)乘法結(jié)果超過(guò)255時(shí),或當(dāng)無(wú)符號(hào)數(shù)除法的除數(shù)為0時(shí)OV=1

7、,否則OV=0。P:奇偶校驗(yàn)標(biāo)志。每條指令執(zhí)行完,若A中1的個(gè)數(shù)為奇數(shù)時(shí)P=1,否則P=0,即偶校驗(yàn)方式。控制邏輯主要包括定時(shí)和控制邏輯、指令寄存器 、譯碼器以及地址指針DPTR和程序寄存器PC等。單片機(jī)是程序控制式計(jì)算機(jī),即它的運(yùn)行過(guò)程是在程序控制下逐條執(zhí)行程序指令的過(guò)程:從程序存儲(chǔ)器中取出指令送指令存儲(chǔ)器IR,然后指令譯碼器ID進(jìn)行譯碼,譯碼產(chǎn)生一系列符合定時(shí)要求的微操作信號(hào),用以控制單片機(jī)的各部分動(dòng)作。8051的控制器在單片機(jī)內(nèi)部協(xié)調(diào)各功能部件之間的數(shù)據(jù)傳送、數(shù)據(jù)運(yùn)算等操作,并對(duì)單片機(jī)發(fā)出若干控制信息。這些控制信息的使用專門的控制線,諸如PSEN、ALE、EA以及RST,也有一些是和P3

8、口的某些端子合用,如WR和RD就是P3.6和P3.7,他們的具體功能在介紹8051引腳是一起敘述。(2)存儲(chǔ)器組織8051單片機(jī)的存儲(chǔ)器結(jié)構(gòu)特點(diǎn)之一是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開,并有各自的尋址機(jī)構(gòu)和尋址方式,這種結(jié)構(gòu)稱為哈佛結(jié)構(gòu)單片機(jī)。這種結(jié)構(gòu)與通用微機(jī)的存儲(chǔ)器結(jié)構(gòu)不同,一般微機(jī)只有一個(gè)存儲(chǔ)器邏輯空間,可隨意安排ROM或RAM,訪存時(shí)用同一種指令,這種結(jié)構(gòu)稱為普林斯頓型。8051單片機(jī)在物理上有四個(gè)存儲(chǔ)空間:片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器。8051片內(nèi)有256K數(shù)據(jù)存儲(chǔ)器RAM和4KB的程序存儲(chǔ)器ROM。除此之外,還可以在片外擴(kuò)展RAM和ROM,并且各有64K

9、B的尋址范圍。也就是最多可以在外部擴(kuò)展2*64KB存儲(chǔ)器。8051的存儲(chǔ)器組織結(jié)構(gòu)如圖2.3所示。圖 1.3 8051存儲(chǔ)器組織結(jié)構(gòu)64K字節(jié)的程序存儲(chǔ)器(ROM)空間中,有4K字節(jié)地址區(qū)對(duì)于片內(nèi)ROM和片外ROM是公用的,這4K字節(jié)地址是0000HFFFH。而1000HFFFFH地址區(qū)為外部ROM專用。CPU的控制器專門提供一個(gè)控制信號(hào)EA用來(lái)區(qū)分內(nèi)部ROM和外部ROM的公用地址區(qū):當(dāng)EA接高電平時(shí),單片機(jī)從片內(nèi)ROM的4K字節(jié)存儲(chǔ)器區(qū)取指令,而當(dāng)指令地址超過(guò)0FFFH后,就自動(dòng)的轉(zhuǎn)向片外ROM取指令。當(dāng)EA接低電平時(shí),CPU只從片外ROM取指令。程序存儲(chǔ)器的某些單元是保留給系統(tǒng)使用的:00

10、00H0002H單元是所有執(zhí)行程序的入口地址,復(fù)位以后,CPU總是叢0000H單元開始執(zhí)行程序。0003H002AH單元均勻地分為五段,用做五個(gè)中斷服務(wù)程序的入口。用戶程序不應(yīng)進(jìn)入上述區(qū)域。8051的RAM雖然字節(jié)數(shù)不很多,但卻起著十分重要的作用。256個(gè)字節(jié)被分為兩個(gè)區(qū)域:00H7FH時(shí)真正的RAM區(qū),可以讀寫各種數(shù)據(jù)。而80HFFH是專門用于特殊功能寄存器(SFR)的區(qū)域。對(duì)于8051安排了21個(gè)特殊功能寄存器,每個(gè)寄存器為8位,所以實(shí)際上128個(gè)字節(jié)并沒有全部利用。內(nèi)部RAM的各個(gè)單元,都可以通過(guò)直接地址來(lái)尋找,對(duì)于工作寄存器,則一般都直接用R0R7,對(duì)特殊功能寄存器,也是直接使用其名字

11、較為方便。8051內(nèi)部特殊功能寄存器都是可以位尋址的,并可用“寄存器名.位”來(lái)表示,如ACC.0,B.7等。1.3 LED點(diǎn)陣介紹8×8單色點(diǎn)陣共需要64個(gè)發(fā)光二極管組成,且每個(gè)二極管是放置在行線與列線的叉點(diǎn)上。對(duì)于點(diǎn)陣型LED顯示可以采用共陰極或共陽(yáng)極,本系統(tǒng)采用共陽(yáng)極,其硬件電路如圖1.1所示。當(dāng)行上有一正選通信號(hào)時(shí),列選端八位數(shù)據(jù)為0的發(fā)光二極管便導(dǎo)通點(diǎn)亮。這樣只需要將圖形或文字的顯示編碼作為列信號(hào)跟對(duì)應(yīng)的行信號(hào)進(jìn)行逐次掃描,就可以逐行點(diǎn)亮點(diǎn)陣。只要掃描速度大于24Hz,由于掃描時(shí)間很快,人眼的視覺有暫留效應(yīng),就可以看到顯示的是完整的圖形或文字。8×8點(diǎn)陣LED結(jié)構(gòu)下

12、圖1.5所示。圖1.4 8×8點(diǎn)陣外觀及引腳圖 圖1.5 8*8 LED點(diǎn)陣結(jié)構(gòu) 1.4 LED顯示方式漢字顯示屏用于顯示漢字、字符及圖像信息,在公共汽車、銀行、醫(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ò)展顯示的漢字,下面是介紹漢字顯示的原理。 圖1.6 四塊8×8的LED點(diǎn)陣組成16×16的LED點(diǎn)陣LED驅(qū)動(dòng)顯示

13、采用動(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ù)并鎖存,然后選通第2行使其燃亮相同的時(shí)間,然后熄滅;.第16行之后,又重新燃亮第1行,反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形。該方法能驅(qū)動(dòng)較多的LED,控制方式較靈活,而且節(jié)省單片機(jī)的資源。顯示數(shù)據(jù)傳輸采用串行傳輸

14、的方法,控制電路可以只用一根信號(hào)線,將列數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器,在硬件方面無(wú)疑是十分經(jīng)濟(jì)的。但串行傳輸過(guò)程較長(zhǎng),數(shù)據(jù)按順序一位一位地輸出給列驅(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的亮度。采用串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時(shí)間矛盾,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要有鎖存功能。對(duì)于列數(shù)據(jù)準(zhǔn)備來(lái)說(shuō),它應(yīng)能實(shí)現(xiàn)串入并出的移位功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行

15、鎖存器進(jìn)行顯示時(shí),串行移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會(huì)影響本行的顯示。LED點(diǎn)陣顯示模塊進(jìn)行的方法有兩種:(1)水平方向(X方向)掃描,即逐列掃描的方式(簡(jiǎn)稱列掃描方式):此時(shí)用一個(gè)P口輸出列碼決定哪一列能亮(相當(dāng)于位碼),用另一個(gè)P口輸出行碼(列數(shù)據(jù)),決定該行上那哪個(gè)LED亮(相當(dāng)于段碼)。能亮的列從左到右掃描完16列(相當(dāng)于位碼循環(huán)移動(dòng)16次)即顯示出一個(gè)完整的圖像。(2)豎直方向(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、碼)。能亮的行從上向下掃描完16行(相當(dāng)于位碼循環(huán)移位16次)即顯示一幀完整的圖像。本設(shè)計(jì)應(yīng)用的是第一種的掃描方法,即水平方向(X方向)掃描。每一個(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é)信息記錄了該字的字模信息。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內(nèi)的任何圖形。我們以水平方向(x方向)掃描顯示漢字的“江”為例來(lái)說(shuō)明其掃描原理,每一個(gè)字由16行16列的點(diǎn)陣組成顯示,如

17、圖下的,如果用8位的AT89S51的單片機(jī)來(lái)控制,由于單片機(jī)的總線為8位,一個(gè)字需要拆分成兩個(gè)部分。一般我們把它分解成上部分和下部分,上部分由8*16的點(diǎn)陣組成,下部分也由8*16的點(diǎn)陣組成。在本例中單片機(jī)首先顯示的是左上角的第一列的部分,即第0列的P00P07口。方向?yàn)镻00到P07,顯示漢字“江”的時(shí)候,P00到P04都是滅的,P05亮,即二進(jìn)制00001000,轉(zhuǎn)換為16進(jìn)制為08H,如圖2.11所示。上半部分第一列完成之后,繼續(xù)掃描下半部分的第一列,為了接線的方便,我們?nèi)栽O(shè)計(jì)成由上往下的掃描方式,即從P27向P20方向掃描,從上圖可以看到,這一列所有的都不亮,所以代碼為00000000

18、,16進(jìn)制為00H,然后單片機(jī)轉(zhuǎn)向上半部的第二列,除了P05亮,其他的都不亮,即為00000100,16進(jìn)制為04H,這一列掃描完成之后繼續(xù)進(jìn)行下半部分的掃描,除了P21亮,其他的為不亮,為二進(jìn)制00100000,即16進(jìn)制20H。按照這個(gè)方法,繼續(xù)進(jìn)行下面的掃描,一共掃描32個(gè)8位,可以得出漢字“江”的掃描代碼為 :08H,20H,06H,20H,80H,7EH,63H,80H0CH,04H,00H,04H,20H,04H,20H,04H20H,04H,3FH,FCH,20H,04H,20H,04H20H,04H,20H,04H,00H,04H,00H,00H 圖1.7 點(diǎn)陣顯示原理圖由這個(gè)

19、原理可以看到,無(wú)論顯示何種字體或圖像,都可以用這種方法來(lái)分析出它的掃描代碼從而顯示在屏幕上。1.5 硬件電路在proteus中連接硬件電路圖如圖1.8所示圖1.8 硬件電路圖2 軟件設(shè)計(jì)2.1 程序流程圖96列顯示完?送9-16行控制口取當(dāng)前列顯示字碼第二個(gè)字節(jié)送列控制碼送1-8行控制口取當(dāng)前列顯示字碼第一個(gè)字節(jié)取碼指針字碼表初址賦值開始NY 2.2 程序代碼ORG0000HAJMPMAINORG0030HMAIN:MOVDPTR,#TAB;字碼表初址賦值MOVR1,#00H;列控制碼MOVR4,#96;移動(dòng)“ ”及“單片機(jī)仿真”6個(gè)字符,共96列CM:MOVR5,#5;每屏反復(fù)顯示5次MOV

20、R3,#16;列數(shù)C1:MOVR2,#0;取碼指針C16:MOVP0,#00HMOVP2,#00H;關(guān)顯示CLRP3.0MOVA,R2MOVCA,A+DPTR;取當(dāng)前列顯示字碼的第一個(gè)字節(jié)MOVP0,A;送18行控制口INCR2MOVA,R2MOVCA,A+DPTR;取當(dāng)前列的顯示字碼的第二個(gè)字節(jié)MOVP2,A;送915行控制口INCR2MOVP1,R1;送列控制碼INCR1 ACALLD1MS;顯示2MSACALLD1MSDJNZR3,C16;一屏16列是否顯示完MOVR3,#16DJNZR5,C1;未顯示5次,繼續(xù)INCDPTR;一屏反復(fù)顯示5次完,字碼表初值加2INCDPTRDJNZR4

21、,CM;96列未移動(dòng)完,繼續(xù)AJMPMAIN;96列移動(dòng)完,返回,重新從“ ”開始顯示D1MS:MOVR6,#2MOVR7,#248DJNZR7,$DJNZR6,$-4RETTAB:DB 000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ;DB 000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ;" &quo

22、t;, DB 000H ,000H ,000H ,008H ,000H ,008H ,0E0H ,008H ,0F4H ,00DH ,054H ,005H ,0F4H ,07FH ,0F8H ,07FH ;DB 01EH ,005H ,0FEH ,005H ,0FAH ,006H ,010H ,002H ,000H ,006H ,000H ,004H ,000H ,000H ,000H ,000H ;"單",0DB 000H ,000H ,000H ,000H ,000H ,010H ,000H ,01CH ,0FCH ,00FH ,0FCH ,003H ,040H ,00

23、2H ,040H ,002H ;DB 07EH ,07FH ,03EH ,07FH ,020H ,000H ,020H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ;"片",1DB 000H ,008H ,040H ,00CH ,040H ,006H ,0DCH ,03FH ,0FEH ,03FH ,022H ,011H ,020H ,01DH ,0F0H ,00FH ;DB 0F0H ,003H ,0F0H ,00FH ,0F0H ,01FH ,010H ,010H ,000H ,01CH ,000H ,01

24、CH ,000H ,010H ,000H ,000H ;"機(jī)",2DB 000H ,001H ,080H ,001H ,0C0H ,000H ,0F0H ,03FH ,0FCH ,03FH ,04CH ,018H ,040H ,00CH ,040H ,027H ;DB 0CCH ,063H ,0ECH ,079H ,028H ,01FH ,020H ,007H ,020H ,000H ,020H ,000H ,000H ,000H ,000H ,000H ;"仿",3DB 000H ,000H ,000H ,010H ,000H ,098H ,000H

25、,0C8H ,0E8H ,06FH ,0E8H ,03FH ,07CH ,01BH ,07EH ,00AH ;DB 0E6H ,03FH ,0E4H ,07FH ,004H ,06CH ,000H ,004H ,000H ,004H ,000H ,000H ,000H ,000H ,000H ,000H ;"真",4END3主要芯片介紹3.1 8051系列的單片機(jī)AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。圖片見下圖附錄1。圖3.1 89S51管腳圖(1)管腳說(shuō)明VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收

26、8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫

27、“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣

28、故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時(shí)器0外部輸入)P3.5 T1(記時(shí)器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入

29、編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器

30、(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出3.2 74HC154(1)74HC154功能簡(jiǎn)介: 74HC154 為 4 線16 線譯碼器,當(dāng)選通端(E1、E2)均為低電平時(shí),可將地址端(ABCD)的二進(jìn)制編碼在一個(gè)對(duì)應(yīng)的輸出端,以低電平譯出。 如果將E1和E2中的一個(gè)作為數(shù)據(jù)輸入端,由ABCD對(duì)輸出尋址,74HC154還可作1線-16線數(shù)據(jù)

31、分配器。(2)引腳功能介紹A、B、C、D 譯碼地址輸入端(低電平有效)G1、G2 選通端(低電平有效) 015 輸出端(低電平有效)(3)74HC54真值表圖3.2 74HC54真值表4 PROTEUS仿真Proteus仿真時(shí),單片機(jī)需要加載程序,加載程序?yàn)?HEX文件。本設(shè)計(jì)利用Keil Vision2, 在新建Keil項(xiàng)目時(shí)選擇AT89C52單片機(jī)作為CPU,將源程序?qū)?,在“Options For Target”對(duì)話窗口中,選中“Output”選項(xiàng)中的“Create HEX File”,編譯鏈接后就可以生成.HEX文件。在Proteus ISIS中,選中AT89C51并單擊鼠標(biāo)左鍵,對(duì)AT89C51進(jìn)行設(shè)置,設(shè)置單片機(jī)時(shí)鐘頻率為12MHz,按照正確的文件路徑加載.HEX文件。對(duì)單片機(jī)設(shè)置完畢后就可以開始仿真了。仿真過(guò)程中如有硬件問(wèn)題可在Proteus ISIS中直接修改,如有軟件問(wèn)題可在Keil Vision2中直接修改,通過(guò)Keil與Proteus的聯(lián)合調(diào)試就可以得到滿意的結(jié)果。利用Proteus實(shí)現(xiàn)了對(duì)點(diǎn)陣式LED滾動(dòng)漢字顯示屏的仿真,說(shuō)明程序和電路圖都沒有問(wèn)題

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論