版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本文格式為Word版,下載可任意編輯——基于單片機LED點陣廣告屏設計與制作陜西理工學院畢業(yè)設計
基于單片機LED點陣廣告屏設計與制作
[摘要]LED顯示屏作為一種新型的顯示器件,是由多個發(fā)光二極管按矩陣形式排列封裝而成,尋常用來顯示
時間、圖文等信息。本設計是基于AT89C51單片機的16x16顯示屏,其中包含了硬件、軟件、調試等方案的設計。此外、該設計只需簡單的級聯(lián)就能實現(xiàn)顯示屏的拓展,但級聯(lián)時要注意不要超過驅動負載范圍。
[關鍵詞]AT89C51,LED,單片機
BasedonSCMLEDdotmatrixscreenofadvertisementdesignandproduction
Abstract:LEDdisplayasanoveldisplaydevice,iscomposedofapluralityoflightemittingdiodesarearrangedina
matrixformpackage,usuallyusedtodisplaytime,graphicinformation.ThedesignisbasedontheAT89C51MCU16x16displayscreen,whichincludeshardware,software,debuggingschemedesign.Inaddition,thedesignsimplycascadecanrealizethedisplayofexpansion,buttobecarefulnottoexceedthecascadedriveloadrange.
Keywords:AT89C51;LED;singlechipmicrocomputer
目錄
引言21.LED顯示屏設計的課題背景3
第1頁共28頁
陜西理工學院畢業(yè)設計
1.1LED顯示屏的設計背景31.2LED顯示屏的設計依據(jù)3
2.課題設計方案33硬件設計43.1設計框圖及介紹4
3.251系列單片機簡介43.3單片機最小應用系統(tǒng)電路設計63.4LED點陣介紹73.5LED顯示方式83.6點陣的移動103.7LED陣列驅動電路13
4軟件設計15
4.1單片機延時子程序154.2點陣左移顯示的流程圖及分析164.4調試19
終止語19致謝20
附錄一.程序代碼21附錄二.主要芯片介紹22附錄三.仿真電路圖25附錄四.實物圖片錯誤!未定義書簽。
引言
隨著科技技術的不斷發(fā)展,單片機以極其高的性價比受到人們的重視和關注,所以應用很廣,發(fā)展
很快。單片機的優(yōu)點是體積小、重量輕、抗干擾能力強,對環(huán)境要求不高,價格低廉,可靠性高,靈活性好,開發(fā)較為簡單。LED顯示屏分為圖文顯示屏和視頻顯示屏,均由LED矩陣塊組成。圖文顯示屏可與計算機同步顯示漢字、英文文本和圖形;視頻顯示屏采用微型計算機進行控制,圖文、圖像并茂,以實時、同步、明了的信息傳播方式播放各種信息,還可顯示二維、三維動畫、錄像、電視、VCD節(jié)目以及現(xiàn)場實況。LED顯示屏顯示畫面色調嬌艷,立體感強,靜如油畫,動如電影,廣泛應用于交通運輸、車站、商場、醫(yī)院、賓館、證券市場、工業(yè)企業(yè)管理等公共場所。
第2頁共28頁
陜西理工學院畢業(yè)設計
LED顯示屏可以顯示變化的數(shù)字、文字、圖形圖像;不僅可以用于室內環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶顯示屏無法比較的優(yōu)點。LED之所以受到廣泛重視而得到迅速發(fā)展,是與它本身所具有的優(yōu)點分不開的。這些優(yōu)點概括起來是:亮度高、工作電壓低、功耗小、小型化、壽命長、耐沖擊和性能穩(wěn)定。LED的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展?,F(xiàn)代LED的發(fā)展很快,好多研究領域十分已經(jīng)深刻,實際狀況是:好多相關的知識已經(jīng)遠遠超出我們在校學生的能力范圍,所以在此只是簡單的研究一下用單片機驅動的LED顯示移動的漢字。目的有三:一是親自制作一個簡單實用的顯示文字的LED點陣;二是通過制作LED點陣加強對LED點陣的了解和應用,以及復習穩(wěn)定單片機知識;三是通過團隊合作,加強團隊合作的意識,為以后走向社會工作打下基礎,并且加強了同學之間的友情。
為了吸引觀眾加強顯示效果,可以有多種顯示模式。最簡單的顯示模式是靜態(tài)顯示。與靜態(tài)顯示模式相對應,就有各種動態(tài)顯示模式,它們所顯示的圖文都是能夠動的。依照圖文運動的特點又可以分為閃爍、平移、旋轉、縮放等多種顯示模式。產(chǎn)生不同顯示模式的方法,并不意味著一定要重新編寫顯示數(shù)據(jù),可以通過一定的算法從原來的顯示數(shù)據(jù)直接生成。例如,按順序調整行號,可以使顯示圖文產(chǎn)生上下平移;而順序調整列顯示數(shù)據(jù)的位置,就可以達到左右平移的目的;刷新的時間控制,要考慮運動圖形文字的顯示效果。刷新太慢,動感不顯著;刷新太快了,中間過程看不清。一般刷新周期可控制在幾十毫秒范圍之內。本次畢業(yè)設計中,由本人尋求林贊揚,洪信根等同學的幫助,我負責硬件部分電路圖的設計和軟件部分程序的設計和調試,目的是應用簡單便利的電路連接和程序完成漢字的換色與移動。洪信根負責用設計好的點陣電路制作PCB電路板,包括完成PCB板的制作,林贊揚負責制作另外一塊在面包板上連的點陣線連板子的焊接與調試,各人的分工不同只是工作側重點的不同,大家是在一起相互學習相互幫助,共同完成設計任務。
1.LED顯示屏設計的課題背景
1.1LED顯示屏的設計背景
隨著科學技術的發(fā)展,社會不斷的進步,電子事業(yè)也有著突飛猛進的改革。人們對公共傳媒質量的要求越來越高。隨著近幾年來LED字符顯示器的推出和不斷完善,它的應用范圍正在擴大,應用效果十分顯著。不難看出,這一電子信息技術發(fā)展的新成果,在宣傳、政治思想教育、廣告消遣等方面的應用日益突出。
由于大規(guī)模集成電路技術的發(fā)展,其控制系統(tǒng)已能夠取代以前利用繁雜電子線路或數(shù)字電路構成的控制系統(tǒng),還可以軟件控制來實現(xiàn),并能夠實現(xiàn)智能化。1.2LED顯示屏的設計依據(jù)
根據(jù)LED顯示屏設計的基本原理,結合其設計要求:“1.顯示漢字;2.可以移動;3.可循環(huán)顯示。〞由此設想出以下解決方案由AT89C52單片機最小系統(tǒng)、控制部分、顯示部分組成。進行漢字的顯示,再進一步進行右移。
2.課題設計方案
本文主要陳述的是“LED點陣字符顯示電路〞,本課題的實現(xiàn)主要有兩種方案。
方案一:由數(shù)字電路來實現(xiàn),由移位寄放器與鎖存器對字符數(shù)據(jù)進行存儲,然后并行輸入到顯示屏,來實現(xiàn)漢字的顯示。
方案二:由單片機編程控制來實現(xiàn),方案利用單片機控制鎖存器和譯碼器,由鎖存器和譯碼器送出行選和列選來控制LED屏的亮滅,從而顯示漢字。
方案論證:不難看出,選用數(shù)字電路來實現(xiàn)比較繁雜。由于用數(shù)字電路實現(xiàn)必需要有移位寄放器與鎖存器對字符數(shù)據(jù)進行存儲,然后并行輸入到顯示屏,不但如此,而且需要很大一部分的擴展電路才能實現(xiàn)。用數(shù)字電路實現(xiàn)不但大大提高成本,而且設計出的電路的靈活性差、不易調試、成本高等缺點。方案二不僅能夠改進方案一設計的不靈活,還可進行擴展。通過比較,從設計方案的
第3頁共28頁
陜西理工學院畢業(yè)設計
優(yōu)點及所設計的便利實用性,選擇其次種設計方案。
本文是基于單片機來實現(xiàn)的。由于單片機具有體積小、重量輕、價格低廉、功耗低、控制功能強及運算速度快等特點,因而在國民經(jīng)濟建設、軍事及家用電器等不同領域起到了舉足輕重的作用。用單片機C語言編程,來控制16*16LED點陣塊進行顯示相應的漢字、圖形、圖像等。使用C來開發(fā)系統(tǒng)會更加便利快捷。一方面不會降低對硬件的控制能力,另一方面也不會使代碼長度增加多少。假使運用的好的話,就能夠開發(fā)出十分高效的系統(tǒng)。并且十分易于維護。
3硬件設計
3.1設計框圖及介紹
LED點陣總體框圖如圖3.1所示,點陣電路大體上可以分成微機本身的硬件、顯示驅動電路、控制信號電路三部分??刂齐娐凡糠职ㄒ粋€51CUP和一些外圍電路。在整個電路當中此控制電路部分相當于一個上位機,它負責控制整個電路以及相應的程序的運行、與PC機的串行通訊、以及給屏體電路部分發(fā)送命令。點陣顯示屏體、以及它的行和列的各個驅動電路。由于兩部分的電路在制板時可以放到一起,所以可以將其字庫放到控制電路部分使用串行通訊方式來與屏體電路部分進行數(shù)據(jù)和命令的傳送。
此顯示電路采用掃描方式進行顯示時,每行有一個行驅動器,各行的同名列共用一個列驅動器。由行譯碼器給出的行選通信號,從第一行開始,按順序依次對各行進行掃描(把該行與電源的一端接通)。另一方而,根據(jù)各列鎖存的數(shù)據(jù),確定相應的列驅動器是否將該列與電源的另一端接通。接通的列,就在該行該列點燃相應的LED;未接通的列所對應的LED熄滅。
圖3.1點陣顯示的總體框圖
3.251系列單片機簡介
單片機(Microcontroller,又稱微處理器)是在一塊硅片上集成了各種部件的微型機,這些部件包括中央處理器CPU、數(shù)據(jù)存儲器RAM、程序存儲器ROM、定時器/計數(shù)器和多種I/O接口電路。
8051單片機的基本結構見圖3.2。
第4頁共28頁
陜西理工學院畢業(yè)設計
圖3.28051單片機的基本結構
8051是MCS-51系列單片機的一個產(chǎn)品。MCS-51系列單片機是Intel公司推出的通用型單片機,8051單片機系列指的是MCS-51系列和其他公司的8051衍生產(chǎn)品。這些衍生品是在基本型基礎上加強了各種功能的產(chǎn)品。這些產(chǎn)品給8位單片機注入了新的活力,給它的開發(fā)應用開拓了更廣泛的前景。
8051系列的內部結構可以劃分為CPU、存儲器、并行口、串行口、定時器/計數(shù)器、中斷規(guī)律幾部分。
(1)中央處理器
8051的中央處理器由運算器和控制規(guī)律構成,其中包括若干特別功能寄放器(SFR)。算術規(guī)律單元ALU能對數(shù)據(jù)進行加、減、乘、除等算術運算;“與〞、“或〞、“異或〞等規(guī)律運算以及位操作運算。
ALU只能進行運算,運算的操作數(shù)可以事先存放到累加器ACC或寄放器TMP中,運算結果可以送回ACC或通用寄放器或存儲單元中,累加器ACC也可以寫為A。B寄放器在乘法指令中用來存放一個乘數(shù),在除法指令中用來存放除數(shù),運算后B中為部分運算結果。
程序狀態(tài)字PSW是個8位寄放器,用來寄放本次運算的特征信息,用到其中七位。PSW的格式如下所示,其各位的含義是:
CY:進位標志。有進位/錯位時CY=1,否則CY=0。
AC:半進位標志。當D3位向D4位產(chǎn)生進位/錯位時,AC=1,否則AC=0,常用于十進制調整運算中。
F0:用戶可設定的標志位,可置位/復位,也可供測試。
RS1、RS0:四個通用寄放器組選擇位,該兩位的四種組合狀態(tài)用來選擇0~3寄放器組。。OV:溢出標志。當帶符號數(shù)運算結果超出-128~+127范圍時OV=1,否則OV=0。當無符號數(shù)乘法結果超過255時,或當無符號數(shù)除法的除數(shù)為0時OV=1,否則OV=0。
P:奇偶校驗標志。每條指令執(zhí)行完,若A中1的個數(shù)為奇數(shù)時P=1,否則P=0,即偶校驗方式??刂埔?guī)律主要包括定時和控制規(guī)律、指令寄放器、譯碼器以及地址指針DPTR和程序寄放器PC等。
單片機是程序控制式計算機,即它的運行過程是在程序控制下逐條執(zhí)行程序指令的過程:從程序存儲器中取出指令送指令存儲器IR,然后指令譯碼器ID進行譯碼,譯碼產(chǎn)生一系列符合定時要求的微操作信號,用以控制單片機的各部分動作。8051的控制器在單片機內部協(xié)調各功能部件之間的數(shù)據(jù)傳送、數(shù)據(jù)運算等操作,并對單片機發(fā)出若干控制信息。這些控制信息的使用專門的控制線,諸如PSEN、ALE、EA以及RST,也有一些是和P3口的某些端子合用,如WR和RD就是P3.6和P3.7,他們的具體功能在介紹8051引腳是一起表達。(2)存儲器組織
8051單片機的存儲器結構特點之一是將程序存儲器和數(shù)據(jù)存儲器分開,并有各自的尋址機構和尋址方式,這種結構稱為哈佛結構單片機。這種結構與通用微機的存儲器結構不同,一般微機只有一個存儲器規(guī)律空間,可隨意安排ROM或RAM,訪存時用同一種指令,這種結構稱為普林斯頓型。
8051單片機在物理上有四個存儲空間:片內程序存儲器和片外程序存儲器、片內數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。
8051片內有256K數(shù)據(jù)存儲器RAM和4KB的程序存儲器ROM。除此之外,還可以在片外擴展RAM和ROM,并且各有64KB的尋址范圍。也就是最多可以在外部擴展2*64KB存儲器。
8051的存儲器組織結構如圖3.3所示。
第5頁共28頁
陜西理工學院畢業(yè)設計
圖3.38051存儲器組織結構
64K字節(jié)的程序存儲器(ROM)空間中,有4K字節(jié)地址區(qū)對于片內ROM和片外ROM是公用的,這4K字節(jié)地址是0000H~FFFH。而1000H~FFFFH地址區(qū)為外部ROM專用。CPU的控制器專門提供一個控制信號EA用來區(qū)分內部ROM和外部ROM的公用地址區(qū):當EA接高電平日,單片機從片內ROM的4K字節(jié)存儲器區(qū)取指令,而當指令地址超過0FFFH后,就自動的轉向片外ROM取指令。當EA接低電平日,CPU只從片外ROM取指令。
程序存儲器的某些單元是保存給系統(tǒng)使用的:0000H~0002H單元是所有執(zhí)行程序的入口地址,復位以后,CPU總是叢0000H單元開始執(zhí)行程序。0003H~002AH單元均勻地分為五段,用做五個中斷服務程序的入口。用戶程序不應進入上述區(qū)域。
8051的RAM雖然字節(jié)數(shù)不好多,但卻起著十分重要的作用。256個字節(jié)被分為兩個區(qū)域:00H~7FH時真正的RAM區(qū),可以讀寫各種數(shù)據(jù)。而80H~FFH是專門用于特別功能寄放器(SFR)的區(qū)域。對于8051安排了21個特別功能寄放器,每個寄放器為8位,所以實際上128個字節(jié)并沒有全部利用。
內部RAM的各個單元,都可以通過直接地址來尋覓,對于工作寄放器,則一般都直接用R0~R7,對特別功能寄放器,也是直接使用其名字較為便利。8051內部特別功能寄放器都是可以位尋址的,并可用“寄放器名.位〞來表示,如ACC.0,B.7等。3.3單片機最小應用系統(tǒng)電路設計
VCCU1P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7123456789R310K10111213141516171819Y112M20C230PP10P11P12P13P14P15P16P17RESETEAP30/RXDP31/TXDP32P33P34P35P36P37X2X1VssAT89C51S4ALE/PPSENP27P26P25P24P23P22P21P20VCCP00P01P02P03P04P05P06P074039383736353433323130292827262524232221P2.7P2.6P2.5P2.4P2.2P2.1P2.04.7K*4VCCS1C310uR1P0.1P0.2P0.3P0.4VCCC130PS2S3圖3.4單片機最小應用系統(tǒng)原理圖
第6頁共28頁
陜西理工學院畢業(yè)設計
注:該最小系統(tǒng)由按鍵復位RESET電路、晶體振蕩電路以及I/O接口電路組成。
復位的實現(xiàn)尋常用2種方式:開機上電復位和外部手動復位,本設計用的是外部手動復位。電路圖3.5如下:
圖3.5單片機復位圖
AT89C51工作電壓VCC=5V,其EA引腳需接高電平,5V電源電路如圖3.6所示。
U21VCC+5V21VinACT14V-V+2C4100u/16VC51047805GNDD6C63C7104AC100u/16v圖3.6單片機電源原理圖
注:該電源電路主要模塊為IC7805,它能輸出穩(wěn)定的5V電源,圖中整流橋是將市電轉變?yōu)橹绷麟?電容起到慮波作用由7805的OUT引腳輸出5V電壓。[6]
3.4LED點陣介紹
8×8單色點陣共需要64個發(fā)光二極管組成,且每個二極管是放置在行線與列線的叉點上。本設計是一種實用的漢字顯示屏的制作,制作的是點陣??紤]到元器件的易購性,使用8×8的點陣發(fā)光二極管模塊,組成了16行16列的發(fā)光點陣。實際使用時可以根據(jù)這個原理自行擴展顯示的字數(shù)。
下面的8×8單色點陣和8×8雙色點陣可以看出,其實8×8雙色點陣就是兩塊8×8單色點陣組合在一起的。要實現(xiàn)用兩種顏色顯示,只要在電路的設計中適當?shù)倪B線就可以了。
8×8單色和雙色點陣LED結構分別如下圖3.8和3.9所示。
3
圖3.78×8點陣外觀及引腳圖
第7頁共28頁
陜西理工學院畢業(yè)設計
圖3.88×8單色點陣內部圖圖3.98×8雙色點陣內部圖
3.5LED顯示方式[7]
漢字顯示屏用于顯示漢字、字符及圖像信息,在公共汽車、銀行、醫(yī)院及戶外廣告等地方都有廣泛的應用。下面是簡單的漢字顯示屏的制作,由單片機控制漢字的顯示內容。為了降低成本,使用了四塊8×8的LED點陣發(fā)光管的模塊,組成了一個16×16的LED點陣顯示屏,如圖1.10所示。在這里僅做了四個漢字的顯示,在實際的使用中可以根據(jù)這個原理自行的擴展顯示的漢字,下面是介紹漢字顯示的原理。
圖3.10四塊8×8的LED點陣組成16×16的LED點陣
LED驅動顯示采用動態(tài)掃描方法,動態(tài)掃描方式是逐行輪番點亮,這樣掃描驅動電路就可以實現(xiàn)多行的同名列共用一套列驅動器。以16×16點陣為例,把所有同一行的發(fā)光管的陽極連在一起,把所有同一列的發(fā)光管的陰極連在一起(共陽的接法),先送出對應第1行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1行使其燃亮一定的時間,然后熄滅;再送出第2行的數(shù)據(jù)并鎖存,然后選通第2行使其燃亮一致的時間,然后熄滅;….第16行之后,又重新燃亮第1行,反復輪回。當這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形。該方法能驅動較多的LED,控制方式較靈活,而且節(jié)省單片機的資源。
顯示數(shù)據(jù)傳輸采用串行傳輸?shù)姆椒?,控制電路可以只用一根信號線,將列數(shù)據(jù)一位一位傳往列驅動器,在硬件方面無疑是十分經(jīng)濟的。但串行傳輸過程較長,數(shù)據(jù)按順序一位一位地輸出給列驅動器,只有當一行的各列數(shù)據(jù)都已傳輸?shù)轿恢?,這一行的各列才能并行地進行顯示。對于串行傳輸方式來說,列數(shù)據(jù)準備時間可能相當長,在行掃描周期確定的狀況下,留給行顯示的時間就太少了,以致影響到LED的亮度。
第8頁共28頁
陜西理工學院畢業(yè)設計
采用串行傳輸中列數(shù)據(jù)準備和列數(shù)據(jù)顯示的時間矛盾,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時,傳送下一行的列數(shù)據(jù)。為了達到重疊處理的目的,列數(shù)據(jù)的顯示就需要有鎖存功能。對于列數(shù)據(jù)準備來說,它應能實現(xiàn)串入并出的移位功能。這樣,本行已準備好的數(shù)據(jù)打入并行鎖存器進行顯示時,串行移位寄放器就可以準備下一行的列數(shù)據(jù),而不會影響本行的顯示。
LED點陣顯示模塊進行的方法有兩種:
(1)水平方向(X方向)掃描,即逐列掃描的方式(簡稱列掃描方式):此時用一個P口輸出列碼決定哪一列能亮(相當于位碼),用另一個P口輸出行碼(列數(shù)據(jù)),決定該行上那哪個LED亮(相當于段碼)。能亮的列從左到右掃描完16列(相當于位碼循環(huán)移動16次)即顯示出一個完整的圖像。
(2)豎直方向(Y方向)掃描,即逐行掃描方式(簡稱行掃描方式):此時用一個P口輸出決定哪一行能亮(相當于位碼),另一個P口輸出列碼(行數(shù)據(jù),行數(shù)據(jù)為將列數(shù)據(jù)的點陣旋轉90度的數(shù)據(jù))決定該行上哪些LED燈亮(相當于段碼)。能亮的行從上向下掃描完16行(相當于位碼循環(huán)移位16次)即顯示一幀完整的圖像。
本設計應用的是第一種的掃描方法,即水平方向(X方向)掃描。
每一個字由16行16列的點陣形成顯示,即每個字均由256個點陣來表示,我們可以把每一個點理解為一個像素。一般我們使用的16×16的點陣宋體字庫,即所謂的16×16,是每一個漢字在縱橫各16點的區(qū)域內顯示的。漢字庫從該位置起的32字節(jié)信息記錄了該字的字模信息。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內的任何圖形。
我們以水平方向(x方向)掃描顯示漢字的“江〞為例來說明其掃描原理,每一個字由16行16列的點陣組成顯示,如圖下的,假使用8位的AT89S51的單片機來控制,由于單片機的總線為8位,一個字需要拆分成兩個部分。一般我們把它分解成上部分和下部分,上部分由8*16的點陣組成,下部分也由8*16的點陣組成。在本例中單片機首先顯示的是左上角的第一列的部分,即第0列的P00~P07口。方向為P00到P07,顯示漢字“江〞的時候,P00到P04都是滅的,P05亮,即二進制00001000,轉換為16進制為08H,如圖1.11所示。
上半部分第一列完成之后,繼續(xù)掃描下半部分的第一列,為了接線的便利,我們仍設計成由上往下的掃描方式,即從P27向P20方向掃描,從上圖可以看到,這一列所有的都不亮,所以代碼為00000000,16進制為00H,然后單片機轉向上半部的其次列,除了P05亮,其他的都不亮,即為00000100,16進制為04H,這一列掃描完成之后繼續(xù)進行下半部分的掃描,除了P21亮,其他的為不亮,為二進制00100000,即16進制20H。
依照這個方法,繼續(xù)進行下面的掃描,一共掃描32個8位,可以得出漢字“陜〞的掃描代碼為:B7FH,FFH,40H,00H,44H,20H,5AH,12H,61H,E2H,14H,84H,13H,88H,10H,B0H;
DBFFH,C0H,10H,A0H,11H,90H,12H,88H,14H,84H,10H,82H,00H,82H,00H,00H;\陜\
圖3.11點陣顯示原理圖
由這個原理可以看到,無論顯示何種字體或圖像,都可以用這種方法來分析出它的掃描代碼從
第9頁共28頁
陜西理工學院畢業(yè)設計
而顯示在屏幕上。了解漢字的顯示原理之后,那如何得到漢字的字模信息呢?現(xiàn)在有一些現(xiàn)成的漢字字模生成軟件,可從網(wǎng)上下載漢字字庫提取程序直接提取字庫,如圖1.12所示的為一種字模生成軟件,軟件開啟后輸入漢字,點擊“檢取〞后,十六進制數(shù)據(jù)漢字代碼即可以自動生成,把我們需要的豎排數(shù)據(jù)復制到我們的程序即可
圖3.12漢字字模生成軟件
3.6點陣的移動
以下以16×16點陣為例介紹點陣的移動。要顯示一個字符,該字符的點陣數(shù)據(jù)可以列向(縱向)16點組字,又可以行向(橫向)16點組字。無論哪一種組字方法,都既可以顯示字符的水平方向的移動,又可以顯示豎直方向的移動。
1.顯示字符的左右移動
(1)列掃描方式左移動:列向組字顯示字符水平方向的移動(左滾動)在這里有兩個方法:
方法1:延長數(shù)組法。將原來字符點陣數(shù)組的16個數(shù)據(jù)重復一遍延長,點陣數(shù)組的數(shù)據(jù)個數(shù)為32個。每掃描儀幀取8個數(shù)據(jù)顯示,下一幀取數(shù)要在數(shù)組中后移一個數(shù)取數(shù)。循環(huán)一遍掃16幀??梢约傧胗袃蓧K16×16的點陣模塊(共32幀)水平平行排列,用一個恰好能罩住8列點陣的中空方框去罩這個點陣,第1(第1幀)罩住最左邊數(shù)起第一列開始的16列,就掃描顯示這16列;第2次(第2幀)使方框右移一列,罩住做左邊數(shù)起第2列開始的16列,就掃描顯示這16列;······;這樣每掃描完一幀使方框右移一列,最終第16次(第16幀)時,罩住左邊數(shù)起的第16列開始的16列,就掃描顯示這16列。如此完成16幀畫面的掃描顯示,也就完成了整個一次移動循環(huán)掃描、之后反復循環(huán),即可浮現(xiàn)顯示字符沿水平向左移動的圖像,如圖1.13所示。
圖3.13方框圖法左右移動示意圖
第10頁共28頁
陜西理工學院畢業(yè)設計
由于是列向組字(列掃描方式,點陣數(shù)據(jù)為行碼,上邊為地位下面為高位),希望顯示移動的一個字符,第1次掃描從行碼的點陣數(shù)組中取第1~16個數(shù)據(jù),送行碼輸出口,對應于這8個數(shù)據(jù),同時用列碼輸出口輸出列碼,分別控制第1~16列。掃描完前16個數(shù)據(jù)之后,第2次掃描從點陣數(shù)組中取第2~14個數(shù)據(jù)(第17個數(shù)據(jù)與地1個數(shù)據(jù)同),送行碼輸出口,對應于這16個數(shù)據(jù),同時用列碼輸出口輸出列碼,仍分別控制掃地1~16列。第3次掃描從點陣數(shù)組中取第3~18個數(shù)據(jù)(第18個數(shù)據(jù)碼與地2個數(shù)據(jù)碼一致)掃描······;如此實現(xiàn)字符向左移動。
以上完成一個圖形移動的方法,也可以看成是移動16個不同的字形。如圖2.13所示,首先掃描第一個字型,同樣是16行,16次掃描,16次顯示;完成一個字型的掃描以后,再掃描其次個字型;完成其次個字型的掃描之后,再掃描第三個字型······依此類推,即可產(chǎn)生該文字的左移的感覺。
圖3.13字形法左右移動示意圖
假設假使原本某個漢字的字型(第一個字型),其編碼為:
00H,10H,20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H;其次個字型的編碼為:
10H,20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H,00H,
也就是把第一個字型的編碼中,第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ù)······以此類推。
當?shù)谝粋€字型掃描顯示完成之后,就進行這樣的動作調整,以產(chǎn)生其次個字型的編碼。同樣的,當其次個字型掃描完成之后,就進行這樣的調整動作,以產(chǎn)生第三個字型的編碼。這個調整動作時先將16個編碼根據(jù)序填入存儲器,例如第1行編碼存入20H,其次行編碼存入21H······要進行左移調整時,則先將20H地址的數(shù)據(jù)轉移到36H地址,再將21H地址的數(shù)據(jù)轉移到20H地址,將22H地址的數(shù)據(jù)轉移到21H地址,將23H地址的數(shù)據(jù)轉移到22H地址,將24H地址的數(shù)據(jù)轉移到23H地址,將25H地址的數(shù)據(jù)轉移到24H地址,將26H地址的數(shù)據(jù)轉移到25H地址,將27H地址的數(shù)據(jù)轉移到26H地址,將28H地址的數(shù)據(jù)轉移到27H地址······
方法2:數(shù)組數(shù)據(jù)“循環(huán)左移法〞(適合用C語言編寫,在此僅作了解)。注意,不是把二進制數(shù)據(jù)按位循環(huán)左移,而是把數(shù)組中的數(shù)據(jù)按其在數(shù)組中的位置循環(huán)左移。具體的方法入下。
原字符點陣數(shù)組中的16個數(shù)據(jù)不延長,但下一幀取的16個數(shù)據(jù),是把上一幀的16個數(shù)據(jù)的位置(先后順序)“循環(huán)左移〞一次,即原來第2個移到第1個,原來第3個移到第2個······原來第1個移到第16個。實現(xiàn)數(shù)組數(shù)據(jù)循環(huán)左移的方法有:第一,遍一個“數(shù)組數(shù)據(jù)循環(huán)左移子程序〞,該子程序每執(zhí)行一次可把數(shù)組中的額數(shù)據(jù)循環(huán)左移一次,主程序中先調用一次該子程序,時數(shù)組中的數(shù)
第11頁共28頁
陜西理工學院畢業(yè)設計
據(jù)循環(huán)左移這一次,然后再從數(shù)組中取數(shù)據(jù)顯示。當數(shù)組中的額數(shù)據(jù)個數(shù)較多時,片內RAM將不夠大,必需將數(shù)組定義在片外RAM中。其次,不用子程序,而是用變量判斷控制實現(xiàn)數(shù)組數(shù)據(jù)的循環(huán)左移。
(2)行掃描方式左移:行向組字顯示字符水平方向的左移。假使是行向組字(行掃描方式,點陣數(shù)據(jù)為列碼,左邊為敵位右邊為高位),希望顯示向左移動的一個字符,第1次掃描從列碼的點陣數(shù)組中取第1~16個數(shù)據(jù),送到列碼輸出口,對應的8個數(shù)據(jù),同時用行碼輸出口輸出行碼,分別控制掃描第1~16行。掃描完成這16個數(shù)據(jù)之后,第2次掃描的第16個數(shù)據(jù),應將原來第1次掃描的16列碼每一個都循環(huán)右移一位(假使是顯示右移則應循環(huán)左移),再進行掃描。如此,每進行下一次掃描,把上一次掃描的16個列碼都循環(huán)右移一位,再進行掃描。
數(shù)據(jù)的右移與數(shù)據(jù)的左移相像,只是取碼的順序相反而已,在此就不再贅述。2.數(shù)據(jù)的上下移動(1)列掃描方式向上移動
列向組字顯示字符豎直方向的移動。若是列向組字,希望顯示向上移動一個字符,第1次掃描從行碼的點陣數(shù)組中取第1~16個數(shù)據(jù),送行碼輸出口,對應于這16個數(shù)據(jù),同時用列碼輸出口輸出列碼,分別控制掃描第1~16列。由于是列向組字(上高下低),掃描完成這16個數(shù)據(jù)后,第2次掃描的16個數(shù)據(jù),應將原來的第1次掃描的16個行碼每一個都循環(huán)右移一位,使顯示的點都上移一行(假使是顯示向下滾動則應循環(huán)左移),再進行掃描。如此,每進行下一次的掃描,把上一次的16個行碼都循環(huán)右移一位,再進行掃描就實現(xiàn)了數(shù)據(jù)的向上移動。
也可以用字型的方法簡單理解,以下的16×16的LED顯示一個字是8個字型,首先掃描的而是第一個字型,同樣是16行,16列掃描,16次顯示;完成一個字型后,再掃描其次個字型;完成其次個字型后,再掃描第三個字型······以此類推,即可產(chǎn)生該文字向上移動的感覺
當把第一個字型編碼中,每行顯示的數(shù)據(jù)都右移一位,以產(chǎn)生其次個字型編碼,即可產(chǎn)生字符向上滾動的感覺。
當?shù)谝粋€字符掃描完成后,就進行這樣的調整動作,以產(chǎn)生其次個字型的編碼。同樣的,當其次個字型完成之后,就進行這樣的調整動作,以產(chǎn)生第三個字型的編碼。調整的動作是先將8個編碼根據(jù)序填入儲存器,例如第1行編碼存入20地址,第2行編碼存入21地址······要進行上移調整時,則從20地址數(shù)據(jù)開始,每筆數(shù)據(jù)都右移一位即可。
下圖2.15僅以字型移動的方法畫圖。
第12頁共28頁
陜西理工學院畢業(yè)設計
圖3.15字形法上下移動示意圖
(2)行掃描方式上下移動
行向組字顯示字符豎直方向的移動
方法1:延長數(shù)組法。假使是行向組字,希望顯示向上移動的一個字符,第1次掃描從列碼的點陣數(shù)組中取第1~16個數(shù)據(jù),送列碼輸出口,對應于這8個數(shù)據(jù),同時用行碼輸出口輸出行碼,分別控制掃描第1~16行。第2次掃描從點陣數(shù)組中取第2~17個額數(shù)據(jù)(第17個數(shù)據(jù)與地1個數(shù)據(jù)同),分別送列碼輸出口,對應于這16個數(shù)據(jù),同時用行碼輸出口輸出行碼,仍分別控制地1~16行。第3次掃描從點陣數(shù)組中取第3~18個數(shù)據(jù)(第18個數(shù)據(jù)與地2個數(shù)據(jù)同)掃描;······如此就實現(xiàn)了字符的向上移動。
方法2:數(shù)組數(shù)據(jù)“循環(huán)左移法〞。實現(xiàn)數(shù)組數(shù)據(jù)循環(huán)左移的方法與上類似。也有:用數(shù)組數(shù)據(jù)循環(huán)左移子程序;不用子程序,而是用變量判斷控制實現(xiàn)數(shù)組數(shù)據(jù)的循環(huán)左移。3.7LED陣列驅動電路
正向點亮一顆LED,至少也得10到20毫安,若電流不夠大,則LED不夠亮!而不管是8051的輸入還是輸出端其高態(tài)輸出電流都不是很高,不過1~2毫安而已。因此,很難直接高態(tài)驅動LED。這時候就需要額外的驅動電路,分別針對共陽極和共陰極LED陣列,有兩種不同的驅動方式。針對輸出態(tài)的不同,分為:高態(tài)掃描-高態(tài)顯示,高態(tài)掃描-低態(tài)顯示,低態(tài)掃描-高態(tài)顯示和低態(tài)掃描-低態(tài)顯示四種方式。下面針對設計中實際用到的一種驅動方式介紹一種:共陰型低態(tài)掃描-低態(tài)顯示信號驅動電路。
圖2.17所示是針對共陰性LED陣列而設計的驅動電路,在這種驅動電路采用低態(tài)掃描,也就是任何時間只有一個高態(tài)信號,其他則為低態(tài)。一行掃描完成之后,再把高態(tài)信號轉到鄰近的其他行。掃描信號經(jīng)限流電阻接到PNP晶體管的基極,晶體管的集電極接地,射極則連至LED點陣的列引腳,若要同時點亮該列的16個LED,則晶體管的電流必需大于200毫安才行。常用的2N3904之類就可以達到當?shù)蛻B(tài)的列掃描信號輸入晶體管的基極后,該晶體管即為正向,而產(chǎn)生電流,即可使該列的LED具有點亮的條件
所要的顯示信號連接到一個PNP晶體管的基極,而該晶體管的射極連接到VCC,同樣的,當?shù)蛻B(tài)的顯示信號輸入時,晶體管的集電極電流將流入行LED的陽極,即可點亮該行的LED。如圖1.17
第13頁共28頁
陜西理工學院畢業(yè)設計
所示.
圖3.17共陰型低態(tài)掃描-低態(tài)顯示信號驅動電路
若要并接多個LED陣列,如連接使用4個8×8LED陣列,連接成16×16LED陣列,則一個掃描信號同時驅動兩個LED陣列。如在本設計中要顯示的字比較大,用一個8×8的點陣無法顯示完整,這就需要用四塊8×8的點陣組成一塊16×16的點陣,這樣就可以顯示完整的漢字了,若要并聯(lián)多個8×8的LED組成16×16的點陣,則一個掃描信號同時要驅動兩行的LED。如下圖1.18所示。
圖3.1816×16的點陣驅動圖
這時候就需要靠鎖存器(74LS373)將這兩組顯示信號鎖住,此處的鎖存器是以低態(tài)輸出的,其輸出的電壓可達24毫安,足以驅動一個LED;若嫌不足,可以選用74A373其輸出的電壓可達48
第14頁共28頁
陜西理工學院畢業(yè)設計
毫安,當74LS373得G腳為高態(tài)時,數(shù)據(jù)可以從輸入端傳輸?shù)芥i存器中;G腳為低態(tài)時,數(shù)據(jù)被鎖住,不會隨輸入端而變。另外OC腳為輸出控制引腳,當OC腳為高態(tài)時,輸出浮現(xiàn)高阻抗;OC為低態(tài)時,數(shù)據(jù)會由鎖存器輸出。
在這個電路之中驅動的掃描信號總共有16條,假使直接由8051輸出,將占用2個PORT口,浪費了寶貴的資源,不太理想,在此使用的是一個4對16的譯碼器(74LS154),這個譯碼器是將輸入的16進位碼解碼輸出低態(tài)的掃描信號。輸出的低態(tài)掃描信號可直接接到PNP晶體管的基極,假使太大的話也可以先經(jīng)過限流電阻再接到PNP晶體管的基極,信號最終經(jīng)過晶體管的放大后即可推動16個LED點陣了。
4軟件設計
4.1單片機延時子程序
延時程序在單片機編程中使用十分廣泛,也很重要,在本畢業(yè)設計的程序中用到了延時子程序,所以在此詳細的表達一下。在弄清延時程序指令的用法之前,要明白的了解延時程序的基本概念,機器周期和指令周期的區(qū)別和聯(lián)系、相關指令的用法等。
我們知道程序設計是單片機開發(fā)最重要的工作,而程序在執(zhí)行過程中往往需要完成延時的功能。例如在本設計中,行向的掃描要控制每行的掃描時間,還有所有的字移動有一定的時間間隔,而在所有的字移動一遍終止的一瞬間到下一遍移動開始的一瞬間要有延時,這時的延時可以和移動的時間一致以保持移動的連貫性,也可以不同作為每次從頭開始的停頓,在上述就可以通過延時程序來完成。
1.機器周期和指令周期
(1)機器周期是指單片機完成一個基本操作所花費的時間,一般使用微秒來計量單片機的運行速度,51單片機的一個機器周期包括12個時鐘振蕩周期,也就是說假使51單片機采用12MHz晶振,那么執(zhí)行一個機器周期就只需要1μs;假使采用的是6MHz的晶振,那么執(zhí)行一個機器周期就需要2μs。
(2)指令周期是指單片機執(zhí)行一條指令所需要的時間,一般利用單片機的機器周期來計量指令周期。
在51單片機里有單周期指令(執(zhí)行這條指令只需一個機器周期),雙周期指令(執(zhí)行這條指令只需要兩個機器周期),四周期指令(執(zhí)行這條指令需要四個機器周期)。除了乘、除兩條指令是四周期指令,其余均為單周期或雙周期指令。也就是說,假使51單片機采用的是12MHz晶振,那么它執(zhí)行一條指令一般只需1~2微秒的時間;假使采用的是6MHz晶振,執(zhí)行一條指令一般就需2~4微秒的時間。
以12MHZ晶振為例,指令周期、機器周期與時鐘周期的關系是:
指令周期:CPU執(zhí)行一條指令所需要的時間稱為指令周期,它是以機器周期為單位的,指令不同,所需的機器周期也不同。
時鐘周期:也稱為振蕩周期,一個時鐘周期=晶振的倒數(shù)。MCS-51單片機的一個機器周期=6個狀態(tài)周期=12個時鐘周期。
MCS-51單片機的指令有單字節(jié)、雙字節(jié)和三字節(jié)的,它們的指令周期不盡一致,一個單周期指令包含一個機器周期,即12個時鐘周期,所以一條單周期指令被執(zhí)行所占時間為12×(1/12000000)=1μs。
了解以上概念后,那么可以依據(jù)單片機器件手冊中89C51的指令執(zhí)行周期和其所用晶振頻率來完成需要確切延時時間的延時程序。
2.延時指令
在單片機編程里面并沒有真正的延時指令,從上面的概念中我們知道單片機每執(zhí)行一條指令都需要一定的時間,所以要達到延時的效果,只須讓單片機不斷地執(zhí)行沒有具體實際意義的指令,從而達到了延時的效果。
(1)數(shù)據(jù)傳送指令MOV
第15頁共28頁
陜西理工學院畢業(yè)設計
數(shù)據(jù)傳送指令功能是將數(shù)據(jù)從一個地方復制、拷貝到另一個地方。
如:MOVR7,#80H;將數(shù)據(jù)80H送到寄放器R7,這時寄放器R7里面存放著80H,就單這條指令而言并沒有任何實際意義,而執(zhí)行該指令則需要一個機器周期。
(2)空操作指令NOP
空操作指令功能只是讓單片機執(zhí)行沒有意義的操作,消耗一個機器周期。(3)循環(huán)轉移指令DJNZ
循環(huán)轉移指令功能是將第一個數(shù)進行減1并判斷是否為0,不為0則轉移到指定地點;為0則往下執(zhí)行。
如:DJNZR7,KK;將寄放器R7的內容減1并判斷寄放器R7里的內容減完1后是否為0,假使不為0則轉移到地址標號為KK的地方;假使為0則執(zhí)行下一條指令。這條指令需要2個機器周期。
循環(huán)轉移指令(DJNZ)除了可以給定地址標號讓其跳轉外,還可以將地址標號改成$,這樣程序就跳回本指令執(zhí)行。例如:DJNZR7,$;R7內容減1不為0,則再次執(zhí)行本指令;為0則往下執(zhí)行,當R7的值改為10時,則執(zhí)行完該條程序所需的時間為2*10=20μs。
利用以上三條指令的組合就可以比較確切地編寫出所需要的延時程序。下面是本設計的程序中延時程序的計算:
MOVR3,#200;①1
D1:MOVR5,#250;②1F1:DJNZR5,F1;③2*R5
DJNZR3,D1;④2*R3+(1+2*R5)*R3RET2
上面這個子程序共有四條指令,現(xiàn)在分別就每一條指令被執(zhí)行的次數(shù)和所耗時間進行分析。第一句:MOVR3,#200在整個子程序中只被執(zhí)行一次,且為單周期指令,所以耗時1μs其次句:MOVR5,#250從②看到④只要R3-1不為0,就會返回到這句,共執(zhí)行了R3次,共耗時200μs
第三句:DJNZR5,F(xiàn)1只要R5-1不為0,就反復執(zhí)行此句(內循環(huán)R5次),又受外循環(huán)R3控制,所以共執(zhí)行R3*R5次,因是雙周期指令,所以耗時2*R3*R5μs。所以確切延時時間為:1+(1×200)+(2×250×200)+(2×200)+2=(2*250+3)*200+3=100603μs≈100ms=0.1s
4.2點陣左移顯示的流程圖及分析
流程圖(圖2.1)和程序的簡要說明:在程序的開始設定初始的地址是0H,并定義了〞選擇符號F〞的初值為0,為下面的點陣掃描的出口選擇準備。在主程序的開始的延時子程序,延時0.1秒,既是在程序通電啟動開始的停頓,也作為一次移動的末尾時到開始下一次重復移動開始之間的停頓,在上面的“延時子程序〞中已經(jīng)介紹了計算的方法。程序接著向下運行,定義了取碼指針的位置,設為00H的初始位置,再下面的74LS154掃描指針的初值設為00H,是由于掃描要從開始的零點開始掃。程序的循環(huán)運行是從M3開始的,M3的開始10行程序是點陣顏色的選擇,即確定列掃描出口的選擇,由于F的初值是0,所以先從掃描信號先從P1口輸出,即首先顯示的是紅色的點陣。掃描信號輸出后,取碼指針先去的第一個碼送到點陣的上半部分,開啟上部分點陣的74LS373鎖存器關閉下面部分74LS373鎖存器,把信號送到點陣的上部分。再指針加1,關閉上部分點陣的74LS373鎖存器,開啟下面部分74LS373鎖存器,取相鄰的碼送到點陣的下半部分,緊挨著的延時程序是設定每列掃描的時間:MOVR3,#50;DJNZR3,$;
第16頁共28頁
陜西理工學院畢業(yè)設計
延時時間為:1+(2*50)=101us≈0.1ms
下面的“DJNZR6,M3;〞到M3的循環(huán)可以計算顯示一次一個整屏的時間為0.1ms*16=1.1ms,再下面的“DJNZR1,M2;〞到M2的循環(huán)可以計算出每個屏的停留時間,也是向左每移動一下的時間間隔為0.1ms*16*65=104ms=0.1s。
當字型向左移動一位的時候,取碼指針應在先加2再進行下一個字型的取碼,由于本設計每1列的碼為2個。最終的部分代碼:XRLA,#128;JNZM1;CPLF0;
JMPSTART;
的意思是:在控制字型移動完以后,返回到頭重新開始移動,由于在本設計是顯示6個字型,6個字型的碼為192個,取碼指針的初始為0,每次加2,到192時循環(huán)終止,改變F的狀態(tài),跳到程序的最上面開始部分,開始黃色字型的移動顯示。
說明一下:本設計是以顯示6個字的循環(huán)為例的,正如前面所說,字型可以任意加進去,顯示任意多的字左移的顯示,還可以顯示一些符號和圖形。只要有字型的代碼,再稍微改一下程序就可以顯示了。
顯示效果:開始停0.1秒,顯示向左移動的紅色字“XXXX〞,移動的速度為每0.1秒移動一下,到左后一個字。在主程序的開始的延時作為一次移動的末尾時到開始下一次重復移動開始之間的停頓,和字符移動的時間間隔一致,保持了移動的平穩(wěn)連貫性。
第17頁共28頁
陜西理工學院畢業(yè)設計
開始START:清除屏幕取碼指針載入A到TABLE取下半部數(shù)據(jù)F=0P0.0置1,P0.1清0輸出至P2延時取碼值加1并延時取碼指針20H初值為00清除屏幕154掃描指針初值為00掃描下一行M2顯示1屏?Y清除154掃描設置每屏停留時間N每屏4字,取碼指針存R0M3掃描指針→AYF=0?P0.2清零P0.1清零P0.2置1輸出至P0.3掃描M4取碼指針載入ANNNM1每屏停留的時間Y取碼指針載入AP0.1置1輸出至P0.1掃指針加2并回存到TABLE取上半部數(shù)據(jù)P0.0清0,P0.1置1輸出至P2口顯示取下一個碼8個字都左移完?YF0取反RET圖4.1點陣左移顯示的流程圖第18頁共28頁
陜西理工學院畢業(yè)設計
4.3PROTEUS仿真
Proteus仿真時,單片機需要加載程序,加載程序為.HEX文件。本設計利用KeilμVision2,在新建Keil項目時選擇AT89C51單片機作為CPU,將源程序導入,在“OptionsForTarget〞對話窗口中,選中“Output〞選項中的“CreateHEXFile〞,編譯鏈接后就可以生成.HEX文件。在ProteusISIS中,選中AT89C51并單擊鼠標左鍵,對AT89C51進行設置,設置單片機時鐘頻率為12MHz,依照正確的文件路徑加載.HEX文件。對單片機設置完畢后就可以開始仿真了。仿真過程中如有硬件問題可在ProteusISIS中直接修改,如有軟件問題可在KeilμVision2中直接修改,通過Keil與Proteus的聯(lián)合調試就可以得到滿意的結果。利用Proteus實現(xiàn)了對點陣式LED滾動漢字顯示屏的仿真,說明程序和電路圖都沒有問題。4.4調試
調試主要分為硬件調試和軟件調試:
硬件調試:在焊接電路板的時候,應當從最基本的最小系統(tǒng)開始,分模塊,逐個進行焊接測試。在對各個硬件模塊進行測試時,要保證軟件正確的狀況下去測試硬件,要不然發(fā)生錯誤時,不知道終究是哪一方出錯了。當然,在設計的過程中也存在著失誤和不足,在調試中進行修改了。
軟件調試:軟件部分是先參考書上的例子,然后自己根據(jù)硬件電路寫程序,由于以前所學是單片機匯編語言,所以這個系統(tǒng)在編寫程序過程中都采用匯編語言編寫。剛剛開始,編寫不會一次性通過,經(jīng)過細心分析修改最終編譯成功。但是,在實際寫如S51中,LED顯示屏出現(xiàn)各種各樣的亂碼,通過再次認真細心分析屢屢修改程序后,程序能夠正常運行。
[8]
終止語
本次畢業(yè)設計從5月中旬到現(xiàn)在有一個多月,回想著些天我感到學到了好多東西,在寫這個心得的時候,我想就這些天的收獲,說一說自己內心的想法。
本設計的是一個室內用16x16的點陣LED圖文顯示屏,能夠在目測條件下LED顯示屏各點亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應穩(wěn)定、明了無串擾。圖形或文字顯示有靜止、移入移出等顯示方式。本系統(tǒng)具有硬件少,結構簡單,簡單實現(xiàn),性能穩(wěn)定可靠,成本低等特點。
總結本文的研究工作,主要做了下面幾點工作:
一、通過查閱大量的相關資料,詳細了解了LED的發(fā)光原理和LED顯示屏的原理,了解了LED的現(xiàn)狀,明白地了解了LED顯示屏與其它顯示屏相比較有那些優(yōu)點,明確了研究目標。并且通過對單片機資料的查閱和應用,更進一步增加了對單片機知識的理解和運用能力。并證明白自己的思路:“查資料→思考總結→運用→找出過錯,再查資料和向別人詢問→再次運用〞的正確性。
二,本文設計的LED顯示屏能夠實現(xiàn)在目測條件下LED顯示屏各點亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應穩(wěn)定、明了無串擾。圖形或文字顯示有靜止、移入移出等顯示方式。
三,本文列出了系統(tǒng)具體的硬件設計方案,硬件結構電路圖,軟件流程圖和具體匯編語言程序設計與調試等方面。
四,在這次畢業(yè)設計的過程中學會了Protel的基本使用,感到Protel對應用電子專業(yè)的同學來說是一門很有用的課程。在運用Protel時要特別防備,例如在畫PCB電路板的時候,要注意基本的布板原則。例如,在進行PCB布板的時候,濾波電容不夠靠近芯片的電源腳和地腳。
五,通過這次畢業(yè)設計,重新復習并進一步加強了動手的能力,學以致用,把只是運用到實際生活中才是根本目的。
六,存在問題:沒有考慮仿真軟件是一個理想的仿真環(huán)境,而實際連接的電路板會由于譬如連接不當,相鄰器件間的干擾等等的問題導致在仿真軟件中能良好運行的程序,出現(xiàn)顯示問題,經(jīng)過排查和合理的器件擺放焊接,問題解決。
總體來說這次的畢業(yè)設計很成功,達到了預想的目的:學到了知識,提高了能力,完成了任務。有點缺憾是時間有限,不能進一步深入和擴散學習和研究。希望有時間可以對程序和電路圖作更進一步的改進,譬如實現(xiàn)點陣的上下移動,對角線移動,三色顯示等。
第19頁共28頁
陜西理工學院畢業(yè)設計
致謝
經(jīng)過一個月的努力,畢業(yè)設計終究完成了,在此期間,學到了好多有用的知識,把理論知識運用到實踐中,積累了寶貴的經(jīng)驗。
在此期間,特別感謝劉老師對我的指導和關心,還有同學們對我的幫助,是他們在我畢業(yè)的最終關頭給了我們巨大的幫助與勉勵,使我能夠順利完成畢業(yè)設計,在此表示衷心的感謝。老師們認真負責的工作態(tài)度,嚴謹?shù)闹螌W精神和深厚的理論水平都使我收益匪淺。他無論在理論上還是在實踐中,都給與我很大的幫助,使我得到不少的提高這對于我以后的工作和學習都有一種巨大的幫助,感謝他耐心的輔導,同時感謝母校對我四年來的教育和關心,在這里我不僅學到了專業(yè)知識,還學到了好多做人的道理。使我明確了以后的方向,樹立了良好的價值觀,在這里學到的一切都使我終身受益。
再次衷心感謝所有關心和幫助過我的老師和同學,感謝你們。
陜西理工學院畢業(yè)設計
附錄一.程序代碼
ORG0000H;
CLRF0;顏色選擇符號F0清零START:MOVA,#00H;清除屏幕MOVP2,A;顯示信號輸出到P2口MOVR3,#200;延時程序D1:MOVR5,#250;F1:DJNZR5,F1;DJNZR3,D1;
MOVE:MOV20H,#00;取碼指針地址20H初值為00MOVR4,00H;74LS154掃描指針初值為00M1:MOVR1,#65;每屏停留時間
M2:MOVR6,#16;每屏一個字,16個數(shù)據(jù)碼MOVR0,20H;取碼指針存入R0M3:MOVA,R4;掃描指針載入ACLRP0.2;清P0.2SETBP0.3;P0.3置1
MOVP1,A;輸出至P1掃描列SJMPM4;
ORGANGE:MOVP3,A;CLRP0.3;
M4:MOVA,R0;取碼指針載入A
MOVDPTR,#TABLE;數(shù)據(jù)指針指到TABLEMOVCA,@A+DPTR;到TABLE取上半部數(shù)據(jù)碼SETBP0.1;P0.1口置1CLRP0.0;清P0.0口
MOVP2,A;輸出至P2口顯示INCR0;取下一個碼
MOVA,R0;取碼指針載入A
MOVDPTR,#TABLE;數(shù)據(jù)指針指到TABLEMOVCA,@A+DPTR;到TABLE取下半部碼SETBP0.0;CLRP0.1;
MOVP2,A;輸出到P2口顯示INCR0;取碼值加1MOVR3,#50;延時DJNZR3,$;
MOVA,#00H;清除屏幕MOVP2,A;
INCR4;掃描下一行
DJNZR6,M3;判斷顯示一屏
MOVR4,#00;清除74LS154掃描指針為00DJNZR1,M2;每屏停留時間MOVA,20H;取碼指針載入AADDA,#02;指針加2
第21頁共28頁
陜西理工學院畢業(yè)設計
MOV20H,A;再存入20H地址取碼指針XRLA,#128;四個字是否都左移完?JNZM1;否,跳到M1
SJMPSTART;是,跳到STARTTABLE:
DB7FH,FFH,40H,00H,44H,20H,5AH,12H,61H,E2H,14H,84H,13H,88H,10H,B0H;DBFFH,C0H,10H,A0H,11H,90H,12H,88H,14H,84H,10H,82H,00H,82H,00H,00H;DB40H,00H,4FH,FEH,48H,14H,48H,24H,48H,44H,7FH,84H,48H,04H,48H,04H;DB48H,04H,7FH,84H,48H,44H,48H,44H,48H,44H,4FH,FEH,40H,00H,00H,00H;DB22H,08H,22H,08H,3FH,F0H,22H,10H,22H,12H,00H,02H,7FH,A2H,49H,22H;DB49H,22H,7FH,FEH,49H,22H,49H,22H,49H,22H,7FH,A2H,00H,02H,00H,00H;DB00H,04H,00H,04H,40H,04H,40H,04H,40H,04H,40H,04H,40H,04H,7FH,FCH;DB40H,04H,40H,04H,40H,04H,40H,04H,40H,04H,40H,04H,00H,04H,00H,00H;DB02H,00H,0CH,40H,08H,40H,48H,40H,3AH,40H,2AH,40H,0AH,42H,8AH,41H;DB7AH,FEH,2BH,40H,0AH,40H,18H,40H,EAH,40H,4CH,40H,08H,40H,00H,00H;DB7FH,FFH,40H,00H,4CH,40H,52H,20H,61H,C1H,30H,82H,24H,8CH,24H,F0H;DBA4H,80H,64H,80H,24H,FEH,24H,81H,24H,81H,30H,81H,20H,8FH,00H,00H;END附錄二.主要芯片介紹1.8051系列的單片機
AT89C51單片機為好多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。圖片見下圖附錄1。
附錄189S51管腳圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國安全軟件行業(yè)發(fā)展現(xiàn)狀及投資商業(yè)模式分析報告
- 2024-2030年中國聲磁軟標簽行業(yè)運營模式及發(fā)展策略分析報告
- 2024-2030年中國壓裂車行業(yè)發(fā)展需求及投資戰(zhàn)略研究報告版
- 2024年土地儲備土地轉租交易服務合同模板3篇
- 梅河口康美職業(yè)技術學院《嵌入式系統(tǒng)設計及應用》2023-2024學年第一學期期末試卷
- 2024年房屋代售全權協(xié)議3篇
- 主題訓練-“大美?長沙”VI基礎系統(tǒng)設計
- 2024年度領養(yǎng)孤兒及棄嬰家庭關愛與教育協(xié)議書范本下載3篇
- 2024年物聯(lián)網(wǎng)智能家居系統(tǒng)研發(fā)合作合同
- 洛陽文化旅游職業(yè)學院《新能源汽車概論》2023-2024學年第一學期期末試卷
- 2024-2030年仔豬飼料行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 農(nóng)村化糞池清掏服務投標方案(技術方案)
- 第9課《創(chuàng)新增才干》第1框《創(chuàng)新是引領發(fā)展的第一動力》【中職專用】中職思想政治《哲學與人生》(高教版2023基礎模塊)
- 2024年部編新改版語文小學一年級上冊第二單元復習課教案
- 2024年廣東廣州市荔灣區(qū)教育局招聘事業(yè)編制人員203人歷年(高頻重點復習提升訓練)共500題附帶答案詳解
- JGJT397-2016 公墓和骨灰寄存建筑設計規(guī)范
- 2024版房產(chǎn)代持協(xié)議書樣本
- 某現(xiàn)澆鋼筋混凝土雙向板肋梁樓蓋設計計算書
- 八角購銷合同范本
- 網(wǎng)課智慧樹知道《英美文學(山東第一醫(yī)科大學)》章節(jié)測試答案
- 2024年廣東省廣州市荔灣區(qū)中考一模語文試題【含答案解析】
評論
0/150
提交評論