- 相關(guān)推薦
電氣工程系專業(yè)單片機(jī)畢業(yè)論文
關(guān)鍵詞:?jiǎn)纹瑱C(jī) ; ; 計(jì)時(shí) 時(shí)鐘 緒論
1.1課題背景
單片機(jī)自1976年由Intel公司推出MCS-48開(kāi)始,迄今已有二十多年了。由于單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗地、使用方便、價(jià)格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,幾乎“無(wú)處不在,無(wú)所不為”。單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動(dòng)化、汽車(chē)電子、PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。
單片機(jī)有兩種基本結(jié)構(gòu)形式:一種是在通用微型計(jì)算機(jī)中廣泛采用的,將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合用一個(gè)存儲(chǔ)器空間的結(jié)構(gòu),稱為普林斯頓結(jié)構(gòu)。另一種是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開(kāi),分別尋址的結(jié)構(gòu),一般需要較大的程序存儲(chǔ)器,目前的單片機(jī)以采用程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開(kāi)的結(jié)構(gòu)為多。
本文討論的單片機(jī)多功能定時(shí)器的核心是目前應(yīng)用極為廣泛的51系列單片機(jī),配置了外圍設(shè)備,構(gòu)成了一個(gè)可編程的計(jì)時(shí)定時(shí)系統(tǒng),具有體積小,可靠性高,功能強(qiáng)等特點(diǎn)。不僅能滿足所需要求而且還有很多功能可供開(kāi)發(fā),有著廣泛的應(yīng)用領(lǐng)域。
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)確地說(shuō)是與MCS-51指令系統(tǒng)兼容的單片機(jī)。這些兼容機(jī)與8051的系統(tǒng)結(jié)構(gòu)(主要是指令系統(tǒng))相同,采用CMOS工藝,因而,常用80C51系列來(lái)稱呼所有具有8051指令系統(tǒng)的單片機(jī),它們對(duì)8051單片機(jī)一般都作了一些擴(kuò)充,更有特點(diǎn)。其功能和市場(chǎng)競(jìng)爭(zhēng)力更強(qiáng),不該把它們直接稱呼為MCS-51系列單片機(jī),因?yàn)镸CS只是Intel公司專用的單片機(jī)系列型號(hào)。MCS-51系列及80C51單片機(jī)有多種品種。它們的引腳及指令系統(tǒng)相互兼容,主要在內(nèi)部結(jié)構(gòu)上有些區(qū)別。目前使用的MCS-51系列單片機(jī)及其兼容產(chǎn)品通常分成以下幾類(lèi):基本型、增強(qiáng)型、低功耗型、專用型、超8位型、片內(nèi)閃爍存儲(chǔ)器型。
1.2課題來(lái)源
在日常生活和工作中,我們常常用到定時(shí)控制,如擴(kuò)印過(guò)程中的曝光定時(shí)等。早期常用的一些時(shí)間控制單元都使用模擬電路設(shè)計(jì)制作的,其定時(shí)準(zhǔn)確性和重復(fù)精度都不是很理想,現(xiàn)在基本上都是基于數(shù)字技術(shù)的新一代產(chǎn)品,隨著單片機(jī)性能價(jià)格比的不斷提高,新一代產(chǎn)品的應(yīng)用也越來(lái)越廣泛,大可構(gòu)成復(fù)雜的工業(yè)過(guò)程控制系統(tǒng),完成復(fù)雜的控制功能。小則可以用于家電控制,甚至可以用于兒童電子玩具。它功能強(qiáng)大,體積小,質(zhì)量輕,靈活好用,配以適當(dāng)?shù)慕涌谛酒?/p>
可以構(gòu)造各種各樣、功能各異的微電子產(chǎn)品。
隨著電子技術(shù)的飛速發(fā)展,家用電器和辦公電子設(shè)備逐漸增多,不同的設(shè)備都有自己的控制器,使用起來(lái)很不方便。根據(jù)這種實(shí)際情況,設(shè)計(jì)了一個(gè)單片機(jī)多功能定時(shí)系統(tǒng),它可以避免多種控制器的混淆,利用一個(gè)控制器對(duì)多路電器進(jìn)行控制,同時(shí)又可以進(jìn)行時(shí)鐘校準(zhǔn)和定點(diǎn)打鈴。它可以執(zhí)行不同的時(shí)間表(考試時(shí)間和日常作息時(shí)間)的打鈴,可以任意設(shè)置時(shí)間。這種具有人們所需要的智能化特性的產(chǎn)品減輕了人的勞動(dòng),擴(kuò)大了數(shù)字化的范圍,為家庭數(shù)字化提供了可能。
第二章 MCS-51單片機(jī)的結(jié)構(gòu)
MCS-51單片機(jī)是把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個(gè)尺寸有限的集成電路芯片上。如果按功能劃分,它由如下功能部件組成,即微處理器(CPU)、數(shù)據(jù)存儲(chǔ)器(RAM)、程序存儲(chǔ)器(ROM/EPROM)、并行I/O口、串行口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器(SFR)。它們都是通過(guò)片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對(duì)各種功能部件的控制是采用特殊功能寄存器(SFR)的集中控制方式。
2.1 控制器
控制器是單片機(jī)的指揮控制部件,控制器的主要任務(wù)是識(shí)別指令,并根據(jù)指令的性質(zhì)控制單片機(jī)各功能部件,從而保證單片機(jī)各部分能自動(dòng)而協(xié)調(diào)地工作。
單片機(jī)執(zhí)行指令是在控制器的控制下進(jìn)行的。首先從程序存儲(chǔ)器中讀出指令,送指令寄存器保存,然后送至指令譯碼器進(jìn)行譯碼,譯碼結(jié)果送定時(shí)控制邏輯電路,由定時(shí)控制邏輯產(chǎn)生各種定時(shí)信號(hào)和控制信號(hào),再送到單片機(jī)的各個(gè)部件去進(jìn)行相應(yīng)的操作。這就是執(zhí)行一條指令的全過(guò)程,執(zhí)行程序就是不斷重復(fù)這一過(guò)程。控制器主要包括程序計(jì)數(shù)器、程序地址寄存器、指令寄存器IR、指令譯碼器、條件轉(zhuǎn)移邏輯電路及時(shí)序控制邏輯電路。
2.2 存儲(chǔ)器的結(jié)構(gòu)
MCS-51單片機(jī)存儲(chǔ)器采用的是哈佛結(jié)構(gòu),即程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間截然分開(kāi),程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器各有自己的尋址方式,尋址空間和控制系統(tǒng)。
這種結(jié)構(gòu)對(duì)于單片機(jī)面向控制的實(shí)際應(yīng)用極為方便,有利.在8051/8751彈片擊中,不僅在片內(nèi)集成了一定容量的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器及眾多的特殊功能寄存器,而且還具有極強(qiáng)的外存儲(chǔ)器的擴(kuò)展能力,尋址能力分別可達(dá)64KB,尋址和操作簡(jiǎn)單方便.MCS-51的存儲(chǔ)器空間可劃分為如下幾類(lèi):
1. 程序存儲(chǔ)器
單片機(jī)系統(tǒng)之所以能夠按照一定的次序進(jìn)行工作,主要是程序存儲(chǔ)器中存放了經(jīng)調(diào)試正確的應(yīng)用程序和表格之類(lèi)的固定常數(shù)。程序?qū)嶋H上是一串二進(jìn)制碼,程序存儲(chǔ)器可以分為片內(nèi)和片外兩部分。8031由于無(wú)內(nèi)部存儲(chǔ)器,所以只能外擴(kuò)程序存儲(chǔ)器來(lái)存放程序。
MCS-51單片機(jī)復(fù)位后,程序存儲(chǔ)器PC的內(nèi)容為0000H,故系統(tǒng)必須從0000H單元開(kāi)始取指令,執(zhí)行程序.程序存儲(chǔ)器中的0000H地址是系統(tǒng)程序的啟動(dòng)地址.一般在該單元存放一條絕對(duì)跳轉(zhuǎn)指令,跳向用戶設(shè)計(jì)的主程序的起始地址。
2. 內(nèi)部數(shù)據(jù)存儲(chǔ)器
MCS-51單片機(jī)內(nèi)部有128個(gè)字節(jié)的隨機(jī)存取存儲(chǔ)器RAM,作為用戶的數(shù)據(jù)寄存器,它能滿足大多數(shù)控制型應(yīng)用場(chǎng)合的需要,用作處理問(wèn)題的數(shù)據(jù)緩沖器。
MCS-51單片機(jī)的片內(nèi)存儲(chǔ)器的字節(jié)地址為00H-7FH.MCS-51單片機(jī)對(duì)其內(nèi)部RAM的存儲(chǔ)器有很豐富的操作指令,從而使得用戶在設(shè)計(jì)程序時(shí)非常方便。地址為00H-1FH的32個(gè)單元是4組通用工作寄存器區(qū),每個(gè)區(qū)含8個(gè)8位寄存器,編號(hào)為R7-R0。用戶可以通過(guò)指令改變PSW中的RS1,RS0這二位來(lái)切換當(dāng)前的工作寄存器區(qū),這種功能給軟件設(shè)計(jì)帶來(lái)極大的方便,特別是在中斷嵌套時(shí),為實(shí)現(xiàn)工作寄存器現(xiàn)場(chǎng)內(nèi)容保護(hù)提供了極大的方便。
3. 特殊功能寄存器(SFR-Special Function Register)
特殊功能寄存器反映了MCS-51單片機(jī)的狀態(tài),實(shí)際上是MCS-51單片機(jī)各功能部件的狀態(tài)及控制寄存器.SFR綜合的,實(shí)際的反應(yīng)了整個(gè)單片機(jī)基本系統(tǒng)內(nèi)部的工作狀態(tài)及工作方式.SFR實(shí)質(zhì)上是一些具有特殊功能的片內(nèi)RAM單元,字節(jié)地址范圍為80H-FFH.特殊功能寄存器的總數(shù)為21個(gè),離散的分布在該區(qū)域中,其中]有些SFR還可以進(jìn)行位尋址.128個(gè)字節(jié)的SFR塊中僅有21個(gè)字節(jié)是由定義的.對(duì)于尚未定義的字節(jié)地址單元,用戶不能作寄存器使用,若訪問(wèn)沒(méi)有定義的單元,則將得到一個(gè)不確定的隨機(jī)數(shù).
2.3 并行I/O口
MCS-51單片機(jī)共有4個(gè)雙向的8位并行I/O端口(Port),分別記作P0-P3,共有32根口線,各口的每一位均由鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器所組成。實(shí)際上P0-P3已被歸入特殊功能寄存器之列。這四個(gè)口除了按字節(jié)尋址以外,還可以按位尋址。由于它們?cè)诮Y(jié)構(gòu)上有一些差異,故各口的性質(zhì)和功能有一些差異。
P0口是雙向8位三態(tài)I/O口,此口為地址總線(低8位)及數(shù)據(jù)總線分時(shí)復(fù)用口,可驅(qū)動(dòng)8個(gè)LS型TTL負(fù)載。P1口是8位準(zhǔn)雙向I/O口,可驅(qū)動(dòng)4個(gè)LS 型負(fù)載。P2口是8位準(zhǔn)雙向I/O口,與地址總線(高8位)復(fù)用,可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P3口是8位準(zhǔn)雙向I/O口,是雙功能復(fù)用口,可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P1口、P2口、P3口各I/O口線片內(nèi)均有固定的上拉電阻,當(dāng)這3個(gè)準(zhǔn)雙向I/O口做輸入口使用時(shí),要向該口先寫(xiě)“1”,另外準(zhǔn)雙向I/O口無(wú)高阻的“浮空”狀態(tài),故稱為雙向三態(tài)I/O 口。
2.4 時(shí)鐘電路與時(shí)序
時(shí)鐘電路用于產(chǎn)生MCS-51單片機(jī)工作時(shí)所必需的時(shí)鐘信號(hào)。MCS-51單片機(jī)本身就是一個(gè)復(fù)雜的同步時(shí)序電路,為保證同步工作方式的實(shí)現(xiàn),MCS-51單片機(jī)應(yīng)在唯一的時(shí)鐘信號(hào)控制下,嚴(yán)格地按時(shí)序執(zhí)行進(jìn)行工作,而時(shí)序所研究的是指令執(zhí)行中各個(gè)信號(hào)的關(guān)系。
在執(zhí)行指令時(shí),CPU首先要到程序存儲(chǔ)器中取出需要執(zhí)行的指令操作碼,然后譯碼,并由時(shí)序電路產(chǎn)生一系列控制信號(hào)去完成指令所規(guī)定的操作。CPU發(fā)出的時(shí)序信號(hào)有兩類(lèi),一類(lèi)用于片內(nèi)對(duì)各個(gè)功能部件的控制,這列信號(hào)很多。另一類(lèi)用于片外存儲(chǔ)器或I/O端口的控制,這部分時(shí)序?qū)τ诜治、設(shè)計(jì)硬件接口電路至關(guān)重要。這也是單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)者普遍關(guān)心的問(wèn)題。
2.5 單片機(jī)的應(yīng)用領(lǐng)域
單片機(jī)應(yīng)用領(lǐng)域可以歸納為以下幾個(gè)方面。 1.智能儀表
用單片機(jī)系統(tǒng)取代老式的測(cè)量、控制儀表,實(shí)現(xiàn)從模擬儀表向數(shù)字化、智能化儀表的轉(zhuǎn)化,如各種溫度儀表、壓力儀表、流量?jī)x表、電能計(jì)量?jī)x表等。 2. 測(cè)控系統(tǒng)
用單片機(jī)取代原有的復(fù)雜的模擬數(shù)字電路,完成各種工業(yè)控制、數(shù)據(jù)采集系統(tǒng)等工作。 3.電能變換
應(yīng)用單片機(jī)設(shè)計(jì)變頻調(diào)速控制電路。 4.通信
用單片機(jī)開(kāi)發(fā)通信模塊、通信器材等。 5.機(jī)電產(chǎn)品
應(yīng)用單片機(jī)檢測(cè)、控制傳統(tǒng)的機(jī)械產(chǎn)品,使傳統(tǒng)的機(jī)械產(chǎn)品結(jié)構(gòu)簡(jiǎn)化,控制智能化,提高了機(jī)電產(chǎn)品的可靠性,增強(qiáng)了產(chǎn)品的功能。 6.智能接口
在數(shù)據(jù)傳輸中,用單片機(jī)實(shí)現(xiàn)外部設(shè)備與微機(jī)通信。
第三章 系統(tǒng)設(shè)計(jì)要求
3.1基本功能
(1)能夠顯示時(shí)分秒 (2)能夠調(diào)整時(shí)分秒
3.2 擴(kuò)展功能
(1)能夠任意設(shè)置定時(shí)時(shí)間 (2)定時(shí)時(shí)間到鬧鈴能夠報(bào)警 (3)實(shí)現(xiàn)了秒表功能
第四章 硬件總體設(shè)計(jì)方案
用一揚(yáng)聲器來(lái)本次設(shè)計(jì)時(shí)鐘電路,使用了AT89C51單片機(jī)芯片控制電路,單片
機(jī)控制電路簡(jiǎn)單且省去了很多復(fù)雜的線路,使得電路簡(jiǎn)明易懂,使用鍵盤(pán)鍵上的按鍵來(lái)調(diào)整時(shí)鐘的時(shí)、分、秒,進(jìn)行定時(shí)提醒,同時(shí)使用C語(yǔ)言程序來(lái)控制整個(gè)時(shí)鐘顯示,使得編程變得更容易,這樣通過(guò)四個(gè)模塊:鍵盤(pán)、芯片、揚(yáng)聲器、顯示屏即可滿足設(shè)計(jì)要求。
4.1系統(tǒng)功能實(shí)現(xiàn)總體設(shè)計(jì)思路
如圖4-10 所示為AT89S51芯片的引腳圖
圖4-10 AT89S51芯片外部引腳圖
此設(shè)計(jì)原理框圖如圖4-11所示,此電路包括以下四個(gè)部分:?jiǎn)纹瑱C(jī),鍵盤(pán),鬧鈴電路及顯示電路。
圖4-11 設(shè)計(jì)原理框圖
經(jīng)多方論證硬件我們小組采用AT89C51單片機(jī)和7SED八位共陽(yáng)極數(shù)碼管等來(lái)實(shí)現(xiàn)單片機(jī)電子時(shí)鐘的功能。
詳細(xì)元器件列表如表4.12所示:
表4.12 詳細(xì)元器件列表
4.2各部分功能實(shí)現(xiàn)
(1) 單片機(jī)發(fā)送的信號(hào)通過(guò)程序控制最終在數(shù)碼管上顯示出來(lái)。 (2) 單片機(jī)通過(guò)輸出各種電脈沖信號(hào)來(lái)驅(qū)動(dòng)控制各部分正常工作。
(3) 為使時(shí)鐘走時(shí)與標(biāo)準(zhǔn)時(shí)間一致,校時(shí)電路是必不可少的,鍵盤(pán)用來(lái)校正數(shù)
碼管上顯示的時(shí)間。
單片機(jī)通過(guò)控制鬧鈴電路來(lái)完成 定時(shí)鬧鐘的功能
4.3系統(tǒng)工作原理
設(shè)計(jì)的電路主要由四模塊構(gòu)成:?jiǎn)纹瑱C(jī)控制電路,顯示電路、鬧鈴電路以及校正電路。
詳細(xì)電路功能圖如圖4-30:
詳細(xì)電路功能圖如圖4-30
本設(shè)計(jì)采用C語(yǔ)言程序設(shè)計(jì),使單片機(jī)控制數(shù)碼管顯示時(shí)、分、秒,當(dāng)秒計(jì)數(shù)計(jì)滿60時(shí)就向分進(jìn)位,分計(jì)數(shù)器計(jì)滿60后向時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按“23翻0”規(guī)律計(jì)數(shù)。時(shí)、分、秒的計(jì)數(shù)結(jié)果經(jīng)過(guò)數(shù)據(jù)處理可直接送顯示器顯示。當(dāng)計(jì)時(shí)發(fā)生誤差的時(shí)候可以用校時(shí)電路進(jìn)行校正。設(shè)計(jì)采用的是時(shí)、分、秒顯示,單片機(jī)對(duì)數(shù)據(jù)進(jìn)行處理同時(shí)在數(shù)碼管上顯示。
4.4時(shí)鐘各功能分析及圖解 (1) 時(shí)鐘運(yùn)行圖
仿真開(kāi)始運(yùn)行時(shí),或按下key4鍵時(shí),時(shí)鐘從12:00:00開(kāi)始運(yùn)行,其中key2鍵對(duì)分進(jìn)行調(diào)整,key3對(duì)小時(shí)進(jìn)行調(diào)整,key6可以讓時(shí)鐘暫停。
時(shí)鐘運(yùn)行圖如圖 4-41 所示: (2)秒表計(jì)時(shí)圖
當(dāng)按下key1鍵進(jìn)入秒表計(jì)時(shí)狀態(tài),key6是秒表暫停鍵,可按key4鍵跳出秒表計(jì)時(shí)狀態(tài)。
秒表計(jì)時(shí)圖如圖 4-42所示:
圖4-41 時(shí)鐘運(yùn)行圖
圖4-42 秒表計(jì)時(shí)圖
(3)鬧鈴設(shè)置圖及運(yùn)行圖
當(dāng)按下key5,開(kāi)始定時(shí),分別按key2調(diào)分,key3調(diào)時(shí)設(shè)置鬧鈴時(shí)間,然后按下key4鍵恢復(fù)時(shí)鐘運(yùn)行狀態(tài)(圖4-43)當(dāng)鬧鈴設(shè)置時(shí)間到時(shí),蜂鳴器將發(fā)出10秒中蜂鳴聲(圖4-44)。
圖4-43 鬧鈴時(shí)間設(shè)置圖
該數(shù)字鐘是用一片AT89C51單片機(jī)通過(guò)編程去驅(qū)動(dòng)8個(gè)數(shù)碼管實(shí)現(xiàn)的。通過(guò)6個(gè)開(kāi)關(guān)控制,從上到下6個(gè)開(kāi)關(guān)KEY1-KEY6的功能分別為:KEY1,切換至秒表;KEY2,調(diào)節(jié)時(shí)間,每調(diào)一次時(shí)加1;KEY3, 調(diào)節(jié)時(shí)間,每調(diào)一次分加1;KEY4,從其它狀態(tài)切換至?xí)r鐘狀態(tài);KEY5,切換至鬧鐘設(shè)置狀態(tài),也可以對(duì)秒表清零;KEY6,秒表暫停.控制鍵分別與P1.0~P1.5口連接.其中:
A通過(guò)P2口和P3口去控制數(shù)碼管的顯示如圖所示P2口接數(shù)碼管的a——g端,是控制輸出編碼,P3口接數(shù)碼管的1——8端,是控制動(dòng)態(tài)掃描輸出.
B從P0.0輸出一個(gè)信號(hào)使二極管發(fā)光,二極管在設(shè)置的鬧鐘時(shí)間到了時(shí)候發(fā)光,若有樂(lè)曲可以去驅(qū)動(dòng)揚(yáng)聲器實(shí)現(xiàn)。
圖4-44 鬧鈴運(yùn)行圖
4.5電路功能使用說(shuō)明
(1) 各個(gè)控制鍵的功能:可對(duì)時(shí)間進(jìn)行校準(zhǔn)調(diào)節(jié)(只能加1);按下設(shè)置鍵數(shù)字時(shí)鐘進(jìn)入鬧鐘設(shè)置狀態(tài),設(shè)置鬧鐘的時(shí)間;時(shí)加1、分加1鍵是在校準(zhǔn)時(shí)間時(shí)或設(shè)置鬧鐘時(shí)間對(duì)小時(shí)數(shù)或分鐘數(shù)調(diào)節(jié)而設(shè)置的;按下秒切換鍵就可以進(jìn)入秒表模式,同時(shí)秒表也開(kāi)始計(jì)時(shí),按下秒表暫停、復(fù)位鍵就暫停、歸零,如果要重新對(duì)秒計(jì)時(shí)則可以按秒表開(kāi)始、復(fù)位;清零鍵可以對(duì)鬧鐘清零。
(2) AT89C51單片機(jī),通過(guò)編寫(xiě)程序?qū)?shù)碼顯示進(jìn)行控制。 (3) 八個(gè)7段數(shù)碼管顯示時(shí)鐘和秒表信號(hào)
第五章 軟件總體設(shè)計(jì)方案
5.1 主程序流程圖
軟件程序從開(kāi)始執(zhí)行,先通過(guò)初始化各個(gè)寄存器,經(jīng)過(guò)掃描按鍵來(lái)決定是否設(shè)定參數(shù)來(lái)執(zhí)行相應(yīng)功能的程序,進(jìn)而在數(shù)碼管上顯示。如圖5-10:
5.2
圖5-20 中斷流程圖
時(shí)間的顯示通過(guò)此中斷程序來(lái)控制,并且通過(guò)與設(shè)定的時(shí)間進(jìn)行比較來(lái)判斷是否讓鬧鈴工作。程序中包含時(shí)間的設(shè)定,如設(shè)定tcount來(lái)使秒等工作,進(jìn)而來(lái)控制分和時(shí)。如上圖圖5-20。 A. 秒表中斷程序流程
秒表功能通過(guò)另一個(gè)程序來(lái)實(shí)現(xiàn)。通過(guò)保護(hù)主程序的數(shù)據(jù)來(lái)進(jìn)行秒表功能。程序中需要設(shè)置秒表的具體顯示方法。如圖5-3:
圖5-3秒表中斷程序流程圖
B.按鍵程序流程
圖5-4為時(shí)鐘和鬧鐘的調(diào)節(jié),程序中通過(guò)掃描來(lái)判斷按鍵是否按下進(jìn)行時(shí)間和鬧鐘的調(diào)節(jié)。
圖5-4按鍵程序流程圖
圖5-5為進(jìn)入中斷和清零圖,程序中通過(guò)掃描來(lái)判斷按鍵是否按下進(jìn)行執(zhí)行相應(yīng)
圖5-5 中斷和清零程序流程圖
5.3控制電路的C語(yǔ)言源程序
根據(jù)流程圖,經(jīng)過(guò)認(rèn)真分析得出控制電路的源程序如下: #include #define uchar unsigned char #define uint unsigned int #define delay_time 3/*宏定義*/ uchar k,dat[]={0,0,0,0,0,0,0,0}; uint tcount,t,u;
uchar dat1[]={0,0,0,0,0,0,2,1}; uchar dat2[]={0,0,0,0,0,0,0,0}; uchar alarms[]={0,0,0,0,0,0,0,0}; uchar
dis_bit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; unsigned
char
code
SEG7[11]={0xC0,/*0*/ 0xF9,/*1*/
0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/
0xBF,/*-*/
};/*數(shù)字顯示數(shù)組*/ sbit miaobiao1=P1^0; sbit tminute=P1^1; sbit thour=P1^2; sbit miaobiao2=P1^3; sbit alarm=P1^4; sbit P0_0=P0^0;
sbit P1_5=P1^5; sbit P1_6=P1^6;
sbit P1_7=P1^7;/*端口定義*/ uchar ms=0; uchar flag=0; uchar sec=0; uchar minit=0; struct
time{uchar
second;uchar
minute;uchar hour;}time1; uchar n,i; void delay(n) {while(n--)
{
for(i=120;i>0;i--); }
} /*延時(shí)子程序*/ void modify(void)
{ EA=0; if(thour==0) { if(flag==0)
{
dat1[6]++;delay(280); if(dat1[6]>9)
{
dat1[6]=0; dat1[7]++; }
else
if((dat1[7]>1)&&(dat1[6]>3)) {dat1[7]=0;
dat1[6]=0;
} }
if(flag==1) {
alarms[6]++;delay(300);
if(alarms[6]>9) { alarms[6]=0;alarms[7]++;
if(alarms[7]>2) { alarms[7]=0;
}
}
dat[6]=alarms[6];
dat[7]=alarms[7]; }
}
if(tminute==0) { if(flag==0) {
dat1[3]++;delay(280); if(dat[3]>=9) { dat1[4]++;dat1[3]=0; if(dat1[4]>5) {
dat1[4]=0; }
}
}
if(flag==1)
{
alarms[3]++; delay(300); if(alarms[3]>9) { alarms[4]++;alarms[3]=0;
if(alarms[4]>5) { alarms[4]=0;
}
}
dat[3]=alarms[3]; dat[4]=alarms[4]; }
}
if(miaobiao1==0)
{TR0=0;ET0=0;TR1=1;ET1=1; }
if(miaobiao2==0) {
TR0=1;ET0=1;TR1=0;ET1=0;
dat2[0]=0; dat2[1]=0; dat2[3]=0; dat2[4]=0; dat2[6]=0; dat2[7]=0; ms=0; sec=0; minit=0; }
if(P1_5==0) {
TR0=0;ET0=0;TR1=0;ET1=0;
}
if(alarm==0) {
TR0=0;ET0=0;TR1=0;ET1=0;flag=
{
P3=dis_bit[k];
P2=SEG7[dat[k]]; delay(1); 1;
dat[0]=0; dat[1]=0; dat[2]=10; dat[3]=0;
dat[4]=0; dat[5]=10; dat[6]=0; dat[7]=0;
} EA=1; }/*按鍵掃描*/ void init(void) {
TMOD = 0x11; TH0 = 0xDB; TL0 =0xFF; TH1=0xDB; TL1=0xFF;
ET0 = 1;
ET1=1; //
TR1=1; TR0=1; tcount=0; ms=0; sec=0; minit=0;
EA = 1;
}/*初始化*/ void test(void){ for(k=0;k<8;k++)
//10ms
P3=0X00;
}
}/*數(shù)字顯示*/ void main() {init(); delay(10); while(1) {
modify();
test(); } }/*主函數(shù)*/
Void diplay() interrupt 1 { ET0=0; TR0=0; TH0 = 0xDB; TL0 = 0xff; TR0=1;
tcount++; if(tcount==100) {
time1.second++; tcount=0; dat1[0]=(time1.second)%10; dat1[1]=(time1.second)/10;
}
if(time1.second==60) { dat1[0]=0; dat1[1]=0; time1.second=0; time1.minute++;
dat1[3]=(time1.minute)%10; dat1[4]=(time1.minute)/10;
}
if(time1.minute==60) {
time1.minute=0; time1.hour++; dat1[6]=time1.hour%10; dat1[7]=time1.hour/10; }
if(time1.hour>23) {
time1.hour=0; } dat[5]=10; dat[2]=10; dat[0]=dat1[0]; dat[1]=dat1[1]; dat[3]=dat1[3]; dat[4]=dat1[4]; dat[6]=dat1[6]; dat[7]=dat1[7]; flag=0; P0=0x01;
if((alarms[7]==dat1[7])&&(alarms[6]==dat1[6])&&(alarms[4]==dat1[4])&&(alarms[3]==dat1[3])&&(dat1[1]<1)) {
P0=0x00; } ET0=1;
}
void time_2(void)interrupt 3 {
EA=0; TR0=0; TH1=0xDB; TL1=0xFF; TR1=1; ms++;
dat2[0]=ms%10; dat2[1]=ms/10; if(ms>=100) { ms=0; sec++;
dat2[3]=sec%10; dat2[4]=sec/10; if(sec>=60) {
sec=0;
minit++; dat2[6]=minit%10; dat2[7]=minit/10; } } dat[5]=10; dat[2]=10; dat[0]=dat2[0]; dat[1]=dat2[1]; dat[3]=dat2[3]; dat[4]=dat2[4]; dat[6]=dat2[6]; dat[7]=dat2[7]; EA=1
第六章 課程設(shè)計(jì)結(jié)果分析
此時(shí)鐘設(shè)計(jì)是利用protues仿真軟件進(jìn)行仿真,基本上實(shí)現(xiàn)了課程設(shè)計(jì)要求實(shí)現(xiàn)的功能。
硬件部分設(shè)置了的六個(gè)按鍵。當(dāng)按鍵一按下時(shí),進(jìn)入秒表顯示狀態(tài),秒表開(kāi)始計(jì)時(shí),當(dāng)按鍵六按下時(shí),秒表暫停;當(dāng)按鍵四按下時(shí)恢復(fù)到時(shí)間顯示功能;當(dāng)按鍵二按下時(shí),進(jìn)入調(diào)分狀態(tài),按一次,分加一,60一循環(huán);按鍵三按下時(shí),進(jìn)入調(diào)時(shí)狀態(tài),按一次,時(shí)加一,60一循環(huán);按鍵五按下時(shí),進(jìn)入鬧鈴設(shè)置功能,緊接著按下按鍵二和按鍵三進(jìn)行時(shí)和分的設(shè)置,再按下按鍵4恢復(fù)顯示時(shí)間,當(dāng)顯示的時(shí)間和定時(shí)設(shè)置的時(shí)間一致時(shí),蜂鳴器發(fā)出蜂鳴聲,蜂鳴時(shí)間我們?cè)O(shè)置為10秒。
另外,鬧鈴電路有音樂(lè)鬧鐘的擴(kuò)展的功能(可以將蜂鳴器換成揚(yáng)聲器再加一段音樂(lè)程序即可實(shí)現(xiàn))。
調(diào)試階段,出現(xiàn)一些問(wèn)題。比如,實(shí)際小時(shí)顯示到29才歸零,分鐘顯示到60才進(jìn)一„„經(jīng)過(guò)軟件調(diào)試,以上問(wèn)題均一一排除,結(jié)果達(dá)到預(yù)期目標(biāo)。但時(shí)間有限,部分?jǐn)U展功能不能
及時(shí)實(shí)現(xiàn),比如音樂(lè)鬧鈴。
第七章 結(jié)論與展望
7.1 結(jié)論
單片機(jī)多功能定時(shí)系統(tǒng)理論上能很好的達(dá)到了學(xué)校教學(xué)要求,發(fā)揮了單片機(jī)在智能化方面的應(yīng)用。該系統(tǒng)的設(shè)計(jì)很好的滿足當(dāng)前學(xué)校教學(xué)的需要,是一個(gè)理想的智能化的設(shè)計(jì)。它具有一個(gè)走時(shí)精確的實(shí)時(shí)鐘,可以任意設(shè)置時(shí)間,可以控制時(shí)間表的轉(zhuǎn)換,時(shí)鐘的顯示功能等?梢酝ㄟ^(guò)按鍵操作和數(shù)字顯示。該系統(tǒng)規(guī)模小,但是功能較多,操作簡(jiǎn)單,造價(jià)低,應(yīng)用非常廣泛。該系統(tǒng)的設(shè)計(jì)為向家庭數(shù)字化方向發(fā)展又前進(jìn)了一步。同時(shí)又?jǐn)U大了單片機(jī)的應(yīng)用領(lǐng)域。
7.2 單片機(jī)的發(fā)展趨勢(shì)
自單片機(jī)出現(xiàn)至今,單片機(jī)技術(shù)已走過(guò)了幾十年的發(fā)展路程?v觀幾十年來(lái)單片機(jī)發(fā)展歷程可以看出,單片機(jī)技術(shù)的發(fā)展以微處理器(MPU)技術(shù)及超大規(guī)模集成電路技術(shù)的發(fā)展為先導(dǎo),拉動(dòng)廣泛的應(yīng)用領(lǐng)域,表現(xiàn)出比微處理器更具個(gè)性的發(fā)展趨勢(shì):
1.采用先進(jìn)結(jié)構(gòu)以實(shí)現(xiàn)高性能
在過(guò)去的一段時(shí)間內(nèi),單片機(jī)的指令運(yùn)行速度一直在10MIPS以下,這對(duì)于應(yīng)用在工業(yè)控制領(lǐng)域內(nèi)的單片機(jī)來(lái)說(shuō)是足夠了,但當(dāng)單片機(jī)被應(yīng)用在通訊及DSP領(lǐng)域作為高速運(yùn)算、編碼或解碼時(shí),就會(huì)出現(xiàn)因指令運(yùn)行速度不夠而限制單片機(jī)應(yīng)用的情形,因此提高單片機(jī)指令運(yùn)行速度已經(jīng)成為迫切需要解決的問(wèn)題。
2.進(jìn)一步降低功耗、
基于80C51的飛利浦低功率、低系統(tǒng)成本微控制器51LPC系列是業(yè)界推動(dòng)單片機(jī)向低功耗方向發(fā)展的主導(dǎo)單片機(jī)系列之一。51LPC系列單片機(jī)采用以下三種方法降低功耗:
(1)使系統(tǒng)進(jìn)入空閑模式,在空閑模式下,只有外圍器件在工作,任意的復(fù)位及中斷均可結(jié)束空閑模式;
(2)使系統(tǒng)進(jìn)入低功耗模式,在低功耗模式下,振蕩器停止工作,是功耗降到最小
(3)使系統(tǒng)進(jìn)入低電壓EPROM操作;EPROM包含了模擬電路,當(dāng)Vcc高于4V時(shí),可通過(guò)軟件使這些模擬電路掉電以降低功耗,在上電情況下可使系統(tǒng)退出該模式。
3.采用Flash Memory
隨著半導(dǎo)體工藝技術(shù)的不斷進(jìn)步,MPU的Flash版本逐漸替代了原有的OTP版本。Flash MPU具有以下優(yōu)點(diǎn):與多次可編程的窗口式EPROM相比,F(xiàn)lash MPU的成本要低得多;在系統(tǒng)編程能力以及產(chǎn)品生產(chǎn)方面提供了靈活性,因?yàn)镕lash MPU可在編程后面再次以新代碼重新編程;可減少已編程器件的報(bào)廢和庫(kù)存;有
助于生產(chǎn)廠商縮短設(shè)計(jì)周期,使終端用戶產(chǎn)品和、更具有競(jìng)爭(zhēng)力。
4.集成更多功能及兼容性
目前單片機(jī)的另一個(gè)發(fā)展趨勢(shì)是在芯片上集成更多的功能。如模擬功能,包括模擬比較器、A/D和D/A轉(zhuǎn)換器等。具體表現(xiàn)在:兼容性作為設(shè)計(jì)的第一考慮;額外的新的特點(diǎn)是透明的;使用同一種編程器;OTP使器件快速提升及標(biāo)準(zhǔn)化成為可能。
5.強(qiáng)抗干擾能力
不斷加強(qiáng)抗干擾能力是單片機(jī)進(jìn)一步發(fā)展的必然趨勢(shì)。ST Microelectronics公司推出的ST62系列單片機(jī)在這方面是佼佼者,其優(yōu)良的抗干擾能力使得許多大公司將其應(yīng)用在系統(tǒng)中的關(guān)鍵部件上。許多單片機(jī)開(kāi)發(fā)商也正朝著這個(gè)方向努力。
6.朝系列化、全面化方向發(fā)展
各大單片機(jī)開(kāi)發(fā)商在增加產(chǎn)品功能的同時(shí)效力于形成產(chǎn)品的系列化=全面化,以滿足各種控制領(lǐng)域的要求,這也是單片機(jī)發(fā)展的趨勢(shì)之一。日本TOSHBA公司開(kāi)發(fā)了從4位到64位的多系列單片機(jī),日立公司也有從4.位到32位的單片機(jī),目前還沒(méi)有哪個(gè)廠家生產(chǎn)的單片機(jī)比東芝公司的種類(lèi)多。
隨著單片機(jī)性能的不斷提高,不斷的克服和彌補(bǔ)自身的不足。在各種控制領(lǐng)域,單片機(jī)將擁有更加廣闊的使用天地。在很長(zhǎng)的一段時(shí)間內(nèi),它將一直是工程設(shè)計(jì)人員的首選控制芯片之一。
【電氣工程系專業(yè)單片機(jī)畢業(yè)論文】相關(guān)文章:
建筑電氣自動(dòng)化專業(yè)畢業(yè)論文10-08
建筑工程系畢業(yè)論文10-08
電氣工程系簡(jiǎn)歷范文10-26
電氣工程系簡(jiǎn)歷模板10-08
電氣工程系簡(jiǎn)歷范文10-05
建筑電氣消防畢業(yè)論文10-08
電氣自動(dòng)化的畢業(yè)論文11-03