數(shù)字電子鐘設(shè)計(jì)_第1頁
數(shù)字電子鐘設(shè)計(jì)_第2頁
數(shù)字電子鐘設(shè)計(jì)_第3頁
數(shù)字電子鐘設(shè)計(jì)_第4頁
數(shù)字電子鐘設(shè)計(jì)_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、題 目:數(shù)字電子鐘設(shè)計(jì)55內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì)說明書(畢業(yè)論文)數(shù)字電子鐘設(shè)計(jì)摘 要以at89c51單片機(jī)芯片為核心,輔以必要的外圍電路,設(shè)計(jì)了一個簡易的電子鐘??蓪?shí)現(xiàn)時間、日期的顯示以及鬧鐘響鈴等功能。詳細(xì)論述了數(shù)字電子鐘的硬件電路設(shè)計(jì)以及c語言程序的編寫。其中硬件電路包括時鐘芯片ds1302模塊、鍵盤控制模塊、顯示模塊、響鈴模塊。通過時鐘芯片ds1302計(jì)時的方法實(shí)現(xiàn)了以24小時為一個周期同時顯示小時和分鐘的要求,并在計(jì)時過程中具有響鈴提示功能,當(dāng)時間到達(dá)鬧鐘定時時間進(jìn)行蜂鳴提示。該電子鐘設(shè)有三個按鍵:模式切換按鍵、加一按鍵、鬧鐘調(diào)整按鍵鍵,使之具備了校對時間和日期以及定時功能。最終通過

2、電路板的焊接以及 c語言程序的編寫,并通過keil軟件編譯生成了hex文件,應(yīng)用stc-isp 單片機(jī)燒寫軟件將程序燒錄到單片機(jī)中,使led數(shù)碼管正確顯示出時間及日期,可實(shí)現(xiàn)時間及日期的調(diào)整,得到了設(shè)計(jì)預(yù)期的結(jié)果,證明了設(shè)計(jì)的可行性。關(guān)鍵詞:單片機(jī);電子鐘;時鐘芯片內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì)說明書(畢業(yè)論文)the design of digital electronic clockabstractthis article designs a simple electronic clock,and the core is at89c51 singlechip (mcu) supplemented

3、by the necessary peripheral circuits. the electronic clock can achieve the time, date display as well as features such as alarm clock ringing.the design discuss the digital electronic hardware circuit design as well as the preparation of c programming language in detail. the hardware includes the ds

4、1302 clock chip module, the keyboard control module, display module and ringing module. with clock chip ds1302 timekeeping, the clock can display hour and second at the same time in a 24-hour cycle. it can give ringing tips with a buzzer when it is on the time of setting alarm clock. this kind of el

5、ectron clock is equipped with three keys, the key-press of mode switching, the key-press of addition and the key-press of alarm clock regulation, which enable the clock to adjust to keep accurate time and date , and to buzz at the set time.the electronic clock can show the date and time through the

6、soldering circuit board and preparing c language program, and through keil compiler generated the file of hex. then the file is downloaded to single-chip (mcu) by the sortware which named stc-isp. time and date were display accurately by led digital tube, and they can be adjusted. we achieved the an

7、ticipated result, and the feasibility of the design is proved at the end.key words: singlechip; electronic clock; clock chip 目 錄摘 要iabstractii第一章 引 言11.1 課題研究背景及意義11.2 電子鐘的發(fā)展及現(xiàn)狀1第二章 數(shù)字電子鐘的原理及設(shè)計(jì)方法32.1 數(shù)字電子鐘常用設(shè)計(jì)方法32.2 基于時鐘芯片ds1302的設(shè)計(jì)方法5第三章 主要芯片簡介63.1 at89c51單片機(jī)簡介63.2 ds1302時鐘芯片簡介133.3 max232芯片簡介15第四章

8、硬件電路設(shè)計(jì)184.1 系統(tǒng)組成184.2 時鐘芯片ds1302部分184.2.1 ds1302工作原理194.2.2 電源控制194.3 鍵盤控制模塊204.4 顯示模塊22第五章 軟件設(shè)計(jì)245.1 主程序245.2 ds1302部分設(shè)計(jì)255.3 鍵盤控制部分程序295.4 led顯示部分程序30第六章 調(diào)試326.1 硬件調(diào)試326.1.1 硬件靜態(tài)調(diào)試326.1.2 顯示部分調(diào)試336.2 軟件調(diào)試33結(jié) 論34參考文獻(xiàn)35附錄a 系統(tǒng)硬件原理圖37附錄b 單片機(jī)c語言程序38致 謝55內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì)說明書(畢業(yè)論文)第一章 引 言1.1 課題研究背景及意義伴隨著電子技術(shù)與計(jì)

9、算機(jī)技術(shù)的不斷發(fā)展,以單片機(jī)為核心的測量控制系統(tǒng)層出不窮。當(dāng)然,無論什么控制系統(tǒng)都離不開時間參數(shù)。而傳統(tǒng)的機(jī)械鐘表顯然是不能直接參與到各種自動控制系統(tǒng)中的,數(shù)字式電子鐘表就應(yīng)運(yùn)而生了。電子鐘表是一種用電能為動力,液晶顯示或led顯示數(shù)字式和石英指針式的計(jì)時器。數(shù)字式電子鐘是一種用數(shù)字顯示秒、分、時的計(jì)時裝置,與傳統(tǒng)的機(jī)械鐘相比,它具有走時準(zhǔn)確、顯示直觀、無機(jī)械傳動裝置等優(yōu)點(diǎn),它在工業(yè)自動控制系統(tǒng)中起到了不可或缺的作用。單片機(jī)(又稱為微控制器)的出現(xiàn)是計(jì)算機(jī)發(fā)展史上的一個重要的里程碑,它以體積小、功能全、性價(jià)比高等諸多優(yōu)點(diǎn)而獨(dú)具特色,在工業(yè)控制、尖端武器、通訊設(shè)備、信息處理、家用電器等嵌入式應(yīng)用

10、領(lǐng)域中獨(dú)占鰲頭。單片機(jī)的主要特點(diǎn)有: cpu抗干擾性強(qiáng)、可靠性高、電磁輻射小、控制能力強(qiáng),指令系統(tǒng)簡單,程序可讀性強(qiáng),操作性強(qiáng)。作為一名測控技術(shù)與儀器專業(yè)的學(xué)生,應(yīng)熟練掌握檢測與過程控制及相關(guān)學(xué)科領(lǐng)域的基礎(chǔ)知識和基本技能,畢業(yè)后能夠從事測量與控制領(lǐng)域內(nèi)儀器與系統(tǒng)的設(shè)計(jì)制造、科研開發(fā)、應(yīng)用研究、運(yùn)行與管理等方面的工作。而單片機(jī)技術(shù)作為計(jì)算機(jī)技術(shù)的一個重要分支,廣泛應(yīng)用于工業(yè)控制、智能化儀器儀表、家用電器,甚至電子玩具等各個領(lǐng)域,熟練掌握單片機(jī)技術(shù)尤其自己親手制作一個單片機(jī)系統(tǒng)對測控專業(yè)學(xué)生具有非常重要的意義。1.2 電子鐘的發(fā)展及現(xiàn)狀鐘表是計(jì)時器的一種。在鐘表發(fā)明以前,我們的先輩已經(jīng)在不同的時期

11、利用各種方法來度量時間。比如,依據(jù)太陽光線的位置判斷時間的日晷、圭表,使用沙子的流動記錄時間的沙漏,也有人把它們叫做“太陽鐘”和“沙鐘”,利用水滴計(jì)時的“銅壺滴漏”。但是這些不屬于“鐘表”概念的范疇,因?yàn)殓姳碛?jì)時的原理是通過能夠產(chǎn)生振蕩周期的裝置來計(jì)算時間。而近現(xiàn)代的計(jì)時技術(shù)越來越先進(jìn),出現(xiàn)了真正意義上的機(jī)械式、電子式“鐘表”,甚至出現(xiàn)了更為先進(jìn)的原子鐘。電子鐘是隨著近代電子工業(yè)迅速發(fā)展而發(fā)展起來的新興工業(yè)產(chǎn)品。按照其振蕩元件的不同,大體上可分為擺輪游絲式電子鐘、音片式電子鐘、音叉式電子鐘、晶體管擺鐘、電子數(shù)字鐘和石英電子鐘。還有一些鐘表,雖然直接驅(qū)動機(jī)芯運(yùn)轉(zhuǎn)式由電來完成,但電的來源卻是由其他

12、能源供給的,如光電鐘、以人體手臂擺動的動能為能源的電子表、依靠人體體溫產(chǎn)生電能的電子表。本文所設(shè)計(jì)的基于單片機(jī)的數(shù)字電子鐘即為較精密的計(jì)量和指示時間的儀器。第二章 數(shù)字電子鐘的原理及設(shè)計(jì)方法2.1 數(shù)字電子鐘常用設(shè)計(jì)方法數(shù)字電子鐘的設(shè)計(jì)方法有多種,例如,可用中小規(guī)模集成電路(如利用集成計(jì)數(shù)電路芯片74ls160、74ls163等)組成電子鐘;也可以利用專用的時鐘芯片(如時鐘芯片ds1302、ds12c887等)配以顯示電路及其所需要的外圍電路組成電子鐘;還可以利用單片機(jī)內(nèi)部定時/計(jì)數(shù)器t0/t1計(jì)數(shù)來實(shí)現(xiàn)電子鐘等等。(1)利用集成計(jì)數(shù)電路芯片74ls163計(jì)數(shù):該方案電子鐘邏輯電路由秒計(jì)時電路

13、、分計(jì)時電路和小時計(jì)時電路組成。秒、分計(jì)時電路由六十進(jìn)制計(jì)數(shù)電路組成,而小時計(jì)時采用二十四進(jìn)制計(jì)數(shù)電路,有時也習(xí)慣采用十二進(jìn)制計(jì)數(shù)電路組成。秒、分計(jì)時電路可以由兩個四位二進(jìn)制集成計(jì)數(shù)芯片組成,它采用同步清零。加人60個脈沖后,數(shù)碼管個位顯示09十個數(shù),十位顯示05六個數(shù),合計(jì)顯示0059,完成六十進(jìn)制計(jì)數(shù)。小時計(jì)時采用二十四進(jìn)制計(jì)數(shù)電路時,設(shè)計(jì)電路由一個十進(jìn)制計(jì)數(shù)芯片和二個jk觸發(fā)器組成。設(shè)計(jì)該電路時應(yīng)注意,它的十位應(yīng)顯示02;個位前二次應(yīng)顯示09,第三次應(yīng)顯示03,此后兩位都需清零,所以均采用直接清零法連接。將秒計(jì)時電路、分計(jì)時電路、小時計(jì)時電路分別級聯(lián)起來,則構(gòu)成小時為二十四進(jìn)制的電子鐘計(jì)

14、時電路,當(dāng)電路計(jì)時到235959時,計(jì)時電路自動回零,即變?yōu)?00000,之后再開始重復(fù)計(jì)時。如果小時計(jì)時采用十二進(jìn)制計(jì)數(shù)電路時,需要解決的特殊問題是不回零問題,也就是當(dāng)計(jì)時到125959時,應(yīng)翻轉(zhuǎn)為010000,即小時的計(jì)時不能回零。不回零的特殊問題決定了小時計(jì)時電路不適宜用十進(jìn)制或四位二進(jìn)制集成計(jì)數(shù)芯片實(shí)現(xiàn),因?yàn)橛伤鼈兘M成的各種計(jì)數(shù)電路都需要回零后再重復(fù)計(jì)數(shù)。這樣,在設(shè)計(jì)十二進(jìn)制的小時計(jì)時電路時,就需采用觸發(fā)器的直接置0、置1端,使觸發(fā)器按要求置0或置1,達(dá)到計(jì)數(shù)電路不回零的目的。(2)利用單片機(jī)內(nèi)部定時/計(jì)數(shù)器t0計(jì)數(shù):該方案計(jì)數(shù)功能由at89c51單片機(jī)內(nèi)部定時/計(jì)數(shù)器t0完成。由于單

15、片機(jī)的晶振頻率為12mhz,使得t0的最大定時時間遠(yuǎn)遠(yuǎn)小于1秒,因此,在設(shè)計(jì)時采用了硬件計(jì)數(shù)與軟件計(jì)數(shù)相結(jié)合的方式,即通過t0產(chǎn)生0.1秒的時基信號,然后再利用軟件進(jìn)行計(jì)數(shù),從而產(chǎn)生1秒鐘的時間信號。在設(shè)計(jì)中,定時器t0采用中斷方式。當(dāng)定時時間到時,定時器向cpu申請一次中斷,cpu響應(yīng)中斷后轉(zhuǎn)入中斷服務(wù)程序,在t0的中斷服務(wù)程序中實(shí)現(xiàn)時、分、秒的累加,即每產(chǎn)生一次中斷,0.1秒時基單元的內(nèi)容加1,當(dāng)0.1秒時基單元的內(nèi)容等于10時,便產(chǎn)生l秒信號,使秒計(jì)數(shù)單元的內(nèi)容加1,并將0.1秒時基單元的內(nèi)容清0;當(dāng)秒計(jì)數(shù)單元計(jì)滿60后,向分計(jì)數(shù)單元進(jìn)位,使分計(jì)數(shù)單元的內(nèi)容加1,并將秒計(jì)數(shù)單元的內(nèi)容清0

16、;當(dāng)分計(jì)數(shù)單元計(jì)滿60后,向時計(jì)數(shù)單元進(jìn)位,使時計(jì)數(shù)單元的內(nèi)容加1,并將分計(jì)數(shù)單元的內(nèi)容清0;時計(jì)數(shù)單元計(jì)滿24后清0,從而完成24小時制計(jì)數(shù)。(3)利用專用的時鐘芯片:時鐘芯片多種多樣,其中并行接口的時鐘芯片如mc1468,ds12c887等。它們已能完全滿足單片機(jī)系統(tǒng)對實(shí)時時鐘的要求,但是這些芯片與單片機(jī)接口復(fù)雜、占用地址/數(shù)據(jù)總線接線多、芯片體積大、占用空間多。而串行接口的各種芯片在單片機(jī)系統(tǒng)中應(yīng)用愈來愈多,串行接口的實(shí)時時鐘芯片也出現(xiàn)了不少,ds1302便是一個綜合性能較好且價(jià)格便宜的串行接口實(shí)時時鐘芯片。本設(shè)計(jì)所用方法就是利用專用的時鐘芯片ds1302,具體工作原理請見下文。2.2

17、基于時鐘芯片ds1302的設(shè)計(jì)方法本設(shè)計(jì)課題為基于單片機(jī)的數(shù)字電子鐘的設(shè)計(jì)。在設(shè)計(jì)中,以at89c51單片機(jī)作為系統(tǒng)的主控部件,實(shí)現(xiàn)整個系統(tǒng)的信號控制、數(shù)據(jù)讀寫和處理等功能。設(shè)計(jì)采用涓流充電串行時鐘芯片ds1302實(shí)現(xiàn)時間、日期等時鐘數(shù)據(jù)的計(jì)數(shù)。其中硬件電路包括時鐘芯片ds1302模塊、鍵盤控制模塊、顯示模塊、響鈴模塊。使用可讀性強(qiáng)、移植性好、具有浮點(diǎn)運(yùn)算等功能的c51語言進(jìn)行程序的編寫。在時鐘芯片ds1302內(nèi)部含有一個實(shí)時時鐘/日歷和31字節(jié)靜態(tài)ram。實(shí)時時鐘/日歷電路提供秒、分、時、星期、日、月、年等時間信息,每個月的天數(shù)和閏年的天數(shù)可自動調(diào)整,時鐘操作可通過am/pm標(biāo)志位的設(shè)定以采

18、取24或12小時時間格式。只要對時鐘芯片ds1302初始化后,其便可以按照程序中設(shè)定的時間、星期、日期、年等信息開始工作。時鐘芯片ds1302與單片機(jī)之間采用簡單的同步串行的方式進(jìn)行通信,其預(yù)設(shè)時間信息即通過單片機(jī)對其的寫操作來完成。而單片機(jī)通過對時鐘芯片ds1302內(nèi)部寄存器的讀操作即可完成時間、星期、日期、年等時鐘信息的讀取,繼而送入led顯示模塊進(jìn)行顯示。led顯示模塊為四位七段led數(shù)碼管,由三極管驅(qū)動,其掃描方式為動態(tài)掃描。鍵盤控制模塊設(shè)定為三個按鍵,其分別為模式切換按鍵、加一按鍵、鬧鐘調(diào)整按鍵。同過按鍵可完成時間、日期、鬧鐘時間的調(diào)整。作為系統(tǒng)的核心部件的at89c51單片機(jī),在其

19、上電復(fù)位后首先對時鐘芯片ds1302初始化以啟動時鐘芯片,隨后既要實(shí)現(xiàn)對時鐘芯片ds1302讀寫操作以完成對時鐘的時間、日期、鬧鐘時間的顯示以及調(diào)整,還要在到達(dá)鬧鐘時間時控制鬧鈴模塊的蜂鳴器進(jìn)行響鈴報(bào)警。第三章 主要芯片簡介3.1 at89c51單片機(jī)簡介at89c51是美國atmel公司生產(chǎn)的低電壓、高性能cmos 8位單片機(jī),片內(nèi)含4k字節(jié)可反復(fù)擦寫的只讀程序存儲器(eprom)和128bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),與標(biāo)準(zhǔn)mcs-51指令系統(tǒng)兼容,片內(nèi)置通用8位中央處理器(cpu)和flash存儲單元。由于將多功能8位cpu

20、和閃爍存儲器組合在單個芯片中,atmel的at89c51適合于許多較為復(fù)雜的控制應(yīng)用場合,是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。其引腳圖如圖3.1,內(nèi)部方框圖見圖3.2:圖3.1 at89c51引腳圖(1) 主要性能參數(shù):·與mcs-51 產(chǎn)品指令完全兼容·4k字節(jié)可重復(fù)擦寫flash閃速存儲器·壽命:1000次擦寫周期·全靜態(tài)工作:0hz24hz·三級加密程序存儲器·128×8字節(jié)內(nèi)部ram·32可編程i/o口線·2個16位定時器/計(jì)數(shù)器·6個中斷源·

21、;可編程串行uart通道·低功耗的空閑和掉電模式圖3.2 at89c51內(nèi)部方框圖(2)功能特性概述:at89c51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)flash閃速存儲器,128字節(jié)內(nèi)部ram,32個i/o口線,兩個16位定時/計(jì)數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,at89c51可降至0hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止cpu的工作,但允許ram、定時/計(jì)數(shù)器、串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存ram中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。(3) 引腳功能說明:·vcc:

22、電源電壓·gnd:接地·p0口:p0口是一組8位漏極開路雙向i/o口,即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口使用時,每位能以吸收電流的方式驅(qū)動8個ttl邏輯門電路。對端口寫“1”可作為高阻抗輸入端使用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在flash編程時,p0口接收指令字節(jié),而在程序校驗(yàn)時,輸出指令字節(jié),校驗(yàn)時,要求外接上拉電阻。·p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高

23、電平,此時可作輸入口。作輸入口使用時,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。在flash編程和校驗(yàn)期間,p1口作為低8位地址接收。·p2口:p2口是一個帶有內(nèi)部上拉電阻的8位雙向i/o口,p2口的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因?yàn)槟沁叴嬖谏侠娮?,某個引腳被外部信號拉低時會輸出一個電流(iil)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行movx dptr指令)時,p2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(例如

24、執(zhí)行movx ri指令)時,p2口線上的內(nèi)容(即特殊功能寄存器(sfr)區(qū)中r2寄存器的內(nèi)容)在整個訪問期間不改變。在flash編程和校驗(yàn)期間,p2口也接收高位地址和其他控制信號。·p3口:p3口是一組帶有內(nèi)部上拉電阻的8位雙向i/o口。p3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對p3口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,被外部拉低的p3口將用上拉電阻輸出電流(iil)。p3口除了作為一般的i/o口線外,更重要的用途是它的第二功能,p3口管腳備選功能如下所示:·p3.0 rxd(串行輸入口)·p3.1

25、txd(串行輸出口)·p3.2 /int0(外部中斷0)·p3.3 /int1(外部中斷1)·p3.4 t0(記時器0外部輸入)·p3.5 t1(記時器1外部輸入)·p3.6 /wr(外部數(shù)據(jù)存儲器寫選通)·p3.7 /rd(外部數(shù)據(jù)存儲器讀選通)p3口還接收一些用于flash閃速存儲器編程和程序校驗(yàn)的控制信號。·rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時, rst引腳出現(xiàn)兩個機(jī)器周期以上的高電平將使單片機(jī)復(fù)位。·ale/prog:當(dāng)訪問外部存儲器時,ale(地址鎖存允許)的輸出電平用于鎖存地址的低8位字節(jié)。在flash

26、編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。·/psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。·/ea/vpp

27、:當(dāng)/ea保持低電平時,則在此期間只訪問外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時,此間只訪問內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。·xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。·xtal2:來自反向振蕩器的輸出。 (4) 振蕩器特性:xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,xtal2應(yīng)不接。由于輸入至內(nèi)部時鐘信號要通過一個二

28、分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 振蕩電路如圖3.3所示:圖3.3 at89c51振蕩電路 (5) 芯片擦除:整個perom陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ale管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,at89c51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,cpu停止工作。但ram,定時器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存ram的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功

29、能,直到下一個硬件復(fù)位為止。(6)復(fù)位方式:復(fù)位可以保證單片機(jī)的cpu及其他功能部件都從一個確定的初始狀態(tài)開始工作。復(fù)位信號從rst引腳輸入,高電平持續(xù)2個機(jī)器周期以上有效。若單片機(jī)時鐘頻率為12mhz,則復(fù)位脈沖寬度至少為2微秒。單片機(jī)復(fù)位后,內(nèi)部各寄存器狀態(tài)如表3.1所示。這時,各p口及ale、/psen引腳均為高電平,片內(nèi)ram中內(nèi)容不變。表3.1 復(fù)位后單片機(jī)內(nèi)部寄存器狀態(tài)寄 存 器 名地址內(nèi) 容注釋*acce0h00h累加器*bf0h00h乘法寄存器*pswd0h00h程序狀態(tài)字sp81h07h堆棧指針dpl82h00h數(shù)據(jù)存儲器指針低8位dph83h00h數(shù)據(jù)存儲器指針高8位*ie

30、a8h0××00000h中斷允許控制器*ipd8h×××00000h中斷優(yōu)先控制器*p080hffh端口0*p190hffh端口1*p2a0hffh端口2*p3b0hffh端口3pcon87h00h電源控制及波特率選擇*scon98h00h串行口控制器sbuf99h不定串行數(shù)據(jù)緩沖器*tcon88h00h定時器控制tmod89h00h定時器方式選擇tl08ah00h定時器0低8位tl18bh00h定時器1低8位th08ch00h定時器0低8位th18dh00h定時器1高8位單片機(jī)復(fù)位有自動上電復(fù)位和人工按鈕復(fù)位兩種,電路如圖3.4、3.5所示:

31、圖3.4 自動上電復(fù)位電路圖3.5 手動復(fù)位電路3.2 ds1302時鐘芯片簡介串行時鐘芯片ds1302是dallas公司推出的涓流充電時鐘芯片,內(nèi)部含有移位寄存器、控制邏輯、振蕩器、實(shí)時時鐘/日歷以及31字節(jié)靜態(tài)ram,通過簡單的串行接口與單片機(jī)進(jìn)行通信。實(shí)時時鐘/日歷電路提供秒、分、時、日、星期、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動調(diào)整,時鐘操作可通過am/pm指示決定采用24或12小時格式。ds1302與單片機(jī)之間能簡單地采用同步串行的方式進(jìn)行通信,僅需用到三個口線:(1)res復(fù)位,(2)i/o(數(shù)據(jù)線),(3)sclk(串行時鐘)。時鐘/ram的讀/寫數(shù)據(jù)以一個字節(jié)或多達(dá)31個

32、字節(jié)的字符組方式通信。ds1302工作時功耗很低,保持?jǐn)?shù)據(jù)和時鐘信息時功率小于1mw。其引腳圖如圖3.6:圖3.6 ds1302引腳圖ds1302是由ds1202改進(jìn)而來,增加了以下的特性:雙電源管腳用于主電源和備份電源供應(yīng),vcc1為可編程涓流充電電源,附加七個字節(jié)存儲器。它廣泛應(yīng)用于電話、傳真、便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。(1)ds1302管腳說明·x1,x2: 32.768khz 晶振管腳·gnd: 地·rst:復(fù)位腳·i/o:數(shù)據(jù)輸入/輸出引腳·sclk:串行時鐘·vcc1,vcc2:電源供電管腳(2) ds1

33、302主要的性能指標(biāo):·實(shí)時時鐘具有能計(jì)算2100年之前的秒、分、時、日、日期、星期、月、年的能力,還有閏年調(diào)整的能力·31×8位暫存數(shù)據(jù)存儲ram·串行i/o口方式使得管腳數(shù)量最少·寬范圍工作電壓:2.05.5v·工作電流:2.0v時,小于300na·讀/寫時鐘或ram數(shù)據(jù)時,有兩種傳送方式:單字節(jié)傳送和多字節(jié)傳送·8腳dip封裝或可選的8腳soic封裝(根據(jù)表面裝配)·簡單3線接口·與ttl兼容(vcc = 5v)·可選工業(yè)級溫度范圍:4085·與ds1202兼容

34、3;在ds1202基礎(chǔ)上增加的特性對vcc1有可選的涓流充電能力雙電源管用于主電源和備份電源供應(yīng)備份電源管腳可由電池或大容量電容輸入附加的7字節(jié)暫存存儲器(3)復(fù)位和時鐘控制:數(shù)據(jù)傳輸?shù)膯邮怯?rst置為高電平開始的,/rst啟動控制邏輯,允許地址/命令序列進(jìn)入移位寄存器,一個時鐘周期是一個下降沿跟隨一個上升沿。數(shù)據(jù)輸入時,在時鐘上升沿?cái)?shù)據(jù)必須有效,如果/rst變低,所有數(shù)據(jù)傳送即被終止,i/o引腳到一個高阻狀態(tài)。在電源上電過程中,/rst必須保持邏輯0,直到vcc大于2.0v。在/rst由0變1的過程中,sclk必須是邏輯0。(4)數(shù)據(jù)輸入:輸入寫命令字節(jié)8個時鐘周期之后,在下8個時鐘周期

35、的上升沿輸入數(shù)據(jù),若有額外的sclk周期是不予理睬的,數(shù)據(jù)輸入開始位是位0。(5)數(shù)據(jù)輸出:輸入讀命令字節(jié)8個時鐘周期之后,在下8個時鐘周期的下降沿?cái)?shù)據(jù)被送出。注意:第一個數(shù)據(jù)位被送出發(fā)生在寫命令字節(jié)最后一位的第一個下降沿,數(shù)據(jù)輸出開始位為位0。3.3 max232芯片簡介max232芯片是美信公司專門為電腦的rs-232標(biāo)準(zhǔn)串口設(shè)計(jì)的接口電路,使用+5v單電源供電。max232就是用來進(jìn)行電平轉(zhuǎn)換的,該器件包含2驅(qū)動器、2接收器和一個電壓發(fā)生器電路提供tia/eia-232-f電平。其引腳圖如圖3.7:圖3.7 max232引腳圖(1)內(nèi)部結(jié)構(gòu)基本可分三個部分:第一部分是電荷泵電路。由1、2

36、、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給rs-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13腳(r1in)、12腳(r1out)、11腳(t1in)、14腳(t1out)為第一數(shù)據(jù)通道。8腳(r2in)、9腳(r2out)、10腳(t2in)、7腳(t2out)為第二數(shù)據(jù)通道。ttl/cmos數(shù)據(jù)從t1in、t2in輸入轉(zhuǎn)換成rs-232數(shù)據(jù)從t1out、t2out送到電腦db9插頭;db9插頭的rs-232數(shù)據(jù)從r1in、r2in輸入轉(zhuǎn)換成ttl/cmos數(shù)據(jù)后從r1out、r2out

37、輸出。第三部分是供電。15腳gnd、16腳vcc(+5v)。(2)max232主要性能指標(biāo):·單5v電源工作·linbicmostm工藝技術(shù)·兩個驅(qū)動器及兩個接收器·±30v輸入電平·低電源電流:典型值是8ma·符合甚至優(yōu)于ansi標(biāo)準(zhǔn)eia/tia-232-e及itu推薦標(biāo)準(zhǔn)v.28·可與maxim公司的max232互換·esd保護(hù)大于mil-std-883(方法3015)標(biāo)準(zhǔn)的2000v(3)特性:·輸入電源電壓范圍, vcc :-0.3v至6v·正輸出電源電壓范圍,vs+ :vc

38、c-0.3v至15v·負(fù)輸出電源電壓范圍,vs :-0.3v至-15v·輸入電壓范圍,vi :驅(qū)動器: -0.3v至vcc+0.3v 接收器:±30v·輸出電壓范圍,vo :t1out,t2out :vs0.3v至vs+0.3v r1out,r2out :-0.3v至vcc+0.3v·短路持續(xù)時間:t1out,t2out : 未限制·工作溫度(自然通風(fēng))范圍,ta:max232 : 0至70 max232i :-40至85·存儲溫度范圍,tstg :-65至150·引線溫度,離外殼1.6mm(1/16英寸),10秒

39、 :260第四章 硬件電路設(shè)計(jì)4.1 系統(tǒng)組成本設(shè)計(jì)的核心部件為at89c51單片機(jī)和時鐘芯片ds1302。整個系統(tǒng)在硬件上可分為時鐘芯片ds1302模塊、鍵盤控制模塊、led顯示模塊、響鈴模塊四個部分。所有時鐘信息包括秒、分、小時、星期、日、月及年信息均由時鐘芯片ds1302產(chǎn)生,每月的天數(shù)和閏年的天數(shù)可自動調(diào)整。在at89c51單片機(jī)對時鐘芯片ds1302的讀寫操作下可完成時鐘信息的讀取和寫入,單片機(jī)將每次讀入的時鐘信息送入led數(shù)碼管進(jìn)行顯示,而單片機(jī)每次寫入到時鐘芯片ds1302內(nèi)的時鐘信息可存儲在ds1302的內(nèi)部存儲器中,以實(shí)現(xiàn)的時鐘信息的調(diào)整。鍵盤控制模塊可通過3個按鍵完成時間和

40、日期的調(diào)整以及鬧鐘時間的調(diào)整。led顯示模塊實(shí)現(xiàn)時間、日期的顯示。響鈴模塊通過蜂鳴器可實(shí)現(xiàn)鬧鐘時間的響鈴。系統(tǒng)框圖如圖4.1所示。具體硬件原理圖見附錄a :圖4.1 系統(tǒng)框圖4.2 時鐘芯片ds1302部分串行接口的時鐘芯片ds1302相比于并行接口的時鐘芯片,可以完全滿足單片機(jī)系統(tǒng)對實(shí)時時鐘的要求,而且其與單片機(jī)接口簡單、占用地址/數(shù)據(jù)總線接線少、芯片體積小、占用空間少。時鐘芯片ds1302綜合性能較好且價(jià)格便宜。時鐘芯片ds1302與at89c51單片機(jī)的接口電路如圖4.2所示,用單片機(jī)p1口的3根口線p1.0、p1.1、p1.2分別與ds1302串行總線的sclk引腳、i/o引腳、/rs

41、t引腳相連。其中p1.1需規(guī)定為雙向口線,負(fù)責(zé)單片機(jī)與ds1302之間數(shù)據(jù)的讀取和寫入。x1、x2之間接一只32768hz的晶振即可。 圖4.2 ds1302與單片機(jī)接口電路4.2.1 ds1302工作原理串行時鐘芯片ds1302內(nèi)部主要由移位寄存器、控制邏輯、振蕩器、實(shí)時時鐘/日歷以及31字節(jié)靜態(tài)ram構(gòu)成。為了實(shí)現(xiàn)數(shù)據(jù)傳送,單片機(jī)首先把/rst置為高電平,然后單片機(jī)以一定的時序產(chǎn)生sclk移位時鐘,把地址和命令字節(jié)信息通過i/o口線傳送給ds1302的移位寄存器。數(shù)據(jù)在sclk的上升沿串行輸入。無論是讀周期還是寫周期,開始的8位指定ram字節(jié)中的哪位被訪問。在開始的8個時鐘周期把命令輸入移

42、位寄存器之后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時輸入數(shù)據(jù)。8位的地址/命令字節(jié)所代表的具體含義將在表5.1中介紹。4.2.2 電源控制時鐘芯片ds1302的gnd引腳接電源地,vcc2引腳接系統(tǒng)電源vcc,vcc1引腳接可充電電池或超大容量電容器,啟動ds1302的涓流充電器功能。根據(jù)充電電流的大小選擇充電二極管為一只或兩只,選擇限流電阻為1k、4k或8k,根據(jù)充放電時間選擇電容器容量或電池容量。充電二極管和限流電阻為ds1302內(nèi)置,只需規(guī)定充電控制寄器相應(yīng)各位即可。本設(shè)計(jì)中未用vcc1的涓流充電器功能,而是由usb接口供電,直接為vcc2提供+5v電壓。4.3 鍵盤控制模塊鍵盤接

43、口電路如圖4.3所示。鍵盤控制命令通過單片機(jī)對鍵盤按鍵狀態(tài)的掃描,完成按鍵功能。當(dāng)有按鍵按下時單片機(jī)將由與鍵盤按鍵連接的p1.3p1.5引腳讀取低電平,在由單片機(jī)執(zhí)行相應(yīng)的程序完成按鍵功能。在程序正常運(yùn)行時單片機(jī)會將鍵盤按鍵與其連接的p1.3p1.5引腳置為高電平,所以當(dāng)沒有按鍵按下時單片機(jī)將會由鍵盤控制模塊讀入高電平。圖4.3 鍵盤接口電路由于本設(shè)計(jì)所需鍵盤按鍵只有3個,故采用以上鍵盤接口電路即可完成相應(yīng)的按鍵功能。如果所需鍵盤按鍵較多,為減少鍵盤電路占用的i/o口數(shù)目,一般可以采用以下的矩陣鍵盤形式,如圖4.4所示:圖4.4 矩陣鍵盤接口電路在矩陣鍵盤電路中,一般以行線作為輸入引腳,列線作

44、為輸出引腳(當(dāng)然也可以行線作為輸出引腳,而列線作為輸入引腳)。在以上矩陣鍵盤電路中,以單片機(jī)的p1口作為矩陣鍵盤的行、列線。其中p1.3p1.0作為行線,輸入;p1.7p1.4作為列線,輸出。由于單片機(jī)p1口引腳內(nèi)置了上拉電阻,因此無需外接上拉電阻。在矩陣鍵盤電路工作時,單片機(jī)對p1.7p1.4引腳四條列掃描線輪流輸出低電平,然后讀取p1.3p1.0引腳,如果沒有按鍵被按下,則p1.3p1.0引腳均為高電平;如果其中有某一個按鍵被按下,則p1.3p1.0中就有一個引腳為低電平。例如,當(dāng)p1.7p1.4輸出為1110時,即p1.4引腳輸出低電平,如果輸入的p1.2引腳為低電平,則肯定是p1.4列

45、線與p1.2行線交叉點(diǎn)對應(yīng)的按鍵被按下。圖中輸出引腳所接的二極管起保護(hù)作用,可防止同一行上兩個或兩個以上按鍵被同時按下時,輸出引腳通過行線形成“線與”,損壞單片機(jī)i/o引腳輸出級電路。4.4 顯示模塊本設(shè)計(jì)中的顯示方式為軟件譯碼的led動態(tài)掃描顯示,如圖4.5所示,使用動態(tài)顯示方式可節(jié)省硬件資源。動態(tài)顯示即每次只有一個led被選中,只要刷新頻率不小于25hz,即同一led數(shù)碼管相鄰兩次被點(diǎn)亮的時間間隔要小于40ms利用人體視覺惰性特征, 4個led數(shù)碼管看起來是同時點(diǎn)亮的。而為了保證一定的亮度,在驅(qū)動電流取30ma的情況下,每位led數(shù)碼管的點(diǎn)亮?xí)r間不能小于1ms。 圖4.5 顯示模塊電路顯示

46、模塊由4個七段led數(shù)碼管組成。其字型碼由單片機(jī)p0口輸出,led片選由單片機(jī)p2.0p2.3引腳控制以選通每位led數(shù)碼管。由于負(fù)責(zé)片選的每個引腳最多時將同時啟動7段led數(shù)碼管,每段led數(shù)碼管正常點(diǎn)亮?xí)r以30ma計(jì)算(動態(tài)顯示時led工作電流為2035ma),單片機(jī)p2口引腳不足以驅(qū)動7段led數(shù)碼管,所以要加入驅(qū)動電路,本設(shè)計(jì)采用4只中功率的三極管。當(dāng)然,led數(shù)碼管還有靜態(tài)顯示驅(qū)動電路。led靜態(tài)顯示驅(qū)動電路由筆段代碼鎖存器、筆段譯碼器(采用軟件譯碼的led靜態(tài)顯示驅(qū)動電路無需筆段譯碼器)和驅(qū)動器等部件組成。常用筆段譯碼芯片有74249、cd4511等,而由于軟件譯碼靈活、方便,在單

47、片機(jī)系統(tǒng)中常采用軟件譯碼方式。相比于led動態(tài)顯示驅(qū)動電路,靜態(tài)顯示方式顯示驅(qū)動程序簡單,cpu占用率低,但每一位led數(shù)碼管需要一個8位鎖存器來鎖存筆段碼,硬件開銷大,僅適用于顯示位數(shù)較少(4位以下)的場合。第五章 軟件設(shè)計(jì)軟件設(shè)計(jì)是相對于硬件電路的設(shè)計(jì)而言的,主要是針對于at879c51單片機(jī)程序設(shè)計(jì)。單片機(jī)的程序主要有以下幾個子程序組成(具體程序見附錄b):5.1 主程序圖5.1 主程序流程圖系統(tǒng)上電復(fù)位以后,單片機(jī)內(nèi)部首先開始執(zhí)行的是時鐘芯片ds1302初始化程序。時鐘芯片ds1302初始化以后,將系統(tǒng)預(yù)設(shè)的時間、日期信息寫入時鐘芯片ds1302。繼而單片機(jī)將讀取ds1302內(nèi)部的時鐘

48、信息并將其送入led數(shù)碼管進(jìn)行顯示。在led數(shù)碼管上將顯示時間,幾秒的延時以后將顯示日期,時間與日期循環(huán)顯示。在顯示時間或日期時即可按下模式切換按鍵切換到調(diào)整模式,按下加一按鍵實(shí)現(xiàn)時間或日期的調(diào)整。在設(shè)置鬧鈴的情況下到達(dá)設(shè)定時間將會響鈴。如果沒有按鍵按下或響鈴,單片機(jī)將重新讀取并顯示ds1302的時鐘信息進(jìn)行顯示。主程序流程圖如圖5.1所示。5.2 ds1302部分設(shè)計(jì)圖5.2 時鐘信息讀寫程序流程圖當(dāng)單片機(jī)上電復(fù)位后,對串行時鐘芯片ds1302初始化,同時將程序中預(yù)設(shè)的時間及日期信息寫入時鐘芯片,ds1302將秒、分、時、星期、月、年等時鐘信息存入到秒、分、時、星期、月、年等寄存器中,并將以

49、此為初始時間及日期開始計(jì)數(shù)。單片機(jī)與時鐘芯片ds1302可以以一個字節(jié)或多達(dá)31個字節(jié)的字符組方式通信,單片機(jī)通過對時鐘芯片的內(nèi)部的地址/命令字節(jié)操作控制,可以完成對ds1302的時鐘寄存器或ram的數(shù)據(jù)的讀/寫操作,讀取或?qū)懭霑r鐘信息。時鐘信息讀寫程序流程圖如圖5.2所示: 圖5.3 讀/寫ds1302一字節(jié)程序流程圖讀寫ds1302一字節(jié)需要一個簡單的驅(qū)動程序,初始化要求/rst為低電平,sclk為低電平,/rst再被設(shè)置為高電平就啟動了一個數(shù)據(jù)傳送的過程。sclk的16個方波完成一次數(shù)據(jù)傳送,前8個方波用于輸入命令字節(jié),后8個方波用于數(shù)據(jù)的輸出(讀ds1302)或數(shù)據(jù)的輸入(寫ds130

50、2)。在sclk的上升沿,i/o線上數(shù)據(jù)被送入ds1302,在sclk下降沿ds1302輸出數(shù)據(jù)在i/o線上。注意對單片機(jī)口線p1.1(接ds1302 i/o引腳)輸入輸出功能的控制。讀寫操作各用一個驅(qū)動程序,讀/寫ds1302一字節(jié)程序流程圖如圖5.3所示:ds1302讀數(shù)據(jù)傳送時序如圖5.4所示,ds1302寫數(shù)據(jù)傳送時序如圖5.5所示:圖5.4 ds1302讀數(shù)據(jù)傳送時序圖5.5 ds1302寫數(shù)據(jù)傳送時序每次數(shù)據(jù)傳輸由命令字節(jié)開始,最高有效位msb(位7)必須是邏輯1,若該位是0,則禁止操作ds1302,位6為0時選擇實(shí)時時鐘/日歷數(shù)據(jù),位6為1時選擇ram數(shù)據(jù),位51選擇操作的寄存器

51、,lsb(位0)選擇寫操作(邏輯0)或讀操作(邏輯1)。ds1302地址/命令字節(jié)如圖5.6,寄存器分配見表5.1:圖5.6 ds1302地址/命令字節(jié)表5.1 ds1302時鐘/日歷寄存器詳表寄存器名命令字取值范圍各位內(nèi)容寫操作讀操作765430秒寄存器80h81h0059ch10secsec分寄存器82h83h0059010minmin時寄存器84h85h0112或002312或24010am/pmhrhr日寄存器86h87h0128,29,30,310010日日月寄存器88h89h011200010月月周寄存器8ah8bh01070000周年寄存器8ch8dh019910年年寫保護(hù)寄存器

52、8eh8fhwp0000慢充電寄存器90h91htcstcstcstcsdsdsdsds時鐘突發(fā)寄存器behbfh其中特殊位說明如下:ch:時鐘暫停位,當(dāng)此為設(shè)置為1時,振蕩器停止,ds1302處于低功耗的備份方式;當(dāng)此為變?yōu)?時,時鐘開始啟動。12/24:12或24小時方式選擇位,為1時選擇12小時方式。在12小時方式下,第5位是am/pm選擇位,此位為1表示pm。在24小時方式下,第5位是第2個小時位(2023時為1),即在019點(diǎn)時第5位為0;在2023點(diǎn)時第5位為1。wp:寫保護(hù)位,寫保護(hù)寄存器的開始7位(06)置為0,在讀操作時總是讀出0。在對時鐘或ram進(jìn)行寫操作之前,第7位(wp

53、)必須為0,當(dāng)它為高電平時,寫保護(hù)位防止對任何其他寄存器進(jìn)行寫操作。tcs:控制慢充電的選擇位,為了防止偶然因素使ds1302工作,只有1010模式才能使慢速充電工作。ds:二極管選擇位,如果ds為01,那么選擇一個二極管;如果ds為10,則選擇兩個二極管;如果ds為11或00,那么充電器被禁止,與tcs無關(guān)。5.3 鍵盤控制部分程序在本設(shè)計(jì)中鍵盤按鍵共有3個,分別為模式切換按鍵、加一按鍵、鬧鈴調(diào)整按鍵。其基本功能是在顯示時間、日期或鬧鈴時間時,當(dāng)模式切換按鍵按下時,即進(jìn)入調(diào)整模式的分鐘調(diào)整或者日調(diào)整,此時如果有加一按鍵按下時,即對當(dāng)前調(diào)整內(nèi)容進(jìn)行加一;再按下模式切換按鍵則調(diào)整小時或者月份,此

54、時如果有加一按鍵按下時,即對當(dāng)前調(diào)整內(nèi)容進(jìn)行加一;而再次按下模式調(diào)整按鍵時,則退出調(diào)整模式。具體流程圖如圖5.7所示:圖5.7 按鍵功能執(zhí)行流程圖在按下鬧鈴調(diào)整按鍵時,即顯示鬧鐘時間,當(dāng)有加一按鍵按下時,即對鬧鈴的分鐘進(jìn)行加一;再次按下鬧鈴調(diào)整按鍵時,如果有加一按鍵按下,則對鬧鈴的小時進(jìn)行調(diào)整;再次按下鬧鈴調(diào)整按鍵則退出鬧鈴調(diào)整模式。關(guān)于鍵盤掃描方式可以分為以下3種:(1)隨機(jī)掃描方式。在隨機(jī)掃描方式中,cpu完成某一特定任務(wù)后,執(zhí)行鍵盤掃描程序,以確定鍵盤有無按鍵按下,然后根據(jù)按鍵功能執(zhí)行相應(yīng)的工作。(2)定時掃描方式。定時掃描方式與隨機(jī)掃描方式基本相同,通過定時中斷方式,每隔一定的時間(如

55、1030ms,由于按鍵動作較慢,為提高cpu利用率,實(shí)踐表明每隔30ms對鍵盤掃描一次較為合理)掃描鍵盤有無按鍵被按下,然后根據(jù)按鍵功能執(zhí)行相應(yīng)的工作。(3)中斷檢測方式。在不需要經(jīng)常監(jiān)控鍵盤有無按鍵按下時,隨機(jī)掃描方式和定時掃描方式會由于空掃描而降低cpu的利用率,為此可采用在中斷檢測方式來檢測鍵盤有無按鍵輸入。其方法可以簡單地在鍵盤電路的鍵盤輸入線上增加與門電路,將與門電路的輸出接至/int1中斷輸入至單片機(jī)。本設(shè)計(jì)由于鍵盤按鍵較少,故采用隨機(jī)掃描方式進(jìn)行鍵盤掃描。5.4 led顯示部分程序本設(shè)計(jì)顯示部分為軟件譯碼的led動態(tài)掃描顯示,由4只led數(shù)碼管構(gòu)成。筆段碼和位掃描均采用軟件譯碼的

56、方式。由于動態(tài)掃描顯示每次只有一只led被選中,所以可將每一位要顯示的數(shù)通過查字型表轉(zhuǎn)換為字型碼后同時送入p0口,而通過p2口輸出每一位數(shù)字相應(yīng)的片選選通對應(yīng)的led數(shù)碼管。其流程圖如圖5.8所示:圖5.8 led顯示流程圖動態(tài)掃描顯示即每次只有一個led被選中,只要刷新頻率不小于25hz,即同一led數(shù)碼管相鄰兩次被點(diǎn)亮的時間間隔要小于40ms,利用人體視覺惰性特征,4個led數(shù)碼管看起來是同時點(diǎn)亮的。所以在編寫顯示部分程序時應(yīng)注意led的刷新頻率。第六章 調(diào)試調(diào)試過程分為硬件調(diào)試和軟件調(diào)試。調(diào)試的目的有兩個:一是實(shí)現(xiàn)軟硬件的匹配,達(dá)到預(yù)期的運(yùn)行效果;二是在此基礎(chǔ)上,盡量增強(qiáng)硬件的可靠性,軟件程序的精練。為了使系統(tǒng)排錯、調(diào)試順利進(jìn)行,在硬件電路焊接時要分模塊進(jìn)行。如先焊接電源、開關(guān)以及單片機(jī)(構(gòu)成最小系統(tǒng)),再依次焊接led顯示模塊、串口下載模塊、時鐘芯片ds1302部分、鍵盤按鍵部分、蜂鳴器響鈴部分等。如此焊接順序可以將系統(tǒng)分為多個部分分步檢查、排錯,可大大減少排錯工作量。6.1 硬件調(diào)試6.1.1 硬件靜態(tài)調(diào)試(1)排除邏輯故障這類故障往往是由于硬件的設(shè)計(jì)和焊接過程中的錯誤造成的。主要包括錯線、開路、短路。排除的方法是首先將電路板上的連接認(rèn)真的對照原理圖,看兩者是否一致。應(yīng)特別注意電源系統(tǒng)檢查,以防止電源短路和極性錯誤,必要時利用數(shù)字萬用表的短路測試功能,可以縮短

溫馨提示

  • 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

提交評論