




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)(論文)題 目名稱 基于89C52的電子時(shí)鐘 課 程 名 稱單片機(jī)原理及應(yīng)在電氣測(cè)控學(xué)科中的應(yīng)用學(xué)生姓名學(xué)號(hào)系 、專 業(yè) 電氣工程 10自動(dòng)化 指導(dǎo)教師 朱群峰 2012年6月1日摘 要電子鐘是一種利用數(shù)字電路來(lái)顯示秒、分、時(shí)的計(jì)時(shí)裝置,與傳統(tǒng)的機(jī)械鐘相比,它具有走時(shí)準(zhǔn)確、顯示直觀、無(wú)機(jī)械傳動(dòng)裝置等優(yōu)點(diǎn),因而得到廣泛應(yīng)用。隨著人們生活環(huán)境的不斷改善和美化,在許多場(chǎng)合都用到電子時(shí)鐘?,F(xiàn)在高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LCD顯示
2、器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí)、分、秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。本課程設(shè)計(jì)就是用一塊89C52單片機(jī)和一塊LCD1602液晶顯示屏及其他元器件設(shè)計(jì)出一個(gè)電子時(shí)鐘。用單片機(jī)的定時(shí)器來(lái)產(chǎn)生時(shí)鐘信號(hào),用液晶顯示屏來(lái)顯示時(shí)鐘的變化,通過(guò)掃描幾個(gè)按鍵來(lái)控制時(shí)鐘。把這幾個(gè)模塊的程序及原理圖設(shè)計(jì)好后組合在一起就成了一個(gè)電子時(shí)鐘。關(guān)鍵詞:89C52單片機(jī);LCD1602液晶;定時(shí)器;石英晶體振蕩器。目錄摘要. I1電子時(shí)鐘總體設(shè)計(jì).11.1設(shè)計(jì)任務(wù)與要求.11.2方案設(shè)計(jì)與論證.12單片機(jī)應(yīng)用系統(tǒng)簡(jiǎn)介22.1單片機(jī)結(jié)構(gòu).22.2單片機(jī)的封裝形式,引腳定義
3、及功能.32.3定時(shí)/計(jì)數(shù)器.42.4 鍵盤(pán)接口技術(shù).52.5 復(fù)位操作.82.6顯示控制模塊.83硬件電路設(shè)計(jì)133.1 電子時(shí)鐘的原理圖133.2單元電路設(shè)計(jì)134軟件設(shè)計(jì)174.1 系統(tǒng)主程序設(shè)計(jì)174.2 主程序清單194.3 系統(tǒng)調(diào)試245 結(jié)論與心得25參考文獻(xiàn).26附錄.27致謝.301 電子時(shí)鐘總體設(shè)計(jì)1.1 設(shè)計(jì)任務(wù)與要求設(shè)計(jì)要求:熟悉單片機(jī)的I/O口原理;掌握LED驅(qū)動(dòng)電路和LED顯示的原理;掌握定時(shí)計(jì)數(shù)器的使用。設(shè)計(jì)任務(wù):設(shè)計(jì)一個(gè)電子時(shí)鐘,要求實(shí)時(shí)顯示時(shí)間(時(shí)鐘/分鐘/秒鐘)要求可以通過(guò)按鍵設(shè)置當(dāng)前時(shí)間。1、要求設(shè)計(jì)出電氣原理圖;2、要求設(shè)計(jì)出程序流程圖和程序;3、要求設(shè)
4、計(jì)出實(shí)物仿真模擬調(diào)試;4、用C語(yǔ)言編程,用proteus仿真。1.2方案設(shè)計(jì)與論證方案:該系統(tǒng)采用52系列單片機(jī)AT89C52作為控制核心,該系統(tǒng)可以完成運(yùn)算控制、信號(hào)識(shí)別以及顯示功能的實(shí)現(xiàn)。由于用了單片機(jī),使其技術(shù)比較成熟,應(yīng)用起來(lái)方便、簡(jiǎn)單并且單片機(jī)周圍的輔助電路也比較少,便于控制和實(shí)現(xiàn)。整個(gè)系統(tǒng)具有極其靈活的可編程性,能方便地對(duì)系統(tǒng)進(jìn)行功能的擴(kuò)張和更改。MCS-52單片機(jī)特點(diǎn)如下:(1)單片機(jī)按照工業(yè)控制要求設(shè)計(jì),抵抗工業(yè)噪聲干擾優(yōu)于一般的CPU,程序指令和數(shù)據(jù)都可以寫(xiě)在ROM里,許多信號(hào)通道都在同一芯片,因此可靠性高,易擴(kuò)充。(2)單片機(jī)有一般電腦所必須的器件,如三態(tài)雙向總線,串并行的
5、輸入及輸出引腳,可擴(kuò)充為各種規(guī)模的微電腦系統(tǒng)。(3)控制功能強(qiáng):?jiǎn)纹瑱C(jī)指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。其原理框圖如圖1.1所示:AT89C52最小應(yīng)用系統(tǒng)按鍵電路晶振電路復(fù)位電路LCD 顯 示 時(shí) 間蜂鳴器電路圖1.1 電子時(shí)鐘原理框圖2 單片機(jī)應(yīng)用系統(tǒng)簡(jiǎn)介2.1單片機(jī)結(jié)構(gòu)89C52單片機(jī)的功能結(jié)構(gòu)如下圖所示,單片機(jī)是屬于三總線結(jié)構(gòu),89C52單片機(jī)功能方框圖如圖2.1所示:圖2.1單片機(jī)內(nèi)部結(jié)構(gòu)框圖 單片機(jī)內(nèi)容結(jié)構(gòu)單片機(jī)的內(nèi)部結(jié)構(gòu)如圖2.2所示。從圖中看出,它具有以下特征;(1)適于控制應(yīng)用的8位CPU(2)56字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器,分高低兩個(gè)128字節(jié)(3)
6、4K字節(jié)片內(nèi)程序存儲(chǔ)器(4)64KB程序存儲(chǔ)器空間(5)64KB數(shù)據(jù)存儲(chǔ)器空間(6)4個(gè)8位共32根雙向并可按位尋址的I/O口線(7)兩個(gè)16位定時(shí)/計(jì)數(shù)器;(8)一個(gè)全雙工的串行I/O接口(9)有5個(gè)中斷源(10)片內(nèi)時(shí)鐘振蕩器(11)具有布爾處理(位處理)能力圖2.2 單片機(jī)內(nèi)部結(jié)構(gòu)2.2單片機(jī)的封裝形式、引腳定義及功能89C52封裝89C52系列單片機(jī)具有雙列直插式和方形兩種封裝。如圖2.3所示圖2.3雙列直插式和方形89C52系列單片機(jī)引腳功能(1)引腳分布:如圖2.4所示為雙列直插式引腳分布圖圖2.4 雙列直插式引腳分布圖(2)引腳功能VCC-工作電源+5VGND-電源地ALE/PR
7、OG -訪問(wèn)外部存儲(chǔ)器時(shí)作為低8位地址鎖存控制信號(hào);在對(duì)EPROM編程時(shí)作為編程脈沖輸入;在不訪問(wèn)外部存儲(chǔ)器和非EPROM編程狀態(tài)下,該腳輸出頻率為1/6單片機(jī)晶振頻率的方波信號(hào),該信號(hào),可作為時(shí)鐘脈沖,但在訪問(wèn)數(shù)據(jù)存儲(chǔ)器時(shí)會(huì)丟失一個(gè)脈沖; PSEN外部程序存儲(chǔ)器讀選通信號(hào).EA/VPP訪問(wèn)程序存儲(chǔ)器控制信號(hào)。當(dāng)EA為低電平時(shí),只讀外部存儲(chǔ)器,當(dāng)EA為高電平時(shí)則先讀內(nèi)部程序存儲(chǔ)器,再讀外部程序存儲(chǔ)器;這個(gè)引腳在編程時(shí)接編程電壓VPP. RST復(fù)位信號(hào),對(duì)系統(tǒng)復(fù)位信號(hào)要>2T。XTAL1片內(nèi)振蕩電路輸入端。XTAL2片內(nèi)振蕩電路輸出端。P0-P3輸入輸出端口。2.3 定時(shí)計(jì)數(shù)器定時(shí)/計(jì)數(shù)器
8、結(jié)構(gòu)89C52單片機(jī)內(nèi)部設(shè)有兩個(gè)16位定時(shí)/計(jì)數(shù)器,簡(jiǎn)稱為定時(shí)器0(T0)和定時(shí)器1(T1)。定時(shí)器計(jì)數(shù)器的結(jié)構(gòu)如圖2.5所示:TMOD-方式控制寄存器,用于設(shè)定定時(shí)計(jì)數(shù)器的工作方式TCON-定時(shí)器控制寄存器,用于啟動(dòng)定時(shí)計(jì)數(shù)器IE-中斷允許控制寄存器:定時(shí)計(jì)數(shù)器是微機(jī)的中斷源 圖2. 589C52單片機(jī)內(nèi)部定時(shí)計(jì)數(shù)器的結(jié)構(gòu) 工作原理89C52系列單片機(jī)內(nèi)部定時(shí)計(jì)數(shù)器的工作原理可用圖2.6來(lái)說(shuō)明。圖2.6 定時(shí)計(jì)數(shù)器的工作原理圖定時(shí)/計(jì)數(shù)功能選擇:當(dāng)CT0時(shí),為定時(shí)器功能,此時(shí),C與A相連(計(jì)數(shù)脈沖為機(jī)器周期);當(dāng)CT1時(shí),為計(jì)數(shù)功能,此時(shí),C與B相連(計(jì)數(shù)脈沖從P3.4或P3.5口輸入)。定
9、時(shí)/計(jì)數(shù)器設(shè)置:定時(shí)計(jì)數(shù)器設(shè)置由工作方式控制寄存器(TMOD)、定時(shí)控制寄存器(TCON)以及中斷允許寄存器(IE)共同完成。2.4 鍵盤(pán)接口技術(shù)鍵盤(pán)分兩類:獨(dú)立連接多鍵盤(pán)和矩陣式鍵盤(pán),如圖2.7所示。 圖2.7獨(dú)立式鍵盤(pán) 獨(dú)立式鍵盤(pán)獨(dú)立式按鍵結(jié)構(gòu)獨(dú)立式按鍵結(jié)構(gòu)的鍵盤(pán)是最簡(jiǎn)單的鍵盤(pán)電路,每個(gè)鍵獨(dú)立接入一根輸入線。這種鍵盤(pán)的優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單、使用十分方便,目前這種結(jié)構(gòu)的鍵盤(pán)應(yīng)用還相當(dāng)普遍,這種鍵盤(pán)的缺點(diǎn)是隨著鍵數(shù)數(shù)量的增加所占用的I/O口線也增加。獨(dú)立式按鍵結(jié)構(gòu)的鍵盤(pán)在沒(méi)有鍵按下時(shí),數(shù)據(jù)輸入線均為高電平,當(dāng)有鍵按下時(shí),與之對(duì)應(yīng)的數(shù)據(jù)線將變成低電平。因此可用位指令判別是否有鍵按下。 行列式鍵盤(pán)獨(dú)立式
10、鍵盤(pán)雖然結(jié)構(gòu)簡(jiǎn)單,使用方便,但每一個(gè)按鍵開(kāi)關(guān)要占一根I/O口線,因此在按鍵數(shù)較多時(shí),采用行列式鍵盤(pán)技術(shù)。輸出鎖存器輸入緩沖器行線列線(1)行列式鍵盤(pán)的結(jié)構(gòu)及原理行列式鍵盤(pán)的結(jié)構(gòu)圖2.8所示為行列式鍵盤(pán)的基本結(jié)構(gòu)。它由鍵盤(pán)開(kāi)關(guān)矩陣、輸出(行線)鎖存器、輸入(列線)緩沖器三部分組成。在具體組成電路時(shí),有以下幾種組合方式:直接使用I/O的鍵盤(pán)電路。MCU的I/O口輸出具有鎖存器,輸入具有緩沖器,因此應(yīng)用I/O口直接與行線與列線相連就可以組成行列式鍵盤(pán)。如圖2.7所示,是由P1口組成的44鍵盤(pán)。圖中左示的是普通接法,右示為帶中斷的鍵盤(pán)接法。 圖2.8 行列式鍵盤(pán) 利用I/O口和譯碼器的接口電路如圖2.
11、9所示為使用I/O口與74LS138譯碼器構(gòu)成的鍵盤(pán)電路利用串行口的鍵盤(pán)接口電路P00 P02P01P03P10A P11BP12C 圖2.9由I/O口與譯碼器組成的行列式列式如圖2.10為由I/O口與串行口組成的鍵盤(pán)電路。P10P11 AB P12RXD TXD圖2.10 I/O口與串行口組成的行列式鍵盤(pán)行列式鍵盤(pán)的工作原理:盡管構(gòu)成行列式鍵盤(pán)有多種形式,但它們的工作原理是相同的,現(xiàn)以圖1.7為例說(shuō)說(shuō)明:行線P14P17為輸出,列線P10P13為輸入。 CPU先使第一行( P14)為“0”,其余行為“1”。讀輸入口P10P13的狀態(tài),若輸入緩沖器的狀態(tài)全部為“1”,則表示所在行無(wú)鍵按下,CP
12、U使一下行線為“0”,其余行線為“1”,掃描下一行,這樣在P14P17循環(huán)進(jìn)行。若輸入緩沖器不全為“1”,說(shuō)明所在行有鍵按下,CPU停止當(dāng)前行線掃描,轉(zhuǎn)入到列線掃描,列線P10 P13為“0”狀態(tài)的列表示對(duì)應(yīng)列有鍵按下。這樣,行線與列數(shù)交叉鍵就是掃描到的按鍵。鍵掃描方式:程控掃描方式:CPU從執(zhí)行程序就開(kāi)始了鍵盤(pán)的掃描,等待來(lái)是鍵盤(pán)的命令。這種程控掃描方式,適用單任務(wù)多分支結(jié)構(gòu)。定時(shí)掃描方式:在多任務(wù)應(yīng)用系統(tǒng)中,既要執(zhí)行當(dāng)前任務(wù),又要及時(shí)接受鍵盤(pán)命令,定時(shí)掃描方式適應(yīng)這種需要。具體做法是:在程序初始化時(shí),先對(duì)定時(shí)/計(jì)數(shù)器進(jìn)行設(shè)置,使其每10ms中斷一次,每次中斷,CPU將去掃描一次鍵盤(pán),若兩次
13、中斷掃描到有鍵按下(這里考慮了消抖動(dòng)),CPU將對(duì)鍵作相應(yīng)的處理。中斷掃描方式:采用中斷掃描方式必需有外部中斷接口,當(dāng)有鍵按下時(shí),產(chǎn)生中斷請(qǐng)請(qǐng)求,CPU響應(yīng)中斷,在中斷服務(wù)程序掃描鍵盤(pán),作相應(yīng)處理。這是多任務(wù)應(yīng)用系統(tǒng)常用的一種方式。2.5 復(fù)位操作復(fù)位操作是單片機(jī)的初始化操作,單片機(jī)在進(jìn)入運(yùn)行前和在運(yùn)行過(guò)程中程序出錯(cuò)或操作失誤使系統(tǒng)不能正常運(yùn)行時(shí),需要進(jìn)行復(fù)位操作。復(fù)位操作后,程序?qū)?000H開(kāi)始重新執(zhí)行。除此之外,復(fù)位操作還使單片機(jī)的ALE和PSEN引腳信號(hào)在復(fù)位期間變?yōu)闊o(wú)效狀態(tài)。單片機(jī)對(duì)復(fù)位信號(hào)的要求:一是復(fù)位信號(hào)為高電平,二是復(fù)位信號(hào)有效持續(xù)時(shí)間不少于24個(gè)振蕩脈沖(兩個(gè)機(jī)器周期)以上
14、。在這里特別要提醒的是,在一個(gè)應(yīng)用系統(tǒng)中,如果有幾片單片機(jī)同時(shí)工作,在程序上有連接關(guān)系,系統(tǒng)復(fù)位時(shí),應(yīng)確保每一片單片機(jī)同時(shí)復(fù)位。復(fù)位信號(hào)由單片機(jī)的RST引腳輸入,復(fù)位操作有上電自動(dòng)復(fù)位、按鍵復(fù)位和外部脈沖復(fù)位三種方式。隨著單片機(jī)技術(shù)的發(fā)展,目前有些單片機(jī)內(nèi)部帶有看門(mén)狗電路,當(dāng)程序進(jìn)行出錯(cuò)或進(jìn)入了無(wú)休止循環(huán)時(shí),看門(mén)狗電路將利用軟件強(qiáng)行使系統(tǒng)復(fù)位。2.6 顯示控制模塊LCD1602字符顯示器模塊是2行X16個(gè)字符的LCD顯示器。該器件由32個(gè)字符點(diǎn)陣塊組成,可以顯示ASCII碼表中的所有可顯示字符。LCD1602字符顯示器外形和引腳排列、名稱如圖2.11所示。圖2.11 LCD16021602采用
15、標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為地電源第2腳:VDD接5V正電源第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:RW為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和RW共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向
16、數(shù)據(jù)線。 第1516腳:空腳1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如表1所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”表11602液晶模塊內(nèi)部的控制器共有11條控制指令,如表2所示表2序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示 0 0 0 0 0 0 0 0 0 1 2光標(biāo)返回 0 0 0 0 0 0 0 0 1 *3置輸入模式 0 0 0
17、0 0 0 0 1I/D S4顯示開(kāi)/關(guān)控制0 0 0 0 0 0 1 D C B5光標(biāo)或字符移位 0 0 0 0 0 1S/CR/L * *6置功能 0 0 0 0 1DL N F * *7置字符發(fā)生存貯器地址0 0 0 1字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址0 0 1顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫(xiě)數(shù)字到CGRAM或DDRAM) 10要寫(xiě)的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù) 1 1讀出的數(shù)據(jù)內(nèi)容它的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平) 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置指令2:光標(biāo)復(fù)位,光標(biāo)
18、返回到地址00H指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效 指令4:顯示開(kāi)關(guān)控制。 D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍 指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo) 指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符
19、(有些模塊是 DL:高電平時(shí)為8位總線,低電平時(shí)為4位總線)指令7:字符發(fā)生器RAM地址設(shè)置 指令8:DDRAM地址設(shè)置 指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。 指令10:寫(xiě)數(shù)據(jù) 指令11:讀數(shù)據(jù) 液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表3是DM-162的內(nèi)部顯示地址.表3顯示字符123456789101112.第一行地址00H01H02H03H04H05H06H07H08H09H0AH
20、0BH.第二行地址40H41H42H43H44H45H46H47H48H49H4AH4BH.單片機(jī)與LCD1602典型連接 本單片機(jī)顯示模塊采用LCD1602A-1型液晶顯示器,用單片機(jī)的P2口作為1602的數(shù)據(jù)輸入端。同時(shí)讓1602的E、RW、RS針腳分別與單片機(jī)的P3.2、P3.1、P3.0口相接。如圖2.12所示圖2.123硬件電路設(shè)計(jì)3.1電子時(shí)鐘的電路圖如圖3.1所示為電路圖。其工作原理為:接通電源后,液晶顯示00:00:00,按下K1,可以調(diào)整秒,按下K2數(shù)值增一,按下K3數(shù)值減一,再次按下K1,則可以調(diào)整分,再按下K1,則可以調(diào)整時(shí),再按次就可確定時(shí)間,開(kāi)始工作。K4可以復(fù)位使液
21、晶顯示00:00:00。每按一次,蜂鳴器都給出聲響提示。圖3.1電子時(shí)鐘電路原理圖3.2單元電路設(shè)計(jì)鍵盤(pán)控制模塊根據(jù)題目要求及另加的一些功能要求,總共只需要4個(gè)按鍵(如圖3.2),故選用獨(dú)立按鍵模式。 這4個(gè)鍵分別為,調(diào)時(shí)選擇鍵k1、加值鍵k2、減值鍵k3、單片機(jī)復(fù)位鍵k4。下面具體介紹一下每個(gè)鍵的功能。K1:時(shí)、分、秒的調(diào)時(shí)選擇鍵。K2:加值鍵,每按一次所選的時(shí)間值加1;K3:減值鍵,每按一次所選的時(shí)間值減1;K4:?jiǎn)纹瑱C(jī)手動(dòng)復(fù)位鍵;圖3.2蜂鳴器電路模塊蜂鳴器一腳與單片機(jī)的P1.3相連,一腳接地。如圖3.3所示圖 3.3復(fù)位電路模塊復(fù)位電路采用手動(dòng)復(fù)位和上電自動(dòng)復(fù)位組合。如圖3.4所示圖3
22、.4當(dāng)MCS-5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和上電或開(kāi)關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。上電后,保持RST一段高電平時(shí)間晶振電路模塊本設(shè)計(jì)采用12Mhz的晶振,30pF的電容。如圖3.5所示圖3.5外部中斷和內(nèi)部中斷并存,單片機(jī)硬件復(fù)位端,只要持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,硬件復(fù)位后的各狀態(tài)可知寄存器以及存儲(chǔ)器的值都恢復(fù)到了初始值,因?yàn)楸驹O(shè)計(jì)中功能中有倒計(jì)時(shí)時(shí)間的記憶功能,所以不能對(duì)單片機(jī)進(jìn)行硬件復(fù)
23、位,只能用軟件復(fù)位,軟件復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完之后,將程序通過(guò)一條跳轉(zhuǎn)指令讓它完成復(fù)位。4軟件設(shè)計(jì)4.1 系統(tǒng)主程序設(shè)計(jì)初始化程序:設(shè)置單片機(jī)的定時(shí)器0和1工作在模式1(16位定時(shí)器),其中定時(shí)器0產(chǎn)生24小時(shí)時(shí)鐘模式的信號(hào),定時(shí)器1產(chǎn)生60秒時(shí)鐘模式的信號(hào);對(duì)定時(shí)器0和1裝初值,開(kāi)啟總中斷和定時(shí)器中斷,LCD1602的初始化及其他變量的聲明和賦初值。該部分程序,LCD1602的初始化為重點(diǎn)。寫(xiě)該部分程序應(yīng)該全面讀懂它的使用說(shuō)明。按鍵掃描程序:對(duì)K1到K4四個(gè)按鍵進(jìn)行掃描,對(duì)按下不同的鍵讓單片機(jī)做出不同的響應(yīng)。因?yàn)槊總€(gè)按鍵都有不同的功能,所以程序中需要使用大量的if語(yǔ)句層層嵌套,這是本部分
24、程序的兩個(gè)難點(diǎn)之一。另外一個(gè)難點(diǎn)就是對(duì)按鍵去抖動(dòng)延時(shí)的設(shè)定,如果延時(shí)值太大了,則按鍵不靈敏;如果延時(shí)值太小,則出現(xiàn)重復(fù)操作的現(xiàn)象,解決這個(gè)問(wèn)題需要在仿真時(shí)不斷的調(diào)試,以取個(gè)適中延時(shí)值。定時(shí)中斷程序:完成對(duì)時(shí)鐘的在LCD1602顯示前的數(shù)據(jù)處理,產(chǎn)生秒,分。時(shí)。主要難點(diǎn)為秒分時(shí)之間的進(jìn)位關(guān)系。開(kāi)始 初始化有按鍵按下?是否寫(xiě)入命令顯示 延時(shí)結(jié)束LCD顯示程序:LCD顯示程序即包含在定時(shí)中斷程序里邊,也與前邊的LCD初始化程序有關(guān)。主要難點(diǎn)在將時(shí)鐘的變化顯示在LCD1602的正確位置,不要出現(xiàn)亂碼或者不符合時(shí)鐘的顯示格式。程序的運(yùn)行步驟如圖4.1所示開(kāi)始初始化函數(shù)有鍵按下?是K1鍵?b的次數(shù)是否K4
25、?K4?否是時(shí)鐘復(fù)位無(wú)效是否選定秒位選定分位返回時(shí)鐘工作選定時(shí)鐘b=1b=2b=3b=4有鍵按下K2?K3?選定為加1無(wú)效選定位減1是否否是4.2主程序清單根據(jù)硬件電路的連接以及我們要實(shí)現(xiàn)的功能,編寫(xiě)出了如下的程序,該程序的實(shí)現(xiàn)的功能能完成我們?cè)O(shè)計(jì)所需要的功能,具體的程序代碼如下:#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit rs=P30; /各引腳定義 /液晶sbit rw=P31;sbit en=P32;sbit s1=P10; /鍵盤(pán)sbit s2=P11;sbit s3=P
26、12;sbit beep=P13; /蜂鳴器uint shi,fen,miao,s1num=0,num=0;void delay(uint x) /延時(shí)程序 uint i,j;for(i=0;i<110;i+)for(j=0;j<x;j+); void laba() /蜂鳴器程序 beep=1; delay(100); beep=0;void write_com(uchar command) /液晶寫(xiě)命令 rs=0; en=0; rw=0; P2=command; delay(2); en=1; delay(2); en=0; delay(2); void write_date(u
27、char date) /液晶寫(xiě)數(shù)據(jù) rs=1; en=0; rw=0; P2=date; delay(2); en=1; delay(2); en=0; delay(2); void init() /液晶初始化 write_com(0x30); write_com(0x0c); write_com(0x01); delay(2); void write_sfm(uchar add,uchar date) /數(shù)據(jù)分離、顯示uchar si,ge;si=date/10;ge=date%10;write_com(0x80+add);write_date(0x30+si);write_date(0x3
28、0+ge);void keyscan() /鍵盤(pán)掃描 if(s1=0) delay(5); if(s1=0) /確認(rèn)功能鍵被按下 s1num+; /功能鍵按下次數(shù)記錄 while(!s1); /釋放確定 laba(); /每當(dāng)有按鍵釋放蜂鳴器發(fā)出滴聲 if(s1num=1) /第一次被按下時(shí) TR0=0; /關(guān)閉定時(shí)器write_com(0x80+0x06); /光標(biāo)定位到秒位置 write_com(0x0f); /光標(biāo)開(kāi)始閃爍 if(s1num=2) /第二次按下光標(biāo)閃爍定位到分鐘位置write_com(0x80+0x03); if(s1num=3)/第三次按下光標(biāo)閃爍定位到小時(shí)位置writ
29、e_com(0x80+0x00);if(s1num=4)/第四次按下s1num=0; /記錄按鍵數(shù)清零write_com(0x0c); /取消光標(biāo)閃爍TR0=1; /啟動(dòng)定時(shí)器使時(shí)鐘開(kāi)始走if(s1num!=0) /只有功能鍵被按下后,增大和減少鍵才有效 if(s2=0) delay(5);if(s2=0) /增加鍵確認(rèn)被按下while(!s2); /按鍵釋放laba();if(s1num=1) /若功能鍵第一次按下miao+; /則調(diào)整秒加1if(miao=60) /若滿60后將清0miao=0;write_sfm(6,miao); /每調(diào)節(jié)一次送液晶顯示一下write_com(0x80+6
30、); /顯示位置重新回到調(diào)節(jié)處if(s1num=2)/若功能鍵第二次按下fen+;/則調(diào)整分加1if(fen=60)/若滿60后將請(qǐng)0fen=0;write_sfm(3,fen);/每調(diào)節(jié)一次送液晶顯示一下write_com(0x80+3);/顯示位置重新回到調(diào)節(jié)處if(s1num=3)/若功能鍵第三次按下shi+; /則調(diào)整時(shí)加1if(shi=24)/若滿24后將請(qǐng)0shi=0;write_sfm(0,shi);/每調(diào)節(jié)一次送液晶顯示一下write_com(0x80+0);/顯示位置重新回到調(diào)節(jié)處 if(s3=0)delay(5); if(s3=0)/確定減小鍵被按下while(!s3);/
31、按鍵釋放laba(); if(s1num=1)/若功能鍵第一次按下 miao-; /則調(diào)整秒減1if(miao=-1)/若減到負(fù)數(shù)則將其重新設(shè)置為59miao=59;write_sfm(6,miao);/每調(diào)節(jié)一次送液晶顯示一下write_com(0x80+0x06);/顯示位置重新回到調(diào)節(jié)處if(s1num=2) / 若功能鍵第二次按下fen-;if(fen=-1)fen=59;write_sfm(3,fen);write_com(0x80+0x03);if(s1num=3) / 若功能鍵第三次按下 shi-;if(shi=-1)/若減到負(fù)數(shù)則將其重新設(shè)置為23shi=23;write_sf
32、m(0,shi);/每調(diào)節(jié)一次送液晶顯示一下write_com(0x80+0x00);/顯示位置重新回到調(diào)節(jié)處 void main() /主程序 miao=0;fen=0;shi=0; init(); write_sfm(0x06,miao); write_com(0x80+0x05); write_date(':'); write_sfm(0x03,fen); write_com(0x80+0x02); write_date(':'); write_sfm(0x00,shi); TMOD=0X01; TH0=(65536-50000)/256;/初次裝定時(shí)器初
33、值 TL0=(65536-50000)%256; EA=1;/開(kāi)總中斷 ET0=1;/開(kāi)定時(shí)器0中斷 TR0=1; /啟動(dòng)定時(shí)器0 while(1) keyscan();/不斷的檢測(cè)按鍵是否被按下 void T0_time() interrupt 1 /定時(shí)器0中斷 TH0=(65536-50000)/256;/再次裝定時(shí)器初值 TL0=(65536-50000)%256; num+; /中斷次數(shù)累加 if(num=20)/20次50毫秒為1秒 num=0; miao+; if(miao=60) /秒加到60則進(jìn)位分鐘 miao=0; /同時(shí)秒數(shù)清零 fen+; if(fen=60)/分加到6
34、0則進(jìn)位小時(shí) fen=0;/同時(shí)分鐘清零 shi+; if(shi=24)/小時(shí)加到24則清零 shi=0; write_sfm(0x00,shi);/時(shí)若變化則重新寫(xiě)入write_sfm(0x03,fen); /分若變化則重新寫(xiě)入 write_sfm(0x6,miao);/秒若變化則重新寫(xiě)入 4.3系統(tǒng)調(diào)試本設(shè)計(jì)中分4個(gè)模塊,測(cè)試的步驟如下:(1)檢測(cè)各模塊焊接是否到位。將各個(gè)模塊焊好,檢查確認(rèn)無(wú)虛焊、粘焊;(2)接通電源,液晶亮并且顯示,之后秒鐘自動(dòng)增加。(3)按下K1,可以調(diào)試秒,分,時(shí),按下K2可以增一,按下K3可以減一,則調(diào)整當(dāng)前時(shí)間,同時(shí)蜂鳴器會(huì)發(fā)出提示聲音。(4)按下K4,液晶顯
35、示則恢復(fù)00:00:00。5結(jié)論與心得這次課程設(shè)計(jì)老師給我們安排了兩個(gè)星期的時(shí)間,可以說(shuō)是比較充裕的。雖然如此,我還是很用心的做設(shè)計(jì),利用了周六周日兩天的時(shí)間在宿舍思考本次的課程設(shè)計(jì),拿到題目,感覺(jué)太繁雜了,不知怎么下手,雖然這些知識(shí)以前都有接觸過(guò),但也只是分部分來(lái)接觸,而這次的設(shè)計(jì)是要對(duì)前面幾次實(shí)驗(yàn)的一個(gè)綜合,真的很難。通過(guò)運(yùn)用單片機(jī)設(shè)計(jì)電子時(shí)鐘課程設(shè)計(jì),發(fā)現(xiàn)自己的很多不足,自己知識(shí)的很多漏洞,看到了自己的實(shí)踐經(jīng)驗(yàn)還是比較缺乏,理論聯(lián)系實(shí)際的能力還急需提高。在這個(gè)過(guò)程中,我也曾經(jīng)因?yàn)閷?shí)踐經(jīng)驗(yàn)的缺乏失落過(guò),也曾經(jīng)仿真成功而熱情高漲。特別是Proteus仿真軟件的使用,不知是由于電腦的問(wèn)題還是怎
36、么,這個(gè)軟件的安裝就花了我很長(zhǎng)的時(shí)間,好不容易安裝好了,又對(duì)軟件的使用一點(diǎn)都不熟悉,要從頭開(kāi)始學(xué)起,對(duì)著老師發(fā)給我們的芯片原理進(jìn)行仿真畫(huà)圖,剛剛開(kāi)始時(shí)候真的很難下手,因?yàn)槭怯⑽陌娴能浖?,很多東西都看不太明白,都是通過(guò)自己一個(gè)個(gè)來(lái)慢慢琢磨,才把仿真圖畫(huà)了出來(lái),然后把寫(xiě)好的程序?qū)胄酒M(jìn)行仿真,當(dāng)看到程序正常運(yùn)行的那一刻,心中真是有幾分的喜悅。生活就是這樣,汗水預(yù)示著結(jié)果也見(jiàn)證著收獲。勞動(dòng)是人類生存生活永恒不變的話題。雖然這只是一次的較簡(jiǎn)單的課程制作,可是平心而論,也耗費(fèi)了我不少的心血。對(duì)我而言,知識(shí)上的收獲重要,精神上的豐收更加可喜。讓我知道了學(xué)無(wú)止境的道理。我們每一個(gè)人永遠(yuǎn)不能滿足于現(xiàn)有的成
37、就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財(cái)富,經(jīng)歷是一份擁有。這次課程設(shè)計(jì)必將成為我人生旅途上一個(gè)非常美好的回憶。參考文獻(xiàn)1李朝青.單片機(jī)原理及接口技術(shù).M 北京航空航天大學(xué)出版社 第3版2彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100列基于8051+Proteus仿真.M北京:電子工業(yè)出版社.2010年1月3郭天祥.新概念51單片機(jī)C語(yǔ)言教程.M電子工業(yè)出版社4 鄭鋒.51 單片機(jī)應(yīng)用系統(tǒng)典型模塊開(kāi)發(fā)大全.M中國(guó)鐵道出版社. 20105 于曉東.51 系列單片機(jī)叢書(shū)80C51 單片機(jī)原理、開(kāi)發(fā)與應(yīng)用實(shí)例.M中國(guó)電力出版社. 2008附錄附錄元器件清單 系統(tǒng)元器件清單如下表所
38、示。序號(hào)名稱數(shù)量備注1LCD160212排針若干3電阻若干10K4導(dǎo)線若干5晶振112MHz6瓷片電容若干30pf7電解電容若干10uf8開(kāi)關(guān)49排座若干10蜂鳴器 111電位器1附錄實(shí)物接線圖系統(tǒng)實(shí)物接線圖如下圖所示。附錄系統(tǒng)總電路圖系統(tǒng)總電路圖如下:致謝回顧起此次單片機(jī)課程設(shè)計(jì),我仍感慨頗多,但是我學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,但是本設(shè)計(jì)能夠順利的完成得到了院系領(lǐng)導(dǎo)老師的大力支持和幫助,尤其是
39、我的指導(dǎo)老師朱群峰老師,仔細(xì)耐心為我為我指導(dǎo)。設(shè)計(jì)過(guò)程中,朱老師一并幫我們分析遇到的種種困難。使設(shè)計(jì)得以順利的完成。同時(shí)還要感謝我們這組的所有成員,正是我們的共同努力才使得這次設(shè)計(jì)圓滿完成。在此,對(duì)他們表示由衷的感謝!總之,要感謝電氣系所有老師,他們精心的栽培為我以后的學(xué)習(xí)工作打下了堅(jiān)實(shí)的基礎(chǔ)。邵陽(yáng)學(xué)院課程設(shè)計(jì)(論文)任務(wù)書(shū)年級(jí)專業(yè)10自動(dòng)化學(xué)生姓名學(xué) 號(hào)題目名稱基于89C52的電子時(shí)鐘設(shè)計(jì)設(shè)計(jì)時(shí)間2012年5月21日2012年6月1日課程名稱單片機(jī)原理及應(yīng)在電氣測(cè)控學(xué)科中的應(yīng)用課程編號(hào)121200105設(shè)計(jì)地點(diǎn)數(shù)字控制與PLC實(shí)驗(yàn)室(305)一、 課程設(shè)計(jì)(論文)目的課程設(shè)計(jì)是在校學(xué)生素質(zhì)教育的重要環(huán)節(jié),是理論與實(shí)踐相結(jié)合的橋梁和紐帶。單片機(jī)課程設(shè)計(jì),要求學(xué)生更多的完成軟硬結(jié)合的動(dòng)手實(shí)踐方案,解決目前學(xué)生課程設(shè)計(jì)過(guò)程中普遍存在的缺乏動(dòng)手能力的現(xiàn)象. 單片機(jī)課程設(shè)計(jì)是繼電子技術(shù)、和單片機(jī)原理與應(yīng)用課程之后開(kāi)出的實(shí)踐環(huán)節(jié)課程,其目的和任務(wù)是訓(xùn)練學(xué)生綜合運(yùn)用已學(xué)課程“電子技術(shù)基礎(chǔ)”、“單片機(jī)原理及應(yīng)用”的基本知識(shí),獨(dú)立進(jìn)行單片機(jī)應(yīng)用技術(shù)和開(kāi)發(fā)工作,掌握單片機(jī)程序設(shè)計(jì)、調(diào)試和應(yīng)用電路設(shè)計(jì)、分析及調(diào)試檢測(cè)。二、已知技術(shù)參數(shù)和條件1、電子時(shí)鐘見(jiàn)第三項(xiàng)“任務(wù)和要求”具體參數(shù)2、89
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 仁愛(ài)版九年級(jí)英語(yǔ)寒假?gòu)?fù)習(xí)計(jì)劃
- 五年級(jí)英語(yǔ)語(yǔ)言綜合運(yùn)用能力計(jì)劃
- 2025年新人教版八年級(jí)生物教師培訓(xùn)計(jì)劃
- PEP小學(xué)英語(yǔ)四年級(jí)班級(jí)管理計(jì)劃
- 湘教版四年級(jí)美術(shù)課外活動(dòng)計(jì)劃
- 礦業(yè)開(kāi)發(fā)標(biāo)識(shí)標(biāo)牌質(zhì)量體系應(yīng)用措施
- 部編版一年級(jí)語(yǔ)文下冊(cè)閱讀復(fù)習(xí)計(jì)劃
- 小學(xué)班級(jí)安全教育德育工作計(jì)劃
- 母嬰用品供貨時(shí)間及保證措施
- 裝配式建筑水泥混凝土面板施工措施
- 學(xué)??倓?wù)后勤工作總結(jié)模版
- 《蛇咬傷應(yīng)急處理》課件
- 2025年錨栓市場(chǎng)發(fā)展現(xiàn)狀
- 養(yǎng)豬場(chǎng)建設(shè)項(xiàng)目可行性研究報(bào)告(模板范文)
- 2025年四級(jí)中式烹調(diào)師(中級(jí))職業(yè)技能鑒定參考試題庫(kù)(含答案)
- 夜間作業(yè)安全培訓(xùn)培訓(xùn)資料
- 中藥知識(shí)講解課件
- 施工資源需求計(jì)劃與調(diào)配策略
- 預(yù)制箱梁首件工程施工總結(jié)
- 2024-2025學(xué)年人教版高二化學(xué)選擇性必修3配套課件 基礎(chǔ)課時(shí)4 有機(jī)物分子式和分子結(jié)構(gòu)的確定
- 湖南省岳陽(yáng)市2024-2025學(xué)年小升初模擬數(shù)學(xué)測(cè)試卷含解析
評(píng)論
0/150
提交評(píng)論