版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)課程設(shè)計(jì)報(bào)告組人員:學(xué)號(hào):專業(yè)班級(jí):指導(dǎo)老師:學(xué)院:摘要時(shí)間就是金錢,時(shí)間就是生命。在當(dāng)今競(jìng)爭(zhēng)劇烈的社會(huì)中,信息的競(jìng)爭(zhēng)占據(jù)著十分重要的地位?,F(xiàn)在的競(jìng)爭(zhēng)就是信息的競(jìng)爭(zhēng),要想在信息戰(zhàn)爭(zhēng)中取得勝利,就必須打贏時(shí)間戰(zhàn)。在現(xiàn)代競(jìng)爭(zhēng)中,時(shí)間已經(jīng)成為取勝的關(guān)鍵。所以,有時(shí)間觀念的人才能在競(jìng)爭(zhēng)中取得勝利。因此,看時(shí)間也就成為了人們時(shí)刻要做的事。在很早時(shí)期人們所用的還是比擬單一功能的手表。這種手表只能看時(shí)間而不能看日期、又不具備鬧鈴等功能,而且看起來也不夠直觀,給一些小孩和老人帶來了不便。隨著科技的開展,電子技術(shù)也在不斷的向前飛速開展。本設(shè)計(jì)是簡(jiǎn)單定時(shí)鬧鐘系統(tǒng),不僅能實(shí)現(xiàn)系統(tǒng)要求的功能:(1)能顯示時(shí)時(shí)-分分,(2)能設(shè)定和修改定時(shí)時(shí)間,(3)定時(shí)時(shí)間到后能發(fā)出報(bào)警聲;而且還有附加功能,即還能設(shè)定和修改當(dāng)前所顯示的時(shí)間。本設(shè)計(jì)采用單片機(jī)AT89S52作為核心元件,12MHZ晶振,由P0口輸出所要顯示的字形段碼,由P2口輸出字位信號(hào)。在其根底上擴(kuò)展外圍芯片與電路,附加時(shí)鐘電路及LED電路。LED采用共陰極接法,低電平有效選中相應(yīng)的LED。通過這次設(shè)計(jì)讓我更深入了解單片機(jī)根本電路、如何控制和定時(shí)器和中斷編程的根本方法,從而鍛煉了我學(xué)習(xí)、設(shè)計(jì)和開發(fā)軟、硬件的能力。關(guān)鍵詞:定時(shí)鬧鐘單片機(jī)AT89S52LED目錄1概述………………31.1課程設(shè)計(jì)的目的和意義…………………31.2設(shè)計(jì)要求……………………32系統(tǒng)總體方案及硬件設(shè)計(jì)………42.1總體設(shè)計(jì)方案………………42.2.1主控模塊的選擇…………42.2.2顯示模塊的設(shè)計(jì)………42.2.3控制按鍵的選擇………52.3各功能模塊…………………52.3.1AT89S525…………………52.3.2數(shù)碼管顯示電路…………82.3.3本設(shè)計(jì)輸入輸出電路……………………102.3.4最小系統(tǒng)設(shè)計(jì)……………112.3.5時(shí)鐘電路的設(shè)計(jì)…………133軟件設(shè)計(jì)……………………143.1系統(tǒng)軟件設(shè)計(jì)說明…………143.2LED的編程思想……………143.3程序調(diào)試……………………143.4程序流程圖…………………154課程設(shè)計(jì)體會(huì)…………………16參考文獻(xiàn)……………17附1源程序代碼……………………18附2系統(tǒng)原理圖……………………271.概述1.1課程設(shè)計(jì)的目的和意義課程設(shè)計(jì)是在學(xué)完《單片機(jī)原理及接口技術(shù)》課程之后綜合利用所學(xué)單片機(jī)知識(shí)完成一個(gè)單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)并在實(shí)驗(yàn)室實(shí)現(xiàn),從而加深對(duì)單片機(jī)軟硬知識(shí)的理解,獲得初步的應(yīng)用經(jīng)驗(yàn),為走出校門從事單片機(jī)應(yīng)用的相關(guān)工作打下根底.1.2設(shè)計(jì)要求1〕能顯示“時(shí)時(shí)-分分〞。2〕能設(shè)定、修改定時(shí)時(shí)間。3〕定時(shí)時(shí)間到能發(fā)出報(bào)警聲或者啟動(dòng)繼電器,從而控制電器的啟停2.系統(tǒng)總體方案及硬件設(shè)計(jì)2.1總體設(shè)計(jì)方案本設(shè)計(jì)使用的是單片機(jī)作為核心的控制元件,使得電路的可靠性比擬高,功能也比擬強(qiáng)大,而且可以隨時(shí)的更新系統(tǒng),進(jìn)行不同狀態(tài)的組合。
本系統(tǒng)采用單片機(jī)AT89S52作為本設(shè)計(jì)的核心元件,利用7段共陰LED作為顯示器件。接入共陰LED顯示器,可顯示時(shí),分鐘,單片機(jī)外圍接有定時(shí)報(bào)警系統(tǒng),定時(shí)時(shí)間到,揚(yáng)聲器發(fā)出報(bào)警聲,提示預(yù)先設(shè)定時(shí)間電器的起停時(shí)間到,從而控制電器的起停。電路由以下局部組成:時(shí)鐘電路、復(fù)位電路、控制電路、LED顯示,報(bào)警電路,芯片選用AT89S52單片機(jī)。2.2方案比擬2.2.1主控模塊的選擇方案一:8031芯片內(nèi)部無ROM,需要外擴(kuò)程序存儲(chǔ)器,由此造成電路焊接的困難,況且使用8031還需要另外購置其他的芯片,從而造成本錢較高,性價(jià)比低。方案二:89C51芯片內(nèi)部有ROM,且片內(nèi)ROM全部采用FlashROM,它能于3V的超低壓工作,與MCS-51系列單片機(jī)完全兼容,但是其不具備ISP在線編程技術(shù),需把程序編寫好以后再放到編程器中燒寫,才可以進(jìn)行硬件電路的調(diào)試,倘假設(shè)程序編寫出現(xiàn)問題,調(diào)試電路就比擬麻煩,而且其芯片內(nèi)存也只有4KB。方案三:基于前兩種方案的比擬,考慮到AT89S52,該芯片內(nèi)部既有FlashROM,又與MCS-51兼容,而且ISP在線編程技術(shù)適用于AT89S52芯片,這樣既降低了本錢也無需反復(fù)插拔芯片,可防止損壞芯片;而且他的性能穩(wěn)定且內(nèi)存達(dá)8KB。綜觀上述三種方案的論證與比擬,我們采用AT89S52作為主控模塊芯片。2.2.2顯示模塊的設(shè)計(jì)方案一:LCD數(shù)碼管液晶顯示,由單片機(jī)驅(qū)動(dòng).它主要用來顯示大量數(shù)據(jù)、文字、圖形,能夠顯示的位數(shù)多,顯示得清晰多樣、美觀,但同時(shí)液晶顯示器的編寫程序復(fù)雜,價(jià)格昂貴,從而降低了整個(gè)系統(tǒng)的性價(jià)比,故不采用此種方案。方案二:點(diǎn)陣顯示,是由八行八列的發(fā)光二極管集成在一塊電路上組成,主要用來顯示漢字,同時(shí)也能顯示數(shù)字和少量圖象,但它的焊接較麻煩,價(jià)格高,鑒于所設(shè)計(jì)的題目要求它不切實(shí)際。所以排除此方案。方案三:LED數(shù)碼管靜態(tài)顯示,電路容易理解且驅(qū)動(dòng)的程序簡(jiǎn)單,多片七段譯碼器驅(qū)動(dòng)顯示,這不僅增加了本錢,還需要占用單片機(jī)多個(gè)I/O口,也給電路的焊接帶來一定的困難,因此不選用這種方案作為顯示模塊。方案四:采用LED數(shù)碼管動(dòng)態(tài)掃描顯示,價(jià)格低廉,不僅減少了對(duì)I/O口的浪費(fèi),而且能夠同時(shí)驅(qū)動(dòng)多個(gè)數(shù)碼管。其驅(qū)動(dòng)程序容易編寫和理解。經(jīng)過四種方案的比擬,排除了前三種方案之后,最后選擇方案四:LED數(shù)碼管動(dòng)態(tài)掃描顯示。2.2.3控制按鍵的選擇方案一:選取陣列式按鍵,減少了I/O口的使用,且掃描M×N個(gè)按鍵只需占用M+N個(gè)I/O口即可實(shí)現(xiàn),但給編程帶來了一定的困難,雖然節(jié)省了很多的口線,降低了本錢,但在此設(shè)計(jì)中所用的按鍵要盡量少,因此排除此方案。方案二:獨(dú)立式按鍵,每個(gè)按鍵實(shí)現(xiàn)一個(gè)功能,易于控制且編寫程序簡(jiǎn)單,容易理解,雖然會(huì)占用一定的單片機(jī)I/O口資源,但是題目中要求使用的按鍵要盡量少。通過以上兩種方案比擬,采用方案二。2.2.4總體方案經(jīng)過方案論證與比擬,選擇AT89S52作為主控,采用獨(dú)立式按鍵控制,LED數(shù)碼管動(dòng)態(tài)掃描顯示。2.3各功能模塊2.3.1AT89S52主要性能與MCS-51單片機(jī)產(chǎn)品兼容、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器、1000次擦寫周期、全靜態(tài)操作:0Hz~33Hz、三級(jí)加密程序存儲(chǔ)器、32個(gè)可編程I/O口線、三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源、全雙工UART串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時(shí)器、雙數(shù)據(jù)指針、掉電標(biāo)識(shí)符。功能特性描述At89s52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8位微控制器8K字節(jié)在系統(tǒng)可編程FlashAT89S52P0口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1〞時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,p1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫“1〞時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入〔P1.0/T2〕和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入〔P1.1/T2EX〕,具體如下所示。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。引腳號(hào)第二功能P1.0T2〔定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入〕,時(shí)鐘輸出P1.1T2EX〔定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制〕P1.5MOSI〔在系統(tǒng)編程用〕P1.6MISO〔在系統(tǒng)編程用〕P1.7SCK〔在系統(tǒng)編程用〕P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫“1〞時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器〔例如執(zhí)行MOVX@DPTR〕時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址〔如MOVX@RI〕訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫“1〞時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。P3口亦作為AT89S52特殊功能〔第二功能〕使用,如下所示。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INTO(外中斷0)P3.3INT1(外中斷1)P3.4TO(定時(shí)/計(jì)數(shù)器0)P3.5T1(定時(shí)/計(jì)數(shù)器1)P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號(hào)。RST——復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。ALE/PROG——當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE〔地址鎖存允許〕輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。對(duì)FLASH存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖〔PROG〕。如有必要,可通過對(duì)特殊功能存放器〔SFR〕區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。PSEN——程序儲(chǔ)存允許〔PSEN〕輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52由外部程序存儲(chǔ)器取指令〔或數(shù)據(jù)〕時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲(chǔ)器〔地址為0000H-FFFFH〕,EA端必須保持低電平〔接地〕。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平〔接Vcc端〕,CPU那么執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。FLASH存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。2.3.2數(shù)碼管顯示電路單片機(jī)中通常使用7段LED,LED是發(fā)光二極管顯示器的縮寫。LED顯示器由于結(jié)構(gòu)簡(jiǎn)單,價(jià)格廉價(jià),體積小,亮度高,電壓低,可靠性高,壽命長(zhǎng),響應(yīng)速度快,顏色鮮艷,配置靈活,與單片機(jī)接口方便而得到廣泛應(yīng)用。LED顯示器是由假設(shè)干個(gè)發(fā)光二極管組成顯示字段的顯示部件,當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的一個(gè)點(diǎn)或一個(gè)筆劃發(fā)光,控制不同組合的二極管導(dǎo)通,就能顯示出各種字符。LED七段數(shù)碼顯示器由8個(gè)發(fā)光二極管組成顯示字符,根據(jù)內(nèi)部發(fā)光二極管的連接形式不同,LED有共陰極和共陽極兩種,本系統(tǒng)采用共陰極。LED顯示原理中選用共陰極的LED時(shí),所有發(fā)光二極管陰極連在一起接地,當(dāng)某個(gè)發(fā)光二極管的陽極參加高電平時(shí),對(duì)應(yīng)的二極管點(diǎn)亮。因此要顯示某字形就應(yīng)使此字形的相應(yīng)段的二極管點(diǎn)亮,實(shí)際上就是送一個(gè)用不同電平組合代表的數(shù)據(jù)字來控制LED的顯示,此數(shù)據(jù)為字符的段碼或稱為字型碼。字型碼與LED顯示器各段的關(guān)系為D7D6D5D4D3D2D1D0dpgfedcba表2-1dp為小數(shù)點(diǎn),字符0、1、2……F的段碼如表2-2所示字符段碼〔共陰〕段碼〔共陽〕03FHCOH106HF9H25BHA4H34FHB0H466H99H56DH92H67DH82H707HF8H87FH80H96FH90HA77H88HB7CH83HC39HC6HD5EHA1HE79H86HF71H8EH-40HBFH.80H7FH熄滅00HFFH以下圖是本系統(tǒng)采用的共陰極LED七段數(shù)碼顯示器2.3.3本設(shè)計(jì)輸入輸出電路該系統(tǒng)輸入電路采用的是P1口以及4個(gè)上拉電阻,其阻值為10千歐。其圖如下:圖2-4系統(tǒng)的輸出電路采用的是P0口和P2口,喇叭口采用P3.7口。其電路如以下圖2.3.4最小系統(tǒng)設(shè)計(jì)圖AT89S52的最小系統(tǒng)單片機(jī)要正常運(yùn)行,必須具備一定的硬件條件,其中最主要的就是三個(gè)根本條件:〔1〕電源正常;〔2〕時(shí)鐘正常;〔3〕復(fù)位正常。AT89S52的引腳如圖3-1所示。在AT89S52單片機(jī)的40個(gè)引腳中,電源引腳2根,晶振引腳2根,控制引腳4根,可編程輸入輸出引腳32根。(1)工作電源電源是單片機(jī)工作的動(dòng)力源泉,對(duì)應(yīng)的接線方法為;40腳〔VCC〕電源引腳,工作時(shí)接+5電源,20腳〔GND〕為接地線。(2)時(shí)鐘電路時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)序脈沖,單片機(jī)所有運(yùn)算與控制過程都是在統(tǒng)一的時(shí)序脈沖的驅(qū)動(dòng)下進(jìn)行的,時(shí)鐘電路就好比人的心臟一樣重要。當(dāng)采用內(nèi)部時(shí)鐘時(shí),連接方法如圖2-1所示,在晶振引腳XTAL1(19腳)和XTAL2(18腳)引腳之間接入一個(gè)晶振,兩個(gè)引腳對(duì)地分別再接入一個(gè)電容即可產(chǎn)生所需的時(shí)鐘信號(hào),電容的容量一般在幾十皮法,如30PF。(3)復(fù)位電路在復(fù)位引腳(9腳)持續(xù)出現(xiàn)24個(gè)振蕩器脈沖周期(即2個(gè)機(jī)器周期)的高電平信號(hào)將使單片機(jī)復(fù)位。如圖2-1所示電容C和電阻R構(gòu)成了單片機(jī)上電自動(dòng)復(fù)位電路。復(fù)位后,單片機(jī)從0000H單元開始執(zhí)行程序,并初始化一些專用存放器為復(fù)位狀態(tài)值,受影響的專用存放器如下表所示。復(fù)位存放器狀態(tài)表存放器狀態(tài)存放器狀態(tài)PC000HTC0N00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0—P3FFHSCON00HIPXXX00000HSBUF不確定IEOXX00000HPCON0XXX0000HTMOD00H(4)控制引腳EA接法EA/VPP(31腳)為內(nèi)外程序存儲(chǔ)器選擇控制引腳,當(dāng)EA為低電位時(shí)單片機(jī)從外部程序存儲(chǔ)器取指令;當(dāng)EA接高電平時(shí)單片機(jī)從內(nèi)部程序存儲(chǔ)器取指令。AT89S51單片機(jī)內(nèi)部有4KB可反復(fù)擦寫1000次以上的程序存儲(chǔ)器,因此要把EA接+5V高電平,讓單片機(jī)運(yùn)行內(nèi)部的程序,這樣就可以通過反復(fù)燒寫來驗(yàn)證程序了。這就是AT89S52單片機(jī)最小化系統(tǒng)的連接,只要把編寫好的程序燒寫到單片機(jī)內(nèi)部,并接上5V電源就可以正常運(yùn)行了2.3.5時(shí)鐘電路的設(shè)計(jì)1〕單片機(jī)時(shí)鐘時(shí)鐘是單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn),有條不紊的一拍一拍地工作。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時(shí)鐘電路有兩種方式:一種是內(nèi)部時(shí)鐘方式,另一種為外部時(shí)鐘方式。本文用的是內(nèi)部時(shí)鐘方式。電路設(shè)計(jì)如以下圖所示。單片機(jī)時(shí)鐘AT89S52單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,該高增益反向放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器3軟件設(shè)計(jì)3.1系統(tǒng)軟件設(shè)計(jì)說明該系統(tǒng)軟件程序主要有主程序模塊,定時(shí)中斷效勞程序,中斷等待效勞程序,鍵盤效勞程序,顯示子程序效勞程序等六大模塊組成。在AT89S52外圍的一個(gè)17管腳即P3.7管口上加揚(yáng)聲器,通過軟件與硬件的結(jié)合可實(shí)現(xiàn)定時(shí)報(bào)警功能。圖中按鍵從上往下設(shè)定為S1,S2,S3,S4,S1與p1.4相連,S2與p1.3相連,S3與p1.2相連,S4與p1.1相連。當(dāng)需要設(shè)定當(dāng)前時(shí)間時(shí),按一下S4鍵,進(jìn)入時(shí)間設(shè)定狀態(tài),按一下S2,分鐘加1;按一下S3,小時(shí)加1。如此反復(fù)來設(shè)定當(dāng)前時(shí)間。調(diào)好時(shí)間后按S1退出當(dāng)前時(shí)間設(shè)定狀態(tài);當(dāng)要設(shè)定定時(shí)時(shí)間時(shí),按下S3,進(jìn)入定時(shí)時(shí)間設(shè)定狀態(tài),按一下S2,小時(shí)加1;按一下S4,分鐘加1。如此反復(fù)來設(shè)定要設(shè)定的定時(shí)時(shí)間。設(shè)好后,按下S1退出定時(shí)時(shí)間設(shè)定狀態(tài)。3.2LED的編程思想本設(shè)計(jì)使用LED數(shù)碼管顯示,LED顯示器具有耗電少、本錢低、配置簡(jiǎn)單靈活、安裝方便、耐震動(dòng)、使用壽命長(zhǎng)等優(yōu)點(diǎn),因而應(yīng)用廣泛。該方案控制最簡(jiǎn)單,但是只能顯示有限的符號(hào)和數(shù)字,對(duì)于設(shè)計(jì)中復(fù)雜的顯示功能顯然不能勝任。雖然點(diǎn)陣液晶可以顯示多種字符和圖形,擁有友好的人機(jī)界面及強(qiáng)大的顯示功能。特別適用于智能控制的可編程人性化顯示。但是考慮到本設(shè)計(jì)的實(shí)際要求,使用數(shù)碼管顯示就足以到達(dá)要求了。七段LED由七個(gè)發(fā)光二極管按日字排開,所有發(fā)光二極管的陽極連在一起成共陽極,陰極連在一塊稱共陰極接法。當(dāng)采用芯片驅(qū)動(dòng)時(shí)不需要加限流電阻,其他情況下一般應(yīng)外接限流電阻。動(dòng)態(tài)顯示電路有顯示塊,字形碼封鎖驅(qū)動(dòng)器,字位鎖存驅(qū)動(dòng)器三局部組成。3.3程序調(diào)試1〕將程序輸入到偉福的環(huán)境下;2〕用單步運(yùn)行和斷點(diǎn)運(yùn)行方式調(diào)試程序;3〕調(diào)試T0中斷效勞程序,首先在記數(shù)單元39H、3AH、3BH、3CH單元中預(yù)置數(shù),調(diào)試秒單元向分單元進(jìn)位及分單元向時(shí)單元的進(jìn)位,最后將T0中斷效勞程序統(tǒng)調(diào)通過;4〕在39H、3AH、3BH、3CH單元中預(yù)置數(shù),調(diào)試顯示程序;5〕調(diào)試主程序,使鬧鐘走時(shí)系統(tǒng)工作正常。3.4程序流程圖判斷鬧鐘時(shí)間到否程序判斷鬧鐘時(shí)間到否程序初始化調(diào)用顯示程序開始P1.1是否按下?調(diào)用時(shí)間設(shè)定程序P1.2是否按下?Y調(diào)用鬧鐘時(shí)間設(shè)定程序NNYYYY4.課程設(shè)計(jì)體會(huì)單片機(jī)是一門應(yīng)用性很強(qiáng)的學(xué)科,課程設(shè)計(jì)是培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)我們實(shí)際工作能力的具體訓(xùn)練和考察過程,為自己今后從事與單片機(jī)控制系統(tǒng)有關(guān)的工作打下了根底。雖然在做課程設(shè)計(jì)以前已經(jīng)系統(tǒng)的把單片機(jī)課本認(rèn)真的學(xué)習(xí)了一下,但是在剛拿到設(shè)計(jì)任務(wù)書時(shí)還是有點(diǎn)一頭霧水,不知道該從哪里下手。令人欣慰的是經(jīng)過一周的學(xué)習(xí),雖然過程很艱辛,但是總算實(shí)現(xiàn)了定時(shí)鬧鐘的功能,所有的努力都很值得。這一周的大局部時(shí)間都在研究程序怎么處理,在這個(gè)過程中加深了我對(duì)匯編語言命令的應(yīng)用,而且也更加了解到軟硬件配套的重要性。以下是我本次單片機(jī)課程設(shè)計(jì)的幾點(diǎn)心得與體會(huì):
1.在設(shè)計(jì)程序之前,務(wù)必要對(duì)所學(xué)單片機(jī)課程的內(nèi)容有一個(gè)系統(tǒng)的了解,知道單片機(jī)片內(nèi)片外的內(nèi)容及其功能。
2.設(shè)計(jì)程序采用什么編程語言并不是非常重要,關(guān)鍵要有一個(gè)清晰的思路和一個(gè)完整的軟件流程圖。模塊化的設(shè)計(jì)思想在程序設(shè)計(jì)中的作用是十分大的,它可以為你提供一個(gè)比擬清晰的思路,并且很容易找到頭緒,不至于在社以一個(gè)程序時(shí)感覺到無從下手。
3.在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,"反復(fù)修改,不斷改良"是程序設(shè)計(jì)的必經(jīng)之路。程序剛開始編好時(shí),一般情況下會(huì)存在很多錯(cuò)誤,要不斷地修改,不斷的改良才能到達(dá)預(yù)期的目的,編寫程序的時(shí)間并不是很長(zhǎng),主要是修改程序會(huì)花很多時(shí)間。
4.要養(yǎng)成注釋程序的好習(xí)慣,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便。剛開始我在編寫程序時(shí),很不習(xí)慣于寫注釋,感覺很麻煩,而且沒用,但是在修改的過程中我就遇到了較大的麻煩,以至于不得不重新的作了注釋,以增加程序的易讀性,從而使修改正程變得容易一些??傊?,通過這次課程設(shè)計(jì)不僅使我穩(wěn)固了本課程所學(xué)的根本知識(shí),還使我具有了撰寫科研報(bào)告的初步訓(xùn)練能力,我相信這些能力在我以后的工作或者是再學(xué)習(xí)中一定會(huì)起到不小的作用,一切的辛苦和艱難都是值得的。參考文獻(xiàn)[1]單片機(jī)課程設(shè)計(jì)指導(dǎo)書 皮大能北京理工大學(xué)出版社 2023.7[2]8051單片機(jī)實(shí)踐與應(yīng)用 吳金戎 清華大學(xué)出版社 2003.8[3]單片機(jī)技術(shù)根底教程與實(shí)踐夏路易 電子工業(yè)出版社2023.1[4]單片機(jī)原理及應(yīng)用 張毅剛高等教育出版社2023.11[5]基于Proteus的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真實(shí)例蔣輝平機(jī)械工業(yè)出版社2007.[6].余發(fā)山主編,單片機(jī)原理及應(yīng)用技術(shù),中國(guó)礦業(yè)大學(xué)出版社2003.12附件1:源程序代碼ORG0000H LJMPMAIN ORG000BH LJMPTIME;×××××主程序局部:××××× ORG0100H MAIN:MOVSP,#50HMOV20H,#00H;秒鐘BIN MOV21H,#00H;分鐘BIN MOV22H,#00H;小時(shí)BIN MOV23H,#01H MOV24H,#01H MOV25H,#00H MOV30H,#00HMOV31H,#00H MOV32H,#00H MOV33H,#00H MOV34H,#00H MOV35H,#00H MOV36H,#01H MOV37H,#00H MOV38H,#01H MOV39H,#00H MOVTMOD,#01H;16位計(jì)數(shù)器 MOVTH0,#03CH;賦計(jì)數(shù)初值 MOVTL0,#0B0H MOVIE,#10000111B SETBTR0;T0啟動(dòng)計(jì)數(shù)MOVR2,#14HMOVP2,#0FFHLOOP:LCALLTIMEPRO LCALLDISPLAY1 JBP1.1,M1 LCALLSETTIME;調(diào)用設(shè)定時(shí)間程序 LJMPLOOPM1:JBP1.2,M2 LCALLSETATIME;調(diào)用設(shè)定時(shí)間程序 LJMPLOOP M2:JBP1.4,M4 LCALLLOOKATIME;調(diào)用設(shè)定鬧鐘時(shí)間程序M4:LJMPLOOPDELAY:MOVR4,#030H;延時(shí)時(shí)間DL00:MOVR5,#0FFHDL11:MOVR6,#9HDL12:DJNZR6,DL12 DJNZR5,DL11 DJNZR4,DL00 RET;×××××設(shè)定時(shí)間程序:×××××SETTIME:L0:LCALLDISPLAY1;調(diào)用時(shí)間允許程序MM1:JBP1.2,L1 MOVC,P1.2 JCMM1 LCALLDELAY1;調(diào)用延時(shí) JCMM1MSTOP1:MOVC,P1.2 JNCMSTOP1;判斷P1.2是否釋放?釋放那么繼續(xù) LCALLDELAY1;調(diào)用延時(shí) MOVC,P1.2 JNCMSTOP1 INC22H;小時(shí)增加1 MOVA,22H CJNEA,#18H,GO12;判斷小時(shí)是否到24時(shí)?未到繼續(xù)循環(huán) MOV22H,#00H;小時(shí)復(fù)位 MOV34H,#00HMOV35H,#00H LJMPL0 L1:JBP1.3,L2 MOVC,P1.3 JCL1 LCALLDELAY1;延時(shí) JCL1 MSTOP2:MOVC,P1.3 JNCMSTOP2;判斷P1.3是否釋放?釋放那么繼續(xù) LCALLDELAY1;調(diào)用延時(shí) MOVC,P1.3 JNCMSTOP2 INC21H;分鐘增加一 MOVA,21H CJNEA,#3CH,GO11 MOV21H,#00H;分鐘復(fù)位 MOV32H,#00H MOV33H,#00H LJMPL0 GO11:MOVB,#0AH;將A中的內(nèi)容分成上下兩局部 DIVAB MOV32H,B MOV33H,A LJMPL0 GO12:MOVB,#0AH DIVAB MOV34H,B MOV35H,ALJMPL0 L2:JBP1.4,L0 MOVC,P1.4 JCL2 LCALLDELAY1;調(diào)用延時(shí) MOVC,P1.4 JCL2 STOP1:MOVC,P1.4;判斷按鍵P1.4是否釋放? JNCSTOP1 LCALLDELAY1;調(diào)用延時(shí) MOVC,P1.4 JNCSTOP1 LJMPLOOP ;×××××設(shè)置鬧鐘時(shí)間××××× SETATIME:LCALLDISPLAY2;調(diào)用時(shí)間運(yùn)行 N0:LCALLDISPLAY2 MM2:JBP1.3,N1;判斷P1.3是否按下? MOVC,P1.3 JCMM2 LCALLDELAY1 JCMM2 MSTOP3:MOVC,P1.3;判斷P1.3是否釋放?JNCMSTOP3 LCALLDELAY1 MOVC,P1.3 JNCMSTOP3 INC24H;設(shè)定小時(shí)增加1 MOVA,24H CJNEA,#24,GO22 MOV24H,#00H;時(shí)鐘復(fù)位 MOV38H,#00H MOV39H,#00H LJMPN0 N1:JBP1.1,N2;判斷P1.1是否按下? MOVC,P1.1 JCN1 LCALLDELAY1 JCN1 MSTOP4:MOVC,P1.1;判斷P1.1是否釋放? JNCMSTOP4 LCALLDELAY1 MOVC,P1.1 JNCMSTOP4 INC23H;設(shè)定鬧鐘分鐘增加1 MOVA,23H CJNEA,#60,GO21;判斷A是否到60分? MOV23H,#00H;分鐘復(fù)位 MOV36H,#00H MOV37H,#00H LJMPN0 GO21:MOVB,#0AH;將A中的內(nèi)容分成上下兩局部 DIVAB MOV36H,B MOV37H,A LJMPN0 GO22:MOVB,#0AH DIVABMOV38H,B MOV39H,A LJMPN0 N2:JBP1.4,N0;判斷P1.4是否按下? MOVC,P1.4 JCN2 LCALLDELAY1 MOVC,P1.4 JCN2 STOP2:MOVC,P1.4;判斷P1.4是否釋放?JNCSTOP2 LCALLDELAY1 MOVC,P1.4 JNCSTOP2 LJMPLOOP TIMEPRO:MOVA,21H MOVB,23H CJNEA,B,BK;判斷分鐘是否運(yùn)行到設(shè)定的鬧鐘的分鐘? MOVA,22H MOVB,24H CJNEA,B,BK;判斷時(shí)鐘是否運(yùn)行到設(shè)定的鬧鐘的時(shí)鐘? SETB25H.0 MOVC,25H.0 JCXX XX:LCALLTIMEOUT;調(diào)用時(shí)間鬧鐘響應(yīng)程序 BK:RET TIMEOUT: X1:LCALLBZ;調(diào)用喇叭響應(yīng)程序 LCALLDISPLAY2 CLR25H.0 JBP1.4,X1;判斷P1.4是否按下? LCALLDELAY CLR25H.0 LJMPDISPLAY1 BZ:CLRP3.7;喇叭響應(yīng)程序 MOVR7,#250;響應(yīng)延時(shí)時(shí)間T2:MOVR6,#124 T3:DJNZR6,T3 DJNZR7,T2 SETBP3.7 RET LOOKATIME:LCALLDISPLAY2;調(diào)用時(shí)間運(yùn)行程序 MM:JBP1.4,LOOKATIME;判斷按鍵P1.4是否按下 MOVC,P1.4 JCMM LCALLDELAY1 MOVC,P1.4JCMM STOP3:MOVC,P1.4 JNCSTOP3 LCALLDELAY1 MOVC,P1.4 JNCSTOP3 LJMPLOOPDELAY1:MOVR4,#14H;時(shí)間延時(shí) DL001:MOVR5,#0FFH DL111:DJNZR5,DL111 DJNZR4,DL001 RET ;×××××?xí)r間運(yùn)行程序××××× TIME:PUSHACC;現(xiàn)場(chǎng)保護(hù) PUSHPSW MOV TH0,#03CH;賦初值 MOV TL0,#0B0H DJNZ R2,RET0 MOV R2,#14H MOV A,20H CLRC INCA;秒鐘自加1 CJNE A,#3CH,GO1;判斷秒鐘是否到60秒? MOV 20H,#0;到60秒復(fù)位 MOV30H,#0 MOV31H,#0 MOV A,21H INC A;分鐘自加1 CJNE A,#3CH,GO2;判斷分鐘是否到60分? MOV21H,#0H;到60分復(fù)位
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年西藏革吉縣財(cái)政局招聘財(cái)會(huì)監(jiān)督人員的備考題庫及答案詳解一套
- 2025年中國(guó)社會(huì)科學(xué)院公開招聘第一批專業(yè)技術(shù)人員169人備考題庫及參考答案詳解1套
- 2025年福清市人民法院關(guān)于公開招聘勞務(wù)派遣人員的備考題庫及答案詳解一套
- 2025年北京協(xié)和醫(yī)院變態(tài)(過敏)反應(yīng)科合同制科研助理招聘?jìng)淇碱}庫有答案詳解
- 2024年河南安陽公安機(jī)關(guān)留置看護(hù)輔警招聘考試真題
- 鞍山臺(tái)安縣新公益性崗位招聘考試真題2024
- 2025河北秦皇島市社會(huì)保險(xiǎn)事業(yè)服務(wù)中心選調(diào)6人備考核心題庫及答案解析
- 2025年12月杭州市公安局濱江區(qū)分局招聘警務(wù)輔助人員20人筆試重點(diǎn)題庫及答案解析
- 2025年山西省腦癱康復(fù)醫(yī)院公開招聘編制外合同制工作人員備考題庫及參考答案詳解1套
- 2025中國(guó)有色金屬工業(yè)昆明勘察設(shè)計(jì)研究院有限公司面向社會(huì)招聘5人考試重點(diǎn)試題及答案解析
- T/CGAS 024-2023城鎮(zhèn)燃?xì)庥铆h(huán)壓式不銹鋼管道工程技術(shù)規(guī)程
- 房建工程總承包EPC項(xiàng)目技術(shù)標(biāo)(投標(biāo)方案)(技術(shù)標(biāo))
- 生活自理能力幼兒園培訓(xùn)
- 麥當(dāng)勞管理手冊(cè)
- 【MOOC】線性代數(shù)典型習(xí)題講解-北京化工大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 華中農(nóng)業(yè)大學(xué)《數(shù)學(xué)分析》2021-2022學(xué)年第一學(xué)期期末試卷
- 大學(xué)體育-瑜伽學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 廈門大學(xué)介紹
- 0-6歲兒童健康管理規(guī)范課件
- 分享五年級(jí)語文英才教程電子版
- 超星爾雅學(xué)習(xí)通《文獻(xiàn)信息檢索與利用(成都航空職業(yè)技術(shù)學(xué)院)》2024章節(jié)測(cè)試答案
評(píng)論
0/150
提交評(píng)論