基于單片機(jī)的簡易數(shù)字鐘-課程設(shè)計說明書_第1頁
基于單片機(jī)的簡易數(shù)字鐘-課程設(shè)計說明書_第2頁
基于單片機(jī)的簡易數(shù)字鐘-課程設(shè)計說明書_第3頁
基于單片機(jī)的簡易數(shù)字鐘-課程設(shè)計說明書_第4頁
基于單片機(jī)的簡易數(shù)字鐘-課程設(shè)計說明書_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGE課程設(shè)計說明書(2012/2013學(xué)年第二學(xué)期)課程名稱:單片機(jī)應(yīng)用題目:基于單片機(jī)的簡易數(shù)字鐘專業(yè)班級:自動化10-自動化(3)班學(xué)生姓名:倪設(shè)計成績:2013年6月26日6基于單片機(jī)的數(shù)字鐘課程設(shè)計報告摘要目錄第1章緒論 1.1課題背景……………11.2課題來源……………2 1.3本章小結(jié)……………2第2章相關(guān)器件的結(jié)構(gòu) 2.1MCS-51的結(jié)構(gòu)………………………32.2CD4511…………………42.37段數(shù)碼管……………62.4三極管結(jié)構(gòu)……………72.5本章小結(jié)…………… 8第3章總體設(shè)計方案 3.1原始數(shù)據(jù)及主要任務(wù)…………………83.2技術(shù)要求………………83.3器件清單………………8 3.4設(shè)計方案………………9 3.5總電路原理圖…………9第4章電路的硬件設(shè)計 4.1復(fù)位電路………………10 4.2時鐘電路………………114.3按鍵電路………………114.4整點(diǎn)報時電路…………124.5數(shù)碼管顯示電路………………………134.6本章小結(jié)…………… 14第5章電路的軟件設(shè)計 115.1軟件程序內(nèi)容……………155.2軟件流程圖……………155.3定時程序設(shè)計……………175.3.1實(shí)時時鐘實(shí)現(xiàn)的基本方法……………175.3.2實(shí)時時鐘程序設(shè)計步驟………………175.4程序說明…………………185.5本章小結(jié)…………………18第6章系統(tǒng)仿真6.1PROTUES軟件介紹………………………186.2電子鐘系統(tǒng)PROTUES仿真………………18第7章調(diào)試與功能說明7.2系統(tǒng)性能測試與功能說明………………207.3系統(tǒng)時鐘誤差分析………………………207.1硬盤調(diào)試…………………207.4軟件調(diào)試問題及解決……………………20第8章結(jié)論與展望 158.1結(jié)束語…………………218.2單片機(jī)的發(fā)展趨勢……………………21參考文獻(xiàn)……………………23附錄…………………………23致謝…………………………35摘要單片機(jī)自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗地、使用方便、價格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,幾乎“無處不在,無所不為”。單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動化、汽車電子、PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。本論文基于單片機(jī)原理技術(shù)介紹了一款于MCS-51芯片作為核心控制器的單片機(jī)簡易數(shù)字鐘的設(shè)計與制作,包括硬件電路原理的實(shí)現(xiàn)方案設(shè)計、軟件程序編輯的實(shí)現(xiàn)、數(shù)字鐘正常工作的流程、原理圖仿真實(shí)現(xiàn)、硬件實(shí)物的安裝制作與硬件實(shí)物的調(diào)試過程。該單片機(jī)數(shù)字電子鐘采用LED數(shù)碼管能夠準(zhǔn)確顯示時間(顯示格式為:時時,分分),可隨時進(jìn)行時間調(diào)整,時間可采用24小時制顯示。不僅能滿足所需要求而且還有很多功能可供開發(fā),有著廣泛的應(yīng)用領(lǐng)域關(guān)鍵詞:單片機(jī)

;數(shù)字電子鐘

;數(shù)碼管

第1章緒論1.1課題背景單片機(jī)自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗地、使用方便、價格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,幾乎“無處不在,無所不為”。單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動化、汽車電子、PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。單片機(jī)有兩種基本結(jié)構(gòu)形式:一種是在通用微型計算機(jī)中廣泛采用的,將程序存儲器和數(shù)據(jù)存儲器合用一個存儲器空間的結(jié)構(gòu),稱為普林斯頓結(jié)構(gòu)。另一種是將程序存儲器和數(shù)據(jù)存儲器截然分開,分別尋址的結(jié)構(gòu),一般需要較大的程序存儲器,目前的單片機(jī)以采用程序存儲器和數(shù)據(jù)存儲器截然分開的結(jié)構(gòu)為多。20世紀(jì)80年代中期以后,Intel公司以專利轉(zhuǎn)讓的形式把8051內(nèi)核技術(shù)轉(zhuǎn)讓給許多半導(dǎo)體芯片生產(chǎn)廠家,如ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS等。這些廠家生產(chǎn)的芯片是MCS-51系列的兼容產(chǎn)品,準(zhǔn)確地說是與MCS-51指令系統(tǒng)兼容的單片機(jī)。這些兼容機(jī)與8051的系統(tǒng)結(jié)構(gòu)(主要是指令系統(tǒng))相同,采用CMOS工藝,因而,常用80C51系列來稱呼所有具有8051指令系統(tǒng)的單片機(jī),它們對8051單片機(jī)一般都作了一些擴(kuò)充,更有特點(diǎn)。其功能和市場競爭力更強(qiáng),不該把它們直接稱呼為MCS-51系列單片機(jī),因?yàn)镸CS只是Intel公司專用的單片機(jī)系列型號。MCS-51系列及80C51單片機(jī)有多種品種。它們的引腳及指令系統(tǒng)相互兼容,主要在內(nèi)部結(jié)構(gòu)上有些區(qū)別。目前使用的1.2課題來源現(xiàn)代生活的人們越來越重視起了時間觀念,可以說是時間和金錢劃上了等號。對于那些對時間把握非常嚴(yán)格和準(zhǔn)確的人或事來說,時間的不準(zhǔn)確會帶來非常大的麻煩,所以以數(shù)碼管為顯示器的時鐘比指針式的時鐘表現(xiàn)出了很大的優(yōu)勢。數(shù)碼管顯示的時間簡單明了而且讀數(shù)快、時間準(zhǔn)確顯示到秒。而機(jī)械式的依賴于晶體震蕩器,可能會導(dǎo)致誤差。數(shù)字鐘往往是采用數(shù)字電路實(shí)現(xiàn)對“時”、“分”、“秒”數(shù)字顯示的計時裝置。數(shù)字鐘的精度、穩(wěn)定度遠(yuǎn)遠(yuǎn)超過老式機(jī)械鐘。在這次設(shè)計中,我們采用LED數(shù)碼管顯示時、分,以24小時計時方式,根據(jù)數(shù)碼管動態(tài)顯示原理來進(jìn)行顯示,用12MHz的晶振產(chǎn)生振蕩脈沖,定時器計數(shù)。在此次設(shè)計中,電路具有顯示時間的其本功能,還可以實(shí)現(xiàn)對時間的調(diào)整。數(shù)字鐘是其小巧,價格低廉,走時精度高,使用方便,功能多,便于集成化而受廣大消費(fèi)的喜愛,因此得到了廣泛的使用。1.3本章小結(jié)本文介紹的設(shè)計是針對教學(xué)所用的單片機(jī),可以完成教學(xué)所需的功能,也可以達(dá)到實(shí)驗(yàn)要求。第2章相關(guān)器件的結(jié)構(gòu)2.1MCS-51的結(jié)構(gòu)MCS-51單片機(jī)是把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個尺寸有限的集成電路芯片上。如果按功能劃分,它由如下功能部件組成,即微處理器(CPU)、數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM/EPROM)、并行I/O口、串行口、定時器/計數(shù)器、中斷系統(tǒng)及特殊功能寄存器(SFR)。它們都是通過片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對各種功能部件的控制是采用特殊功能寄存器(SFR)的集中控制方式。單片機(jī)的40個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。⒈電源:⑴VCC-芯片電源,接+5V;⑵VSS-接地端⒉時鐘:XTAL1、XTAL2-晶體振蕩電路反相輸入端和輸出端。⒊控制線:控制線共有4根,⑴ ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖①ALE功能:用來鎖存P0口送出的低8位地址②PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。⑵ PSEN:外ROM讀選通信號。⑶ RST/VPD:復(fù)位/備用電源。RST(Reset)功能:復(fù)位信號輸入端。②VPD功能:在Vcc掉電情況下,接備用電源。⑷ EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。①EA功能:內(nèi)外ROM選擇端。②Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。⒋I/O線80C51共有4個8位并行I/O端口:P0、P1、P2、P3口,共32個引腳。P3口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。2.2CD4511CD4511是一個用于驅(qū)動共陰極LED(數(shù)碼管)顯示器的BCD碼—七段碼譯碼器,特點(diǎn):具有BCD轉(zhuǎn)換、消隱和鎖存控制、七段譯碼及驅(qū)動功能的CMOS電路能提供較大的拉電流??芍苯域?qū)動LED顯示器。CD4511是一片CMOSBCD—鎖存/7段譯碼/驅(qū)動器。其中abcd為BCD碼輸入,a為最低位。LT為燈測試端,加高電平時,顯示器正常顯示,加低電平時,顯示器一直顯示數(shù)碼“8”,各筆段都被點(diǎn)亮,以檢查顯示器是否有故障。BI為消隱功能端,低電平時使所有筆段均消隱,正常顯示時,B1端應(yīng)加高電平。另外CD4511有拒絕偽碼的特點(diǎn),當(dāng)輸入數(shù)據(jù)越過十進(jìn)制數(shù)9(1001)時,顯示字形也自行消隱。LE是鎖存控制端,高電平時鎖存,低電平時傳輸數(shù)據(jù)。a~g是7段輸出,可驅(qū)動共陰LED數(shù)碼管。另外,CD4511顯示數(shù)“6”時,a段消隱;顯示數(shù)“9”時,d段消隱,所以顯示6、9這兩個數(shù)時,字形不太美觀圖3是CD4511和CD4518配合而成一位計數(shù)顯示電路,若要多位計數(shù),只需將計數(shù)器級聯(lián),每級輸出接一只CD4511和LED數(shù)碼管即可。所謂共陰LED數(shù)碼管是指7段LED的陰極是連在一起的,在應(yīng)用中應(yīng)接地。限流電阻要根據(jù)電源電壓來選取,電源電壓5V時可使用300Ω的限流電阻。CD4511的工作原理1.CD4511的工作真值表如下表表3-2CD4511的真值表2.鎖存功能譯碼器的鎖存電路由傳輸門和反相器組成,傳輸門的導(dǎo)通或截止由控制端LE的電平狀態(tài)。當(dāng)LE為“0”電平導(dǎo)通,TG2截止;當(dāng)LE為“1”電平時,TG1截止,TG2導(dǎo)通,此時有鎖存作用。

(3)譯碼

CD4511譯碼用兩級或非門擔(dān)任,為了簡化線路,先用二輸入端與非門對輸入數(shù)

據(jù)B、C進(jìn)行組合,得出四項(xiàng),然后將輸入的數(shù)據(jù)A、D一起用或非門譯碼。

(4)消隱

BI為消隱功能端,該端施加某一電平后,迫使B端輸出為低電平,字形消隱。消隱控制電路。

消隱輸出J的電平為J==(C+B)D+BI如不考慮消隱BI項(xiàng),便得J=(B+C)D

據(jù)上式,當(dāng)輸入BCD代碼從10101111時,J端都為“1”電平,從而使顯示器中的字形消隱。2.37段數(shù)碼管LED數(shù)碼管及引腳圖資料7段LED數(shù)碼管是利用7個LED(發(fā)光二極管)外加一個小數(shù)點(diǎn)的LED組合而成的顯示設(shè)備,可以顯示0~9等10個數(shù)字和小數(shù)點(diǎn),使用非常廣泛,它的外觀如下:這類數(shù)碼管可以分為共陽極與共陰極兩種,共陽極就是把所有LED的陽極連接到共同接點(diǎn)com,而每個LED的陰極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn));共陰極則是把所有LED的陰極連接到共同接點(diǎn)com,而每個LED的陽極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn)),如下圖所示。圖中的8個LED分別與上面那個圖中的A~DP各段相對應(yīng),通過控制各個LED的亮滅來顯示數(shù)字。2.4三極管三極管的基本結(jié)構(gòu)是兩個反向連結(jié)的pn接面,如圖1所示,可有pnp和npn兩種組合。三個接出來的端點(diǎn)依序稱為射極(emitter,E)、基極(base,B)和集極(collector,C),名稱來源和它們在三極管操作時的功能有關(guān)。圖中也顯示出npn與pnp三極管的電路符號,射極特別被標(biāo)出,箭號所指的極為n型半導(dǎo)體,和二極體的符號一致。在沒接外加偏壓時,兩個pn接面都會形成耗盡區(qū),將中性的p型區(qū)和n型區(qū)隔開。晶體三極管的用途主要是交流信號放大,直流信號放大和電路開關(guān)。使用晶體管作放大用途時,必須在它的各電極上加上適當(dāng)極性的電壓,稱為“偏置電壓”簡稱“偏壓”,又“偏置偏流”。電路組成上叫偏置電路。晶體管各電極加上適當(dāng)?shù)钠秒妷褐?,各電極上便有電流流動。通過發(fā)射極的電流稱為“射極電流”,用IE表示;通過基極的電流稱為“基極電流”,用IB表示;通過集電極的電流稱為“集極電流”,用IC表示。2.5本章小結(jié)本章介紹了一些基本器件結(jié)構(gòu),MCS-51,7段數(shù)碼管,三極管。只有了解這些器件的結(jié)構(gòu)、功能,才可以更好地更簡潔地設(shè)計電路。第3章總體設(shè)計方案3.1原始數(shù)據(jù)及主要任務(wù) 本次課程設(shè)計的任務(wù)是采用AT89S51作為控制單元,實(shí)現(xiàn)數(shù)字鐘的設(shè)計。(1)設(shè)計鍵盤輸入電路(2)設(shè)計顯示電路(3)合理分配地址,編寫系統(tǒng)程序(4)利用Protel設(shè)計硬件電路原理圖和PCB圖(5)軟硬件聯(lián)機(jī)調(diào)試3.2技術(shù)要求設(shè)計一臺以MCS-51為核心的簡易數(shù)字鐘。用p2口控制4只段碼管,四位數(shù)碼管顯示小時和分鐘,中間的那個點(diǎn)來區(qū)分小時和分鐘;每秒用一個LED閃爍一下;用了四個按鍵,分別是:選擇鍵,確認(rèn)鍵,加1鍵和減1鍵。時間要精準(zhǔn),整點(diǎn)報時,聲音間隔一秒,并且可以調(diào)整時間、調(diào)整閃爍提示。3.3器件清單電阻:200(1個)330(7個)4.7K(1個)470(1個)1K(5個)10K(4個)按鍵開關(guān):5個電容:30pF(2個)電解電容:22μF(1個)晶振:6MHZ(1個)CD4511:(1個)三極管:NPN(4個)PNP(1個)共陰極數(shù)碼管:(4個)底座:DIP40(2個)DIP16(1個)萬能電路板:1個AT89S51(1片)導(dǎo)線若干3.4設(shè)計方案數(shù)字鐘實(shí)際上是一個對標(biāo)準(zhǔn)頻率(1HZ)進(jìn)行計數(shù)的計數(shù)電路。標(biāo)準(zhǔn)的頻率時間信號必須做到準(zhǔn)確穩(wěn)定,通常使用石英晶體振蕩電路構(gòu)成數(shù)字鐘。本次課程設(shè)計的內(nèi)容是設(shè)計一個數(shù)字鐘,由單片機(jī)通過編輯的程序控制電路,實(shí)現(xiàn)顯示時、分的一個電子時鐘。并且可以通過按鍵選擇調(diào)整時鐘時間,以及暫停的功能。按鍵輸入單元控制單元MCS-C51P1.4-P1.7按鍵輸入單元控制單元MCS-C51P1.4-P1.7顯示單元P0.0-P0.3按鍵單元P2.4-P2.7譯碼單元報時單元圖3-1電路方框圖3.5電路原理圖第4章電路的硬件設(shè)計4.1復(fù)位電路MCS-51單片機(jī)的復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。在振蕩器運(yùn)行時,有兩個機(jī)器周期(24個振蕩周期)以上的高電平出現(xiàn)在此引腿時,將使單片機(jī)復(fù)位,只要這個腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P0-P3口均置1引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器SFR全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r,芯片為ROM的00H處開始運(yùn)行程序。復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳RST通過一個斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個機(jī)器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復(fù)位電路。當(dāng)時鐘頻率選用6MHz時,C取22μF,Rs約為200Ω,Rk約為1K。復(fù)位操作不會對內(nèi)部RAM有所影響。常用的復(fù)位電路如下圖所示:圖復(fù)位電路圖4.2時鐘電路時鐘是單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時鐘頻率為基準(zhǔn),有條不紊的一拍一拍地工作。因此,時鐘頻率直接影響單片機(jī)的速度,時鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時鐘電路有兩種方式:一種是內(nèi)部時鐘方式,另一種為外部時鐘方式。本文用的是內(nèi)部時鐘方式。電路圖如下:MCS-51單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,該高增益反向放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成一個穩(wěn)定的自激振蕩器。4.3按鍵電路按鍵的開關(guān)狀態(tài)通過一定的電路轉(zhuǎn)換為高、低電平狀態(tài)。按鍵閉合過程在相應(yīng)的I/O端口形成一個負(fù)脈沖。閉合和釋放過程都要經(jīng)過一定的過程才能達(dá)到穩(wěn)定,這一過程是處于高、低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動。抖動持續(xù)時間的常長短與開關(guān)的機(jī)械特性有關(guān),一般在5-10ms之間。為了避免CPU多次處理按鍵的一次閉合,應(yīng)采用措施消除抖動。本文采用的是獨(dú)立式按鍵,直接用I/O口線構(gòu)成單個按鍵電路,每個按鍵占用一條I/O口線,每個按鍵的工作狀態(tài)不會產(chǎn)生互相影響。電路圖如下:輸入信號主要是各種模式選擇和調(diào)整信號,由按鍵開關(guān)提供。在本實(shí)驗(yàn)中主要用用P0口輸入按鍵信號,對于P0口,由于其存在高阻狀態(tài),為了實(shí)現(xiàn)開關(guān)功能,給其添加上拉電阻。P0.0能選擇鍵,按鍵選擇要調(diào)整的時十位、時個位、分十位或分個位。P0.1字“+“鍵,按一下則對應(yīng)的數(shù)字加1。P0.2字“-”鍵,按一下則對應(yīng)的數(shù)字減1。P0.3能確認(rèn)鍵,。4.4整點(diǎn)報時電路電路圖如下:4.5數(shù)碼管顯示電路數(shù)碼管顯示器成本低,配置靈活,與單片機(jī)接口簡單,在單片機(jī)應(yīng)用系統(tǒng)中廣泛應(yīng)用。數(shù)碼管的工作原理用CD4511實(shí)現(xiàn)LED與單片機(jī)的并行接口方法如圖所示。數(shù)碼管共陰極接單片機(jī)P0口輸出的片選信號選擇點(diǎn)亮的數(shù)碼管,從而達(dá)到了顯示輸出動態(tài)顯示的效果。由于CD4511的驅(qū)動電流,數(shù)碼管共陰極不用外加三極管或者74LS245等裝置驅(qū)動數(shù)碼管。當(dāng)P2口低4位某位置1時,與其相連的三極管導(dǎo)通,集電極為低電平,因?yàn)槭枪碴帢O數(shù)碼管,所以與該三極管相連的數(shù)碼管選通,顯示P2口輸出的數(shù)。4.6本章小結(jié)本章介紹的是本設(shè)計的硬件結(jié)構(gòu),單片機(jī)的相關(guān)I/O口輸入輸出就可以實(shí)現(xiàn)相應(yīng)的控制功能。還介紹了單片機(jī)的復(fù)位電路和時鐘電路。第5章電路的軟件設(shè)計5.1軟件程序內(nèi)容本設(shè)計的軟件程序包括主程序、中斷子程序、整點(diǎn)報時子程序、時鐘顯示子程序和延時子程序等等。另外由于電路中有四個按鍵,還另外設(shè)計了防抖動程序來防止干擾。5.2軟件流程圖軟件程序整個流程圖如下:開始開始初始化初始化是是是否按時間確認(rèn)鍵是否按時間確認(rèn)鍵切換時間表切換時間表選擇鍵選擇被調(diào)時間選擇鍵選擇被調(diào)時間否否調(diào)整時間調(diào)整時間是是否與時間表時間匹配是是否與時間表時間匹配調(diào)用揚(yáng)聲器程序調(diào)用揚(yáng)聲器程序否否T0中斷服務(wù)子程序T0中斷服務(wù)子程序重置T0定時初值1s到?Y秒加11min到?Y分加1,秒清零1小時到?Y分清零,秒清零NNN返回5.3定時程序設(shè)計單片機(jī)的定時功能也是通過計數(shù)器的計數(shù)來實(shí)現(xiàn)的,此時的計數(shù)脈沖來自單片機(jī)的內(nèi)部,即每個機(jī)器周期產(chǎn)生一個計數(shù)脈沖,也就是每經(jīng)過1個機(jī)器周期的時間,計數(shù)器加1。如果MCS-51采用的12MHz晶體,則計數(shù)頻率為1MHz,即每過1us的時間計數(shù)器加1。這樣可以根據(jù)計數(shù)值計算出定時時間,也可以根據(jù)定時時間的要求計算出計數(shù)器的初值。MCS-51單片機(jī)的定時器/計數(shù)器具有4種工作方式,其控制字均在相應(yīng)的特殊功能寄存器中,通過對特殊功能寄存器的編程,可以方便的選擇定時器/計數(shù)器兩種工作模式和4種工作方式。定時器/計數(shù)器工作在方式0時,為13位的計數(shù)器,由TLX(X=0、1)的低5位和THX的高8位所構(gòu)成。TLX低5位溢出則向THX進(jìn)位,THX計數(shù)溢出則置位TCON中的溢出標(biāo)志位TFX.當(dāng)定時器/計數(shù)器工作于方式1,為16位的計數(shù)器。本設(shè)計單片機(jī)定時器,所以MCS-51內(nèi)部的定時器/計數(shù)器被選定為定時器工作模式,計數(shù)輸入信號是內(nèi)部時鐘脈沖,每個機(jī)器周期產(chǎn)生一個脈沖使計數(shù)器增1。5.3.1實(shí)時時鐘實(shí)現(xiàn)的基本方法時鐘的最小計時單位是秒,但使用定時器的方式1,最大的定時時間也只能達(dá)到131ms。我們可把定時器的定時時間定為50ms。這樣,計數(shù)溢出20次即可得到時鐘的最小計時單位:秒。而計數(shù)20次可以用軟件實(shí)現(xiàn)。秒計時是采用中斷方式進(jìn)行溢出次數(shù)的累積,計滿20次,即得到秒計時。從秒到分,從分到時是通過軟件累加并進(jìn)行比較的方法來實(shí)現(xiàn)的。要求每滿1秒,則“秒”單元中的內(nèi)容加1;“秒”單元滿60,則“分”單元中的內(nèi)容加1;“分”單元滿60,則“時”單元中的內(nèi)容加1;“時”單元滿24,則將時、分、秒的內(nèi)容全部清零。5.3.2實(shí)時時鐘程序設(shè)計步驟(1)選擇工作方式,計算初值;(2)采用中斷方式進(jìn)行溢出次數(shù)累計;(3)從秒——分——時的計時是通過累加和數(shù)值比較實(shí)現(xiàn)的;(4)時鐘顯示緩沖區(qū):時鐘時間在方位數(shù)碼管上進(jìn)行顯示,為此在內(nèi)部RAM中要設(shè)置顯示緩沖區(qū),共4個地址單元。顯示緩沖區(qū)從左到右依次存放時、分?jǐn)?shù)值;(5)主程序:主要進(jìn)行定時器/計數(shù)器的初始化編程,然后反復(fù)調(diào)用顯示子程序的方法等待中斷的到來。(6)中斷服務(wù)程序:進(jìn)行計時操作(7)加1子程序:用于完成對時、分的加操作,中斷服務(wù)程序在分、時加1時共有三種條調(diào)用加1子程序,包括三項(xiàng)內(nèi)容:合字、加1并進(jìn)行十進(jìn)制調(diào)整、分字。5.4程序說明在整個系統(tǒng)中,在單片機(jī)的30H、31H中存儲當(dāng)前時間的小時、分鐘。由于要用數(shù)碼管顯示當(dāng)前的時間,必須用到分字和合字,因此在33H、34H、35H和36H中存儲當(dāng)前時間的時十位、時個位、分十位、分個位,方便顯示。本設(shè)計有由四個輕觸按鍵組成的小鍵盤,這些按鍵可以任意改變當(dāng)前的狀態(tài)。按功能移位鍵一次,表示當(dāng)前要校對小時的十位;按第二次,表示當(dāng)前校對的是小時的個位;按第三次,則表示校對的是分鐘的十位;第四次,表示的校對的是分鐘的個位。按下數(shù)字“+”鍵和數(shù)字“-”鍵可在當(dāng)前校對的數(shù)字上相應(yīng)加上1或者減去1。5.5本章小結(jié)這一章介紹了本設(shè)計的軟件設(shè)計,所有的功能在流程圖里清晰的表現(xiàn)了出來,體現(xiàn)了設(shè)計的合理性、可實(shí)現(xiàn)性。第6章系統(tǒng)仿真6.1PROTUES軟件介紹Proteus軟件是LabcenterElectronics公司的一款電路設(shè)計與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來完成PCB的設(shè)計,而ISIS模塊用來完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VSM技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機(jī)芯片,比如MCS-51系列、PIC系列等等,以及單片機(jī)外圍電路,比如鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個功能齊全、實(shí)用方便的單片機(jī)實(shí)驗(yàn)室。6.2數(shù)字鐘鐘系統(tǒng)PROTUES仿真用PROTUES軟件,根據(jù)數(shù)字鐘的原理圖,畫出仿真圖,得到的圖如下所示。第7章調(diào)試與功能說明單片機(jī)應(yīng)用系統(tǒng)的調(diào)試包括硬件和軟件兩部分,但是他們并不能完全分開。一般的方法是排除明顯的硬件故障,再進(jìn)行綜合調(diào)試,排除可能的軟/硬件故障。7.1硬盤調(diào)試拿到電路板后,首先要檢查加工質(zhì)量,并確保沒有任何方面的錯誤,如短路和斷路,尤其要避免電源短路;元器件在安裝前要逐一檢查,用萬用表測其數(shù)值,看是否與所用相同;完成焊接后,應(yīng)先空載上電(芯片座上不插芯片),并檢查各引腳的電位是否正確。若一切正常,方可在斷電的情況下將芯片插入,再次檢查各引腳的電位及其邏輯關(guān)系。將萬用表的探針放到單片機(jī)接電源的引腳上檢測一下,看是否符合要求。7.2系統(tǒng)性能測試與功能說明走時:默認(rèn)為走時狀態(tài),按24小時制分別顯示“時時-分分”,有2個“-”動態(tài)顯示,時間會按實(shí)際時間以秒為最少單位變化。走時調(diào)整:按kmin對分進(jìn)行調(diào)整,按一下加一分;按khour對時進(jìn)行調(diào)整,按一下加一小時,從而達(dá)到快速設(shè)定時間的目的。7.3系統(tǒng)時鐘誤差分析時間是一個基本物理量,具有連續(xù)、自動流逝、不重復(fù)等特性。我國時間基準(zhǔn)來自國家授時中心,人們?nèi)粘J褂玫臅r鐘就是以一定的精度與該基準(zhǔn)保持同步的。結(jié)合時間概念和誤差理論,可以定義電子鐘的走時誤差S=S1-S2,S1表示程序?qū)嶋H運(yùn)行計算所得的秒;S2表示客觀時間的標(biāo)準(zhǔn)秒。S>0時表示電子鐘秒單元數(shù)值刷新滯后,即走時誤差為“慢”;反之,S<0表示秒單元數(shù)值的刷新超前,即走時誤差為“快”。本次設(shè)計的單片機(jī)電子鐘系統(tǒng)中,其誤差主要來源包括晶體頻率誤差,定時器溢出誤差,延遲誤差。晶體頻率產(chǎn)生震蕩,容易產(chǎn)生走時誤差;定時器溢出的時間誤差,本應(yīng)這一秒溢出,但卻在下一秒溢出,造成走時誤差;延遲時間過長或過短,都會造成與基準(zhǔn)時間產(chǎn)生偏差,造成走時誤差。7.4軟件調(diào)試問題及解決軟件程序的調(diào)試一般可以將重點(diǎn)放在分模塊調(diào)試上,統(tǒng)調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,可借助于軟件仿真器即可;后者一般需要仿真系統(tǒng)的支持。本次課題,Keil軟件來調(diào)試程序,通過各個模塊程序的單步或跟蹤調(diào)試,使程序逐漸趨于正確,最后統(tǒng)調(diào)程序。第8章結(jié)論與展望8.1結(jié)束語學(xué)習(xí)的時候只是做過幾次很簡單的實(shí)驗(yàn),現(xiàn)在知道要做課程設(shè)計并拿到題目時,才發(fā)現(xiàn)原來我們學(xué)的欠缺太多。通過這次課程設(shè)計我發(fā)現(xiàn),只有理論水平提高了;才能夠?qū)⒄n本知識與實(shí)踐相整合,理論知識服務(wù)于教學(xué)實(shí)踐,以增強(qiáng)自己的動手能力。這個實(shí)驗(yàn)十分有意義我獲得很深刻的經(jīng)驗(yàn)。通過這次課程設(shè)計,我們知道了理論和實(shí)際的距離,也知道了理論和實(shí)際想結(jié)合的重要性,,也從中得知了很多書本上無法得知的知識。我們的學(xué)習(xí)不但要立足于書本,以解決理論和實(shí)際教學(xué)中的實(shí)際問題為目的,還要以實(shí)踐相結(jié)合,理論問題即實(shí)踐課題,解決問題即課程研究,學(xué)生自己就是一個專家,通過自己的手來解決問題比用腦子解決問題更加深刻。學(xué)習(xí)就應(yīng)該采取理論與實(shí)踐結(jié)合的方式,理論的問題,也就是實(shí)踐性的課題。這種做法既有助于完成理論知識的鞏固,又有助于帶動實(shí)踐,解決實(shí)際問題,加強(qiáng)我們的動手能力和解決問題的能力。8.2單片機(jī)的發(fā)展趨勢自單片機(jī)出現(xiàn)至今,單片機(jī)技術(shù)已走過了幾十年的發(fā)展路程。縱觀幾十年來單片機(jī)發(fā)展歷程可以看出,單片機(jī)技術(shù)的發(fā)展以微處理器(MPU)技術(shù)及超大規(guī)模集成電路技術(shù)的發(fā)展為先導(dǎo),拉動廣泛的應(yīng)用領(lǐng)域,表現(xiàn)出比微處理器更具個性的發(fā)展趨勢:1.采用先進(jìn)結(jié)構(gòu)以實(shí)現(xiàn)高性能在過去的一段時間內(nèi),單片機(jī)的指令運(yùn)行速度一直在10MIPS以下,這對于應(yīng)用在工業(yè)控制領(lǐng)域內(nèi)的單片機(jī)來說是足夠了,但當(dāng)單片機(jī)被應(yīng)用在通訊及DSP領(lǐng)域作為高速運(yùn)算、編碼或解碼時,就會出現(xiàn)因指令運(yùn)行速度不夠而限制單片機(jī)應(yīng)用的情形,因此提高單片機(jī)指令運(yùn)行速度已經(jīng)成為迫切需要解決的問題。2.進(jìn)一步降低功耗、基于80C51的飛利浦低功率、低系統(tǒng)成本微控制器51LPC系列是業(yè)界推動單片機(jī)向低功耗方向發(fā)展的主導(dǎo)單片機(jī)系列之一。51LPC系列單片機(jī)采用以下三種方法降低功耗:(1)使系統(tǒng)進(jìn)入空閑模式,在空閑模式下,只有外圍器件在工作,任意的復(fù)位及中斷均可結(jié)束空閑模式;(2)使系統(tǒng)進(jìn)入低功耗模式,在低功耗模式下,振蕩器停止工作,是功耗降到最?。?)使系統(tǒng)進(jìn)入低電壓EPROM操作;EPROM包含了模擬電路,當(dāng)Vcc高于4V時,可通過軟件使這些模擬電路掉電以降低功耗,在上電情況下可使系統(tǒng)退出該模式。3.采用FlashMemory隨著半導(dǎo)體工藝技術(shù)的不斷進(jìn)步,MPU的Flash版本逐漸替代了原有的OTP版本。FlashMPU具有以下優(yōu)點(diǎn):與多次可編程的窗口式EPROM相比,F(xiàn)lashMPU的成本要低得多;在系統(tǒng)編程能力以及產(chǎn)品生產(chǎn)方面提供了靈活性,因?yàn)镕lashMPU可在編程后面再次以新代碼重新編程;可減少已編程器件的報廢和庫存;有助于生產(chǎn)廠商縮短設(shè)計周期,使終端用戶產(chǎn)品和、更具有競爭力。4.集成更多功能及兼容性目前單片機(jī)的另一個發(fā)展趨勢是在芯片上集成更多的功能。如模擬功能,包括模擬比較器、A/D和D/A轉(zhuǎn)換器等。具體表現(xiàn)在:兼容性作為設(shè)計的第一考慮;額外的新的特點(diǎn)是透明的;使用同一種編程器;OTP使器件快速提升及標(biāo)準(zhǔn)化成為可能。5.強(qiáng)抗干擾能力不斷加強(qiáng)抗干擾能力是單片機(jī)進(jìn)一步發(fā)展的必然趨勢。STMicroelectronics公司推出的ST62系列單片機(jī)在這方面是佼佼者,其優(yōu)良的抗干擾能力使得許多大公司將其應(yīng)用在系統(tǒng)中的關(guān)鍵部件上。許多單片機(jī)開發(fā)商也正朝著這個方向努力。6.朝系列化、全面化方向發(fā)展各大單片機(jī)開發(fā)商在增加產(chǎn)品功能的同時效力于形成產(chǎn)品的系列化=全面化,以滿足各種控制領(lǐng)域的要求,這也是單片機(jī)發(fā)展的趨勢之一。日本TOSHBA公司開發(fā)了從4位到64位的多系列單片機(jī),日立公司也有從4.位到32位的單片機(jī),目前還沒有哪個廠家生產(chǎn)的單片機(jī)比東芝公司的種類多。隨著單片機(jī)性能的不斷提高,不斷的克服和彌補(bǔ)自身的不足。在各種控制領(lǐng)域,單片機(jī)將擁有更加廣闊的使用天地。在很長的一段時間內(nèi),它將一直是工程設(shè)計人員的首選控制芯片之一。參考文獻(xiàn)[1]權(quán)明富,齊佳音,舒華英.客戶價值評價指標(biāo)體系設(shè)計[J].南開管理評論,2004,7(3):17-18.[2]張景元.基于單片機(jī)的多用途定時器的設(shè)計與實(shí)現(xiàn).電子工程師2000年第8期[3]李洪濤.一種單片機(jī)控制的定時打鈴器.電子世界.1990年第2期[4]何業(yè)軍李超.基于單片機(jī)控制的高精度定時打鈴器的設(shè)計.電子技術(shù).2001年第7期[5]關(guān)宗安仲叢久.基于單片機(jī)實(shí)現(xiàn)的多路定時控制器的設(shè)計.沈陽航空工業(yè)學(xué)院學(xué)報.2004年6月.第21卷第3期[6]ATMEL.MicrocontrollerDatabook.2002[7]Mark1.Montrose.PRINTEDCircuitBoardDesignTechniquesforEMCcompliance.IEEPressseries.2000[8]范立南.單片微機(jī)接口與控制技術(shù).沈陽:遼寧大學(xué)出版社.1996[9]張友德.單片微型機(jī)原理、應(yīng)用與實(shí)踐.上海:復(fù)旦大學(xué)出版社.1992[10]李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù),北京:北京航空航天大學(xué)出版社.1993[11]何希慶,高偉.MCS-51單片機(jī)原理、實(shí)驗(yàn)、實(shí)例[M].山東:山東大學(xué)出版社.1989[12]張毅剛,彭喜源,潭曉昀.MCS-51單片機(jī)應(yīng)用設(shè)計[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社.1997[13]胡漢才.單片機(jī)原理及接口技術(shù)[M],北京:清華大學(xué)出版社.1996[14]余永權(quán),單片機(jī)與家用電器智能化設(shè)計[M].北京:電子工業(yè)出版社.1995[15]房小翠,王金鳳.單片微型計算機(jī)與機(jī)電接口技術(shù)[M].北京國防工業(yè)出版社.2002[16]皮紅梅,李英順.單片機(jī)開發(fā)中的定時方法.沈陽石油化工高等??茖W(xué)校學(xué)報.2002年12月[17]Maxim公司.NewreleasesDataBook1996附錄連接方法:P1口與JP5,P0口與J12,P2口與J16,用8PIN排線連接 ************************************************************************************/#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharcodetable[]={~0xC0,~0xf9,~0xa4,~0xb0,~0x99,~0x92,~0x82,~0xf8,~0x80,~0x90,~0x88,~0x83,~0xc6,~0xa1,~0x86,~0x8e,~0xff,~0x0c,~0xbf};/*0-F、滅(16)、P.-*/uchart0,t1,min,hour,function,a0,a1,a2,a3;bitshan;voiddelay(uintcount);ucharkeychuli();ucharkey();voiddisplay(uchar,uchar,uchar,uchar);voidsend();voidini();voidchuli();//***************主函數(shù)**********************************************voidmain(){ ini(); while(1) { display(16,16,16,17); //沒有鍵按下是俠士P. if(key()==1) //當(dāng)k1按下后則定時器驅(qū)動時鐘開始走 {TR0=1;function=1;shan=0; while(1) { send(); //送數(shù) display(a0,a1,a2,a3);//顯示 chuli(); //處理 } } }}//*************初始化程序******************************************void ini(){ TMOD=0x01, TH0=0x3c,TL0=0xb0;TH1=0x3c,TL1=0xb0; //定時50ms中斷一次 EA=1,ET0=1,TR0=0;ET1=1;TR1=0;}//**************鍵值處理程序*************************voidchuli(){ switch(key()) { case0: break; case1: //當(dāng)按鍵k1按下后 {function++; //判斷按下的次數(shù) switch(function) {case1:TR0=1;TR1=0;shan=0;break; //一次條秒同時閃爍 case2: //兩次調(diào)分同時閃爍 case3: //三次調(diào)分同時閃爍 case4: TR0=0;TR1=1;shan=1;break; //四次跳出調(diào)整狀態(tài)時鐘繼續(xù)走時 case5: function=1;TR0=1;TR1=0;shan=0;break; //輪流循環(huán) } } break; case2: //k2鍵上調(diào) { switch(function) { case1: break; //case2: sec++; if(sec==60) sec=0;break; case3: min++; if(min==60) min=0;break; case4: hour++; if(hour==24)hour=0;break; } } break; case4: //k3鍵下調(diào) { switch(function) { case1: break; //case2: sec--; if(sec==255)sec=59;break; case2: min--; if(min==255)min=59;break; case3: hour--; if(hour==255)hour=23;break; } } break; } }//*************定時器0的中斷服務(wù)程序************************voidtimer0()interrupt1using3{ TH0=0x3c,TL0=0xb0; t0++; if(t0==1200) { t0=0; //sec++; //if(sec==60) //{ //sec=0; min++; if(min==60) { min=0; hour++; {if(hour==24) hour=0; } } } } //*************定時器1的中數(shù)服務(wù)程序,對shan取反,以使燈閃爍***************voidtimer1()interrupt3using2{ TH0=0x3c,TL0=0xb0; t1++; if(t1==40) { t1=0; shan=~shan; } }//***********************************************ucharkeychuli(){uchark; k=P1;//P1口內(nèi)容送K k=~k;//取反 k=(k&0xff);//屏蔽高4位,如果掃描8鍵,屏蔽該句。 return(k);//返回鍵值}/*************************************************************************函數(shù)原型:key();*功能:鍵盤掃描函數(shù),函數(shù)返回值即鍵值。************************************************************************/ucharkey(){ucharkeyzhi,keyzhii;//電子鐘鍵盤按鍵鍵值臨時存放keyzhi=keychuli();//調(diào)P1口處理函數(shù)if(keyzhi!=0)//有鍵動作延時去抖動,否則函數(shù)返回 { send(); display(a0,a1,a2,a3); display(a0,a1,a2,a3); keyzhi=keychuli();//再次調(diào)P1口處理函數(shù) if(keyzhi!=0)//真正有鍵按下,取鍵值并暫存 { keyzhii=keyzhi; while(keyzhi!=0)//判按鍵是否釋放,沒有釋放延時去抖動等待釋放 { send(); display(a0,a1,a2,a3); display(a0,a1,a2,a3);keyzhi=keychuli(); } keyzhi=keyzhii;//按鍵釋放后恢復(fù)按鍵鍵值 } }return(keyzhi);//返回按鍵鍵值}//***************顯示子程序*******************************************************************voiddisplay(uchara3,uchara2,uchara1,uchara0){ P2=table[a3]; P1=0x80; delay(1); P2=table[a2]; P1=0xb0; delay(1); P2=table[a1]; P1=0xd0; delay(1); P2=table[a0]; P1=0xe0; delay(1);}//******************將數(shù)送至緩沖單元,當(dāng)shan的標(biāo)志位為1時,再根據(jù)此時的此時的功能標(biāo)示,對該位熄滅**************************voidsend() { //a0=sec%10; //a1=sec/10; //a2=18; a0=min%10; a1=min/10; //a5=18; a2=hour%10; a3=hour/10; if(shan==1) {switch(function) { case2: a0=16,a1=16;break; case3: a2=16,a3=16;break; //case4: a6=16,a7=16;break; } }}//**************************延時子程序基數(shù)為1毫秒*************************************************voiddelay(uintcount){uintj;while(count--!=0){for(j=0;j<80;j++);}}致謝首先衷心地感謝我的指導(dǎo)老師。本文從理論上的探討到實(shí)際問題的解決,韓昱等的悉心指導(dǎo)和建議給了我極大的幫助和支持,使我受益匪淺,在此論文完成之際,謹(jǐn)向韓昱等老師課程設(shè)計評語課程設(shè)計成績指導(dǎo)教師(簽字)年月日目錄摘要 ⅡAbstract ⅢTOC\o"1-3"\h\u第1章緒論 11.1課題的研究其意義 11.2火災(zāi)報警的發(fā)展趨勢 21.3報警系統(tǒng)的特點(diǎn) 21.4系統(tǒng)的研究范圍 3第2章自動火災(zāi)報警系統(tǒng)整體方案設(shè)計 42.1火災(zāi)發(fā)生的條件 42.2自動火災(zāi)報警系統(tǒng)的組成 52.3系統(tǒng)的總體方案設(shè)計 6HYPERLINK"file:///H:\\準(zhǔn)備修改傳百度文檔\\合并2016121020160713\\lyy2017.11.11zqq11.2

溫馨提示

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

評論

0/150

提交評論