單片機(jī)論文-自動(dòng)報(bào)時(shí)系統(tǒng)_第1頁
單片機(jī)論文-自動(dòng)報(bào)時(shí)系統(tǒng)_第2頁
單片機(jī)論文-自動(dòng)報(bào)時(shí)系統(tǒng)_第3頁
單片機(jī)論文-自動(dòng)報(bào)時(shí)系統(tǒng)_第4頁
單片機(jī)論文-自動(dòng)報(bào)時(shí)系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、河南商業(yè)高等??茖W(xué)校畢 業(yè) 論 文 題目 基于單片機(jī)的自動(dòng)報(bào)時(shí)系統(tǒng)設(shè)計(jì) 學(xué)號(hào) 班級(jí)07級(jí)電子2班 專業(yè)應(yīng)用電子技術(shù)系別計(jì)算機(jī)應(yīng)用系 作者姓名許江陽完成時(shí)間 2010-5-14 指導(dǎo)教師韓旭職稱助 教基于單片機(jī)的自動(dòng)報(bào)時(shí)系統(tǒng)設(shè)計(jì)摘 要現(xiàn)在電子時(shí)鐘已經(jīng)是我們生活和工作中獲取時(shí)間的不可缺少的工具,然而缺少時(shí)間提醒及自動(dòng)報(bào)時(shí)功能是目前很多電子時(shí)鐘的缺乏之處。為了讓電子時(shí)鐘更好地效勞我們,因此有必要設(shè)計(jì)自動(dòng)報(bào)時(shí)系統(tǒng)。本文設(shè)計(jì)的自動(dòng)報(bào)時(shí)系統(tǒng)以單片機(jī)AT89C51作為核心部件,利用74LS240作為段碼驅(qū)動(dòng)器,使用7406作為位碼驅(qū)動(dòng),采用LED七段數(shù)碼管作為計(jì)時(shí)顯示,用按鍵進(jìn)行鬧鈴設(shè)置、校時(shí)及鬧鈴的開啟和

2、關(guān)閉。本設(shè)計(jì)以匯編語言來進(jìn)行軟件設(shè)計(jì),軟件設(shè)計(jì)采用模塊化結(jié)構(gòu),使程序設(shè)計(jì)的邏輯關(guān)系更加簡潔明了。在軟件的控制下,各硬件協(xié)調(diào)運(yùn)行完成功能。關(guān) 鍵 詞: 單片機(jī);自動(dòng)報(bào)時(shí)系統(tǒng);位碼;段碼目 錄 TOC o 1-2 h z u HYPERLINK l _Toc262374902 摘 要 PAGEREF _Toc262374902 h 1 HYPERLINK l _Toc262374903 一、設(shè)計(jì)要求 PAGEREF _Toc262374903 h 1 HYPERLINK l _Toc262374904 二、總體設(shè)計(jì) PAGEREF _Toc262374904 h 1 HYPERLINK l _To

3、c262374905 三、硬件設(shè)計(jì) PAGEREF _Toc262374905 h 1 HYPERLINK l _Toc262374906 一控制芯片 PAGEREF _Toc262374906 h 1 HYPERLINK l _Toc262374907 二時(shí)鐘模塊 PAGEREF _Toc262374907 h 3 HYPERLINK l _Toc262374908 三按鍵模塊 PAGEREF _Toc262374908 h 4 HYPERLINK l _Toc262374909 四顯示模塊 PAGEREF _Toc262374909 h 5 HYPERLINK l _Toc26237491

4、0 五系統(tǒng)原理圖 PAGEREF _Toc262374910 h 6 HYPERLINK l _Toc262374911 四、軟件設(shè)計(jì) PAGEREF _Toc262374911 h 8 HYPERLINK l _Toc262374912 一主程序 PAGEREF _Toc262374912 h 8 HYPERLINK l _Toc262374913 二中斷效勞程序 PAGEREF _Toc262374913 h 9 HYPERLINK l _Toc262374914 三顯示程序 PAGEREF _Toc262374914 h 11 HYPERLINK l _Toc262374915 四按鍵程

5、序 PAGEREF _Toc262374915 h 13 HYPERLINK l _Toc262374916 五、系統(tǒng)調(diào)試與仿真 PAGEREF _Toc262374916 h 15 HYPERLINK l _Toc262374917 六、總結(jié) PAGEREF _Toc262374917 h 18 HYPERLINK l _Toc262374918 七、參考文獻(xiàn) PAGEREF _Toc262374918 h 18 HYPERLINK l _Toc262374919 八、致謝 PAGEREF _Toc262374919 h 19一、設(shè)計(jì)要求本文設(shè)計(jì)的自動(dòng)報(bào)時(shí)系統(tǒng)要具有準(zhǔn)確走時(shí)、定時(shí)、鬧鐘定時(shí)、

6、到時(shí)鬧鈴等功能,即滿足以下要求:1.時(shí)鐘顯示功能:從左到右依次顯示時(shí)、分、秒,采用24計(jì)時(shí)制。2.時(shí)間調(diào)整功能:能對(duì)時(shí)、分、秒分別進(jìn)行設(shè)置和調(diào)整。3.鬧鐘設(shè)置/啟鬧:設(shè)置鬧鐘時(shí)間;在鬧鐘設(shè)置時(shí)間到后,啟動(dòng)蜂鳴器報(bào)警,1min后自動(dòng)停鬧。二、總體設(shè)計(jì)本文設(shè)計(jì)的自動(dòng)報(bào)時(shí)系統(tǒng)主要由時(shí)鐘模塊、控制芯片、按鍵模塊、晶振電路、復(fù)位電路、顯示模塊及報(bào)警模塊等七局部組成。如圖1所示:顯示模塊按鍵模塊控制芯片時(shí)鐘模塊 晶振電路報(bào)警模塊復(fù)位電路圖1 系統(tǒng)框圖其中晶振電路、復(fù)位電路是為控制芯片提供工作條件的。報(bào)警模塊采用蜂鳴器。三、硬件設(shè)計(jì)一控制芯片本文選用AT89C51芯片作為控制局部。AT89C51是一種帶4K

7、字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器FPEROMFlash Programmable and Erasable Read Only Memory的低電壓,高性能CMOS 8位單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。AT89C51的管腳圖如圖2所示。圖2 AT89C51管腳圖主要功能特性:1與MCS-51兼容;24K字節(jié)可編程閃爍存儲(chǔ)器;3壽命:1000寫/擦循環(huán);4數(shù)據(jù)保存時(shí)間:10年;5全靜態(tài)工作:0HZ-24HZ;6三級(jí)程序存儲(chǔ)器鎖定;7128*8位內(nèi)部RAM;832可編程I/O線;9兩個(gè)16位定時(shí)器/計(jì)數(shù)器;105個(gè)中斷源;1

8、1可編程串行通道;12片內(nèi)振蕩器和時(shí)鐘電路;管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(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編程和

9、校驗(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口的管腳被外部拉低,將輸出電流。這是由于內(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)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平

10、時(shí)間。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。二時(shí)鐘模塊時(shí)鐘模塊選用美國DALLAS公司的DS1302芯片。DS1302芯片是一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月和年,一個(gè)月小于31天時(shí)可以自動(dòng)調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.55.5V。采用雙電源供電主電源和備用電源,可設(shè)置備用電源充電方式,提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。DS1302用于數(shù)據(jù)記錄,特別是對(duì)某些具有特殊意

11、義的數(shù)據(jù)點(diǎn)的記錄上,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間同時(shí)記錄,因此廣泛應(yīng)用于測(cè)量系統(tǒng)中。DS1302串行時(shí)鐘芯片主要是由移位存放器、控制邏輯、振蕩器、實(shí)時(shí)時(shí)鐘、RAM以及電源組成,它的管腳圖如下列圖3所示:圖3 DS1302管腳圖管腳描述如下:X1 X2 32.768KHz 晶振管腳;GND 接地;RST 復(fù)位腳;I/O 數(shù)據(jù)輸入/輸出引腳;SCLK 串行時(shí)鐘;Vcc1,Vcc2 電源供電管腳;三按鍵模塊按鍵模塊是向系統(tǒng)輸入信息。在自動(dòng)報(bào)時(shí)系統(tǒng)中,按鍵模塊的作用是進(jìn)行功能選擇、時(shí)間調(diào)整、取消設(shè)置、設(shè)置定時(shí)。因此,采用4個(gè)獨(dú)立鍵盤,其中一個(gè)為功能鍵K1;一個(gè)為數(shù)字調(diào)整鍵K2,用來設(shè)置時(shí)間;一個(gè)為取消

12、設(shè)置鍵;一個(gè)為ALM鍵,用來設(shè)置定時(shí)時(shí)間。分別用K1,K2,K3,K4表示功能鍵、數(shù)字調(diào)整鍵、取消設(shè)置鍵、ALM鍵。時(shí)間調(diào)整過程如下:1.按下功能鍵,系統(tǒng)停止計(jì)時(shí)顯示,進(jìn)入時(shí)間調(diào)整狀態(tài),系統(tǒng)只顯示小時(shí)的內(nèi)容,等待按鍵設(shè)置;2.此時(shí)按動(dòng)數(shù)字調(diào)整鍵后小時(shí)將會(huì)加1,按動(dòng)取消設(shè)置鍵后又重新回到原來的時(shí)間顯示狀態(tài);3.假設(shè)再按動(dòng)功能鍵那么用來調(diào)整分鐘,此時(shí)系統(tǒng)只顯示分鐘內(nèi)容,按數(shù)字調(diào)整鍵后可以對(duì)分鐘增1調(diào)整,按動(dòng)取消鍵設(shè)置后又重新回到原來的時(shí)間顯示狀態(tài);4.再按動(dòng)功能鍵那么用來調(diào)整秒,此時(shí)只顯示當(dāng)前的秒數(shù),按數(shù)字調(diào)整鍵可以對(duì)秒進(jìn)行增1調(diào)整,按動(dòng)取消設(shè)置鍵后又重新回到原來的時(shí)間顯示狀態(tài)。5.按動(dòng)功能鍵后系

13、統(tǒng)將自動(dòng)由設(shè)定后的時(shí)間開始計(jì)時(shí)顯示。鬧鐘設(shè)置過程如下:按下ALM鍵,系統(tǒng)繼續(xù)計(jì)時(shí),但顯示為00:00:00,此時(shí)再按動(dòng)功能鍵后進(jìn)入鬧鐘設(shè)置狀態(tài),設(shè)置過程和時(shí)間調(diào)整相同,但是最后按功能鍵確定后,顯示定時(shí)時(shí)間30S后自動(dòng)啟動(dòng)定時(shí)鬧鐘功能,并恢復(fù)時(shí)間顯示。定時(shí)時(shí)間到,蜂鳴器鳴叫1min后自動(dòng)停鬧。目前,MCS-51單片機(jī)應(yīng)用系統(tǒng)上的按鍵常采用機(jī)械觸點(diǎn)式按鍵,它在斷開、閉合時(shí)輸入電壓波形如圖4所示,可以看出機(jī)械觸點(diǎn)在閉合及斷開瞬間均有抖動(dòng)過程。抖動(dòng)時(shí)間長短與開關(guān)的機(jī)械特性有關(guān),一般為510ms。由于抖動(dòng),會(huì)造成被查詢的開關(guān)狀態(tài)無法準(zhǔn)確讀出。例如,一次按鍵產(chǎn)生的正確開關(guān)狀態(tài),由于鍵的抖動(dòng),CPU屢次采集

14、到低電平信號(hào),會(huì)被誤認(rèn)為按鍵被屢次按下,就會(huì)屢次進(jìn)行鍵輸入操作,這是不允許的。為了保證CPU對(duì)鍵的一次閉合僅在按鍵穩(wěn)定時(shí)作一次鍵輸入處理,必須消除產(chǎn)生的前沿后沿抖動(dòng)影響。圖4 按鍵過程四顯示模塊顯示模塊用來顯示時(shí)、分、秒,由6個(gè)共陰極數(shù)碼管組成。每個(gè)數(shù)碼管由8個(gè)發(fā)光二極管以下簡稱字段構(gòu)成,外形結(jié)構(gòu)如圖5所示。通過不同的組合可用來顯示數(shù)字09、字符AF及小數(shù)點(diǎn)“。6個(gè)LED數(shù)碼管從左到右依次顯示時(shí)、分、秒。數(shù)碼管分為共陰極和共陽極兩種。我們采用的是共陰極數(shù)碼管,如圖6所示,它的工作原理是:共陰極數(shù)碼管的8個(gè)發(fā)光二極管的陰極二極管負(fù)端連接在一起。通常,公共陰極接低電平一般接地,其它管腳接段驅(qū)動(dòng)電路

15、輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為高電平時(shí),那么該端所連接的字段導(dǎo)通并點(diǎn)亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。顯示模塊有靜態(tài)顯示和動(dòng)態(tài)顯示兩種實(shí)現(xiàn)方案。因?yàn)椴捎脛?dòng)態(tài)顯示方式比擬節(jié)省I/0口,硬件電路也比靜態(tài)顯示簡單、本錢較低,所以設(shè)計(jì)時(shí)選用動(dòng)態(tài)顯示方式,由位碼決定哪位數(shù)碼管顯示,由段碼控制數(shù)碼管顯示內(nèi)容。圖5 數(shù)碼管結(jié)構(gòu)圖 圖6 共陰極數(shù)碼管五系統(tǒng)原理圖自動(dòng)報(bào)時(shí)系統(tǒng)的電路設(shè)計(jì)如圖7所示,系統(tǒng)核心是AT89C51單片機(jī),配備6位LED顯示和4個(gè)單接口鍵盤; AT89C51的P0接口外接8路

16、反向動(dòng)態(tài)緩沖器74LS240作為LED動(dòng)態(tài)掃描的段碼控制驅(qū)動(dòng)信號(hào),用P2接口的P2.02.5外接一片集電極開路反向門電路7406(OC門)做為6位LED的位選信號(hào)驅(qū)動(dòng)口,6個(gè)數(shù)碼管的8根段選線分別接74LS240的輸出,LED共陰極端與7406的輸出端相連;DS1302實(shí)時(shí)時(shí)鐘芯片接口由P1.0、P1.1、P1.2來控制,DS1302的X1、X2接口外接蜂鳴器;按鍵K1、K2、K3、K4分別由P1.4、P1.5、P1.6、P1.7進(jìn)行控制。AT89C51的晶振電路所選用的石英晶振頻率為6MHZ;復(fù)位信號(hào)由RESET(RST)引腳輸入,高電平有效。在振蕩器工作時(shí),只要保持RST引腳高電平兩個(gè)機(jī)器

17、周期,單片機(jī)即復(fù)位。7406121110987123456圖7 電路原理圖四、軟件設(shè)計(jì)軟件局部使用匯編語言,包括主程序、中斷效勞程序、顯示程序、按鍵程序四個(gè)局部。一主程序主程序的功能:設(shè)定數(shù)碼管的初始狀態(tài)、調(diào)用各子程序,使系統(tǒng)循環(huán)工作,并判斷按鍵的狀態(tài)。主程序流程圖如圖8所示:設(shè)置定時(shí)器常數(shù)開始設(shè)置初始常數(shù)顯示時(shí)間清標(biāo)志到一秒?開中斷NY圖8 主程序流程圖主程序代碼如下:START:MOV R0,#70H ;清70H-7AH共11個(gè)內(nèi)存單元MOV R7,#0BH ; CLEARDISP: MOV R0,#00H INC R0 DJNZ R7,CLEARDISP MOV 20H,#00H ;清2

18、0H標(biāo)志用MOV 7AH,#0AH ;放入“熄滅符數(shù)據(jù)MOV TMOD,#11H ;設(shè)T0、T1為16位定時(shí)器MOV TL0,#0B0H ;50MS定時(shí)初值T0計(jì)時(shí)用MOV TH0,#3CH ;50MS定時(shí)初值MOV TL1,#0B0H ;50MS定時(shí)初值T1閃爍定時(shí)用MOV TH1,#3CH ;50MS定時(shí)初值SETB EA ;總中斷開放SETB ET0 ;允許T0中斷SETB TR0 ;開啟T0定時(shí)器MOV R4,#14H ;1秒定時(shí)用初值50MS20START1:LCALL DISPLAY ;調(diào)用顯示子程序JNB P3.2,SETMM1 ;P3.7口為0時(shí)轉(zhuǎn)時(shí)間調(diào)整程序SJMP STAR

19、T1 ;P3.7口為1時(shí)跳回START1SETMM1: LJMP SETMM ;轉(zhuǎn)到時(shí)間調(diào)整程序SETMM二中斷效勞程序在單片機(jī)程序設(shè)計(jì)中,設(shè)置一個(gè)好的時(shí)鐘中斷,將能使一個(gè)CPU發(fā)揮兩個(gè)CPU的成效,大大方便和簡化程序的編寫,提高系統(tǒng)的效率與可操作性??梢园岩恍├械暮托枰〞r(shí)執(zhí)行的程序放在時(shí)鐘中斷中,還可以利用時(shí)鐘中斷協(xié)助主程序完成定時(shí)、延時(shí)等操作。本自動(dòng)報(bào)時(shí)系統(tǒng)中包括T0和T1兩個(gè)中斷,其中T0中斷主要實(shí)現(xiàn)鬧鈴設(shè)定功能,T1中斷實(shí)現(xiàn)定時(shí)器延時(shí)功能。TO定時(shí)中斷子程序代碼如下:TIM0:PUSH ACCPUSH PSWMOV TL0,#0B0HMOV TH0,#3CHINC 28H ;中斷計(jì)

20、數(shù)MOV A,28HCJNE A,#0AH,ETI0MOV 28H,#00H ;一秒時(shí)間到MOV A,21HADD A,#01H ;秒單元加一DA AMOV 21H,ACJNE R7,#00H,J1MOV 30H,A ;把秒單元數(shù)送入顯示緩沖單元J1:CJNE A,#59H,ETI0MOV 21H,#00H ;一分鐘時(shí)間到MOV A,22HADD A,#01H ;分單元加一DA AMOV 22H,ACJNE R7,#00H,J2MOV 31H,A J2: CJNE A,#59H,ETI0MOV 22H,#00H ;一小時(shí)到MOV A,23HADD A,#01H ;時(shí)單元加一DA AMOV 23

21、H,ACJNE R7,#00H,J3MOV 32H,A J3:CJNE A,#23H,ETI0MOV 23H,#00H ;時(shí)單元清零ETI0:POP PSWPOP AccRETIT1定時(shí)中斷處理程序代碼如下:TIM1:PUSH ACCPUSH PSWMOV TL1,#0B0HMOV TH1,#3CHINC 29H ;中斷計(jì)數(shù)MOV A,29HCJNE A,#05H,ETI1 ;0.3秒時(shí)間到,用來閃爍延時(shí)MOV 29H,#00HMOV A,R2CJNE A,#01H,LOOP1 ;R2為01秒閃爍MOV 3EH,#0FDH ;使時(shí)位選能夠正常掃描MOV 3FH,#0FEHXRL 3AH,#20

22、H ;使秒原來正常掃描的位選關(guān)閉,原來關(guān)閉的能夠正常掃描XRL 3BH,#10HAJMP ETI1LOOP1: CJNE A,#02H,LOOP2 ; R2為02分閃爍MOV 3AH,#0DFH ;使秒位選能夠正常掃描MOV 3BH,#0EFHXRL 3CH,#08H ;使分原來正常掃描的位選關(guān)閉,原來關(guān)閉的能夠正常掃描XRL 3DH,#04HAJMP ETI1LOOP2:CJNE A,#03H,ETI1 ;R2為03時(shí)閃爍MOV 3CH,#0F7H ;使分位選能夠正常掃描MOV 3DH,#0FBH XRL 3EH,#02H ;使時(shí)原來正常掃描的位選關(guān)閉,原來關(guān)閉的能夠正常掃描XRL 3FH,

23、#01HETI1: POP PSWPOP ACCRETI三顯示程序顯示程序的流程圖如圖9所示:段碼左移一位開始地址指針設(shè)置取位碼結(jié)束?輸出一位段碼Y取段碼輸出一個(gè)位移脈沖取段碼結(jié)束?子程序返回NNY圖9 顯示程序流程圖DESPLAY:MOV R2 , #01H ;將位碼送R2MOV R0 , #30 ;將段碼送R0NEXT3:MOV A , R0 MOV DPTR, #TAB2MOVC A , A+DPTRMOV P0 , A ;將段碼送R0MOV P1 , R2 ;將位碼送R2LCALL DELAY1 ;調(diào)用延時(shí)程序MOV A , R2JB ACC.3, U2 ;顯示完轉(zhuǎn)U2RL A ;未顯

24、示完,將未碼左移MOV R2 , A ;將位碼重送、R2中INC R0 ;指向31HLJMP NEXT3 U2:RET ;顯示返回四按鍵程序按鍵程序當(dāng)進(jìn)行調(diào)時(shí)時(shí)執(zhí)行,即按下調(diào)試按鍵會(huì)進(jìn)入此程序。SETMM:CLR ET0 ;關(guān)定時(shí)器T0中斷CLR TR0 ;關(guān)閉定時(shí)器T0LCALLDL1S ;調(diào)用1秒延時(shí)程序JB P3.2,CLOSEDIS ;鍵按下時(shí)間小于1秒,關(guān)閉顯示省電MOV R2,#06H ;進(jìn)入調(diào)時(shí)狀態(tài),賦閃爍定時(shí)初值SETB ET1 ;允許T1中斷SETB TR1 ;開啟定時(shí)器T1SET2:JNB P3.2,SET1 ;P3.7口為0鍵未釋放,等待SETB 00H ;鍵釋放,分調(diào)整

25、閃爍標(biāo)志置1SET4:JB P3.2,SET3 ;等待鍵按下LCALLDL05S ;有鍵按下,延時(shí)0.5秒JNB P3.2,SETHH ;按下時(shí)間大于0.5秒轉(zhuǎn)調(diào)小時(shí)狀態(tài)MOV R0,#77H ;按下時(shí)間小于0.5秒加1分鐘操作LCALL ADD1 ;調(diào)用加1子程序MOV A,R3 ;取調(diào)整單元數(shù)據(jù)CLR C ;清進(jìn)位標(biāo)志CJNE A,#60H,HHH ;調(diào)整單元數(shù)據(jù)與60比擬HHH:JC SET4 ;調(diào)整單元數(shù)據(jù)小于60轉(zhuǎn)SET4循環(huán)LCALLCLR0 ;調(diào)整單元數(shù)據(jù)大于或等于60時(shí)清0CLR C ;清進(jìn)位標(biāo)志AJMP SET4 ;跳轉(zhuǎn)到SET4循環(huán)CLOSEDIS:SETB ET0 ;省電

26、LED不顯示狀態(tài)。開T0中斷SETB TR0 ;開啟T0定時(shí)器開時(shí)鐘CLOSE:JB P3.2,CLOSE ;無按鍵按下,等待LCALLDISPLAY ;有鍵按下,調(diào)顯示子程序延時(shí)削抖JB P3.2,CLOSE ;是干擾返回CLOSE等待WAITH:JNB P3.2,WAITH ;等待鍵釋放LJMP START1 ;返回主程序LED數(shù)據(jù)顯示亮SETHH:CLR 00H ;分閃爍標(biāo)志去除進(jìn)入調(diào)小時(shí)狀態(tài)SETHH1:JNB P3.2,SET5 ;等待鍵釋放SETB 01H ;小時(shí)調(diào)整標(biāo)志置1SET6:JB P3.2,SET7 ;等待按鍵按下LCALLDL05S ;有鍵按下延時(shí)0.5秒JNB P3.

27、2,SETOUT ;按下時(shí)間大于0.5秒退出時(shí)間調(diào)整MOV R0,#79H ;按下時(shí)間小于0.5秒加1小時(shí)操作LCALL ADD1 ;調(diào)加1子程序MOV A,R3 CLR C CJNE A,#24H,HOUU ;計(jì)時(shí)單元數(shù)據(jù)與24比擬HOUU:JC SET6 ;小于24轉(zhuǎn)SET6循環(huán)LCALL CLR0 ;大于或等于24時(shí)清0操作AJMP SET6 ;跳轉(zhuǎn)到SET6循環(huán)SETOUT:JNB P3.2,SETOUT1 ;調(diào)時(shí)退出程序。等待鍵釋放LCALL DISPLAY ;延時(shí)削抖JNB P3.2,SETOUT ;是抖動(dòng),返回SETOUT再等待CLR 01H ;清調(diào)小時(shí)標(biāo)志CLR 00H ;清調(diào)

28、分標(biāo)志CLR 02H ;清閃爍標(biāo)志CLR TR1 ;關(guān)閉定時(shí)器T1CLR ET1 ;關(guān)定時(shí)器T1中斷SETB TR0 ;開啟定時(shí)器T0SETB ET0 ;開定時(shí)器T0中斷計(jì)時(shí)開始LJMP START1 ;跳回主程序SET1:LCALLDISPLAY ;鍵釋放等待時(shí)調(diào)用顯示程序調(diào)分AJMP SET2 ;防止鍵按下時(shí)無時(shí)鐘顯示SET3:LCALLDISPLAY ;等待調(diào)分按鍵時(shí)時(shí)鐘顯示用AJMP SET4SET5:LCALLDISPLAY ;鍵釋放等待時(shí)調(diào)用顯示程序調(diào)小時(shí)AJMP SETHH1 ;防止鍵按下時(shí)無時(shí)鐘顯示SET7:LCALL DISPLAY ;等待調(diào)小時(shí)按鍵時(shí)時(shí)鐘顯示用AJMP SE

29、T6SETOUT1:LCALL DISPLAY ;退出時(shí)鐘調(diào)整時(shí)鍵釋放等待AJMP SETOUT ;防止鍵按下時(shí)無時(shí)鐘顯示五、系統(tǒng)調(diào)試與仿真設(shè)計(jì)過程中,通過偉福仿真軟件和Keil軟件來驗(yàn)證系統(tǒng)。操作步驟如下:1.翻開偉福軟件模擬器,首先進(jìn)行仿真器設(shè)置,如下列圖10、圖11所示:選擇E6000/L仿真器POD-8ISIP仿真頭選擇8751 CPU。然后再進(jìn)行通信設(shè)置、目標(biāo)文件以及語言的設(shè)置。最后點(diǎn)擊“好,完成仿真器的設(shè)置。圖10 仿真器選擇界面圖11 目標(biāo)文件選擇界面2.在偉福軟件中輸入程序,進(jìn)行編譯,有好幾處錯(cuò)誤使得程序不能通過編譯。然后查找錯(cuò)誤之處,更改之后終于通過編譯,如下列圖12所示:圖

30、12 編譯成功界面3.在偉福內(nèi)調(diào)試通過以后,進(jìn)入KEIL軟件編輯器,對(duì)程序進(jìn)行下載運(yùn)行,并連接試驗(yàn)箱,查看實(shí)驗(yàn)效果。在Keil中下載到實(shí)驗(yàn)箱上進(jìn)行驗(yàn)證,顯現(xiàn)出實(shí)際的效果。而在Keil中也要進(jìn)行一些參數(shù)的設(shè)置,翻開Keil仿真軟件,首先要新建一個(gè)工程,點(diǎn)菜單ProjectNew Project,在彈出的對(duì)話框中選擇保存的路徑并輸入工程名稱“qqqq后保存,然后在彈出新的工程窗口中選擇參數(shù),其參數(shù)的設(shè)置如下,由于我們使用的是Atmel公司的芯片,所以要選Atmel后確定。如圖13所示:圖13 CPU選擇界面14.在彈出的對(duì)話框中選擇AT89C51這個(gè)芯片,確定。如圖14所示:圖14 CPU選擇界面

31、2通過以上仿真步驟,最終在試驗(yàn)箱上驗(yàn)證時(shí)間顯示、時(shí)間調(diào)整、鬧鐘報(bào)警等功能符合預(yù)期,即本文設(shè)計(jì)的自動(dòng)報(bào)時(shí)系統(tǒng)到達(dá)了我們這次的設(shè)計(jì)要求。六、總結(jié)本次設(shè)計(jì)的自動(dòng)報(bào)時(shí)系統(tǒng)主要由AT89C51單片機(jī)、位掃描控制電路、段碼顯示驅(qū)動(dòng)電路、數(shù)碼管顯示電路、時(shí)鐘芯片等組成。此外還包括一些根本的電路,如電源電路、晶振電路、復(fù)位電路等。系統(tǒng)的軟件設(shè)計(jì)采用模塊化設(shè)計(jì),使程序更具條理性,有利于調(diào)試及程序的運(yùn)行。畢業(yè)設(shè)計(jì)不但是一個(gè)對(duì)過去所學(xué)知識(shí)進(jìn)行綜合運(yùn)用的過程,更是一個(gè)學(xué)習(xí)新知識(shí)的過程。雖然畢業(yè)設(shè)計(jì)即將結(jié)束,但留給我思考的東西卻很多。整個(gè)畢業(yè)設(shè)計(jì)的過程讓我深刻地理解了“學(xué)無至盡、“溫故而知新等古語。在論文撰寫過程中,我查閱了許多國內(nèi)外相關(guān)文獻(xiàn),熟悉了單片機(jī)AT89C51相關(guān)知識(shí)、數(shù)碼管顯示原理、動(dòng)態(tài)掃描顯示原理等。這次畢業(yè)設(shè)計(jì),讓我對(duì)大學(xué)三年所學(xué)過的許多知識(shí)進(jìn)行了實(shí)際應(yīng)用,是一次將課本理論知識(shí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論