畢業(yè)論文-基于at89c51單片機(jī)數(shù)字鐘【精校排版】_第1頁(yè)
已閱讀1頁(yè),還剩35頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p><b> ?。?0 屆)</b></p><p>  基于AT89C51單片機(jī)數(shù)字鐘</p><p><b>  目錄</b></p><p><b>  摘要III</b></p><p>

2、;  AbstractIV</p><p><b>  第一章 緒論1</b></p><p>  1.1 研究目的及意義1</p><p>  1.2 國(guó)內(nèi)外研究的現(xiàn)狀1</p><p>  1.3 數(shù)字鐘2</p><p>  第二章 硬件簡(jiǎn)介3</p>&

3、lt;p>  2.1 單片機(jī)介紹3</p><p>  2.1.1 單片機(jī)特點(diǎn)3</p><p>  2.1.2 AT89C51介紹3</p><p>  2.1.3 89C51各引腳功能4</p><p>  2.1.4 計(jì)數(shù)器/定時(shí)器原理5</p><p>  2.2 LED顯示器6&

4、lt;/p><p>  2.3 蜂鳴器7</p><p><b>  2.4 鍵盤(pán)7</b></p><p>  第三章 硬件設(shè)計(jì)8</p><p>  3.1 設(shè)計(jì)介紹8</p><p>  3.2 硬件電路9</p><p>  3.2.1 時(shí)鐘振蕩電

5、路設(shè)計(jì)9</p><p>  3.2.2 復(fù)位電路設(shè)計(jì)11</p><p>  3.2.3 鍵盤(pán)電路設(shè)計(jì)12</p><p>  3.2.4 蜂鳴器電路設(shè)計(jì)12</p><p>  3.2.5 顯示電路設(shè)計(jì)13</p><p>  3.2.6 譯碼電路14</p><p>

6、  第四章 軟件程序15</p><p>  4.1 程序流程圖15</p><p>  4.2 匯編語(yǔ)言16</p><p><b>  參考文獻(xiàn)17</b></p><p><b>  附錄18</b></p><p>  附錄1 數(shù)字鐘硬件電路圖18

7、</p><p>  附錄2 程序19</p><p><b>  致謝30</b></p><p>  基于AT89C51單片機(jī)數(shù)字鐘</p><p><b>  摘要</b></p><p>  隨著現(xiàn)代生活節(jié)奏的逐漸加快,人們對(duì)時(shí)間的運(yùn)用和把握顯得越發(fā)的重要。能更

8、為高效的解決事情會(huì)使我們?cè)诟?jìng)爭(zhēng)激烈的當(dāng)今社會(huì)中取得先機(jī)。</p><p>  本文研究的重點(diǎn)在于通過(guò)MCS-51單片機(jī)控制的數(shù)字鐘。對(duì)AT89C51單片機(jī)為主的控制器,整個(gè)單片機(jī)系統(tǒng),LED顯示,鍵盤(pán),蜂鳴器等附件進(jìn)行深入的學(xué)習(xí),研究后,再對(duì)各個(gè)硬件模塊分析,調(diào)試,安裝,最后編寫(xiě)一段相關(guān)的匯編語(yǔ)言程序輸入單片機(jī)中,使單片機(jī)控制整個(gè)數(shù)字鐘運(yùn)作,完成整個(gè)設(shè)計(jì)。</p><p>  設(shè)計(jì)出來(lái)的電

9、子鐘能夠?qū)崿F(xiàn)的功能為時(shí)間的修改,顯示當(dāng)前時(shí)間,鬧鈴,通過(guò)鍵盤(pán)來(lái)實(shí)現(xiàn)對(duì)時(shí)間的調(diào)校和鬧鈴的設(shè)置。將多種功能集于一身,是單片機(jī)的主要優(yōu)勢(shì)之一,除此外,它相對(duì)的運(yùn)算速度和精確度都比較高,能夠滿足我們對(duì)時(shí)鐘的一切要求。本系統(tǒng)中大部分功能都是由程序控制完成,硬件電路的復(fù)雜性降低了很多。采用此種方法來(lái)實(shí)現(xiàn)數(shù)字鐘,也符合當(dāng)代數(shù)字鐘設(shè)計(jì)的主流趨勢(shì)。</p><p>  關(guān)鍵字:數(shù)字鐘 ;AT89C51單片機(jī) ;LED顯示 ;鬧鈴&

10、lt;/p><p>  AT89C51 Microcontroller Based Digital Clock</p><p><b>  Abstract</b></p><p>  Nowadays the tempo of our life is becoming faster and faster. It’s

11、important to us to be good at using time. If we can make things more efficient solution to our society in today's highly competitive head start.</p><p>  The focus of this paper is the digital clock whic

12、h is controlled by MCS-51.The by AT89C51 microcontroller-based controller is the microcontroller in the system, LED display, keyboard, buzzer-depth look at other accessories for study, research, and then analysis of the

13、 various hardware modules, debugging, installation, and finally write a related to enter the microcontroller assembly language program to complete the entire design.</p><p>  The time clock designed by

14、us can achieve such as change, display, alarm, through the keyboard to adjust and set the alarm time. One of the main advantages of microcontroller is there are a variety of functions rolled into one. Besides , it i

15、s relatively the speed and high accuracy. We can meet all the requirements on the clock. Most of the functionality of the system is procedures complete control, do reduce the complexity of the circuit a lot. So the

16、use of such methods to achieve this digital</p><p>  Keywords :digital clock ,AT89C51 microcontroller ,LED display ,alarm</p><p><b>  第一章 緒論</b></p><p>  1.1 研究目的及意義&l

17、t;/p><p>  數(shù)字鐘的設(shè)計(jì)方法是多種多樣的,用小規(guī)模集成電路組成,利用電子時(shí)鐘芯片DS1308等配上顯示電路,還有就是利用單片機(jī)通過(guò)程序控制。</p><p>  基于單片機(jī)的數(shù)字鐘設(shè)計(jì),看似是對(duì)數(shù)字鐘來(lái)進(jìn)行制作,實(shí)際上主角確是單片機(jī),整篇論文也是圍繞著單片機(jī)在數(shù)字鐘系統(tǒng)中的運(yùn)用來(lái)進(jìn)行研究的。如今的電子產(chǎn)品都逐漸在向著智能化,輕便,簡(jiǎn)潔等方面發(fā)展。單片機(jī)由于其內(nèi)部集成度高,體積小,高功

18、率,高性能等特點(diǎn)集于一身,使得它將會(huì)在以后成為各類電子產(chǎn)品主要的控制工具。伴隨著這種趨勢(shì)的發(fā)展,對(duì)單片機(jī)更深入的研究和學(xué)習(xí)都顯得很有必要了。通過(guò)基于單片機(jī)數(shù)字鐘的設(shè)計(jì)能使我們對(duì)51型單片機(jī)有更進(jìn)一步的了解,可以從中找到許多單片機(jī)的特性和優(yōu)點(diǎn)。</p><p>  單片機(jī)在各類電子產(chǎn)品中都有被使用,從航空航天事業(yè)到汽車上各種儀表的控制,從計(jì)算機(jī)的數(shù)據(jù)傳輸?shù)焦I(yè)自動(dòng)化過(guò)程的控制和數(shù)據(jù)處理,以及生活中廣泛使用的各種儲(chǔ)蓄

19、卡、銀行取款機(jī)等,這些都離不開(kāi)單片機(jī)工作。</p><p>  單片機(jī)的使用將會(huì)讓我們的生活更加的多姿多彩并且更加的智能化。所以,現(xiàn)在對(duì)單片機(jī)的研究和學(xué)習(xí)都是很有意義的,本次論文的宗旨也是希望通過(guò)電子鐘的設(shè)計(jì)能對(duì)單片機(jī)有更為直觀的認(rèn)識(shí)和體會(huì),最終從實(shí)踐中鞏固理論知識(shí)。</p><p>  1.2 國(guó)內(nèi)外研究的現(xiàn)狀</p><p>  1976年INTEL公司研制出

20、MCS-48系列8位單片機(jī),這標(biāo)志著第一臺(tái)單片機(jī)的問(wèn)世。在20世紀(jì)80年代初期,Intel公司在原有MCS-48系列單片機(jī)的基礎(chǔ)上,推出了MCS-51系列8位高檔單片機(jī)。MCS-51系列單片機(jī)無(wú)論是片內(nèi)I/O口功能,RAM容量和系統(tǒng)擴(kuò)展方面都有了很大的提高。</p><p>  隨著單片機(jī)的發(fā)展趨勢(shì),現(xiàn)在研究的基于單片機(jī)的數(shù)字鐘也擺脫了原有的功能單一,體積龐大,走時(shí)不精確的缺點(diǎn),逐漸變得低功耗,功能更為完善,體積

21、變小,成本也在降低?,F(xiàn)在,所見(jiàn)到的數(shù)字鐘已經(jīng)能夠顯示更多的信息,也增添了許多新的功用,如:電子的日歷,電子的鬧鐘,溫度計(jì),濕度計(jì)等。這些都和單片機(jī)的升級(jí)是分不開(kāi)的。</p><p><b>  1.3 數(shù)字鐘</b></p><p>  數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)“時(shí)”、“分”、“秒”計(jì)時(shí)的裝置,一般由振蕩器、分頻器、譯碼器等幾部分組成。其中, 振蕩器和分頻器組

22、成標(biāo)準(zhǔn)的秒信號(hào)發(fā)生器, 由不同進(jìn)制的計(jì)數(shù)器、譯碼器和顯示器組成計(jì)時(shí)系統(tǒng)。把秒信號(hào)送入計(jì)數(shù)器進(jìn)行計(jì)數(shù), 把累積的結(jié)果以“時(shí)”、“分”、“秒”的數(shù)字顯示出來(lái)?!靶r(shí)”的顯示由二十四進(jìn)制計(jì)數(shù)器、譯碼器和顯示器構(gòu)成,“分”、“秒”的顯示分別由六十進(jìn)制計(jì)數(shù)器、譯碼器和顯示器組成[1]。高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器產(chǎn)生原始的時(shí)鐘頻率,例如:電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)

23、字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差 [2]。</p><p>  在進(jìn)入電子時(shí)代后,相對(duì)于機(jī)械時(shí)鐘,更為直觀,準(zhǔn)確的電子鐘得到了廣大人群的青睞,無(wú)數(shù)大小不一,外觀不同的電子式時(shí)鐘充斥著大街小巷,這給人們的生活帶來(lái)了不小的便利。由于數(shù)字集成電路和石英晶體振蕩器的使用的日趨成熟與廣泛,使得數(shù)字鐘無(wú)論從使用壽命還是從精確等角度都將超過(guò)老式的時(shí)鐘?,F(xiàn)如今

24、,電子鐘的使用率是越來(lái)越高,它給人們帶來(lái)的便利也越來(lái)越多,使人們的生活也越來(lái)越離不開(kāi)它了。</p><p><b>  第二章 硬件簡(jiǎn)介</b></p><p>  2.1 單片機(jī)介紹</p><p>  2.1.1 單片機(jī)特點(diǎn)</p><p>  單片機(jī)具有體積小,價(jià)格便宜,可靠性高等特點(diǎn)。它把計(jì)算機(jī)的基本部件微

25、型化,并集成到一塊芯片上,通常片內(nèi)都含有中央處理器部件(CPU),數(shù)據(jù)存儲(chǔ)器(RAM),程序存儲(chǔ)器(ROM、EPROM、FLASH ROM)、還有定時(shí)器/計(jì)數(shù)器,總線如RS-232串行通信口、系統(tǒng)時(shí)鐘、中斷控制、系統(tǒng)總線等[3]。但在功能性方面比家用機(jī)要弱了不少,相對(duì)的價(jià)格也低廉了不少,適合大量的生產(chǎn)和使用。</p><p>  單片機(jī)從采用PMOS工藝逐漸發(fā)展到現(xiàn)在的CMOS半導(dǎo)體工藝技術(shù)。慢慢的提高了其集成度

26、,使其功耗大大的降低,工作電壓的范圍也在隨之加寬。</p><p>  伴隨著電子時(shí)代的到來(lái),我們身邊被各種電子產(chǎn)品充斥著,琳瑯滿目的電子儀器、儀表,洗衣機(jī)、電視機(jī)等,在其中都多少的加入了單片機(jī)的成分,除此外在當(dāng)今的社會(huì)對(duì)電子產(chǎn)品的要求逐漸向小,快,靈發(fā)展,由于其價(jià)格低廉,體積小等特點(diǎn),更加推動(dòng)了單片機(jī)將會(huì)在今后大有可為。</p><p>  單片機(jī)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,使用方便,實(shí)現(xiàn)功能模塊化,

27、更主要的是其更適合嵌入式系統(tǒng),所謂的嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)[4]。單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。這些優(yōu)勢(shì)都使單片機(jī)的使用更加廣泛。</p><p>  2.1.2 AT89C51介紹</p><p>  AT89C51如圖2.1所示,是一種帶4K字

28、節(jié)閃存可編程,可擦除只讀存儲(chǔ)器的低電壓、高性能CMOS 8位微處理器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。除此外,它還是一款單片封裝的微控制器,適合于許多要求高集成度、低成本的場(chǎng)合。</p><p>

29、;  圖2.1 AT89C51</p><p>  2.1.3 89C51各引腳功能</p><p>  VCC:用于電壓的提供</p><p><b>  GND:用于接地</b></p><p>  P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每個(gè)引腳可吸收8TTL門(mén)電流。當(dāng)P0口的管腳第一次寫(xiě)1時(shí),被定義為高

30、阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 </p><p>  P1口:P1口是個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1口的緩沖器能夠接收輸出4個(gè)TTL門(mén)電流。當(dāng)P1口的管腳被寫(xiě)入“1”,內(nèi)部上拉會(huì)為高,可被用作為輸入,當(dāng)P1口被外部下拉為低電平時(shí),輸出電流,由于內(nèi)

31、部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口將會(huì)作為第八位的地址來(lái)接收。</p><p>  P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位準(zhǔn)雙向口,P2口的緩沖器能接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)入“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并作為輸入時(shí),P2口的管腳會(huì)被外部拉低,將輸出電流。由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出

32、地址“1”時(shí),它將會(huì)利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。</p><p>  P3口:P3口是一個(gè)帶有內(nèi)部上拉電阻的8為準(zhǔn)雙向I/O口,且是個(gè)雙功能口。當(dāng)作為第一功能口使用時(shí),工作原理和P1,P2口差不多,但第二輸出功能線保持為高電平,使與非門(mén)N3對(duì)鎖存器輸出(Q端)暢通。 </p><p>  表2.1 P3口作為AT89C51的第

33、二功能</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p>  XTAL2:來(lái)自反向振蕩器的輸出。</p><p>  運(yùn)算器:實(shí)現(xiàn)4位、8位、16位數(shù)據(jù)完成算術(shù)和邏輯運(yùn)算。</p>&

34、lt;p>  累加器:8位的寄存器,其中精彩存放一個(gè)操作數(shù)、中間結(jié)果和運(yùn)算結(jié)果。</p><p>  控制器:計(jì)算機(jī)的控制指揮部件,使計(jì)算機(jī)的每個(gè)部件能協(xié)調(diào)工作。</p><p>  寄存器:用于存放程序和數(shù)據(jù)。</p><p>  中央處理器:MCS-51的CPU能處理8位二進(jìn)制數(shù)或代碼。</p><p>  定時(shí)器/計(jì)數(shù)器:8051

35、有2個(gè)16位的定時(shí)器/計(jì)數(shù)器,用于實(shí)現(xiàn)定時(shí)或計(jì)數(shù)的功能,并以其定時(shí)或計(jì)數(shù)的結(jié)果對(duì)計(jì)算機(jī)進(jìn)行控制。定時(shí)的時(shí)候靠?jī)?nèi)部分頻時(shí)鐘頻率計(jì)數(shù)實(shí)現(xiàn),做計(jì)數(shù)器時(shí),對(duì)P3.4(T0)或P3.5(T1)端口的低電平脈沖計(jì)數(shù)。</p><p>  中斷:MCS-51中共有5個(gè)中斷源,其中外中斷2個(gè),定時(shí)中斷2個(gè),串行中斷1個(gè),全部中斷分為高級(jí)和低級(jí)共兩個(gè)優(yōu)先級(jí)別。</p><p>  2.1.4 計(jì)數(shù)器/定時(shí)

36、器原理</p><p>  在51單片機(jī)中有2個(gè)16位的定時(shí)器/計(jì)數(shù)器分別是T0和T1它由加法計(jì)數(shù)器、方式寄存器TMOD、控制寄存器TCON等組成。方式寄存器用于設(shè)定定時(shí)計(jì)數(shù)器T0和T1的工作方式,控制寄存器用于對(duì)定時(shí)計(jì)數(shù)器啟動(dòng)、停止進(jìn)行控制。每個(gè)定時(shí)計(jì)數(shù)器既可以對(duì)系統(tǒng)時(shí)鐘計(jì)數(shù)實(shí)現(xiàn)定時(shí),也可以外部信號(hào)計(jì)數(shù)實(shí)現(xiàn)計(jì)數(shù)功能再通過(guò)編程設(shè)定來(lái)實(shí)現(xiàn)。每個(gè)定時(shí)計(jì)數(shù)器都有多種工作方式,其中T0有四種工作方式,T1有三種工作方式,

37、T2有三種工作方式。通過(guò)編程可設(shè)定工作于某種方式。四種工作方式為:13位定時(shí)\計(jì)數(shù)器、16位定時(shí)\計(jì)數(shù)器、8位自動(dòng)重置定時(shí)\計(jì)數(shù)器、兩個(gè)8位定時(shí)\計(jì)數(shù)器(只有T0有)每一個(gè)定時(shí)計(jì)數(shù)器定時(shí)計(jì)數(shù)時(shí)間到時(shí)產(chǎn)生溢出,使相應(yīng)的溢出位置位,溢出可通過(guò)查詢或中斷方式處理。</p><p>  2.2 LED顯示器</p><p>  本次設(shè)計(jì)的數(shù)字鐘將采用7段LED顯示。它的內(nèi)部由7個(gè)條形發(fā)光二極管和

38、一個(gè)圓點(diǎn)發(fā)光二極管組成,可以顯示從0-9等10個(gè)數(shù)字。</p><p>  LED即發(fā)光二極管,英文全稱為L(zhǎng)ight Emitting Diode。單獨(dú)的發(fā)光二極管便是一個(gè)最簡(jiǎn)單的LED,7段數(shù)碼管是由若干個(gè)發(fā)光二極管組成的顯示字段的顯示器件,一般簡(jiǎn)稱為數(shù)碼管。</p><p>  在7段LED中通常分為靜態(tài)顯示原理和動(dòng)態(tài)顯示原理,靜態(tài)顯示是指當(dāng)數(shù)碼管顯示某個(gè)字符的時(shí)候,相應(yīng)的字段的發(fā)光二

39、極管恒定的導(dǎo)通或截至,燈的亮、滅不變,在這種情況下,多個(gè)LED是同時(shí)顯示的。</p><p>  動(dòng)態(tài)顯示原理是指逐個(gè)循環(huán)點(diǎn)亮各位顯示器,雖然在任一時(shí)刻只有一位顯示器被點(diǎn)亮,但由于時(shí)間間隔較短,且人眼具有視覺(jué)暫留效應(yīng),因此看起來(lái)與全部顯示器一次持續(xù)點(diǎn)亮完全一樣。為了實(shí)現(xiàn)LED動(dòng)態(tài)掃描,除了要給顯示器提供段(字形代碼)的輸入,</p><p>  還要對(duì)顯示器加位選擇控制,即段選和位選[5]

40、。</p><p>  程序中采用掃描顯示的方式,即在同一時(shí)刻,只使用到一個(gè)LED顯示數(shù)據(jù)。通過(guò)為共陰極LED或是共陽(yáng)極LED的公共引腳引入低電平或高電平,從而選擇某個(gè)LED顯示。如此循環(huán),使每個(gè)LED顯示預(yù)先設(shè)定好的應(yīng)顯示的數(shù)據(jù),并進(jìn)行適當(dāng)?shù)难訒r(shí),形成視覺(jué)暫留效果。這樣便可以達(dá)到動(dòng)態(tài)顯示的目的。 </p><p>  LED數(shù)碼有共陽(yáng)極如圖2.2所示,和共陰極如圖2.3所示兩種,當(dāng)把這

41、些LED發(fā)光二極管的正極接到一起(拼成一個(gè) “8”字的形狀再加上一個(gè)小數(shù)點(diǎn)“dp”)而作為一個(gè)引腳,就叫共陽(yáng)的,相反的,負(fù)極接到一起,就叫共陰的。當(dāng)應(yīng)用時(shí),這個(gè)引腳就分別的接VCC和GND。把多個(gè)這樣的數(shù)碼管字裝在一起就成了多位的數(shù)碼管了。</p><p>  本次設(shè)計(jì)采用的是6位7段LED共陽(yáng)數(shù)碼管,通過(guò)動(dòng)態(tài)顯示來(lái)完成數(shù)字鐘系統(tǒng)的顯示模塊,通常的7段顯示器的內(nèi)部有8個(gè)發(fā)光二極管,在應(yīng)用時(shí)將公共接地線GND上,當(dāng)

42、某一字段發(fā)光二極管的陽(yáng)極為低電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陽(yáng)極為高電平時(shí)就會(huì)熄滅。通過(guò)軟件編程的方式來(lái)控制發(fā)光二極管陽(yáng)極的電平狀況,控制數(shù)碼管的相應(yīng)字段的亮和滅。</p><p><b>  2.3 蜂鳴器</b></p><p>  蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,被廣泛的用于打印機(jī)、報(bào)警器、定時(shí)器等產(chǎn)品中。蜂鳴器分為有源蜂鳴器和無(wú)源蜂

43、鳴器,有源蜂鳴器直接接</p><p>  上額定電源就可連續(xù)發(fā)聲,而無(wú)源蜂鳴器則和電磁揚(yáng)聲器一樣,需要接在音頻輸出電路中才能發(fā)聲。</p><p>  蜂鳴器的工作電流一般比較大,導(dǎo)致單片機(jī)的I/O 口是無(wú)法直接驅(qū)動(dòng)的,所以要利用放大電路來(lái)驅(qū)動(dòng),一般使用三極管來(lái)放大電流就可以了。此設(shè)計(jì)采用的是有源蜂鳴器,這樣可以簡(jiǎn)化軟件的設(shè)計(jì),只要將其的倆個(gè)引腳接上工作電壓便可發(fā)聲,聲音的頻譜范圍在幾十

44、到幾千HZ。蜂鳴器接著P1.7的引腳上,該腳接上上拉電阻,并由三極管作放大,當(dāng)設(shè)定的時(shí)間到達(dá)時(shí)P1.7給出高電平使三極管導(dǎo)通,蜂鳴器通電后就發(fā)出有節(jié)奏的提示音,未到達(dá)時(shí)間,P1.7給出低電平,蜂鳴器不發(fā)音[6]。</p><p><b>  2.4 鍵盤(pán) </b></p><p>  設(shè)計(jì)中能采取兩種鍵盤(pán)方式,一種是用采用矩陣式的鍵盤(pán),在矩陣式鍵盤(pán)中,每條水平線和垂

45、直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接,在需要的鍵數(shù)比較多時(shí),采用矩陣法來(lái)做鍵盤(pán)是合理的。</p><p>  另一種方式采用獨(dú)立式鍵盤(pán)。獨(dú)立式按鍵是直接用I/O口線構(gòu)成的單個(gè)按鍵電路,其特點(diǎn)是每個(gè)按鍵單獨(dú)占用一根I/O口線,每個(gè)按鍵的工作不會(huì)影響其它I/O口線的狀態(tài)。但當(dāng)所需按鍵數(shù)量多,會(huì)占用過(guò)多的I/O口線。本次設(shè)計(jì)因?yàn)樗玫降逆I的數(shù)量不多,只需要用到5個(gè)按鍵,所以采用第二種獨(dú)立式的鍵盤(pán)。</

46、p><p><b>  第三章 硬件設(shè)計(jì)</b></p><p><b>  3.1 設(shè)計(jì)介紹</b></p><p>  本次設(shè)計(jì)的數(shù)字鐘如圖3.1所示,是以AT89C51為主要控制單元,在硬件電路采用的是P0口作為6位LED數(shù)碼管的驅(qū)動(dòng)接口,這是由于P0口輸出驅(qū)動(dòng)電路工作處于開(kāi)漏狀態(tài),它的驅(qū)動(dòng)能力很強(qiáng),并接入芯片74L

47、S470來(lái)驅(qū)動(dòng)數(shù)碼管的段碼,用三極管PNP來(lái)驅(qū)動(dòng)數(shù)碼管的位碼,所以只需要外接上上拉電阻便能把LED數(shù)碼管點(diǎn)亮。在6位LED數(shù)碼管顯示時(shí),6個(gè)LED顯示器共用一個(gè)8位的I/O口,6位LED數(shù)碼管的位選線分別由相應(yīng)的P2.0~P2.5來(lái)控制,而將其相應(yīng)的段選線并聯(lián)在一起,由一個(gè)8位的I/O口控制。</p><p>  圖3.1 硬件連接圖</p><p>  時(shí)鐘振蕩電路接在XTAL1和XT

48、AL2上,這兩個(gè)引腳為反向放大器的輸入和輸出。這種反向放大器可以連接大片的內(nèi)部振蕩器,除此外,還能連接石英振蕩器和陶瓷振蕩器,不能接外部時(shí)鐘源驅(qū)動(dòng)。分頻器接收到晶體振蕩器產(chǎn)生的脈沖信號(hào)送到后,分頻器將振蕩器輸出的脈沖信號(hào)分成每秒鐘為一次(1HZ)的方波作為秒脈沖,秒脈沖信號(hào)被送入計(jì)數(shù)器來(lái)進(jìn)行計(jì)數(shù),并把累計(jì)的結(jié)果通過(guò)74LS47譯碼器譯碼為十進(jìn)制數(shù)字并且分別以 “時(shí)鐘”、“分鐘”、“秒鐘”顯示到7段數(shù)碼管上。 “秒鐘”位和“分鐘”位的計(jì)數(shù)

49、均由兩級(jí)計(jì)數(shù)器組成的六十進(jìn)制計(jì)數(shù)電路實(shí)現(xiàn)?!靶r(shí)”位的計(jì)數(shù)由兩級(jí)計(jì)數(shù)器組成的24進(jìn)制計(jì)數(shù)電路來(lái)實(shí)現(xiàn)。振蕩器是計(jì)時(shí)器的重要組成部分。它主要用來(lái)產(chǎn)生時(shí)間標(biāo)準(zhǔn)信號(hào),經(jīng)分頻后得到秒時(shí)間脈沖。因此數(shù)字鐘的精度取決于石英晶體振蕩器。從數(shù)字鐘的精度考慮,晶振頻率越高,數(shù)字鐘的計(jì)時(shí)準(zhǔn)確度就愈高。 </p><p>  此電子鐘的時(shí)間以24小時(shí)為一個(gè)時(shí)間周期,顯示時(shí)、分、秒,有校時(shí)的功能,可以分別對(duì)小時(shí)和分鐘進(jìn)行校時(shí),使其到標(biāo)準(zhǔn)時(shí)

50、間,可以設(shè)置鬧鈴,到達(dá)所設(shè)定的時(shí)間會(huì)通過(guò)蜂鳴器提醒。</p><p>  整個(gè)設(shè)計(jì)以AT89C51單片機(jī)為核心,配上其他外圍硬件電路,用匯編語(yǔ)言設(shè)計(jì)的程序來(lái)控制實(shí)現(xiàn)。設(shè)計(jì)將根據(jù)C51單片機(jī)的外圍接口的特點(diǎn)擴(kuò)展相應(yīng)的硬件電路。本文主要介紹用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)電子時(shí)鐘的方法,本設(shè)計(jì)由單片機(jī)AT89C51芯片和LED數(shù)碼管為核心,輔以必要的電路,構(gòu)成了一個(gè)單片機(jī)電子時(shí)鐘。</p><p&

51、gt;  利用鍵盤(pán)對(duì)數(shù)字鐘進(jìn)行校時(shí)和鬧鐘的設(shè)定,在設(shè)計(jì)中有5個(gè)鍵盤(pán)分別是從S0~S4,這幾個(gè)按鍵是我們對(duì)整個(gè)數(shù)字鐘進(jìn)行設(shè)置的唯一途徑。它們各是用于鬧鐘設(shè)定,退出和進(jìn)入鬧鐘設(shè)定,鬧鐘小時(shí)部分,鬧鐘分鐘部分,時(shí)鐘的小時(shí)和分鐘部分。</p><p>  該電子時(shí)鐘由AT89C51,鍵盤(pán),7段數(shù)碼管等構(gòu)成,采用晶振電路作為驅(qū)動(dòng)電路,由延時(shí)程序和循環(huán)程序產(chǎn)生的1秒定時(shí),達(dá)到時(shí)、分、秒的計(jì)時(shí),60秒為1分鐘,60分鐘為1小時(shí)

52、,滿24小時(shí)為一天。</p><p>  本次設(shè)計(jì)的方案完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。原理為:在單片機(jī)內(nèi)部存儲(chǔ)器設(shè)三個(gè)字節(jié)分別存放時(shí)鐘的時(shí)、分、秒信息。利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn)1秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器內(nèi)相應(yīng)的秒的值加1;若秒的值達(dá)到60,則將其清0,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時(shí)字節(jié)值加1;若時(shí)值達(dá)到24,則將時(shí)字節(jié)清0。該方案具有硬件電路簡(jiǎn)單的特點(diǎn)。但由于每次執(zhí)行程序時(shí),定時(shí)

53、器都要重新賦初值,所以該時(shí)鐘精度不高。而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)鐘將不工作。</p><p><b>  3.2 硬件電路</b></p><p>  3.2.1 時(shí)鐘振蕩電路設(shè)計(jì)</p><p>  時(shí)鐘電路在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘有兩方面的含義:一

54、是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振的作用是產(chǎn)生時(shí)間信號(hào),數(shù)字鐘的頻率和確保穩(wěn)定度,晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時(shí)時(shí)鐘,即定時(shí)時(shí)間[7]。</p><p>  本設(shè)計(jì)的時(shí)鐘電路采用的是內(nèi)部時(shí)鐘方式,既是在XTAL1和XTAL2 兩端接上晶體或陶瓷振蕩器。這次的設(shè)計(jì)中將采用在XTAL1和XTAL2兩端跨接12MHZ晶體振蕩器,內(nèi)部振蕩電路就產(chǎn)生自激

55、振蕩。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶振能在1.2MHZ~12MHZ之間選擇,電容的大小在30PF左右,電容的大小可起頻率微調(diào)的作用。</p><p>  在AT89C51芯片內(nèi)部有一個(gè)高增益反向放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。而在芯片內(nèi)部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過(guò)觸發(fā)器進(jìn)行二分頻

56、之后,才成為單片機(jī)的時(shí)鐘脈沖信號(hào)。</p><p>  振蕩電路如圖3.2所示,由石英晶體、微調(diào)電容與集成門(mén)電路等元器件構(gòu)成。C1是溫度特性校正電容,一般取20-40PF, 電容C2中頻微調(diào)電容,取30PF, 電容C1、C2與晶體共構(gòu)成Π網(wǎng)絡(luò),完成正反饋選頻。數(shù)字鐘的秒信號(hào)是利用AT89C51單片機(jī)內(nèi)部定時(shí)器T0產(chǎn)生的。晶振的頻率為12MHZ使得T0的最大定時(shí)時(shí)間遠(yuǎn)遠(yuǎn)的小于1S,因此,在設(shè)計(jì)時(shí)采用了硬件和軟件的相

57、結(jié)合在一起的方法,通過(guò)計(jì)數(shù)器T0產(chǎn)生0.1S的時(shí)間基本信號(hào),然后再利用程序進(jìn)行計(jì)數(shù),從而產(chǎn)生1S的時(shí)間信號(hào)。本次設(shè)計(jì),定時(shí)器/計(jì)數(shù)器的T0采用了中斷方式。當(dāng)定時(shí)的時(shí)間到了后,定時(shí)器向CPU發(fā)出中斷請(qǐng)求,CPU相應(yīng)了中斷后轉(zhuǎn)入中斷服務(wù),在T0的中斷服務(wù)程序中實(shí)現(xiàn)時(shí)、分鐘、秒鐘的累加。每產(chǎn)生一次中斷,0.1S時(shí)基單元的內(nèi)容加1,當(dāng)其等于10的時(shí)候,便產(chǎn)生1S的信號(hào),使秒計(jì)數(shù)單元的內(nèi)容加1,并將0.1S時(shí)基單元的內(nèi)容清0;當(dāng)秒的計(jì)數(shù)單元計(jì)滿了

58、60S后,向分計(jì)數(shù)單元進(jìn)位,使分的計(jì)數(shù)單元中的內(nèi)容加1,再將秒計(jì)數(shù)單元的內(nèi)容清0;當(dāng)計(jì)滿60后,再向時(shí)計(jì)數(shù)單元進(jìn)位,時(shí)時(shí)計(jì)數(shù)單元中的內(nèi)容加1,并將分計(jì)時(shí)單元中的內(nèi)容清0;時(shí)計(jì)數(shù)單元在計(jì)到24后清0。在</p><p>  圖3.2 此次設(shè)計(jì)時(shí)鐘電路</p><p>  經(jīng)過(guò)分頻器得到的1HZ的秒脈沖信號(hào)被送到計(jì)時(shí)電路,計(jì)時(shí)電路由六級(jí)計(jì)數(shù)器構(gòu)成。完成“時(shí)”、“分”、“秒”計(jì)數(shù)。其中 “秒”

59、、“分”計(jì)數(shù)均為六十進(jìn)制,“時(shí)”為二十四進(jìn)制。由于集成電路的發(fā)展,人們不再用觸發(fā)器去設(shè)計(jì)這些計(jì)數(shù)電路,而是使用中規(guī)模計(jì)數(shù)器,采用反饋歸零的方法去實(shí)現(xiàn),即當(dāng)計(jì)數(shù)狀態(tài)達(dá)到所需模值后,經(jīng)門(mén)電路或觸發(fā)器譯碼,反饋產(chǎn)生“復(fù)位”脈沖,使計(jì)數(shù)器清零,然后重新進(jìn)行下一個(gè)循環(huán)。</p><p>  3.2.2 復(fù)位電路設(shè)計(jì)</p><p>  為確保微機(jī)系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的一部分,

60、復(fù)位電路的第一功能是上電復(fù)位,一般微機(jī)電路正常工作需要供電電源為5V±5%,即4.75~5.25V。由于微機(jī)電路是時(shí)序數(shù)字電路,它需要穩(wěn)定的時(shí)鐘信號(hào),因此在電源上電時(shí),只有,當(dāng)VCC超過(guò)4.75V低于5.25V以及晶體振蕩器穩(wěn)定工作時(shí),復(fù)位信號(hào)才被撤除,微機(jī)電路開(kāi)始正常工作。</p><p>  通常復(fù)位電路應(yīng)具有上電自復(fù)位和按鈕復(fù)位功能,以MCS-51單片機(jī)為例,復(fù)位脈沖的高電平寬度應(yīng)大于兩個(gè)機(jī)器周期

61、,若系統(tǒng)采用12MHZ晶振,則一個(gè)機(jī)器周期為1µs,那么復(fù)位脈沖至少應(yīng)為2µs,但在實(shí)際應(yīng)用系統(tǒng)中還要考慮到電源的上升時(shí)間和震蕩的起振時(shí)間。若系統(tǒng)電源上升時(shí)間為10ms,振蕩器起振時(shí)間和震蕩頻率有關(guān),10MHZ時(shí)為1ms,1MHZ時(shí)為10ms[8] 。</p><p>  加電自動(dòng)復(fù)位是加電瞬間,RST端的的電位與Vcc相同,隨著RC電路充電電流的減小,RST端的電位逐漸下降。只要RST端保持

62、10ms以上的高電平就能使MCS-51單片機(jī)有效的復(fù)位。復(fù)位電路中的RC參數(shù)通常由實(shí)驗(yàn)調(diào)。當(dāng)振蕩頻率用12MHZ時(shí),C選22µF、R選2kΩ便能可靠的實(shí)現(xiàn)加電自動(dòng)復(fù)位。</p><p>  復(fù)位電路如圖3.3所示,復(fù)位電路主要是使整個(gè)設(shè)計(jì)初始化,其功能是將程序計(jì)數(shù)器PC的內(nèi)容初始化為00000H,使單片機(jī)從0000H單元開(kāi)始執(zhí)行,并且使CPU及其他的功能部件都從一個(gè)確定的初始狀態(tài)開(kāi)始工作。除了系統(tǒng)上電時(shí)

63、需要進(jìn)行正常的初始化外,當(dāng)數(shù)字鐘系統(tǒng)出現(xiàn)錯(cuò)誤或故障時(shí)也可以通過(guò)復(fù)位系統(tǒng)來(lái)從新啟動(dòng)數(shù)字鐘。當(dāng)復(fù)位后,PC=0000H,SP=07H,從P0-P3為0FFH。在數(shù)字鐘系統(tǒng)中使用的是上電復(fù)位,通過(guò)電容充電來(lái)實(shí)現(xiàn)。當(dāng)電源Vcc接通時(shí)只要電壓上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。</p><p>  圖3.3 復(fù)位電路</p><p>  3.2.3 鍵盤(pán)電路設(shè)計(jì)</p>

64、<p>  鍵盤(pán)如圖3.4所示,在電路中的4個(gè)按鍵S1、S2、S3、S4用于對(duì)時(shí)鐘進(jìn)行修改和鬧鐘設(shè)置,當(dāng)時(shí)鐘的1鍵被按下管就會(huì)顯示鬧鐘,再松開(kāi)后顯示當(dāng)前時(shí)間;當(dāng)按下S4鍵后進(jìn)入時(shí)鐘修改模式,就能對(duì)時(shí)間進(jìn)行調(diào)整,再按下S4鍵,時(shí)間的小時(shí)就能加1,按S2后分鐘加1,當(dāng)調(diào)整結(jié)束后按下S1就恢復(fù)正常顯示;按下S3鍵進(jìn)入鬧鐘修改的模式,這時(shí)就能設(shè)定鬧鐘了,再按S3鍵鬧鐘的小時(shí)部分加1,按S2鍵分鐘部分加1,在調(diào)整結(jié)束后按下S1恢復(fù)正常

65、顯示。分別接在單片機(jī)的從P1.0到P1.3口,還有一個(gè)S0的鍵盤(pán)按鍵是用于進(jìn)入和退出鬧鐘的。</p><p>  圖3.4 此次設(shè)計(jì)按鍵</p><p>  3.2.4 蜂鳴器電路設(shè)計(jì)</p><p>  此次的設(shè)計(jì)是數(shù)字鬧鐘,所以在整個(gè)系統(tǒng)中就需要一個(gè)部件,當(dāng)設(shè)定的時(shí)間到時(shí)要有個(gè)聲音提醒信號(hào)的產(chǎn)生,蜂鳴器就是能起到這個(gè)作用的部件,我們這次的設(shè)計(jì)采用的是壓電式蜂

66、鳴器如圖3.5所示,在其工作時(shí)需要10MA的驅(qū)動(dòng)電流。蜂鳴器的一端接入單片機(jī)的P1.7口,另外的一端接上+5V的高電平,當(dāng)P1.7的引腳上為低電平時(shí)蜂鳴器就不會(huì)發(fā)出聲音了。當(dāng)設(shè)定的時(shí)間到了的時(shí)候,單片機(jī)中的計(jì)時(shí)器就會(huì)發(fā)出信號(hào)給CPU,CPU發(fā)出響應(yīng),使P1.7為高電平,就開(kāi)始發(fā)聲。</p><p><b>  圖3.5 蜂鳴器</b></p><p>  3.2.5

67、 顯示電路設(shè)計(jì)</p><p>  LED點(diǎn)陣顯示根據(jù)應(yīng)用領(lǐng)域和要求不同可以分為很多種。常用的足采用單片機(jī)為控制核心的LED點(diǎn)陣顯示,顯示的數(shù)據(jù)預(yù)先存貯在ROM中,當(dāng)程序運(yùn)行時(shí),單片機(jī)負(fù)責(zé)依序?qū)OM中存儲(chǔ)的數(shù)據(jù)進(jìn)行讀取、傳輸和顯示。這種方式優(yōu)點(diǎn)在于廉價(jià)、實(shí)現(xiàn)簡(jiǎn)單,適用于顯示字符較少或顯示畫(huà)面不大的場(chǎng)合,并且很少更改顯示內(nèi)容。但足當(dāng)顯示廁面大,顯示內(nèi)容多且較復(fù)雜,光靠單片機(jī)處理不過(guò)來(lái),或者用戶希望能隨時(shí)改變顯示

68、內(nèi)容或畫(huà)面時(shí),就需要有更加靈活的LED顯示系統(tǒng)[9]。</p><p>  這次的數(shù)字鐘設(shè)計(jì)使用的是7段的共陽(yáng)極數(shù)碼管來(lái)顯示如圖3.6所示,由于要顯示“時(shí)”,“分”和“秒”,要使用6位的數(shù)碼管,再采用動(dòng)態(tài)顯示來(lái)驅(qū)動(dòng),當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM 端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位就顯示出字形,沒(méi)有選通

69、的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的COM 端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O 端口,而且功耗更低。在6位的數(shù)碼管中,6個(gè)數(shù)碼管的顯示筆畫(huà)從“a”到“dp”的同名端都是連在一起的,當(dāng)我們的程序從P0口輸出字型的時(shí)候,所有的數(shù)碼管都會(huì)在同時(shí)接到相同的字型碼信號(hào)。為了避免6個(gè)數(shù)碼管都顯示同一個(gè)數(shù)字的情況出現(xiàn),就是我們采用動(dòng)態(tài)顯示驅(qū)動(dòng)的最主要原因。</p&g

70、t;<p>  6個(gè)數(shù)碼管逐個(gè)顯示,但每位的點(diǎn)亮?xí)r間極短(大約在1ms),要小于人體視覺(jué)的暫留時(shí)間0.1s,所以我們就不會(huì)產(chǎn)生閃爍的感覺(jué),能夠完整的清楚的看到數(shù)碼管上的內(nèi)容。</p><p>  以上是簡(jiǎn)單的介紹了下整個(gè)數(shù)字鐘電路中各模塊的功能和所工作的情況,我們只要將各部分與單片機(jī)的各個(gè)引腳連在一起,再將匯編程序輸入進(jìn)去,就能做出了個(gè)完整數(shù)</p><p><b>

71、;  字鐘系統(tǒng)。</b></p><p>  圖3.6 7段數(shù)碼管顯示 </p><p>  3.2.6 譯碼電路</p><p>  為了區(qū)分一系列不同的事物,將其中的每一個(gè)事物用一個(gè)二進(jìn)制代碼表示的過(guò)程稱為編碼。實(shí)現(xiàn)編碼功能的電路稱為譯碼器。在邏輯電路中,信號(hào)都是以高、低電平的形式給出的。因此,編碼器的邏輯功能就是把輸入的每一個(gè)高、低電平信號(hào)編成

72、一個(gè)對(duì)應(yīng)的二進(jìn)制代碼[10]。它可以將輸入的代碼狀態(tài)轉(zhuǎn)換成相應(yīng)的輸出信號(hào),再以高或者低電平的形式在各自的輸出端口用于送出,以表示CPU所發(fā)出的信息。我們要通過(guò)譯碼電路將單片機(jī)中所需顯示的信號(hào)轉(zhuǎn)成7段數(shù)碼管字型的輸出信號(hào),再由數(shù)碼管將它們顯示出來(lái),以便我們了解。</p><p>  此次設(shè)計(jì)中,所采用的譯碼器為74LS47如圖3.7所示,它是輸出低電平有效的7段字型譯碼器,并且可以用于驅(qū)動(dòng)共陽(yáng)極數(shù)管,我們?cè)僭谄渲屑?/p>

73、以電阻,以防電流過(guò)大將數(shù)碼管燒壞,構(gòu)成譯碼電路。 </p><p>  圖3.7 譯碼器電路</p><p><b>  第四章 軟件程序</b></p><p>  4.1 程序流程圖</p><p>  如圖4.1所示,程序開(kāi)始后定義程序塊的起始地址,接著初始化程序,對(duì)各部件進(jìn)</p><p

74、>  行初始化,定義時(shí)鐘和鬧鐘的小時(shí)和分鐘。給計(jì)數(shù)器賦初值。啟動(dòng)T016位計(jì)數(shù)器。接著是主程序的編寫(xiě)S0鍵用于控制時(shí)鐘和鬧鐘界面的轉(zhuǎn)換,如果S0閉合就利用跳轉(zhuǎn)指令進(jìn)入鬧鐘的顯示,斷開(kāi)就是時(shí)鐘的界面。當(dāng)S4鍵按下后就會(huì)進(jìn)入到時(shí)間的設(shè)置,再按一下小時(shí)數(shù)字就能加1,當(dāng)斷開(kāi)的時(shí)候,CPU就會(huì)檢查S3是否是閉合的,如果是就進(jìn)入到鬧鐘的設(shè)置,顯示鬧鐘的界面,再按下一次就能加1。S2鍵用于修改鬧鐘和時(shí)鐘的分鐘,當(dāng)S2按下后,分鐘就能加1。最后當(dāng)

75、設(shè)置完成后就還可以通過(guò)按下S1來(lái)重新回到時(shí)鐘的顯示狀態(tài)。</p><p>  圖4.1 程序流程圖</p><p><b>  4.2 匯編語(yǔ)言</b></p><p>  匯編語(yǔ)言是一種面向CPU指令系統(tǒng)的程序設(shè)計(jì)語(yǔ)言,它采用指令系統(tǒng)的助記符來(lái)表示操作碼和操作數(shù),用符號(hào)地址表示操作數(shù)地址,因而易記、易讀、易修改,給匯編帶來(lái)了很大方便。&l

76、t;/p><p>  匯編語(yǔ)言源程序在輸入計(jì)算機(jī)后,需要將其翻譯成目標(biāo)程序,計(jì)算機(jī)才能執(zhí)行相應(yīng)指令,這個(gè)翻譯的過(guò)程稱為匯編,完成匯編任務(wù)的程序稱為匯編程序[11]。</p><p>  匯編語(yǔ)言比機(jī)器語(yǔ)言易于讀寫(xiě)、調(diào)試和修改,同時(shí)具有機(jī)器語(yǔ)言全部?jī)?yōu)點(diǎn)。但在編寫(xiě)復(fù)雜程序時(shí),相對(duì)高級(jí)語(yǔ)言代碼量較大,而且匯編語(yǔ)言依賴于具體的處理器體系結(jié)構(gòu),不能通用,因此不能直接在不同處理器體系結(jié)構(gòu)之間移植。<

77、/p><p><b>  匯編語(yǔ)言的特點(diǎn):</b></p><p>  面向機(jī)器的低級(jí)語(yǔ)言,通常是為特定的計(jì)算機(jī)或系列計(jì)算機(jī)專門(mén)設(shè)計(jì)的。</p><p>  保持了機(jī)器語(yǔ)言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷的特點(diǎn)。</p><p>  可有效地訪問(wèn)、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤(pán)、存儲(chǔ)器、CPU、I/O端口等。</p>

78、<p>  目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語(yǔ)言。</p><p>  經(jīng)常與高級(jí)語(yǔ)言配合使用,應(yīng)用十分廣泛。 </p><p><b>  參考文獻(xiàn)</b></p><p> ?。?] 馬麗平,肖淵.基于Proteus的數(shù)字鐘設(shè)計(jì)及仿真[J].西安工程大學(xué)學(xué)報(bào),2009,23(3):59~62.</p&g

79、t;<p>  [2]趙淑范.數(shù)字電子鐘的設(shè)計(jì)[J].長(zhǎng)春大學(xué)學(xué)報(bào),2004,14(4):36~39.</p><p> ?。?]蔡美琴.MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用[M].北京:高等教育出版社,2004.1~18.</p><p> ?。?]劉立新,關(guān)永. 嵌入式移動(dòng)數(shù)據(jù)庫(kù)研究[J].微計(jì)算機(jī)信息,2006,22(2):85~87.</p><p&

80、gt; ?。?]張芳.基于AT89S52單片機(jī)數(shù)字鐘的實(shí)現(xiàn)[J].軟件導(dǎo)刊,2008,7(10):120~122.</p><p> ?。?]劉盛雄,周奇.基于單片機(jī)的數(shù)字式電子鐘的設(shè)計(jì)與制作[J].重慶工學(xué)院學(xué)報(bào),2006,20(8):90~92.</p><p> ?。?]劉春梅.基于單片機(jī)的車載時(shí)鐘控制系統(tǒng)研究[D].大連:大連理工大學(xué),2008.</p><p&

81、gt; ?。?]尉廣軍,郝永生.單片機(jī)系統(tǒng)中復(fù)位電路的可靠性分析[J].儀器儀表學(xué)報(bào),2002,23(z2)577~578..</p><p> ?。?]陳朝俊. 基于無(wú)線電傳輸?shù)腖ED點(diǎn)陣屏幕顯示系統(tǒng)[D].貴州:貴州大學(xué).2008. </p><p> ?。?0]楊魯平.數(shù)字電子技術(shù)基礎(chǔ)[M].四川:電子科技大學(xué)出版社,2009.63~64. </p><p>

82、; ?。?1]荊淑霞.微機(jī)原理與匯編語(yǔ)言程序設(shè)計(jì)[M].北京:中國(guó)水力水電出版社,2005.133~134.</p><p><b>  附錄</b></p><p>  附錄1 數(shù)字鐘硬件電路圖</p><p><b>  附錄2 程序</b></p><p>  ORG 0000H

83、 偽指令 定義程序塊起始地址</p><p>  LJMP START 跳轉(zhuǎn) 開(kāi)始</p><p><b>  ORG 000BH</b></p><p><b>  LJMP TIME</b></p><p>  ;

84、********初始化*********</p><p>  START: MOV SP, #50H SP指令指針寄存器</p><p>  MOV 20H,#00H 定義秒</p><p>  MOV 21H,#00H 定義分</p><p>  MOV 22H,#

85、00H 定義時(shí)</p><p>  MOV 23H,#01H 定義鬧鐘分鐘</p><p>  MOV 24H,#01H 定義鬧鐘小時(shí)</p><p>  MOV 25H,#00H</p><p>  MOV 26H,#01H</p><p

86、>  MOV 30H,#00H </p><p>  MOV 31H,#00H</p><p>  MOV 32H,#00H </p><p>  MOV 33H,#00H</p><p>  MOV 34H,#00H </p><p>

87、  MOV 35H,#00H</p><p>  MOV 36H,#01H</p><p>  MOV 37H,#00H</p><p>  MOV 38H,#01H</p><p>  MOV 39H,#00H</p><p>  MOV 50H,#00H 按鍵次數(shù)</p><

88、;p>  MOV TMOD,#01H 16位計(jì)數(shù)器</p><p>  MOV TH0, #03CH 賦初值</p><p>  MOV TL0, #0B0H</p><p>  MOV IE, #87H 中斷允許 IE功能寄存器

89、 </p><p>  SETB TR0 啟動(dòng)T0 置位1</p><p>  MOV R2, #14H</p><p>  MOV P2, #0FFH</p><p>  ;*********主程序**********</p><p>  MAI

90、N: JB P1.4, GB </p><p>  LCALL TIMEPRO 調(diào)用鬧鐘判斷 </p><p>  GB: LCALL DISPLAY1 調(diào)用時(shí)間顯示</p><p>  JB P1.3,M1 P1.3=1時(shí)轉(zhuǎn)移 S4沒(méi)有按下</p><p>  LCAL

91、L SETTIME 調(diào)用SETTIME調(diào)時(shí)子程序</p><p><b>  LJMP MAIN</b></p><p>  M1: JB P1.2,M2 P1.2=1時(shí)轉(zhuǎn)移   S3</p><p>  LCALL SETATIME 調(diào)用SETATIM

92、E子程序 </p><p><b>  LJMP MAIN</b></p><p>  M2: JB P1.0,M4 P1.0=1時(shí)轉(zhuǎn)移 S1</p><p>  LCALL LOOKATIME 調(diào)用LOOKATIME顯示鬧鐘子程序</p><p>  M4

93、: LJMP MAIN</p><p>  ;*********延時(shí)子程序********</p><p>  DELAY: MOV R4,#030H</p><p>  DL00: MOV R5,#0FFH</p><p>  DL11: MOV R6,#9H</p><p>  DL12:

94、 DJNZ R6,DL12</p><p>  DJNZ R5,DL11</p><p>  DJNZ R4,DL00</p><p>  RET 無(wú)參數(shù)返回</p><p>  ;***********時(shí)間調(diào)整*******</p><p>  SETTIME:

95、 設(shè)置時(shí)間</p><p>  L0: LCALL DISPLAY1</p><p>  MM1: JB P1.3,L1 P1.3=1時(shí)轉(zhuǎn)移 </p><p>  MOV C, P1.3 </p><p><b>  JC MM1</b>&l

96、t;/p><p>  LCALL DELAY1 延時(shí)</p><p><b>  JC MM1</b></p><p>  MSTOP1: MOV C,P1.3 P1.3為0時(shí)轉(zhuǎn)移</p><p>  JNC MSTOP1 </p

97、><p>  LCALL DELAY1 延時(shí)</p><p>  MOV A,50H </p><p>  INC 50H INC+1指令</p><p>  CJNE A,#00H,HJ1</p><p><b>  LJMP L0</b>&

98、lt;/p><p>  HJ1: MOV C,P1.3 </p><p>  JNC MSTOP1</p><p>  INC 22H 小時(shí)自加一</p><p><b>  MOV A,22H</b></p><p>  CJNE A,#18H,GO12

99、 小時(shí)計(jì)數(shù)循環(huán) </p><p>  MOV 22H,#00H 復(fù)位</p><p>  MOV 34H,#00H</p><p>  MOV 35H,#00H</p><p><b>  LJMP L0</b></p><p>  L1: JB P1

100、.1,L2 P1.1=1時(shí)轉(zhuǎn)移</p><p>  MOV C,P1.1</p><p><b>  JC L1</b></p><p>  LCALL DELAY1 延時(shí)</p><p><b>  JC L1</b></p>&l

101、t;p>  MSTOP2: MOV C,P1.1 P1.1=0時(shí)轉(zhuǎn)移</p><p>  JNC MSTOP2 </p><p>  LCALL DELAY1 延時(shí)</p><p>  MOV C,P1.1</p><p>  JNC MSTOP2</p><p

102、>  INC 21H 分鐘加一</p><p><b>  MOV A,21H</b></p><p>  CJNE A,#3CH,GO11 分鐘計(jì)數(shù)循環(huán)</p><p>  MOV 21H,#00H 復(fù)位</p><p>  MOV 32H,#

103、00H</p><p>  MOV 33H,#00H</p><p><b>  LJMP L0</b></p><p>  GO11: MOV B,#0AH</p><p>  DIV AB DIV除法</p><p>  MOV 32H,B

104、 將A的低4位存入32單元</p><p>  MOV 33H,A 將A的高4位存入33單元</p><p><b>  LJMP L0</b></p><p>  GO12: MOV B,#0AH</p><p><b>  DIV AB</b>&l

105、t;/p><p>  MOV 34H,B 將A的低4位存入34單元</p><p>  MOV 35H,A 將A的高4位存入35單元</p><p><b>  LJMP L0</b></p><p>  L2: JB P1.0,L0

106、 P1.0=1時(shí)轉(zhuǎn)移</p><p>  MOV C,P1.0</p><p><b>  JC L2</b></p><p>  LCALL DELAY1 延時(shí)</p><p>  MOV C,P1.0</p><p><b>  JC L2</b&g

107、t;</p><p>  STOP1: MOV C,P1.0 P1.0=0時(shí)轉(zhuǎn)移</p><p>  JNC STOP1 </p><p>  LCALL DELAY1 延時(shí)</p><p>  MOV C,P1.0</p><p><b>

108、;  JNC STOP1</b></p><p>  MOV 50H,#00H</p><p>  LJMP MAIN</p><p>  ;*******設(shè)置鬧鐘*******</p><p>  SETATIME:LCALL DISPLAY2 調(diào)用DISPLAY2顯示鬧鐘</p><p&g

109、t;  N0: LCALL DISPLAY2</p><p>  MM2: JB P1.2,N1 P1.2=1時(shí)轉(zhuǎn)移</p><p>  MOV C,P1.2</p><p><b>  JC MM2</b></p><p>  LCALL DELAY1

110、 延時(shí)</p><p><b>  JC MM2</b></p><p>  MSTOP3: MOV C,P1.2 P1.2=0時(shí)轉(zhuǎn)移</p><p>  JNC MSTOP3 </p><p>  LCALL DELAY1

111、 延時(shí)</p><p>  MOV A,50H </p><p><b>  INC 50H</b></p><p>  CJNE A,#00H,HJ2</p><p><b>  LJMP N0</b></p><p>  HJ2: MOV C,P1.2</

112、p><p>  JNC MSTOP3</p><p>  INC 24H 小時(shí)加一</p><p><b>  MOV A,24H</b></p><p>  CJNE A,#24,GO22 小時(shí)計(jì)數(shù)循環(huán)</p><p>  

113、MOV 24H,#00H 復(fù)位</p><p>  MOV 38H,#00H</p><p>  MOV 39H,#00H</p><p><b>  LJMP N0</b></p><p>  N1: JB P1.1,N2 P1.1=1時(shí)轉(zhuǎn)移</

114、p><p>  MOV C,P1.1</p><p><b>  JC N1</b></p><p>  LCALL DELAY1 延時(shí)</p><p><b>  JC N1</b></p><p>  MSTOP4: MOV C,P1.1

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論