畢業(yè)設(shè)計論文基于單片機(jī)的電子鬧鐘設(shè)計_第1頁
畢業(yè)設(shè)計論文基于單片機(jī)的電子鬧鐘設(shè)計_第2頁
畢業(yè)設(shè)計論文基于單片機(jī)的電子鬧鐘設(shè)計_第3頁
畢業(yè)設(shè)計論文基于單片機(jī)的電子鬧鐘設(shè)計_第4頁
畢業(yè)設(shè)計論文基于單片機(jī)的電子鬧鐘設(shè)計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本科畢業(yè)論文(設(shè)計)題目數(shù)據(jù)采集系統(tǒng)中的海量存儲院(系)工程學(xué)院專業(yè)計算機(jī)科學(xué)技術(shù)與應(yīng)用年級2004 級 學(xué)生姓名肖強(qiáng)學(xué)號048T30219指導(dǎo)教師景小寧 二00 八年六月摘 要單片機(jī)自20世紀(jì)70年代問世以來,以其極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。 本文設(shè)計以AT89S51芯片為核心,輔以必要的外圍電路,設(shè)計了一個結(jié)構(gòu)簡單,功能齊全的電子時鐘,它由5V直流電源供電。在硬件方面,除了CPU外,使用六個七段LED數(shù)碼管來進(jìn)行顯示,LED采用的是動態(tài)掃描顯示,使用74LS14芯片進(jìn)行驅(qū)動。通過LED能夠比較準(zhǔn)確顯示時、分

2、。兩個簡單的按鍵實(shí)現(xiàn)對時間的調(diào)整。軟件方面采用匯編語言編程。整個電子鐘系統(tǒng)能完成時間的顯示、調(diào)時、定時鬧鐘和復(fù)位等功能。 選用單片機(jī)最小系統(tǒng)應(yīng)用程序,添加比較程序、時間調(diào)整程序及蜂鳴程序,通過時間比較程序觸發(fā)蜂鳴,實(shí)現(xiàn)鬧鐘功能,完成設(shè)計所需求的軟件環(huán)境。介紹并使用Keil單片機(jī)模擬調(diào)試軟件,測試程序的可行性。關(guān)鍵詞:單片機(jī)技術(shù),AT89S51,液晶驅(qū)動,電子鬧鐘ABSTRACTBecause of its extremely high performance-price ratio, the single-chip computer (SCC) has been paid great atte

3、ntion to ever since it came out in 1970s of 20th Century, and has gained an extensive applicable field and fast development. Among all kinds of SCCs, 51 SCC is the most typical and representative one. This design, adopting AT89S51 chip as the core part with some necessary peripheral circuits, is a s

4、imple electronic clock which uses 5V DC as the power supply. In hardware aspect, besides the CPU, six seven-segment LED digi-tubes are used for display, which work in a dynamically scanning display mode and driven by 74SL14 chip. The LEDs can accurately indicate hour and minute and two buttons can b

5、e used to adjust the time. While in the software aspect, the programming language is assembly language. The whole electronic clock system has functions of time display, adjustment, bell-setting and reset, etc. Choose the smallest SCM system applications,add Comparison procedures, time to adjust proc

6、edures and faint buzzing procedures, Through relatively faint buzzing trigger procedures to achieve alarm clock function, Completed the design needs of the software environment. Keil introduced and the use of SCM software simulation debugging, testing the feasibility. Keywords:technology of the one-

7、chip computer,AT89S51,the liquid crystal is driven,Electronic alarm clock目 錄第1章 緒 論11.1 單片機(jī)簡介11.2 電子鬧鐘的重要意義11.3 本文的主要工作2第2章AT89S51單片機(jī)的硬件系統(tǒng)32.1 AT89S51單片機(jī)的特性32.2 AT89S51 單片機(jī)的封裝32.3 存儲空間32.3.1 程序存儲空間42.3.2 數(shù)據(jù)存儲空間52.4 單片機(jī)最小應(yīng)用系統(tǒng)電路88899第3章 電子鬧鐘的硬件設(shè)計11113.2 系統(tǒng)組成1111111212121213133.3.8 振蕩器133.3.9 整體系統(tǒng)143.4

8、 硬件選擇14第4章 電子鬧鐘的軟件設(shè)計164.1 子程序及其功能簡介164.2 程序設(shè)計164.3 調(diào)試軟件及其環(huán)境174.3.1 Keil單片機(jī)模擬仿真調(diào)試軟件的安裝和啟動184.3.2 工程的建立204.3.3 源文件的輸入22結(jié) 論24參考文獻(xiàn)25第1章 緒 論 單片機(jī)簡介單片機(jī)的全稱是單片微型計算機(jī)(Single Chip Microcomputer)。為了使用方便,它把組成計算機(jī)的主要功能部件:中央處理器(CPU)、數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM、EPROM、E2PROM或FLASH)、定時/計數(shù)器和各種輸入/輸出接口電路等都集成在一塊半導(dǎo)體芯片上,構(gòu)成了一個完整的計算機(jī)

9、系統(tǒng)。與通用的計算機(jī)不同,單片機(jī)的指令功能是按照工業(yè)控制的要求設(shè)計,因此它又被稱為微控制器(Microcontroller)。MCS51系列1單片機(jī)是美國Intel公司于1980年推出的一種8位單片機(jī)系列。該系列的基本型產(chǎn)品是8051、8031和8751。這3種產(chǎn)品之間的區(qū)別只是在片內(nèi)程序存儲器方面。8051的片內(nèi)程序存儲器(ROM)是掩膜型的,即在制造芯片時已將應(yīng)用程序固化進(jìn)去;8031片內(nèi)沒有程序存儲器;8751內(nèi)部包含有用作程序存儲器4KB的EPROM。由于8051的編程需要制造商的支持,而8751的價格昂貴,因此8031獲得了更為廣泛的使用。MCS51系列單片機(jī)優(yōu)異的性能/價格比使得它

10、從面世以來就獲得用戶的認(rèn)可。Intel公司把這種單片機(jī)的內(nèi)核,即8051內(nèi)核,以出售或互換專利的方式授權(quán)給一些公司,如Atmel、Philips、ADI等。這些公司的這類產(chǎn)品也被稱為8051兼容芯片,這些8051兼容芯片在原來的基礎(chǔ)上增加了許多特性。本文應(yīng)用電路中采用了Atmel公司的AT89S51芯片,它與MCS51單片機(jī)指令兼容,同時它的內(nèi)部包含用作程序存儲器4KB的基于FLASH技術(shù)的只讀存儲器。采用這款芯片既克服了采用8031需要添加外部程序存儲器導(dǎo)致電路復(fù)雜的缺點(diǎn),又克服了采用8751導(dǎo)致電路制作成本高的缺點(diǎn)。 電子鬧鐘的重要意義20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代

11、電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時間。忘記了要做的事情,當(dāng)事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。例如,許多火災(zāi)都是由于人們一時忘記了關(guān)閉煤氣或是忘記充電時間。尤其在醫(yī)院,每次護(hù)士都會給病人作皮試,測試病人是否對藥物過敏。注射后,一般等待5分鐘,一旦超時,所作的皮試試驗(yàn)就會無效。手表當(dāng)然是一個好的選擇,但是,隨著接受皮試的人數(shù)增加,到底是哪個人的皮試到時間卻難以判斷。

12、所以,要制作一個定時系統(tǒng)。隨時提醒這些容易忘記時間的人。鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴(kuò)展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、定時啟閉電路、定時開關(guān)烘箱、通斷動力設(shè)備,甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。 本文的主要工作首先介紹設(shè)計電子鬧鐘所涉及的主要硬件和特性,然后說明軟件設(shè)計的思路,程序結(jié)構(gòu)及流程,并在測試軟件上進(jìn)行調(diào)試修改,以完成電子鬧鐘的基本要求,即可隨意設(shè)定起始時間,有秒顯示功能,有12/24時制選擇,可設(shè)定鬧鐘,停電時由電池供電等功能

13、。第2章AT89S51單片機(jī)的硬件系統(tǒng)單片機(jī)的特性Atmel公司的AT89S51芯片具有以下特性:(1)指令集和芯片引腳與Intel公司的8051兼容;(2) 4KB片內(nèi)在系統(tǒng)可編程Flash程序存儲器;(3)時鐘頻率為033MHz;(4)128字節(jié)片內(nèi)隨機(jī)讀寫存儲器(RAM);(5)32個可編程輸入/輸出引腳;(6)2個16位定時/計數(shù)器;(7) 6個中斷源,2級優(yōu)先級;(8)全雙工串行通信接口;(9)監(jiān)視定時器;(10) 2個數(shù)據(jù)指針。2.2 AT89S51 單片機(jī)的封裝AT89S51單片機(jī)2具有多種封裝形式,包括PDIP40、PDIP42、PLCC44和TQFP44。最適合學(xué)校實(shí)驗(yàn)室使用

14、的是PDIP40封裝形式,它的外形如圖所示。PDIP40封裝形式的單片機(jī)芯片可以很方便地使用面包板來組成應(yīng)用電路。 存儲空間AT89S51單片機(jī)3的程序存儲空間和數(shù)據(jù)存儲空間是分離的,每種存儲空間的尋址范圍都是64KB。上述存儲空間在物理上可以被映射到4個區(qū)域:片內(nèi)程序存儲器和片外程序存儲器,片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。存儲空間的映射圖如圖所示。當(dāng)存儲空間映射為外部存儲器時,包括程序空間和數(shù)據(jù)空間,AT89S51單片機(jī)P0口的8個引腳,從(AD0)到(AD7)(引腳從39到32),以時分方式被用作數(shù)據(jù)總線和地址總線的低8位;P2口的8個引腳,從(A8)到(A15)(引腳從21到28),被用

15、作地址總線的高8位。由于對外部程序存儲器和外部數(shù)據(jù)存儲器的訪問都是通過P0口和P2口實(shí)現(xiàn),為了區(qū)分它們,外部程序存儲器由引腳(引腳29)的輸出信號控制;外部數(shù)據(jù)存儲器的寫或讀操作分別由引腳(,引腳16)和引腳(,引腳17)輸出信號控制。圖2.1 AT89S51單片機(jī)PDIP40封裝外形圖 AT89S51單片機(jī)的存儲器映射圖 程序存儲空間程序存儲空間可以被映射為內(nèi)部程序存儲器或者外部程序存儲器4。AT89S51單片機(jī)內(nèi)部具有的4KB程序存儲器被映射到程序存儲空間的0000H0FFFH區(qū)間,如圖所示。這部分程序存儲空間也可以被映射為外部程序存儲器,它具體被映射為哪一種程序存儲器取決于引腳(引腳31

16、)所接的電平。當(dāng)引腳為高電平,內(nèi)部程序存儲器被映射到這部分程序存儲空間;當(dāng)引腳為低電平,外部程序存儲器被映射到這部分程序存儲空間。高于0FFFH的程序存儲空間只能被映射為外部程序存儲器。目前Atmel公司生產(chǎn)的8051兼容芯片具有多種容量的內(nèi)部程序存儲器的型號,例如AT89S52單片機(jī)具有8KB內(nèi)部程序存儲器;T89C51RD2單片機(jī)具有64KB內(nèi)部程序存儲器。鑒于通??梢圆捎镁哂凶銐騼?nèi)部程序存儲器容量的單片機(jī)芯片,用戶在使用中不需要再擴(kuò)展外部程序存儲器,這樣在單片機(jī)應(yīng)用電路中引腳(引腳31)可以總是接高電平。 數(shù)據(jù)存儲空間如圖2.3所示,數(shù)據(jù)存儲空間5也可以被映射為內(nèi)部數(shù)據(jù)存儲器和外部數(shù)據(jù)存

17、儲器。進(jìn)入不同的數(shù)據(jù)存儲器是通過不同的指令來實(shí)現(xiàn)的,這點(diǎn)與程序存儲器不一樣。AT89S51的內(nèi)部數(shù)據(jù)存儲器有256字節(jié),它們被分為兩部分:高128字節(jié)和低128字節(jié)。低128字節(jié)的內(nèi)部數(shù)據(jù)存儲器是真正的RAM區(qū),可以被用來寫入或讀出數(shù)據(jù)。這一部分存儲容量不是很大,但有很大的作用。它可以進(jìn)一步被分為3部分,如圖所示。在內(nèi)部數(shù)據(jù)存儲器低128字節(jié)中,地址從00H1FH的最低32個字節(jié)組成4組工作寄存器,每組有8個工作寄存器。每組中的8個工作寄存器都被命名為從R0到R7。在一個具體時刻,CPU只能使用其中的一組工作寄存器。當(dāng)前正在使用的工作寄存器組由位于高128字節(jié)的程序狀態(tài)字寄存器(PSW)中第3

18、位(RS0)和第4位(RS1)的數(shù)據(jù)決定。程序狀態(tài)字寄存器中的數(shù)據(jù)可以通過編程來改變,這種功能為保護(hù)工作寄存器的內(nèi)容提供了很大的方便6。如果用戶程序中不需要全部使用4組工作寄存器,那么剩下的工作寄存器所對應(yīng)的內(nèi)部數(shù)據(jù)存儲器也可以作為通用數(shù)據(jù)存儲器使用。工作寄存器在內(nèi)部數(shù)據(jù)存儲器中的地址映射如表2.1所示。表2.1 工作寄存器地址映射表0組(RS1=0,RS0=0)1組(RS1=0,RS0=1)2組(RS1=1,RS0=0)3組(RS1=1,RS0=1)地址寄存器地址寄存器地址寄存器地址寄存器00HR008HR010HR018HR001HR109HR111HR119HR102HR20AHR212

19、HR21AHR203HR30BHR313HR31BHR304HR40CHR414HR41CHR405HR50DHR515HR51DHR506HR60EHR616HR61EHR607HR70FHR717HR71FHR7表2.2 字節(jié)地址與位地址的關(guān)系位 地 址字節(jié)地址D7D6D5D4D3D2D1D02FH7F7E7D7C7B7A79782EH77767574737271702DH6F6E6D6C6B6A69682CH67666564636261602BH5F5E5D5C5B5A59582AH575655545352515029H4F4E4D4C4B4A494828H474645444342414

20、027H3F3E3D3C3B3A393826H373635343332313025H2F2E2D2C2B2A292824H272625242322212023H1F1E1D1C1B1A191822H171615141312111021H0F0E0D0C0B0A090820H0706050403020100在工作寄存器區(qū)上面,內(nèi)部數(shù)據(jù)存儲器的地址從20H2FH的16個字節(jié)范圍內(nèi),既可以通過字節(jié)尋址的方式進(jìn)入,也可以通過位尋址的方式進(jìn)入,位地址范圍從00H到7FH。字節(jié)地址與位地址的對應(yīng)關(guān)系如表2.2所示。內(nèi)部數(shù)據(jù)存儲器地址從30H7FH部分僅可以用作通用數(shù)據(jù)存儲器。內(nèi)部數(shù)據(jù)存儲器的高128字節(jié)被

21、稱為特殊功能寄存器(SFR)區(qū)。特殊功能寄存器被用作CPU和在片外圍器件之間的接口,它們之間的聯(lián)系方框圖如圖所示。圖2.4特殊功能寄存器(SFR)工作框圖表2.3 AT89S51單片機(jī)特殊功能存儲器地址映射表F8HFFHF0HBF7HE8HEFHE0HACCE7HD8HDFHD0HPSWD7HC8HCFHC0HC7HB8HIPBFHB0HP3B7HA8HIEAFHA0HP2AUXR1WDERSTA7H98HSCONSBUF9FH90HP197H88HTCONTMODTL0TL1TH0TH1AUXR8FH80HP0SPDP0LDP0HDP1LDP1HPCON87HCPU通過向相應(yīng)的特殊功能存儲器

22、寫入數(shù)據(jù)實(shí)現(xiàn)控制對應(yīng)的在片外圍器件的工作,從相應(yīng)的特殊功能存儲器讀出數(shù)據(jù)實(shí)現(xiàn)讀取對應(yīng)的在片外圍器件7的工作結(jié)果。在AT89S51單片機(jī)中,包括前面提到的程序狀態(tài)字寄存器(PSW)的特殊功能存儲器共有26個,它們離散地分布在80HFFH的內(nèi)部數(shù)據(jù)存儲器地址空間范圍內(nèi),如表2.3所示。在表中,對于沒有定義的存儲單元用戶不能使用。如果向這些存儲單元寫入數(shù)據(jù)將產(chǎn)生不確定的效果,從它們讀取數(shù)據(jù)將得到一個隨機(jī)數(shù)。對于字節(jié)地址低位為8H或者FH的特殊功能存儲器,既可以進(jìn)行字節(jié)操作,也可以進(jìn)行位操作。例如前面提到的用來確定當(dāng)前工作寄存器組的程序狀態(tài)字寄存器(PSW),它的地址為D0H,因此對它可以進(jìn)行字節(jié)操作

23、,也可以進(jìn)行位操作。采用位操作可以直接控制程序狀態(tài)字寄存器中的第3位(RS0)或第4位(RS1)數(shù)據(jù)而不影響其他位的數(shù)據(jù)。低位地址不為8H或FH的特殊功能存儲器只可以進(jìn)行字節(jié)操作,當(dāng)需要修改這些特殊功能存儲器中的某些位時,對其他的位應(yīng)注意保護(hù)。片外數(shù)據(jù)存儲空間8可以被映射為數(shù)據(jù)存儲器、擴(kuò)展的輸入/輸出接口、模擬/數(shù)字轉(zhuǎn)換器和數(shù)字/模擬轉(zhuǎn)換器等。這些外圍器件統(tǒng)一編址。所有外圍器件的地址都占用數(shù)據(jù)存儲空間的地址資源,因此CPU與片外外圍器件進(jìn)行數(shù)據(jù)交換時可以使用與訪問外部數(shù)據(jù)存儲器相同的指令。CPU通過向相應(yīng)的外部數(shù)據(jù)存儲器地址單元寫入數(shù)據(jù)實(shí)現(xiàn)控制對應(yīng)的片外外圍器件的工作,從相應(yīng)的外部數(shù)據(jù)存儲器地

24、址單元讀出數(shù)據(jù)實(shí)現(xiàn)讀取對應(yīng)的片外外圍器件的工作結(jié)果。 單片機(jī)最小應(yīng)用系統(tǒng)電路單片機(jī)的最小應(yīng)用系統(tǒng)電路指的是它可以正常工作的最簡單電路組成。AT89S51單片機(jī)的最小應(yīng)用系統(tǒng)電路如圖所示,該系統(tǒng)中包含4個電路部分。供電電路引腳VCC(引腳40)接+5V電源,引腳GND(引腳20)接地線。為提高電路的抗干擾能力,一個(器件標(biāo)注為104)的瓷片電容和一個10F的電解電容通常被接在引腳VCC和接地線之間。程序存儲器選擇電路如前所述,Atmel公司生產(chǎn)的8051兼容芯片具有多種容量的內(nèi)部程序存儲器的型號,因此在使用中不需要再擴(kuò)展外部程序存儲器,這樣在單片機(jī)應(yīng)用電路中引腳(引腳31)可以總是接高電平。圖2

25、.5 AT89S51單片機(jī)最小應(yīng)用系統(tǒng)電路時鐘電路AT89S51芯片的時鐘頻率可以在033MHz范圍。單片機(jī)內(nèi)部有一個可以構(gòu)成振蕩器的放大電路。在這個放大電路的對外引腳XTAL2(引腳18)和XTAL1(引腳19)接上晶體和電容就可以構(gòu)成單片機(jī)的時鐘電路。圖所示的時鐘電路由晶體CRY和電容C2與C3組成。單片機(jī)的時鐘頻率取決于晶體CRY的頻率,如果采用面包板來組裝單片機(jī)應(yīng)用電路,晶體CRY的推薦值為12MHz以下,電容C2與C3的取值范圍為30pF50pF。時鐘電路采用晶體的目的是提高時鐘頻率的穩(wěn)定性。復(fù)位電路對于AT89S51芯片,如果引腳RST(引腳9)保持24個時鐘周期的高電平,單片機(jī)就

26、可以完成復(fù)位。通常為了保證應(yīng)用系統(tǒng)可靠地復(fù)位,復(fù)位電路應(yīng)使引腳RST保持10ms以上的高電平。只要引腳RST保持高電平,單片機(jī)就循環(huán)復(fù)位。當(dāng)引腳RST從高電平變?yōu)榈碗娖綍r,單片機(jī)退出復(fù)位狀態(tài),從程序空間的0000H地址開始執(zhí)行用戶程序。圖所示復(fù)位電路由C1和R1組成。當(dāng)系統(tǒng)加電時,由于C1兩端的電壓不能突變,因此引腳RST為高電平,單片機(jī)進(jìn)入復(fù)位狀態(tài)。隨著C1充電,它兩端的電壓上升,使得引腳RST上電壓下降,最終使單片機(jī)退出復(fù)位狀態(tài)。合理地選擇C1和R1的取值,系統(tǒng)就能可靠地復(fù)位。C1的推薦值是10F,R1的推薦值是10k。完成復(fù)位后,單片機(jī)不僅從程序空間的0000H地址開始執(zhí)行用戶程序,而且

27、還影響一些特殊功能存儲器的初始狀態(tài)。相應(yīng)的特殊功能存儲器的復(fù)位值如表所示。DPTR稱為數(shù)據(jù)指針,它由兩個特殊功能寄存器DP0H和DP0L組成。表2.4 特殊功能存儲器的復(fù)位值特殊功能寄存器復(fù)位值特殊功能寄存器復(fù)位值PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0P3FFHSCON00HIPXXX0 0000BSBUFXXXX XXXXBIE0XX0 0000BPCON0XXX 0000B注:PC稱為程序指針,它被用來存儲下一條要執(zhí)行的指令地址,PC的位置并不在特殊功能存儲器區(qū)域。第3章 電

28、子鬧鐘的硬件設(shè)計系統(tǒng)要求本課題設(shè)計的電子鬧鐘系統(tǒng)要求為:(1) 能隨意設(shè)定走時起始時間;(2)能設(shè)定鬧鈴時間;(3) 能指示秒節(jié)奏,即秒指示;(4) 12小時/24小時兩種制式可選;(5) 采用交直流供電電源;(7) 具有走時誤差修正能力;(7) 具有溫度顯示的功能;(8) 停電時單片機(jī)由電池供電,計時不會停止。系統(tǒng)組成該數(shù)字鬧鐘包括以下幾個組成部分:(1) 顯示屏:由6個七段數(shù)碼管組成,用于顯示當(dāng)前時間(時分秒)或設(shè)置的鬧鐘時間;(2) KEY鍵:用于輸入新的時間或新的鬧鐘時間時,對每位輸入數(shù)字的確認(rèn);(3) TIME(時間)鍵:用于確定新的時間設(shè)置; (4)鬧鐘鍵:用于確定新的鬧鐘時間設(shè)置

29、,或顯示已設(shè)置的鬧鐘時間;(5) 揚(yáng)聲器:在當(dāng)前時鐘時間與鬧鐘時間相同時,發(fā)出蜂鳴聲。系統(tǒng)設(shè)計控制器控制器是電子鬧鐘設(shè)計的核心部分,按設(shè)計要求產(chǎn)生相應(yīng)的控制邏輯,以控制其他各部分的工作。由程序計數(shù)器、指令寄存器、指令譯碼器、時序產(chǎn)生器和操作控制器組成,它是發(fā)布命令的“決策機(jī)構(gòu)”,即完成協(xié)調(diào)和指揮整個計算機(jī)系統(tǒng)的操作??刂破髦饕δ苋缦拢簭膬?nèi)存中取出一條指令,并指出下一條指令在內(nèi)存中位置對指令進(jìn)行譯碼或測試,并產(chǎn)生相應(yīng)的操作控制信號,以便啟動規(guī)定的動作;指揮并控制CPU、內(nèi)存和輸入/輸出設(shè)備之間數(shù)據(jù)流動的方向。計數(shù)器計數(shù)器ALARM-COUNTER實(shí)際上是一個異步復(fù)位、異步置位的累加器。在中央處

30、理器 CPU 中,累加器 (ACCUMULATOR) 是一種暫存器,用來儲存計算所產(chǎn)生的中間結(jié)果。沒有像累加器這樣的暫存器,那么在每次計算 (加法,乘法,移位等等) 后就必須要把結(jié)果寫回到內(nèi)存,也許然后再讀回來。然而存取主內(nèi)存的速度是比從數(shù)學(xué)邏輯單元(ALU) 到有直接路徑的累加器存取更慢。計數(shù)器的作用是:通常情況下進(jìn)行時鐘累加計數(shù),必要時可以置入新的時鐘值,然后從該值開始新的計數(shù)。寄存器寄存器ALARM-REG用于保存用戶設(shè)置的鬧鐘時間,是一個異步復(fù)位寄存器。寄存器是中央處理器內(nèi)的組成部份,是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和位址。在中央處理器的控制部件中,包含的寄存器有

31、指令寄存器(IR)和程序計數(shù)器(PC)。在中央處理器的算術(shù)及邏輯部件中,包含的寄存器有累加器(ACC)。分頻器分頻器DIVIDER將高速的外部時鐘頻率分頻成每一分鐘一次的時鐘頻率,以便進(jìn)行時鐘計數(shù)。由于石英晶體振蕩器產(chǎn)生的頻率很高,要得到秒脈沖,需要用分頻電路。例如,振蕩器輸出4MHZ信號,通過D觸發(fā)器(74LS74)進(jìn)行4分頻變成1MHZ,然后送到10分頻計數(shù)器(74LS90,該計數(shù)器可以用8421碼制,也可以用5421碼制),經(jīng)過6次10分頻而獲得1HZ方波信號作為秒脈沖信號。顯示電路顯示器DRIVER根據(jù)需要顯示當(dāng)前時間、用戶設(shè)置的鬧鐘時間或用戶通過鍵盤輸入的新時間,同時判斷當(dāng)前時間是否

32、已到了鬧鐘時間,實(shí)際上是一個多路選擇比較器。多路選擇器是數(shù)據(jù)選擇器的別稱。在多路數(shù)據(jù)傳送過程中,能夠根據(jù)需要將其中任意一路選出來的電路,叫做數(shù)據(jù)選擇器,也稱多路選擇器或多路開關(guān)。輸入電路鍵盤緩沖器KEY-BUFFER是一個移位寄存器,暫存用戶鍵入的數(shù)字,并且實(shí)現(xiàn)用戶鍵入數(shù)字在顯示器上從右到左是依次顯示。寄存器的用途:(1)可將寄存器內(nèi)的數(shù)據(jù)執(zhí)行算術(shù)及邏輯運(yùn)算。(2)存于寄存器內(nèi)的地址可用來指向內(nèi)存的某個位置,即尋址。(3)可以用來讀寫數(shù)據(jù)到電腦的周邊設(shè)備。AT89S51有8個8位數(shù)據(jù)寄存器,這些8位寄存器可分別組成16位寄存器: AH&ALAX:累加寄存器,常用于運(yùn)算; BH&

33、BLBX:基址寄存器,常用于地址索引; CH&CLCX:計數(shù)寄存器,常用于計數(shù); DH&DLDX:數(shù)據(jù)寄存器,常用于數(shù)據(jù)傳遞。為了運(yùn)用所有的內(nèi)存空間,8086設(shè)定了四個段寄存器,專門用來保存段地址:CS(CODE SEGMENT):代碼段寄存器;DS(DATA SEGMENT):數(shù)據(jù)段寄存器;SS(STACK SEGMENT):堆棧段寄存器;ES(EXTRA SEGMENT):附加段寄存器。當(dāng)一個程序要執(zhí)行時,就要決定程序代碼、數(shù)據(jù)和堆棧各要用到內(nèi)存的哪些位置,通過設(shè)定段寄存器 CS,DS,SS 來指向這些起始位置。通常是將DS固定,而根據(jù)需要修改CS。所以,程序可以在可尋址空

34、間小于64K的情況下被寫成任意大小。所以,程序和其數(shù)據(jù)組合起來的大小,限制在DS 所指的64K內(nèi),這就是COM文件不得大于64K的原因。計時器在計時過程中,系統(tǒng)利用89S51自身的計時器T0作為時鐘基準(zhǔn),計時器中斷的準(zhǔn)確度直接關(guān)系到整個系統(tǒng)的精度,因此獲取精確的定時時鐘信號成為該系統(tǒng)的關(guān)鍵。AT89S51單片機(jī)內(nèi)有2個可編程的16位定時器計數(shù)器,并工作在方式l下,晶振頻率為12MHz。振蕩器石英晶體振蕩器的特點(diǎn)是振蕩頻率準(zhǔn)確、電路結(jié)構(gòu)簡單、頻率易調(diào)整。它被廣泛應(yīng)用于彩電、計算機(jī)、遙控器等各類振蕩電路中。它還具有壓電效應(yīng):在晶體某一方向加一電場,晶體就會產(chǎn)生機(jī)械變形;反之,若在晶片的兩側(cè)施加機(jī)械

35、壓力,則在晶片相應(yīng)的方向上將產(chǎn)生電場,這種物理現(xiàn)象稱為壓電效應(yīng)。在這里,我們在晶體某一方向加一電場,從而在與此垂直的方向產(chǎn)生機(jī)械振動,有了機(jī)械振動,就會在相應(yīng)的垂直面上產(chǎn)生電場,從而使機(jī)械振動和電場互為因果,這種循環(huán)過程一直持續(xù)到晶體的機(jī)械強(qiáng)度限制時,才達(dá)到最后穩(wěn)定,這種壓電諧振的頻率即為晶體振蕩器的固有頻率。整體系統(tǒng)電子鬧鐘的系統(tǒng)硬件電路,由控制器、記數(shù)器、寄存器、分頻器、記時器、振蕩器、顯示電路及輸入電路組成。 硬件選擇單片機(jī)選用AT89S51型,它是一種帶4K字節(jié)閃爍可編程可擦除只讀儲存的低電壓、高性能CMOS8位微處理器,該器件采用ATMEL高密度非易失性存儲器制造技術(shù)與工業(yè)標(biāo)準(zhǔn)的MC

36、S-51指令集和輸出管腳相兼容,由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT8951是一種高效微控制器,為很多嵌入控制系統(tǒng)提供了一種靈活性高且廉價的方案。整體系統(tǒng)選用 AT89S51單片機(jī),時鐘芯片DS1302,數(shù)碼管顯示驅(qū)動芯片MAX7219。共陰極數(shù)碼管8個,4511七段譯碼芯片1片, 24M晶振1個。圖3.1 系統(tǒng)硬件電路圖第4章電子鬧鐘的軟件設(shè)計AT89S5l內(nèi)部定時/計數(shù)器T0和Tl設(shè)置為定時器模式l工作方式作為電子時鐘及電子秒表的計時基準(zhǔn)。定時器T0產(chǎn)生10 ms的中斷信號,每經(jīng)過1t30次中斷,時鐘秒位加一,秒位經(jīng)60次加一后向時位進(jìn)位,當(dāng)時問為23時59

37、分59秒時,秒位再加一后變?yōu)?0時00分00秒當(dāng)按鍵切換為電子秒表功能時,T0每產(chǎn)生一次中斷,十毫秒單元加一,十毫秒單元經(jīng)過l0次加一后,百毫秒單元加一。依次進(jìn)位可實(shí)現(xiàn)最長為9小時59分59秒990毫秒的秒表計時,可達(dá)到分辯10 ms的計時精度。利用K1K4按鍵可對時鐘進(jìn)行對時當(dāng)首次按下K1按鍵時,顯示數(shù)碼管第一位閃爍,繼續(xù)按鍵時,下一位閃爍。當(dāng)某一位閃爍時,按下K2按鍵可使閃爍位加一。在正常時鐘顯示方式下按下K2鍵時,轉(zhuǎn)為年、月、日顯示按下K3鍵,可進(jìn)入秒表狀態(tài),按下K4鍵可顯示鬧鐘定時時間。軟件設(shè)計分為主程序、定時器T0和定時器T1中斷服務(wù)程序及相應(yīng)的子程序。 子程序及其功能簡介(1) 比

38、較程序每當(dāng)秒存儲單元的內(nèi)容為0時,系統(tǒng)通過調(diào)用比較子程序可判斷當(dāng)前時間是否符合鬧鈴條件,若符合,則調(diào)用發(fā)音子程序使蜂鳴器發(fā)出鬧鈴聲音。(2) 檢測按鍵程序當(dāng)系統(tǒng)檢測到某個案件被按下時,轉(zhuǎn)到相應(yīng)子程序處理,可實(shí)現(xiàn)校時、設(shè)定鬧鈴時間的功能(3) 顯示程序系統(tǒng)通過調(diào)用顯示子程序,可將顯示緩沖區(qū)里的內(nèi)容通過動態(tài)掃描方式輸出到數(shù)碼管顯示器。(4) 時間設(shè)置程序系統(tǒng)通過按鍵檢測,更改顯示數(shù)值,從而實(shí)現(xiàn)對當(dāng)前時間修改的功能 程序設(shè)計子程序設(shè)計框圖4.1所示,具體程序見附錄1圖4.1 比較程序框圖4.3 調(diào)試軟件及其環(huán)境單片機(jī)本身不具備自主開發(fā)能力,即使在單片機(jī)應(yīng)用系統(tǒng)的設(shè)計完成以后用戶也不能直接對程序進(jìn)行修

39、改。單片機(jī)應(yīng)用系統(tǒng)的開發(fā)必須借助一套開發(fā)工具和軟件環(huán)境才能進(jìn)行。本節(jié)介紹一種單片機(jī)模擬調(diào)試軟件的使用。模擬調(diào)試軟件不僅可以在程序下載到單片機(jī)芯片之前驗(yàn)證它的正確性,而且模擬調(diào)試軟件也可以用來輔助學(xué)習(xí)單片機(jī)的基本知識。圖中斷程序框圖單片機(jī)模擬仿真調(diào)試軟件的安裝和啟動Keil單片機(jī)模擬調(diào)試軟件是目前獲得廣泛應(yīng)用的一種開發(fā)MCS51系列兼容單片機(jī)的軟件。該軟件可以從Keil公司中國代理處購買,也可以從Keil公司的網(wǎng)站(http:)上下載它的免費(fèi)評估(Eval)版本。下載獲得的Keil單片機(jī)模擬調(diào)試軟件是一個壓縮包,解壓后執(zhí)行其中的程序就可以安裝這個軟件。軟件的安裝過程與一般的Windows應(yīng)用軟件

40、類似,只要按照安裝提示操作即可,這里不作詳細(xì)介紹,僅需要注意的是,安裝方式要選擇Eval Vision安裝。圖4.3 時間設(shè)置程序框圖Keil單片機(jī)模擬調(diào)試軟件安裝完成以后,計算機(jī)桌面上將產(chǎn)生一個標(biāo)注有“Keil Vision2”的圖標(biāo),雙擊這個圖標(biāo)就可以進(jìn)入Keil單片機(jī)模擬調(diào)試軟件的集成開發(fā)環(huán)境。集成開發(fā)環(huán)境的界面如圖所示,初次進(jìn)入的集成開發(fā)環(huán)境界面中只包括空的工程管理窗口和輸出窗口。圖5.1 Keil單片機(jī)模擬調(diào)試軟件的集成開發(fā)環(huán)境 工程的建立Keil單片機(jī)模擬調(diào)試軟件對MCS51單片機(jī)應(yīng)用系統(tǒng)的軟件開發(fā)過程采用工程(Project)管理。工程保存著程序編輯的信息和程序調(diào)試的環(huán)境。在開始

41、編寫程序之前首先應(yīng)該建立一個工程。新建一個工程之前通常還需要建立一個文件夾,后面產(chǎn)生的工程文件和源程序文件等都將存儲在這個文件夾之中。在如圖所示的集成開發(fā)環(huán)境的窗口中選擇Project New Project命令將打開建立新工程的對話框,如圖所示。在“保存在”下拉列表框中選擇新建工程將要存儲的文件夾名,在 “文件名”文本框中輸入工程的名稱,注意對于工程不要添加擴(kuò)展名,單擊“保存”按鈕即可完成一個工程的創(chuàng)建。單擊“保存”按鈕在完成一個工程創(chuàng)建的同時也打開了單片機(jī)芯片型號選擇對話框。如圖所示的對話框已經(jīng)完成了芯片型號的選擇。對話框Keil單片機(jī)模擬調(diào)試軟件支持許多公司生產(chǎn)的MCS51單片機(jī)兼容產(chǎn)品

42、。如前所述,本書應(yīng)用電路中采用Atmel公司的AT89S51芯片,下面以這款芯片為例介紹如何實(shí)現(xiàn)選擇。在圖所示的對話框中的Data base列表框中首先選擇生產(chǎn)芯片的公司名稱Atmel,雙擊這個公司名稱即可打開Atmel公司目前生產(chǎn)的所有芯片型號。接著在列出的產(chǎn)品清單中選擇將使用的AT89S51芯片,如圖所示。最后單擊“確定”按鈕即可完成芯片的選擇。完成芯片的選擇后又回到如圖所示的集成開發(fā)環(huán)境的窗口,但是這時該窗口中的工程管理窗口不再是空白,在它的文件選項卡中出現(xiàn)目錄列表Target 1和它的子目錄Source Group 1。集成開發(fā)環(huán)境中的菜單Project內(nèi)還包含Open Project

43、和Close Project等選項。Open Project選項用來以后再次進(jìn)入已經(jīng)建立的工程,選擇ProjectOpen Project命令將打開選擇工程的對話框,該對話框與圖類似。在 “查找范圍”下拉列表框中選擇欲打開的工程所在的文件夾,列表框中將出現(xiàn)該文件夾中的所有工程,選擇將要打開的工程,單擊“打開”按鈕即可打開一個工程。選擇ProjectClose Project命令將關(guān)閉當(dāng)前的工程。源文件的輸入Keil單片機(jī)模擬調(diào)試軟件內(nèi)集成了一個文本編輯器,用該文本編輯器可以編輯源程序。在如圖所示的集成開發(fā)環(huán)境中選擇File New命令、單擊新建工具按鈕或者按快捷鍵Ctrl+N將打開一個新的文本編輯窗口,如圖所示。在圖中已經(jīng)完成了匯編語言源文件的輸入,并且完成了源程序向當(dāng)前工程的添加。完成匯編語言源文件的輸入后,在集成開發(fā)環(huán)境中選擇FileSave As命令可以完成文件的第一次存儲。注意,匯編語言源文件的擴(kuò)展名應(yīng)該是ASM,它應(yīng)該與工程文件存儲在同一文件夾內(nèi)。在完成文件的第一次存儲后,當(dāng)對匯編語言源文件又進(jìn)行了修改,再次存儲文件時則應(yīng)該選擇FileSave命令、單擊保存工具按鈕或者按快捷鍵Ctrl+S實(shí)現(xiàn)

溫馨提示

  • 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

提交評論