




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于51單片機(jī)的數(shù)字時(shí)鐘 實(shí)訓(xùn)單位: 系 別: 工程技術(shù)系 專 業(yè): 姓 名: 56摘 要本文介紹了基于at89c51單片機(jī)的數(shù)字式時(shí)鐘的設(shè)計(jì),詳細(xì)敘述了系統(tǒng)硬件、軟件的具體實(shí)現(xiàn)過(guò)程。本文在硬件、軟件設(shè)計(jì)上均采用模塊化的方法,使得在設(shè)計(jì)和調(diào)試方面取得很大的方便。軟件同樣采用模塊化的設(shè)計(jì),包括中斷模塊、時(shí)間調(diào)整模塊等設(shè)計(jì),并采用簡(jiǎn)單流通性強(qiáng)的c語(yǔ)言編寫實(shí)現(xiàn)。本設(shè)計(jì)實(shí)現(xiàn)了時(shí)、分、秒的顯示和時(shí)間修改的功能。通過(guò)對(duì)比實(shí)際的時(shí)鐘,查找出誤差的來(lái)源,確定調(diào)整誤差的方法,盡可能的減少誤差,使得系統(tǒng)可以達(dá)到實(shí)際數(shù)字鐘的允許誤差范圍內(nèi)。關(guān)鍵字:at89c51單片機(jī);數(shù)字鐘;模塊化;目 錄1 緒 論11.1 課題
2、背景11.2 課題意義21.3 數(shù)字式時(shí)鐘的應(yīng)用21.4 本章小結(jié)32 單片機(jī)簡(jiǎn)介32.1 單片機(jī)的選擇32.1.1 單片機(jī)的特點(diǎn)52.1.2 單片機(jī)的應(yīng)用領(lǐng)域52.2 at89c51單片機(jī)的基本結(jié)構(gòu)62.3 本章小結(jié)113 數(shù)字式時(shí)鐘的硬件設(shè)計(jì)123.1 最小系統(tǒng)設(shè)計(jì)133.2 數(shù)字式時(shí)鐘的外圍電路設(shè)計(jì)143.3 本章小結(jié)194 數(shù)字式時(shí)鐘的軟件設(shè)計(jì)194.1 系統(tǒng)軟件設(shè)計(jì)內(nèi)容194.2主程序204.3時(shí)鐘設(shè)置子程序224.4中斷子程序244.5 lcd顯示子程序244.6 本章小結(jié)265 數(shù)字式時(shí)鐘的protues軟件仿真265.1 protues軟件的概述265.2 protues軟件的
3、功能特點(diǎn)275.3 protues軟件具有4大功能模塊275.4 數(shù)字式時(shí)鐘的proteus軟件仿真295.5 本章小結(jié)35結(jié) 論36致 謝37單片機(jī)介紹37附錄421 緒 論1.1 課題背景單片機(jī)自1976年由intel公司推出mcs-48開始,迄今已有二十多年了。由于單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗低、使用方便、價(jià)格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的各個(gè)方面,幾乎“無(wú)處不在,無(wú)所不為”。單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動(dòng)化、汽車電子、pc機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。單片機(jī)有兩種基本機(jī)構(gòu)形式:一種是在通用微型
4、計(jì)算機(jī)中廣泛采用的,將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合用一個(gè)存儲(chǔ)空間的結(jié)構(gòu),稱為普林斯頓結(jié)構(gòu)。另一種是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開,分別尋址的結(jié)構(gòu),一般需要較大的程序存儲(chǔ)器,目前的單片機(jī)以采用程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開的結(jié)構(gòu)為多。本文討論的單片機(jī)多功能定時(shí)器的核心是目前應(yīng)用極為廣泛的51系列單片機(jī),配置了外圍設(shè)備,構(gòu)成了一個(gè)可編程的計(jì)時(shí)定時(shí)系統(tǒng),具有體積小,可靠性高,功能強(qiáng)等特點(diǎn)。不僅能滿足所需要求,而且還有很多功能可供開發(fā),有著廣泛的應(yīng)用領(lǐng)域。20世紀(jì)80年代中期以后,intel公司以專利轉(zhuǎn)讓的形式把8051內(nèi)核技術(shù)轉(zhuǎn)讓給許多半導(dǎo)體芯片生產(chǎn)廠家,如atmel、philps、analog、de
5、vices、dallas等。這些廠家生產(chǎn)的芯片是mcs-51系列的兼容產(chǎn)品,準(zhǔn)確地說(shuō)是與mcs-51指令系統(tǒng)兼容的單片機(jī)。這些兼容機(jī)與8051的系統(tǒng)機(jī)構(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ī),因而mcs只是intel公司專用的單片機(jī)系列型號(hào)。mcs-51系列及80c51單片機(jī)有很多種品種。它們引腳及指令系統(tǒng)相互兼容,主要在內(nèi)部結(jié)構(gòu)上有些區(qū)別。目前使用的mcs-51系列單片機(jī)及其兼容產(chǎn)品通常分為以下幾類:基本型、增強(qiáng)型、
6、低功耗型、專用型、超8位型、片內(nèi)閃爍存儲(chǔ)器型。1.2 課題意義在日常生活和工作中,我們常常用到定時(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ù)慕涌谛酒梢詷?gòu)造各種各樣、功能各異的微電子產(chǎn)品。隨著電子技術(shù)的飛速發(fā)展,家用電器和辦公電子設(shè)備逐漸增多,不同的設(shè)備都有自己的控制器
7、,使用起來(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ù)字化提供了可能。1.3 數(shù)字式時(shí)鐘的應(yīng)用數(shù)字點(diǎn)鐘具有走時(shí)準(zhǔn)確,一鐘多用等特點(diǎn),在生活中已經(jīng)得到廣泛的應(yīng)用。雖然現(xiàn)在市場(chǎng)上已有現(xiàn)成的電子鐘集成電路芯片出售,價(jià)格便宜、使用也方便,但是人們對(duì)電子產(chǎn)品的應(yīng)用要求越來(lái)越高,數(shù)字鐘不但顯示當(dāng)前的時(shí)間,而且可以顯示日期、農(nóng)歷、以及星期等,給人
8、們的生活帶來(lái)了方便。另外數(shù)字鐘還具備秒表和鬧鐘的功能,且鬧鐘鈴聲可自選,使一款電子鐘具備了多媒體的色彩。時(shí)間對(duì)人們來(lái)說(shuō)總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺憾無(wú)傷大雅。但是一旦重要事情,一時(shí)的耽誤可能釀成大禍。電子鐘已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵?,廣泛用于個(gè)人家庭以及車站、碼頭、劇院、辦公室等公共場(chǎng)所,給人們的生活、學(xué)習(xí)、工作、娛樂(lè)帶來(lái)極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進(jìn)的石英技術(shù),使電子鐘具有走時(shí)準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn),它還用于計(jì)時(shí)、自動(dòng)報(bào)時(shí)及自動(dòng)控制等各個(gè)領(lǐng)域。1.4 本章小結(jié)本章主要介紹了單片機(jī)
9、的歷史發(fā)展過(guò)程,單片機(jī)的產(chǎn)生與發(fā)展給人們帶來(lái)了那些影響。以及數(shù)字鐘在日常生活中的具體應(yīng)用給日常生活帶來(lái)的方便。2 單片機(jī)簡(jiǎn)介本次設(shè)計(jì)的主要思想:使用整個(gè)單片機(jī)作為中央控制器,由單片機(jī)執(zhí)行采集時(shí)鐘芯片的時(shí)間信號(hào)并通過(guò)顯示模塊來(lái)輸出信號(hào)及相關(guān)的控制功能。時(shí)鐘芯片產(chǎn)生時(shí)鐘信號(hào),利用單片機(jī)的i/o口傳輸給單片機(jī);并通過(guò)i/o口實(shí)現(xiàn)lcd的顯示。系統(tǒng)設(shè)有4個(gè)按鍵可以對(duì)時(shí)、分、秒、進(jìn)行調(diào)整。整個(gè)框圖如圖2-1所示。圖2-1 系統(tǒng)整體框圖2.1 單片機(jī)的選擇隨著計(jì)算機(jī)及電子技術(shù)的飛躍發(fā)展,單片機(jī)也在不斷更新?lián)Q代,并成為電子系統(tǒng)中進(jìn)行數(shù)據(jù)采集,信息處理,通信聯(lián)絡(luò)和實(shí)施控制的重要器件。單片機(jī)技術(shù)已滲入到了各個(gè)領(lǐng)
10、域,在智能儀器儀表,工業(yè)監(jiān)測(cè)控制,電力電子,汽車電子等方面得到了廣泛的應(yīng)用,并取得了巨大的成果。在今后若干年,mcs-51單片機(jī)的應(yīng)用仍將占主要地位,仍然是我國(guó)單片機(jī)應(yīng)用領(lǐng)域的主流機(jī)型。現(xiàn)今各個(gè)領(lǐng)域的工程技術(shù)人員都應(yīng)掌握單片機(jī)應(yīng)用技術(shù)。單片機(jī)是指一個(gè)集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。盡管它的大部分功能集成在一塊小芯片上,但是它具有一個(gè)完整計(jì)算機(jī)所需要的大部分部件cpu、內(nèi)存內(nèi)部和外部總線系統(tǒng)。單片機(jī)是將中央處理器,隨機(jī)存儲(chǔ)器。只讀存儲(chǔ)器,定時(shí)器芯片和i/o接口電路集成于一個(gè)芯片上的微控制器。單片機(jī)也被稱為微控制器(microcontroler),是因?yàn)樗钤绫挥迷诠I(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅
11、有cpu的專用處理器發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和cpu集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)提及要求嚴(yán)格的控制設(shè)備當(dāng)中。intel的z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。單片機(jī)是靠程序的,并且可以修改。通過(guò)不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國(guó)50年代開發(fā)的74系列,或者60年代的cd4000系列這些純硬件來(lái)搞定的話,電路一定是一塊大pcb板!但是如果要是用美國(guó)70年代成功投放市場(chǎng)的系列單片機(jī),結(jié)
12、果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)是通過(guò)你編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!單片機(jī)的組成如圖 2-2:圖 2-2 單片機(jī)組成框圖目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能ic卡,民用豪華轎車的安全保障系統(tǒng),錄象機(jī)、攝象機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。2.1.1 單片
13、機(jī)的特點(diǎn)(1)控制性能和可靠性高實(shí)時(shí)控制功能特別強(qiáng),其cpu可以對(duì)i/o端口直接進(jìn)行操作,位操作能力更是其它計(jì)算機(jī)無(wú)法比擬的。另外,由于cpu、存儲(chǔ)器及i/o接口集成在同一芯片內(nèi),各部件間的連接緊湊,數(shù)據(jù)在傳送時(shí)受干擾的影響較小,且不易受環(huán)境條件的影響,所以單片機(jī)的可靠性非常高。近期推出的單片機(jī)產(chǎn)品,內(nèi)部集成有高速i/o口、adc、pwm、wdt等部件,并在低電壓、低功耗、串行擴(kuò)展總線、控制網(wǎng)絡(luò)總線和開發(fā)方式(如在系統(tǒng)編程isp)等方面都有了進(jìn)一步的增強(qiáng)。(2)體積小、價(jià)格低、易于產(chǎn)品化單片機(jī)芯片即是一臺(tái)完整的微型計(jì)算機(jī),對(duì)于批量大的專用場(chǎng)合,一方面可以在眾多的單片機(jī)品種間進(jìn)行匹配選擇;同時(shí)還
14、可以專門進(jìn)行芯片設(shè)計(jì),使芯片的功能與應(yīng)用具有良好的對(duì)應(yīng)關(guān)系;在單片機(jī)產(chǎn)品的引腳封裝方面,有的單片機(jī)引腳已減少到8個(gè)或更少,從而使應(yīng)用系統(tǒng)的印制板減小、接插件減少、安裝簡(jiǎn)單方便。2.1.2 單片機(jī)的應(yīng)用領(lǐng)域單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域,大致可分如下幾個(gè)范疇:(1)在智能儀器儀表上的應(yīng)用單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長(zhǎng)度、硬度、元素、壓力等物理量的測(cè)量。采用單片機(jī)控制使得儀器儀表數(shù)字化、
15、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測(cè)量設(shè)備(功率計(jì),示波器,各種分析儀)。(2)在工業(yè)控制中的應(yīng)用用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制系統(tǒng)等。(3)在家用電器中的應(yīng)用可以這樣說(shuō),現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯褒、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無(wú)所不在。(4)在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的
16、通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無(wú)線通信、再到日常工作中隨處可見的移動(dòng)電話,集群移動(dòng)通信,無(wú)線電對(duì)講機(jī)等。(5)單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。此外,單片機(jī)在工商,金融,科研、教育,國(guó)防航空航天等領(lǐng)域都有著十分廣泛的用途。本次我們?cè)O(shè)計(jì)選用的是at89c51系列單片機(jī),是由atmel公司生產(chǎn)的。2.2 at89c51單片機(jī)的基本結(jié)構(gòu)2.2.1 at89c51單片機(jī)簡(jiǎn)介at89c51是一種帶4k字節(jié)flash存儲(chǔ)器(fperomflas
17、h programmable and erasable read only memory)的低電壓、高性能cmos 8位微處理器,俗稱單片機(jī)。at89c2051是一種帶2k字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用atmel高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel的at89c51是一種高效微控制器,at89c2051是它的一種精簡(jiǎn)版本。at89c51的引腳封裝概述圖2-3 89c51的引腳封裝(1)主電源引腳:vcc(40腳):接+5 v
18、電源正端。vss(20腳):接+5 v電源地端。(2)時(shí)鐘電路引腳:外接晶體振蕩器,不能超過(guò)24m;需加微調(diào)電容,一般為30pf;xtal1:接外部晶振和微調(diào)電容的一端,在單片機(jī)內(nèi)部,它是構(gòu)成片內(nèi)振蕩器的反向放大器的輸入端。當(dāng)采用外部振蕩器時(shí),該引腳接收振蕩器的信號(hào),即把此信號(hào)直接接到內(nèi)部振蕩器的輸入端。xtal2:接外部晶振和微調(diào)電容的另一端,在單片機(jī)內(nèi)部,它是構(gòu)成片內(nèi)振蕩器的反向放大器的輸出端。當(dāng)采用外部振蕩器時(shí),此引腳應(yīng)懸空。(3)復(fù)位電路引腳rst/vpd:rst是復(fù)位信號(hào)輸入端,高電平有效。當(dāng)此輸入端保持2個(gè)機(jī)器周期的高電平時(shí),就可以完成復(fù)位操作。rst引腳的第二功能是備用電源的輸入
19、端。單片機(jī)在開機(jī)時(shí)或在工作中因干擾而使程序失控,或工作中程序處于某種死循環(huán)狀態(tài)等情況下都需要復(fù)位。復(fù)位作用是使cpu以及其他功能部件,如串行口,中斷都恢復(fù)到一個(gè)確定初始狀態(tài),并從這個(gè)狀態(tài)開始工作。復(fù)位電路有兩種:上電、按鈕復(fù)位,考慮到各部件影響,采用按鈕復(fù)位,當(dāng)電阻給電容充電,電容的電壓為高電平,當(dāng)按下按鈕時(shí)芯片復(fù)位腳近似低電平,于是芯片復(fù)位。(4)控制信號(hào)引腳:ale/prog:(address latch enable/ programming)地址鎖存允許信號(hào)端,當(dāng)單片機(jī)上電正常工作后,ale引腳不斷向外輸出正弦脈沖信號(hào),此頻率為振蕩器頻率的1/6。cpu訪問(wèn)外部存儲(chǔ)器時(shí),ale作為鎖存
20、低8位地址的控制信號(hào)。此引腳的第二功能prog作為8751編程脈沖輸入端使用。psen:(program store enable)在訪問(wèn)片外存儲(chǔ)器時(shí),此端定時(shí)輸出負(fù)脈沖作為片外存儲(chǔ)器的選通信號(hào)。ea/vpp:(enable address/voltage pulse of programming)當(dāng)ea接高電平時(shí),cpu訪問(wèn)片內(nèi)rom,并執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令,但當(dāng)pc(程序計(jì)數(shù)器)的值超過(guò)4k時(shí),將自動(dòng)轉(zhuǎn)去執(zhí)行片外存儲(chǔ)器內(nèi)的程序。當(dāng)ea腳接低電平時(shí),cpu只訪問(wèn)片外rom并執(zhí)行外部程序存儲(chǔ)器中的指令,而不管是否有片內(nèi)程序存儲(chǔ)器。vpp是對(duì)8751片內(nèi)rom固化程序時(shí),作為施加較高編程電
21、壓(12v21v)的輸入端7。(5)輸入輸出引腳:p0-p3:4個(gè)8位雙向輸入輸出端口,每個(gè)端口都有鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器。4個(gè)端口都可以做輸入輸出口使用,其中,p0和p2通常用于對(duì)外部存儲(chǔ)器的訪問(wèn)。在這種方式下,把p0口作為地址/數(shù)據(jù)總線使用,分時(shí)輸出外部存儲(chǔ)器的地址和傳送8位數(shù)據(jù)。當(dāng)擴(kuò)充外部存儲(chǔ)器的地址為16位時(shí),p2口作為地址總線的高8位地址使用。1)p0口(39-32腳):p0.0-p0.7統(tǒng)稱為p0口。在不接片外存儲(chǔ)器與不擴(kuò)展i/o口時(shí),可作為準(zhǔn)雙向輸入/輸出口。在接有片外存儲(chǔ)器或擴(kuò)展i/o口時(shí),p0口分時(shí)復(fù)用為低8位地址總線和雙向數(shù)據(jù)總線。2) p1口(1-8腳):p1.0
22、-p1.7統(tǒng)稱為p1口,可作為準(zhǔn)雙向i/o口使用。對(duì)于52子系列,p1.0與p1.1還有第二功能:p1.0可用作定時(shí)器/計(jì)數(shù)器2的計(jì)數(shù)脈沖輸入端t2,p1.1可用作定時(shí)器/計(jì)數(shù)器2的外部控制端t2ex。3) p2口(21-28腳):p2.0-p2.7統(tǒng)稱為p2口,一般可作為準(zhǔn)雙向i/o口使用;在接有片外存儲(chǔ)器或擴(kuò)展i/o口且尋址范圍超過(guò)256字節(jié)時(shí),p2口用作高8位地址總線。4) p3口(10-17腳):p3.0-p3.7統(tǒng)稱為p3口。除作為準(zhǔn)雙向i/o口使用外,還可以將每一位用于第二功能,而且p3口的每一條引腳均可獨(dú)立定義為第一功能的輸入輸出或第二功能。2.2.2 at89c51單片機(jī)工作的
23、基本時(shí)序機(jī)器周期和指令周期:1. 振蕩周期: 也稱時(shí)鐘周期, 是指為單片機(jī)提供時(shí)鐘脈沖信號(hào)的振蕩源的周期。2. 狀態(tài)周期: 每個(gè)狀態(tài)周期為時(shí)鐘周期的 2 倍, 是振蕩周期經(jīng)二分頻后得到的。(3) 機(jī)器周期: 一個(gè)機(jī)器周期包含 6 個(gè)狀態(tài)周期s1s6, 也就是 12 個(gè)時(shí)鐘周期。在一個(gè)機(jī)器周期內(nèi), cpu可以完成一個(gè)獨(dú)立的操作。 (4) 指令周期: 它是指cpu完成一條操作所需的全部時(shí)間。 每條指令執(zhí)行時(shí)間都是有一個(gè)或幾個(gè)機(jī)器周期組成。mcs - 51 系統(tǒng)中, 有單周期指令、雙周期指令和四周期指令。2.2.3 at89c51單片機(jī)的內(nèi)部結(jié)構(gòu)及存儲(chǔ)器配置(1)at89c51單片機(jī)內(nèi)部的結(jié)構(gòu)cpu
24、:由運(yùn)算和控制邏輯組成,同時(shí)還包括中斷系統(tǒng)和部分外部特殊功能寄存器;ram:用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);rom:用以存放程序、一些原始數(shù)據(jù)和表格;i/o口:四個(gè)8位并行i/o口,既可用作輸入,也可用作輸出;t/c:兩個(gè)定時(shí)/記數(shù)器,既可以工作在定時(shí)模式,也可以工作在記數(shù)模式。圖2-4 mcs-51的內(nèi)部結(jié)構(gòu)框圖(2)at89c51單片機(jī)的存儲(chǔ)器配置 圖2-5 單片機(jī)的內(nèi)部存儲(chǔ)器配置從用戶的角度存儲(chǔ)器分3個(gè)邏輯地址空間:1)片內(nèi)外統(tǒng)一編址的64kb程序存儲(chǔ)器地址空間0000hffffh即(a)圖;2)256b的片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間00hffh(包括低12
25、8b的內(nèi)部ram地址00h7fh和高128b的特殊功能寄存器地址空間)即(b)圖;3)64kb的外部數(shù)據(jù)存儲(chǔ)器或擴(kuò)展i/o接口地址空間0000hffffh;4)畫出ram的組成;ram共有256個(gè)單元,按功能分為兩部分低128單元(單元地址00h7fh)和高128單元(單元地址80hffh)。其中高128單元是供給專用寄存器使用,因這些寄存器的功能已作為專門規(guī)定故此稱之為特殊功能寄存器sfr11個(gè)sfr有位尋址作用,而且要說(shuō)明低128單元是單片機(jī)的真正ram存儲(chǔ)器。表2.1 ram的組成30h7fh通用ram區(qū)20h2fh位尋址區(qū)(00h7fh)18h1fh工作寄存器3區(qū)(r7r0)10h17
26、h工作寄存器2區(qū)(r7r0)08h0fh工作寄存器1區(qū)(r7r0)00h07h 工作寄存器 0區(qū)(r7r0)低128單元是單片機(jī)的真正ram存儲(chǔ)器,按其用途劃分為三個(gè)區(qū)域:(1)通用寄存器區(qū) 通用寄存器為cpu提供了就近數(shù)據(jù)存儲(chǔ)的便利,有利于提高單片機(jī)的運(yùn)算速度。此外,使用通用存儲(chǔ)器還能提高程序編制的靈活性,因此在單片機(jī)的應(yīng)用編程中應(yīng)充分利用這些寄存器,以簡(jiǎn)化程序設(shè)計(jì),提高程序運(yùn)行速度。(2)位尋址區(qū)內(nèi)部ram的20h2fh單元,即可作為一般ram單元使用,進(jìn)行字節(jié)操作,也可以對(duì)單元中每一位進(jìn)行位操作,因此把該區(qū)稱之為位尋址區(qū)。(3)工作寄存區(qū)用戶存儲(chǔ)數(shù)據(jù)的。2.3 本章小結(jié)本章節(jié)先介紹單片機(jī)
27、的發(fā)展及其在現(xiàn)代生活中的廣泛應(yīng)用,然后再詳細(xì)講解了單片機(jī)內(nèi)部各引腳的作用,如 i/0口,xtal1、xtal2晶振接口,vcc電源接口端等等,為進(jìn)一步理解單片機(jī)的功能打下初步的基礎(chǔ);最后提到了單片機(jī)的存儲(chǔ)器rom、ram在單片機(jī)運(yùn)行中的作用,為我們進(jìn)一步認(rèn)識(shí)單片機(jī)有很好的幫助。通過(guò)這章單片機(jī)知識(shí)的學(xué)習(xí),可以讓我們對(duì)單片機(jī)從抽象到具體的一個(gè)認(rèn)識(shí),也為下面章節(jié)的應(yīng)用打下堅(jiān)實(shí)的基礎(chǔ)。3 數(shù)字式時(shí)鐘的硬件設(shè)計(jì)本章節(jié)主要介紹數(shù)字式時(shí)鐘的硬件設(shè)計(jì),從單片機(jī)最小系統(tǒng)出發(fā),然后講解該設(shè)計(jì)的外圍電路設(shè)計(jì)。該設(shè)計(jì)的外圍電路包括時(shí)鐘電路模塊,lcd顯示模塊,電源模塊,按鍵模塊以及復(fù)位電路模塊,通過(guò)對(duì)各個(gè)模塊的詳細(xì)介
28、紹,讓我們對(duì)整個(gè)設(shè)計(jì)方案有一個(gè)深入的了解。整個(gè)數(shù)字式時(shí)鐘的硬件設(shè)計(jì)電路圖如圖3-1所示。圖3-1 數(shù)字式時(shí)鐘硬件整體圖3.1 最小系統(tǒng)設(shè)計(jì)單片機(jī)要正常運(yùn)行,必須具備一定的硬件條件,其中最主要的就是三個(gè)條件:(1)電源正常;(2)時(shí)鐘正常;(3)復(fù)位正常。at89c51的引腳如圖3-2所示,在at89c51單片機(jī)的40個(gè)引腳中,電源引腳兩根,晶振引腳2根,控制引腳4根,可編程輸入輸出引腳32根。(1)工作電源電源是單片機(jī)工作的動(dòng)力源泉,對(duì)應(yīng)的接線方法為:40引腳(vcc)電源引腳,工作是接+5電源,20引腳(gnd)為接地線。(2)時(shí)鐘電路時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)序脈沖,單片機(jī)所有運(yùn)算與控制過(guò)程都
29、是在同一的時(shí)序脈沖的驅(qū)動(dòng)下進(jìn)行的,時(shí)鐘電路就好比人的心臟一樣重要。當(dāng)采用內(nèi)部時(shí)鐘時(shí),連接方法如圖3-1所示,在晶振xtal(19引腳)和xtal(18引腳)之間接入一個(gè)晶振,兩個(gè)引腳對(duì)地分別再接入一個(gè)電容可產(chǎn)生所需的時(shí)鐘信號(hào),電容的容量一般取30pf。圖 3-2 at89c51的最小系統(tǒng)(3)復(fù)位電路在復(fù)位引腳(9引腳)持續(xù)出現(xiàn)24個(gè)振蕩器脈沖周期(即2個(gè)機(jī)器周期)的高電平信號(hào) 將使單片機(jī)復(fù)位。如圖3-1所示,電容c和電阻r構(gòu)成了單片機(jī)上電自動(dòng)復(fù)位電路。復(fù)位后,單片機(jī)從0000h單元開始執(zhí)行程序,并初始化一些專用寄存器為復(fù)位狀態(tài)值,受影響的專用寄存器如表3-1所示。表3.1 寄存器狀態(tài)表寄存器
30、狀態(tài)寄存器狀態(tài)pc000htcon00hacc00htl000hpsw00hth000hsp07htl100hdptr0000hth100hp0-p3ffhscon00hipxxx00000hsbuf不確定ieoxx00000hpcon0xxx0000htmod00h(4)控制引腳ea接法ea/vpp(31引腳)為內(nèi)外程序存儲(chǔ)器選擇控制引腳,當(dāng)ea為低電位時(shí),單片機(jī)從外部存儲(chǔ)器取指令;當(dāng)ea接高電平時(shí),從單片機(jī)內(nèi)部程序存儲(chǔ)器取指令。at89c51單片機(jī)內(nèi)部有4kb可反復(fù)擦寫1000次以上的程序存儲(chǔ)器,因此要把ea接+5v高電平,讓單片機(jī)運(yùn)行內(nèi)部的程序,這樣就可以反復(fù)燒寫來(lái)驗(yàn)證程序了。這就是at
31、89c51單片機(jī)最小化系統(tǒng)的連接,只要把編寫好的程序燒寫到單片機(jī)內(nèi)部,并接上5v電源就可以正常運(yùn)行了,在17引腳上接上的發(fā)光二極管可以用來(lái)驗(yàn)證系統(tǒng)是否正常。3.2 數(shù)字式時(shí)鐘的外圍電路設(shè)計(jì)3.2.1 時(shí)鐘電路時(shí)鐘時(shí)單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn),有條不紊的一拍一拍地工作。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,一種是內(nèi)部時(shí)鐘方式,另一種為外部時(shí)鐘方式。本文用的是內(nèi)部時(shí)鐘方式。如圖3-3所示。圖3-3 單片機(jī)時(shí)鐘at89c51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,該高增益反相放大器的輸入端為芯片引腳xtal1,輸出端為引腳xtal2.這兩個(gè)引腳跨界石英晶體振蕩器
32、和微調(diào)電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。3.2.2 lcd顯示電路液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等特點(diǎn),現(xiàn)在字符型夜晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件了。本次設(shè)計(jì),我們使用的是長(zhǎng)沙太陽(yáng)人電子有限公司smc1602a lcd液晶。1602a液晶實(shí)物如圖3-4,1602a主要參數(shù)如表3.2所示。 圖3-4 1602b液晶實(shí)物圖該模塊也可以只用d4-d7作為四位數(shù)據(jù)分兩次傳送。這樣的話,可以節(jié)省mcu的i/o口資源。1602a可以顯示2行16個(gè)字符,有8為數(shù)據(jù)總線d0-d7,和rs、r/w、en三個(gè)控制端口,工作電壓為5v,并且?guī)в凶址麑?duì)比度調(diào)節(jié)和背光。表3.2 16
33、02a液晶主要技術(shù)參數(shù)顯示容量162個(gè)字符芯片工作電壓4.55.5v工作電流2.0ma(5.0v)模塊最佳工作電壓5.0v字符尺寸2.954.35(wxh)mm該模塊也可以只用d4-d7作為四位數(shù)據(jù)分兩次傳送。這樣的話就可以節(jié)省mcu的i/o口資源。各引腳的功能見表3.3。表3.3 1602a液晶引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1vss電源地9d2data i/02vdd電源正極10d3data i/03vl液晶顯示偏壓信號(hào)11d4data i/04rs數(shù)據(jù)/命令選擇端(h/l)12d5data i/05r/w讀/寫選擇端(h/l)13d6data i/06e使能信號(hào)14d7data
34、i/07d0data i/015bla背光源正極8d1data i/016blk背光源負(fù)極從該模塊的正面看,引腳排列從右至左為:15引腳、16引腳,然后才是1至14引腳。vdd:電源正極,4.55.5v,通常使用5v電壓;vl:lcd對(duì)比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為05v。接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,但對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“重影”,因此,通常使用一個(gè)10k的電位器來(lái)調(diào)整對(duì)比度,或者直接串接一個(gè)電阻到地;rs:mcu寫入數(shù)據(jù)或指令選擇端。mcu要寫入指令時(shí),使rs為低電平;mcu要寫入數(shù)據(jù)時(shí),使rs為高電平;r/w:讀寫控制端。r/w為高電平時(shí),讀寫數(shù)據(jù);r/w為低電平,寫入數(shù)據(jù);e:
35、lcd模塊使能信號(hào)控制端。寫數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊。d0-d7:8位數(shù)據(jù)總線,三態(tài)雙向。如果mcu的i/o口資源緊張的話,該模塊也可以只使用4位數(shù)據(jù)線d4-d7接口傳送數(shù)據(jù)。bla:led背光正極。需要背光時(shí),bla串接一個(gè)限流電阻接vdd,blk接地,實(shí)測(cè)該模塊的背光電流為50ma左右。blk:led背光地端。1602a液晶與單片機(jī)系統(tǒng)的連接圖如3-5所示。圖3-5 1602a液晶與單片機(jī)系統(tǒng)的連接圖3.2.3 電源指示燈電路電源指示電路主要用于查看電路是否供電,有電阻和發(fā)光二極管組成。圖3-6 系統(tǒng)電源指示燈電路3.2.4 按鍵電路按鍵的開關(guān)狀態(tài)通過(guò)一定的電路轉(zhuǎn)換為高、低電平狀態(tài)。按鍵
36、閉合過(guò)程在相應(yīng)的i/o端口形成一個(gè)負(fù)脈沖。閉合和釋放過(guò)程都要經(jīng)過(guò)一定的過(guò)程才能達(dá)到穩(wěn)定。這一過(guò)程是處于高、低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間長(zhǎng)短與開關(guān)的機(jī)械特性有關(guān),一般在510ms之間。為了避免cpu多次處理按鍵的一次閉合,應(yīng)采用措施消除抖動(dòng)。本文采用的是獨(dú)立式按鍵,直接用i/o口線構(gòu)成單個(gè)按鍵電路,每個(gè)按鍵占用一條i/o口線,每個(gè)按鍵的工作狀態(tài)不會(huì)產(chǎn)生相互影響。按鍵電路如圖3-7所示。圖3-7 按鍵電路圖p2.5口:表示功能移位鍵,按鍵選擇要調(diào)整的時(shí)、分、秒、p2.6口:表示數(shù)字“+”鍵,按一下則對(duì)應(yīng)的數(shù)字加1。p2.7口:表示數(shù)字“”鍵,按一下則對(duì)應(yīng)的數(shù)字減1。 3.2
37、.5 復(fù)位電路at89c51單片機(jī)的復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。復(fù)位引腳rst通過(guò)一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來(lái)抑制噪聲,在每個(gè)機(jī)器周期的s5p2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。上電復(fù)位:上電復(fù)位電路時(shí)一種簡(jiǎn)單的復(fù)位電路,只要在rst復(fù)位引腳接一個(gè)電容到vcc,接一個(gè)電阻到地就可以了。上電復(fù)位是指給系統(tǒng)上電時(shí),復(fù)位電路通過(guò)電容加到rst復(fù)位引腳一個(gè)短暫的高電平信號(hào),這個(gè)復(fù)位信號(hào)隨著vcc對(duì)電容的充電過(guò)程而回落,所以rst引腳復(fù)位的高電平維持時(shí)間取決于電容的充電時(shí)間。為了保證系統(tǒng)安全可靠的復(fù)位,rst引腳的高電平信號(hào)必須維持
38、足夠長(zhǎng)的時(shí)間。 如圖3-8所示,上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。只要vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。 圖3-8 復(fù)位電路3.3 本章小結(jié)本章介紹了多功能數(shù)字鐘系統(tǒng)的硬件模塊組成,詳細(xì)介紹了各個(gè)模塊的組成及功能。mcu的組成和特點(diǎn)、單片機(jī)時(shí)鐘、顯示模塊的構(gòu)建與運(yùn)用、電源電路的設(shè)計(jì)制作?;旧鲜峭瓿闪俗鳛閱纹瑱C(jī)所需的硬件結(jié)構(gòu)。同時(shí)也顯示了對(duì)軟件支持的強(qiáng)烈要求。4 數(shù)字式時(shí)鐘的軟件設(shè)計(jì)4.1 系統(tǒng)軟件設(shè)計(jì)內(nèi)容本設(shè)計(jì)的軟件程序包括主程序、中斷子程序、時(shí)鐘顯示程序以及延時(shí)子程序等。該設(shè)計(jì)有三個(gè)彈性小按鍵組成的小鍵盤,這些鍵盤可以修改時(shí)鐘的顯示狀態(tài)。按功能移位鍵一次
39、,表示當(dāng)前要校對(duì)的是 “秒”位;按兩次,表示當(dāng)前校對(duì)的是“分”位;按三下,表示當(dāng)前要校對(duì)的是“時(shí)”位;而當(dāng)移位功能正在調(diào)整時(shí),可以使用“+”鍵、“-”鍵對(duì)當(dāng)前校對(duì)位的數(shù)字進(jìn)行增加1或者減去1運(yùn)算。系統(tǒng)軟件采用c語(yǔ)言編寫。時(shí)鐘的最小計(jì)時(shí)單位是秒,但是使用定時(shí)器的方式1,最大的定時(shí)時(shí)間也只能達(dá)到131ms。我們可以把定時(shí)器的設(shè)定時(shí)間定為50ms。這樣,計(jì)數(shù)溢出20次即可得到時(shí)鐘的最小計(jì)時(shí)單位:秒。而計(jì)時(shí)20次可以用軟件實(shí)現(xiàn)。秒計(jì)時(shí)是采用中斷方式進(jìn)行溢出次數(shù)的累積,記滿20次,即可得到秒計(jì)時(shí)。從秒到分,分到時(shí)都是通過(guò)軟件累加并進(jìn)行比較的方法來(lái)實(shí)現(xiàn)的。要求每滿1秒,則“秒”單元中的內(nèi)容加1;“秒”單元
40、滿60,則“分”單元中的內(nèi)容加1;“分”單元滿60,則“時(shí)”單元中的內(nèi)容加1;“時(shí)”單元滿24,同時(shí)將時(shí)、分、秒的內(nèi)容全部清零;依此類推,實(shí)時(shí)時(shí)鐘程序設(shè)計(jì)步驟:(1)選擇工作方式,計(jì)算初值;(2)采用中斷方式進(jìn)行溢出次數(shù)累計(jì);(3)從秒分時(shí)是通過(guò)累加和數(shù)值比較實(shí)現(xiàn)的;(4)時(shí)鐘顯示緩沖區(qū):時(shí)鐘時(shí)間在lcd液晶顯示器上進(jìn)行顯示,為此在內(nèi)部ram中要設(shè)置顯示緩沖區(qū),共6個(gè)地址單元。顯示緩沖區(qū)從左到右依次存放時(shí)、分、秒數(shù)值;(5)主程序:主要進(jìn)行定時(shí)器/計(jì)數(shù)器的初始化編程,然后反復(fù)調(diào)用顯示子程序的方法等待中斷的到來(lái);(6)中斷服務(wù)程序:進(jìn)行計(jì)時(shí)操作;(7)加1子程序:用于完成對(duì)時(shí)、分、秒等的加操作,
41、中斷服務(wù)程序在秒、分、時(shí)等加1時(shí)調(diào)用加1子程序。(8)減1子程序:用于完成對(duì)時(shí)、分、秒等的減操作,中斷服務(wù)程序在秒、分、時(shí)等減1時(shí)調(diào)用減1子程序4.2主程序主程序主要有main()組成通過(guò)對(duì)相關(guān)子程序的調(diào)用,實(shí)現(xiàn)對(duì)時(shí)間的設(shè)置與修改、lcd顯示等主要功能。相關(guān)的調(diào)整是靠對(duì)功能鍵的判斷來(lái)實(shí)現(xiàn)的。我們用流程框圖來(lái)表示,如下圖4-1所示:圖4-1 主程序流程主程序段如下:#include#include#define uchar unsigned char#define uint unsigned intsbit lcdrs=p35; /數(shù)據(jù)/命令選擇端sbit lcdrw=p36; /讀/寫選擇端s
42、bit lcded=p37; /液晶使能端sbit s1=p25; /功能鍵sbit s2=p26; /數(shù)字加1鍵sbit s3=p27; /數(shù)字減1鍵uchar num,tt,i,j;uchar keycount;char shi,fen,miao; uint nian,yue,ri; main() /主函數(shù) init();/初始化while(1)keysanf(); /讀鍵void init()/初始化函數(shù)shi=12;fen=0;miao=0;/起始時(shí)間為12:00:00nian=2012;yue=5;ri=28;keycount=0;/按鍵標(biāo)志清零p1=0x0f;/按鍵接口高電平tmo
43、d=0x01;/計(jì)時(shí)器初始化 tt=0;th0=(65536-50000)/256;tl0=(65536-50000)%256;tr0=1;/開定時(shí)器ea=1;/開中斷et0=1;/開定時(shí)器中斷l(xiāng)cdrw=0;lcded=0;write_com(0x38);/顯示器初始化write_com(0x0c);/開顯示,關(guān)光標(biāo),關(guān)光標(biāo)閃爍write_com(0x06);/讀寫字符后地址加一write_com(0x01);/清屏write_nyr(nian,yue,ri); write_sfm(shi,fen,miao);4.3時(shí)鐘設(shè)置子程序時(shí)鐘的修改首先要按功能鍵并停止時(shí)間的輸出顯示,否則系統(tǒng)繼續(xù)刷新
44、時(shí)間則無(wú)法修改,所以時(shí)間是不輸出到lcd的。修改的部分以修改的為準(zhǔn),沒有修改的通過(guò)中斷保護(hù)起來(lái),等修改成功后繼續(xù)顯示。主要流程圖如圖4-2所示。時(shí)鐘修改程序中,首先將時(shí)鐘年份單元設(shè)為顯示首地址,然后,以年份,月份,日期,時(shí),分,秒為順序進(jìn)行相對(duì)應(yīng)的修改。而年份,月份,日期,時(shí),分,秒的功能子程序都相同,所以我們就以秒位功能修改子程序?yàn)槔?,如下:if(s1=0) /功能鍵被按下delay(5);if(s1=0)while(!s1);keycount+;if(keycount=1) /秒位調(diào)整tr0=0;/計(jì)時(shí)器關(guān) 時(shí)間停止走動(dòng)write_com(0x80+0x40+10);/光標(biāo)移到秒位上wri
45、te_com(0x0d);/光標(biāo)閃爍而在時(shí)間修改功能中,我們要用到1個(gè)數(shù)字加減的問(wèn)題,加1和減1的程序大體相同,故我們以加1程序?yàn)槔?,把它作為一個(gè)子程序,流程方框圖如4-3所示。通過(guò)判斷功能鍵的狀態(tài),也就是紀(jì)錄值來(lái)確定,然后在相應(yīng)位上進(jìn)行數(shù)字的增減,由于年份,月份,日期,時(shí),分,秒的加1,減1程序類似,我們就以秒位修改程序?yàn)槔f(s2=0) /加1鍵delay(5);if(s2=0)while(!s2);miao+;if(miao=60)miao=0;write_com(0x0c);/光標(biāo)停止閃爍write_sfm(shi,fen,miao);/將調(diào)解后是時(shí)間顯示write_com(0x8
46、0+0x40+12);/光標(biāo)再次移到秒位write_com(0x0d);/光標(biāo)繼續(xù)閃爍if(s3=0) /減1鍵delay(5);if(s3=0) while(!s3);miao-;if(miao=-1)miao=59;write_com(0x0c);write_sfm(shi,fen,miao);write_com(0x80+0x40+12);write_com(0x0d);4.4中斷子程序mcs-51系列單片機(jī)有5個(gè)中斷源,中斷分為2個(gè)中斷優(yōu)先級(jí),即高優(yōu)先級(jí)和低優(yōu)先級(jí),每個(gè)中斷源的優(yōu)先級(jí)都可以有軟件來(lái)設(shè)定。中斷地址如表4.1所示。表4.1 中斷地址表5個(gè)中斷源入口地址外部中斷0(/int0
47、)0003ht0溢出中斷000bh外部中斷1(/int1)0013ht1溢出中斷001bh串口中斷0023hvoid time0()interrupt 1 /中斷程序th0=(65536-45872)/256;tl0=(65536-45872)%256;tt+;if(tt=20)tt=0;圖4-2 功能鍵子程序流程框4.5 lcd顯示子程序lcd顯示子程序可對(duì)1602液晶上面的字符進(jìn)行設(shè)置和時(shí)間的修改,程序如下:uchar code table2= ; /顯示空格void delay(uint s) /延時(shí)函數(shù)uchar a, b;for(a=0;as;a+)for(b=0;b110;b+);
48、void write_com(uchar com) /寫命令函數(shù)lcdrs=0; /選擇寫命令方式lcdrw=0;p1=com;delay(6); lcded=1; /開啟使能端delay(6);lcded=0;void write_date(uchar date) /寫數(shù)據(jù)函數(shù)lcdrs=1; /選擇寫數(shù)據(jù)方式lcdrw=0;p1=date;delay(6);lcded=1; /開啟使能端delay(6);lcded=0;void write_nyr(uint nian,uint yue,uint ri)void write_sfm(uchar shi,uchar fen,uchar mia
49、o)uchar shi,ge;shi=date/10;/分解一個(gè)2位數(shù)的十位和個(gè)位ge=date%10;lcd_write_cmd(one+add);/設(shè)置顯示位置lcd_write_data(0x30+shi);/送去液晶顯示十位lcd_write_data(0x30+ge); /送去液晶顯示個(gè)位write_com(0x80+0x40); /第二行輸入time字符write_com(0x80+0x40+4);/從第二行第四位開始寫時(shí)冒號(hào)分冒號(hào)秒write_date(shi/10+0x30);/時(shí) 的十位 數(shù)字的代碼為代碼加0x30write_date(shi%10+0x30);/時(shí)個(gè)位wri
50、te_date(0x3a);/冒號(hào)的字符代碼為3awrite_date(fen/10+0x30); /分write_date(fen%10+0x30);write_date(0x3a);write_date(miao/10+0x30); /秒write_date(miao%10+0x30);write_com(0x80+0x40+13);for(i=0;i2;i+)write_date(table2i);/輸入空格 4.6 本章小結(jié)本章介紹了本設(shè)計(jì)的軟件設(shè)計(jì),所有的功能在流程圖里清晰的表現(xiàn)力出來(lái),包括主程序流程圖、時(shí)鐘及鬧鐘修改流程圖等,并附有相關(guān)程序的主要部分。在軟件的設(shè)計(jì)中模塊化設(shè)計(jì)很重要
51、,顯示很直觀不會(huì)發(fā)生混亂現(xiàn)象,容易上手。5 數(shù)字式時(shí)鐘的protues軟件仿真5.1 protues軟件的概述protues軟件是英國(guó)labcenter electronics公司出版eda工具軟件。它不僅具有其它eda工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。proteus是世界上著名的eda工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到pcb設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真
52、軟件、pcb設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、8086和msp430等,2010年即將增加cortex和dsp系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持iar和mplab等多種編譯。5.2 protues軟件的功能特點(diǎn)protues軟件具有其它eda工具軟件(例:multisim)的功能。這些功能是: (1)原理布圖 (2)pcb自動(dòng)或人工布線 (3)spice電路仿真 革命性的特點(diǎn): (1)互動(dòng)的電路仿真。用戶甚至可以實(shí)時(shí)采用諸如ram,rom,鍵盤,馬達(dá),le
53、d,lcd,ad/da,部分spi器件,部分iic器件。 (2)仿真處理器及其外圍電路。可以仿真51系列、avr、pic、arm、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,protues建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境。5.3 protues軟件具有4大功能模塊(1)智能原理圖設(shè)計(jì)(isis)豐富的器件庫(kù):超過(guò)27000種元器件,可方便地創(chuàng)建新元件。智能的器件搜索:通過(guò)模糊搜索可以快速定位所需要的器件。智能化的連線功能:自動(dòng)連線功能使連接導(dǎo)線簡(jiǎn)單快捷,大大縮短繪圖時(shí)間。支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計(jì)簡(jiǎn)明清晰??奢敵龈哔|(zhì)量圖紙:通過(guò)個(gè)性化設(shè)置,可以生成印刷質(zhì)量的bmp圖紙,可以方便地供word、powerpoint等多種文檔使用。(2)完善的電路仿真功能(prospice)prospice混合仿真:基于工業(yè)標(biāo)準(zhǔn)spice3f5,實(shí)現(xiàn)數(shù)字/模擬電路
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 24498-2025建筑門窗、幕墻用密封膠條
- 戰(zhàn)略合作合同協(xié)議書(經(jīng)典)
- 租賃合同變更及轉(zhuǎn)讓協(xié)議模板
- 建筑承包合同協(xié)議書格式
- 張偉房地產(chǎn)開發(fā)合同糾紛案件解析
- 2024年人教版九年級(jí)中考英語(yǔ)現(xiàn)在進(jìn)行時(shí)教學(xué)設(shè)計(jì)
- 合伙創(chuàng)業(yè)合同書
- 加盟合作合同協(xié)議
- 10《青山處處埋忠骨》教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語(yǔ)文五年級(jí)下冊(cè)
- 供水改造工程合同范本-施工專用
- 廚房菜品出品標(biāo)準(zhǔn)培訓(xùn)
- 【基于單片機(jī)的超市自動(dòng)存儲(chǔ)柜的設(shè)計(jì)與實(shí)現(xiàn)(論文)8700字】
- 2024年銀行考試-商業(yè)銀行考試近5年真題附答案
- 招聘筆試題與參考答案(某大型央企)2024年
- 全國(guó)裝配式建筑職業(yè)技能競(jìng)賽考試題庫(kù)
- Nikon尼康D3100中文說(shuō)明書
- 人教版四年級(jí)上冊(cè)數(shù)學(xué)期末試卷(6套)
- FZ∕T 73037-2019 針織運(yùn)動(dòng)襪行業(yè)標(biāo)準(zhǔn)
- 16J914-1 公用建筑衛(wèi)生間
- 春節(jié)的那些事作文6篇
- (完整版)機(jī)房安全檢查表
評(píng)論
0/150
提交評(píng)論