




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
緒論20世紀(jì)末,電子技術(shù)得到了極速的發(fā)展,毫無(wú)疑問(wèn),在其推進(jìn)下,現(xiàn)代電子產(chǎn)品以及多種高科技產(chǎn)品幾乎滲透到了社會(huì)的各個(gè)領(lǐng)域,這有力地推進(jìn)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度以及綜合科技水平的提高,但產(chǎn)品更新?lián)Q代的頻率也越來(lái)越快。伴隨科技的發(fā)展社會(huì)的進(jìn)步和全球化競(jìng)爭(zhēng)的日益劇烈,人們對(duì)數(shù)字鐘的規(guī)定也越來(lái)越高,老式的時(shí)鐘已不能滿足人們的需求。多功能電子鐘不管在性能還是在樣式亦或是用途上都發(fā)生了重大的變化,許多電子鐘都已具有電子鬧鐘、電子秒表、溫度檢測(cè)等功能。同步單片機(jī)在多功能數(shù)字鐘中的應(yīng)用已是非常普遍的[1]。多功能電子時(shí)鐘除了具有時(shí)鐘的功能外還可以包括對(duì)環(huán)境溫度檢測(cè)的功能。溫度是一種最基本的環(huán)境參數(shù)。在各個(gè)行業(yè)生產(chǎn)及平常生活中,對(duì)溫度的測(cè)量及控制一直占據(jù)著非常重要的地位。目前,經(jīng)典的溫度檢測(cè)控制系統(tǒng)由模擬式溫度傳感器、A/D轉(zhuǎn)換電路和多種單片機(jī)構(gòu)成。由于模擬式溫度傳感器輸出的模擬信號(hào)必須通過(guò)A/D轉(zhuǎn)換環(huán)節(jié)轉(zhuǎn)換為數(shù)字信號(hào)后才能與單片機(jī)等微處理器接口進(jìn)行讀寫的操作,因此硬件電路會(huì)比較復(fù)雜,成本較高。而以DS18B20為代表的新型單線總線數(shù)字式溫度傳感器集溫度測(cè)量和A/D轉(zhuǎn)換于一體,此類傳感器可以直接輸出數(shù)字量,同步與單片機(jī)接口電路構(gòu)造非常簡(jiǎn)樸,可以廣泛用于距離遠(yuǎn)、節(jié)點(diǎn)分布多的場(chǎng)所,具有較強(qiáng)推廣應(yīng)用價(jià)值。[2]數(shù)字電子時(shí)鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí),分,秒數(shù)字顯示的裝置,廣泛用于個(gè)人家庭,車站,碼頭辦公室等公共場(chǎng)所,成為人們平常生活中不可或缺的必需品,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,數(shù)字時(shí)鐘的精度遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的以便,并且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。例如定期自動(dòng)報(bào)警、準(zhǔn)時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定期廣播、自動(dòng)啟閉路燈、定期開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至多種定期電器的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字時(shí)鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。計(jì)算機(jī)尤其是以微細(xì)加工技術(shù)支持的微型計(jì)算機(jī)技術(shù)飛速發(fā)展,其應(yīng)用滲透到了各行各業(yè)。以單片機(jī)、嵌入式處理器、數(shù)字信號(hào)處理器(DSP)為關(guān)鍵的計(jì)算機(jī)系統(tǒng),以其軟硬件可裁剪、高度的實(shí)時(shí)性、高度的可靠性、功能齊全、低功耗、適應(yīng)面廣等諸多長(zhǎng)處而得到極為廣泛的應(yīng)用。目前計(jì)算機(jī)硬件技術(shù)向巨型化、微型化和單片機(jī)化三個(gè)方向高速發(fā)展。自1975年美國(guó)德州儀器企業(yè)(TexasInstruments)第一塊微型計(jì)算機(jī)芯片TMS-1000問(wèn)世以來(lái),在短短的間,單片機(jī)技術(shù)已發(fā)展成為計(jì)算機(jī)領(lǐng)域一種非常有前途的分子,它有自己的技術(shù)特性、規(guī)范和應(yīng)用領(lǐng)域。單片機(jī)是自動(dòng)控制系統(tǒng)的關(guān)鍵部件,重要用于工業(yè)控制、智能化儀器儀表、家用電器中。它具有體積小、性能突出可靠性高(某些方面的性能指標(biāo)大大優(yōu)于通用微機(jī)中央處理器)、價(jià)格低廉等一系列長(zhǎng)處,應(yīng)用領(lǐng)域不停擴(kuò)大,除了工業(yè)控制、智能化儀表、通信和家用電器外,在智能化高檔電子玩具產(chǎn)品中也大量采用單片機(jī)芯片作為關(guān)鍵控制部件,已經(jīng)滲透到人們工作和生活的各個(gè)角落,有力地推進(jìn)了各行業(yè)的技術(shù)改造和產(chǎn)品的更新?lián)Q代,前景廣闊。數(shù)字鐘具有單片機(jī)最小系統(tǒng)的基本構(gòu)成,對(duì)于我們理解單片機(jī)有很大的協(xié)助。本設(shè)計(jì)通過(guò)用對(duì)一種能實(shí)現(xiàn)可調(diào)的實(shí)時(shí)時(shí)鐘顯示功能的時(shí)間系統(tǒng)的設(shè)計(jì)學(xué)習(xí),詳細(xì)簡(jiǎn)介了51單片機(jī)應(yīng)用中的數(shù)據(jù)轉(zhuǎn)換顯示,數(shù)碼管顯示原理,靜態(tài)掃描顯示原理,單片機(jī)的定期中斷原理等,從而到達(dá)學(xué)習(xí)、理解單片機(jī)有關(guān)指令在各方面的應(yīng)用。對(duì)于單片機(jī)學(xué)習(xí)者而言,這個(gè)程序基本上是一道門檻,掌握了電子時(shí)鐘程序,基本上就可以說(shuō)掌握了51單片機(jī)。1數(shù)字鐘的功能實(shí)現(xiàn)與設(shè)計(jì)方案1.1數(shù)字鐘的實(shí)現(xiàn)形式數(shù)字鐘既可以通過(guò)純硬件實(shí)現(xiàn),也可以通過(guò)軟硬件結(jié)合實(shí)現(xiàn),根據(jù)電子時(shí)鐘的關(guān)鍵部件——秒信號(hào)的產(chǎn)生原理,一般有三鐘形式:(1)用NE555時(shí)基電路的形式采用NE555時(shí)基電路或其他震蕩電路產(chǎn)生秒脈沖信號(hào),作為秒加法電路的時(shí)鐘信號(hào)或微處理器的外部中斷輸入信號(hào),可構(gòu)成電子時(shí)鐘。由NE555構(gòu)成的秒脈沖發(fā)生器電路如圖1-1所示。輸出的脈沖信號(hào)V0的頻率F=1.443/(RA+2RB)×C,可通過(guò)調(diào)整這3個(gè)參數(shù),使輸V0的頻率為精確的1Hz。圖1-1基于555的秒脈沖發(fā)生器(2)采用石英鐘專用芯片的實(shí)現(xiàn)形式采用石英鐘專用計(jì)時(shí)芯片實(shí)現(xiàn)的電子鐘,具有實(shí)現(xiàn)簡(jiǎn)樸、計(jì)時(shí)精度高的特點(diǎn)。石英計(jì)時(shí)芯片(簡(jiǎn)稱“機(jī)芯”)比較多,常見(jiàn)的有STP5512F、SM5546A和D60400等。現(xiàn)基于5512F的2秒輸出信號(hào)作為秒加法電路的計(jì)時(shí)脈沖,可實(shí)現(xiàn)電子時(shí)鐘。5512F的引腳如圖1-2所示。112348765V+SCAKSC1M0BPM1GND圖1-25512F引腳圖其中,引腳7、8為外接晶振及振蕩電路,引腳1接電源正極,電源為1.5伏,引腳3、4原為指針用步進(jìn)電機(jī)線圈的輸出驅(qū)動(dòng)端,這里可用3腳作為脈沖輸出,頻率決定于外接晶振的頻率。(3)采用基于單片機(jī)的實(shí)現(xiàn)形式運(yùn)用單片機(jī)的智能性,可以便的實(shí)現(xiàn)具有智能數(shù)字鐘的設(shè)計(jì)。并且,微處理系統(tǒng)具有時(shí)鐘振蕩系統(tǒng),運(yùn)用系統(tǒng)時(shí)鐘并借助微處理器的定期/計(jì)數(shù)器功能可以實(shí)現(xiàn)數(shù)字鐘的功能。本設(shè)計(jì)采用AT89S51單片機(jī)設(shè)計(jì)。1.2方案確實(shí)定可以從如下幾種方面來(lái)確定電子時(shí)鐘的設(shè)計(jì)方案。1.2.1微處理器采用ATMEL的AT89S51微處理器,是基于如下幾種原因:(1)內(nèi)含F(xiàn)lash存儲(chǔ)器,這在系統(tǒng)的開(kāi)發(fā)過(guò)程中,可隨意進(jìn)行程序修改,既便錯(cuò)誤編程之后仍可以重新編程,故不存在廢品且大大縮短了程序的開(kāi)發(fā)周期;同步在系統(tǒng)工作過(guò)程中能有效地保留數(shù)據(jù)信息。(2)采用靜態(tài)時(shí)鐘方式,節(jié)省電能,這對(duì)于減少便攜式產(chǎn)品的功耗十分有利。(3)由于它是以8031核構(gòu)成的,因此它與MCS251系列單片機(jī)是兼容的(4)AT89S51為51內(nèi)核,仿真調(diào)試軟硬件資源豐富;(5)性價(jià)比高,貨源充足;(6)DIP-40封裝,體積較大,但更以便編程及定義管腳;(7)為E2PROM程序存儲(chǔ)介質(zhì),1000次以上擦/寫周期,便于變成調(diào)試;(8)具有低功耗工作模式,便于進(jìn)行低功耗設(shè)計(jì);(9)工作電壓范圍較寬,便于交直流供電。1.2.2顯示電路就時(shí)鐘而言,一般可采用液晶顯示或數(shù)碼管顯示。對(duì)于一般的段式液晶屏,需要專門的驅(qū)動(dòng)電路,并且液晶顯示作為一種被動(dòng)顯示,可視性相對(duì)較差;對(duì)于具有驅(qū)動(dòng)電路和微處理器接口的液晶顯示模塊(字符或點(diǎn)陣),一般多采用并行機(jī)接口,對(duì)于微處理器的接口規(guī)定較高,占用資源多。此外,89S51自身沒(méi)有專門的液晶驅(qū)動(dòng)接口,因此,本時(shí)鐘設(shè)計(jì)采用了數(shù)碼管顯示方式。數(shù)碼管作為一種積極顯示屏件,具有亮度高、價(jià)格廉價(jià)等長(zhǎng)處,并且市場(chǎng)上也有專門的時(shí)鐘顯示組合數(shù)碼管。1.2.3按鍵電路考慮到對(duì)時(shí)鐘以及在有限個(gè)數(shù)碼管內(nèi)實(shí)現(xiàn)兩組顯示數(shù)據(jù)的切換。本時(shí)鐘系統(tǒng)設(shè)五個(gè)按鍵:(1)SET鍵,重要用于啟動(dòng)和關(guān)閉設(shè)定參數(shù)狀態(tài)兩個(gè)功能:①在復(fù)位后的時(shí)鐘(或日期)顯示狀態(tài)下,用于啟動(dòng)設(shè)定期間(或日期)參數(shù);②在設(shè)定對(duì)的狀態(tài)后,用于結(jié)束設(shè)定參數(shù)狀態(tài)。(2)+1鍵,在SET狀態(tài)下,用于對(duì)目前設(shè)定位(編輯位)進(jìn)行加1操作,根據(jù)正在編輯的目前位的含義(時(shí)位、分位、秒位或星期、月份、日期)自動(dòng)進(jìn)行數(shù)據(jù)的上限和下限判斷。例如,對(duì)12小時(shí)制,當(dāng)小時(shí)的兩位顯示為12時(shí),再按此鍵,則自動(dòng)變?yōu)轱@示為“01”。(3)-1鍵,在SET狀態(tài)下,用于對(duì)目前設(shè)定位(編輯位)進(jìn)行減1操作,根據(jù)正在編輯的目前位的含義(時(shí)位、分位、秒位或星期、月份、日期)自動(dòng)進(jìn)行數(shù)據(jù)的上限和下限判斷。例如,對(duì)12小時(shí)制,當(dāng)小時(shí)的兩位顯示為01時(shí),再按此鍵,則自動(dòng)變?yōu)轱@示為12.(4)左移鍵/顯示狀態(tài)切換鍵,在SET狀態(tài)下,用于對(duì)目前設(shè)定位(編輯位)進(jìn)行左移位操作,每次移動(dòng)一種變量(即兩個(gè)數(shù)碼管);在待機(jī)狀態(tài)下,用于顯示(時(shí)、分、秒和星期、月、日)的轉(zhuǎn)換。(5)右移鍵,用于對(duì)目前設(shè)定位(編輯位)進(jìn)行右移位操作,每次移動(dòng)一種變量(即兩個(gè)數(shù)碼管)。2數(shù)字鐘的硬件系統(tǒng)設(shè)計(jì)數(shù)字時(shí)鐘硬件部分的設(shè)計(jì)應(yīng)包括秒信號(hào)發(fā)生器、時(shí)間顯示電路、按鍵電路、供電電路等幾部分。2.1數(shù)字時(shí)鐘的硬件系統(tǒng)框架電子時(shí)鐘的系統(tǒng)框架入圖2-1所示。CPUCPU按鍵電路復(fù)位等輔助電路電源系統(tǒng)數(shù)碼管顯示電路校時(shí)電路圖2-1數(shù)字鐘的系統(tǒng)框架2.2數(shù)字時(shí)鐘的主機(jī)電路設(shè)計(jì)數(shù)字時(shí)鐘的主電路指的是圖1中框內(nèi)部分,重要波及到微處理器電路和按鍵、按鈕電路。主機(jī)的設(shè)計(jì)詳細(xì)地說(shuō)有:1、系統(tǒng)控制芯片的選擇2、系統(tǒng)時(shí)鐘電路設(shè)計(jì);3、系統(tǒng)復(fù)位電路設(shè)計(jì);4、按鍵與按鈕電路設(shè)計(jì)。2.2.1系統(tǒng)控制芯片CPU(AT89S51)的選擇AT89C系列單片機(jī)是Atmel企業(yè)1993年開(kāi)始研制生產(chǎn)的,優(yōu)越的性能價(jià)格比使其成為頗受歡迎的8位單片機(jī)。AT89C系列與MCS-51系列單片機(jī)相比有兩大優(yōu)勢(shì):第一,片內(nèi)程序存儲(chǔ)器采用閃速存儲(chǔ)器,使程序的寫入愈加以便;第二,功能愈加強(qiáng)大,使其在應(yīng)用中更廣泛[6]。(1)AT89S51重要性能:AT89S51是Atmel企業(yè)生產(chǎn)的帶4KB閃速可編程可擦除只讀存儲(chǔ)器的8位單片機(jī),它具有如下重要特性:eq\o\ac(○,1)AT89S51為51內(nèi)核;eq\o\ac(○,2)內(nèi)部帶4KB可編程閃速存儲(chǔ)器(E2PROM),壽命為1000次擦/寫循環(huán),數(shù)據(jù)保留時(shí)間為;eq\o\ac(○,3)DIP40封裝,I/O口較多eq\o\ac(○,4)工作電壓范圍為4.5~5.5V;eq\o\ac(○,5)全靜態(tài)工作頻率為0Hz~33MHz;eq\o\ac(○,6)三極程序存儲(chǔ)器保密鎖定;eq\o\ac(○,7)128bytes內(nèi)部RAM;eq\o\ac(○,8)32個(gè)外部雙向輸入/輸出可編程I/O線;、eq\o\ac(○,9)2個(gè)16位定期器/計(jì)數(shù)器;eq\o\ac(○,10)6個(gè)中斷源;eq\o\ac(○,11)兩個(gè)全又工串行通信口;eq\o\ac(○,12)看門狗(WDT電路);eq\o\ac(○,13)可編程串行通道;eq\o\ac(○,14)片內(nèi)振蕩器和時(shí)鐘電路;eq\o\ac(○,15)低功耗的閑置和掉電模式;(2)AT89S51內(nèi)部構(gòu)造及引腳描述AT89S51單片機(jī)的內(nèi)部與8051單片機(jī)的內(nèi)部構(gòu)造完全一致,區(qū)別只是將存儲(chǔ)器改為Flash存儲(chǔ)。其引腳配置如圖2-2所示。 圖2-2AT89S51引腳配置它是一種有40個(gè)引腳排列直插式的芯片,其引腳描述如下:VCC:供電電壓。GND:接地。P0口:P0口為一種8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸取8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0可以用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。
P1口:P1口是一種內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接受輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接受。P2口:P2口為一種內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接受,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它運(yùn)用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接受高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接受輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口除了作為一般I/O口,尚有第二功能:P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時(shí)器0外部輸入)P3.5T1(記時(shí)器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3口同步為閃爍編程和編程校驗(yàn)接受某些控制信號(hào)。I/O口作為輸入口時(shí)有兩種工作方式,即所謂的讀端口與讀引腳。讀端口時(shí)實(shí)際上并不從外部讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線,通過(guò)某種運(yùn)算或變換后再寫回到端口鎖存器。只有讀端口時(shí)才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。89C51的P0、P1、P2、P3口作為輸入時(shí)都是準(zhǔn)雙向口。除了P1口外P0、P2、P3口都尚有其他的功能。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存容許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定期目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一種ALE脈沖。如想嚴(yán)禁ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。此外,該引腳被略微拉高。假如微處理器在外部執(zhí)行狀態(tài)ALE嚴(yán)禁,置位無(wú)效。PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管與否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。從上述引腳闡明看出,AT89S51提供了外部擴(kuò)展存儲(chǔ)器與I/O設(shè)備所需的地址、數(shù)據(jù)、控制信號(hào),因此運(yùn)用AT89S51構(gòu)成的單片及應(yīng)用系統(tǒng)可以在AT89S51之外擴(kuò)展存儲(chǔ)器或I/O設(shè)備,不過(guò)其自身所具有的的各項(xiàng)功能及模塊也闡明,AT89S51自身也構(gòu)成了最小的單片機(jī)系統(tǒng)。(3)振蕩器振蕩器特性:XTAL1和XTAL2分別構(gòu)成片內(nèi)振蕩器的反相放大器的輸入和輸出端,如圖2-3所示??刹捎檬⒕w或陶瓷振蕩器構(gòu)成振蕩器。要從外部時(shí)鐘源驅(qū)動(dòng)AT89S51,則XTAL2應(yīng)懸空,而XTAL1的驅(qū)動(dòng)如圖2-4所示。由于輸入到內(nèi)部時(shí)鐘電路通過(guò)一種二分頻觸發(fā)器,故不需要對(duì)外部時(shí)鐘信號(hào)的工作周期提出特殊規(guī)定,但它必須遵守最小和最大電壓高下電平的時(shí)間規(guī)范。圖2-3振蕩的外部連接措施圖2-4外部時(shí)鐘驅(qū)動(dòng)構(gòu)造(4)特殊功能寄存器SFR與8051單片機(jī)特殊功能寄存器相對(duì)應(yīng),AT89S51片內(nèi)設(shè)置了19個(gè)特殊功能寄存器,統(tǒng)稱為特殊功能寄存器塊SFR,它們的地址散布在80H~0F0H區(qū)域內(nèi)。(5)低功耗工作模式AT89S51優(yōu)良中低功耗工作模式:待機(jī)方式與掉電方式。eq\o\ac(○,1)待機(jī)方式(休眠方式)當(dāng)運(yùn)用軟件使待機(jī)方式位ADL(PCON.0)=0時(shí),單片機(jī)進(jìn)入空閑方式。此時(shí),CPU處在休眠狀態(tài),而片內(nèi)所有其他外圍設(shè)備都保持工作狀態(tài),片內(nèi)RAM和所有特殊功能寄存器內(nèi)容保持不變。在待機(jī)方式下,當(dāng)晶振fosc=12MHz,電源電壓VCC=6V時(shí),電源電流ICC從20Ma降至5Ma;而VCC由5.5mA降至1mA。中斷或硬件復(fù)位可以終止待機(jī)方式。當(dāng)待機(jī)方式由硬件復(fù)為終止時(shí),CPU要從休眠處恢復(fù)程序的執(zhí)行,執(zhí)行2的周期后,內(nèi)部復(fù)位電路才起作用。此時(shí),硬件嚴(yán)禁訪問(wèn)內(nèi)部RAM,但容許訪問(wèn)端口引腳。為了防止休眠被復(fù)位終止時(shí)對(duì)端口以外寫入的也許性,在生成待機(jī)方式的指令后不應(yīng)緊跟對(duì)端口引腳的寫指令。假如不采用外部上拉,P1.0和P1.1應(yīng)置“1”。eq\o\ac(○,2)掉電方式掉電方式由掉電方式位PD(PCON.1)=1設(shè)置。此時(shí)振蕩器停止工作,設(shè)置掉電方式的指令成為最終執(zhí)行的一條指令,片內(nèi)RAM和特殊功能寄存器內(nèi)容保持不變。在掉電模式下,VCcmin=2V。當(dāng)VCC=6V時(shí),ICCmax=100μA;當(dāng)VCC=3時(shí),ICcmax=20μA。退出掉電方式的唯一方式是硬件復(fù)位。硬件復(fù)位將重新定義特殊功能寄存器,但不影響片內(nèi)RAM。復(fù)位的保持時(shí)間應(yīng)足夠長(zhǎng),以便振蕩器能重新開(kāi)始工作并穩(wěn)定下來(lái)。在VCC沒(méi)有恢復(fù)得到正常工作電壓之前,不應(yīng)進(jìn)行復(fù)位。假如不采用外部上拉,P1.0和P1.1應(yīng)置“0”,否則置“1”。(6)閃速存儲(chǔ)器的編程AT89S51單片機(jī)內(nèi)部有4KB的閃速存儲(chǔ)器陣列,一片新的AT89S51,其存儲(chǔ)陣列處在擦除狀態(tài)(FFH),此時(shí)可對(duì)其編程,存儲(chǔ)陣列一次編程1字節(jié),若編程任何非空字節(jié)時(shí),需對(duì)整個(gè)存儲(chǔ)陣列進(jìn)行片擦除[7]。編程時(shí),AT89S51運(yùn)用內(nèi)部存儲(chǔ)器地址計(jì)數(shù)器提供尋址存儲(chǔ)器的地址信號(hào),RST上升沿將該地址計(jì)數(shù)器復(fù)位至000H,引腳XTAL1所施加的正向脈沖使地址計(jì)數(shù)器不停加1。[8]RST上出現(xiàn)12V(編程電源VPP)高壓時(shí),預(yù)示著1字節(jié)的編程操作開(kāi)始,這時(shí)P3口提供編程所需的控制與狀態(tài)信號(hào),P1口為數(shù)據(jù)通道。(7)在線編程AT89S51編程時(shí)需要運(yùn)用RST、XTAL1、P1口、P2口、P3口提供控制信號(hào)與加載編程數(shù)據(jù),而這一規(guī)定又常與顧客系統(tǒng)對(duì)這些引腳的規(guī)定或操作沖突。因此,在線編程不能直接在顧客工作電路中進(jìn)行,而要通過(guò)特殊電路處理才能實(shí)現(xiàn)。例如圖2-5所示為在線編程的示例,其采用2選1的措施實(shí)現(xiàn)連接線路的切換,達(dá)到在線編程的目的。運(yùn)用微動(dòng)開(kāi)關(guān)SW來(lái)選擇XTAL1的加載,產(chǎn)生選擇控制信號(hào)Select,其他線路的切換用2選1器件74LS157與三態(tài)緩沖器74LS244實(shí)現(xiàn)。當(dāng)AT89S51正常工作時(shí),選擇控制信號(hào)(Selecg=0)控制所有的74LS157輸入A端與輸出Y接通,且74LS244-1輸出有效,74LS244-2三態(tài)輸出,使得AT89S51可以對(duì)顧客電路進(jìn)行控制操作;當(dāng)AT89S51需要編程時(shí),選擇控制信號(hào)(Select=1)控制所有的74LS157輸入B端與輸出Y端接通,且74LS244-1三態(tài)輸出,74LS244-2輸出有效,使得AT89S51可以接受編程電路的控制,實(shí)現(xiàn)編程操作。圖2-5在線編程示圖2.2.2時(shí)鐘芯片DS1302DS1302是DALLAS企業(yè)推出的涓流充電時(shí)鐘芯片,內(nèi)具有一種實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM,通過(guò)簡(jiǎn)樸的串行接口與單片機(jī)進(jìn)行通信實(shí)時(shí)時(shí)鐘/日歷電路。提供秒、分、時(shí)、日、日期、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整時(shí)鐘操作可通過(guò)AM/PM指示決定采用24或12小時(shí)格式。DS1302與單片機(jī)之間能簡(jiǎn)樸地采用同步串行的方式進(jìn)行通信,僅需用到三個(gè)口線:①RES復(fù)位;②I/O數(shù)據(jù)線;③SCLK串行時(shí)鐘.時(shí)鐘/RAM的讀/寫數(shù)據(jù)以一種字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式通信.DS1302工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率不不小于1mW。DS1302是由DS1202改善而來(lái),增長(zhǎng)了如下的特性.雙電源管腳用于主電源和備份電源供應(yīng)Vcc1,為可編程涓流充電電源附加七個(gè)字節(jié)存儲(chǔ)器。它廣泛應(yīng)用于電話傳真便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。(1)重要的性能指標(biāo):eq\o\ac(○,1)實(shí)時(shí)時(shí)鐘具有能計(jì)算2100年之前的秒、分、時(shí)、日、月、星期、年的能力,尚有閏年調(diào)整的能力;eq\o\ac(○,2)318位暫存數(shù)據(jù)存儲(chǔ)RAM;eq\o\ac(○,3)串行I/O口方式使得管腳數(shù)量至少;eq\o\ac(○,4)寬范圍工作電壓2.0V---5.5V;eq\o\ac(○,5)工作電流2.0V時(shí),不不小于300nA;eq\o\ac(○,6)讀/寫時(shí)鐘或RAM數(shù)據(jù)時(shí)有兩種傳送方式單字節(jié)傳送和多字節(jié)傳送字符組方式;eq\o\ac(○,7)8腳DIP封裝或可選的8腳SOIC封裝根據(jù)表面裝配;eq\o\ac(○,8)簡(jiǎn)樸3線接口;eq\o\ac(○,9)與TTL兼容Vcc=5V;eq\o\ac(○,10)可選工業(yè)級(jí)溫度范圍-40+85;eq\o\ac(○,11)與DS1202兼容;eq\o\ac(○,12)在DS1202基礎(chǔ)上增長(zhǎng)的特性;eq\o\ac(○,13)對(duì)Vcc1有可選的涓流充電能力;eq\o\ac(○,14)雙電源管用于主電源和備份電源供應(yīng);eq\o\ac(○,15)備份電源管腳可由電池或大容量電容輸入;(2)DS1302的基本構(gòu)成和工作原理DS1302的引腳功能排列及描述如圖2-6所示.圖2-6DS1302引腳圖管腳描述:
X1X232.768KHz晶振管腳
GND地
RST復(fù)位腳
I/O數(shù)據(jù)輸入/輸出引腳
SCLK串行時(shí)鐘
Vcc1,Vcc2電源供電管腳
DS1302串行時(shí)鐘芯片8腳DIP
DS1302S串行時(shí)鐘芯片8腳SOIC200mil
DS1302Z串行時(shí)鐘芯片8腳SOIC150mil(3)DS1302內(nèi)部寄存器CH:時(shí)鐘停止位
存器2的第7位12/24小時(shí)標(biāo)志
CH=0振蕩器工作容許
bit7=1,12小時(shí)模式
CH=1振蕩器停止
bit7=0,24小時(shí)模式WP:寫保護(hù)位
寄存器2的第5位:AM/PM定義
WP=0寄存器數(shù)據(jù)可以寫入
AP=1下午模式
WP=1寄存器數(shù)據(jù)不能寫入
AP=0上午模式TCS:涓流充電選擇
DS:二極管選擇位
TCS=1010使能涓流充電
DS=01選擇一種二極管
TCS=其他嚴(yán)禁涓流充電
DS=10選擇兩個(gè)二極管
DS=00或11,雖然TCS=1010,充電功能也被嚴(yán)禁2.2.3系統(tǒng)時(shí)鐘電路設(shè)計(jì)系統(tǒng)運(yùn)用晶體振蕩器作為時(shí)鐘電路,根據(jù)晶振的不一樣使用規(guī)定及特點(diǎn),一般分為如下幾類:一般晶振、溫補(bǔ)晶振、壓控晶振、溫控晶振等。安裝晶振時(shí),應(yīng)根據(jù)其引腳功能標(biāo)識(shí)與應(yīng)用電路應(yīng)連接,防止電源引線與輸出引腳相接輸出。在測(cè)試和使用時(shí)所供直流電源應(yīng)沒(méi)有足以影響其精確度的紋波含量,交流電壓應(yīng)無(wú)瞬變過(guò)程[9]。測(cè)試儀器應(yīng)有足夠的精度,連線合理布置,將測(cè)試及外圍電路對(duì)晶振指標(biāo)的影響降至最低。(1)一般晶振(PXO):是一種沒(méi)有采用溫度賠償措施的晶體振蕩器,在整個(gè)溫度范圍內(nèi),晶振的頻率穩(wěn)定度取決于其內(nèi)部所用晶體的性能,頻率穩(wěn)定度在10-5量級(jí),一般用于一般場(chǎng)所作為本振源或中間信號(hào),是晶振中最廉價(jià)的產(chǎn)品。(2)溫補(bǔ)晶振(TCXO):是在晶振內(nèi)部采用了對(duì)晶體頻率溫度特性進(jìn)行賠償,以到達(dá)在寬溫溫度范圍內(nèi)滿足穩(wěn)定度規(guī)定的晶體振蕩器。(3)恒溫晶振(OCXO):采用精密控溫,使電路元件及晶體工作在晶體的零溫度系數(shù)點(diǎn)的溫度上。中精度產(chǎn)品頻率穩(wěn)定度為10-7~10-8,高精度產(chǎn)品頻率穩(wěn)定度在10-9量級(jí)以上。重要用作頻率源或原則信號(hào)。(4)壓控晶振(VCXO):是一種可通過(guò)調(diào)整外加電壓使晶振輸出頻率隨之變化的晶體振蕩器,重要用于鎖相環(huán)路或頻率微調(diào)。壓控晶振的頻率控制范圍及線性度重要取決于電路所用變?nèi)荻O管及晶體參數(shù)兩者的組合。晶體振蕩器選擇參照原則:(1)總頻差:在規(guī)定的時(shí)間內(nèi),由于規(guī)定的工作和非工作參數(shù)所有組合而引起的晶體振蕩器頻率與給定標(biāo)稱頻率的最大頻差。(2)溫度穩(wěn)定度:在標(biāo)稱電源和負(fù)載下,工作在規(guī)定溫度范圍內(nèi)的不帶隱含基準(zhǔn)溫度或帶隱含基準(zhǔn)溫度的最大容許頻偏。(3)頻率穩(wěn)定預(yù)熱時(shí)間:以晶體振蕩器穩(wěn)定輸出頻率為基準(zhǔn),從加電到輸出頻率不不小于規(guī)定頻率允差所需要的時(shí)間。(4)頻率老化率:在恒定的環(huán)境條件下測(cè)量振蕩器頻率時(shí),振蕩器頻率和時(shí)間之間的關(guān)系。這種長(zhǎng)期頻率漂移是由晶體元件和振蕩器電路元件的緩慢變化導(dǎo)致的,可用規(guī)定期限后的最大變化率(如±10ppb/天,加電72小時(shí)后),或規(guī)定的時(shí)限內(nèi)最大的總頻率變化(如:±1ppm/(第一年)和±5ppm/(十年))來(lái)表達(dá)。(5)頻率壓控范圍:將頻率控制電壓從基準(zhǔn)電壓調(diào)到規(guī)定的終點(diǎn)電壓,晶體振蕩器頻率的最小峰值變化量。(6)頻率壓控線性:與理想(直線)函數(shù)相比的輸出頻率-輸入控制電壓傳播特性的一種量度,它以百分?jǐn)?shù)表達(dá)整個(gè)范圍頻偏的可容許非線性度。本系統(tǒng)時(shí)鐘電路的設(shè)計(jì)如圖2-7。對(duì)于實(shí)踐規(guī)定不是很高的系統(tǒng),圖中電路設(shè)計(jì)就能使系統(tǒng)可靠起振并穩(wěn)定運(yùn)行。但由于途中的C1、C2電容起著系統(tǒng)時(shí)鐘頻率微調(diào)和穩(wěn)定的作用,它對(duì)時(shí)鐘的正負(fù)走時(shí)誤差有很大影響。因此,在本系統(tǒng)的實(shí)際應(yīng)用中尤其注意了電容參數(shù)的選擇(),并盡量保證電路的對(duì)稱性(盡量匹配),選用正派廠家生產(chǎn)的瓷片或云母電容,條件容許的話溫度系數(shù)要盡量低。圖2-7振蕩電路2.2.4系統(tǒng)復(fù)位電路設(shè)計(jì)智能系統(tǒng)一般應(yīng)有手動(dòng)或上電復(fù)位電路。復(fù)位電路的實(shí)現(xiàn)一般有兩種形式:即專用μp監(jiān)控電路和RC復(fù)位電路。前者電路實(shí)現(xiàn)簡(jiǎn)樸,成本低,但復(fù)位可靠性相對(duì)較低;后者成本較高,但復(fù)位可靠性高,尤其是高可靠反復(fù)復(fù)位。對(duì)于復(fù)位規(guī)定高,并對(duì)電源電壓進(jìn)行監(jiān)視的場(chǎng)所,大多采用這種方式。(1)專用μP監(jiān)控電路專用μP監(jiān)控電路有稱為電源監(jiān)視電路,具有上電時(shí)可靠產(chǎn)生復(fù)位信號(hào)和電源電壓跌落到“門檻值”時(shí)可靠產(chǎn)生復(fù)位信號(hào)等功能[9]。準(zhǔn)時(shí)效電平分,有高電平輸出、低電平輸出兩種;按功能分,有簡(jiǎn)樸的電源監(jiān)視復(fù)位電路、帶看門狗定期器(WATCHDOGTimer,WDT)的監(jiān)控電路和WDT+E2PROM的監(jiān)控電路等多種類型。(2)RC復(fù)位電路本系統(tǒng)采用的是RC復(fù)位方式。RC復(fù)位電路的實(shí)質(zhì)是一階充放電電路,如圖2-8:圖2-8RC復(fù)位電路系統(tǒng)上電時(shí)該電路提供有效的復(fù)位信號(hào)RST(高電平)直至系統(tǒng)電源穩(wěn)定后撤銷復(fù)位信號(hào)(低電平)。從理論上說(shuō),51系列單片機(jī)復(fù)位引腳只要外兩個(gè)機(jī)器周期的有效信號(hào)即可復(fù)位,即只要保證t=RC>2M(機(jī)器周期)便可。但在實(shí)際設(shè)計(jì)中,一般C1取值為10μF以上,R1一般取值10ΚΩ左右。實(shí)踐發(fā)現(xiàn),R1假如取值太小,例如1ΚΩ,則會(huì)導(dǎo)致RST信號(hào)驅(qū)動(dòng)能力變差而無(wú)法使系統(tǒng)可靠復(fù)位。此外,從圖2-9所示的復(fù)位信號(hào)波形圖可以明顯看出,續(xù)流二極管對(duì)于改善復(fù)位性能,起到了重要作用。它的作用是在電源電壓瞬間下降時(shí)使電容迅速放電,因此一定寬度的電源毛刺(如波形中A點(diǎn))也可令系統(tǒng)可靠復(fù)位。圖2-9加二極管前后的復(fù)位信號(hào)特性對(duì)比2.2.5按鍵與按鈕電路設(shè)計(jì)按鍵與按鈕電路的設(shè)計(jì)參見(jiàn)系統(tǒng)原理圖中的S1、S2和S3對(duì)應(yīng)部分。按鍵與按鈕電路設(shè)計(jì)中關(guān)鍵要考慮的就是按鍵去抖動(dòng)問(wèn)題(簡(jiǎn)稱“去抖”),一般由硬件去抖和軟件去抖兩種方式。硬件去抖可以采用分立元件或觸發(fā)器實(shí)現(xiàn),目前市場(chǎng)上也有硬件去抖專用接口芯片,例如:MAXIM企業(yè)MAX6816~6818,均為單電源供電,電壓為2.7~5.5V,分別為單輸入、雙輸入和八輸入,輸出端具有欠壓鎖定功能??紤]到系統(tǒng)的硬件簡(jiǎn)化和控制成本問(wèn)題,本次設(shè)計(jì)采用軟件去抖方式。2.2.6數(shù)字鐘的顯示電路設(shè)計(jì)(1)LED的選擇單片機(jī)I/O的應(yīng)用最經(jīng)典的是通過(guò)I/O口與7段LED數(shù)碼管構(gòu)成顯示電路,7段LED數(shù)碼管,在一定形狀的絕緣材料上,運(yùn)用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點(diǎn)亮對(duì)應(yīng)的點(diǎn)劃來(lái)顯示出0-9的數(shù)字。LED數(shù)碼管根據(jù)LED的接法不一樣分為共陰和共陽(yáng)兩類,理解LED的這些特性,對(duì)編程是很重要的,由于不一樣類型的數(shù)碼管,除了它們的硬件電路有差異外,編程措施也是不一樣的。下圖2-10為共陰和共陽(yáng)極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是同樣的,只是它們的電源極性不一樣而已。圖2-10數(shù)碼管電路將多只LED的陰極連在一起即為共陰式,而將多只LED的陽(yáng)極連在一起即為共陽(yáng)式。以共陰式為例,如把陰極接地,在對(duì)應(yīng)段的陽(yáng)極接上正電源,該段即會(huì)發(fā)光。當(dāng)然,LED的電流一般較小,一般均需在回路中接上限流電阻。假如我們將"b"和"c"段接上正電源,其他端接地或懸空,那么"b"和"c"段發(fā)光,此時(shí),數(shù)碼管顯示將顯示數(shù)字“1”。而將"a"、"b"、"d"、"e"和"g"段都接上正電源,其他引腳懸空,此時(shí)數(shù)碼管將顯示“2”。其他字符的顯示原理類同。本設(shè)計(jì)采用的是共陽(yáng)極數(shù)碼管。用單片機(jī)驅(qū)動(dòng)LED數(shù)碼管有諸多措施,按顯示方式分,有靜態(tài)顯示和動(dòng)態(tài)(掃描)顯示,按譯碼方式可分硬件譯碼和軟件譯碼之分。靜態(tài)顯示就是顯示驅(qū)動(dòng)電路具有輸出鎖存功能,單片機(jī)將所要顯示的數(shù)據(jù)送出后就不再控制LED,直到下一次顯示數(shù)據(jù)需要更新時(shí)再傳送一次新數(shù)據(jù),顯示數(shù)據(jù)穩(wěn)定,占用很少的CPU時(shí)間;動(dòng)態(tài)顯示需要CPU時(shí)刻對(duì)顯示屏件進(jìn)行數(shù)據(jù)刷新,顯示數(shù)據(jù)有閃爍感,占用的CPU時(shí)間多。這兩種顯示方式各有利弊:動(dòng)態(tài)顯示雖然有閃爍感,占用的CPU時(shí)間較多,不過(guò)用的硬件少,能節(jié)省線路板的空間。動(dòng)態(tài)掃描顯示接口是單片機(jī)種應(yīng)用最廣泛的一種顯示方式。其接口電路是把所有的LED顯示屏的8個(gè)筆畫(huà)段A~G、DP的同名端連在一起,而每一種數(shù)碼管的公共端COM是各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字形碼時(shí),所有顯示屏接受到相似的字形碼,但究竟是哪個(gè)顯示屏亮,則取決于COM端,而這一端由I/O控制的,可以自行決定何時(shí)顯示哪一位了。而所謂動(dòng)態(tài)掃描就是指我們采用分時(shí)的措施,輪番控制各個(gè)顯示屏的COM端,使各個(gè)顯示屏輪番點(diǎn)亮。在輪番點(diǎn)亮掃描過(guò)程中,每位顯示屏的點(diǎn)亮?xí)r間是極為短暫的,約1ms左右,不過(guò)由于人的視覺(jué)暫留現(xiàn)象及發(fā)光余暉效應(yīng),盡管實(shí)際上各位顯示屏并非同步點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。靜態(tài)顯示雖然數(shù)據(jù)穩(wěn)定,占用很少的CPU時(shí)間,但每個(gè)顯示單元都需要單獨(dú)的顯示驅(qū)動(dòng)電路,使用的硬件較多,不過(guò)編程相對(duì)于動(dòng)態(tài)顯示比較簡(jiǎn)樸,本設(shè)計(jì)采用的是靜態(tài)顯示方案。(2)LED的驅(qū)動(dòng)和顯示單片機(jī)對(duì)LED數(shù)碼管的驅(qū)動(dòng)措施可以分為串行和并行兩種,分別合用于不一樣的使用場(chǎng)所,兩者的硬件電路和程序區(qū)別也很大。并行驅(qū)動(dòng):在一般狀況下,單片機(jī)使用并行驅(qū)動(dòng)的方式進(jìn)行LED的顯示。并行驅(qū)動(dòng)的構(gòu)造較簡(jiǎn)樸,并且非常合用于闡明地址和數(shù)據(jù)總線復(fù)用的狀況。LED并行驅(qū)動(dòng)的電路原理圖如圖2-11所示。圖2-11LED并行驅(qū)動(dòng)的電路原理圖中顯示的是使用8155與LED顯示屏的接口,8155的PB0~PB7作為段選碼口,通過(guò)7407驅(qū)動(dòng)與LED的段相連;8155的PA0~PA5作為位選碼口,通過(guò)7406驅(qū)動(dòng)與LED的位相連。圖中的P2.7反相后作為8155的片選信號(hào),P2.6接8155的IO端。這樣確定8155片內(nèi)的4個(gè)端口地址。(7407:驅(qū)動(dòng)門電路,提供數(shù)碼管顯示的驅(qū)動(dòng)電流)本設(shè)計(jì)采用的是串行驅(qū)動(dòng)方式,詳細(xì)措施如下:在某些狀況下,可供使用的單片機(jī)并行I/O口局限性8根,數(shù)據(jù)的并行輸出已不也許此時(shí)可以考慮串行輸出措施,圖2-12本設(shè)計(jì)采用的串行口擴(kuò)展的四位LED顯示電路。圖2-12本設(shè)計(jì)采用的串行口擴(kuò)展的六位LED顯示電路該顯示電路只使用單片機(jī)的兩個(gè)端口P3.0、P3.1,并配以六片串入并出移位寄存器74LS164(LED驅(qū)動(dòng))。并配四個(gè)二級(jí)管來(lái)調(diào)整LED亮度。其中74LS164的引腳Q0~Q7為8位并行輸出端;引腳A、B為串行輸入端;引腳CLK為時(shí)鐘脈沖輸入端,在CLK脈沖的上升沿作用下實(shí)現(xiàn)移位,在CLK=0、清除端MR=1時(shí),74LS164保持本來(lái)數(shù)據(jù)狀態(tài);MR=0時(shí),74LS164輸出清零。其工作過(guò)程如下:①89S51的串行口設(shè)定在方式0移位寄存器狀態(tài)下,串行數(shù)據(jù)由P3.0發(fā)送,移位時(shí)鐘由P3.1送出②在移位時(shí)鐘的作用下,串行口發(fā)送緩沖器的數(shù)據(jù)一位一位地移入74LS164中。③6片74LS164串級(jí)擴(kuò)展為6個(gè)8位并行輸出口,分別連接到6個(gè)LED顯示屏的段選端作靜態(tài)顯示。顯示采用共陽(yáng)數(shù)碼管,其目的是為了簡(jiǎn)化限流電路的設(shè)計(jì)和實(shí)現(xiàn)亮度可調(diào)的規(guī)定。從圖中可以看出,該顯示電路采用了與一般的段電流電阻限流方式不一樣的顯示方式,由此減少了48個(gè)限流電阻,簡(jiǎn)化了硬件系統(tǒng)。每筆畫(huà)段二極管正常發(fā)光時(shí)的電流一般為10mA左右(電流大小還取決于數(shù)碼管是普亮、高亮還是超高亮類型的不一樣),其兩端壓降約為2.0V,也就是說(shuō),只要數(shù)碼管的公共端(COM)加+2.0以上電壓,即可滿足每筆畫(huà)段發(fā)光二極管的發(fā)光規(guī)定,并且合適調(diào)整此電壓值即可變化發(fā)光二極管的電流,從而到達(dá)調(diào)整亮度的目的。此電壓采用的是由4個(gè)硅二極管串聯(lián),運(yùn)用硅二級(jí)管兩端電壓降為0.7V,4個(gè)二級(jí)管產(chǎn)生的電壓降效果為4*0.7=2.8(V),輸入電壓為+5V,由此抵達(dá)每個(gè)數(shù)碼段上的電壓為2.2V左右,以保證發(fā)光段的正常亮度。移位寄存器74LS164僅有串入左右沒(méi)有譯碼作用,因此,在編寫顯示驅(qū)動(dòng)程序之前,首先需要計(jì)算列寫出與本程序電路對(duì)應(yīng)的LED段選碼[3],然后由2051的P3.0口送入74LS164的串行輸入端,再并行輸出到LED的段選端。需要指出的是,本電路采用SM110501K型號(hào)的共陽(yáng)極LED數(shù)碼管。這種穩(wěn)定的靜態(tài)顯示方式也省去了CPU的動(dòng)態(tài)掃描過(guò)程,此為本電路的又一特點(diǎn)。2.3校時(shí)電路設(shè)計(jì)目前,世界上應(yīng)用的校時(shí)系統(tǒng)有諸多種。有運(yùn)用電話網(wǎng)絡(luò)進(jìn)行校時(shí),尚有運(yùn)用電視信號(hào)的校時(shí)系統(tǒng)、衛(wèi)星校時(shí)系統(tǒng)、低頻(長(zhǎng)波)導(dǎo)航、授時(shí)信號(hào)系統(tǒng)、高頻(短波)時(shí)號(hào)廣播系統(tǒng)、運(yùn)用互聯(lián)網(wǎng)絡(luò)校時(shí)系統(tǒng)等等方式進(jìn)行自動(dòng)校時(shí)[12]。本設(shè)計(jì)采用的是手動(dòng)校時(shí),即由人根據(jù)目前時(shí)刻和日期進(jìn)行校時(shí),從而使時(shí)間到達(dá)較精確的措施。手動(dòng)校時(shí)重要運(yùn)用軟件進(jìn)行,從而減少了在硬件上的多出以及對(duì)電路板空間的更大規(guī)定。此措施雖然在時(shí)間的精確性上較差,不過(guò)其成本最低,也是本設(shè)計(jì)運(yùn)用至少材料做出最強(qiáng)功能的初衷。2.4電源設(shè)計(jì)單片機(jī)的供電方式有諸多種,可以采用電池供電,也可以采用外圍其他的電源電路進(jìn)行供電,多種供電方式也均有各自的優(yōu)缺陷。電池供電:可以節(jié)省很大的PCB空間,供電也為直流,不含任何交流成分,不過(guò)此供電方式也許會(huì)由于電路比較費(fèi)電而需要常常得更換電池,這樣也變向得提高了本設(shè)計(jì)的成本,因此本設(shè)計(jì)不采用此供電方式。外圍供電電路:此措施可認(rèn)為電路提供源源不停強(qiáng)勁的電源,不必為電路供電所緊張;不過(guò)此供電方式的電壓純度需要根據(jù)外圍電路的設(shè)計(jì)程度而定,并且假如將此電路設(shè)計(jì)到PCB上,也會(huì)占用很大的空間,違反了本設(shè)計(jì)簡(jiǎn)樸的原則。綜合上面兩種供電方式的優(yōu)缺陷,本設(shè)計(jì)采用的是運(yùn)用電腦USB接口進(jìn)行供電,電腦USB接口供電的最大電流為500mA,并且為穩(wěn)壓輸出,足夠本設(shè)計(jì)的需求,并且也不會(huì)占用PCB的空間,是一種非常不錯(cuò)的選擇,同步也是本設(shè)計(jì)的長(zhǎng)處。本設(shè)計(jì)在電源上的另一種長(zhǎng)處是考慮到斷電和狀況,從設(shè)計(jì)總思緒上講,規(guī)定斷電后數(shù)碼管可以不顯示,不過(guò)時(shí)間必須照常進(jìn)行??紤]到這一點(diǎn),配合時(shí)鐘芯片DS1302的雙電源防斷電的特點(diǎn),將時(shí)鐘芯片的另一種電源端用5V的紐扣電池進(jìn)行供電,這樣時(shí)間就不會(huì)由于斷電而重新初始化了。3程序設(shè)計(jì)軟件設(shè)計(jì)的重點(diǎn)在于秒信號(hào)的產(chǎn)生以及CPU與時(shí)鐘芯片之間的通信,顯示的實(shí)現(xiàn)及按鍵的處理等方面。基于軟件的秒脈沖信號(hào)一般有延時(shí)法和定期中斷法。延時(shí)法一般采用查詢方式,在延時(shí)子程序前后必然需要查詢和處理的程序,導(dǎo)致誤差的產(chǎn)生,因此其秒脈沖的產(chǎn)生,因此秒脈沖的精度不高。中斷法的原理是運(yùn)用單片機(jī)內(nèi)部的定期器溢出中斷來(lái)實(shí)現(xiàn)。例如,設(shè)定某定期器每100ms中斷1次,這10次的周期為1s,這種實(shí)現(xiàn)法的特點(diǎn)是精度高,秒脈沖的發(fā)生和其他處理可以并行進(jìn)行。[7]本系統(tǒng)即采用這種方式,實(shí)現(xiàn)的關(guān)鍵是定期器的工作方式的選擇和定期參數(shù)的計(jì)算確定。此外就是借助時(shí)鐘芯片,對(duì)于調(diào)時(shí)后的數(shù)據(jù)送給時(shí)鐘芯片并且及時(shí)從其中讀出更新后的數(shù)據(jù),然后送顯示。詳細(xì)內(nèi)容將在原程序中給于闡明。本系統(tǒng)設(shè)計(jì)中使用的晶振頻率為12MHz。3.1主控模塊設(shè)計(jì)NYCPU系統(tǒng)初始化開(kāi)始切換顯示周月日顯示刷新顯示切換?啟動(dòng)走時(shí)主模塊是系統(tǒng)軟件的主框架。構(gòu)造化程序設(shè)計(jì)一般有“自上而下”和“自下而上”NYCPU系統(tǒng)初始化開(kāi)始切換顯示周月日顯示刷新顯示切換?啟動(dòng)走時(shí)圖3-1主模塊的程序框圖3.2基本現(xiàn)實(shí)模塊設(shè)計(jì)基本現(xiàn)實(shí)模塊設(shè)計(jì)的重點(diǎn)是有顯示代碼獲得對(duì)應(yīng)的段碼,顯示段碼數(shù)據(jù)的串行發(fā)送,其程序流程如圖3-2所示。其中,時(shí)個(gè)位、分個(gè)位、秒個(gè)位的段碼必須加上小數(shù)點(diǎn),即帶小數(shù)點(diǎn)顯示時(shí)各位、分個(gè)位、秒個(gè)位,目的是以小數(shù)點(diǎn)符號(hào)替代時(shí)間分割符“:”,(一般的數(shù)碼管無(wú)法顯示字符“:”)。關(guān)顯示,以免顯示抖動(dòng)通過(guò)串口將時(shí)十位段碼送入對(duì)應(yīng)的74LS164將十個(gè)位段碼送入對(duì)應(yīng)的74LS164(以小數(shù)點(diǎn)替代:)將分十位和個(gè)位段碼送入對(duì)應(yīng)的74LS164將百分秒十位和個(gè)位段碼送入對(duì)應(yīng)的74LS164打開(kāi)顯示圖3-2基本顯示模塊的程序流程圖開(kāi)始3.3目前編輯位閃爍功能的實(shí)現(xiàn)關(guān)顯示,以免顯示抖動(dòng)通過(guò)串口將時(shí)十位段碼送入對(duì)應(yīng)的74LS164將十個(gè)位段碼送入對(duì)應(yīng)的74LS164(以小數(shù)點(diǎn)替代:)將分十位和個(gè)位段碼送入對(duì)應(yīng)的74LS164將百分秒十位和個(gè)位段碼送入對(duì)應(yīng)的74LS164打開(kāi)顯示圖3-2基本顯示模塊的程序流程圖開(kāi)始閃爍標(biāo)志為真將顯示全滅段碼送顯示緩沖區(qū)閃爍標(biāo)志為真將顯示全滅段碼送顯示緩沖區(qū)將目前設(shè)定的時(shí)間參數(shù)送顯示調(diào)用基本顯示程序模塊圖3-3目前編輯位閃爍功能實(shí)現(xiàn)的程序流程圖3.4時(shí)間設(shè)定模塊設(shè)計(jì)時(shí)間設(shè)定模塊的設(shè)計(jì)要點(diǎn)是按鍵的去抖處理。軟件發(fā)去抖動(dòng)的實(shí)質(zhì)是軟件延時(shí),即檢測(cè)到某一鍵狀態(tài)變化后延時(shí)一段時(shí)間,再檢測(cè)該按鍵的狀態(tài)與否還保持著,假如是,則作為按鍵處理,否則,視為抖動(dòng),不予理會(huì)。去抖的延時(shí)時(shí)間一般應(yīng)不小于20ms,否則會(huì)導(dǎo)致按一次鍵做多次處理,影響程序正常執(zhí)行。YYYYNYN設(shè)置模塊初始化將在編參數(shù)送顯示緩沖區(qū)將目前位的顯示代碼置暗代碼調(diào)基本顯示模塊刷新顯示目前編輯位左(右)移一位結(jié)束設(shè)定根據(jù)目前位的性質(zhì)分別進(jìn)行+1/-1/處理(含上下限判斷)NYN返回N圖3-4時(shí)間設(shè)定模塊流程圖閃爍標(biāo)志為真?嗎?+1/-1鍵嗎?設(shè)置鍵?目前的編輯是時(shí)(周)個(gè)位嗎設(shè)置鍵3.5CPU與時(shí)鐘芯片的通信在系統(tǒng)剛剛通電后,CPU將片內(nèi)初始的數(shù)據(jù)送給時(shí)鐘芯片即2月11日周六11點(diǎn)59分40秒,給時(shí)鐘芯片一種初始狀態(tài),然后時(shí)鐘芯片按照初始狀態(tài)開(kāi)始進(jìn)行,再把數(shù)據(jù)送給CPU然后進(jìn)行顯示。當(dāng)調(diào)整時(shí)間后,CPU將調(diào)整后的時(shí)刻數(shù)據(jù)數(shù)給時(shí)鐘芯片以再次將時(shí)鐘芯片初始化,然后時(shí)鐘芯片再將從此時(shí)刻開(kāi)始進(jìn)行計(jì)時(shí),并把數(shù)據(jù)送給CPU進(jìn)行送顯示。其流程圖如圖3-5CPUCPUDS1302系統(tǒng)復(fù)位送初值調(diào)整后送值讀取數(shù)據(jù)DS1302圖3-5CPU與時(shí)鐘芯片通信3.6系統(tǒng)調(diào)試方式3.6.1系統(tǒng)調(diào)試環(huán)境本系統(tǒng)所有的電路都設(shè)計(jì)在一塊電路板上,整個(gè)電路板構(gòu)造緊湊、分布合理,便于加工和調(diào)試,并且減少了互相間以及監(jiān)控器與其他儀器間的干擾。電路焊接好過(guò)后進(jìn)行簡(jiǎn)樸的調(diào)試、定標(biāo)過(guò)后,系統(tǒng)便能對(duì)的、可靠的運(yùn)行。3.6.2軟件調(diào)試 本設(shè)計(jì)的軟件部分,所有采用C語(yǔ)言編寫,軟件模塊較多,程序代碼較長(zhǎng),因此采用分塊調(diào)試的措施來(lái)調(diào)試程序。首先用單片機(jī)匯編程序編譯器(keiluVision2)調(diào)試,無(wú)誤后,再通過(guò)編程器燒到單片機(jī)用裝置試驗(yàn)調(diào)試,采用了自下到上的調(diào)試措施,即先單獨(dú)調(diào)試好每一項(xiàng)功能,然后再連接成一種完整的系統(tǒng)調(diào)試。根據(jù)試驗(yàn)成果和指標(biāo)對(duì)照,若有不符,再修改,直到程序完全對(duì)的為止。這樣保證了軟件編寫的對(duì)的性和可行性。3.6.3硬件調(diào)試將程序燒入AT89S51中,并將其安裝在硬件電路中,然后通電。先調(diào)整看按鍵工作與否正常,數(shù)碼管與否能正常顯示。在正常待機(jī)顯示狀態(tài)下,按動(dòng)顯示狀態(tài)切換鍵,看能否進(jìn)行(時(shí)、分、秒和周、月、日之間的)切換,并在兩種顯示示狀態(tài)下擦去SET鍵,看能否啟動(dòng)和關(guān)閉校時(shí)狀態(tài),最佳在校時(shí)狀態(tài)按動(dòng)左移、右移、加鍵和減鍵,驗(yàn)證其功能與否完善。在調(diào)試過(guò)程中碰到了諸多的問(wèn)題:(1)LED不顯示。由于沒(méi)有買到PCB板中那種封裝的LED,因此在焊接的時(shí)候采用此外一種封裝的LED來(lái)替代,采用將從PCB板上的每個(gè)管腳連線出來(lái)與此外一塊板子上的LED管腳對(duì)應(yīng)相連,由于連線過(guò)多,有某些線連錯(cuò)或者虛焊,在檢查出錯(cuò)誤后改正。(2)按下按鍵無(wú)動(dòng)作。檢查后發(fā)目前焊接過(guò)程中輕觸按鍵的內(nèi)部構(gòu)造被破壞,不能正常的起到左右,后將其換掉。3.6.4調(diào)試成果基本實(shí)現(xiàn)了設(shè)計(jì)的規(guī)定,長(zhǎng)時(shí)間運(yùn)行輕易有誤差,在穩(wěn)定性方面尚有待改善。
結(jié)論/展望我在這一次數(shù)字電子鐘的設(shè)計(jì)過(guò)程中,很是受益匪淺。通過(guò)對(duì)自己在大學(xué)三年時(shí)間里所學(xué)的知識(shí)的回憶,并充足發(fā)揮對(duì)所學(xué)知識(shí)的理解和對(duì)畢業(yè)設(shè)計(jì)的思索及書(shū)面體現(xiàn)能力,最終完畢了。這為自己此后深入深化學(xué)習(xí),積累了一定寶貴的經(jīng)驗(yàn)。撰寫論文的過(guò)程也是專業(yè)知識(shí)的學(xué)習(xí)過(guò)程,它使我運(yùn)用已經(jīng)有的專業(yè)基礎(chǔ)知識(shí),對(duì)其進(jìn)行設(shè)計(jì),分析和處理一種理論問(wèn)題或?qū)嶋H問(wèn)題,把知識(shí)轉(zhuǎn)化為能力的實(shí)際訓(xùn)練。培養(yǎng)了我運(yùn)用所學(xué)知識(shí)處理實(shí)際問(wèn)題的能力。通過(guò)這次課程設(shè)計(jì)我發(fā)現(xiàn),只有理論水平提高了;才可以將書(shū)本知識(shí)與實(shí)踐相整合,理論知識(shí)服務(wù)于教學(xué)實(shí)踐,以增強(qiáng)自己的動(dòng)手能力。這個(gè)試驗(yàn)十分故意義我獲得很深刻的經(jīng)驗(yàn)。通過(guò)這次課程設(shè)計(jì),我們懂得了理論和實(shí)際的距離,也懂得了理論和實(shí)際想結(jié)合的重要性,,也從中得知了諸多書(shū)本上無(wú)法得知的知識(shí)。我們的學(xué)習(xí)不僅要立足于書(shū)本,以處理理論和實(shí)際教學(xué)中的實(shí)際問(wèn)題為目的,還要以實(shí)踐相結(jié)合,理論問(wèn)題即實(shí)踐課題,處理問(wèn)題即課程研究,學(xué)生自己就是一種專家,通過(guò)自己的手來(lái)處理問(wèn)題比用腦子處理問(wèn)題愈加深刻。學(xué)習(xí)就應(yīng)當(dāng)采用理論與實(shí)踐結(jié)合的方式,理論的問(wèn)題,也就是實(shí)踐性的課題。這種做法既有助于完畢理論知識(shí)的鞏固,又有助于帶動(dòng)實(shí)踐,處理實(shí)際問(wèn)題,加強(qiáng)我們的動(dòng)手能力和處理問(wèn)題的能力。在試驗(yàn)過(guò)程中,也許會(huì)出現(xiàn)這樣或那樣的錯(cuò)誤,但只要戒躁,安下心來(lái),一步一步檢查電路,多仿真,多嘗試,必要時(shí)和同學(xué)多討論,所有問(wèn)題都會(huì)得到處理。尤其是在自己嘗試、檢查了多遍,但編譯還錯(cuò)誤時(shí),更要靜下心來(lái),否則只會(huì)使?fàn)顩r愈加糟糕。只有冷靜的心情,睿智的頭腦才能使自己無(wú)堅(jiān)不摧,完美完畢試驗(yàn)。本次試驗(yàn)讓我學(xué)到了諸多,不僅在知識(shí)上,同步也在人格上,使我自身的綜合素質(zhì)得到了提高。認(rèn)識(shí)到,光有聰穎的頭腦是不夠的,更為重要的是要具有堅(jiān)韌的毅力和勇于思索問(wèn)題的品質(zhì),同步,團(tuán)體合作能力、創(chuàng)新精神也是不可或缺的。但愿能有機(jī)會(huì)多做這樣的試驗(yàn),提高自己的綜合素質(zhì),加強(qiáng)自己的實(shí)踐能力,豐富自己的頭腦,為后來(lái)的學(xué)習(xí)、工作打下結(jié)實(shí)的基礎(chǔ)。
致謝大學(xué)生涯行將結(jié)束,不過(guò)在那之前我們都必須得完畢畢業(yè)設(shè)計(jì)的工作,快樂(lè)的是我在今天完畢了這項(xiàng)工作,目前,我要對(duì)老師,同學(xué),學(xué)校,家人體現(xiàn)最真誠(chéng)的謝意。首先要提到的是我的畢業(yè)設(shè)計(jì)指導(dǎo)老師楊其鋒老師,這是我大學(xué)期間接觸最多的老師,他有著熱情活潑的教學(xué)方式并對(duì)學(xué)生體諒負(fù)責(zé)對(duì)工作認(rèn)真嚴(yán)謹(jǐn)。盡管楊老師平時(shí)自己也有教學(xué)上的任務(wù),但他對(duì)我的畢業(yè)設(shè)計(jì)一點(diǎn)也沒(méi)有省心同學(xué)的協(xié)助也是不能忽視的。我是一種比較擅長(zhǎng)進(jìn)行團(tuán)體工作的人,而畢業(yè)設(shè)計(jì)這樣的任務(wù)其實(shí)對(duì)我來(lái)說(shuō)是很大的考驗(yàn),慶幸在我完畢畢業(yè)設(shè)計(jì)的過(guò)程中,無(wú)論是硬件還是軟件上,本組其他同學(xué)和班級(jí)同學(xué)對(duì)我提供了很大的協(xié)助,我的能力相對(duì)較差,沒(méi)有他們耐心的協(xié)助我確實(shí)沒(méi)有措施完畢設(shè)計(jì)任務(wù)。最終則要感謝母校四年來(lái)提供應(yīng)我的優(yōu)質(zhì)的教學(xué)服務(wù)和生活,所有任課老師的認(rèn)真教學(xué),是你們讓我的專業(yè)知識(shí)得到豐富,父母親對(duì)我學(xué)習(xí)生活上的關(guān)懷,你們是我永遠(yuǎn)的后盾。
參照文獻(xiàn)[1]沈紅衛(wèi)基于單片機(jī)的智能系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M].北京.電子工業(yè)出版社,.(70-85)[2]樓然苗51系列單片機(jī)設(shè)計(jì)實(shí)例[M].北京.北京航空航天大學(xué)出版社,.(23-45)[3]董傳岱數(shù)字電子技術(shù)[M].石油大學(xué)出版社,.(45-63)[4]吳秀清微機(jī)原理與接口技術(shù)[M].中國(guó)科技大學(xué)出版社,.(20-35)[5]何立民單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1995.(55-67)[6]李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1990.(46-56)[7]劉飛等兩種數(shù)字鐘電路設(shè)計(jì)比較[J]湖北師范學(xué)院學(xué)報(bào),2(23)(40-43)[8]胥筱門單片機(jī)系統(tǒng)的試驗(yàn)及應(yīng)用[J]電子制作1999(6)(20-30)[9]鄭惠芳單片機(jī)報(bào)時(shí)時(shí)鐘控制系統(tǒng)的一種設(shè)計(jì)措施[J]福建廣播電視大學(xué)學(xué)報(bào)(6)(63-67)[10]張柱濤等基于單片機(jī)的多功能智能鐘的設(shè)計(jì)[A]山東大學(xué)學(xué)報(bào),5(23)(20-24)[11]AdelS.sedra&KennetchCSmithMicroelectronicCircuits.CBCCollegeOxfordUniversityPress,1998.(122-126)[12]JacobMillman&ArvinGrabel,Microelectronics.McGraw-HillBookCompany;NewYork,.(231-241)[13]DavidA.HodgsandHoraceGjackson.AnalysisendandDesignofDigitalIntegratedCircuits,NewYork,McGraw-Hill,1999.(1123-1133)
附錄附錄A數(shù)字鐘系統(tǒng)設(shè)計(jì)原理圖附圖A數(shù)字鐘系統(tǒng)原理圖附錄B系統(tǒng)設(shè)計(jì)程序#include<reg51.h>#defineuintunsignedint#defineucharunsignedcharsbitACC0=ACC^0;sbitACC7=ACC^7;sbitjiak=P2^3;sbityouyik=P2^2;sbitzuoyik=P2^1;sbitjiank=P2^0;sbitint1k=P3^3;sbitCLK=P3^5;//1302時(shí)鐘信號(hào)線sbitIO=P3^6;//1302的I/O數(shù)據(jù)線sbitRST=P3^7;//1302的RST復(fù)位線bitflagb=1,xshi=1;//校準(zhǔn),顯示切換標(biāo)志位voidInputByte(uchar);//輸入1ByteucharOutputByte(uchar);//輸出1BytevoidW1302(uchar,uchar);ucharR1302(uchar);uchartab[6],tabb[6],tabbb[6];voidkey();voiddisplay();voidinit();voiddisplay1();voidinit1();uchara,c,i,b;//c表達(dá)中斷次數(shù)a表達(dá)數(shù)碼管移位次數(shù)uinttemp;ucharmiao,fen,shi;ucharri,yue,week;uchartab1[7]={0x40,0x59,0x11,0x11,0x02,0x06,0x06};uchartabb1[7]={0x01,0x01,0x01,0x01,0x01,0x01,0x01};ucharcodetab2[10]={0x88,0Xbe,0Xc4,0X94,0Xb2,0X91,0X81,0Xbc,0X80,0X90};ucharcodetabb2[10]={0x88,0Xbe,0Xc4,0X94,0Xb2,0X91,0X81,0Xbc,0X80,0X90};sbitzy=P2^1;ucharflag,zyflag,yyflag;//延時(shí)1msvoiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}//往1302寫入1Byted為寫入的數(shù)據(jù)入口參數(shù)voidInputByte(uchardate){ uchari; ACC=date; for(i=8;i>0;i--) { IO=ACC0; CLK=1; CLK=0; ACC=ACC>>1; }}//從1302讀取1Byte數(shù)據(jù)返回值A(chǔ)CCucharOutputByte(void){ uchari; for(i=8;i>0;i--) { ACC=ACC>>1; ACC7=IO; CLK=1; CLK=0; } return(ACC);}//往1302寫入數(shù)據(jù)先寫地址后寫數(shù)據(jù)ucADDucDA是入口參數(shù)voidW1302(ucharaddr,uchardate){ RST=0; CLK=0; RST=1; InputByte(addr);//寫地址 InputByte(date);//寫1Byte數(shù)據(jù) CLK=1; RST=0;}//讀取1302某地址的數(shù)據(jù)先寫地址后讀數(shù)據(jù)ucAddr入口地址ucDa是返回值ucharR1302(ucharaddr){ uchardate; RST=0; CLK=0; RST=1; InputByte(addr);//寫地址 date=OutputByte();//讀1Byte數(shù)據(jù) CLK=1; RST=0; return(date);}//初始化設(shè)置初始值voidinit(){ uchari1; ucharaddr=0x80; W1302(0x8e,0x00);//控制命令字節(jié)WP=0寫操作 for(i1=0;i1<7;i1++) { W1302(addr,tab1[i1]);//秒分時(shí)日月星期年 addr+=2; } W1302(0x90,0xa6); W1302(0x8e,0x80);//控制命令字節(jié)WP=1寫保?}voidinit1(){ uchari1; ucharaddrb=0x86; W1302(0x8e,0x00);//控制命令字節(jié)WP=0寫操作 for(i1=0;i1<7;i1++) { W1302(addrb,tabb1[i1]);//秒分時(shí)日月星期年 addrb+=2; } W1302(0x90,0xa6); W1302(0x8e,0x80);//控制命令字節(jié)WP=1寫保?}voiddisplay(){ ucharCurtime[7]; uchari,i2; ucharaddr=0x81; for(i2=0;i2<7;i2++) { Curtime[i2]=R1302(addr);//格式秒分時(shí)日月星期年 addr+=2; } miao=Curtime[0]; fen=Curtime[1]; shi=Curtime[2]; tab[5]=miao%16; tab[4]=miao/16; tab[3]=fen%16; tab[2]=fen/16; tab[1]=shi%16; tab[0]=shi/16; for(i=0;i<6;i++) { SBUF=tab2[tab[i]]; while(!TI); TI=0; } delay(20);}voiddisplay1(){ ucharCurtime[7]; uchari,i2; ucharaddrb=0x87; for(i2=0;i2<7;i2++) { Curtime[i2]=R1302(addrb);//格式秒分時(shí)日月星期年 addrb+=2; } ri=Curtime[0]; yue=Curtime[1]; week=Curtime[2]; tabb[5]=ri%16; tabb[4]=ri/16; tabb[3]=yue%16; tabb[2]=yue/16; tabb[1]=week%16; tabb[0]=week/16; for(i=0;i<6;i++) { SBUF=tabb2[tabb[i]]; while(!TI); TI=0; } delay(20);}//主函數(shù)voidmain(){ zyflag=1; display(); if(shi==0x00&&fen==0x00&&miao==0x80)init(); if(week==0x00&&yue==0x00&&ri==0x80)init1(); EA=1; EX1=1; IT1=1; while(1) { if(zuoyik==0){while(!zuoyik);xshi=~xshi;flagb=~flagb;} if(xshi==1) { if(c!=1)display();//時(shí)分秒 } else { if(c!=1)display1();//星期月日 } }}voidint1()interrupt2{ while(1) { if(int1k==0) //掃描p3 { delay(20); if(int1k==0) { while(!int1k); W1302(0x8e,0x00); a=1; c++; if(c==2)c=0; } } if(c==1) { if(youyik==0)//掃描鍵盤 { delay(20); if(youyik==0) { while(!youyik); a+=2; if(a==7)a=1; } } if(zuoyik==0) { delay(20); if(zuoyik==0) { while(!zuoyik); if(a==1) a=7; a-=2; } } if(flagb==1) for(i=0;i<6;i++) {tabbb[i]=tab[i]; } else for(i=0;i<6;i++){tabbb[i]=tabb[i]; }; for(i=0;i<6;i++) { if(a==i) { b=a; SBUF=0xff; } elseSBUF=tab2[tabbb[i]]; while(!TI); TI=0; } delay(100); if(b==a) { if(jiak==0) { delay(20); if(jiak==0) { while(!jiak); switch(b) { case1: if(flagb==1) {tab[1]++; if(tab[1]==10) { tab[1]=0; tab[0]++; } if(tab[0]==2&&tab[1]==4) { tab[0]=0; tab[1]=0; } shi=tab[0]*10+tab[1]; W1302(0x84,(shi/10)*16+shi%10); break; } else {tabb[1]++; if(tabb[1]==8) { tabb[1]=1; tabb[0]=0; } if(tabb[0]==0&&tabb[1]==8) { tabb[0]=0; tabb[1]=0; } week=tabb[0]*10+tabb[1]; W1302(0x8a,(week/10)*16+week%10); break; } case3: if(flagb==1) {tab[3]++; if(tab[3]==10) { tab[3]=0; tab[2]++; } if(tab[2]==6&&tab[3]==0) { tab[2]=0; tab[3]=0; } fen=tab[2]*10+tab[3]; W1302(0x82,(fen/10)*16+fen%10); break; } else {tabb[3]++; if(tabb[3]==10) { tabb[3]=0; tabb[2]++; } if(tabb[2]==1&&tabb[3]==3) { tabb[2]=0; tabb[3]=1; } yue=tabb[2]*10+tabb[3]; W1302(0x88,(yue/10)*16+yue%10); break; } case5: if(flagb==1) {tab[5]++; if(tab[5]==10) {
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共財(cái)政政策的方向與挑戰(zhàn)試題及答案
- 解析西方國(guó)家的危機(jī)治理與政策響應(yīng)研究試題及答案
- 國(guó)家與社會(huì)的關(guān)系在西方政治中的表現(xiàn)試題及答案
- 如何選擇適合的參考書(shū)籍試題及答案
- 網(wǎng)絡(luò)工程師考試備考全景回顧與2025年試題與答案
- 未來(lái)西方政治制度與公共財(cái)務(wù)管理的探討試題及答案
- 西方國(guó)家外交政策的倫理基礎(chǔ)試題及答案
- 軟件設(shè)計(jì)師市場(chǎng)定位試題及答案
- 軟件設(shè)計(jì)師考試如何正確使用工具與試題與答案
- 安全防火教育試題及答案
- IP授權(quán)合作框架協(xié)議
- 2025屆江蘇省南師附中高考數(shù)學(xué)考前最后一卷預(yù)測(cè)卷含解析
- 審計(jì)溝通課件
- 糖尿病低血糖的預(yù)防處理
- 醫(yī)療器械監(jiān)督管理?xiàng)l例培訓(xùn)2024
- 咨詢類合同合同范例
- 2024年全國(guó)黃金行業(yè)職業(yè)技能競(jìng)賽(礦山救護(hù)工)理論考試題庫(kù)(含答案)
- 刑法總論:刑事法治的中國(guó)特色智慧樹(shù)知到答案2024年湘潭大學(xué)
- 鋼琴調(diào)律服務(wù)合同
- 愛(ài)國(guó)英雄霍去病歷史人物介紹
- DZ/T 0430-2023 固體礦產(chǎn)資源儲(chǔ)量核實(shí)報(bào)告編寫規(guī)范(正式版)
評(píng)論
0/150
提交評(píng)論