




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于單片機(jī)的液晶漢字顯示屏的設(shè)計(jì)摘摘 要要:本課題為基于 51 單片機(jī)的 LCD 漢字顯示技術(shù)?;谠趯纹瑱C(jī)研究的基礎(chǔ)上,本文提出了一種以 AT89C51 為核心的單片機(jī)構(gòu)成液晶顯示器的方法。該鐘的顯示電路采用 160128 點(diǎn)陣的圖形點(diǎn)陣的液晶屏。關(guān)鍵字關(guān)鍵字: 單片機(jī), LCD1引言引言 .- 1 -1.1課題背景 .- 2 -1.28051 單片機(jī)輸入輸出口 .- 2 -1.38051 單片機(jī)的指令時(shí)序 .- 4 -2單片機(jī)的編程軟件及仿真軟件介紹單片機(jī)的編程軟件及仿真軟件介紹 .- 6 -2.1.1Proteus的簡介.- 6 -2.1.2Keil軟件及其調(diào)試功能簡介.- 7 -2.
2、1.3軟件連接使用.- 9 -3控制系統(tǒng)硬件設(shè)計(jì)控制系統(tǒng)硬件設(shè)計(jì) .- 11 -3.1硬件電路圖 .- 11 -3.2顯示部分 .- 11 -4軟件設(shè)計(jì)軟件設(shè)計(jì) .- 12 -4.1程序仿真 .- 12 -5結(jié)結(jié) 論論 .- 13 -6 6謝謝 辭辭 .- 13 -7參考文獻(xiàn)參考文獻(xiàn) .- 14 -附錄:程序.- 15 -1引言引言1.1 課題背景課題背景目前單片機(jī)已滲透到生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的足跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)
3、、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說全自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的工程師和科學(xué)家。科技越發(fā)達(dá),智能化的東西就越多。看來學(xué)習(xí)單片機(jī)是社會(huì)發(fā)展的必然需求。 單片機(jī)即單片微型計(jì)算機(jī),又稱為微控制器,它的體積小,功能強(qiáng),可靠性好,價(jià)格又便宜,成為傳統(tǒng)工業(yè)技術(shù)改造和新產(chǎn)品更新?lián)Q代的理想品種,具有廣闊的發(fā)展前景,其中最具有代表性的就是Intel公司的8051系列單片機(jī)。 本文在對單片機(jī)研究的基礎(chǔ)上,以 AT89C51為核心控制芯片,對漢字顯示屏進(jìn)行設(shè)計(jì)與應(yīng)用,通過對其原理深入分析,探討
4、以AT89C51單片機(jī)構(gòu)成LCD液晶顯示屏的實(shí)現(xiàn)方法。1.2 8051 單片機(jī)輸入輸出口單片機(jī)輸入輸出口8051有4組8位1/0口:P0, P1,P2和P3口,P1、P2和P3為準(zhǔn)雙向口, PO口則為雙向三態(tài)輸入輸出口,下面分別介紹這幾個(gè)口線:PO口和P2口:PO口和P2口電路中包含一個(gè)數(shù)據(jù)輸出鎖存器和兩個(gè)三態(tài)數(shù)據(jù)輸入緩沖器,另外還有一個(gè)數(shù)據(jù)輸出的驅(qū)動(dòng)和控制電路。這兩組口線用來作為CPU與外部數(shù)據(jù)存儲(chǔ)器、外部程序存儲(chǔ)器和 I/0擴(kuò)展口,而不能像 Pl、P3直接用作輸出口。它們一起可以作為外部地址總線,PO口身兼兩職,既可作為地址總線,也可作為數(shù)據(jù)總線57。P2口作為外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器的
5、地址總線的高8位輸出口AB8-AB15。 PO口由ALE選通作為地址總線的低 8位輸出ABO-AB7。外部的程序存儲(chǔ)器由 PSEA信號(hào)選通,數(shù)據(jù)存儲(chǔ)器則由 WR和RD讀寫信號(hào)選通, 8051最大可外接 64kB的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。P1口:P1口為8位準(zhǔn)雙向口,每一位均可單獨(dú)定義為輸入或輸出口,當(dāng)作為輸入口時(shí), 1寫入鎖存器, Q(非)=0,內(nèi)上拉電阻將電位拉至 “1”,此時(shí)該口輸出為 1,當(dāng)0寫入鎖存器, Q(非)=1,輸出則為 0。作為輸入口時(shí),鎖存器置 l, Q(非)=0,此時(shí)該位既可以把外部電路拉成低電平,也可由內(nèi)部上拉電阻拉成高電平,正因?yàn)檫@個(gè)原因,P1口常稱為準(zhǔn)雙向口。需要說明
6、的是,作為輸入口使用時(shí),有兩種情況,其一是:首先是讀鎖存器的內(nèi)容,進(jìn)行處理后再寫到鎖存器中,這種操作即讀一修改一寫操作,像 JBC(邏輯判斷 )、CPL(取反)、INC(遞增)、DEC(遞減)、ANL(與邏輯)和ORL(邏輯或)指令均屬于這類操作。其二是 :讀P1口線狀態(tài)時(shí),打開三態(tài)門 G2,將外部狀態(tài)讀入 CPU。P3口:P3口為準(zhǔn)雙向口,為適應(yīng)引腳的第二功能的需要,增加了第二功能控制邏輯,在真正的應(yīng)用電路中,第二功能顯得更為重要。由于第二功能信號(hào)有輸入輸出兩種情況,分別加以說明。P3口的輸入輸出及 P3口鎖存器、中斷、定時(shí) /計(jì)數(shù)器、串行口和特殊功能寄存器有關(guān), P3口的第一功能和P1口一
7、樣可作為輸入輸出端口,同樣具有字節(jié)操作和位操作兩種方式,在位操作模式下,每一位均可定義為輸入或輸出。著重討論P(yáng)3口的第二功能,P3口的第二功能各管腳定義如下 : P3.0 串行輸入口 (RXD) P3.1 串行輸出口 (TXD) P3.2 外中斷0 (INTO) P3.3 外中斷1(INT1) P3.4 定時(shí)/計(jì)數(shù)器0的外部輸入口 (TO) P3.5 定時(shí)/計(jì)數(shù)器1的外部輸入口 (T1) P3.6 外部數(shù)據(jù)存儲(chǔ)器寫選通 (WR) P3.7 外部數(shù)據(jù)存儲(chǔ)器讀選通 (RD)第二功能為輸出引腳,當(dāng)作 I/0口使用時(shí),第二功能信號(hào)線應(yīng)保持高電平與非門開通,以維持從鎖存器到輸出口數(shù)據(jù)輸出通路暢通。當(dāng)作第
8、二功能口線用時(shí),該位的鎖存器置高電平,使與非門對第二功能信號(hào)的輸出是暢通,從而實(shí)現(xiàn)第二功能信號(hào)的輸出。對于第二功能為輸入的信號(hào)引腳,在口線上的輸入通路增設(shè)了一個(gè)緩沖器,輸入的第二功能信號(hào)即從這個(gè)緩沖器的輸出端取得。而作為 I/0口線輸入端時(shí),取自三態(tài)緩沖器的輸出端。這樣,不管是作為輸入口使用還是第二功能信號(hào)輸入,輸出電路中的鎖存器輸出和第二功能輸出信號(hào)線均應(yīng)置 “1”。1.3 8051 單片機(jī)的指令時(shí)序單片機(jī)的指令時(shí)序時(shí)序是用定時(shí)單位來描述的, 8051的時(shí)序單位有四個(gè),它們分別是節(jié)拍、狀態(tài)、機(jī)器周期和指令周期,接下來分別加以說明。節(jié)拍與狀態(tài) :把振蕩脈沖的周期定義為節(jié)拍 (為方便描述,用 P
9、表示),振蕩脈沖經(jīng)過二分頻后即得到整個(gè)單片機(jī)工作系統(tǒng)的時(shí)鐘信號(hào),把時(shí)鐘信號(hào)的周期定義為狀態(tài) (用S表示),這樣一個(gè)狀態(tài)就有兩個(gè)節(jié)拍,前半周期相應(yīng)的節(jié)拍定義為 1(P) ,后半周期對應(yīng)的節(jié)拍定義為 2(P)。機(jī)器周期 :8051有固定的機(jī)器周期,規(guī)定一個(gè)機(jī)器周期有 6個(gè)狀態(tài),分別表示 S1-S6。而一個(gè)狀態(tài)包含兩個(gè)節(jié)拍,那么一個(gè)機(jī)器周期就有12個(gè)節(jié)拍,可以記著SIP2,SIP2. S6P1, S6P2,一個(gè)機(jī)器周期共包含 12個(gè)振蕩脈沖,即機(jī)器周期就是振蕩脈沖的 12分頻,顯然,如果使用 6MHZ的時(shí)鐘頻率,一個(gè)機(jī)器周期就是 2us,而如使用 12MHz的時(shí)鐘頻率,一個(gè)機(jī)器周期就是 lus。指令
10、周期 :執(zhí)行一條指令所需要的時(shí)間稱為指令周期,8051的指令有單字節(jié)、雙字節(jié)和三字節(jié)的,所以它們的指令周期不盡相同,也就是說它們所需的機(jī)器周期不相同,可能包括一到四個(gè)不等的機(jī)器周期。8051的指令時(shí)序 :8051指令系統(tǒng)中,按它們的長度可分為單字節(jié)指令、雙字節(jié)指令和三字節(jié)指令。執(zhí)行這些指令需要的時(shí)間是不同的,也就是它們所需的機(jī)器周期是不同的,有下面幾種形式:單字節(jié)指令單機(jī)器周期 ;單字節(jié)指令雙機(jī)器周期 ;雙字節(jié)指令單機(jī)器周期 ;雙字節(jié)指令雙機(jī)器周期 ;三字節(jié)指令雙機(jī)器周期 ;單字節(jié)指令四機(jī)器周期 (如單字節(jié)的乘除法指令 )。單字節(jié)單周期指令 :單字節(jié)單周期指令只進(jìn)行一次讀指令操作,當(dāng)?shù)诙€(gè)AL
11、E信號(hào)有效時(shí), PC并不加1,讀出的還是原指令,屬于一次無效的讀操作。雙字節(jié)單周期指令 :這類指令兩次的 ALE信號(hào)都是有效的,只是第一個(gè)ALE信號(hào)有效時(shí)讀的是操作碼,第二個(gè) ALE信號(hào)有效時(shí)讀的是操作數(shù)。單字節(jié)雙周期指令 :兩個(gè)機(jī)器周期需進(jìn)行四次讀指令操作,但只有一次讀操作是有效的,后三次的讀操作均為無效操作。單字節(jié)雙周期指令有一種特殊的情況,像 MOVX這類指令,執(zhí)行這類指令時(shí),先在 ROM中讀取指令,然后對外部數(shù)據(jù)存儲(chǔ)器進(jìn)行讀或?qū)懖僮?,頭一個(gè)機(jī)器周期的第一次讀指令的操作碼為有效,而第二次讀指令操作則為無效的。在第二個(gè)指令周期時(shí),則訪問外部數(shù)據(jù)存儲(chǔ)器,這時(shí),ALE信號(hào)對其操作無影響,即不會(huì)
12、再有讀指令操作動(dòng)作。外部程序存儲(chǔ)器 (ROM)讀時(shí)序: 8051外部程序存儲(chǔ)器讀時(shí)序圖時(shí) PO口提供低8位地址, P2口提供高 8位地址, S2結(jié)束前, PO口上的低 8位地址是有效的,之后出現(xiàn)在 PO口上的就不再是低 8位的地址信號(hào),而是指令數(shù)據(jù)信號(hào)。當(dāng)然地址信號(hào)與指令數(shù)據(jù)信號(hào)之間有一段緩沖的過度時(shí)間,這就要求在S2期間必須把低 8位的地址信號(hào)鎖存起來,這時(shí)是用 ALE選通脈沖去控制鎖存器把低 8位地址予以鎖存, P2口只輸出地址信號(hào),而沒有指令數(shù)據(jù)信號(hào)。整個(gè)機(jī)器周期地址信號(hào)都是有效的,因而無需鎖存地址信號(hào)。從外部程序存儲(chǔ)器讀取指令,必須有兩個(gè)信號(hào)進(jìn)行控制,除了上述的ALE信號(hào),還有一個(gè) P
13、SEN(外部ROM讀選通脈沖 )。PSEN開始有效,直到將地址信號(hào)送出和外部程序存儲(chǔ)器的數(shù)據(jù)讀入 CPU后方才失效,接著從 S4P2開始執(zhí)行第二個(gè)讀指令操作。外部數(shù)據(jù)存儲(chǔ)器 (RAM)讀時(shí)序: 從ROM中讀取需執(zhí)行的指令,而 CPU對外部數(shù)據(jù)存儲(chǔ)的訪問是對 RAM進(jìn)行數(shù)據(jù)的讀或?qū)懖僮?,屬于指令的?zhí)行周期,讀或?qū)懯莾蓚€(gè)不同的機(jī)器周期,但他們的時(shí)序卻是相似的,只對RAM的讀時(shí)序進(jìn)行分析。上一個(gè)機(jī)器周期是取指階段,是從 ROM中讀取指令數(shù)據(jù),接著的下個(gè)周期才開始讀取外部數(shù)據(jù)存儲(chǔ)器 RAM中的內(nèi)容。在 S4結(jié)束后,先把需讀取RAM中的地址放到總線上,包括 PO口上的低 8位地址AO-A7和P2口上的高
14、 8位地址A8-A15。當(dāng)RD選通脈沖有效時(shí),將 RAM的數(shù)據(jù)通過 PO數(shù)據(jù)總線讀進(jìn)CPU。第二個(gè)機(jī)器周期的 ALE信號(hào)仍然出現(xiàn),進(jìn)行一次外部 ROM的讀操作,但是這一次的讀操作屬于無效操作。對外部RAM進(jìn)行寫操作時(shí), CPU輸出的則是 WR(寫選通信號(hào) ),將數(shù)據(jù)通過P0數(shù)據(jù)總線寫入外部存儲(chǔ)中。2單片機(jī)的編程軟件及仿真軟件介紹單片機(jī)的編程軟件及仿真軟件介紹2.1.1 Proteus 的簡介的簡介Proteus ISIS 是英國 Labcenter 公司開發(fā)的電路分析與實(shí)物仿真軟件9。它運(yùn)行于 Windows 操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:實(shí)現(xiàn)
15、了單片機(jī)仿真和 SPICE 電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C 調(diào)試器、SPI 調(diào)試器、鍵盤和 LCD 系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000 系列、8051 系列、AVR 系列、PIC12 系列、PIC16 系列、PIC18 系列、Z80 系列、HC11 系列以及各種外圍芯片。提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能
16、;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如 Keil C51 uVision2等軟件。具有強(qiáng)大的原理圖繪制功能??傊?,該軟件是一款集單片機(jī)和SPICE 分析于一身的仿真軟件,功能極其強(qiáng)大。Proteus主要用于繪制原理圖并可進(jìn)行電路仿真,Proteus ARES 主要用于PCB 設(shè)計(jì)。ISIS 的主界面主要包括:1 是電路圖概覽區(qū)、2 是元器件列表區(qū)、3 是繪圖區(qū)。繪制電路圖的過程如下:單擊2 區(qū)的P 命令即彈出元器件選擇(Pick Devices)對話框,Proteus 提供了豐富的元器件資源,包括30 余種元器件庫,有些元器件庫還具有子庫。利用該對話框提供的關(guān)鍵詞(Keywords)搜索功能
17、,輸入所要添加的元器件名稱,即可在結(jié)果(Results)中查找,找到后雙擊鼠標(biāo)左鍵即可將該元器件添到2 區(qū),待所有需要的元器件添加完成后點(diǎn)擊對話框右下角的OK 按鈕,返回主界面。接著在2 區(qū)中選中某一個(gè)元器件名稱,直接在3 區(qū)中單擊鼠標(biāo)左鍵即可將該元器件添加到3 區(qū)。由于是英國的軟件,特別要注意的是繪圖區(qū)中鼠標(biāo)的操作和一般軟件的操作習(xí)慣不同,這正像是司機(jī)座位和人行道走向和國內(nèi)不同一樣。單擊左鍵是完成在2 區(qū)中被選中的元器件的粘貼功能;將鼠標(biāo)置于某元器件上并單擊右鍵則是選中該元器件(呈現(xiàn)紅色),若再次單擊右鍵的話則刪除該元器件,而單擊左鍵的話則會(huì)彈出該元器件的編輯對話框(Edit Compone
18、nt);若不需再選中任何元器件,則將鼠標(biāo)置于3 區(qū)的空白處單擊右鍵即可;另外如果想移動(dòng)某元器件,則選中該元器件后再按住鼠標(biāo)左鍵即可將之移動(dòng)。元器件之間的連線方法為:將鼠標(biāo)移至元器件的某引腳,即會(huì)出現(xiàn)一個(gè)“”符號(hào),按住鼠標(biāo)左鍵后移動(dòng)鼠標(biāo),將線引至另一引腳處將再次出現(xiàn)符號(hào)“”,此時(shí)單擊鼠標(biāo)左鍵便可完成連線。連線時(shí)在需拐彎的地方單擊鼠標(biāo)左鍵即可實(shí)現(xiàn)方向的改變。繪制好電路后,可利用1 區(qū)的綠色邊框?qū)? 區(qū)的電路進(jìn)行定位。2.1.2 Keil 軟件及其調(diào)試功能簡介軟件及其調(diào)試功能簡介目前流行的 51 系列單片機(jī)開發(fā)軟件是德國 Keil 公司推出的 Keil C51 軟件,它是一個(gè)基于 32 位 Wind
19、ows 環(huán)境的應(yīng)用程序,支持 C 語言和匯編語言編程,其 6.0 以上的版本將編譯和仿真軟件統(tǒng)一為 Vision(通常稱為 V2) 。Keil 提供包括 C 編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,由以下幾部分組成:Vision IDE 集成開發(fā)環(huán)境(包括工程管理器、源程序編輯器、程序調(diào)試器) 、C51 編譯器、A51 匯編器、LIB51 庫管理器、BL51 連接/定位器、OH51 目標(biāo)文件生成器以及 Monitor-51、RTX51 實(shí)時(shí)操作系統(tǒng)。應(yīng)用 Keil 進(jìn)行軟件仿真開發(fā)的主要步驟為:編寫源程序并保存建立工程并添加源文件設(shè)置工程編譯/匯編、連接,
20、產(chǎn)生目標(biāo)文件程序調(diào)試。Keil 使用“工程” (Project)的概念,對工程(而不能對單一的源程序)進(jìn)行編譯/匯編、連接等操作。工程的建立、設(shè)置、編譯/匯編及連接產(chǎn)生目標(biāo)文件的方法非常易于掌握。首先選擇菜單 FileNew,在源程序編輯器中輸入?yún)R編語言或 C 語言源程序(或選擇 FileOpen,直接打開已用其他編輯器編輯好的源程序文檔)并保存,注意保存時(shí)必須在文件名后加上擴(kuò)展名.asm(.a51)或.c;然后選擇菜單 ProjectNew Project,建立新工程并保存(保存時(shí)無需加擴(kuò)展名,也可加上擴(kuò)展名.uv2) ;工程保存后會(huì)立即彈出一個(gè)設(shè)備選擇對話框,選擇 CPU 后點(diǎn)確定返回主界
21、面。這時(shí)工程管理窗口的文件頁(Files)會(huì)出現(xiàn)“Target1” ,將其前面+號(hào)展開,接著選擇 Source Group1,右擊鼠標(biāo)彈出快捷菜單,選擇“Add File to Group Source Group1” ,出現(xiàn)一個(gè)對話框,要求尋找并加入源文件(在加入一個(gè)源文件后,該對話框不會(huì)消失,而是等待繼續(xù)加入其他文件) 。加入文件后點(diǎn) close 返回主界面,展開“Source Group1”前面+號(hào),就會(huì)看到所加入的文件,雙擊文件名,即可打開該源程序文件。緊接著對工程進(jìn)行設(shè)置,選擇工程管理窗口的 Target1,再選擇 ProjectOption for Target Target1(或
22、點(diǎn)右鍵彈出快捷菜單再選擇該選項(xiàng)) ,打開工程屬性設(shè)置對話框,共有 8 個(gè)選項(xiàng)卡,主要設(shè)置工作包括在 Target 選項(xiàng)卡中設(shè)置晶振頻率、在Debug 選項(xiàng)卡中設(shè)置實(shí)驗(yàn)仿真板等,如要寫片,還必須在 Output 選項(xiàng)卡中選中“Creat Hex Fi” ;其他選項(xiàng)卡內(nèi)容一般可取默認(rèn)值。工程設(shè)置后按 F7 鍵(或點(diǎn)擊編譯工具欄上相應(yīng)圖標(biāo))進(jìn)行編譯/匯編、連接以及產(chǎn)生目標(biāo)文件。 成功編譯/匯編、連接后,選擇菜單 DebugStart/Stop Debug Session(或按Ctrl+F5 鍵)進(jìn)入程序調(diào)試狀態(tài),Keil 提供對程序的模擬調(diào)試功能,內(nèi)建一個(gè)功能強(qiáng)大的仿真 CPU 以模擬執(zhí)行程序。Ke
23、il 能以單步執(zhí)行(按 F11 或選擇DebugStep) 、過程單步執(zhí)行(按 F10 或選擇 DebugStep Over) 、全速執(zhí)行等多種運(yùn)行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯(cuò),可采用在線匯編功能對程序進(jìn)行在線修改(DebugInline Assambly) ,不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對工程重新進(jìn)行編譯/匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。對于一些必須滿足一定條件(如按鍵被按下等)才能被執(zhí)行的、難以用單步執(zhí)行方式進(jìn)行調(diào)試的程序行,可采用斷點(diǎn)設(shè)置的方法處理(DebugInsert/Remove Breakpoint 或 DebugBreakpoints等) 。在模擬調(diào)試程序
24、后,還須通過編程器將.hex 目標(biāo)文件燒寫入單片機(jī)中才能觀察目標(biāo)樣機(jī)真實(shí)的運(yùn)行狀況。Keil 軟件 Eval 版(免費(fèi)產(chǎn)品)的功能與商業(yè)版相同,只是程序的最大代碼量不得超過 2kB,但對初學(xué)者而言已是足夠。Keil 軟件由于其強(qiáng)大的軟件仿真功能,友好的用戶界面以及易于掌握的特點(diǎn)而受到工程技術(shù)人員的歡迎,有人甚至認(rèn)為 Keil 是目前最好的 51 單片機(jī)開發(fā)應(yīng)用軟件。2.1.3 軟件連接軟件連接使用使用a、假若 KeilC 與 Proteus 均已正確安裝在 C:Program Files 的目錄里,把C:Programe FileLabcenter ElectronicsProteus 6 P
25、rofessionalMODELSVDM51.dl 復(fù)制到 C:Program FileKeilCC51BIN 目錄里。b、用記事本打開C:Program FileskeilCC51TOOLS.INI文件,在C51欄目下加入:TDRV5=BINVDM51.DLL (Proteus VSM Monitor-51 Driver)其中“TDRV5”中的“5”要根據(jù)實(shí)際情況寫,不要和原來的重復(fù)。(步驟1和2只需在初次使用設(shè)置。 )c、進(jìn)入KeilC Vision2開發(fā)集成環(huán)境,創(chuàng)建一個(gè)新項(xiàng)目(Project),并為該項(xiàng)目選定合適的單片機(jī)CPU器件(如:Atmel公司的AT89C51) 。并為該項(xiàng)目加入
26、KeilC源程序。d、單擊“Project菜單/Options for Target”選項(xiàng)或者點(diǎn)擊工具欄的“option for ta rget”按鈕,彈出窗口,點(diǎn)擊“Debug”按鈕,出現(xiàn)如圖所示頁面。在出現(xiàn)的對話框里在右欄上部的下拉菜單里選中“Proteus VSM Monitor一51 Driver” 。并且還要點(diǎn)擊一下“Use”前面表明選中的小圓點(diǎn)。再點(diǎn)擊“Setting”按鈕,設(shè)置通信接口,在“Host”后面添上“” ,如果使用的不是同一臺(tái)電腦,則需要在這里添上另一臺(tái)電腦的IP地址(另一臺(tái)電腦也應(yīng)安裝Proteus)。在“Port”后面添加“8000” 。設(shè)置好的情
27、形如圖所示,點(diǎn)擊“OK”按鈕即可。最后將工程編譯,進(jìn)入調(diào)試狀態(tài),并運(yùn)行。 e、Proteus的設(shè)置進(jìn)入Proteus的ISIS,鼠標(biāo)左鍵點(diǎn)擊菜單“Debug” , 選中“use romote debuger monitor” ,如圖所示。此后,便可實(shí)現(xiàn)KeilC與Proteus連接調(diào)試。f、KeilC與Proteus連接仿真調(diào)試單擊仿真運(yùn)行開始按鈕,我們能清楚地觀察到每一個(gè)引腳的電頻變化,紅色代表高電頻,藍(lán)色代表低電頻。3控制系統(tǒng)硬件設(shè)計(jì)控制系統(tǒng)硬件設(shè)計(jì)3.1 硬件電路圖硬件電路圖3.2 顯示部分顯示部分顯示部分采用 160X128 的圖形液晶顯示器。、4軟件設(shè)計(jì)軟件設(shè)計(jì)4.1 程序仿真程序仿
28、真 從 proteus 里可以看到程序的運(yùn)行效果很令人滿意5結(jié)結(jié) 論論本文主要對數(shù)字電子鐘進(jìn)行了研究,在學(xué)習(xí)單片機(jī)理論知識(shí)的基礎(chǔ)上,以AT89C51芯片為控制核心,設(shè)計(jì)了檢測系統(tǒng)的硬件電路和軟件。本文主要完成下面工作:1. 8051芯片性能參數(shù)的分析。2相關(guān)軟件的學(xué)習(xí)和使用。3. 數(shù)字電子鐘的設(shè)計(jì)方案、顯示電路及相應(yīng)的軟件的設(shè)計(jì)48051構(gòu)成的液晶顯示器及相應(yīng)的軟件的設(shè)計(jì)5單片機(jī)系統(tǒng)抗干擾方法從軟件和硬件方面進(jìn)行分析。由于能力有限,不能夠充分利用所學(xué)知識(shí),對所設(shè)計(jì)的顯示器不能有進(jìn)一步的簡化,其電路及軟件還有待更好的改善。6 謝 辭衷心感謝我的指導(dǎo)老師!本課題的研究工作是在老師的悉心指導(dǎo)和關(guān)懷下
29、才得以順利完成。老師勤奮好思、嚴(yán)謹(jǐn)求實(shí),在我學(xué)習(xí)過程中,給了我很多的啟示和幫助。指導(dǎo)老師給予我的不僅僅是知識(shí)上、學(xué)習(xí)上的,更有方法上,思想上的幫助!感謝我們組的同學(xué)對我的幫助和支持,再次感謝大家!7參考文獻(xiàn)參考文獻(xiàn)參考文獻(xiàn):1 梅麗鳳,王艷秋. 單片機(jī)原理及接口技術(shù)M.北京:清華大學(xué)出版社,2004P12P162朱定華,劉玉. 單片機(jī)原理及應(yīng)用技術(shù)學(xué)習(xí)輔導(dǎo)M.北京:電子工業(yè)出版社,2001P19P023 夏繼強(qiáng).單片機(jī)實(shí)驗(yàn)與實(shí)踐教程M. 北京:北京航空航天大學(xué)出(二) 2001.P18P264 何立明. MCS-51 系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)M.北京:北京航天航空大學(xué)出版社,2001P30P35
30、5 胡漢才.單片機(jī)原理及其接口技術(shù)M.北京:清華大學(xué)出版社,1996P58P62 P80P936 楊拴科.模擬電子技術(shù)M.北京:高等教育出版社,20037 范立南,謝子殿.單片機(jī)原理及應(yīng)用教程M. 北京:清華大學(xué)出版社,2003P30P42 P103P1108 辛友順. 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)M. 北京:電子工業(yè)出版社,1996P26P309 楊志忠,郭順華. 數(shù)字電子技術(shù)基礎(chǔ)M. 北京:高等教育出版社,2003P100P10810 薛鈞義. MCS-51/96系列單片機(jī)微型計(jì)算機(jī)及其應(yīng)用M.西安:西安交通大學(xué)出版社,1998 P90P9511 唐前輝.PROTEUS 中文教程+實(shí)例. pu
31、terA 12 Yao Liang , Zhang Zhenren ,Zhang Bo. Communication realization Between PC and MCS-51 SCM Based on MODBUS Protocol 附錄:程序附錄:程序T_SET BIT P1.0;調(diào)整A_SET BIT P1.1;加 1S_SET BIT P1.2;減 1D_SET BIT P1.3;日期TIMER_SET BIT P1.4;設(shè)置定時(shí)時(shí)間MM_SET BIT P1.5;秒表SECOND EQU 32HMINUTE EQU 31HHOUR EQU 30HTCNT EQU 39H;t0
32、 中斷次數(shù)COUNT EQU 40H;判斷哪位FRIST EQU 36HMIDDLE EQU 37HLASTER EQU 38HYEAR EQU 33HMON EQU 34HDAY EQU 35HTIMER_HOUR EQU 41HTIMER_MINUTE EQU 42HTIMER_SECOND EQU 43HTIMER_COUNT EQU 44H;定時(shí)判斷哪位TIMERSYMBOL EQU 45H;定時(shí)到達(dá)標(biāo)志位MMSEC EQU 47H;秒表,0。1 秒MSEC EQU 48H;1 秒MMIN EQU 49H;1 分ORG 0000HSJMP STARTORG 0BHLJMP INT_T0
33、ORG 001BHLJMP INT_T1START:MOV DPTR, #TABLEMOV HOUR, #12MOV MINUTE, #35MOV SECOND, #55MOV YEAR, #07MOV MON, #5MOV DAY, #15MOV TIMER_HOUR,#12MOV TIMER_MINUTE,#30MOV TIMER_SECOND,#30MOV TCNT, #0MOV COUNT,#0MOV TIMER_COUNT,#0MOV TIMERSYMBOL,#1;為 0 定時(shí)時(shí)間到MOV TMOD, #11HMOV TH0, #3CHMOV TL0, #0B0HMOV IE, #8
34、AHSETB PT0;設(shè) t0 為最高優(yōu)先級SETB TR0A1:LCALL CLOCKLCALL DISPLAYJNB T_SET, S10;調(diào)整時(shí)間JNB TIMER_SET,S20;設(shè)置定時(shí)時(shí)間JNB D_SET, S4;顯日期JNB MM_SET,S3;顯示秒表MOV A,TIMERSYMBOL;定時(shí)時(shí)間到標(biāo)志JNZ A1;定時(shí)時(shí)間到AJMP ALARM AJMP A1S10:AJMP S1S20:AJMP S2MOV R2,#0FFH;定時(shí)時(shí)間到,啟動(dòng)鬧鈴ALARM:CPL P3.1DJNZ R2,A1MOV TIMERSYMBOL,#1SETB P3.1AJMP A1S3:MOV
35、MMSEC,#0;顯示秒表MOV MSEC,#0MOV MMIN,#0LCALL MSECONDLCALL DISPLAYJNB A_SET,M1AJMP S3M1:MOV TH1, #0D8HMOV TL1, #0F0H;啟動(dòng)秒表SETB TR1LCALL MSECONDLCALL DISPLAYJNB S_SET,M2AJMP M1M2:;停止秒表CLR TR1LCALL MSECONDLCALL DISPLAYJNB MM_SET,J3JNB A_SET,M1AJMP M2J3:;判斷停止秒表按鍵抬起JB MM_SET,A1LCALL MSECONDLCALL DISPLAYAJMP J
36、3S4:;顯示日期LCALL DATELCALL DISPLAYLJMP J9J9:;判斷顯示日期按鍵抬起JB D_SET,A1LCALL DATELCALL DISPLAYSJMP J9A12:AJMP A1S2:;定時(shí)判斷哪位INC TIMER_COUNTMOV A,TIMER_COUNTCJNE A,#5,SSSSMOV TIMER_COUNT,#1SSSS:MOV A,TIMER_COUNTDEC AJZ TIMER_HOUR0DEC AJZ TIMER_MINUTE0DEC A JZ TIMER_SECOND0DEC AJZ A12TIMER_HOUR0:;不變,閃爍MOV R3,T
37、IMER_HOURMOV R4,#8HT_HOUR0:MOV TIMER_HOUR,#0LCALL TIMERLCALL DISPLAYDJNZ R4,T_HOUR0MOV R4,#8HT_HOUR1:MOV TIMER_HOUR,R3JNB TIMER_SET,J01LCALL TIMERLCALL DISPLAYDJNZ R4,T_HOUR1JNB TIMER_SET,J01JNB A_SET,TIMER_HOUR1JNB S_SET,TIMER_HOUR2AJMP TIMER_HOUR0TIMER_MINUTE0:MOV R3,TIMER_MINUTEMOV R4,#8HT_MINUTE
38、0:MOV TIMER_MINUTE,#0LCALL TIMERLCALL DISPLAYDJNZ R4,T_MINUTE0MOV R4,#8HT_MINUTE1:MOV TIMER_MINUTE,R3JNB TIMER_SET,J01LCALL TIMERLCALL DISPLAYDJNZ R4,T_MINUTE1JNB TIMER_SET,J01JNB A_SET,TIMER_MINUTE1JNB S_SET,TIMER_MINUTE2AJMP TIMER_MINUTE0TIMER_SECOND0:MOV R3,TIMER_SECONDMOV R4,#8HT_SECOND0:MOV TIM
39、ER_SECOND,#0LCALL TIMERLCALL DISPLAYDJNZ R4,T_SECOND0MOV R4,#8HT_SECOND1:MOV TIMER_SECOND,R3JNB TIMER_SET,J01LCALL TIMERLCALL DISPLAYDJNZ R4,T_SECOND1JNB TIMER_SET,J01JNB A_SET,TIMER_SECOND1JNB S_SET,TIMER_SECOND2AJMP TIMER_SECOND0;定時(shí)檢測有按鍵抬起J01:JB TIMER_SET,S011LCALL TIMERLCALL DISPLAYLJMP J01S011:;
40、遠(yuǎn)跳中轉(zhuǎn)LJMP S2TIMER_HOUR2:;定時(shí)調(diào)時(shí),減 1MOV A,TIMER_HOURJZ TIMER_HOUR00DEC TIMER_HOURDEC TIMER_HOURTIMER_HOUR1:;加 1MOV A,#23CLR CSUBB A,TIMER_HOURJZ TIMER_HOUR00INC TIMER_HOURTIMER_HOUR00:AJMP TIMER_HOUR0TIMER_MINUTE2:;定時(shí)調(diào)分MOV A,TIMER_MINUTEJZ TIMER_MINUTE00DEC TIMER_MINUTEDEC TIMER_MINUTETIMER_MINUTE1:MOV
41、A,#59CLR CSUBB A,TIMER_MINUTEJZ TIMER_MINUTE00INC TIMER_MINUTETIMER_MINUTE00:AJMP TIMER_MINUTE0TIMER_SECOND2:;定時(shí)調(diào)秒MOV A,TIMER_SECONDJZ TIMER_SECOND00DEC TIMER_SECONDDEC TIMER_SECONDTIMER_SECOND1:MOV A,#59CLR CSUBB A,TIMER_SECONDJZ TIMER_SECOND00INC TIMER_SECONDTIMER_SECOND00:AJMP TIMER_SECOND0A11:AJ
42、MP A1S1:;調(diào)時(shí)判斷哪位INC COUNTMOV A,COUNTCJNE A,#5,SSSMOV COUNT,#1SSS:MOV A,COUNTDEC AJZ THOUR0DEC AJZ TMINUTE0DEC A JZ TSECOND0DEC AJZ A11THOUR0:MOV R3,HOURMOV R4,#8HHOUR0:MOV HOUR,#0LCALL CLOCKLCALL DISPLAYDJNZ R4,HOUR0MOV R4,#8HHOUR1:MOV HOUR,R3JNB T_SET,J1LCALL CLOCKLCALL DISPLAYDJNZ R4,HOUR1JNB T_SET
43、,J1JNB A_SET,THOUR1JNB S_SET,THOUR2AJMP THOUR0TMINUTE0:MOV R3,MINUTEMOV R4,#8HMINUTE0:MOV MINUTE,#0LCALL CLOCKLCALL DISPLAYDJNZ R4,MINUTE0MOV R4,#8HMINUTE1:MOV MINUTE,R3JNB T_SET,J1LCALL CLOCKLCALL DISPLAYDJNZ R4,MINUTE1JNB T_SET,J1JNB A_SET,TMINUTE1JNB S_SET,TMINUTE2AJMP TMINUTE0TSECOND0:MOV R3,SEC
44、ONDMOV R4,#8HSECOND0:MOV SECOND,#0LCALL CLOCKLCALL DISPLAYDJNZ R4,SECOND0MOV R4,#8HSECOND1:MOV SECOND,R3JNB T_SET,J1LCALL CLOCKLCALL DISPLAYDJNZ R4,SECOND1JNB T_SET,J1JNB A_SET,TSECOND1JNB S_SET,TSECOND2AJMP TSECOND0;檢測有按鍵抬起J1:JB T_SET,S11LCALL CLOCKLCALL DISPLAYLJMP J1S11:;遠(yuǎn)跳中轉(zhuǎn)LJMP S1THOUR2:;調(diào)時(shí)MOV
45、A,HOURJZ THOUR00DEC HOURDEC HOURTHOUR1:MOV A,#23CLR CSUBB A,HOURJZ THOUR00INC HOURTHOUR00:AJMP THOUR0TMINUTE2:;調(diào)分MOV A,MINUTEJZ TMINUTE00DEC MINUTEDEC MINUTETMINUTE1:MOV A,#59CLR CSUBB A,MINUTEJZ TMINUTE00INC MINUTETMINUTE00:AJMP TMINUTE0TSECOND2:;調(diào)秒MOV A,SECONDJZ TSECOND00DEC SECONDDEC SECONDTSECON
46、D1:MOV A,#59CLR CSUBB A,SECONDJZ TSECOND00INC SECONDTSECOND00:AJMP TSECOND0;定時(shí)中斷INT_T0:MOV TH0, #3CHMOV TL0, #0B0HINC TCNTMOV A,TCNTCJNE A,#20,RETUNEINC SECONDMOV TCNT,#0MOV A,HOURCJNE A,TIMER_HOUR,NEXT;判斷定時(shí)時(shí)間是否到MOV A,MINUTECJNE A,TIMER_MINUTE,NEXTMOV A,SECONDCJNE A,TIMER_SECOND,NEXTMOV TIMERSYMBOL,
47、#0NEXT:MOV A,SECONDCJNE A,#60,RETUNEINC MINUTESETB P3.0MOV SECOND,#0MOV A,MINUTECJNE A,#60,RETUNEINC HOURCLR P3.0;整點(diǎn)報(bào)時(shí)MOV MINUTE,#0MOV A,HOURCJNE A,#24,RETUNEMOV HOUR,#0INC DAY MOV R5, MONCJNE R5, #1, MON22MOV R5, DAYCJNE R5, #32, RETUNEINC MONMOV DAY, #1LJMP RETUNERETUNE:RETIMON22:MOV R5, MON CJNE
48、R5, #2, MON33MOV A, YEARMOV B, #4DIV AB MOV A, B JNZ OUT1MOV R5, DAYCJNE R5, #30,RETUNE INC MONMOV DAY, #1LJMP RETUNEOUT1: MOV R5, DAYCJNE R5,#29, RETUNEINC MON MOV DAY, #1LJMP RETUNEMON33:MOV R5, MON CJNE R5, #3, MON44MOV R5, DAYCJNE R5,#32,RETUNEINC MONMOV DAY, #1LJMP RETUNEMON44:MOV R5, MON CJNE R5, #4, MON55MOV R5, DAYCJNE R5,#31,RETUNEINC MONMOV DAY, #1LJMP RETUNEMON55:MOV R5, MON CJNE R5, #5, MON66MOV R5, DAYCJNE R5,#32,RETUNEINC MONMOV DAY, #1LJMP RETUNEMON66:MOV R5, MON CJNE R5, #6, MON77MOV R5, DAYCJNE R5,#31,RETU
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家政培訓(xùn)與管理制度
- 應(yīng)急局應(yīng)急管理制度
- 錄播室教室管理制度
- 得利斯財(cái)務(wù)管理制度
- 德力西績效管理制度
- 心里咨詢室管理制度
- 快遞規(guī)運(yùn)輸管理制度
- 思明區(qū)市政管理制度
- 總機(jī)班安全管理制度
- 患者自備藥管理制度
- 立式加工中心的基本操作專題培訓(xùn)課件
- 一例慢阻肺病人護(hù)理個(gè)案
- 建平中學(xué)自招真題解析
- 阿克蘇地區(qū)生態(tài)環(huán)境準(zhǔn)入清單
- 產(chǎn)品創(chuàng)新設(shè)計(jì)與實(shí)踐完整版課件全套ppt教學(xué)教程電子教案講義最全(最新)
- 漢字起源和發(fā)展
- 試運(yùn)行方案計(jì)劃-
- 法蘭規(guī)格尺寸表國標(biāo),美標(biāo)
- 動(dòng)物疫病流行病學(xué)調(diào)查表診斷送檢用
- 模具技術(shù)要求
- 廣東省公務(wù)員錄用審批表
評論
0/150
提交評論