單片機(jī)課程設(shè)計(jì)-節(jié)日彩燈控制器設(shè)計(jì)_第1頁(yè)
單片機(jī)課程設(shè)計(jì)-節(jié)日彩燈控制器設(shè)計(jì)_第2頁(yè)
單片機(jī)課程設(shè)計(jì)-節(jié)日彩燈控制器設(shè)計(jì)_第3頁(yè)
單片機(jī)課程設(shè)計(jì)-節(jié)日彩燈控制器設(shè)計(jì)_第4頁(yè)
單片機(jī)課程設(shè)計(jì)-節(jié)日彩燈控制器設(shè)計(jì)_第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、 課程設(shè)計(jì)報(bào)告題 目: 節(jié)日彩燈控制器設(shè)計(jì) 課 程: 單片機(jī)原理及應(yīng)用課程設(shè)計(jì) 專 業(yè): 電氣工程及其自動(dòng)化 第 一 部 分任務(wù)書?單片機(jī)原理及應(yīng)用?課程設(shè)計(jì)任務(wù)書一、課題名稱詳見(jiàn)?單片機(jī)課程設(shè)計(jì)題目一?:主要是軟件仿真,利用Proteus軟件進(jìn)行仿真設(shè)計(jì)并調(diào)試;?單片機(jī)課程設(shè)計(jì)題目二?:主要是硬件設(shè)計(jì),利用單片機(jī)周立功實(shí)驗(yàn)箱進(jìn)行設(shè)計(jì)并調(diào)試。二、課程設(shè)計(jì)目的課程設(shè)計(jì)是課程教學(xué)中的一項(xiàng)重要內(nèi)容,是到達(dá)教學(xué)目標(biāo)的重要環(huán)節(jié),是綜合性較強(qiáng)的實(shí)踐教學(xué)環(huán)節(jié),它對(duì)幫助學(xué)生全面牢固地掌握課堂教學(xué)內(nèi)容、培養(yǎng)學(xué)生的實(shí)踐和實(shí)際動(dòng)手能力、提高學(xué)生全面素質(zhì)具有很重要的意義。?單片機(jī)原理及應(yīng)用?是一門理論性、實(shí)用性和實(shí)踐

2、性都很強(qiáng)的課程,課程設(shè)計(jì)環(huán)節(jié)應(yīng)占有更加重要的地位。單片機(jī)原理及應(yīng)用課程設(shè)計(jì)的目的是讓學(xué)生在理論學(xué)習(xí)的根底上,通過(guò)完成一個(gè)涉及MCS-51單片機(jī)多種資源應(yīng)用并具有綜合功能的小系統(tǒng)目標(biāo)板的設(shè)計(jì)與編程應(yīng)用,使學(xué)生不但能將課堂上學(xué)到的理論知識(shí)與實(shí)際應(yīng)用結(jié)合起來(lái),而且能進(jìn)一步加深對(duì)電子電路、電子元器件等知識(shí)的認(rèn)識(shí)與理解,同時(shí)在軟件編程、排錯(cuò)調(diào)試、相關(guān)軟件和儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。為今后能夠獨(dú)立進(jìn)行某些單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)工作打下一定的根底。通過(guò)單片機(jī)硬件和軟件設(shè)計(jì)、調(diào)試、整理資料等環(huán)節(jié)的培訓(xùn),使學(xué)生初步掌握工程設(shè)計(jì)方法和組織實(shí)踐的根本技能,逐步熟悉開(kāi)展科學(xué)實(shí)踐的程序和方法。三

3、、課程設(shè)計(jì)內(nèi)容設(shè)計(jì)以89C51單片機(jī)和外圍元器件構(gòu)成的單片機(jī)應(yīng)用系統(tǒng),并完成相應(yīng)的軟硬件調(diào)試。1. 系統(tǒng)方案設(shè)計(jì):綜合運(yùn)用單片機(jī)課程中所學(xué)到的理論知識(shí),學(xué)生根據(jù)所選課題的任務(wù)、要求和條件進(jìn)行總體方案的設(shè)計(jì)。2. 硬件電路設(shè)計(jì):對(duì)方案中以單片機(jī)為核心的電路進(jìn)行設(shè)計(jì)計(jì)算,包括元器件的選擇和電路參數(shù)的計(jì)算,并畫出總體電路圖。3. 軟件設(shè)計(jì):根據(jù)已設(shè)計(jì)出的軟件系統(tǒng)框圖,用匯編語(yǔ)言或C51編制出各功能模塊的子程序和整機(jī)軟件系統(tǒng)的主程序。4. 調(diào)試:在單片機(jī)EDA仿真軟件環(huán)境Proteus下進(jìn)行仿真設(shè)計(jì)并調(diào)試;或在單片機(jī)周立功實(shí)驗(yàn)箱上進(jìn)行相關(guān)設(shè)計(jì)并調(diào)試。四、課程設(shè)計(jì)要求以單片機(jī)為核心,設(shè)計(jì)一個(gè)節(jié)日彩燈控制

4、器: P1.0開(kāi)始,按此鍵那么燈開(kāi)始流動(dòng)由上而下并將第幾個(gè)燈亮送給液晶顯示和LED數(shù)碼管。P1.4停止,按此鍵那么燈停止流動(dòng),液晶顯示和LED數(shù)碼管停止工作。P1.4停止,按此鍵那么停止流動(dòng),所有燈為暗并清屏。 P1.2上,按此鍵那么燈由左向右下流動(dòng)并將第幾個(gè)燈亮送給液晶顯示和LED數(shù)碼管。 P1.3下,按此鍵那么燈由右向左流動(dòng)并將第幾個(gè)燈亮送給液晶顯示和LED數(shù)碼管五、進(jìn)度安排序號(hào)內(nèi)容天數(shù)1布置任務(wù),熟悉課題要求2總體方案確定,硬件電路設(shè)計(jì)3軟件編程4Proteus仿真,或在周立功實(shí)驗(yàn)箱上調(diào)試25總結(jié),撰寫課程設(shè)計(jì)報(bào)告七、課程設(shè)計(jì)報(bào)告內(nèi)容:總結(jié)設(shè)計(jì)過(guò)程,寫出設(shè)計(jì)報(bào)告,設(shè)計(jì)報(bào)告具體內(nèi)容要求如下

5、:1課程設(shè)計(jì)的目和設(shè)計(jì)的內(nèi)容。2課程設(shè)計(jì)的要求。3控制系統(tǒng)總框圖及系統(tǒng)工作原理。4控制系統(tǒng)的硬件電路連接圖,電路的原理。 5軟件設(shè)計(jì)流程圖及其說(shuō)明。6電路設(shè)計(jì),軟件編程、調(diào)試中遇到的問(wèn)題及分析解決方法。7實(shí)驗(yàn)結(jié)果及其分析。8體會(huì)。第 二 部 分課程設(shè)計(jì)報(bào)告目 錄 TOC o 1-3 h z u HYPERLINK l _Toc390046288 1、課題簡(jiǎn)介 PAGEREF _Toc390046288 h - 8 - HYPERLINK l _Toc390046289 、設(shè)計(jì)需求分析 PAGEREF _Toc390046289 h - 8 - HYPERLINK l _Toc390046290

6、 2、方案設(shè)計(jì) PAGEREF _Toc390046290 h - 9 - HYPERLINK l _Toc390046291 、控制系統(tǒng)總體框圖 PAGEREF _Toc390046291 h - 9 - HYPERLINK l _Toc390046292 、工作原理 PAGEREF _Toc390046292 h - 9 - HYPERLINK l _Toc390046293 3、硬件電路設(shè)計(jì) PAGEREF _Toc390046293 h - 10 - HYPERLINK l _Toc390046294 、 AT89C51單片機(jī)硬件結(jié)構(gòu) PAGEREF _Toc390046294 h -

7、 10 - HYPERLINK l _Toc390046295 、1602字符型液晶顯示 PAGEREF _Toc390046295 h - 13 - HYPERLINK l _Toc390046296 、 AT89C51最小系統(tǒng) PAGEREF _Toc390046296 h - 16 - HYPERLINK l _Toc390046297 3. 3、電路設(shè)計(jì) PAGEREF _Toc390046297 h - 16 - HYPERLINK l _Toc390046298 4、軟件設(shè)計(jì)原理 PAGEREF _Toc390046298 h - 17 - HYPERLINK l _Toc3900

8、46299 3.1 程序設(shè)計(jì) PAGEREF _Toc390046299 h - 17 - HYPERLINK l _Toc390046300 3.2 主程序設(shè)計(jì) PAGEREF _Toc390046300 h - 18 - HYPERLINK l _Toc390046301 、系統(tǒng)程序: PAGEREF _Toc390046301 h - 20 - HYPERLINK l _Toc390046302 5、電路仿真 PAGEREF _Toc390046302 h - 26 - HYPERLINK l _Toc390046303 、仿真結(jié)果 PAGEREF _Toc390046303 h - 2

9、6 - HYPERLINK l _Toc390046304 、仿真結(jié)果分析 PAGEREF _Toc390046304 h - 29 - HYPERLINK l _Toc390046305 6、小結(jié) PAGEREF _Toc390046305 h - 30 - HYPERLINK l _Toc390046306 參 考 文 獻(xiàn) PAGEREF _Toc390046306 h - 31 - HYPERLINK l _Toc390046307 附錄 PAGEREF _Toc390046307 h - 32 -1、課題簡(jiǎn)介、設(shè)計(jì)需求分析節(jié)日彩燈使生活中常常用到的裝飾物品。它集中地運(yùn)用了單片機(jī)、LED

10、、,自動(dòng)控制等技術(shù),是典型的基于單片機(jī)的電子產(chǎn)品。本文以AT89C51單片機(jī)為控制核心,采用模塊化的設(shè)計(jì)方案,運(yùn)用LED彩燈、按鍵等組成電路,實(shí)現(xiàn)彩燈在開(kāi)啟時(shí)滿足不一樣的閃亮方法。按鍵可以在彩燈使用的時(shí)候選擇不同的亮法,使彩燈變化多樣,鍵一可以使彩燈依次循環(huán)點(diǎn)亮,健二可以使彩燈從左到又從右到左循環(huán)點(diǎn)亮,三號(hào)鍵使兩端滅,中間亮,再對(duì)半交替亮,然后再奇偶亮。通過(guò)按鍵能方便使用者選擇不同樣的亮法 隨著計(jì)算機(jī)、微電子、信息技術(shù)的快速進(jìn)步,智能化技術(shù)的開(kāi)發(fā)速度越來(lái)越快 ,智能度越來(lái)越高 ,應(yīng)用范圍也得到了極大的擴(kuò)展。在海洋開(kāi)發(fā)、宇宙探測(cè)、工農(nóng)業(yè)生產(chǎn)、軍事、社會(huì)效勞、娛樂(lè)等各個(gè)領(lǐng)域。在娛樂(lè)方面,場(chǎng)地的裝飾

11、離不開(kāi)彩燈。在建筑方面也采用彩燈來(lái)裝飾高樓大廈。彩燈又靈活多變的點(diǎn)亮方式,裝飾效果非常好,特別時(shí)晚上使得高樓大廈更加漂亮。是彩燈的應(yīng)用才使得城市的夜景非常迷人。 在國(guó)內(nèi)外,微控制系統(tǒng)主要采用單片機(jī)作為控制核心。因此,單片機(jī)的開(kāi)展將有助于簡(jiǎn)單實(shí)用電子產(chǎn)品的開(kāi)發(fā)。在本設(shè)計(jì)中,采用比擬先進(jìn)的AT89C51單片機(jī)為控制核心,它的功耗很低。單片機(jī)技術(shù)開(kāi)展至今,掌握最先進(jìn)技術(shù)的仍然是國(guó)外的幾大公司。如Intel公司開(kāi)展的MCS-51系列的新一代產(chǎn)品,如8C152、80C51FA/FB、80C51GA/GB、8C451、8C452,還包括了Philips、Siemens、ADM、Fujutsu、OKI、Ha

12、rria-Metra、ATMEL等公司以80C51為核心推出的大量各具特色與80C51兼容的單片機(jī)。新一代的單片機(jī)的最主要的技術(shù)特點(diǎn)是向外部接口電路擴(kuò)展,以實(shí)現(xiàn)Microcomputer完善的控制功能為己任,可連接一些外部接口功能單元如A/D、PWM、PCA(可編程計(jì)數(shù)器陣列)WDT(監(jiān)視定時(shí)器)高速I/O口、計(jì)數(shù)器的捕獲/比擬邏輯等。這一代單片機(jī)中,在總線方面最重要的進(jìn)展是為單片機(jī)配置了芯片間的串行總線,為單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)提供了更加靈活的方式。Philips公司還為這一代單片機(jī)80C51系列8C592單片機(jī)引入了具有較強(qiáng)功能的設(shè)備間網(wǎng)絡(luò)系統(tǒng)總線CAN(Controller Area Net

13、work BUS)。2、方案設(shè)計(jì)、控制系統(tǒng)總體框圖8個(gè)LED燈AT89C51晶體顯示8位LED數(shù)碼管P0P2P3晶震器及復(fù)位發(fā)生器控制按鍵P1、工作原理如流程圖示,P1口讀控制按鍵的狀態(tài),AT89C51根據(jù)P1口的信號(hào)的不同給P3口不同的信號(hào)使8個(gè)LED工作,在這同時(shí)給P0、P2口發(fā)送相應(yīng)的信號(hào)以顯示8個(gè)LED中哪個(gè)燈正在亮。 晶震器及復(fù)位發(fā)生器是用以給AT89C51提供時(shí)鐘信號(hào);復(fù)位發(fā)生器是當(dāng)系統(tǒng)異常工作時(shí)用以復(fù)位初始化。3、硬件電路設(shè)計(jì)一個(gè)單片機(jī)應(yīng)用系統(tǒng)的硬件電路設(shè)計(jì)包含有兩局部?jī)?nèi)容:一是系統(tǒng)擴(kuò)展,即單片機(jī)內(nèi)部的功能單元,如ROMRAMI/O口定時(shí)/記數(shù)器中斷系統(tǒng)等能量不能滿足應(yīng)用系統(tǒng)的要

14、求時(shí),必須在片外進(jìn)行擴(kuò)展,選擇適當(dāng)?shù)男酒O(shè)計(jì)相應(yīng)的電路。二是系統(tǒng)配置,既要按照系統(tǒng)功能要求配置外圍設(shè)備,如鍵盤顯示器打印機(jī)A/DD/A轉(zhuǎn)換器等,又要設(shè)計(jì)適宜的接口電路。本系統(tǒng)采用AT89C51單片機(jī)作為中央處理器。其主要任務(wù)收集按鍵的信息,判斷按鍵時(shí)否按下來(lái)執(zhí)行相應(yīng)彩燈的點(diǎn)亮方式在本系統(tǒng)中,AT89C51單片機(jī)的P1口用于接按鍵,方便使用者選擇方式。P0口接的時(shí)LED彩燈。3.1、 AT89C51單片機(jī)硬件結(jié)構(gòu)AT89C51是一種低功耗/低電壓、高性能的八位CMOS單片機(jī),片內(nèi)有一個(gè)4KB的FLASH可編程可擦除只讀存儲(chǔ)器FPEROMFlash Programmable and Erasab

15、le Read Only Memory,它采用了CMOS工藝和ATMEL公司的高密度非易失性存儲(chǔ)器技術(shù),而且其輸出引腳和指令系統(tǒng)都與MSC51兼容。片內(nèi)置通用8位中央處理器CPU和FLASH存儲(chǔ)單元,片內(nèi)的存儲(chǔ)器允許在系統(tǒng)內(nèi)改編程序或用常規(guī)的非易失性存儲(chǔ)器編程。因此,AT89C51是一種功能強(qiáng)、靈活性高且價(jià)格合理的單片機(jī),可方便的應(yīng)用于各種控制領(lǐng)域11。3 、主要特性(1)與MCS-51產(chǎn)品指令系統(tǒng)兼容 (2)4K字節(jié)可編程閃爍存儲(chǔ)器 (3)壽命:1000寫/擦循環(huán)(4)數(shù)據(jù)保存時(shí)間:10年(5)全靜態(tài)工作:0Hz-24Hz(6)三級(jí)程序存儲(chǔ)器鎖定(7)128*8位內(nèi)部RAM(8)32可編程I

16、/O線(9)兩個(gè)16位定時(shí)器/計(jì)數(shù)器(10)6個(gè)中斷源 (11)可編程串行通道(12)低功耗的閑置和掉電模式(13)片內(nèi)振蕩器和時(shí)鐘電路 另外,AT89C51是用靜態(tài)邏輯來(lái)設(shè)計(jì)的,其工作頻率可下降到零并提供兩種軟件的省電方式-空閑方式和掉電方式。在空閑方式中,CPU停止工作。在掉電方式中,片內(nèi)振蕩器停止工作,由于時(shí)鐘被“凍結(jié),使一切功能都暫停,只保存片內(nèi)RAM中的內(nèi)容,直到下次硬件復(fù)位為止。3、 管腳說(shuō)明VCC40:供電電壓,其工作電壓為5V。GND20:接地。P0端口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外

17、部程序數(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口被寫“1時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2

18、口的管腳被外部拉低,將輸出電流。這是由于內(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口管腳是一個(gè)帶有內(nèi)部上拉電阻的8位的雙向I/O端口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入端時(shí),由于外部下拉為低電平,P3口將輸出電流ILL。 P3口也可作為AT89C51的一些特殊功能口,如所示。表2.1 P3端口引

19、腳兼用功能表P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。復(fù)位RST(9):復(fù)位輸入。在振蕩器運(yùn)行時(shí),有兩個(gè)機(jī)器周期24個(gè)振蕩周期以上的高電平出現(xiàn)在此引腳時(shí),將使單片機(jī)復(fù)位,只要這個(gè)腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P3.0-P3.7口均置1,引腳表現(xiàn)為高電平,程序計(jì)數(shù)器和特殊功能存放器SFR全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r(shí),芯片為ROM的00H處開(kāi)始運(yùn)行程序。復(fù)位操作不會(huì)對(duì)內(nèi)部RAM有所影響。ALE/(30):當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振

20、蕩器頻率的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ú)效。 (29):外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指令期間,每個(gè)機(jī)器周期兩次有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的信號(hào)將不出現(xiàn)。EA/VPP(31):當(dāng)保持低電平時(shí),那么在此期間外部程序存儲(chǔ)器0000H-FFFFH,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),將內(nèi)部鎖定為RE

21、SET;當(dāng)端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源VPP。XTAL1(19):反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2(18):來(lái)自反向振蕩器的輸出。其引腳圖如圖3.1所示。圖2.2 AT89C51引腳圖3、 振蕩器特性 XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的上下電平要求的寬度。3.1.4、 芯片擦除整個(gè)PEROM陣

22、列和三個(gè)鎖定位的電擦除可通過(guò)正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms 來(lái)完成。在芯片擦除操作中,代碼陣列全被寫“1且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。3.2、1602字符型液晶顯示液晶顯示器以其微功耗、小體積、使用靈活等諸多優(yōu)點(diǎn)在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。液晶顯示器通??煞譃?/p>

23、兩大類,一類是點(diǎn)陣型,另一類是字符型。點(diǎn)陣型液晶通常面積較大,可以顯示圖形;而一般的字符型液晶只有兩行,面積小,只能顯示字符和一些很簡(jiǎn)單的圖形,簡(jiǎn)單易控制且本錢低。目前市面上的字符型液晶絕大多數(shù)是基于HD44780液晶芯片的,所以控制原理是完全相同的,為HD44780寫的控制程序可以很方便地應(yīng)用于市面上大局部的字符型液晶。字符型LCD通常有14條引腳線(市面上也有很多16條引腳線的LCD,多出來(lái)的2條線是電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣),定義如下表所示: 字符型LCD的引腳定義 引腳號(hào) 引腳名 電平 輸入/輸出 作用 1 Vss 電源地 2 V

24、cc 電源(+5V) 3 Vee 比照調(diào)整電壓 4 RS 0/1 輸入 0=輸入指令 1=輸入數(shù)據(jù) 5 R/W 0/1 輸入 0=向LCD寫入指令或數(shù)據(jù) 1=從LCD讀取信息 6 E 1,10 輸入 使能信號(hào),1時(shí)讀取信息, 10(下降沿)執(zhí)行指令 7 DB0 0/1 輸入/輸出 數(shù)據(jù)總線line0(最低位) 8 DB1 0/1 輸入/輸出 數(shù)據(jù)總線line1 9 DB2 0/1 輸入/輸出 數(shù)據(jù)總線line2 10 DB3 0/1 輸入/輸出 數(shù)據(jù)總線line3 11 DB4 0/1 輸入/輸出 數(shù)據(jù)總線line4 12 DB5 0/1 輸入/輸出 數(shù)據(jù)總線line5 13 DB6 0/1

25、輸入/輸出 數(shù)據(jù)總線line6 14 DB7 0/1 輸入/輸出 數(shù)據(jù)總線line7(最高位) HD44780內(nèi)置了192個(gè)常用字符,存于字符產(chǎn)生器CGROM(Character Generator ROM)中,另外還有幾個(gè)允許用戶自定義的字符產(chǎn)生RAM,稱為CGRAM(Character Generator RAM)。下列圖說(shuō)明了CGROM和CGRAM與字符的對(duì)應(yīng)關(guān)系(由于本書中未用到自定義特殊字符的功能,所以本節(jié)不對(duì)CGRAM作詳細(xì)介紹。以下如未特別說(shuō)明,那么字符碼指CGROM的字符號(hào),地址指DDRAM的地址)。 字符碼0 x000 x0F為用戶自定義的字符圖形RAM(對(duì)于5X8點(diǎn)陣的字符

26、,可以存放8組,5X10點(diǎn)陣的字符,存放4組),0 x200 x7F為標(biāo)準(zhǔn)的ASCII碼,0 xA00 xFF為日文字符和希臘文字符,其余字符碼(0 x100 x1F及0 x800 x9F)沒(méi)有定義。3.3、 AT89C51最小系統(tǒng) AT89C51最小系統(tǒng)接線如下圖,在XTAL1、XTAL2端接上晶振及兩個(gè)諧振電容,在RESET端接上相應(yīng)的電阻、電容,如需要按鍵復(fù)位,加上按鍵即可組成一個(gè)最小系統(tǒng),按要求通電后,系統(tǒng)就可以工作了。 圖2.3 AT89C51最小系統(tǒng)3. 3、電路設(shè)計(jì) 將MUC、LED和按鍵進(jìn)行PROTEUS設(shè)計(jì)。翻開(kāi)PROTEUS的ISIS編輯環(huán)境,從PROTEUS中選取該電路所

27、需要的元器件,放置元器件、放置電源和地、連線得到如圖3.7所示的電氣原理圖,再點(diǎn)菜單欄工具下拉的電氣規(guī)那么檢查,當(dāng)規(guī)那么檢查出現(xiàn):“NETLIST GENERATED OK NO ERC ERRORD FOUND,表示通過(guò)檢查。電路設(shè)計(jì)完成。圖2.4 系統(tǒng)電氣原理圖4、軟件設(shè)計(jì)原理3.1 程序設(shè)計(jì)程序設(shè)計(jì)(Programming)是指設(shè)計(jì)、編制、調(diào)試程序的方法和過(guò)程。它是目標(biāo)明確的智力活動(dòng)。在進(jìn)行微機(jī)控制系統(tǒng)設(shè)計(jì)時(shí),除了系統(tǒng)硬件設(shè)計(jì)外,大量的工作就是如何根據(jù)每個(gè)生產(chǎn)對(duì)象的實(shí)際需要設(shè)計(jì)應(yīng)用程序。因此,軟件設(shè)計(jì)在微機(jī)控制系統(tǒng)設(shè)計(jì)中占重要地位。對(duì)于本系統(tǒng),軟件也占有重要的地位。在單片機(jī)控制系統(tǒng)中,大

28、體上可分為數(shù)據(jù)處理、過(guò)程控制兩個(gè)根本類型。數(shù)據(jù)處理包括:數(shù)據(jù)的采集、數(shù)字濾波、標(biāo)度變換等。過(guò)程控制程序主要是使單片機(jī)按一定的方法進(jìn)行計(jì)算,然后再輸出,以便控制生產(chǎn)。為了完成上述任務(wù),在進(jìn)行軟件設(shè)計(jì)時(shí),通常把整個(gè)過(guò)程分成假設(shè)干個(gè)局部,每一局部叫做一個(gè)模塊。把一個(gè)程序分成具有多個(gè)明確任務(wù)的程序模塊,分別編制、調(diào)試后再把它們連接在一起形成一個(gè)完整的程序,這樣的程序設(shè)計(jì)方法稱為模塊化程序設(shè)計(jì)。所謂“模塊,實(shí)質(zhì)上就是能完成一定功能,并相對(duì)獨(dú)立的程序段,這種程序設(shè)計(jì)方法稱為模塊程序設(shè)計(jì)法14。模塊程序設(shè)計(jì)法的主要優(yōu)點(diǎn)是:(1)單個(gè)模塊比起一個(gè)完整的程序易編寫、調(diào)試及修改。(2)程序的易讀性好。(3)程序的

29、修改可局部化。(4)模塊可以共存,一個(gè)模塊可以被多個(gè)任務(wù)在不同條件下調(diào)用。(5)模塊程序允許設(shè)計(jì)者分割任務(wù)和利用已有程序,為設(shè)計(jì)者提供方便。本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由主程序方式一,方式二,方式三,方式四和延時(shí)等子程序構(gòu)成。3.2 主程序設(shè)計(jì)在系統(tǒng)的程序設(shè)計(jì)中,主控模塊只負(fù)責(zé)根據(jù)消息調(diào)用相應(yīng)模塊的處理函數(shù),具體如何處理這些消息由各功能模塊中的對(duì)應(yīng)程序決定。當(dāng)收到按鍵一按下使P1.0的電平有高電平變成低電平時(shí),主程序就跳到方式一的子函數(shù)執(zhí)行,這樣就實(shí)現(xiàn)了方式一的點(diǎn)亮。當(dāng)收到按鍵二按下使P1.1的電平有高電平變成低電平時(shí),主程序就跳到方式二的子函數(shù)執(zhí)行,這樣就實(shí)現(xiàn)了方式二的點(diǎn)亮。當(dāng)收到按鍵三按下使

30、P1.2的電平有高電平變成低電平時(shí),主程序就跳到方式三的子函數(shù)執(zhí)行,這樣就實(shí)現(xiàn)了方式三的點(diǎn)亮。當(dāng)收到按鍵四按下使P1.3的電平有高電平變成低電平時(shí),主程序就跳到方式四的子函數(shù)執(zhí)行,這樣就實(shí)現(xiàn)了方式四的點(diǎn)亮。當(dāng)收到按鍵四按下使P1.4的電平有高電平變成低電平時(shí),主程序就跳到方式四的子函數(shù)執(zhí)行,這樣就實(shí)現(xiàn)了方式五的點(diǎn)亮軟件設(shè)計(jì)原理流程圖開(kāi) 始P1.0=?P1.1=0?P1.2=0?P1.3=0?P1.4=0?方式0亮燈方式二亮燈方式一亮燈長(zhǎng)跳轉(zhuǎn)到Start方式三亮燈方式四亮燈初始化液晶顯示4.1、系統(tǒng)程序:預(yù)命令#include #include 定義端口sbit rs= P20;sbit rw

31、= P21;sbit ep = P22;sbit p10=0 x90;sbit p11=0 x91;sbit p12=0 x92;sbit p13=0 x93;sbit p24=0 xA4;sbit p14=0 x94;sbit p25=0 xA5;sbit p26=0 xA6;sbit p27=0 xA7;定義三個(gè)數(shù)組用以賦值液晶顯示unsigned char code dis18 = 12345678;unsigned char code dis28 = 18273645;unsigned char code dis38 = 87654321;延時(shí)子程序void delay(unsigne

32、d char ms)unsigned char i;while(ms-)for(i = 0; i 250; i+)_nop_();_nop_();_nop_();_nop_();判斷LCD是否忙碌,忙碌那么返回“1;否那么為“0bit lcd_bz()bit result;rs = 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0 & 0 x80);ep = 0;return result;給液晶顯示寫控制命令void lcd_wcmd(unsigned char cmd) /寫指令while(lcd_bz();

33、/判斷LCD是否忙碌rs = 0;rw = 0; /re=0,rw=1;e為正脈沖ep = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;void lcd_pos(unsigned char pos) /顯示位置轉(zhuǎn)換程序lcd_wcmd(pos | 0 x80); /顯示第一行的地址是0 x08,第二行的是0 xc0。給液晶顯示數(shù)據(jù)顯示內(nèi)容void lcd_wdat(unsigned char dat) /寫數(shù)據(jù)while(lcd_

34、bz();/判斷LCD是否忙碌rs = 1;rw = 0;ep = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;初始化液晶顯示void lcd_init() /初始化lcdlcd_wcmd(0 x38);delay(1);lcd_wcmd(0 x0c);delay(1);lcd_wcmd(0 x06);delay(1);lcd_wcmd(0 x01); /清屏delay(1);主程序void main(void)unsigned char i;lcd_init(

35、);/ 初始化LCDdelay(10);i=0; p27=0;p26=0;p25=0;p24=0;開(kāi)始按鍵按下時(shí),執(zhí)行下程序if(p10=0)while(1) if(p12=1&p13=1) switch(i)case(0):P3=0 x01;p27=0;p26=0;p25=0;p24=1; break;case(1):P3=0 x02;p27=0;p26=0;p25=1;p24=0;break;case(2):P3=0 x04;p27=0;p26=0;p25=1;p24=1;break;case(3):P3=0 x08;p27=0;p26=1;p25=0;p24=0;break;case(4

36、):P3=0 x10;p27=0;p26=1;p25=0;p24=1;break;case(5):P3=0 x20;p27=0;p26=1;p25=1;p24=0;break;case(6):P3=0 x40;p27=0;p26=1;p25=1;p24=1;break;case(7):P3=0 x80;p27=1;p26=0;p25=0;p24=0;break;lcd_pos(0 x01);lcd_wdat(dis1i);i+;開(kāi)始賦值P3口和數(shù)碼管數(shù)組1給液晶顯示I+開(kāi)始按鍵按下YN當(dāng)顯只有示1按鍵按下時(shí),執(zhí)行下程序if (p12=0&p13=1) switch(i)case(0):P3=0

37、 x01;p27=0;p26=0;p25=0;p24=1;break;case(1):P3=0 x80;p27=1;p26=0;p25=0;p24=0;break;case(2):P3=0 x02;p27=0;p26=0;p25=1;p24=0;break;case(3):P3=0 x40;p27=0;p26=1;p25=1;p24=1;break;case(4):P3=0 x04;p27=0;p26=0;p25=1;p24=1;break;case(5):P3=0 x20;p27=0;p26=1;p25=1;p24=0;break;case(6):P3=0 x08;p27=0;p26=1;p

38、25=0;p24=0;break;case(7):P3=0 x10;p27=0;p26=1;p25=0;p24=1;break;lcd_pos(0 x01);lcd_wdat(dis2i);i+;賦值P3口和數(shù)碼管數(shù)組2給液晶顯示I+當(dāng)顯只有示1按鍵按下YNN當(dāng)只有顯示2按鍵按下時(shí),執(zhí)行下程序if (p12=1&p13=0) switch(i)case(0):P3=0 x80;p27=1;p26=0;p25=0;p24=0;break;case(1):P3=0 x40;p27=0;p26=0;p25=1;p24=1;break;case(2):P3=0 x20;p27=0;p26=1;p25=

39、1;p24=0;break;case(3):P3=0 x10;p27=0;p26=1;p25=0;p24=1;break;case(4):P3=0 x08;p27=0;p26=1;p25=0;p24=0;break;case(5):P3=0 x04;p27=0;p26=0;p25=1;p24=1;break;case(6):P3=0 x02;p27=0;p26=0;p25=1;p24=0;break;case(7):P3=0 x01;p27=0;p26=0;p25=0;p24=1;break;lcd_pos(0 x01);lcd_wdat(dis3i);i+;賦值P3口和數(shù)碼管數(shù)組3給液晶顯示

40、I+只有顯示2按鍵按下YYNdelay(150);當(dāng)暫停按鍵按下時(shí),不做任何處理while(p11=0);/暫停語(yǔ)句暫停按鍵按下NNY當(dāng)停止按鍵按下時(shí)while(p14=0)P3=0 x00; p27=0;p26=0;p25=0;p24=0;lcd_wcmd(0 x01); /清屏delay(1);if(i=8)i=0;賦0值P3口和數(shù)碼管清屏液晶顯示延時(shí)停止按鍵按下YYN5、電路仿真5.1、仿真結(jié)果PROTEUS軟件自帶編輯器,可以實(shí)現(xiàn)對(duì)匯編程序的編譯,其操作步驟是:1.新建源文件:點(diǎn)菜單SourceAdd/Remove source Files在出現(xiàn)的對(duì)話框中,選擇ASEM51編輯器,新建

41、NOMAME1.asm 源文件。2.程序設(shè)計(jì):點(diǎn)菜單SourceNAMAME1.asm翻開(kāi)源文件編輯器,將將附錄程序輸入到文本中。 3.源程序編譯:點(diǎn)菜單SourceBuild ALL編譯匯編源程序,生成目標(biāo)代碼文件PMD.HEX,假設(shè)編譯失敗,可對(duì)程序進(jìn)行修改調(diào)試直至編譯成功。4.目標(biāo)代碼加載:在PROTEUS編輯環(huán)境雙擊AT89C51,彈出如圖4.6所示的對(duì)話框,在PROGRAM FILE一欄中單擊翻開(kāi)按鈕,選中NOMAME1.HEX文件。在CLOCK FREQUENCY欄中設(shè)置系統(tǒng)工作頻率為12MHZ,單擊OK完成目標(biāo)代碼加載。圖3.8 程序代碼加載1.最后,點(diǎn)擊運(yùn)行按鈕,啟動(dòng)系統(tǒng)仿真.

42、2.仿真結(jié)果如下圖。當(dāng)按開(kāi)始鍵時(shí)3.當(dāng)按停止鍵按下時(shí)仿真結(jié)果如下圖。4.當(dāng)顯示1鍵按下時(shí)仿真結(jié)果如圖5.當(dāng)顯示2鍵按下時(shí)仿真結(jié)果如圖6.當(dāng)暫停鍵按下時(shí)仿真結(jié)果如圖3.2、仿真結(jié)果分析通過(guò)對(duì)上述模塊的仿真,可以看出基于單片機(jī)控制的節(jié)日彩燈在PROTEUS軟件上可以很好的實(shí)現(xiàn)各種變換把戲的仿真。 當(dāng)仿真開(kāi)始運(yùn)行時(shí),各個(gè)模塊處于初始狀態(tài)。當(dāng)有按鍵觸發(fā)后,主程序跳到相應(yīng)的彩燈閃亮方式循環(huán)閃亮。因此,從仿真結(jié)果可以看出,本設(shè)計(jì)可以得到預(yù)期的仿真效果。6、小結(jié)通過(guò)這次單片機(jī)課程設(shè)計(jì),我了解到自己在單片機(jī)方面還有很多缺乏,特別是單片機(jī)指令系統(tǒng)及AT89C51各引腳的第二功能等等知識(shí)不夠了解.因此我在設(shè)計(jì)中遇

43、到不懂的東西就馬上查資料或請(qǐng)教同學(xué).這不僅加深了我對(duì)單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新可以是在原有的根底上進(jìn)行改良,使之功能不斷完善,成為真己的東西。 這個(gè)設(shè)計(jì)過(guò)程中,我們要實(shí)現(xiàn)彩燈的多功能化,老師平時(shí)指導(dǎo)我們將程序模塊化,首先實(shí)現(xiàn)一個(gè)功能,接著逐個(gè)地添加功能,最后到達(dá)多功能化.有了明確的方向后,我們開(kāi)始認(rèn)真的搞我們的課程設(shè)計(jì).這個(gè)過(guò)程中,我們花費(fèi)了大量的時(shí)間和精力,同時(shí)還懂得合作精神的重要性,學(xué)會(huì)了與他人合作,不懂的不明白的就要和同學(xué)們交流,這樣學(xué)習(xí)才更有樂(lè)趣。在課程設(shè)計(jì)過(guò)程中,不斷調(diào)試程序和修改程序,提

44、高了對(duì)單片機(jī)的應(yīng)用能力,分析問(wèn)題和解決問(wèn)題的能力。在和同學(xué)們交流的同時(shí)也明白了做任何事情都要有團(tuán)結(jié)合作的精神,只有這樣才能更快更好的掌握好要學(xué)習(xí)的知識(shí)。參 考 文 獻(xiàn)列出你所利用的參考文獻(xiàn)。格式參見(jiàn)下。1 張毅剛主編,單片機(jī)原理及應(yīng)用,北京:高等教育出版社,20042 陳濤編著,單片機(jī)應(yīng)用及C51程序設(shè)計(jì),北京:機(jī)械工業(yè)出版社,20213 周潤(rùn)景主編,PROTEUS入門實(shí)用教程,北京:機(jī)械工業(yè)出版社,20074 皮大能主編,單片機(jī)課程設(shè)計(jì)指導(dǎo)書,北京:北京理工大學(xué)出版社,20215 樓然苗主編, 單片機(jī)實(shí)驗(yàn)與課程設(shè)計(jì)Proteus仿真版,浙江:浙江大學(xué)出版社, 2021 7 控制、電子技術(shù)類雜

45、志、報(bào)刊附錄#include #include sbit rs= P20;sbit rw = P21;sbit ep = P22;sbit p10=0 x90;sbit p11=0 x91;sbit p12=0 x92;sbit p13=0 x93;sbit p24=0 xA4;sbit p14=0 x94;sbit p25=0 xA5;sbit p26=0 xA6;sbit p27=0 xA7;unsigned char code dis18 = 12345678;unsigned char code dis28 = 18273645;unsigned char code dis38 = 8

46、7654321;void delay(unsigned char ms)unsigned char i;while(ms-)for(i = 0; i 250; i+)_nop_();_nop_();_nop_();_nop_();bit lcd_bz()bit result;rs = 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0 & 0 x80);ep = 0;return result;void lcd_wcmd(unsigned char cmd) /寫指令while(lcd_bz();/判斷LCD是否忙

47、碌rs = 0; rw = 0; /re=0,rw=1;e為正脈沖ep = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();ep = 1; _nop_();_nop_();_nop_();_nop_();ep = 0;void lcd_pos(unsigned char pos) /顯示位置轉(zhuǎn)換程序lcd_wcmd(pos | 0 x80); /顯示第一行的地址是0 x08,第二行的是0 xc0。void lcd_wdat(unsigned char dat) /寫數(shù)據(jù)while(lcd_bz();/判斷LCD是否忙碌rs = 1;rw = 0;ep = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;void lcd_init() /初始化lcdlcd_wcmd(0 x38);delay(1);lcd_wcmd(0 x0c);delay(1);lcd_wcmd(0 x06);delay(1);lcd_wcmd(0 x0

溫馨提示

  • 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)論