




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于單片機(jī)的電子時(shí)鐘設(shè)計(jì)1 引言1.1 設(shè)計(jì)目的,要求和實(shí)現(xiàn)功能1.1.1 設(shè)計(jì)目的基于單片機(jī)電子時(shí)鐘的課程設(shè)計(jì),是利用單片機(jī)設(shè)計(jì)一個(gè)電子時(shí)鐘,使不斷具有電子時(shí)鐘的功能,而且還具有秒表的功能。通過(guò)液晶1602顯示出來(lái),做時(shí)鐘時(shí)在1602上顯示小時(shí),分,秒,可以通過(guò)按鈕對(duì)時(shí),分,秒分別做調(diào)整。做跑表時(shí)顯示范圍000.0999.9秒。當(dāng)啟動(dòng)按鈕時(shí)秒表開(kāi)始計(jì)時(shí),按下停止則停止計(jì)時(shí),當(dāng)按下復(fù)位按鈕時(shí)秒表回零。1.1.2設(shè)計(jì)要求 (1) 要求設(shè)計(jì)電氣原理圖; (2) 要求設(shè)計(jì)出程序流程圖; (3) 要求給出軟件流程圖并編寫(xiě)程序源代碼; (4) 完成系統(tǒng)的調(diào)試,給出調(diào)試結(jié)果并分析。1.1.3 實(shí)現(xiàn)功能 (
2、1)可以實(shí)現(xiàn)時(shí)鐘的功能; (2)可以實(shí)現(xiàn)跑表的功能; (3)可以通過(guò)按鍵來(lái)調(diào)整時(shí)間; (4)可以通過(guò)按鍵來(lái)控制跑表的走和停。1.2系統(tǒng)總體方案設(shè)計(jì)1.2.1單片機(jī)芯片的選擇AT89C52是一個(gè)低壓,高性能CMOS的8位單片機(jī),片內(nèi)含8K bytes的可反復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATML公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置同用8位中央處理器和Flash存儲(chǔ)單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用1。1.2.2 總體設(shè)計(jì)方案及論證電子時(shí)鐘的整體設(shè)計(jì)較簡(jiǎn)單,包括單片機(jī)、自動(dòng)復(fù)位電路、時(shí)
3、鐘電路、鍵盤(pán)電路、顯示電路。利用AT89C52單片機(jī)內(nèi)部的定時(shí)0進(jìn)行中斷定時(shí),配合軟件延時(shí)和按鍵程序?qū)崿F(xiàn)時(shí),分,秒的計(jì)時(shí),達(dá)到可以對(duì)時(shí)間的調(diào)整等功能。利用AT89C52內(nèi)部的定時(shí)器1進(jìn)行中斷定時(shí),實(shí)現(xiàn)秒表的計(jì)時(shí)和控制。在復(fù)位電路中,C選用10uF而R選用10K在0.1S內(nèi),RST引腳所接收到的電壓是51.5V。在5V正常工作的52單片機(jī)中小于1.5V的電壓信號(hào)為低電平信號(hào),而大于1.5V的電壓信號(hào)為高電平信號(hào)所以在開(kāi)機(jī)0.1S內(nèi),單片機(jī)系統(tǒng)自動(dòng)復(fù)位9。在時(shí)鐘電路中,在單片機(jī)XTAL1和XTAL2引腳上跨接上一個(gè)晶振和兩個(gè)穩(wěn)頻電容,本次課程設(shè)計(jì)電容使用的是30pF的瓷片電容,可對(duì)振蕩器進(jìn)行頻率微
4、調(diào)使振蕩信號(hào)頻率與晶振頻率一致。晶振使用的是12MHZ,接上瓷片電容,可以與單片機(jī)內(nèi)的電路構(gòu)成一個(gè)穩(wěn)定的自激振蕩器2。在本次課程設(shè)計(jì)中,不采用LED數(shù)碼管而是采用LCD1602,主要是由于在某些方面液晶顯示比數(shù)碼管優(yōu)點(diǎn)更加突出。顯示電路采用液晶1602顯示,共顯示兩行,第一行顯示秒表,第二行顯示時(shí)鐘。1602液晶顯示器具有微功耗,體積小,顯示內(nèi)容豐富,超薄輕巧,控制簡(jiǎn)單,顯示明確易懂等優(yōu)點(diǎn)。單片機(jī)芯片時(shí)鐘電路復(fù)位電路按鍵電路液晶1602顯示數(shù)據(jù)圖1.1單片機(jī)控制系統(tǒng)原理框圖2 單片機(jī)和電子時(shí)鐘簡(jiǎn)介2.1 單片機(jī)簡(jiǎn)介本次采用的AT89C52單片機(jī)與早期Intel的8051/8751/8031芯片
5、的外部引腳和指令系統(tǒng)完全兼容,只不過(guò)用Flash ROM代替了ROM/EPROM而已。與8051相比,具有節(jié)電工作模式,即休閑方式及掉電方式。在一小塊芯片上,集成了一個(gè)微型計(jì)算機(jī)的各個(gè)組成部分3,即包括:(1) 一個(gè)8位的80C51微處理器(CPU)。(2) 片內(nèi)256字節(jié)數(shù)據(jù)存儲(chǔ)器RAM/SFR,用以存放可以讀/寫(xiě)的數(shù)據(jù),如運(yùn)算的中間結(jié)構(gòu)、最終結(jié)果以及欲顯示的數(shù)據(jù)等。(3) 片內(nèi)4KB程序存儲(chǔ)器Flash ROM,用以存放程序,一些原始數(shù)據(jù)和表格。(4) 4個(gè)8位并行I/O端口P0P3,每個(gè)端口既可以用作輸入,也可以用作輸出。(5) 兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,每個(gè)定時(shí)器/計(jì)數(shù)器都可以設(shè)置成
6、計(jì)數(shù)方式,用以對(duì)外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置成定時(shí)方式,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制。(6) 具有5個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí)的中斷控制系統(tǒng)。(7) 一個(gè)全工UART(通用異步接收發(fā)送器)的串行I/O口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與PC機(jī)之間的串行通信。(8) 片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接,最高允許振蕩頻率為24MHZ。另外89C51是用靜電邏輯來(lái)設(shè)計(jì)的,其工作頻率可下降到0HZ,并提供兩種可用軟件來(lái)選擇的省電方式空閑方式(IDLE MODE)和掉電方式(POWER DOWN MODE)。在空閑方式中,CPU停止工作,而RAM,定時(shí)器/計(jì)數(shù)器,串行口和中斷系
7、統(tǒng)都允許繼續(xù)工作。此時(shí)的電流可降到大約為正常工作方式的15%。在掉電方式中,片內(nèi)振蕩器停止工作,由于時(shí)鐘被“凍結(jié)”,使一切功能都暫停,故只保存片內(nèi)RAM中的內(nèi)容,直到下一次硬件復(fù)位為止。這種方式下的電流可降到15uA以下,最小可降到0.6uA。圖2-1為單片芯片內(nèi)部結(jié)構(gòu)圖4。圖2-2為89C52單片機(jī)結(jié)構(gòu)圖4。圖2.1單片機(jī)內(nèi)部結(jié)構(gòu)圖圖2.2 89C52單片機(jī)結(jié)構(gòu)框圖2.2電子時(shí)鐘簡(jiǎn)介2.2.1 簡(jiǎn)介電子鐘亦稱(chēng)數(shù)顯鐘(數(shù)字顯示鐘),是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械時(shí)鐘相比,直觀性為其主要顯著特點(diǎn),且因非機(jī)械驅(qū)動(dòng),具有更長(zhǎng)的使用壽命,相較石英鐘的石英機(jī)芯驅(qū)動(dòng),更具準(zhǔn)確性。電子
8、鐘已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵罚瑥V泛用于個(gè)人家庭以及車(chē)站、碼頭、劇院、辦公室等公共場(chǎng)所,給人們的生活、學(xué)習(xí)、工作、娛樂(lè)帶來(lái)極大地方便。相對(duì)于其他時(shí)鐘類(lèi)型,它的特點(diǎn)可歸結(jié)為“兩強(qiáng)一弱 ”:比機(jī)械鐘強(qiáng)在觀時(shí)顯著,比石英鐘強(qiáng)在走時(shí)準(zhǔn)確,但是它的弱點(diǎn)為顯時(shí)較為單調(diào)。2.2.2 功能描述電子鐘的時(shí)鐘功能:具有可選的24h(小時(shí))或12h(小時(shí))的計(jì)時(shí)方式,顯示時(shí)、分、秒;具有快速校準(zhǔn)時(shí)、分、秒的功能;能設(shè)置起鬧時(shí)刻、響?hù)[時(shí)間為1min(分鐘),超過(guò)1min(分鐘)自動(dòng)停止;具有人工止鬧功能,止鬧后不再重新操作,將不再發(fā)生起鬧;具有整點(diǎn)報(bào)時(shí)功能。但是在本次課程設(shè)計(jì)中,并沒(méi)有使用一般的定時(shí)功能,而是
9、在時(shí)鐘的基礎(chǔ)上增加了秒表的功能,使液晶在顯示時(shí)鐘的功能同時(shí)具有秒表的功能,在按下秒表后,時(shí)鐘停止顯示,但并不會(huì)停止計(jì)時(shí),秒表結(jié)束后,時(shí)鐘顯示出正常的時(shí)間值。隨著科技的進(jìn)步與發(fā)達(dá),部分電子鐘還帶投影功能,同時(shí)衍生為許多其他產(chǎn)品的輔助功能。2.2.3 工作原理電子鐘是一個(gè)將“ 時(shí)”,“分”,“秒”顯示于人的視覺(jué)器官的計(jì)時(shí)裝置。它的計(jì)時(shí)周期為24小時(shí),顯示滿(mǎn)刻度為23時(shí)59分59秒,秒表顯示為000.0秒999.9秒。做時(shí)鐘時(shí),顯示方式為“00:00:00”,由定時(shí)器T0進(jìn)行計(jì)時(shí),當(dāng)計(jì)時(shí)到1秒時(shí),秒顯示加1,當(dāng)秒加到60時(shí),秒顯示清零,同時(shí)分顯示加1,當(dāng)分加到60時(shí),分顯示清零,同時(shí)時(shí)顯示加1,當(dāng)時(shí)
10、顯示加到24時(shí),時(shí)顯示清零。在調(diào)整時(shí)間的按鍵電路中,分別有三個(gè)按鍵,第一個(gè)為功能鍵,即選擇調(diào)整位置,當(dāng)按下一次時(shí),光標(biāo)顯示調(diào)整秒,當(dāng)按下兩次時(shí),光標(biāo)顯示調(diào)整分,當(dāng)按下三次時(shí),光標(biāo)顯示調(diào)整時(shí),當(dāng)功能鍵按下四次是,時(shí)鐘恢復(fù)正常走動(dòng)。第二個(gè)為加1鍵,當(dāng)功能鍵按下次數(shù)為一到三次時(shí),按下加1鍵,則光標(biāo)閃爍位置數(shù)值加1。第三個(gè)為減1鍵,當(dāng)功能鍵按下次數(shù)為一到三次時(shí),按下減1鍵時(shí),光標(biāo)閃爍位置數(shù)值減1。做秒表時(shí),顯示方式為“000.0”由定時(shí)器T1進(jìn)行計(jì)時(shí),當(dāng)計(jì)時(shí)到1秒時(shí),秒顯示加1,當(dāng)秒加到999時(shí),數(shù)據(jù)清零。在控制秒表的按鍵電路中,只有一個(gè)按鍵,當(dāng)按鍵被按下一次時(shí),秒表開(kāi)始計(jì)時(shí),當(dāng)按鍵被按下二次時(shí),秒表
11、停止計(jì)時(shí),同時(shí)把秒表所計(jì)數(shù)值送給時(shí)鐘顯示。當(dāng)按下復(fù)位按鍵時(shí),秒表清零。3 硬件電路設(shè)計(jì)本系統(tǒng)硬件電路設(shè)計(jì)由單片機(jī)最小系統(tǒng)設(shè)計(jì)、控制電路設(shè)計(jì)、按鍵電路設(shè)計(jì)、液晶顯示電路設(shè)計(jì)三部分組成。最小系統(tǒng)只要是為了使單片機(jī)正常工作。包括電源部分和時(shí)鐘部分等。控制電路主要由開(kāi)關(guān)和按鍵組成,由操作者根據(jù)相應(yīng)的工作需要進(jìn)行操作。顯示電路主要是為了顯示時(shí)間值和秒表值。電路主要硬件包括單片機(jī)芯片AT89C52、按鍵、顯示模塊1602,以及一些其它的電容電阻和晶振,杜邦線。3.1 系統(tǒng)整體電路圖系統(tǒng)整體電路圖如圖3-1,其中四個(gè)按鍵分別接P3.0,P3.1,P3.2,P3.3和P3.4口,液晶1602的RS,RW,EP
12、分別接P1.0,P1.1,P1.2。P3口則作為液晶的數(shù)據(jù)傳送端口。開(kāi)始接通電源時(shí),液晶1602第一行顯示“000:0”,第二行顯示“00:00:00”,同時(shí)第二行顯示秒的部分開(kāi)始走動(dòng),當(dāng)控制秒標(biāo)的按鍵按下時(shí),第一行數(shù)據(jù)開(kāi)始走動(dòng)。再按下一次時(shí),秒表停止走動(dòng),并把所計(jì)的時(shí)間加到電子時(shí)鐘上,保證時(shí)鐘能正常工作。分別按下時(shí)鐘的功能鍵,加1鍵和減1鍵可對(duì)時(shí)間進(jìn)行調(diào)整。圖3.1系統(tǒng)整體電路圖3.2 局部電路設(shè)計(jì)3.2.1 復(fù)位電路復(fù)位電路說(shuō)明:由電容,電阻和按鍵組成,當(dāng)系統(tǒng)一上電,RST腳將會(huì)出現(xiàn)高電平,并且,這個(gè)高電平持續(xù)的時(shí)間由電路的RC值來(lái)決定。一般教科書(shū)推薦C取10uF,R取10K。在本次課程設(shè)
13、計(jì)中C取值為10uF,R取值為10K。當(dāng)然也有其它取法,原則是讓RC組合可以在RST腳上產(chǎn)生不少于2個(gè)機(jī)器周期的高電平2。至于如何具體計(jì)算,可以參考電路分析相關(guān)書(shū)籍。.復(fù)位電路用途:?jiǎn)纹瑱C(jī)復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機(jī),按下重啟按鈕電腦內(nèi)部的程序從頭開(kāi)始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行中,受到環(huán)境干擾出現(xiàn)程序跑飛時(shí),按下復(fù)位按鈕內(nèi)部的程序自動(dòng)從頭開(kāi)始執(zhí)行。復(fù)位電路的工作原理:在單片機(jī)系統(tǒng)中,系統(tǒng)上電啟動(dòng)的時(shí)候復(fù)位一次,當(dāng)按鍵按下的時(shí)候系統(tǒng)再次復(fù)位,如果釋放后再按下,系統(tǒng)還會(huì)復(fù)位。所以通過(guò)按鍵的斷開(kāi)和閉合在運(yùn)行的系統(tǒng)中控制其復(fù)位。在電路圖中電容的大小是10uF,電阻的
14、大小是10K。可以算出電容充電到電源電壓的0.7倍,需要的時(shí)間是0.1S。在5V正常工作的52單片機(jī)中小于1.5V的電壓信號(hào)為低電平信號(hào),而大于1.5V的電壓信號(hào)為高電平信號(hào)所以在開(kāi)機(jī)0.1S內(nèi),單片機(jī)系統(tǒng)自動(dòng)復(fù)位5。復(fù)位電路如下圖所示:圖3.2復(fù)位電路圖3.2.2 時(shí)鐘電路單片機(jī)工作時(shí),從取指令到譯碼再進(jìn)行微操作,必須在時(shí)鐘信號(hào)控制下才能有序地進(jìn)行,時(shí)鐘電路就是為單片機(jī)工作提供基本時(shí)鐘的。單片機(jī)的時(shí)鐘信號(hào)通常有兩種產(chǎn)生方式:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。在單片機(jī)XTAL1和XTAL2引腳上跨接上一個(gè)晶振和兩個(gè)穩(wěn)頻電容,可以與單片機(jī)片內(nèi)的電路構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。晶振的取值范圍一般為024M
15、Hz,常用的晶振頻率有6MHz、12 MHz、11.0592 MHz、24 MHz等。一些新型的單片機(jī)還可以選擇更高的頻率。外接電容的作用是對(duì)振蕩器進(jìn)行頻率微調(diào),使振蕩信號(hào)頻率與晶振頻率一致,同時(shí)起到穩(wěn)定頻率的作用,一般選用2030pF的瓷片電容。外部時(shí)鐘方式則是在單片機(jī)XTAL1引腳上外接一個(gè)穩(wěn)定的時(shí)鐘信號(hào)源,它一般適用于多片單片機(jī)同時(shí)工作的情況,使用同一時(shí)鐘信號(hào)可以保證單片機(jī)的工作同步。時(shí)序是單片機(jī)在執(zhí)行指令時(shí)CPU發(fā)出的控制信號(hào)在時(shí)間上的先后順序。AT89C52單片機(jī)的時(shí)序概念有4個(gè),可用定時(shí)單位來(lái)說(shuō)明,包括振蕩周期、時(shí)鐘周期、機(jī)器周期和指令周期5。 振蕩周期:是片內(nèi)振蕩電路或片外為單片
16、機(jī)提供的脈沖信號(hào)的周期。時(shí)序中1個(gè)振蕩周期定義為1個(gè)節(jié)拍,用P表示。 時(shí)鐘周期:振蕩脈沖送入內(nèi)部時(shí)鐘電路,由時(shí)鐘電路對(duì)其二分頻后輸出的時(shí)鐘脈沖周期稱(chēng)為時(shí)鐘周期。時(shí)鐘周期為振蕩周期的2倍。時(shí)序中1個(gè)時(shí)鐘周期定義為1個(gè)狀態(tài),用S表示。每個(gè)狀態(tài)包括2個(gè)節(jié)拍,用P1、P2表示。 機(jī)器周期:機(jī)器周期是單片機(jī)完成一個(gè)基本操作所需要的時(shí)間。一條指令的執(zhí)行需要一個(gè)或幾個(gè)機(jī)器周期。一個(gè)機(jī)器周期固定的由6個(gè)狀態(tài)S1S6組成。 指令周期:執(zhí)行一條指令所需要的時(shí)間稱(chēng)為指令周期。一般用指令執(zhí)行所需機(jī)器周期數(shù)表示。AT89C52單片機(jī)多數(shù)指令的執(zhí)行需要1個(gè)或2個(gè)機(jī)器周期,只有乘除兩條指令的執(zhí)行需要4個(gè)機(jī)器周期。 了解了以
17、上幾個(gè)時(shí)序的概念后,我們就可以很快的計(jì)算出執(zhí)行一條指令所需要的時(shí)間。例如:若單片機(jī)使用12MHz的晶振頻率,則振蕩周期=1/(12MHz)=1/12us,時(shí)鐘周期=1/6us,機(jī)器周期=1us,執(zhí)行一條單周期指令只需要1us,執(zhí)行一條雙周期指令則需要2us5。知道了單片機(jī)的時(shí)序,為后面編寫(xiě)定時(shí)器的程序提供了很大的幫助,可以通過(guò)計(jì)算設(shè)定不同的初值,來(lái)控制中斷的進(jìn)行。這樣使得電子時(shí)鐘和秒表的走動(dòng)更加精確,達(dá)到我們想要的目的。電路如圖3-3。 圖3.3單片機(jī)最小系統(tǒng)時(shí)鐘電路圖3.2.3 鍵盤(pán)控制電路本次課程設(shè)計(jì)是以單片機(jī)的P3口作為信號(hào)輸入口,使用的按鍵是彈性小按鍵,當(dāng)被按下時(shí)閉合,松手后自動(dòng)斷開(kāi)。
18、單片機(jī)檢測(cè)按鍵的原理是:?jiǎn)纹瑱C(jī)的I/O口既可作為輸出也可作為輸入使用,當(dāng)檢測(cè)按鍵時(shí)用的是它的輸入功能,我們把按鍵的一端接地,另一端與單片機(jī)的I/O口相連,開(kāi)始時(shí)先給該I/O口賦一高電平,然后讓單片機(jī)不斷檢測(cè)該I/O口是否變?yōu)榈碗娖剑?dāng)按鍵閉合時(shí),即相當(dāng)于該I/O口通過(guò)按鍵與地相連,變成低電平,程序一旦檢測(cè)到I/O口變?yōu)榈碗娖絼t說(shuō)明按鍵被按下,然后去執(zhí)行相應(yīng)的指令6。按鍵的連接方法非常簡(jiǎn)單,如圖3-4。當(dāng)按鍵被按下時(shí),理想波形與實(shí)際波形之間是有區(qū)別的,實(shí)際波形在按下和釋放的瞬間都有抖動(dòng)的現(xiàn)象,抖動(dòng)時(shí)間的長(zhǎng)短與按鍵的機(jī)械特性有關(guān),一般為510ms。通常我們手動(dòng)按下鍵然后立即釋放,這個(gè)動(dòng)作中穩(wěn)定閉合
19、的時(shí)間超過(guò)20ms,因此單片機(jī)在檢測(cè)鍵盤(pán)是否按下時(shí)都要加上去抖動(dòng)的操作,有專(zhuān)用的去抖電路,也有專(zhuān)用的去抖芯片,但我們通常用軟件延時(shí)的方法就能容易解決抖動(dòng)問(wèn)題,而沒(méi)有必要再添加多余的硬件電路7。在本次課程設(shè)計(jì)中都是用軟件延時(shí)的方法去除按鍵抖動(dòng)。通過(guò)按鍵可以對(duì)時(shí)鐘和秒表進(jìn)行調(diào)整,使用起來(lái)比較方便,但在使用按鍵的過(guò)程中應(yīng)當(dāng)注意,按鍵是否接對(duì),軟件去抖是否起作用,還應(yīng)注意按鍵的接口是否正確。不然,在后面的使用中,不但達(dá)不到預(yù)期的效果,還會(huì)使得設(shè)計(jì)出錯(cuò)。在設(shè)計(jì)好電路圖,編寫(xiě)好按鍵電路的程序后,應(yīng)當(dāng)清楚每個(gè)按鍵的功能。按鍵電路是電子時(shí)鐘以及秒表中不可或缺的一部分,正確應(yīng)用好按鍵電路,才能正確的對(duì)電子時(shí)鐘和
20、秒表進(jìn)行調(diào)試。圖3.4單片按鍵控制電路3.2.4液晶顯示電路LCD1602字符顯示器模塊是2行X16個(gè)字符的LCD顯示器。該器件由32個(gè)字符點(diǎn)陣塊組成,可以顯示ASCII碼表中的所有可顯示字符。下面為1602各個(gè)引腳接法:第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ě)
21、入指令或者顯示地址,當(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位雙向數(shù)據(jù)線。 第1516腳:空腳。圖3-5為液晶各管腳接線圖。仿真圖中,液晶的管腳與實(shí)物有點(diǎn)區(qū)別,仿真圖中沒(méi)有15腳和16腳6。圖3.5液晶顯示電路圖 4 軟件設(shè)計(jì)整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來(lái)實(shí)現(xiàn)的,開(kāi)始設(shè)計(jì)好程序,設(shè)計(jì)好電路圖,根據(jù)電路圖定型硬件后,軟件的功能也就基本定下來(lái)了。其中液晶顯示數(shù)據(jù)傳輸主要由最小系統(tǒng)統(tǒng)一工作,定時(shí)器準(zhǔn)確定時(shí),通過(guò)按鍵調(diào)整程序,然后通過(guò)I/O口傳送給顯示器進(jìn)行顯示
22、。所以,在整個(gè)系統(tǒng)的軟件設(shè)計(jì)中,應(yīng)正確設(shè)計(jì)個(gè)部分程序。這里使用C語(yǔ)言編寫(xiě)單片機(jī)控制程序??刂葡到y(tǒng)CPU采用AT89C52單片機(jī),當(dāng)系統(tǒng)上電時(shí),系統(tǒng)硬件在軟件程序的支持下開(kāi)始正常工作。4.1 程序流程圖開(kāi)始液晶顯示是否定義各端口是被按下次數(shù)aK2被按下?是否有鍵按下?無(wú)效按鍵次數(shù)顯示清0否否是秒表開(kāi)始計(jì)時(shí)秒表停止計(jì)時(shí)b=2是b=1復(fù)位鍵被按下?K1被按下?秒表停止計(jì)時(shí)(續(xù):流程圖接下頁(yè))分閃爍時(shí)閃爍秒閃爍顯示正常K3被按下?a=2a=4a=3a=1有鍵按下?否K4被按下?否 是是無(wú)效數(shù)值減1數(shù)值加1結(jié)束圖4.1系統(tǒng)流程圖4.2 主程序清單本次程序設(shè)計(jì)使用的是C語(yǔ)言編程,C語(yǔ)言與匯編語(yǔ)言相比具有程
23、序模塊化結(jié)構(gòu)較強(qiáng),淺顯易懂,層次清楚等優(yōu)點(diǎn)8。系統(tǒng)具體程序如下:#include<reg52.h>#define uchar unsigned char#define uint unsigned intuint num,count,num1,flag,num2;char shi,fen,miao; sbit ep=P12; sbit rs=P10; sbit rw=P11; sbit s1=P31; sbit s2=P32; sbit s3=P33; sbit temp=P30; uchar code table="000:0" uchar code table
24、1="00:00:00" void delay(uint z) uint x,y;for(x=z;x>0;x-) for(y=110;y>0;y-); void write_com(uchar com) rs=0; ep=0; rw=0; delay(5); P2=com; ep=1; delay(5); ep=0; void write_date(uchar date) rs=1;rw=0;ep=0;P2=date;delay(5);ep=1;ep=0; void init() write_com(0x38);delay(5);write_com(0x0c);
25、delay(5);write_com(0x06);delay(5);write_com(0x01);delay(5);write_com(0x80+0x05);for(num=0;num<5;num+)write_date(tablenum);delay(5);write_com(0x80+0x44);for(num=0;num<8;num+)write_date(table1num);delay(5);TMOD=0X11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-65436)/256;TL1=(65536-654
26、36)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=0; void write_aaa(uchar add,uchar date) uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge); void display(uint add,uint date,uint date1) uint ge,shi,bai; bai=date/100; shi=date/10%10; ge=date%10; write_com(0x80+add)
27、; write_date(0x30+bai); write_date(0x30+shi); write_date(0x30+ge); write_date(':'); write_date(0x30+date1); void keyscan() if(s1=0)delay(5);if(s1=0)num1+;while(!s1);if(num1=1)TR0=0;write_com(0x80+0x40+10);write_com(0x0f);if(num1=2)write_com(0x80+0x40+7);if(num1=3)write_com(0x80+0x40+4);if(nu
28、m1=4)num1=0;write_com(0x0c);TR0=1;if(num1!=0)if(s2=0)delay(5);if(s2=0);while(!s2);if(num1=1)miao+;if(miao=60)miao=0;write_aaa(10,miao);write_com(0x80+0x40+10);if(num1=2)fen+;if(fen=60)fen=0;write_aaa(7,fen);write_com(0x80+0x40+7);if(num1=3)shi+;if(shi=24)shi=0;write_aaa(4,shi);write_com(0x80+0x40+4)
29、;if(s3=0)delay(5);if(s3=0)while(!s3);if(num1=1)miao-;if(miao=-1)miao=59;write_aaa(10,miao);write_com(0x80+0x40+10);if(num1=2)fen-;if(fen=-1)fen=59;write_aaa(7,fen);write_com(0x80+0x40+7);if(num1=3)shi-;if(shi=-1)shi=23;write_aaa(4,shi);write_com(0x80+0x40+4); void main() uint flag2,miao1=0,fen1=0; i
30、nit();while(1)keyscan(); if(temp=0) delay(5); while(temp=0); flag2=0; flag=0; num2=0;while(flag2=0) TR0=0; TR1=1; display(5,num2,flag); if(temp=0) while(temp=0); miao1=num2%60; fen1=num2/60; miao=miao+miao1; fen=fen1+fen; if(miao>60)|(miao=60) miao=0; fen+; if(fen>60)|(fen=60) fen=0; shi+; if(
31、shi>24)|(shi=24)shi=0; TR1=0; TR0=1; flag2+; while(1); void timer0()interrupt 1 TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+; if(count=20)count=0;miao+; if(miao=60)miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;write_aaa(4,shi);write_aaa(7,fen); write_aaa(10,miao); void timer1() interrupt
32、 3 TH1=(65536-65436)/256;TL1=(65536-65436)%256;flag+;if(flag=10) flag=0; num2+; if(num2=1000) num2=0; 5 系統(tǒng)仿真與實(shí)踐5.1 Proteus軟件介紹Proteus的ISIS是一款Labcenter出品的電路分析實(shí)物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機(jī),元件庫(kù)齊全,使用方便,是不可多得的專(zhuān)業(yè)的單片機(jī)軟件仿真系統(tǒng)。 全部滿(mǎn)足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),在同類(lèi)產(chǎn)品中具有明顯的優(yōu)勢(shì)。 具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS一232動(dòng)態(tài)仿真、1C調(diào)試器
33、、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。 目前支持的單片機(jī)類(lèi)型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。 支持大量的存儲(chǔ)器和外圍芯片。總之該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大 ,可仿真51、AVR、PIC。 Proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)
34、容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過(guò)程和結(jié)果。對(duì)于這樣的仿真實(shí)驗(yàn),從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象10。5.2 仿真模型的建立過(guò)程通過(guò)上面的簡(jiǎn)單介紹,對(duì)Proteus軟件有了初步的了解,下面通過(guò)對(duì)Proteus軟件進(jìn)行操作,繪出系統(tǒng)電路圖,進(jìn)行實(shí)時(shí)仿真。首先,打開(kāi)Proteus軟件在元件庫(kù)中選取AT89C52單片機(jī)芯片,在圖紙上選擇合適位置放置芯片,然后選擇合適的大小,這樣初步的選芯片過(guò)程便完成了。其次,繪畫(huà)復(fù)位電路,繼續(xù)從元件庫(kù)中選取按鍵,電阻,電容,電源和地。選好后,擺放在適當(dāng)?shù)奈恢?,擺放位置時(shí)應(yīng)注意布局大小和美觀程度。擺好后,進(jìn)行連線。接下來(lái)要繪
35、畫(huà)時(shí)鐘電路,步驟和畫(huà)復(fù)位電路相同。先在元件庫(kù)中選取12MHZ的晶振,30pF的瓷片電容和地。擺好位置后進(jìn)行連線。畫(huà)好上面的電路后,接著畫(huà)液晶顯示電路和按鍵電路。在元件庫(kù)中分別選取一個(gè)1602液晶顯示,幾個(gè)按鍵,電源和地。然后進(jìn)行連線,按鍵地連在一起,然后,另一端分別接到P3.0P3.3口。液晶數(shù)據(jù)端接至P2口,使能端等連接到P1口。在接線時(shí)應(yīng)當(dāng)注意接線正確,不然,達(dá)不到想要的結(jié)果。在繪好所有的電路圖后,進(jìn)行最后一個(gè)步驟,當(dāng)然,也是最重要的一步,既把編好的程序進(jìn)行調(diào)試,編譯后生成的.hex文件下載到單片機(jī)芯片內(nèi)。然后點(diǎn)擊開(kāi)始工作按鍵,進(jìn)行實(shí)時(shí)仿真。下面是建立的系統(tǒng)仿真圖。圖5.1 系統(tǒng)仿真圖5.
36、3 程序調(diào)試及結(jié)果5.3.1 調(diào)試方法編好程序,進(jìn)行編譯之后,先在仿真軟件上進(jìn)行調(diào)試,使能得到預(yù)期的結(jié)果。然后將程序下載到單片機(jī)芯片內(nèi),在焊好的實(shí)物正極加上5V電壓之后,分別調(diào)整時(shí)間功能鍵,加1鍵和減1鍵,看各個(gè)按鍵功能是否和預(yù)想的一致。如果一致則說(shuō)明程序編寫(xiě)正確,如果不一致,應(yīng)該檢查按鍵程序是否編寫(xiě)正確,按鍵是否去抖,中斷程序是否正確,定時(shí)器是否能正常計(jì)時(shí),仔細(xì)調(diào)整直至能達(dá)到預(yù)想的效果。檢查完時(shí)鐘程序之后,再檢查秒表的程序,看實(shí)物上秒表是否能正常工作,如果不能正常工作,則應(yīng)該檢查按鍵程序和中斷以及定時(shí)器的程序,進(jìn)行仔細(xì)調(diào)整11。5.3.2 調(diào)試結(jié)果分析根據(jù)仿真得到的結(jié)果,可進(jìn)行分析,如下圖:
37、圖5.2 系統(tǒng)仿真結(jié)果圖中液晶顯示第一行顯示秒表,前面三位代表秒鐘數(shù),圖中的“014”代表秒表計(jì)時(shí)到14秒,后面的“5”代表逢十進(jìn)一秒。第二行顯示為電子時(shí)鐘,最前面兩位為時(shí)顯示位,圖中的“23”代表時(shí)間為23時(shí),中間兩位為分鐘顯示位,圖中的“32”代表為32分,還有28分鐘時(shí)將會(huì)到24時(shí)。最后兩位為秒鐘的顯示位,圖中的“47”表示秒已到達(dá)47秒,還有13秒分鐘將會(huì)變?yōu)?3分。整個(gè)第二行表示時(shí)間23時(shí)32分47秒。芯片左邊的按鍵為復(fù)位按鍵,若被按下,則顯示器上顯示清零。芯片右邊第一個(gè)按鍵控制秒表,按下一次秒表開(kāi)始走動(dòng),按下兩次秒表停止走動(dòng)。第二個(gè)按鍵為時(shí)鐘的功能鍵,按下一次,秒顯示位置光標(biāo)閃爍,
38、按下二次分顯示閃爍,按下三次時(shí)顯示閃爍,按下四次時(shí)鐘正常走動(dòng)。第三個(gè)按鍵為加1鍵,按下一次,則光標(biāo)閃爍位置數(shù)值加1,第四個(gè)按鍵為減1鍵,按下一次,光標(biāo)閃爍位置數(shù)值減1。調(diào)試程序的過(guò)程并不是一帆風(fēng)順,在這期間遇到過(guò)許許多多的問(wèn)題。如在最開(kāi)始寫(xiě)液晶顯示的程序時(shí),要求是通過(guò)功能按鍵,使得光標(biāo)分別在時(shí),分,秒的位置閃爍,然而寫(xiě)好程序之后,結(jié)果卻不盡人意,光標(biāo)閃爍位置始終在同一個(gè)位置,達(dá)不到想要的結(jié)果。在仔細(xì)檢查程序時(shí)才發(fā)現(xiàn)是液晶顯示程序出了點(diǎn)小錯(cuò)誤。還有就是,在寫(xiě)好按鍵程序后,進(jìn)行調(diào)試,總是出現(xiàn)按鍵后,得不到加一和減一的結(jié)果,而是一下子變化非常大,這種問(wèn)題則是由于按鍵去抖有問(wèn)題。在大整體工作基本完成時(shí),最后就是讓秒表和時(shí)鐘,一起在液晶顯示上工作,這是最關(guān)鍵,同時(shí)也是最難的問(wèn)題,為了解決這個(gè)問(wèn)題,我們組成員一起研究書(shū)本,向老師,同學(xué)請(qǐng)教,最后終于在我們的不屑努力下,發(fā)現(xiàn)原來(lái)是我們?cè)诙x單片機(jī)接口的時(shí)候出了錯(cuò)。5.4 系統(tǒng)實(shí)物實(shí)現(xiàn)實(shí)物實(shí)現(xiàn)是本次課程設(shè)計(jì)的最終目標(biāo),在克服了一個(gè)個(gè)困難之后,終于在我們這一組所有成員的共同努力下,做出了最后的實(shí)物,看似簡(jiǎn)單的一件小作品,背后卻是我們四個(gè)人歷時(shí)兩周共同努力的結(jié)果。如上圖,中間位置為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 激光技術(shù)工程師考試的復(fù)習(xí)計(jì)劃試題及答案
- 行政崗面試試題及答案
- 西醫(yī)臨床研究性試題及答案解讀
- 2024學(xué)年六年級(jí)語(yǔ)文下冊(cè)第一單元5手指教案1含反思新人教版
- 2024年五年級(jí)語(yǔ)文下冊(cè)第五單元17愛(ài)如茉莉教案2蘇教版
- 探討光電工程師證書(shū)考試的學(xué)習(xí)習(xí)慣培養(yǎng)試題及答案
- 藥劑學(xué)中常見(jiàn)錯(cuò)誤及避免策略試題及答案
- 2024-2025學(xué)年二年級(jí)語(yǔ)文下冊(cè)第五單元課文412寓言二則作業(yè)設(shè)計(jì)新人教版
- 2024-2025學(xué)年九年級(jí)歷史與社會(huì)上冊(cè)第二單元開(kāi)辟新的發(fā)展道路第二課民族民主運(yùn)動(dòng)的高漲教案人教版
- 教師資格筆試前瞻性思考試題及答案
- 云梯車(chē)作業(yè)交底
- 《孫權(quán)勸學(xué)》歷年中考文言文閱讀試題40篇(含答案與翻譯)(截至2024年)
- 全國(guó)飛盤(pán)運(yùn)動(dòng)競(jìng)賽規(guī)則(試行)
- 新型可瓷化膨脹防火涂料的制備及性能研究
- DB11-T 367-2021 地下室防水技術(shù)規(guī)程
- 《機(jī)械設(shè)計(jì)課程設(shè)計(jì)》課程標(biāo)準(zhǔn)
- 2025年貴州高速集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 2025版融資租賃合同履行監(jiān)管服務(wù)合同3篇
- 肺結(jié)核防治知識(shí)培訓(xùn)課件
- 《基于作業(yè)成本法的S公司物流成本分析研究》8300字(論文)
- 浙江省溫州市重點(diǎn)中學(xué)2025屆高三二診模擬考試英語(yǔ)試卷含解析
評(píng)論
0/150
提交評(píng)論