畢業(yè)設(shè)計(論文)基于單片機的電子時鐘設(shè)計2_第1頁
畢業(yè)設(shè)計(論文)基于單片機的電子時鐘設(shè)計2_第2頁
畢業(yè)設(shè)計(論文)基于單片機的電子時鐘設(shè)計2_第3頁
畢業(yè)設(shè)計(論文)基于單片機的電子時鐘設(shè)計2_第4頁
畢業(yè)設(shè)計(論文)基于單片機的電子時鐘設(shè)計2_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘要 電子時鐘在日常生活中隨處可見,應(yīng)用比較廣泛?;趩纹瑱C控制的電子時鐘具有計時精準,制作成本低等優(yōu)點。因此擁有比較高的實用性。本系統(tǒng)的電子時鐘以單片機為核心,通過1602液晶顯示時間。同時還有3個按鍵來調(diào)節(jié)時間,分別為功能鍵,增大鍵和減小鍵。源程序代碼是在keil軟件的環(huán)境下編寫完成。關(guān)鍵詞:單片機 液晶 keil軟件 at89c51 abstract the clock in daily life everywhere, apply more extensive. based on single-chip microcomputer control of electronic timin

2、g accurate, has made the clock low cost etc. thus possess higher practicability.this system of electronic clock based on singlechip, by 1602 lcd display time. at the same time also has 3 buttons to adjust the time, respectively function keys, increase keys and reduce keys. source code is keil softwa

3、re environment in writing complete.keywords: microcontroller lcd keil software at89c51目錄第一章 緒論11.1 概述11.1.1 本設(shè)計電子時鐘的功能11.1.2單片機概念11.1.3單片機應(yīng)用系統(tǒng)11.1.4單片機的應(yīng)用領(lǐng)域11.1.5單片機的應(yīng)用特點21.1.6單片機產(chǎn)品21.2電子時鐘介紹2第二章 硬件特性42.1 at89c51單片機42.1.1單片機標號信息及封裝類型42.2 1602 液晶52.3 蜂鳴器7第三章 系統(tǒng)設(shè)計83.1 單片機電路設(shè)計83.2 外圍電路設(shè)計9第四章 程序設(shè)計與調(diào)試114

4、.1 keil軟件介紹114.2 中斷服務(wù)程序114.3鍵盤掃描程序114.4 液晶顯示程序124.5 總程序與系統(tǒng)調(diào)試124.5.1 系統(tǒng)調(diào)試15 4.5.2 程序清單.17結(jié) 論23致 謝24參考文獻:25第一章 緒論1.1 概述1.1.1 本設(shè)計電子時鐘的功能設(shè)計是基于單片機控制,液晶顯示的時鐘,以at單片機為核心驅(qū)動1602液晶,分別顯示時,分,秒,并且按秒實時更新,還有整點提示功能。同時設(shè)置了功能選擇鍵,數(shù)字增大鍵,數(shù)字減小鍵,按一下功能鍵光標則在秒位置閃爍,按兩下則在分位置,按三下則在時位置,在按鍵的同時蜂鳴器發(fā)出“滴”的聲音來告知用戶有鍵按下。只有當按下功能選擇鍵后,數(shù)字增大鍵和

5、數(shù)字減少鍵才會有效,從而避免用戶的誤操作而影響時鐘的精度。液晶的背光亮度和數(shù)字顯示的清晰度也可以通過調(diào)節(jié)滑動變阻器來調(diào)節(jié),這可以有效的保護液晶的使用壽命,減少電能的損耗。1.1.2單片機概念單片機是單片微型計算機scmc(single chip micro computer)的譯名簡稱,它是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器cpu隨機存儲器ram、只讀存儲器rom、多種i/o口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、a/d轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機系統(tǒng)。由于它完全做嵌入式應(yīng)用,

6、故又稱為嵌入式微控制器(embedded microcontroller)。國際上常把單片微機稱為微控制器mcu(micro controller unit)。而在國內(nèi)通常習(xí)慣稱為“單片微機”或“單片機”。1.1.3單片機應(yīng)用系統(tǒng)在實際應(yīng)用中,需要以單片機芯片為核心擴展外圍電路和外圍芯片,構(gòu)成具有應(yīng)用功能的計算機系統(tǒng),稱為單片機系統(tǒng)。單片機應(yīng)用系統(tǒng)包括以下3個組成部分: 信號傳感裝置:相當于人的感知器官,感受外界的相關(guān)信息。 執(zhí)行機構(gòu):相當于人的手足,做出具體動作。 單片機系統(tǒng):相當于人的大腦,接受信號傳感裝置收集到的各種信息,進行計算、比較、判斷等處理,并向執(zhí)行機構(gòu)發(fā)出動作命令。顯然單片機是

7、整個系統(tǒng)的核心,具有一定的智力功能,是完成系統(tǒng)工作、實現(xiàn)系統(tǒng)功能的關(guān)鍵。1.1.4單片機的應(yīng)用領(lǐng)域 目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能ic卡,民用豪華轎車的安全保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械了。因此,單片機的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計算機應(yīng)用與智能化控制的科學(xué)家、工程師。 1.在智能儀器儀表上的應(yīng)用 單片機具有體積小、功耗低

8、、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強大。例如精密的測量設(shè)備(功率計,示波器,各種分析儀)。 2.在工業(yè)控制中的應(yīng)用 用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。 3.在家用電器中的應(yīng)用 可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、電冰箱

9、、空調(diào)機、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。 4.在計算機網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。 5.單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 單片機在醫(yī)用設(shè)備中的用途亦相當廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。 此外,單片機在工商,金融,科研、教育,國防航空航天等領(lǐng)

10、域都有著十分廣泛的用途 1.1.5單片機的應(yīng)用特點面向控制 在線應(yīng)用 嵌入式應(yīng)用1.1.6單片機產(chǎn)品 通用型單片機是由專門單片機芯片廠家生產(chǎn)的供廣大用戶選擇使用的具有基本功能的芯片,性能全面,適應(yīng)性強,能滿足多種控制的需要。但使用時用戶必須進行二次開發(fā)設(shè)計。目前世界上通用單片機芯片的主要有: stc單片機 pic單片機 emc單片機 atmel單片機(51單片機) phlipis 51plc系列單片機(51單片機) holtek單片機 ti公司單片機(51單片機) 松翰單片機(sonix)。 1.2電子時鐘介紹電子鐘是一種利用數(shù)字電路來顯示秒、分、時的計時裝置,與傳統(tǒng)的機械鐘相比,它具有走時準

11、確、顯示直觀、無機械傳動裝置等優(yōu)點,因而得到廣泛應(yīng)用。隨著人們生活環(huán)境的不斷改善和美化,在許多場合可以看到數(shù)字電子鐘。數(shù)字電子鐘除了在城市的主要營業(yè)場所、車站、碼頭等公共場所使用,還可以改裝在摩托車和汽車上,lcd顯示,帶藍色背光,白天在太陽光下也能非常清楚的看到顯示時間,關(guān)鑰匙可以關(guān)閉藍色背光,時間還能顯示也不會清零,因lcd的顯示耗電量很省的,所以一直工作也不必擔心耗電問題。在騎摩托車時,為了看時間,先要停下車子,取出手機,才能看時間,是否有點麻煩,現(xiàn)在車上改裝了一個藍色背光的液晶電子鐘后,不管白天黑夜色,隨時可以看時間,非常方便。第2章 硬件特性2.1 at89c51單片機2.1.1單片

12、機標號信息及封裝類型 1、單片機標號信息 本系統(tǒng)是以atmel公司生產(chǎn)的單片機為控制芯片,芯片上的全部標號為at89c51。 at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。2、單

13、片機外部引腳介紹 vcc:供電電壓。 gnd:接地。 p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p0口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。 p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接

14、收。 p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。 p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”

15、后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口,p3.0 rxd(串行輸入口);p3.1 txd(串行輸出口);p3.2 /int0(外部中斷0);p3.3 /int1(外部中斷1);p3.4 t0(記時器0外部輸入);p3.5 t1(記時器1外部輸入);p3.6 /wr(外部數(shù)據(jù)存儲器寫選通);p3.7 /rd(外部數(shù)據(jù)存儲器讀選通);p3口同時為閃爍編程和編程校驗接收一些控制信號。 rest:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持rst腳兩個機器周期的高電平時間。 ale/p

16、rog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部

17、數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。 /ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。 3、振蕩器的特性: xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,xtal2應(yīng)不接。有

18、余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。2.2 1602 液晶在日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通過器件,如在計算器、萬用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專用符號和圖形。液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字攝像機、pda移動通信工具等眾多領(lǐng)域。在單片機系統(tǒng)中應(yīng)用晶液顯示器作為輸

19、出器件有以下幾個優(yōu)點: (1)顯示質(zhì)量高由于液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(crt)那樣需要不斷刷新新亮點。因此,液晶顯示器畫質(zhì)高且不會閃爍。 (2)數(shù)字式接口液晶顯示器都是數(shù)字式的,和單片機系統(tǒng)的接口更加簡單可靠,操作更加方便。 (3)體積小、重量輕 液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。 (4)功耗低 相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動ic上,因而耗電量比其它顯示器要少得多。lcd1602主要技術(shù)參數(shù):顯示容量.l6x2個字符芯片工作電壓.4.

20、55. 5v工作電流.2. om a (5. ov)模塊最佳工作電壓.5. ov字符尺寸.2. 95x4. 35 (wxh) mm接口信號說明:編號符號引腳說明編號符號引腳說明1vss電源地9d2data i/ 02vdd電源正極10d3data i/ 03vl液晶顯示偏壓信號11d4data i/ 04rs數(shù)據(jù)/命令選擇端(h/l)12d5data i/ 05r/w讀/寫選擇端 (h/l)13d6data i/ 06e使能信號14d7data i/ 07d0data i/ 015bla背光源正極8d1data i/ 016blk 背光源負極控制器接口說明:(1) 基本操作時序: 讀狀態(tài) 輸入

21、:rs=l,r/w=h,e=h 輸出: d0d7=狀態(tài)字。讀數(shù)據(jù) 輸入:rs=h, r/w=h,e=h 輸出: d0d7=數(shù)據(jù)。寫指令 輸入:rs=l,r/w=l,d0d7=指令碼,e=高脈沖 輸出:無。寫數(shù)據(jù) 輸入:rs=h,r/w=l,d0d7=數(shù)據(jù),e=高脈沖 輸出:無。(2)數(shù)據(jù)指針設(shè)置 指令碼 功能80h+地址碼(027h,4067h) 設(shè)置數(shù)據(jù)地址指針(3)其它設(shè)置 指令碼 功能 01h 顯示清屏: 數(shù)據(jù)指針清0,所有顯示清0 02h顯示回車: 數(shù)據(jù)指針清0 指令說明 (1)顯示設(shè)置 指令碼 功能00111000設(shè)置162顯示,57點陣,8位數(shù)據(jù)接口 (2)顯示開/關(guān)光標設(shè)置 指令

22、碼功能00001dcbd=1 開顯示 ; d=0 關(guān)顯示c=1 顯示光標;c=0 不顯示光標b=1 光標閃爍;b=0 光標不閃爍000001ncn=1 當讀或?qū)懸粋€字符后地址指針加一,且光標加一n=0 當讀或?qū)懸粋€字符后地址指針減一,且光標減一s=1 當顯示一個字符,整屏顯示左移2.3 蜂鳴器蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。 ;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“h”或“ha”(舊標準用“fm”、“l(fā)b”、“jd”等)表示。在本設(shè)計中

23、采用的是5v有源蜂鳴器。第三章 系統(tǒng)設(shè)計3.1 單片機電路設(shè)計單片機工作要工作需要有電源,晶振電路,復(fù)位電路,來構(gòu)成一個最小系統(tǒng)。在本系統(tǒng)中電源采用usb供電,隨著科技的進步各種電子產(chǎn)品的不斷出現(xiàn)如mp3、mp4、psp和我們?nèi)粘J褂玫氖謾C等產(chǎn)品,它們都自帶的充電器。因此,本系統(tǒng)就采用了輸出電壓為5v的mp4充電器通過usb口的連接來為單片機提供工作電源,如圖3-1所示,這比我們自己搭建的電源穩(wěn)定性高,安全可靠。圖3-1 usb電源 同時由于本設(shè)計是時鐘,為了方便計算我們就選用了12mhz的晶振,再通過兩個30pf的電容來構(gòu)成晶振電路,如圖3-2所示。圖3-2 晶振電路單片機的復(fù)位電路通常有上

24、電復(fù)位電路,電平復(fù)位和脈沖復(fù)位,本設(shè)計采用了電平復(fù)位電路,選用的元器件有1k,10k的電阻,10f的電容,如圖3-3所示。圖3-3復(fù)位電路通過這3大部分的組建大體構(gòu)成了單片機的最小應(yīng)用系統(tǒng)。3.2 外圍電路設(shè)計搭建完單片機最小系統(tǒng)后,就可以擴展外圍電路。在外圍電路中最主要的是1602液晶與單片機的連接,要按照液晶的引腳說明來連接以防液晶的損壞和無法正常工作。其次有按鍵控制的蜂鳴器電路。至此,整個系統(tǒng)的硬件電路基本搭建完成。如圖所示3-4。由于p0口內(nèi)部沒有上拉電阻,所以在p0口外部加了一個10k的排阻。同時在液晶的3,15引腳分別連接10k的電位器,3腳的是能調(diào)節(jié)液晶顯示的偏壓信號從而正常顯示

25、出字符,15腳的是為了能調(diào)節(jié)液晶的背光源亮暗。蜂鳴器采用的是5v有源蜂鳴器,通過9012三極管和限流電阻構(gòu)成回路。圖3- 4外部接線 第四章 程序設(shè)計與調(diào)試4.1 keil軟件介紹單片機開發(fā)中出必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要邊成cpu可以執(zhí)行的機器碼有兩種方法,一中是手工匯編,另一種是機器匯編,目前已經(jīng)極少使用匯編的方法了。機器匯編是通過匯編軟件將源程序變成機器碼,用于mcs-51單片機的匯編軟件有早期的a51,隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普通使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也不斷發(fā)展,keil軟件是目前最流行開發(fā)mcs-51系列單片機的軟件,這

26、從近年來個仿真機廠商紛紛宣布全面支持keil即可看出。keil c51是美國keil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用c來開發(fā),體會更加深刻。 keil c51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全windows界面。keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,同過一個集成開發(fā)環(huán)境(uvision)將這些部分組合在一起。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到keil c51生

27、成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。4.2 中斷服務(wù)程序在本設(shè)計中我們采用的是單片機的定時器中斷來準確的控制時鐘的精度,定時器系統(tǒng)是單片機內(nèi)部一個獨立的硬件部分,它與cpu和晶振通過某些控制線連接并相互作用的,cpu一旦開啟定時功能后,定時器便在晶振的作用下自動開始計時,當定時器的計數(shù)計滿后,會產(chǎn)生中斷,即通知cpu該如何處理。在寫單片機的定時程序時,在程序開始處需要對定時器及中斷寄存器做初始化設(shè)置。(1)對tmod賦值,以確定t0和t1的工作方式。(2)計算初值,并將初值寫入tho、tlo和th1、tl1.(3)中斷方式時

28、,則對ie賦值,開放中斷。(4)使tr0或tr1置位,啟動定時器/計數(shù)器定時或計數(shù)。在本系統(tǒng)中我們采用了定時器0工作方式1來定時50ms的時間。void t0_time() interrupt 1 tho=(65536-50000)/256; tl0(65536-50000)%256; 4.3鍵盤掃描程序 按鍵過程中遇到的最大問題是抖動,在按鍵被按下和釋放的過程中都會出現(xiàn)抖動現(xiàn)象,而這個抖動對我們的系統(tǒng)產(chǎn)生了負面影響,我們一般都采用延時電路來消除按鍵抖動。同時在編寫程序時采用當按鍵釋放時執(zhí)行相應(yīng)程序。具體程序?qū)⒃诤竺嬖敿毩谐觥?.4 液晶顯示程序在前面已經(jīng)對1602液晶做了介紹,液晶程序大體分

29、為3個部分:(1)初始化;(2)寫命令函數(shù);(3)寫數(shù)據(jù)函數(shù)。初始化程序:void init (): write_com(0x38);/設(shè)置162顯示,57點陣,8位數(shù)據(jù)接口 write_com(0x0c);/設(shè)置開顯示,不顯示光標 write_com(0x06);/寫一個數(shù)據(jù)后地址指針加1 write_com(0x01);/顯示清0,數(shù)據(jù)指針清04.5 總程序與系統(tǒng)調(diào)試4.5.1程序流程介紹整個程序由主程序和多個子程序組成,子程序有延時程序,初始化程序,中斷程序,液晶顯示程序,按鍵掃描程序和蜂鳴器發(fā)聲程序。程序從主函數(shù)開始執(zhí)行先進行初始化然后就是進入按鍵掃描循環(huán)其中按鍵掃描程序較為復(fù)雜。主程

30、序(如圖4-1),主要子程序流程(如圖4-2)和掃描流程圖(4-3)所示。圖41 主程序流程 圖4-2 中斷程序流程 按鍵掃描流程圖4-34.5.1系統(tǒng)調(diào)試用stc-isp軟件進行固件程序下載。stc單片機是一種功能很強的單片機,可以通過串口直接進行isp程序下載,免去編程器的麻煩,而且下載速度快!mcs與stc兼容。所以這里我們可以選擇stc-isp軟件進行程序下載。下載、運行界面如圖(4-4)所示。進入stc-isp下載界面后,打開文件,然后選擇設(shè)置串行口。準備好后,先點下載按鈕再mcu上電復(fù)位,冷啟動。這樣就可以下載了。下載成功以后,經(jīng)過調(diào)試,單片機實驗板能正常響應(yīng),能獨立控制外圍部分元

31、件工作。圖4-4 stc-isp界面圖4-5 屬性選擇圖4-6 stc-isp運行圖 在調(diào)試過程中電源指示燈亮但無液晶顯示,在檢查硬件電路無誤的情況下,取下單片機,調(diào)節(jié)液晶15腳上的電位器背光燈逐漸亮起來,同時調(diào)節(jié)3腳的電位器液晶顯示屏上逐漸顯示出黑色的小方塊,至此液晶基本調(diào)試正常。關(guān)閉電源開關(guān),插入單片機檢查各元件已經(jīng)可靠連接后再次打開電源開關(guān),液晶屏上則能正確顯示時,分,秒并且按一秒的時間正常運行。按下功能鍵后光標在秒位置閃爍,此時按下增大鍵則秒加一,當秒顯示59時按下增大鍵后秒顯示0,按下減小鍵后秒則從0又變?yōu)榱?9,同樣調(diào)試分和時也能達到設(shè)計的要求,且在整點時和當有鍵按下時蜂鳴器發(fā)出了

32、滴的聲音。 經(jīng)過調(diào)試,達到了設(shè)計的全部要求。4.5.2 程序清單#include#define uchar unsigned char #define uint unsigned intsbit rs=p20;/位聲明sbit lcden=p21;sbit s3=p22;sbit s4=p23;sbit s5=p24;sbit beep=p25;uchar count,s3num;char miao,fen,shi;uchar code table = 00:00:00;void delay(uint z)/延時函數(shù)(t=z1ms)uint x,y;for(x=z;x0;x-)for(y=12

33、0;y0;y-);void di()/蜂鳴器發(fā)生函數(shù)beep=0;delay(100);beep=1;void write_com(uchar com)/液晶寫命令函數(shù)rs=0;lcden=0;p0=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)/液晶寫數(shù)據(jù)函數(shù)rs=1;lcden=0;p0=date;delay(5);lcden=1;delay(5);lcden=0;void init()/初始化函數(shù)uchar num;lcden=0;write_com(0x38);write_com(0x0c);write

34、_com(0x06);write_com(0x01);write_com(0x80+0x40);/定義寫入的首地址for(num=0;num12;num+)write_date(tablenum);delay(5);tmod=0x01;/設(shè)定定時器0工作模式1th0=(65536-50000)/256;/裝定時器初值tl0=(65536-50000)%256;ea=1;/開總中斷et0=1;/開定時器0中斷tr0=1;/啟動定時器0void write_sfm(uchar add,uchar date)/寫時間函數(shù)uchar shi,ge;shi=date/10;/取十位ge=date%10;

35、/取個位write_com(0x80+0x40+add);/顯示位置write_date(0x30+shi);/送去液晶顯示十位write_date(0x30+ge);/ 送去液晶顯示個位void keyscan()/鍵盤掃描函數(shù)if(s3=0)/檢測是否有功能鍵按下delay(5);if(s3=0)/確定功能鍵按下s3num+;while(!s1);/判斷功能鍵是否釋放di();/蜂鳴器響if(s3num=1)功能鍵按下一次tr0=0;/關(guān)閉定時器write_com(0x80+0x40+10);/光標移到秒位置write_com(0x0f);/光標閃爍if(s3num=2)/ 功能鍵按下兩次

36、write_com(0x80+0x40+7);if(s3num=3)/ 功能鍵按下三次write_com(0x80+0x40+4);if(s3num=4)/ 功能鍵按下四次s3num=0;/計數(shù)清0write_com(0x0c);/取消光標閃爍tr0=1/打開定時器,進入正常計時if(s3num!=0)/只有當功能鍵按下后,增大減小鍵才會有效if(s4=0)delay(5);if(s4=0)/增大鍵確認被按下while(!s2);di();if(s3num=1)/若功能鍵第一次按下miao+;/秒加1if(miao=60)/如果秒等于60miao=0;/秒清0write_sfm(10,miao

37、);/送去液晶顯示write_com(0x80+0x40+10);/顯示位置重新回到調(diào)節(jié)處if(s3num=2)/若功能鍵第二次按下fen+;/分加1if(fen=60)/如果分等于60fen=0;/分清0write_sfm(7,fen);write_com(0x80+0x40+7);if(s3num=3)/若功能鍵第三次按下shi+;/時加1if(shi=24)/ 如果時等于24shi=0;/時清0write_sfm(4,shi);write_com(0x80+0x40+4);if(s5=0)delay(5);if(s5=0)/確認減小鍵按下while(!s5);di();if(s3num=1)miao-;if(miao=-1)miao=59;write_sfm(10,miao);write_com(0x80+0x40+10);if(s3num=2)fen-;if(fen=-1)fen=59;write_sfm(7,fen);write_com(0x80+0x40+7);if(s3num=3)shi-;if(shi=-1)shi=23;wri

溫馨提示

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

評論

0/150

提交評論