單片機(jī)課程設(shè)計(jì)LCD12864液晶顯示_第1頁(yè)
單片機(jī)課程設(shè)計(jì)LCD12864液晶顯示_第2頁(yè)
單片機(jī)課程設(shè)計(jì)LCD12864液晶顯示_第3頁(yè)
單片機(jī)課程設(shè)計(jì)LCD12864液晶顯示_第4頁(yè)
單片機(jī)課程設(shè)計(jì)LCD12864液晶顯示_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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、2012 2013 學(xué)年 第 2 學(xué)期 單片機(jī)原理及應(yīng)用 課 程 設(shè) 計(jì) 報(bào) 告題 目: lcd12864液晶顯示 專 業(yè): 自 動(dòng) 化 班 級(jí): 10 自 動(dòng) 化(2)班 姓 名: 指導(dǎo)教師: 林開(kāi)司 電氣工程系2011年5月12日1、任務(wù)書(shū)課題名稱lcd12864液晶顯示指導(dǎo)教師(職稱) 執(zhí)行時(shí)間20122013 學(xué)年第 2 學(xué)期 第 10 周學(xué)生姓名學(xué)號(hào)承擔(dān)任務(wù)設(shè)計(jì)目的(1) 擬電路的應(yīng)用與集成電路的引腳排列。(2) 掌握單片機(jī)芯片80c5x系列的邏輯功能及使用方法。(3) 熟悉電路仿真軟件proteus的使用(4) 了解點(diǎn)陣型lcd12864(不帶字庫(kù))的組成及工作原理。(5) 熟悉k

2、eil軟件的編程,加強(qiáng)c語(yǔ)言的能力。設(shè)計(jì)要求lcd12864液晶顯示要求:(1)第一面顯示漢字“銅陵學(xué)院,機(jī)電工程系以及姓名和所在班級(jí)等個(gè)人信息”;(2)第二面顯示任意一幅圖片,并且第一面和第二面循環(huán)顯示。摘 要液晶顯示是單片機(jī)控制系統(tǒng)常用的輸出設(shè)備。本設(shè)計(jì)系統(tǒng)研究了12864液晶顯示程序設(shè)計(jì)方法.在給出了液晶與80c51單片機(jī)連接方法以及顯示驅(qū)動(dòng)程序的基礎(chǔ)上。采用c51語(yǔ)言設(shè)計(jì)了常用的應(yīng)用程序,包含初始化及清屏程序、顯示整個(gè)屏幕的程序、漢字與字符顯示程序、屏幕滾動(dòng)等程序,最后將設(shè)計(jì)的顯示系統(tǒng)在protues仿真軟件上進(jìn)行仿真,驗(yàn)證設(shè)計(jì)的真確性。所提出的程序設(shè)計(jì)方法對(duì)相關(guān)液晶顯示程序設(shè)計(jì)具有一

3、定指導(dǎo)作用。關(guān)鍵詞:?jiǎn)纹瑱C(jī);lcd12864;液晶顯示;c語(yǔ)言lcd12864液晶顯示目 錄摘 要- 3 -表格清單- 5 -插圖清單- 6 -緒 論- 7 -第一章 單片機(jī)及l(fā)cd12864概述- 8 -1.1單片機(jī)的定義和特點(diǎn)- 8 -1.2單片機(jī)的應(yīng)用和發(fā)展趨勢(shì)- 8 -1.3單片機(jī)芯片及顯示模塊的選擇- 9 -1.4 lcd12864簡(jiǎn)介- 9 -1.4.1最大工作范圍- 9 -1.4.2電氣特性- 9 -1.4.3接口說(shuō)明- 10 -1.4.4、指令描述- 10 -1.4.5接口時(shí)序- 12 -1.4.6 屏幕顯示與dd ram地址映射關(guān)系- 14 -1.4.7 測(cè)試硬件電路- 14

4、 -1.5顯示原理- 15 -第二章 硬件設(shè)計(jì)- 16 -2.1設(shè)計(jì)思路- 16 -2.2設(shè)計(jì)過(guò)程- 16 -2.2.1方案論證- 16 -2.2.2電路設(shè)計(jì)- 17 -第三章 軟件系統(tǒng)設(shè)計(jì)- 19 -3.1、寫(xiě)指令函數(shù)及初始化函數(shù)- 19 -3.2、漢字顯示函數(shù)- 20 -3.3編寫(xiě)程序詳見(jiàn)附錄。- 21 -第四章 軟件調(diào)試與仿真- 22 -第五章 心得體會(huì)- 23 -參考文獻(xiàn):- 24 -附錄:- 25 -表格清單表1-1 12864-3a接口說(shuō)明表11表1-2 dd ram地址映像表12表1-3 時(shí)序參數(shù)表14表1-4屏幕顯示與dd ram地址映射關(guān)系15插圖清單圖1-1 寫(xiě)操作時(shí)許13

5、圖1-2 讀操作時(shí)序14圖1-3 測(cè)試硬件電路16圖1-4 “a”字模圖17圖1-5 “你”字模圖 17圖2-1單片機(jī)與lcd液晶的工作原理18圖2-2 單片機(jī)系統(tǒng)電路19圖2-312864液晶外圍電路 20圖2-4電路總圖20圖3-1寫(xiě)指令操作21圖3-2 初始化流程圖22圖3-3 漢字顯示流程圖23圖4-1多漢字仿真結(jié)果24圖4-2圖畫(huà)仿真結(jié)果25緒 論在電子行業(yè)中,越來(lái)越多的產(chǎn)品開(kāi)始重視人機(jī)信息交換的輸入輸出設(shè)備。其中高像素液晶屏也得到越來(lái)越廣泛的采用。手機(jī)、gps、pda等電子設(shè)備均已使用320*240或更高像素的18位色屏幕。而目前大學(xué)生設(shè)計(jì)電子產(chǎn)品或畢業(yè)論文中常采用的顯示電路卻是l

6、ed數(shù)碼管,顯然已跟不上時(shí)代的發(fā)展,文本設(shè)計(jì)的lcd12864液晶顯示模塊可提供大部分電子產(chǎn)品及電器的顯示功能。mcs-51單片機(jī)是美國(guó)inte公司于1980年推出的產(chǎn)品,各高校及專業(yè)學(xué)校的培訓(xùn)教材仍與mcs-51單片機(jī)作為代表進(jìn)行理論基礎(chǔ)學(xué)習(xí)。雖然目前51系列單片機(jī)已無(wú)法滿足目前某些功能或環(huán)境的要求,但是51系列的單片機(jī)仍然是最為成功的單片機(jī)芯片,它的影響力一直延續(xù)到現(xiàn)在,以至于被越來(lái)越多的人熟悉。而從目前市場(chǎng)價(jià)格及普及程度等方面因素考慮,本文采用at89c51單片機(jī)作為顯示模塊的控制核心。目前眾多電子類產(chǎn)品用于顯示功能常用數(shù)碼管led與液晶lcd。雖然數(shù)碼管led的結(jié)構(gòu)簡(jiǎn)單、顯示方便,但已

7、無(wú)法滿足科技進(jìn)步而產(chǎn)生的現(xiàn)實(shí)要求。并且led常用動(dòng)態(tài)顯示,在復(fù)雜的系統(tǒng)中十分耗費(fèi)系統(tǒng)資源,已逐漸被淘汰。而在lcd方面,常見(jiàn)的有l(wèi)cd1602,lcd12232,lcd12864等。lcd1602可以在lcd顯示屏上完整顯示32個(gè)英文字符和日文等一些字符適合顯示英文文字信息量小的地方??梢詰?yīng)用在計(jì)算器、頻率計(jì)、時(shí)鐘等產(chǎn)品上。lcd12232也只適合文字量少的場(chǎng)合。而lcd2864的分辨率達(dá)到了128*64,對(duì)于16*16的字體可顯示4行8列,已能滿足大部分設(shè)備顯示的要求。lcd12864在市場(chǎng)上主要分為兩種,一種采用st7920控制器,它帶有中文庫(kù)字模,價(jià)格略高一點(diǎn),另一種是采用ks0108控

8、制器,它只是點(diǎn)整模式,不帶字庫(kù)。而本文無(wú)需專門顯示文本且菜單文字比你簡(jiǎn)單,因此采用常見(jiàn)的ks0108控制器的lcd12864來(lái)完成顯示模塊的設(shè)計(jì)。第一章 單片機(jī)及l(fā)cd12864概述1.1單片機(jī)的定義和特點(diǎn)單片機(jī)是一種集成的電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器cpu、隨機(jī)存儲(chǔ)器ram、只讀存儲(chǔ)器rom、多種i/o借口和中斷系統(tǒng)、定時(shí)器、計(jì)時(shí)器等功能集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。單片機(jī)在控制領(lǐng)域中,具有種類多,型號(hào)全,集成度高,通用性好,功能強(qiáng),性價(jià)比高,特別是體積小,重量輕,耗能低,成本相對(duì)較低,抗干擾能力強(qiáng)等有點(diǎn)。最重要的是可以采用c語(yǔ)言開(kāi)發(fā)環(huán)

9、境,具有友好的人機(jī)互交環(huán)境。1.2單片機(jī)的應(yīng)用和發(fā)展趨勢(shì)一、更生活化 目前,隨著我國(guó)國(guó)民經(jīng)濟(jì)的發(fā)展和人民物質(zhì)文化生活水平的不斷提高,人們?cè)诿τ诠ぷ髦啵瑢?duì)生活的質(zhì)量要求越來(lái)越高。例如:豆?jié){機(jī)是一種新型的家用飲料機(jī),以黃豆為原料,直接加工成熟的熱豆?jié){。豆?jié){機(jī)由粉碎黃豆的攪拌機(jī)、豆?jié){加熱器和控制電路三大部分組成。用單片機(jī)研制的全自動(dòng)豆?jié){機(jī)的控制電路,只要按下啟動(dòng)按鍵,豆?jié){機(jī)就開(kāi)始工作,整個(gè)過(guò)程由單片機(jī)全自動(dòng)控制,用起來(lái)更加的方便、更加的安全。二、低碳化2010世博會(huì)已逐漸離我們遠(yuǎn)去,但上海世博會(huì)的理念一直與我們緊密相連。1、低能耗cmos化,cmos電路的特點(diǎn)是低功耗、高密度、低速度、低價(jià)格。cm

10、os雖然功耗較低,但由于其物理特征決定其工作速度不夠高,而chmos則具備了高速和低功耗的特點(diǎn),這些特征,更適合于在要求低功耗向電池供電的應(yīng)用場(chǎng)合。所以我相信這種工藝將是今后一段時(shí)期單片機(jī)發(fā)展的主要途徑。2、低噪聲與高可靠性。為提高單片機(jī)的抗電磁干擾能力,使產(chǎn)品能適應(yīng)惡劣的工作環(huán)境,滿足電磁兼容性方面更高標(biāo)準(zhǔn)的要求,各單片廠家在單片機(jī)內(nèi)部電路中都采用了新的技術(shù)措施。三、高性能化。主要是指進(jìn)一步改造cpu的性能,加快指令運(yùn)算的速度和提高系統(tǒng)控制的可靠性。由于這類單片機(jī)有較高的指令速度,就可以用軟件模擬其i/o功能,由此引入了虛擬外設(shè)的新概念。隨著半導(dǎo)體集成工藝的不斷發(fā)展,單片機(jī)的集成度將更高、體

11、積將更小、功能將更強(qiáng)。1.3單片機(jī)芯片及顯示模塊的選擇采用at89c51芯片作為硬件核心,其內(nèi)部具有4kb rom存儲(chǔ)空間,能于3v的超低壓工作,而且與mcs-51系列單片機(jī)完全兼容。采用lcd12864液晶顯示為顯示模塊。lcd2864的分辨率達(dá)到了128*64,對(duì)于16*16的字體可顯示4行8列,已能滿足大部分設(shè)備顯示的要求。lcd12864在市場(chǎng)上主要分為兩種,一種采用st7920控制器,它帶有中文庫(kù)字模,價(jià)格略高一點(diǎn),另一種是采用ks0108控制器,它只是點(diǎn)整模式,不帶字庫(kù)。而本文無(wú)需專門顯示文本且菜單文字比你簡(jiǎn)單,因此采用常見(jiàn)的ks0108控制器的lcd1286來(lái)完成顯示模塊的設(shè)計(jì)。

12、1.4 lcd12864簡(jiǎn)介1.4.1最大工作范圍(1)邏輯工作電壓(vcc):4.55.5v(2)電源地(gnd):0v(3)lcd驅(qū)動(dòng)電壓(vee):0-10v(4)輸入電壓:veevdd(5)工作溫度(ta):055(常溫) / -2070(寬溫)(6)保存溫度(tstg):-10651.4.2電氣特性(1)輸入高電平(vih):3.5vmin(2) 輸入低電平(vil):0.55vmax(3)輸出高電平(voh):3.75vmin(4) 輸出低電平(vol):1.0vmax(5)工作電流:2.0mamax1.4.3接口說(shuō)明表1-1 12864-3a接口說(shuō)明表管腳號(hào)管腳電平說(shuō)明1csah

13、/l片選擇信號(hào),低電平時(shí)選擇前64列。2csbh片選擇信號(hào),低電平時(shí)選擇后64列。3gnd0v邏輯電源地。4vcc5v邏輯電源。5vee-10vlcd驅(qū)動(dòng)電源。6d/ih/l數(shù)據(jù)指令選擇,高電平:數(shù)據(jù)d0-d7將送入顯示ram;低電平:數(shù)據(jù)d0-d7將送入指令寄存器執(zhí)行。7r/wh/l讀寫(xiě)選擇,高電平:讀數(shù)據(jù);低電平:寫(xiě)數(shù)據(jù)。8eh.h/l讀寫(xiě)使能,高電平有效,下降沿鎖定數(shù)據(jù)。9db0h/l數(shù)據(jù)輸入輸出引腳。10db1h/l數(shù)據(jù)輸入輸出引腳。11db2h/l數(shù)據(jù)輸入輸出引腳。12db3h/l數(shù)據(jù)輸入輸出引腳。13db4h/l數(shù)據(jù)輸入輸出引腳。14db5h/l數(shù)據(jù)輸入輸出引腳。15db6h/l數(shù)

14、據(jù)輸入輸出引腳。16db7h/l數(shù)據(jù)輸入輸出引腳。1.4.4、指令描述(1) 顯示開(kāi)/關(guān)設(shè)置code: r/w d/i db7 db6 db5 db4 db3 db2 db1 db0功能:設(shè)置屏幕顯示開(kāi)/關(guān)。db0=h,開(kāi)顯示;db0=l,關(guān)顯示。不影響顯示ram(dd ram)中的內(nèi)容。(2)設(shè)置顯示起始行code: r/w d/i db7 db6 db5 db4 db3 db2 db1 db0llhh 行地址(063)功能:執(zhí)行該命令后,所設(shè)置的行將顯示在屏幕的第一行。顯示起始行是由z地址計(jì)數(shù)器控制的,該命令自動(dòng)將a0-a5位地址送入z地址計(jì)數(shù)器,起始地址可以是0-63范圍內(nèi)任意一行。z地

15、址計(jì)數(shù)器具有循環(huán)計(jì)數(shù)功能,用于顯示行掃描同步,當(dāng)掃描完一行后自動(dòng)加一。(3)設(shè)置頁(yè)地址code:r/wd/i db7 db6 db5 db4 db3 db2 db1 db0llhlhhh頁(yè)地址(07)功能:執(zhí)行本指令后,下面的讀寫(xiě)操作將在指定頁(yè)內(nèi),直到重新設(shè)置。頁(yè)地址就是dd ram 的行地址,頁(yè)地址存儲(chǔ)在x地址計(jì)數(shù)器中,a2-a0可表示8頁(yè),讀寫(xiě)數(shù)據(jù)對(duì)頁(yè)地址沒(méi)有影響,除本指令可改變頁(yè)地址外,復(fù)位信號(hào)(rst)可把頁(yè)地址計(jì)數(shù)器內(nèi)容清零。表1-2 dd ram地址映像表y 地址012616263db0 page0db7x=0db0 page1db7x=1db0 page6db7x=7db0 pa

16、ge7db7x=8 (4)設(shè)置列地址code:r/wd/i db7 db6 db5 db4 db3 db2 db1 db0lllh 列地址(063)功能: dd ram 的列地址存儲(chǔ)在y地址計(jì)數(shù)器中,讀寫(xiě)數(shù)據(jù)對(duì)列地址有影響,在對(duì)dd ram進(jìn)行讀寫(xiě)操作后,y地址自動(dòng)加一。(5)狀態(tài)檢測(cè)code:r/wd/i db7 db6 db5 db4 db3 db2 db1 db0hlbflon/offrstllll功能:讀忙信號(hào)標(biāo)志位(bf)、復(fù)位標(biāo)志位(rst)以及顯示狀態(tài)位(on/off)。bf=h:內(nèi)部正在執(zhí)行操作;bf=l:空閑狀態(tài)。rst=h:正處于復(fù)位初始化狀態(tài);rst=l:正常狀態(tài)。on/

17、off=h:表示顯示關(guān)閉;on/off=l:表示顯示開(kāi)。(6)寫(xiě)顯示數(shù)據(jù)code:r/wd/i db7 db6 db5 db4 db3 db2 db1 db0lhd7d6d5d4d3d2d1d0功能:寫(xiě)數(shù)據(jù)到dd ram,dd ram是存儲(chǔ)圖形顯示數(shù)據(jù)的,寫(xiě)指令執(zhí)行后y地址計(jì)數(shù)器自動(dòng)加1。d7-d0位數(shù)據(jù)為1表示顯示,數(shù)據(jù)為0表示不顯示。寫(xiě)數(shù)據(jù)到dd ram前,要先執(zhí)行“設(shè)置頁(yè)地址”及“設(shè)置列地址”命令。(7)讀顯示數(shù)據(jù)code:rs r/w db7 db6 db5 db4 db3 db2 db1 db0hhd7d6d5d4d3d2d1d0功能:從dd ram讀數(shù)據(jù),讀指令執(zhí)行后y地址計(jì)數(shù)器自

18、動(dòng)加1。從dd ram讀數(shù)據(jù)前要先執(zhí)行“設(shè)置頁(yè)地址” 及“設(shè)置列地址”命令。1.4.5接口時(shí)序(1)寫(xiě)操作時(shí)序圖1-1 寫(xiě)操作時(shí)許(2)讀操作時(shí)序圖1-2 讀操作時(shí)序表1-3 時(shí)序參數(shù)表:名稱符號(hào)最小值典型值最大值單位e周期時(shí)間tcyc1000nse高電平寬度pweh450nse低電平寬度pwel450nse上升時(shí)間tr25nse下降時(shí)間tf25ns地址建立時(shí)間tas140ns地址保持時(shí)間taw10ns數(shù)據(jù)建立時(shí)間tdsw200ns數(shù)據(jù)延遲時(shí)間tddr320ns寫(xiě)數(shù)據(jù)保持時(shí)間tdhw10ns讀數(shù)據(jù)保持時(shí)間tdhr20ns1.4.6 屏幕顯示與dd ram地址映射關(guān)系表1-4屏幕顯示與dd ra

19、m地址映射關(guān)系y1y2y3y4y62y63y64x=0line 01/01/01/01/01/01/01/0db0line 11/01/01/01/01/01/01/0db1line 21/01/01/01/01/01/01/0db2line 31/01/01/01/01/01/01/0db3line 41/01/01/01/01/01/01/0db4line 51/01/01/01/01/01/01/0db5line 61/01/01/01/01/01/01/0db6line 71/01/01/01/01/01/01/0db7x=7line601/01/01/01/01/01/01/0db4

20、line611/01/01/01/01/01/01/0db5line621/01/01/01/01/01/01/0db6line631/01/01/01/01/01/01/0db71.4.7 測(cè)試硬件電路veev0第三腳vee第18腳可調(diào)10k(三極管內(nèi)置)圖1-3 測(cè)試硬件電路1.5顯示原理 在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對(duì)lcd控制器進(jìn)行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對(duì)于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))即可。而對(duì)于中文,常用卻有6000以上,于是我們的dos前輩想了一個(gè)辦法,就是將ascii表的高128個(gè)很少用到的數(shù)值以兩個(gè)為一組來(lái)表示漢字,即漢

21、字的內(nèi)碼。而剩下的低128位則留給英文字符使用,即英文的內(nèi)碼。 那么,得到了漢字的內(nèi)碼后,還僅是一組數(shù)字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來(lái)記載英文或漢字的形狀,如英文的a在字模的記載方式如圖1所示:圖1-4 “a”字模圖而中文的“你”在字模中的記載卻如圖2所示:圖1-5 “你”字模圖根據(jù)芯片的不同取模的方式不同,有多種取模方式:?jiǎn)紊c(diǎn)陣液晶字模,橫向取模,字節(jié)正序,單色點(diǎn)陣液晶字模,橫向取模,字節(jié)倒序,單色點(diǎn)陣液晶字模,縱向取模,字節(jié)正序,單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序等等。第二章 硬件設(shè)

22、計(jì)2.1設(shè)計(jì)思路(1)設(shè)計(jì)單片機(jī)系統(tǒng)電路。(2)設(shè)計(jì)lcd12864液晶外圍電路。(3)設(shè)計(jì)lcd12864液晶與單片機(jī)的組成電路。2.2設(shè)計(jì)過(guò)程2.2.1方案論證單片機(jī)lcd12864液晶外部晶振電路外部復(fù)位電路圖2-1 單片機(jī)與lcd液晶的工作原理由于要實(shí)現(xiàn)點(diǎn)陣液晶的繪圖等功能,而且對(duì)于51系列的單片機(jī)片內(nèi)ram都不大,要實(shí)現(xiàn)讀操作的話只能使用可以并行方式的液晶(只有并行方式可讀),因?yàn)槿绻皇褂貌⑿蟹绞蕉捎迷?1系列單片機(jī)內(nèi)部開(kāi)辟一片128*64大小的緩存用于對(duì)液晶的刷新從而實(shí)現(xiàn)讀的功能顯然不現(xiàn)實(shí)。本設(shè)計(jì)選用的12864是ampire128x64,它的控制器是ks0108,采用并行方式

23、與單片機(jī)通信。對(duì)于單片機(jī)的選用,采用程序存儲(chǔ)空間較大的stc89c58,它有32k的flash,對(duì)于實(shí)現(xiàn)簡(jiǎn)單的gui設(shè)計(jì)足夠。圖2-1是單片機(jī)與lcd液晶以及外圍電路的總體框圖。2.2.2電路設(shè)計(jì)圖2-2 單片機(jī)系統(tǒng)電路如圖2-2所示,單片機(jī)的最小系統(tǒng)由復(fù)位電路和振蕩電路組成,復(fù)位電路采用上電復(fù)位,振蕩電路采用內(nèi)部方式。在xtal1和xtal2端外界石英晶體作定時(shí)元件,內(nèi)部反相放大器自激振蕩,產(chǎn)生時(shí)鐘。p0口出外接4.7k上拉電阻,因?yàn)閜0口是漏極開(kāi)路,必須要接上拉才能輸出高電平。12864液晶外圍電路如圖2-3所示。工作原理及過(guò)程:r/w,e,d/i分別為讀寫(xiě)控制,使能控制,和命令數(shù)據(jù)選擇控

24、制端口,將這三個(gè)管腳分別連接到單片機(jī),從而實(shí)現(xiàn)單片機(jī)對(duì)lcd12864的控制,并口數(shù)據(jù)d0-d7連接到單片機(jī)的p0口,實(shí)現(xiàn)相互通信。圖2-3 12864液晶外圍電路圖2-4 電路總圖電路總圖連接如圖2-4所示。所有的管腳通過(guò)標(biāo)號(hào)建立電氣連接,由圖可以看出lcd12864與單片機(jī)的數(shù)據(jù)聽(tīng)信是利用單片機(jī)的p0口,控制線連接到了單片機(jī)的p2口的前5個(gè)管腳,單片機(jī)通過(guò)這5個(gè)管腳與lcd12864通信,實(shí)現(xiàn)對(duì)lcd128864的控制。第三章 軟件系統(tǒng)設(shè)計(jì)3.1、寫(xiě)指令函數(shù)及初始化函數(shù) 在設(shè)計(jì)系統(tǒng)中定義p32口為en對(duì)應(yīng)連接液晶模塊的使能信號(hào)端e端,p31為r_w對(duì)應(yīng)液晶模塊的rw端,定義p30為rs對(duì)應(yīng)

25、連接液晶模塊的rs端。定義寫(xiě)指令函數(shù)為write_cnd,參名為cnd,寫(xiě)數(shù)據(jù)函數(shù)名為weite_data,參數(shù)名為dat,定義初始化函數(shù)名為sub_int,程序中回饋頻繁的用到延時(shí)操作,定義延時(shí)函數(shù)名為delay,參數(shù)名為n。寫(xiě)函數(shù)主要用來(lái)向st7920控制器進(jìn)行寫(xiě)指令和寫(xiě)數(shù)據(jù)操作。當(dāng)模塊在接收指令前,微處理器必須先確認(rèn)模塊內(nèi)部處于非忙碌狀態(tài),即讀取bf標(biāo)志時(shí)bf需為0,方可接受新的指令;如果在送出一個(gè)指令前并不檢查bf標(biāo)志,那么在前一個(gè)指令和這個(gè)指令中間必須延遲一段較長(zhǎng)的時(shí)間,即是等待前一個(gè)指令確實(shí)執(zhí)行完成,指令執(zhí)行的時(shí)間請(qǐng)參考指令表中的個(gè)別指令說(shuō)明。寫(xiě)指令的流程圖如圖3-1所示。寫(xiě)數(shù)據(jù)操

26、作與寫(xiě)指令相似只需修改rs控制信號(hào)即可。開(kāi)始延時(shí)rw=0(讀操作)rs=0(指令)使能開(kāi)顯示數(shù)據(jù)使能關(guān)寫(xiě)指令完成圖3-1寫(xiě)指令操作在進(jìn)行漢字顯示,圖形顯示,點(diǎn),線顯示等操作前都需對(duì)lcd進(jìn)行初始化,其初始化流程圖如圖3-2所示。通過(guò)基本指令集進(jìn)行功能設(shè)定,再寫(xiě)入ox08指令關(guān)顯示,通過(guò)0x01指令清楚屏幕,寫(xiě)入0x06指令進(jìn)入設(shè)定點(diǎn),并設(shè)置游標(biāo)右移ddram地址寄存器ac加1.通過(guò)寫(xiě)入指令0x0c重新開(kāi)顯示即初始化完成。開(kāi)電源功能設(shè)定0x38關(guān)顯示0x08清楚屏幕0x01進(jìn)入設(shè)定點(diǎn),游標(biāo)右移0x06開(kāi)顯示0x0c初始化完成圖3-2 初始化流程圖3.2、漢字顯示函數(shù) 文本顯示ram提供了48=3

27、2個(gè)字的漢字空間,每個(gè)漢字需占用1616共32個(gè)字節(jié)的地址空間,當(dāng)寫(xiě)入文本顯示ram時(shí),可以分別顯示cgrom、hcgrom與cgrom的字型;st7920可以顯示3種字型,分別是半寬的hcgrom字型、cgrom字型及中文cgrom字型。3種字型的選擇,由在ddram中寫(xiě)入的編碼選擇,各種字型詳細(xì)編碼如下:顯示半寬字型:將一位字節(jié)寫(xiě)入ddram中,范圍為02h27fh的編碼。顯示cgram字型:將兩字節(jié)編碼寫(xiě)入ddram中,共0000h,0002h,0004h,0006h4種編碼。顯示中文字型:將兩字節(jié)編碼寫(xiě)入ddram,范圍為a1a0hf7ffh(gb碼)或a140hd75fh(big5碼

28、)的編碼4。液晶顯示器初始化完成后,先由寫(xiě)指令操作寫(xiě)入漢字在液晶顯示屏上的地址,再連續(xù)寫(xiě)入兩個(gè)字節(jié)的要顯示的字符的編碼到ddram上,顯示數(shù)字或字母等半寬字符時(shí),將一個(gè)字節(jié)的編碼寫(xiě)入ddram,硬件依照編碼自動(dòng)從cgram中選擇要顯示的字符顯示,漢字顯示流程圖如圖3-3所示。在顯示漢字時(shí),定義一個(gè)漢字顯示子程序,程序名為showhz,在漢字顯示子程序中用一個(gè)指針變量*s指向所顯示的漢字字符串,并用其來(lái)判斷所顯示的漢字是否顯示結(jié)束,在主函數(shù)中顯示漢字時(shí),先寫(xiě)入漢字所處的液晶位置的地址,再調(diào)用showhz子程序來(lái)顯示漢字。start初始化潔屏寫(xiě)入漢字顯示地址指針賦值寫(xiě)漢字結(jié)束圖3-3 漢字顯示流程

29、圖3.3編寫(xiě)程序詳見(jiàn)附錄。第四章 軟件調(diào)試與仿真 (1)將keil里已編號(hào)的程序經(jīng)調(diào)試無(wú)誤后生成hex文件,按照?qǐng)D2-4在proteus里連接電路,并將已生成的hex文件載入單片機(jī),運(yùn)行。 (2)仿真結(jié)果:液晶顯示屏上出現(xiàn)“銅陵學(xué)院,機(jī)電工程系自動(dòng)化胡莉,王子俊,范賢略,張國(guó)飛,鮑明浩,王冉冉”如圖4-1所示。接著顯示屏上的漢字消失,同時(shí)出現(xiàn)一幅圖畫(huà),如圖4-2所示。接著圖畫(huà)消失,同時(shí)如圖1所示的漢字出現(xiàn)在液晶顯示屏上,再接著漢字消失,同時(shí)圖4-2所示圖畫(huà)顯示在液晶顯示屏上,如此周而復(fù)始的循環(huán)下去。直至按下停止按鈕。圖4-1多漢字仿真結(jié)果圖4-2圖畫(huà)仿真結(jié)果第五章 心得體會(huì) 在整個(gè)設(shè)計(jì)過(guò)程中,

30、發(fā)揮團(tuán)隊(duì)精神,分工合作,自主學(xué)習(xí),通過(guò)對(duì)前期知識(shí)的補(bǔ)充和學(xué)習(xí),較好的完成了作品,完成了本次課程設(shè)計(jì)的要求。在最初的設(shè)計(jì)中,對(duì)52單片機(jī)進(jìn)行了充分的了解,并與51單片機(jī)相比較,了解了兩種單片機(jī)的不同,并且相互學(xué)習(xí),一同討論,最終決定使用89c51單片機(jī)制作。程序編寫(xiě)中,由于思路不清晰,開(kāi)始時(shí)遇到了很多問(wèn)題,通過(guò)同組員商議討論,以及對(duì)大量書(shū)籍資料和論壇中的作品進(jìn)行借鑒,明白了編程中的主要算法和實(shí)現(xiàn),從而解決了很多問(wèn)題,對(duì)于液晶屏幕,開(kāi)始并不是很了解,在運(yùn)用時(shí)查看了大量的手冊(cè)資料,并閱讀了網(wǎng)友對(duì)于12864液晶的驅(qū)動(dòng)編寫(xiě)代碼,從而掌握了12864液晶的使用,在本次單片機(jī)課程設(shè)計(jì)中,對(duì)于單片機(jī)的功能及

31、應(yīng)用有了充分的認(rèn)識(shí),充分了解了單片機(jī)的應(yīng)用,并對(duì)知識(shí)進(jìn)行了補(bǔ)充學(xué)習(xí)。在大量閱讀文獻(xiàn)資料后,感覺(jué)對(duì)單片機(jī)的了解還很少,以后將及時(shí)補(bǔ)充相關(guān)知識(shí)對(duì)單片機(jī)進(jìn)行系統(tǒng)學(xué)習(xí)。通過(guò)這次對(duì)lcd液晶簡(jiǎn)單gui的設(shè)計(jì)與制作,讓我了解了設(shè)計(jì)電路的程序,也讓我了解了關(guān)于lcd12864的基本原理與設(shè)計(jì)理念,要設(shè)計(jì)一個(gè)電路總要先用 仿真仿真成功之后才實(shí)際接線的。但是最后的成品卻不一定與仿真時(shí)完全一樣, 因?yàn)?,在?shí)際接線中有著各種各樣的條件制約著。而且,在仿真中無(wú)法成功的電路接法,在實(shí)際中因?yàn)樾酒旧淼奶匦远軌虺晒?。所以,在設(shè)計(jì)時(shí)盡可能應(yīng)考 慮兩者的差異,從中找出最適合的設(shè)計(jì)方法。此外,仿真時(shí)應(yīng)注意相同元件的不同型號(hào),

32、往往存在差異性。通過(guò)這次學(xué)習(xí),讓我對(duì)各種電路都有了大概的了解, 所以說(shuō), 心動(dòng)不如行動(dòng), 對(duì)于這些電路還是應(yīng)該自己動(dòng)手實(shí)際操作才會(huì)有深刻理解。 參考文獻(xiàn):1 李建忠.單片機(jī)原理及應(yīng)用.西安電子科技大學(xué)出版 2006.022 張俊謨.單片機(jī)中級(jí)教程.北京航空航天大學(xué)出版 2006.033 余發(fā)山.單片機(jī)原理及應(yīng)用技術(shù).中國(guó)礦業(yè)大學(xué)出版社 2003.124 楊凌霄.微軟計(jì)算機(jī)原理及應(yīng)用.中國(guó)礦業(yè)大學(xué)出版社 2004.085 何立民.單片機(jī)應(yīng)用技術(shù)選編.北京航空航天大學(xué)出版社 2000.086 萬(wàn)光毅.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程.北京航空航天大學(xué)出版社 2005.017 周航慈.單片機(jī)程序設(shè)計(jì)基礎(chǔ).北京航

33、空航天大學(xué)出版社 1991.118 黃遵熹.單片機(jī)原理接口與應(yīng)用.西北工業(yè)大學(xué)出版社 1997.059 楊振江,杜鐵軍,李群.流行單片機(jī)實(shí)用子程序及應(yīng)用實(shí)例m.西安電子科技大學(xué)出版社 200210 楊子文 編 單片機(jī)原理及應(yīng)用 西安電子科技大學(xué)出版社 200611 王法能 編 單片機(jī)原理及應(yīng)用 科學(xué)出版社 2004附錄:編寫(xiě)程序如下:#include #define uchar unsigned char#define uint unsigned int#define lcdlcddisp_off 0x3e#define lcdlcddisp_on 0x3f#define page_add 0

34、xb8/ye#define lcdcol_add 0x40/lie#define start_line 0xc0/hang/*液晶顯示器的端口定義*/#define data_ora p0 /*液晶數(shù)據(jù)總線*/sbit lcdmcs=p21 ; /*片選1*/sbit lcdscs=p22 ; /*片選2*/sbit reset=p23 ; /*復(fù)位信號(hào)*/sbit lcddi=p24 ; /*數(shù)據(jù)/指令 選擇*/sbit lcdrw=p25 ; /*讀/寫(xiě) 選擇*/sbit lcdenable=p26 ; /*讀/寫(xiě) 使能*/uchar *tab;uint k=0;uchar code hz

35、1=/*- 文字: 銅 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x40,0x30,0xef,0x24,0x24,0x00,0xfe,0x02,0x92,0x92,0x92,0x92,0x02,0xfe,0x00,0x00,0x01,0x01,0x7f,0x21,0x11,0x00,0xff,0x00,0x0f,0x08,0x08,0x4f,0x80,0x7f,0x00,0x00,/*- 文字: 陵 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0xfe,0x22,0x5a,0x86,0x00,0x20,0xa4,0x64,0

36、xa4,0x3f,0x24,0x64,0xa4,0x20,0x00,0x00,0xff,0x04,0x08,0x07,0x80,0x89,0x44,0x46,0x2b,0x12,0x2a,0x46,0x80,0x81,0x00,/*- 文字: 學(xué) -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7e,0x06,0x05,0x04,0x04,

37、0x04,0x04,0x04,0x00,/*- 文字: 院 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0xfe,0x22,0x5a,0x86,0x10,0x0c,0x24,0x24,0x25,0x26,0x24,0x24,0x14,0x0c,0x00,0x00,0xff,0x04,0x08,0x07,0x80,0x41,0x31,0x0f,0x01,0x01,0x3f,0x41,0x41,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

38、,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*- 文字: 王 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x02,0x82,0x82,0x82,0x82,0x82,0xfe,0x82,0x82,0x82,0x82,0x82,0x02,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7f,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,/*- 文字:

39、子 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xe2,0xa2,0x92,0x8a,0x86,0x82,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*- 文字: 俊 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x80,0x60,0xf8,0x07,0x00,0x10,0x98,0x54,0x93,0x10,0

40、x10,0x54,0x98,0x30,0x00,0x01,0x00,0x00,0xff,0x00,0x80,0x89,0x44,0x46,0x2b,0x12,0x2a,0x46,0x80,0x81,0x00,;uchar code hz2=/*- 文字: 機(jī) -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x10,0x10,0xd0,0xff,0x90,0x10,0x00,0xfe,0x02,0x02,0x02,0xfe,0x00,0x00,0x00,0x00,0x04,0x03,0x00,0xff,0x00,0x83,0x60,0x1f,0x00,0x00,0x00

41、,0x3f,0x40,0x40,0x78,0x00,/*- 文字: 電 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x00,0xf8,0x88,0x88,0x88,0x88,0xff,0x88,0x88,0x88,0x88,0xf8,0x00,0x00,0x00,0x00,0x00,0x1f,0x08,0x08,0x08,0x08,0x7f,0x88,0x88,0x88,0x88,0x9f,0x80,0xf0,0x00,/*- 文字: 工 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x04,0x04,0x04,0x

42、04,0x04,0x04,0xfc,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,/*- 文字: 程 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x24,0x24,0xa4,0xfe,0x23,0x22,0x00,0x3e,0x22,0x22,0x22,0x22,0x22,0x3e,0x00,0x00,0x08,0x06,0x01,0xff,0x01,0x06,0x40,0

43、x49,0x49,0x49,0x7f,0x49,0x49,0x49,0x41,0x00,/*- 文字: 胡 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x10,0x90,0x90,0xff,0x90,0x90,0x10,0x00,0xfe,0x22,0x22,0x22,0xfe,0x00,0x00,0x00,0x00,0x3f,0x10,0x10,0x10,0xbf,0x40,0x30,0x0f,0x02,0x42,0x82,0x7f,0x00,0x00,/*- 文字: 范 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x04

44、,0x44,0x84,0x14,0x64,0x0f,0x04,0xe4,0x24,0x2f,0x24,0x24,0xe4,0x04,0x04,0x00,0x00,0x08,0x09,0x78,0x04,0x03,0x00,0x3f,0x40,0x40,0x42,0x44,0x43,0x40,0x78,0x00,/*- 文字: 賢 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x00,0x7e,0x00,0x00,0xff,0x40,0x42,0x26,0x2a,0x12,0x2a,0x26,0x40,0x40,0x00,0x00,0x80,0x80,0x9

45、f,0x41,0x41,0x21,0x1d,0x01,0x21,0x21,0x5f,0x40,0x80,0x00,0x00,/*- 文字: 略 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0xfc,0x44,0xfc,0x44,0xfc,0x20,0x10,0x18,0xa7,0x44,0xa4,0x14,0x0c,0x00,0x00,0x00,0x1f,0x08,0x0f,0x08,0x1f,0x04,0x02,0xfd,0x44,0x44,0x44,0x45,0xfd,0x02,0x02,0x00,;uchar code hz3=/*- 文字: 系 -*/*-

46、宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x00,0x22,0x32,0x2a,0xa6,0xa2,0x62,0x21,0x11,0x09,0x81,0x01,0x00,0x00,0x00,0x00,0x42,0x22,0x13,0x0b,0x42,0x82,0x7e,0x02,0x02,0x0a,0x12,0x23,0x46,0x00,0x00,/*- 文字: 自 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x00,0x00,0xf8,0x88,0x8c,0x8a,0x89,0x88,0x88,0x88,0xf8,0x00

47、,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xff,0x00,0x00,0x00,0x00,/*- 文字: 動(dòng) -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x40,0x44,0xc4,0x44,0x44,0x44,0x40,0x10,0x10,0xff,0x10,0x10,0x10,0xf0,0x00,0x00,0x10,0x3c,0x13,0x10,0x14,0xb8,0x40,0x30,0x0e,0x01,0x40,0x80,0x40,0x3f,0x00,0x0

48、0,/*- 文字: 化 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x80,0x60,0xf8,0x07,0x00,0x00,0x00,0xff,0x40,0x20,0x10,0x08,0x04,0x00,0x00,0x01,0x00,0x00,0xff,0x00,0x04,0x02,0x01,0x3f,0x40,0x40,0x40,0x40,0x40,0x78,0x00,/*- 文字: 莉 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x04,0x44,0x44,0x44,0xc4,0x2f,0x24,0x04,0x04,0

49、x8f,0x04,0x04,0xe4,0x04,0x04,0x00,0x22,0x12,0x0a,0x06,0xff,0x06,0x0a,0x12,0x00,0x1f,0x40,0x80,0x7f,0x00,0x00,0x00,/*- 文字: 張 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x02,0xe2,0x22,0x22,0x3e,0x80,0x80,0xff,0x80,0xa0,0x90,0x88,0x86,0x80,0x80,0x00,0x00,0x43,0x82,0x42,0x3e,0x00,0x00,0xff,0x40,0x21,0x06,0x08,0x10,0x20,0x40,0x00,/*- 文字: 國(guó) -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0xfe,0x

溫馨提示

  • 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ù)網(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)論