基于單片機(jī)88點(diǎn)陣控制系統(tǒng)設(shè)計_第1頁
基于單片機(jī)88點(diǎn)陣控制系統(tǒng)設(shè)計_第2頁
基于單片機(jī)88點(diǎn)陣控制系統(tǒng)設(shè)計_第3頁
基于單片機(jī)88點(diǎn)陣控制系統(tǒng)設(shè)計_第4頁
基于單片機(jī)88點(diǎn)陣控制系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

煙臺南山學(xué)院單片機(jī)課程設(shè)計題目基于單片機(jī)8×8點(diǎn)陣控制系統(tǒng)設(shè)計姓名:所在學(xué)院:煙臺南山學(xué)院所學(xué)專業(yè):電氣工程及其自動化班級:電氣工程1006學(xué)號:指導(dǎo)教師:完成時間:2013-9-5摘要本文研究了基于AT89C51單片機(jī)LED8×8點(diǎn)陣顯示屏的設(shè)計并運(yùn)用Proteus軟件進(jìn)行原理圖繪制,運(yùn)用Keil軟件進(jìn)行仿真和調(diào)試。主要介紹了LED8×8點(diǎn)顯示屏的硬件電路設(shè)計、匯編程序設(shè)計與調(diào)試、Proteus軟件繪制原理圖和實(shí)物制作等方面的內(nèi)容,本顯示屏的設(shè)計具有體積小、硬件少、電路結(jié)構(gòu)簡單及容易實(shí)現(xiàn)等優(yōu)點(diǎn)。能幫助廣大電子愛好者了解漢字的點(diǎn)陣顯示原理,認(rèn)識單片機(jī)的基本結(jié)構(gòu)、工作原理及應(yīng)用方法,并提高單片機(jī)知識技術(shù)的運(yùn)用能力。關(guān)鍵字:Keil軟件;LED8×8點(diǎn)陣顯示屏;Proteus軟件;AT89C51單片機(jī)目錄1緒論12總體設(shè)計方案12.1硬件電路組成及介紹12.1.1AT89C51單片機(jī)22.1.2LED顯示屏42.2系統(tǒng)各單元電路設(shè)計42.2.1最小系統(tǒng)42.2.2驅(qū)動電路設(shè)計62.2.3上拉電阻72.2.4顯示電路72.2.5時鐘電路82.3字符的點(diǎn)陣顯示原理及字庫代碼獲取方法93程序設(shè)計113.1程序流程圖113.2程序設(shè)計114調(diào)試及性能分析154.1系統(tǒng)調(diào)試154.1.1軟件調(diào)試154.1.2硬件調(diào)試154.2性能分析154.3實(shí)物效果圖165設(shè)計總結(jié)17心得體會18參考文獻(xiàn)19附錄20附錄1原件清單20附錄2硬件原理圖201緒論

LED點(diǎn)陣顯示屏是集微電子技術(shù)、計算機(jī)技術(shù)、信息處理技術(shù)于一體的大型顯示屏系統(tǒng)。它以其色彩鮮艷,動態(tài)范圍廣,亮度高,壽命長,工作穩(wěn)定可靠等優(yōu)點(diǎn)而成為眾多顯示媒體以及戶外作業(yè)顯示的理想選擇。同時也可廣泛應(yīng)用到軍事、車站、賓館、體育、新聞、金融、證券、廣告以及交通運(yùn)輸?shù)仍S多行業(yè)。目前大多數(shù)的LED點(diǎn)陣顯示系統(tǒng)自帶字庫。其顯示和動態(tài)效果(主要是顯示內(nèi)容的滾動)的實(shí)現(xiàn)主要依靠硬件掃描驅(qū)動,該方法雖然比較方便,但顯示只能按照預(yù)先的設(shè)計進(jìn)行。而實(shí)際上經(jīng)常會遇到一些特殊要求的動態(tài)顯示,比如電梯運(yùn)行中指示箭頭的上下移動、某些智能儀表幅值的條形顯示、廣告中廠家的商標(biāo)顯示等。這時一般的顯示系統(tǒng)就很難達(dá)到要求。另外,由于受到存儲器本身的局限,其特殊字符往往難以顯示,同時顯示內(nèi)容也不能隨意更改。

因此就提出了一種利用PC機(jī)和單片機(jī)控制的LED顯示系統(tǒng)通信方法。該方法可以對顯示內(nèi)容進(jìn)行實(shí)時控制,從而實(shí)現(xiàn)諸如動態(tài)顯示效果。同時用戶也可以在PC機(jī)上進(jìn)行顯示效果的預(yù)覽,顯示內(nèi)容亦可以即時修改。同時它具有發(fā)光率高、使用壽命長、組態(tài)靈活、色彩豐富以及對室內(nèi)外環(huán)境適應(yīng)能力強(qiáng)等優(yōu)點(diǎn)。并廣泛的用于公交汽車、商店、體育場館、車站、學(xué)校、銀行、高速公路等公共場所的信息發(fā)布和廣告宣傳。LED顯示屏發(fā)展較快,本文講述了基于AT89C51單片機(jī)8×8LED漢字點(diǎn)陣滾動顯示的基本原理、硬件組成與設(shè)計、程序編寫與調(diào)試、Proteus軟件仿真等基本環(huán)節(jié)和相關(guān)技術(shù)。LED電子顯示屏是隨著計算機(jī)及相關(guān)的微電子﹑光電子技術(shù)的迅猛發(fā)展而形成的一種新型信息顯示媒體。它利用發(fā)光二極管構(gòu)成的點(diǎn)陣模塊或像素單元組成可變面積的顯示屏幕,以可靠性高、使用壽命長、環(huán)境適應(yīng)能力強(qiáng)、性能價格比高、使用成本低等特點(diǎn),在短短的十來年中,迅速成長為平板顯示的主流產(chǎn)品,在信息顯示領(lǐng)域得到了廣泛的應(yīng)用。LED點(diǎn)陣電子顯示屏是集微電子技術(shù)、計算機(jī)技術(shù)、信息處理技術(shù)于一體的大型顯示屏系統(tǒng)。它以其色彩鮮艷,動態(tài)范圍廣,亮度高,壽命長,工作穩(wěn)定可靠等優(yōu)點(diǎn)而成為眾多顯示媒體以及戶外作業(yè)顯示的理想選擇。同時也可廣泛應(yīng)用到軍事、車站、賓館、體育、新聞、金融、證券、廣告以及交通運(yùn)輸?shù)仍S多行業(yè)。2總體設(shè)計方案2.1硬件電路組成及介紹本產(chǎn)品采用以AT89C51單片機(jī)為核心芯片的電路來實(shí)現(xiàn),AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C51是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51是它的一種精簡版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。我們把行列總線接在單片機(jī)的I/O口,然后把上面分析到的掃描代碼送入總線,就可以得到顯示的字符了。我們在實(shí)際應(yīng)用中是將LED點(diǎn)陣的8條列線通過驅(qū)動電路接在P1口,8條行線通過限流電阻接在P0口。單片機(jī)AT89C51按照設(shè)定的程序在P1和P0接口輸出與內(nèi)部字符對應(yīng)的代碼電平送至LED點(diǎn)陣的行列線(高電平驅(qū)動),從而選中相應(yīng)的象素LED發(fā)光,并利用人眼的視覺暫留特性合成整個字符的顯示。再改變?nèi)”淼刂穼?shí)現(xiàn)字符的滾動顯示。LED點(diǎn)陣總體框圖如圖1.1所示,點(diǎn)陣電路大體上可以分成微機(jī)本身的硬件、顯示驅(qū)動電路、控制信號電路三部分??刂齐娐凡糠职ㄒ粋€51CUP和一些外圍電路。在整個電路當(dāng)中此控制電路部分相當(dāng)于一個上位機(jī),它負(fù)責(zé)控制整個電路以及相應(yīng)的程序的運(yùn)行、與PC機(jī)的串行通訊、以及給屏體電路部分發(fā)送命令。點(diǎn)陣顯示屏體、以及它的行和列的各個驅(qū)動電路。由于兩部分的電路在制板時可以放到一起,所以可以將其字庫放到控制電路部分使用串行通訊方式來與屏體電路部分進(jìn)行數(shù)據(jù)和命令的傳送。此顯示電路采用掃描方式進(jìn)行顯示時,每行有一個行驅(qū)動器,各行的同名列共用一個列驅(qū)動器。由行譯碼器給出的行選通信號,從第一行開始,按順序依次對各行進(jìn)行掃描(把該行與電源的一端接通)。另一方而,根據(jù)各列鎖存的數(shù)據(jù),確定相應(yīng)的列驅(qū)動器是否將該列與電源的另一端接通。接通的列,就在該行該列點(diǎn)燃相應(yīng)的LED;未接通的列所對應(yīng)的LED熄滅??赏ㄟ^掃描輸出口的控制實(shí)現(xiàn)顏色的轉(zhuǎn)換。硬件電路組成框圖如圖1所示:圖1硬件電路組成框圖2.1.1AT89CAT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。圖片見如下:圖2AT89C51(1).管腳說明VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:管腳備選功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗(yàn)接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出LED顯示屏本次設(shè)計中采用8*8點(diǎn)陣LED顯示器,簡稱LED點(diǎn)陣板或LED矩陣板。它是以發(fā)光二極管為像素,按照行與列的順序排列起來,用集成工藝制成的顯示器件。有單色和雙色之分,這種顯示器有共陽極接法和共陰極接法兩種,設(shè)計中用到的是共陽極的顯示器。LED顯示屏色彩豐富,3基色的發(fā)光管的可以顯示全彩色,顯示顯示方式變化多(文字、圖形、動畫、視頻、電視畫面等)、亮度高,是集光電子技術(shù)、微電子技術(shù)、計算機(jī)技術(shù)、信息處理技術(shù)于一體的高技術(shù)產(chǎn)品,可用來顯示文字、計算機(jī)屏幕同步的圖形。其次,LED顯示屏的象素采用LED發(fā)光二極管,將多個發(fā)光二極管以序列的形式構(gòu)成LED顯示陣列,這種顯示屏具有耗電省、成本低、亮度清晰度高、壽命長等優(yōu)點(diǎn),而且LED顯示屏以其受空間限制較小,并可以根據(jù)用戶要求設(shè)計屏的大小,具有全彩色效果,視角大,是信息傳播設(shè)施劃時代的產(chǎn)品。再次,LED顯示屏應(yīng)用廣泛,金融證券、銀行利率、商業(yè)廣告、文化娛樂等方面,顯示效果清晰穩(wěn)定,越來越多的地方開始使用LED電子顯示屏,有巨大的社會效益和經(jīng)濟(jì)效益。具有耗電少、使用壽命長、成本低、亮度高、故障少視角大、可視距離遠(yuǎn)等特點(diǎn),,是目前國際上使用廣泛的顯示系統(tǒng)。系統(tǒng)各單元電路設(shè)計2.2.1最小系統(tǒng)最小系統(tǒng)包括晶體振蕩電路、復(fù)位開關(guān)和電源部分。如圖4所示:圖4AT89C51單片機(jī)最小系統(tǒng)復(fù)位電路:單片機(jī)在啟動運(yùn)行時需要復(fù)位,使CPU以及其他功能部件處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,另外,在單片機(jī)工作過程中,如果出現(xiàn)死機(jī)時,也必須對單片機(jī)進(jìn)行復(fù)位,使其重新開始工作。其電路圖如圖5。.圖5電路的設(shè)計電源電路:電源電路采用普通集成穩(wěn)壓電路,在本次設(shè)計中,由于考慮到成本問題,這部分電路就以輸出+5V的穩(wěn)壓電源代替。晶體振蕩電路:AT89C51單片機(jī)芯片內(nèi)部設(shè)有一個由反向放大器構(gòu)成的振蕩器,XTAL1和XTAL2分別為振蕩電路的的輸入端和輸出端,時鐘可有內(nèi)部或外部生成,在XTAL1和XTAL2引腳上外接定時元件,內(nèi)部振蕩電路就會產(chǎn)生自激振蕩。系統(tǒng)采用的定時元件為石英晶體和電容組成的并聯(lián)諧振回路。晶振頻率fosc采用12MHZ,C1、C2的電容值取30pF,電容的大小起頻率微調(diào)的作用。驅(qū)動電路設(shè)計正向點(diǎn)亮一顆LED,至少也要10~20mA,若電流不夠大,則LED不夠大。而不管是AT89C51的I/O口,還是TTL、CMOS的輸出端,其高態(tài)輸出電流都不是很高,不過1~2mA而已。因此很難直接高態(tài)驅(qū)動LED,這時候就需要額外的驅(qū)動電路,通常有共陽型與共陰型LED陣列驅(qū)動電路,本設(shè)計才用共陰型高態(tài)掃描信號驅(qū)動電路。共陰型LED陣列驅(qū)動電路采用高態(tài)掃描,也就是任何時間只有一個高態(tài)信號,其它則為低態(tài)。一行掃描完成后,再把高態(tài)信號轉(zhuǎn)化到近鄰的其他行,掃描信號接用一個反向驅(qū)動器,AT89C51本身內(nèi)置一個反向驅(qū)動器,本設(shè)計將AT89C51作為點(diǎn)矩陣顯示控制系統(tǒng)的控制核心,通過點(diǎn)矩陣實(shí)時顯示并移動字符。單片機(jī)的串口與行驅(qū)動器相連,用來發(fā)送顯示數(shù)據(jù)信息。P0口與LED陣列的行引腳相連,送出數(shù)據(jù)、地址以及系統(tǒng)控制信號。輸出低態(tài)時,最大可吸取,即500mA,若每個LED取30mA,7個LED同時點(diǎn)亮,需要210mA,完全滿足LED點(diǎn)亮的基本條件。所要顯示的信號各個經(jīng)過一個限流電阻送入晶體管的基極,而每個NPN晶體管的的集極連接VCC、射極輸出經(jīng)一個100Ω的限流電阻連接到LED陣列的列陣腳。對于高態(tài)的顯示信號,將可提供其所連接LED的驅(qū)動電流,而這個驅(qū)動電流經(jīng)過LED到輸出端,形成正向回路,即可點(diǎn)亮該LED。其中每個晶體管任何時間只需負(fù)責(zé)驅(qū)動一個LED,所以選擇30mA射極電流的晶體管。驅(qū)動電路如圖6所示圖6驅(qū)動電路圖上拉電阻從電源高電平引出的電阻接到輸出端,如果電平用OC(集電極開路,TTL)或OD(漏極開路,CMOS)輸出,那么不用上拉電阻是不能工作的,管子沒有電源就不能輸出高電平了。圖7上拉電阻顯示電路本次設(shè)計中采用8*8點(diǎn)陣LED顯示器,簡稱LED點(diǎn)陣板或LED矩陣板。它是以發(fā)光二極管為像素,按照行與列的順序排列起來,用集成工藝制成的顯示器件。有單色和雙色之分,這種顯示器有共陽極接法和共陰極接法兩種,設(shè)計中用到的是共陽極的顯示器。共陽極接法的原理圖如圖6所示,圖中畫出了8*8點(diǎn)陣的二極管。每一行發(fā)光二極管的陽極接在一起,有一個引出端r,每一列發(fā)光二極管的陰極接在一起,有一個引出端c。當(dāng)給發(fā)光二極管陽極引出端r1加高電平,陰極引出端c1加低電平時,左上角的二極管被點(diǎn)亮因此,對于行和列的電平進(jìn)行掃描控制時,可以達(dá)到顯示不同字符的目的。圖8顯示器組成原理圖圖8為8×8點(diǎn)陣LED外觀及引腳圖,,只要其對應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點(diǎn)亮,則電子模塊中的0口為1,A口為0即可。應(yīng)用時限流電阻可以放在橫軸或列軸。圖98×8點(diǎn)陣LED外觀及引腳(1)把“單片機(jī)系統(tǒng)”區(qū)域中的P0端口用8芯排芯連接到“點(diǎn)陣模塊”區(qū)域中的“A~H”端口上;(2)把“單片機(jī)系統(tǒng)”區(qū)域中的P1端口用8芯排芯連接到“點(diǎn)陣模塊”區(qū)域中的“0~7”為了方便于單片機(jī)連接,我們在焊接的過程中特意將0~7接口排列出來作為列,將A~H接口作為行,這樣我們就可以直接將AT89C51單片機(jī)的P0口與0~7接口一次連接,將AT89C51單片機(jī)的P1口與A~H接口一次連接。要使LED發(fā)亮即使給予數(shù)字端高電平,字母端給予低電平,就能使二極管發(fā)亮。(3)8*8點(diǎn)陣LED顯示器與單片機(jī)的接口8*8點(diǎn)陣LED的引腳圖如圖2-8所示,當(dāng)采用單片機(jī)進(jìn)行控制時,連接點(diǎn)陣顯示器的共陽r端與單片機(jī)的P2口相連,而共陰極c端需經(jīng)限流電阻與單片機(jī)的P0口相連。在編程控制時,將8*8點(diǎn)陣LED顯示分成行和列兩部分,字符數(shù)據(jù)從P0口輸出,掃描控制字從P2口輸出每一列由一個字節(jié)的數(shù)據(jù)組成,數(shù)據(jù)可一次送入,然后掃描一行,顯示一個字需要掃描8次。時鐘電路單片機(jī)的時鐘電路AT89C51單片機(jī)內(nèi)部的振蕩電路是一個高增益反向放大器,引線X1和X2分別是放大器的輸入端和輸出端。單片機(jī)內(nèi)部雖然有振蕩電路,但要形成時鐘,外部還需附加電路。AT89C51的時鐘產(chǎn)生方式有兩種:內(nèi)部時鐘電方式和外部鐘方式。由于外部時鐘方式用于多片單片機(jī)組成的系統(tǒng)中,所以此處選用內(nèi)部時鐘方式。內(nèi)部時鐘方式:利用其內(nèi)部的振蕩電路在X1和X2引線上外接定時元件,內(nèi)部振蕩電路產(chǎn)生自激振蕩。最常用的是在X1和X2之間接晶體振蕩器與電路構(gòu)成穩(wěn)定的自激振蕩器,如圖4所示電路所示為單片機(jī)最常用的時鐘振蕩電路的接法,其中晶振可選用振蕩頻率為12MHz的石英晶體,電容器一般選擇30PF左右。2.3字符的點(diǎn)陣顯示原理及字庫代碼獲取方法我們以UCDOS中文宋體字庫為例,每一個字由8行8列的點(diǎn)陣組成顯示。我們可以把每一個點(diǎn)理解為一個象素,而把每一個字的字形理解為一幅圖像。事實(shí)上這個漢字屏不僅可以顯示漢字,也可以顯示在64象素范圍內(nèi)的任何圖形。如查用8位的AT89C51單片機(jī)控制,如圖所示圖108×8點(diǎn)陣等效電路為了弄清楚漢字的點(diǎn)陣組成規(guī)律,首先通過列掃描方法獲取漢字的代碼。首先將8行分成4位的上、下兩部分,把發(fā)光的象素位編為0不發(fā)光的象素位為1的十六進(jìn)制代碼。這樣就把要顯示的“2”字編為如下代碼:0x00,0x1e,0x30,0x30,0x1c,0x06,0x06,0x3e,其仿真圖11如下:圖11仿真圖由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出他的掃描代碼從而顯示在屏幕上。上述方法雖然能夠讓我們弄清楚字符點(diǎn)陣代碼的獲取過程。字符點(diǎn)陣顯示一般有點(diǎn)掃描、行掃描和列掃描3種。為了符合視覺暫留要求,點(diǎn)掃描方法的掃描頻率必須大于16×64—1024Hz,周期小于1ms即可。行掃描和列掃描方法的掃描頻率必須大于16×8—128Hz,周期小于7.8ms即可。3程序設(shè)計程序流程圖圖12主程序流程圖3.2程序設(shè)計KeiluVision3介紹C語言是一種通用的計算機(jī)程序設(shè)計語言,在國際上十分流行,它既可用來編寫計算機(jī)的系統(tǒng)程序,也可用來編寫一般的應(yīng)用程序[5]。C語言既具有一般高級語言的特點(diǎn),又能直接對計算機(jī)的硬件進(jìn)行操作,表達(dá)和運(yùn)算能力也較強(qiáng),許多以前只能采用匯編語言來解決的問題現(xiàn)在都可以改用C語言來解決。KeilC5l是一種專為8051單片機(jī)設(shè)計的高效率C語言編譯器,符合ANSI標(biāo)準(zhǔn),生成的程序代碼運(yùn)行速度極高,所需要的存儲器空間極小,完全可以和匯編語言相媲美。Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件,Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision3)將這些部份組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。PROTEUS軟件介紹PROTEUS嵌入式系統(tǒng)仿真與開發(fā)平臺由美國LabcenterElectronic公司開發(fā)(授權(quán)風(fēng)標(biāo)科技公司為中國大陸的總代理)的,是目前世界上最先進(jìn)最完整的嵌入式系統(tǒng)設(shè)計與仿真平臺。PROTEUS可以實(shí)現(xiàn)數(shù)字電路、模擬電路及微控制器系統(tǒng)與外設(shè)的混合電路系統(tǒng)的電路仿真、軟件仿真、系統(tǒng)協(xié)同仿真和PCB設(shè)計等全部功能。PROTEUS軟件包在全球擁有龐大的企業(yè)用戶群,是目前唯一能夠?qū)Ω鞣N處理器進(jìn)行實(shí)時仿真、調(diào)試與測試的EDA工具,真正實(shí)現(xiàn)了在沒有目標(biāo)原形時就可對系統(tǒng)進(jìn)行調(diào)試、測試與驗(yàn)證。PROTEUS軟件包大大提高了企業(yè)的開發(fā)效率,降低了開發(fā)風(fēng)險。用EDA設(shè)計技術(shù)進(jìn)行電路的設(shè)計與實(shí)現(xiàn)。EDA技術(shù)的設(shè)計思路是:從元器件的選取到連線,直到電路的調(diào)試、分析和軟件的編譯,都是在計算機(jī)中完成,所有的工作先在虛擬環(huán)境下進(jìn)行。采用EDA技術(shù),在原理圖設(shè)計階段就可以對設(shè)計進(jìn)行評估,驗(yàn)證所設(shè)計電路是否達(dá)到設(shè)計要求的技術(shù)指標(biāo),還可以通過改變元器件參數(shù)使整個電路性能達(dá)到最優(yōu)化。這樣就無須多次購買元器件及制板,節(jié)省了時間與經(jīng)費(fèi),提高了設(shè)計效率與質(zhì)量。PROTEUS是一款新的EDA軟件。該軟件可以對模擬電路、數(shù)字電路、模數(shù)混合電路、單片機(jī)及外圍元器件進(jìn)行系統(tǒng)仿真,并提供了簡便易用的印刷電路板設(shè)計工具。PROTEUS軟件提供了三十多個元器件庫、數(shù)千種元器件。元器件涉及電阻、電容、二極管、三極管、MOS管、變壓器、繼電器、各種放大器、各種激勵源、各種微控制器、各種門電路和各種終端等。在PROTEUS軟件包中提供的儀表有交直流電壓表、交直流電流表、邏輯分析儀、定時/計時器和信號發(fā)生器等。而且PROTEUS還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形方式實(shí)時顯示出來,其作用與示波器相似。PROTEUS提供了豐富的測試信號用于電路測試,這些測試信號包括模擬信號和數(shù)字信號打開keil軟件,編寫程序如下:#include"REG51.H"voiddelay1ms(); //延時約1ms函數(shù)聲明voidmain(){unsignedcharcodeled[]={0x18,0x24,0x24,0x24,0x24,0x24,0x24,0x18, //00x00,0x18,0x1c,0x18,0x18,0x18,0x18,0x18, //10x00,0x1e,0x30,0x30,0x1c,0x06,0x06,0x3e, //20x00,0x1e,0x30,0x30,0x1c,0x30,0x30,0x1e, //30x00,0x30,0x38,0x34,0x32,0x3e,0x30,0x30, //40x00,0x1e,0x02,0x1e,0x30,0x30,0x30,0x1e, //50x00,0x1c,0x06,0x1e,0x36,0x36,0x36,0x1c, //60x00,0x3f,0x30,0x18,0x18,0x0c,0x0c,0x0c, //70x00,0x1c,0x36,0x36,0x1c,0x36,0x36,0x1c, //80x00,0x1c,0x36,0x36,0x36,0x3c,0x30,0x1c}; //9unsignedcharw;unsignedinti,j,k,m;while(1){for(k=0;k<10;k++) //字符個數(shù)控制變量{for(m=0;m<400;m++) //每個字符掃描顯示400次,控制每個字符顯示時間{ w=0x01; //行變量w指向第一行j=k*8; //指向數(shù)組led的第k個字符第一個顯示碼下標(biāo)for(i=0;i<8;i++){P1=w; //行數(shù)據(jù)送P1口P0=led[j]; //列數(shù)據(jù)送P0口delay1ms();w<<=1; //行變量左移指向下一行j++; //指向數(shù)組中下一個顯示碼}}}}}//函數(shù)名:delay1ms//函數(shù)功能:采用軟件實(shí)現(xiàn)延時約1ms//形式參數(shù):無//返回值:無voiddelay1ms(){unsignedchari;for(i=0;i<0xf0;i++);}4調(diào)試及性能分析系統(tǒng)調(diào)試軟件調(diào)試首先根據(jù)各單元電路模塊,利用Proteus軟件將總的硬件原理圖繪制好,設(shè)計好各模塊要使用的I/O口,如:8×8點(diǎn)陣LED顯示屏?xí)r候插反,先檢測下,無硬件錯誤后,再進(jìn)行程序編程。利用C語言的編程方式,將系統(tǒng)要求的基本功能,以及創(chuàng)新功能根據(jù)程序流程圖編寫出來,用Keil軟件調(diào)試無誤后,生成Hex文件。雙擊Proteus中的AT89C51芯片,將Keil生成的Hex加載到芯片內(nèi),進(jìn)行仿真,經(jīng)調(diào)試后所編寫的程序能夠完美實(shí)現(xiàn)系統(tǒng)所需的各種功能。硬件調(diào)試硬件調(diào)試主要是檢測硬件電路是否有短路、斷路、虛焊等。具體步驟及測試結(jié)果如下:(1)檢查電源與地線是否全部連接上,用萬用表對照電路原理圖測試各導(dǎo)線是否完全連接,對未連接的進(jìn)行修復(fù)。(2)參照原理圖,檢查各個器件之間的連接是否連接正確,是否存在虛焊,經(jīng)測試,各連接不存在問題。(3)以上兩項檢查并修復(fù)完后,給該硬件電路上電,電源指示燈點(diǎn)亮。(4)將燒錄好程序的最小單片機(jī)系統(tǒng)接入各模塊后,各模塊能過正常工作,如:數(shù)碼管正常發(fā)光。性能分析將燒錄好程序的最小單片機(jī)系統(tǒng)與各模塊連好后,8×8點(diǎn)陣LED顯示屏顯示初始值。經(jīng)軟件調(diào)試和硬件調(diào)試,所

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論