電子類畢業(yè)設(shè)計_第1頁
電子類畢業(yè)設(shè)計_第2頁
電子類畢業(yè)設(shè)計_第3頁
電子類畢業(yè)設(shè)計_第4頁
電子類畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

緒論20世紀末,電子技術(shù)得到了極速的發(fā)展,毫無疑問,在其推動下,當代電子產(chǎn)品以及多個高科技產(chǎn)品幾乎滲入到了社會的各個領(lǐng)域,這有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度以及綜合科技水平的提高,但產(chǎn)品更新?lián)Q代的頻率也越來越快。隨著科技的發(fā)展社會的進步和全球化競爭的日益激烈,人們對數(shù)字鐘的規(guī)定也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功效電子鐘不管在性能還是在樣式亦或是用途上都發(fā)生了重大的變化,許多電子鐘都已含有電子鬧鐘、電子秒表、溫度檢測等功效。同時單片機在多功效數(shù)字鐘中的應(yīng)用已是非常普遍的[1]。多功效電子時鐘除了含有時鐘的功效外還能夠包含對環(huán)境溫度檢測的功效。溫度是一種最基本的環(huán)境參數(shù)。在各個行業(yè)生產(chǎn)及日常生活中,對溫度的測量及控制始終占據(jù)著非常重要的地位?,F(xiàn)在,典型的溫度檢測控制系統(tǒng)由模擬式溫度傳感器、A/D轉(zhuǎn)換電路和多個單片機構(gòu)成。由于模擬式溫度傳感器輸出的模擬信號必須通過A/D轉(zhuǎn)換環(huán)節(jié)轉(zhuǎn)換為數(shù)字信號后才干與單片機等微解決器接口進行讀寫的操作,因此硬件電路會比較復(fù)雜,成本較高。而以DS18B20為代表的新型單線總線數(shù)字式溫度傳感器集溫度測量和A/D轉(zhuǎn)換于一體,這類傳感器能夠直接輸出數(shù)字量,同時與單片機接口電路構(gòu)造非常簡樸,能夠廣泛用于距離遠、節(jié)點分布多的場合,含有較強推廣應(yīng)用價值。[2]數(shù)字電子時鐘是采用數(shù)字電路實現(xiàn)對時,分,秒數(shù)字顯示的裝置,廣泛用于個人家庭,車站,碼頭辦公室等公共場合,成為人們?nèi)粘I钪胁豢苫蛉钡谋匦杵?,由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,數(shù)字時鐘的精度遠遠超出傳統(tǒng)鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,并且大大地擴展了鐘表原先的報時功效。例如定時自動報警、準時自動打鈴、時間程序自動控制、定時廣播、自動啟閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至多個定時電器的自動啟用等,全部這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字時鐘及擴大其應(yīng)用,有著非?,F(xiàn)實的意義。計算機特別是以微細加工技術(shù)支持的微型計算機技術(shù)飛速發(fā)展,其應(yīng)用滲入到了各行各業(yè)。以單片機、嵌入式解決器、數(shù)字信號解決器(DSP)為核心的計算機系統(tǒng),以其軟硬件可裁剪、高度的實時性、高度的可靠性、功效齊全、低功耗、適應(yīng)面廣等諸多優(yōu)點而得到極為廣泛的應(yīng)用?,F(xiàn)在計算機硬件技術(shù)向巨型化、微型化和單片機化三個方向高速發(fā)展。自1975年美國德州儀器公司(TexasInstruments)第一塊微型計算機芯片TMS-1000問世以來,在短短的間,單片機技術(shù)已發(fā)展成為計算機領(lǐng)域一種非常有前途的分子,它有自己的技術(shù)特性、規(guī)范和應(yīng)用領(lǐng)域。單片機是自動控制系統(tǒng)的核心部件,重要用于工業(yè)控制、智能化儀器儀表、家用電器中。它含有體積小、性能突出可靠性高(某些方面的性能指標大大優(yōu)于通用微機中央解決器)、價格低廉等一系列優(yōu)點,應(yīng)用領(lǐng)域不停擴大,除了工業(yè)控制、智能化儀表、通信和家用電器外,在智能化高檔電子玩具產(chǎn)品中也大量采用單片機芯片作為核心控制部件,已經(jīng)滲入到人們工作和生活的各個角落,有力地推動了各行業(yè)的技術(shù)改造和產(chǎn)品的更新?lián)Q代,前景廣闊。數(shù)字鐘含有單片機最小系統(tǒng)的基本構(gòu)成,對于我們理解單片機有很大的協(xié)助。本設(shè)計通過用對一種能實現(xiàn)可調(diào)的實時時鐘顯示功效的時間系統(tǒng)的設(shè)計學(xué)習(xí),具體介紹了51單片機應(yīng)用中的數(shù)據(jù)轉(zhuǎn)換顯示,數(shù)碼管顯示原理,靜態(tài)掃描顯示原理,單片機的定時中斷原理等,從而達成學(xué)習(xí)、理解單片機有關(guān)指令在各方面的應(yīng)用。對于單片機學(xué)習(xí)者而言,這個程序基本上是一道門檻,掌握了電子時鐘程序,基本上就能夠說掌握了51單片機。1數(shù)字鐘的功效實現(xiàn)與設(shè)計方案1.1數(shù)字鐘的實現(xiàn)形式數(shù)字鐘既能夠通過純硬件實現(xiàn),也能夠通過軟硬件結(jié)合實現(xiàn),根據(jù)電子時鐘的核心部件——秒信號的產(chǎn)生原理,普通有三鐘形式:(1)用NE555時基電路的形式采用NE555時基電路或其它震蕩電路產(chǎn)生秒脈沖信號,作為秒加法電路的時鐘信號或微解決器的外部中斷輸入信號,可構(gòu)成電子時鐘。由NE555構(gòu)成的秒脈沖發(fā)生器電路如圖1-1所示。輸出的脈沖信號V0的頻率F=1.443/(RA+2RB)×C,可通過調(diào)節(jié)這3個參數(shù),使輸V0的頻率為精確的1Hz。圖1-1基于555的秒脈沖發(fā)生器(2)采用石英鐘專用芯片的實現(xiàn)形式采用石英鐘專用計時芯片實現(xiàn)的電子鐘,含有實現(xiàn)簡樸、計時精度高的特點。石英計時芯片(簡稱“機芯”)比較多,常見的有STP5512F、SM5546A和D60400等?,F(xiàn)基于5512F的2秒輸出信號作為秒加法電路的計時脈沖,可實現(xiàn)電子時鐘。5512F的引腳如圖1-2所示。112348765V+SCAKSC1M0BPM1GND圖1-25512F引腳圖其中,引腳7、8為外接晶振及振蕩電路,引腳1接電源正極,電源為1.5伏,引腳3、4原為指針用步進電機線圈的輸出驅(qū)動端,這里可用3腳作為脈沖輸出,頻率決定于外接晶振的頻率。(3)采用基于單片機的實現(xiàn)形式運用單片機的智能性,可方便的實現(xiàn)含有智能數(shù)字鐘的設(shè)計。并且,微解決系統(tǒng)含有時鐘振蕩系統(tǒng),運用系統(tǒng)時鐘并借助微解決器的定時/計數(shù)器功效能夠?qū)崿F(xiàn)數(shù)字鐘的功效。本設(shè)計采用AT89S51單片機設(shè)計。1.2方案的擬定能夠從下列幾個方面來擬定電子時鐘的設(shè)計方案。1.2.1微解決器采用ATMEL的AT89S51微解決器,是基于下列幾個因素:(1)內(nèi)含F(xiàn)lash存儲器,這在系統(tǒng)的開發(fā)過程中,可隨意進行程序修改,既便錯誤編程之后仍能夠重新編程,故不存在廢品且大大縮短了程序的開發(fā)周期;同時在系統(tǒng)工作過程中能有效地保存數(shù)據(jù)信息。(2)采用靜態(tài)時鐘方式,節(jié)省電能,這對于減少便攜式產(chǎn)品的功耗十分有利。(3)由于它是以8031核構(gòu)成的,因此它與MCS251系列單片機是兼容的(4)AT89S51為51內(nèi)核,仿真調(diào)試軟硬件資源豐富;(5)性價比高,貨源充足;(6)DIP-40封裝,體積較大,但更方便編程及定義管腳;(7)為E2PROM程序存儲介質(zhì),1000次以上擦/寫周期,便于變成調(diào)試;(8)含有低功耗工作模式,便于進行低功耗設(shè)計;(9)工作電壓范疇較寬,便于交直流供電。1.2.2顯示電路就時鐘而言,普通可采用液晶顯示或數(shù)碼管顯示。對于普通的段式液晶屏,需要專門的驅(qū)動電路,并且液晶顯示作為一種被動顯示,可視性相對較差;對于含有驅(qū)動電路和微解決器接口的液晶顯示模塊(字符或點陣),普通多采用并行機接口,對于微解決器的接口規(guī)定較高,占用資源多。另外,89S51本身沒有專門的液晶驅(qū)動接口,因此,本時鐘設(shè)計采用了數(shù)碼管顯示方式。數(shù)碼管作為一種主動顯示屏件,含有亮度高、價格便宜等優(yōu)點,并且市場上也有專門的時鐘顯示組合數(shù)碼管。1.2.3按鍵電路考慮到對時鐘以及在有限個數(shù)碼管內(nèi)實現(xiàn)兩組顯示數(shù)據(jù)的切換。本時鐘系統(tǒng)設(shè)五個按鍵:(1)SET鍵,重要用于啟動和關(guān)閉設(shè)定參數(shù)狀態(tài)兩個功效:①在復(fù)位后的時鐘(或日期)顯示狀態(tài)下,用于啟動設(shè)定時間(或日期)參數(shù);②在設(shè)定對的狀態(tài)后,用于結(jié)束設(shè)定參數(shù)狀態(tài)。(2)+1鍵,在SET狀態(tài)下,用于對現(xiàn)在設(shè)定位(編輯位)進行加1操作,根據(jù)正在編輯的現(xiàn)在位的含義(時位、分位、秒位或星期、月份、日期)自動進行數(shù)據(jù)的上限和下限判斷。例如,對12小時制,當小時的兩位顯示為12時,再按此鍵,則自動變?yōu)轱@示為“01”。(3)-1鍵,在SET狀態(tài)下,用于對現(xiàn)在設(shè)定位(編輯位)進行減1操作,根據(jù)正在編輯的現(xiàn)在位的含義(時位、分位、秒位或星期、月份、日期)自動進行數(shù)據(jù)的上限和下限判斷。例如,對12小時制,當小時的兩位顯示為01時,再按此鍵,則自動變?yōu)轱@示為12.(4)左移鍵/顯示狀態(tài)切換鍵,在SET狀態(tài)下,用于對現(xiàn)在設(shè)定位(編輯位)進行左移位操作,每次移動一種變量(即兩個數(shù)碼管);在待機狀態(tài)下,用于顯示(時、分、秒和星期、月、日)的轉(zhuǎn)換。(5)右移鍵,用于對現(xiàn)在設(shè)定位(編輯位)進行右移位操作,每次移動一種變量(即兩個數(shù)碼管)。2數(shù)字鐘的硬件系統(tǒng)設(shè)計數(shù)字時鐘硬件部分的設(shè)計應(yīng)涉及秒信號發(fā)生器、時間顯示電路、按鍵電路、供電電路等幾部分。2.1數(shù)字時鐘的硬件系統(tǒng)框架電子時鐘的系統(tǒng)框架入圖2-1所示。CPUCPU按鍵電路復(fù)位等輔助電路電源系統(tǒng)數(shù)碼管顯示電路校時電路圖2-1數(shù)字鐘的系統(tǒng)框架2.2數(shù)字時鐘的主機電路設(shè)計數(shù)字時鐘的主電路指的是圖1中框內(nèi)部分,重要涉及到微解決器電路和按鍵、按鈕電路。主機的設(shè)計具體地說有:1、系統(tǒng)控制芯片的選擇2、系統(tǒng)時鐘電路設(shè)計;3、系統(tǒng)復(fù)位電路設(shè)計;4、按鍵與按鈕電路設(shè)計。2.2.1系統(tǒng)控制芯片CPU(AT89S51)的選擇AT89C系列單片機是Atmel公司1993年開始研制生產(chǎn)的,優(yōu)越的性能價格比使其成為頗受歡迎的8位單片機。AT89C系列與MCS-51系列單片機相比有兩大優(yōu)勢:第一,片內(nèi)程序存儲器采用閃速存儲器,使程序的寫入更加方便;第二,功效更加強大,使其在應(yīng)用中更廣泛[6]。(1)AT89S51重要性能:AT89S51是Atmel公司生產(chǎn)的帶4KB閃速可編程可擦除只讀存儲器的8位單片機,它含有以下重要特性:eq\o\ac(○,1)AT89S51為51內(nèi)核;eq\o\ac(○,2)內(nèi)部帶4KB可編程閃速存儲器(E2PROM),壽命為1000次擦/寫循環(huán),數(shù)據(jù)保存時間為;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)三極程序存儲器保密鎖定;eq\o\ac(○,7)128bytes內(nèi)部RAM;eq\o\ac(○,8)32個外部雙向輸入/輸出可編程I/O線;、eq\o\ac(○,9)2個16位定時器/計數(shù)器;eq\o\ac(○,10)6個中斷源;eq\o\ac(○,11)兩個全又工串行通信口;eq\o\ac(○,12)看門狗(WDT電路);eq\o\ac(○,13)可編程串行通道;eq\o\ac(○,14)片內(nèi)振蕩器和時鐘電路;eq\o\ac(○,15)低功耗的閑置和掉電模式;(2)AT89S51內(nèi)部構(gòu)造及引腳描述AT89S51單片機的內(nèi)部與8051單片機的內(nèi)部構(gòu)造完全一致,區(qū)別只是將存儲器改為Flash存儲。其引腳配備如圖2-2所示。 圖2-2AT89S51引腳配備它是一種有40個引腳排列直插式的芯片,其引腳描述以下:VCC:供電電壓。GND:接地。P0口:P0口為一種8位漏級開路雙向I/O口,每腳可吸取8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它能夠被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。

P1口:P1口是一種內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接受輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接受。P2口:P2口為一種內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接受,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它運用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功效寄存器的內(nèi)容。P2口在FLASH編程和校驗時接受高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接受輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口除了作為普通I/O口,尚有第二功效:P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接受某些控制信號。I/O口作為輸入口時有兩種工作方式,即所謂的讀端口與讀引腳。讀端口時事實上并不從外部讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線,通過某種運算或變換后再寫回到端口鎖存器。只有讀端口時才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。89C51的P0、P1、P2、P3口作為輸入時都是準雙向口。除了P1口外P0、P2、P3口都尚有其它的功效。RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一種ALE脈沖。如想嚴禁ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微解決器在外部執(zhí)行狀態(tài)ALE嚴禁,置位無效。PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管與否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。從上述引腳闡明看出,AT89S51提供了外部擴展存儲器與I/O設(shè)備所需的地址、數(shù)據(jù)、控制信號,因此運用AT89S51構(gòu)成的單片及應(yīng)用系統(tǒng)能夠在AT89S51之外擴展存儲器或I/O設(shè)備,但是其本身所含有的的各項功效及模塊也闡明,AT89S51本身也構(gòu)成了最小的單片機系統(tǒng)。(3)振蕩器振蕩器特性:XTAL1和XTAL2分別構(gòu)成片內(nèi)振蕩器的反相放大器的輸入和輸出端,如圖2-3所示??刹捎檬⒕w或陶瓷振蕩器構(gòu)成振蕩器。要從外部時鐘源驅(qū)動AT89S51,則XTAL2應(yīng)懸空,而XTAL1的驅(qū)動如圖2-4所示。由于輸入到內(nèi)部時鐘電路通過一種二分頻觸發(fā)器,故不需要對外部時鐘信號的工作周期提出特殊規(guī)定,但它必須恪守最小和最大電壓高低電平的時間規(guī)范。圖2-3振蕩的外部連接辦法圖2-4外部時鐘驅(qū)動構(gòu)造(4)特殊功效寄存器SFR與8051單片機特殊功效寄存器相對應(yīng),AT89S51片內(nèi)設(shè)立了19個特殊功效寄存器,統(tǒng)稱為特殊功效寄存器塊SFR,它們的地址散布在80H~0F0H區(qū)域內(nèi)。(5)低功耗工作模式AT89S51優(yōu)良中低功耗工作模式:待機方式與掉電方式。eq\o\ac(○,1)待機方式(休眠方式)當運用軟件使待機方式位ADL(PCON.0)=0時,單片機進入空閑方式。此時,CPU處在休眠狀態(tài),而片內(nèi)全部其它外圍設(shè)備都保持工作狀態(tài),片內(nèi)RAM和全部特殊功效寄存器內(nèi)容保持不變。在待機方式下,當晶振fosc=12MHz,電源電壓VCC=6V時,電源電流ICC從20Ma降至5Ma;而VCC由5.5mA降至1mA。中斷或硬件復(fù)位能夠終止待機方式。當待機方式由硬件復(fù)為終止時,CPU要從休眠處恢復(fù)程序的執(zhí)行,執(zhí)行2的周期后,內(nèi)部復(fù)位電路才起作用。此時,硬件嚴禁訪問內(nèi)部RAM,但允許訪問端口引腳。為了避免休眠被復(fù)位終止時對端口以外寫入的可能性,在生成待機方式的指令后不應(yīng)緊跟對端口引腳的寫指令。如果不采用外部上拉,P1.0和P1.1應(yīng)置“1”。eq\o\ac(○,2)掉電方式掉電方式由掉電方式位PD(PCON.1)=1設(shè)立。此時振蕩器停止工作,設(shè)立掉電方式的指令成為最后執(zhí)行的一條指令,片內(nèi)RAM和特殊功效寄存器內(nèi)容保持不變。在掉電模式下,VCcmin=2V。當VCC=6V時,ICCmax=100μA;當VCC=3時,ICcmax=20μA。退出掉電方式的唯一方式是硬件復(fù)位。硬件復(fù)位將重新定義特殊功效寄存器,但不影響片內(nèi)RAM。復(fù)位的保持時間應(yīng)足夠長,方便振蕩器能重新開始工作并穩(wěn)定下來。在VCC沒有恢復(fù)得到正常工作電壓之前,不應(yīng)進行復(fù)位。如果不采用外部上拉,P1.0和P1.1應(yīng)置“0”,否則置“1”。(6)閃速存儲器的編程AT89S51單片機內(nèi)部有4KB的閃速存儲器陣列,一片新的AT89S51,其存儲陣列處在擦除狀態(tài)(FFH),此時可對其編程,存儲陣列一次編程1字節(jié),若編程任何非空字節(jié)時,需對整個存儲陣列進行片擦除[7]。編程時,AT89S51運用內(nèi)部存儲器地址計數(shù)器提供尋址存儲器的地址信號,RST上升沿將該地址計數(shù)器復(fù)位至000H,引腳XTAL1所施加的正向脈沖使地址計數(shù)器不停加1。[8]RST上出現(xiàn)12V(編程電源VPP)高壓時,預(yù)示著1字節(jié)的編程操作開始,這時P3口提供編程所需的控制與狀態(tài)信號,P1口為數(shù)據(jù)通道。(7)在線編程AT89S51編程時需要運用RST、XTAL1、P1口、P2口、P3口提供控制信號與加載編程數(shù)據(jù),而這一規(guī)定又常與顧客系統(tǒng)對這些引腳的規(guī)定或操作沖突。因此,在線編程不能直接在顧客工作電路中進行,而要通過特殊電路解決才干實現(xiàn)。例如圖2-5所示為在線編程的示例,其采用2選1的辦法實現(xiàn)連接線路的切換,達到在線編程的目的。運用微動開關(guān)SW來選擇XTAL1的加載,產(chǎn)生選擇控制信號Select,其它線路的切換用2選1器件74LS157與三態(tài)緩沖器74LS244實現(xiàn)。當AT89S51正常工作時,選擇控制信號(Selecg=0)控制全部的74LS157輸入A端與輸出Y接通,且74LS244-1輸出有效,74LS244-2三態(tài)輸出,使得AT89S51能夠?qū)︻櫩碗娐愤M行控制操作;當AT89S51需要編程時,選擇控制信號(Select=1)控制全部的74LS157輸入B端與輸出Y端接通,且74LS244-1三態(tài)輸出,74LS244-2輸出有效,使得AT89S51能夠接受編程電路的控制,實現(xiàn)編程操作。圖2-5在線編程示圖2.2.2時鐘芯片DS1302DS1302是DALLAS公司推出的涓流充電時鐘芯片,內(nèi)含有一種實時時鐘/日歷和31字節(jié)靜態(tài)RAM,通過簡樸的串行接口與單片機進行通信實時時鐘/日歷電路。提供秒、分、時、日、日期、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動調(diào)節(jié)時鐘操作可通過AM/PM批示決定采用24或12小時格式。DS1302與單片機之間能簡樸地采用同時串行的方式進行通信,僅需用到三個口線:①RES復(fù)位;②I/O數(shù)據(jù)線;③SCLK串行時鐘.時鐘/RAM的讀/寫數(shù)據(jù)以一種字節(jié)或多達31個字節(jié)的字符組方式通信.DS1302工作時功耗很低,保持數(shù)據(jù)和時鐘信息時功率不大于1mW。DS1302是由DS1202改善而來,增加了下列的特性.雙電源管腳用于主電源和備份電源供應(yīng)Vcc1,為可編程涓流充電電源附加七個字節(jié)存儲器。它廣泛應(yīng)用于電話傳真便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。(1)重要的性能指標:eq\o\ac(○,1)實時時鐘含有能計算2100年之前的秒、分、時、日、月、星期、年的能力,尚有閏年調(diào)節(jié)的能力;eq\o\ac(○,2)318位暫存數(shù)據(jù)存儲RAM;eq\o\ac(○,3)串行I/O口方式使得管腳數(shù)量最少;eq\o\ac(○,4)寬范疇工作電壓2.0V---5.5V;eq\o\ac(○,5)工作電流2.0V時,不大于300nA;eq\o\ac(○,6)讀/寫時鐘或RAM數(shù)據(jù)時有兩種傳送方式單字節(jié)傳送和多字節(jié)傳送字符組方式;eq\o\ac(○,7)8腳DIP封裝或可選的8腳SOIC封裝根據(jù)表面裝配;eq\o\ac(○,8)簡樸3線接口;eq\o\ac(○,9)與TTL兼容Vcc=5V;eq\o\ac(○,10)可選工業(yè)級溫度范疇-40+85;eq\o\ac(○,11)與DS1202兼容;eq\o\ac(○,12)在DS1202基礎(chǔ)上增加的特性;eq\o\ac(○,13)對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串行時鐘

Vcc1,Vcc2電源供電管腳

DS1302串行時鐘芯片8腳DIP

DS1302S串行時鐘芯片8腳SOIC200mil

DS1302Z串行時鐘芯片8腳SOIC150mil(3)DS1302內(nèi)部寄存器CH:時鐘停止位

存器2的第7位12/24小時標志

CH=0振蕩器工作允許

bit7=1,12小時模式

CH=1振蕩器停止

bit7=0,24小時模式WP:寫保護位

寄存器2的第5位:AM/PM定義

WP=0寄存器數(shù)據(jù)能夠?qū)懭?/p>

AP=1下午模式

WP=1寄存器數(shù)據(jù)不能寫入

AP=0上午模式TCS:涓流充電選擇

DS:二極管選擇位

TCS=1010使能涓流充電

DS=01選擇一種二極管

TCS=其它嚴禁涓流充電

DS=10選擇兩個二極管

DS=00或11,即使TCS=1010,充電功效也被嚴禁2.2.3系統(tǒng)時鐘電路設(shè)計系統(tǒng)運用晶體振蕩器作為時鐘電路,根據(jù)晶振的不同使用規(guī)定及特點,普通分為下列幾類:普通晶振、溫補晶振、壓控晶振、溫控晶振等。安裝晶振時,應(yīng)根據(jù)其引腳功效標記與應(yīng)用電路應(yīng)連接,避免電源引線與輸出引腳相接輸出。在測試和使用時所供直流電源應(yīng)沒有足以影響其精確度的紋波含量,交流電壓應(yīng)無瞬變過程[9]。測試儀器應(yīng)有足夠的精度,連線合理布置,將測試及外圍電路對晶振指標的影響降至最低。(1)普通晶振(PXO):是一種沒有采用溫度賠償方法的晶體振蕩器,在整個溫度范疇內(nèi),晶振的頻率穩(wěn)定度取決于其內(nèi)部所用晶體的性能,頻率穩(wěn)定度在10-5量級,普通用于普通場合作為本振源或中間信號,是晶振中最便宜的產(chǎn)品。(2)溫補晶振(TCXO):是在晶振內(nèi)部采用了對晶體頻率溫度特性進行賠償,以達成在寬溫溫度范疇內(nèi)滿足穩(wěn)定度規(guī)定的晶體振蕩器。(3)恒溫晶振(OCXO):采用精密控溫,使電路元件及晶體工作在晶體的零溫度系數(shù)點的溫度上。中精度產(chǎn)品頻率穩(wěn)定度為10-7~10-8,高精度產(chǎn)品頻率穩(wěn)定度在10-9量級以上。重要用作頻率源或原則信號。(4)壓控晶振(VCXO):是一種可通過調(diào)節(jié)外加電壓使晶振輸出頻率隨之變化的晶體振蕩器,重要用于鎖相環(huán)路或頻率微調(diào)。壓控晶振的頻率控制范疇及線性度重要取決于電路所用變?nèi)荻O管及晶體參數(shù)兩者的組合。晶體振蕩器選擇參考原則:(1)總頻差:在規(guī)定的時間內(nèi),由于規(guī)定的工作和非工作參數(shù)全部組合而引發(fā)的晶體振蕩器頻率與給定標稱頻率的最大頻差。(2)溫度穩(wěn)定度:在標稱電源和負載下,工作在規(guī)定溫度范疇內(nèi)的不帶隱含基準溫度或帶隱含基準溫度的最大允許頻偏。(3)頻率穩(wěn)定預(yù)熱時間:以晶體振蕩器穩(wěn)定輸出頻率為基準,從加電到輸出頻率不大于規(guī)定頻率允差所需要的時間。(4)頻率老化率:在恒定的環(huán)境條件下測量振蕩器頻率時,振蕩器頻率和時間之間的關(guān)系。這種長久頻率漂移是由晶體元件和振蕩器電路元件的緩慢變化造成的,可用規(guī)定時限后的最大變化率(如±10ppb/天,加電72小時后),或規(guī)定的時限內(nèi)最大的總頻率變化(如:±1ppm/(第一年)和±5ppm/(十年))來表達。(5)頻率壓控范疇:將頻率控制電壓從基準電壓調(diào)到規(guī)定的終點電壓,晶體振蕩器頻率的最小峰值變化量。(6)頻率壓控線性:與抱負(直線)函數(shù)相比的輸出頻率-輸入控制電壓傳輸特性的一種量度,它以百分數(shù)表達整個范疇頻偏的可允許非線性度。本系統(tǒng)時鐘電路的設(shè)計如圖2-7。對于實踐規(guī)定不是很高的系統(tǒng),圖中電路設(shè)計就能使系統(tǒng)可靠起振并穩(wěn)定運行。但由于途中的C1、C2電容起著系統(tǒng)時鐘頻率微調(diào)和穩(wěn)定的作用,它對時鐘的正負走時誤差有很大影響。因此,在本系統(tǒng)的實際應(yīng)用中特別注意了電容參數(shù)的選擇(),并盡量確保電路的對稱性(盡量匹配),選用正派廠家生產(chǎn)的瓷片或云母電容,條件允許的話溫度系數(shù)要盡量低。圖2-7振蕩電路2.2.4系統(tǒng)復(fù)位電路設(shè)計智能系統(tǒng)普通應(yīng)有手動或上電復(fù)位電路。復(fù)位電路的實現(xiàn)普通有兩種形式:即專用μp監(jiān)控電路和RC復(fù)位電路。前者電路實現(xiàn)簡樸,成本低,但復(fù)位可靠性相對較低;后者成本較高,但復(fù)位可靠性高,特別是高可靠重復(fù)復(fù)位。對于復(fù)位規(guī)定高,并對電源電壓進行監(jiān)視的場合,大多采用這種方式。(1)專用μP監(jiān)控電路專用μP監(jiān)控電路有稱為電源監(jiān)視電路,含有上電時可靠產(chǎn)生復(fù)位信號和電源電壓跌落到“門檻值”時可靠產(chǎn)生復(fù)位信號等功效[9]。準時效電平分,有高電平輸出、低電平輸出兩種;按功效分,有簡樸的電源監(jiān)視復(fù)位電路、帶看門狗定時器(WATCHDOGTimer,WDT)的監(jiān)控電路和WDT+E2PROM的監(jiān)控電路等多個類型。(2)RC復(fù)位電路本系統(tǒng)采用的是RC復(fù)位方式。RC復(fù)位電路的實質(zhì)是一階充放電電路,如圖2-8:圖2-8RC復(fù)位電路系統(tǒng)上電時該電路提供有效的復(fù)位信號RST(高電平)直至系統(tǒng)電源穩(wěn)定后撤銷復(fù)位信號(低電平)。從理論上說,51系列單片機復(fù)位引腳只要外兩個機器周期的有效信號即可復(fù)位,即只要確保t=RC>2M(機器周期)便可。但在實際設(shè)計中,普通C1取值為10μF以上,R1普通取值10ΚΩ左右。實踐發(fā)現(xiàn),R1如果取值太小,例如1ΚΩ,則會造成RST信號驅(qū)動能力變差而無法使系統(tǒng)可靠復(fù)位。另外,從圖2-9所示的復(fù)位信號波形圖能夠明顯看出,續(xù)流二極管對于改善復(fù)位性能,起到了重要作用。它的作用是在電源電壓瞬間下降時使電容快速放電,因此一定寬度的電源毛刺(如波形中A點)也可令系統(tǒng)可靠復(fù)位。圖2-9加二極管前后的復(fù)位信號特性對比2.2.5按鍵與按鈕電路設(shè)計按鍵與按鈕電路的設(shè)計參見系統(tǒng)原理圖中的S1、S2和S3對應(yīng)部分。按鍵與按鈕電路設(shè)計中核心要考慮的就是按鍵去抖動問題(簡稱“去抖”),普通由硬件去抖和軟件去抖兩種方式。硬件去抖能夠采用分立元件或觸發(fā)器實現(xiàn),現(xiàn)在市場上也有硬件去抖專用接口芯片,例如:MAXIM公司MAX6816~6818,均為單電源供電,電壓為2.7~5.5V,分別為單輸入、雙輸入和八輸入,輸出端含有欠壓鎖定功效。考慮到系統(tǒng)的硬件簡化和控制成本問題,本次設(shè)計采用軟件去抖方式。2.2.6數(shù)字鐘的顯示電路設(shè)計(1)LED的選擇單片機I/O的應(yīng)用最典型的是通過I/O口與7段LED數(shù)碼管構(gòu)成顯示電路,7段LED數(shù)碼管,在一定形狀的絕緣材料上,運用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點亮對應(yīng)的點劃來顯示出0-9的數(shù)字。LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,理解LED的這些特性,對編程是很重要的,由于不同類型的數(shù)碼管,除了它們的硬件電路有差別外,編程辦法也是不同的。下圖2-10為共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是同樣的,只是它們的電源極性不同而已。圖2-10數(shù)碼管電路將多只LED的陰極連在一起即為共陰式,而將多只LED的陽極連在一起即為共陽式。以共陰式為例,如把陰極接地,在對應(yīng)段的陽極接上正電源,該段即會發(fā)光。固然,LED的電流普通較小,普通均需在回路中接上限流電阻。如果我們將"b"和"c"段接上正電源,其它端接地或懸空,那么"b"和"c"段發(fā)光,此時,數(shù)碼管顯示將顯示數(shù)字“1”。而將"a"、"b"、"d"、"e"和"g"段都接上正電源,其它引腳懸空,此時數(shù)碼管將顯示“2”。其它字符的顯示原理類同。本設(shè)計采用的是共陽極數(shù)碼管。用單片機驅(qū)動LED數(shù)碼管有諸多辦法,按顯示方式分,有靜態(tài)顯示和動態(tài)(掃描)顯示,按譯碼方式可分硬件譯碼和軟件譯碼之分。靜態(tài)顯示就是顯示驅(qū)動電路含有輸出鎖存功效,單片機將所要顯示的數(shù)據(jù)送出后就不再控制LED,直到下一次顯示數(shù)據(jù)需要更新時再傳送一次新數(shù)據(jù),顯示數(shù)據(jù)穩(wěn)定,占用極少的CPU時間;動態(tài)顯示需要CPU時刻對顯示屏件進行數(shù)據(jù)刷新,顯示數(shù)據(jù)有閃爍感,占用的CPU時間多。這兩種顯示方式各有利弊:動態(tài)顯示即使有閃爍感,占用的CPU時間較多,但是用的硬件少,能節(jié)省線路板的空間。動態(tài)掃描顯示接口是單片機種應(yīng)用最廣泛的一種顯示方式。其接口電路是把全部的LED顯示屏的8個筆畫段A~G、DP的同名端連在一起,而每一種數(shù)碼管的公共端COM是各自獨立地受I/O線控制。CPU向字段輸出口送出字形碼時,全部顯示屏接受到相似的字形碼,但終究是哪個顯示屏亮,則取決于COM端,而這一端由I/O控制的,能夠自行決定何時顯示哪一位了。而所謂動態(tài)掃描就是指我們采用分時的辦法,輪流控制各個顯示屏的COM端,使各個顯示屏輪流點亮。在輪流點亮掃描過程中,每位顯示屏的點亮?xí)r間是極為短暫的,約1ms左右,但是由于人的視覺暫留現(xiàn)象及發(fā)光余暉效應(yīng),盡管事實上各位顯示屏并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。靜態(tài)顯示即使數(shù)據(jù)穩(wěn)定,占用極少的CPU時間,但每個顯示單元都需要單獨的顯示驅(qū)動電路,使用的硬件較多,但是編程相對于動態(tài)顯示比較簡樸,本設(shè)計采用的是靜態(tài)顯示方案。(2)LED的驅(qū)動和顯示單片機對LED數(shù)碼管的驅(qū)動辦法能夠分為串行和并行兩種,分別合用于不同的使用場合,兩者的硬件電路和程序區(qū)別也很大。并行驅(qū)動:在普通狀況下,單片機使用并行驅(qū)動的方式進行LED的顯示。并行驅(qū)動的構(gòu)造較簡樸,并且非常合用于闡明地址和數(shù)據(jù)總線復(fù)用的狀況。LED并行驅(qū)動的電路原理圖如圖2-11所示。圖2-11LED并行驅(qū)動的電路原理圖中顯示的是使用8155與LED顯示屏的接口,8155的PB0~PB7作為段選碼口,通過7407驅(qū)動與LED的段相連;8155的PA0~PA5作為位選碼口,通過7406驅(qū)動與LED的位相連。圖中的P2.7反相后作為8155的片選信號,P2.6接8155的IO端。這樣擬定8155片內(nèi)的4個端口地址。(7407:驅(qū)動門電路,提供數(shù)碼管顯示的驅(qū)動電流)本設(shè)計采用的是串行驅(qū)動方式,具體辦法以下:在某些狀況下,可供使用的單片機并行I/O口局限性8根,數(shù)據(jù)的并行輸出已不可能此時能夠考慮串行輸出辦法,圖2-12本設(shè)計采用的串行口擴展的四位LED顯示電路。圖2-12本設(shè)計采用的串行口擴展的六位LED顯示電路該顯示電路只使用單片機的兩個端口P3.0、P3.1,并配以六片串入并出移位寄存器74LS164(LED驅(qū)動)。并配四個二級管來調(diào)節(jié)LED亮度。其中74LS164的引腳Q0~Q7為8位并行輸出端;引腳A、B為串行輸入端;引腳CLK為時鐘脈沖輸入端,在CLK脈沖的上升沿作用下實現(xiàn)移位,在CLK=0、去除端MR=1時,74LS164保持原來數(shù)據(jù)狀態(tài);MR=0時,74LS164輸出清零。其工作過程以下:①89S51的串行口設(shè)定在方式0移位寄存器狀態(tài)下,串行數(shù)據(jù)由P3.0發(fā)送,移位時鐘由P3.1送出②在移位時鐘的作用下,串行口發(fā)送緩沖器的數(shù)據(jù)一位一位地移入74LS164中。③6片74LS164串級擴展為6個8位并行輸出口,分別連接到6個LED顯示屏的段選端作靜態(tài)顯示。顯示采用共陽數(shù)碼管,其目的是為了簡化限流電路的設(shè)計和實現(xiàn)亮度可調(diào)的規(guī)定。從圖中能夠看出,該顯示電路采用了與普通的段電流電阻限流方式不同的顯示方式,由此減少了48個限流電阻,簡化了硬件系統(tǒng)。每筆畫段二極管正常發(fā)光時的電流普通為10mA左右(電流大小還取決于數(shù)碼管是普亮、高亮還是超高亮類型的不同),其兩端壓降約為2.0V,也就是說,只要數(shù)碼管的公共端(COM)加+2.0以上電壓,即可滿足每筆畫段發(fā)光二極管的發(fā)光規(guī)定,并且合適調(diào)節(jié)此電壓值即可變化發(fā)光二極管的電流,從而達成調(diào)節(jié)亮度的目的。此電壓采用的是由4個硅二極管串聯(lián),運用硅二級管兩端電壓降為0.7V,4個二級管產(chǎn)生的電壓降效果為4*0.7=2.8(V),輸入電壓為+5V,由此達成每個數(shù)碼段上的電壓為2.2V左右,以確保發(fā)光段的正常亮度。移位寄存器74LS164僅有串入左右沒有譯碼作用,因此,在編寫顯示驅(qū)動程序之前,首先需要計算列寫出與本程序電路對應(yīng)的LED段選碼[3],然后由2051的P3.0口送入74LS164的串行輸入端,再并行輸出到LED的段選端。需要指出的是,本電路采用SM110501K型號的共陽極LED數(shù)碼管。這種穩(wěn)定的靜態(tài)顯示方式也省去了CPU的動態(tài)掃描過程,此為本電路的又一特點。2.3校時電路設(shè)計現(xiàn)在,世界上應(yīng)用的校時系統(tǒng)有諸多個。有運用電話網(wǎng)絡(luò)進行校時,尚有運用電視信號的校時系統(tǒng)、衛(wèi)星校時系統(tǒng)、低頻(長波)導(dǎo)航、授時信號系統(tǒng)、高頻(短波)時號廣播系統(tǒng)、運用互聯(lián)網(wǎng)絡(luò)校時系統(tǒng)等等方式進行自動校時[12]。本設(shè)計采用的是手動校時,即由人根據(jù)現(xiàn)在時刻和日期進行校時,從而使時間達成較精確的辦法。手動校時重要運用軟件進行,從而減少了在硬件上的多出以及對電路板空間的更大規(guī)定。此辦法即使在時間的精確性上較差,但是其成本最低,也是本設(shè)計運用最少材料做出最強功效的初衷。2.4電源設(shè)計單片機的供電方式有諸多個,能夠采用電池供電,也能夠采用外圍其它的電源電路進行供電,多個供電方式也都有各自的優(yōu)缺點。電池供電:能夠節(jié)省很大的PCB空間,供電也為直流,不含任何交流成分,但是此供電方式可能會由于電路比較費電而需要經(jīng)常得更換電池,這樣也變向得提高了本設(shè)計的成本,因此本設(shè)計不采用此供電方式。外圍供電電路:此辦法可覺得電路提供源源不停強勁的電源,不必為電路供電所緊張;但是此供電方式的電壓純度需要根據(jù)外圍電路的設(shè)計程度而定,并且如果將此電路設(shè)計到PCB上,也會占用很大的空間,違反了本設(shè)計簡樸的原則。綜合上面兩種供電方式的優(yōu)缺點,本設(shè)計采用的是運用電腦USB接口進行供電,電腦USB接口供電的最大電流為500mA,并且為穩(wěn)壓輸出,足夠本設(shè)計的需求,并且也不會占用PCB的空間,是一種非常不錯的選擇,同時也是本設(shè)計的優(yōu)點。本設(shè)計在電源上的另一種優(yōu)點是考慮到斷電和狀況,從設(shè)計總思路上講,規(guī)定斷電后數(shù)碼管能夠不顯示,但是時間必須照常進行。考慮到這一點,配合時鐘芯片DS1302的雙電源防斷電的特點,將時鐘芯片的另一種電源端用5V的紐扣電池進行供電,這樣時間就不會由于斷電而重新初始化了。3程序設(shè)計軟件設(shè)計的重點在于秒信號的產(chǎn)生以及CPU與時鐘芯片之間的通信,顯示的實現(xiàn)及按鍵的解決等方面?;谲浖拿朊}沖信號普通有延時法和定時中斷法。延時法普通采用查詢方式,在延時子程序前后必然需要查詢和解決的程序,造成誤差的產(chǎn)生,因此其秒脈沖的產(chǎn)生,因此秒脈沖的精度不高。中斷法的原理是運用單片機內(nèi)部的定時器溢出中斷來實現(xiàn)。例如,設(shè)定某定時器每100ms中斷1次,這10次的周期為1s,這種實現(xiàn)法的特點是精度高,秒脈沖的發(fā)生和其它解決能夠并行進行。[7]本系統(tǒng)即采用這種方式,實現(xiàn)的核心是定時器的工作方式的選擇和定時參數(shù)的計算擬定。另外就是借助時鐘芯片,對于調(diào)時后的數(shù)據(jù)送給時鐘芯片并且及時從其中讀出更新后的數(shù)據(jù),然后送顯示。具體內(nèi)容將在原程序中給于闡明。本系統(tǒng)設(shè)計中使用的晶振頻率為12MHz。3.1主控模塊設(shè)計NYCPU系統(tǒng)初始化開始切換顯示周月日顯示刷新顯示切換?啟動走時主模塊是系統(tǒng)軟件的主框架。構(gòu)造化程序設(shè)計普通有“自上而下”和“自下而上”NYCPU系統(tǒng)初始化開始切換顯示周月日顯示刷新顯示切換?啟動走時圖3-1主模塊的程序框圖3.2基本現(xiàn)實模塊設(shè)計基本現(xiàn)實模塊設(shè)計的重點是有顯示代碼獲得對應(yīng)的段碼,顯示段碼數(shù)據(jù)的串行發(fā)送,其程序流程如圖3-2所示。其中,時個位、分個位、秒個位的段碼必須加上小數(shù)點,即帶小數(shù)點顯示時各位、分個位、秒個位,目的是以小數(shù)點符號替代時間分割符“:”,(普通的數(shù)碼管無法顯示字符“:”)。關(guān)顯示,以免顯示抖動通過串口將時十位段碼送入對應(yīng)的74LS164將十個位段碼送入對應(yīng)的74LS164(以小數(shù)點替代:)將分十位和個位段碼送入對應(yīng)的74LS164將百分秒十位和個位段碼送入對應(yīng)的74LS164打開顯示圖3-2基本顯示模塊的程序流程圖開始3.3現(xiàn)在編輯位閃爍功效的實現(xiàn)關(guān)顯示,以免顯示抖動通過串口將時十位段碼送入對應(yīng)的74LS164將十個位段碼送入對應(yīng)的74LS164(以小數(shù)點替代:)將分十位和個位段碼送入對應(yīng)的74LS164將百分秒十位和個位段碼送入對應(yīng)的74LS164打開顯示圖3-2基本顯示模塊的程序流程圖開始閃爍標志為真將顯示全滅段碼送顯示緩沖區(qū)閃爍標志為真將顯示全滅段碼送顯示緩沖區(qū)將現(xiàn)在設(shè)定的時間參數(shù)送顯示調(diào)用基本顯示程序模塊圖3-3現(xiàn)在編輯位閃爍功效實現(xiàn)的程序流程圖3.4時間設(shè)定模塊設(shè)計時間設(shè)定模塊的設(shè)計要點是按鍵的去抖解決。軟件發(fā)去抖動的實質(zhì)是軟件延時,即檢測到某一鍵狀態(tài)變化后延時一段時間,再檢測該按鍵的狀態(tài)與否還保持著,如果是,則作為按鍵解決,否則,視為抖動,不予理睬。去抖的延時時間一般應(yīng)不不大于20ms,否則會造成按一次鍵做多次解決,影響程序正常執(zhí)行。YYYYNYN設(shè)立模塊初始化將在編參數(shù)送顯示緩沖區(qū)將現(xiàn)在位的顯示代碼置暗代碼調(diào)基本顯示模塊刷新顯示現(xiàn)在編輯位左(右)移一位結(jié)束設(shè)定根據(jù)現(xiàn)在位的性質(zhì)分別進行+1/-1/解決(含上下限判斷)NYN返回N圖3-4時間設(shè)定模塊流程圖閃爍標志為真?嗎?+1/-1鍵嗎?設(shè)立鍵?現(xiàn)在的編輯是時(周)個位嗎設(shè)立鍵3.5CPU與時鐘芯片的通信在系統(tǒng)剛剛通電后,CPU將片內(nèi)初始的數(shù)據(jù)送給時鐘芯片即2月11日周六11點59分40秒,給時鐘芯片一種初始狀態(tài),然后時鐘芯片按照初始狀態(tài)開始進行,再把數(shù)據(jù)送給CPU然后進行顯示。當調(diào)節(jié)時間后,CPU將調(diào)節(jié)后的時刻數(shù)據(jù)數(shù)給時鐘芯片以再次將時鐘芯片初始化,然后時鐘芯片再將從此時刻開始進行計時,并把數(shù)據(jù)送給CPU進行送顯示。其流程圖如圖3-5CPUCPUDS1302系統(tǒng)復(fù)位送初值調(diào)節(jié)后送值讀取數(shù)據(jù)DS1302圖3-5CPU與時鐘芯片通信3.6系統(tǒng)調(diào)試方式3.6.1系統(tǒng)調(diào)試環(huán)境本系統(tǒng)全部的電路都設(shè)計在一塊電路板上,整個電路板構(gòu)造緊湊、分布合理,便于加工和調(diào)試,并且減少了互相間以及監(jiān)控器與其它儀器間的干擾。電路焊接好過后進行簡樸的調(diào)試、定標過后,系統(tǒng)便能對的、可靠的運行。3.6.2軟件調(diào)試 本設(shè)計的軟件部分,全部采用C語言編寫,軟件模塊較多,程序代碼較長,因此采用分塊調(diào)試的辦法來調(diào)試程序。首先用單片機匯編程序編譯器(keiluVision2)調(diào)試,無誤后,再通過編程器燒到單片機用裝置實驗調(diào)試,采用了自下到上的調(diào)試辦法,即先單獨調(diào)試好每一項功效,然后再連接成一種完整的系統(tǒng)調(diào)試。根據(jù)實驗成果和指標對照,若有不符,再修改,直到程序完全對的為止。這樣確保了軟件編寫的對的性和可行性。3.6.3硬件調(diào)試將程序燒入AT89S51中,并將其安裝在硬件電路中,然后通電。先調(diào)節(jié)看按鍵工作與否正常,數(shù)碼管與否能正常顯示。在正常待機顯示狀態(tài)下,按動顯示狀態(tài)切換鍵,看能否進行(時、分、秒和周、月、日之間的)切換,并在兩種顯示示狀態(tài)下擦去SET鍵,看能否啟動和關(guān)閉校時狀態(tài),最佳在校時狀態(tài)按動左移、右移、加鍵和減鍵,驗證其功效與否完善。在調(diào)試過程中碰到了諸多的問題:(1)LED不顯示。由于沒有買到PCB板中那種封裝的LED,因此在焊接的時候采用另外一種封裝的LED來替代,采用將從PCB板上的每個管腳連線出來與另外一塊板子上的LED管腳對應(yīng)相連,由于連線過多,有某些線連錯或者虛焊,在檢查出錯誤后改正。(2)按下按鍵無動作。檢查后發(fā)現(xiàn)在焊接過程中輕觸按鍵的內(nèi)部構(gòu)造被破壞,不能正常的起到左右,后將其換掉。3.6.4調(diào)試成果基本實現(xiàn)了設(shè)計的規(guī)定,長時間運行容易有誤差,在穩(wěn)定性方面尚有待改善。

結(jié)論/展望我在這一次數(shù)字電子鐘的設(shè)計過程中,很是受益匪淺。通過對自己在大學(xué)三年時間里所學(xué)的知識的回憶,并充足發(fā)揮對所學(xué)知識的理解和對畢業(yè)設(shè)計的思考及書面體現(xiàn)能力,最后完畢了。這為自己此后進一步深化學(xué)習(xí),積累了一定珍貴的經(jīng)驗。撰寫論文的過程也是專業(yè)知識的學(xué)習(xí)過程,它使我運用已有的專業(yè)基礎(chǔ)知識,對其進行設(shè)計,分析和解決一種理論問題或?qū)嶋H問題,把知識轉(zhuǎn)化為能力的實際訓(xùn)練。培養(yǎng)了我運用所學(xué)知識解決實際問題的能力。通過這次課程設(shè)計我發(fā)現(xiàn),只有理論水平提高了;才干夠?qū)⒄n本知識與實踐相整合,理論知識服務(wù)于教學(xué)實踐,以增強自己的動手能力。這個實驗十分故意義我獲得很深刻的經(jīng)驗。通過這次課程設(shè)計,我們懂得了理論和實際的距離,也懂得了理論和實際想結(jié)合的重要性,,也從中得知了諸多課本上無法得知的知識。我們的學(xué)習(xí)不僅要立足于課本,以解決理論和實際教學(xué)中的實際問題為目的,還要以實踐相結(jié)合,理論問題即實踐課題,解決問題即課程研究,學(xué)生自己就是一種專家,通過自己的手來解決問題比用腦子解決問題更加深刻。學(xué)習(xí)就應(yīng)當采用理論與實踐結(jié)合的方式,理論的問題,也就是實踐性的課題。這種做法現(xiàn)有助于完畢理論知識的鞏固,又有助于帶動實踐,解決實際問題,加強我們的動手能力和解決問題的能力。在實驗過程中,可能會出現(xiàn)這樣或那樣的錯誤,但只要戒躁,安下心來,一步一步檢查電路,多仿真,多嘗試,必要時和同窗多討論,全部問題都會得到解決。特別是在自己嘗試、檢查了多遍,但編譯還錯誤時,更要靜下心來,否則只會使狀況更加糟糕。只有冷靜的心情,睿智的頭腦才干使自己無堅不摧,完美完畢實驗。本次實驗讓我學(xué)到了諸多,不僅在知識上,同時也在人格上,使我本身的綜合素質(zhì)得到了提高。認識到,光有聰穎的頭腦是不夠的,更為重要的是要含有堅韌的毅力和勇于思考問題的品質(zhì),同時,團體合作能力、創(chuàng)新精神也是不可或缺的。但愿能有機會多做這樣的實驗,提高自己的綜合素質(zhì),加強自己的實踐能力,豐富自己的頭腦,為后來的學(xué)習(xí)、工作打下結(jié)實的基礎(chǔ)。

致謝大學(xué)生涯行將結(jié)束,但是在那之前我們都必須得完畢畢業(yè)設(shè)計的工作,快樂的是我在今天完畢了這項工作,現(xiàn)在,我要對老師,同窗,學(xué)校,家人體現(xiàn)最真誠的謝意。首先要提到的是我的畢業(yè)設(shè)計指導(dǎo)老師楊其鋒老師,這是我大學(xué)期間接觸最多的老師,他有著熱情活潑的教學(xué)方式并對學(xué)生體諒負責(zé)對工作認真嚴謹。盡管楊老師平時自己也有教學(xué)上的任務(wù),但他對我的畢業(yè)設(shè)計一點也沒有省心同窗的協(xié)助也是不能無視的。我是一種比較擅長進行團體工作的人,而畢業(yè)設(shè)計這樣的任務(wù)其實對我來說是很大的考驗,慶幸在我完畢畢業(yè)設(shè)計的過程中,無論是硬件還是軟件上,本組其它同窗和班級同窗對我提供了很大的協(xié)助,我的能力相對較差,沒有他們耐心的協(xié)助我確實沒有方法完畢設(shè)計任務(wù)。最后則要感謝母校四年來提供應(yīng)我的優(yōu)質(zhì)的教學(xué)服務(wù)和生活,全部任課老師的認真教學(xué),是你們讓我的專業(yè)知識得到豐富,父母親對我學(xué)習(xí)生活上的關(guān)心,你們是我永遠的后盾。

參考文獻[1]沈紅衛(wèi)基于單片機的智能系統(tǒng)設(shè)計與實現(xiàn)[M].北京.電子工業(yè)出版社,.(70-85)[2]樓然苗51系列單片機設(shè)計實例[M].北京.北京航空航天大學(xué)出版社,.(23-45)[3]董傳岱數(shù)字電子技術(shù)[M].石油大學(xué)出版社,.(45-63)[4]吳秀清微機原理與接口技術(shù)[M].中國科技大學(xué)出版社,.(20-35)[5]何立民單片機應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1995.(55-67)[6]李華.MCS-51系列單片機實用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1990.(46-56)[7]劉飛等兩種數(shù)字鐘電路設(shè)計比較[J]湖北師范學(xué)院學(xué)報,2(23)(40-43)[8]胥筱門單片機系統(tǒng)的實驗及應(yīng)用[J]電子制作1999(6)(20-30)[9]鄭惠芳單片機報時時鐘控制系統(tǒng)的一種設(shè)計辦法[J]福建廣播電視大學(xué)學(xué)報(6)(63-67)[10]張柱濤等基于單片機的多功效智能鐘的設(shè)計[A]山東大學(xué)學(xué)報,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è)計原理圖附圖A數(shù)字鐘系統(tǒng)原理圖附錄B系統(tǒng)設(shè)計程序#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時鐘信號線sbitIO=P3^6;//1302的I/O數(shù)據(jù)線sbitRST=P3^7;//1302的RST復(fù)位線bitflagb=1,xshi=1;//校準,顯示切換標志位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表達中斷次數(shù)a表達數(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;//延時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]);//秒分時日月星期年 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]);//秒分時日月星期年 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);//格式秒分時日月星期年 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);//格式秒分時日月星期年 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();//時分秒 } 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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論