基于at89c2051六位數(shù)字鐘的設計_第1頁
基于at89c2051六位數(shù)字鐘的設計_第2頁
基于at89c2051六位數(shù)字鐘的設計_第3頁
基于at89c2051六位數(shù)字鐘的設計_第4頁
基于at89c2051六位數(shù)字鐘的設計_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于at89c2051六位數(shù)字鐘的設計【摘要】本設計論文介紹了用at89c2051單片機控制的數(shù)字鐘的硬件結構 與軟件設計。此數(shù)字鐘是一個將“時”、“分”、“秒”顯示于人的視覺 器官的計時裝置。它的計時周期為24小時,顯示滿刻度為23時59分59 秒,另外應有校時功能。電路由時鐘脈沖發(fā)生器、時鐘計數(shù)器、譯碼驅(qū)動 電路和數(shù)字顯示電路以及時間調(diào)整電路組成。用晶體振蕩器產(chǎn)生時間標準 信號,這里采用石英晶體振蕩器。根據(jù)60秒為1分、60分為1小時、24 小時為1天的計數(shù)周期,分別組成兩個60進制秒、分、一個24進制 (時的計數(shù)器。構成秒、分、時的計數(shù),實現(xiàn)計時的功能。顯示器件選 用le:d七段數(shù)碼管。

2、在譯碼顯示電路輸出的驅(qū)動下,顯示出清晰、直觀的 數(shù)字符號。針對數(shù)字鐘會產(chǎn)生走時誤差的現(xiàn)象,在電路中就設計有有校準 時間功能的電路。關鍵詞:單片機,at89c2051,數(shù)字鐘,計時based on scm multi-purpose digital clock design abstract: the paper mainly presents the hardware and software design of the digital clock using at89c2051. this digital clock is a time-device, which can display &

3、quot;hour", "minute", "second". its time period is 24 hoursand the full scale of the display is 23 hours, 59 minutes, 59 seconds and it has the function of time adjustment. the circuit consists of the clock pulse generator, the clock counter, decod i ng drive circuit, digita

4、l display circuit and the time adjustment circuit. it generates time standard signal using crystal oscillator, here is the quartz crystal oscillator. because 60 seconds is 1 minute, 60 minutes is 1 hour and 24 hours is 1 day, we uses two counters of 60 parts and a counter of 12 part separately to co

5、nstitute the count of percentage of second, second, minute, and hour. so it can realize time function. di splay component selects seven-segment numerical tube led. driven by decod i ng output circuit, it can di splay show i ng clear and intuitive figures. due to walking error of digital clock, we de

6、sign time cal i brat i on circuit in the system.key words: single-chip microcomputer, at89c2051, digital clock, time目錄12案設 23部結弓iw第一章數(shù)字鐘的系統(tǒng)概述1.1 總 體 方i十第二章at89c2051單片機及其引腳說明2.1 內(nèi)2.2程序保密、 .42. 3軟硬件的開發(fā).42.4引腳說日月,.42.5主要性 .5第=章電路的硬件設計.73. 1復位電 .73.2時鐘電,.83.3按鍵電.83.4迅響電路及輸入、輸出電.93.5i碼管 顯示電5s103.5. 1led數(shù)

7、碼管結構及工作原s.103.5.2顯示原a123.6穩(wěn)壓電 12第四章軟件設計144. 1主程序系統(tǒng)結144. 2軟件任務分 . 144. 3軟件流程.15第五章安裝與調(diào)試175.1 安裝、焊接到電路板±175.2 測 試 與 調(diào) 17組侖19而20參考文獻21隨 122隨 231隨 333引言鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定 時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、定時啟閉電路、定時開關烘箱、通斷動力設備,甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎的。隨著數(shù)字集成電路的出現(xiàn)和飛速發(fā)展,以及石英晶

8、體振蕩器的廣泛應用,使得數(shù)字鐘的精度穩(wěn)定度 遠遠超過了老式的機械表,用數(shù)字電路實現(xiàn)對“時”、“分”、“秒”數(shù)字顯示的數(shù)字鐘在數(shù)字顯 示方面,目前己有集成的計數(shù)、譯碼電路,它可以直接驅(qū)動數(shù)碼顯示器件,也可以直接采用才coms -led光電組合器件,構成模塊式石英晶體數(shù)字鐘。本設計主要是用中、小規(guī)模集成電路設計的一 臺能顯示時、分、秒的數(shù)字電子鐘。是由晶振電路產(chǎn)生1hz標準信號,分、秒為00-59六十進制計 數(shù)器,時為00-23二十四進制計數(shù)器,可手動校正,且具有整點報時功能。因此,研宄數(shù)字鐘及擴大其應用,有著非?,F(xiàn)實的意義。第一章數(shù)字鐘的系統(tǒng)概述1. 1總體方案設計數(shù)字電子鐘是用數(shù)字電路實現(xiàn)“時

9、”、“分”、“秒”數(shù)字顯示的計時裝置,主要由 振蕩器、分頻器、計數(shù)器、譯碼顯示器、校時電路等部分組成。而數(shù)字鐘想淮確的計 時則是由振蕩器產(chǎn)生的時脈沖送到分頻器,分頻電路將時標信號分成每秒一次的方波 信號。秒脈沖發(fā)生器產(chǎn)生頻率穩(wěn)定很高的秒脈沖,秒脈沖被送到一個六十進制秒計數(shù) 器計數(shù),將計數(shù)結果送至秒個位和十位譯碼器,譯碼結果分別由兩只七段數(shù)碼管以十 進制數(shù)形式顯示來。當秒六十進制計數(shù)器累計到第59秒時,若再來一個秒脈沖,秒計 數(shù)器的進位輸出就產(chǎn)生進位脈沖(分計數(shù)脈沖),同時,秒計數(shù)器的十位和個位都復 位到零。分計數(shù)脈沖又被送到分六十進制計數(shù)器計數(shù),經(jīng)譯碼電路譯碼后數(shù)碼管顯示 相應的分數(shù)。當計滿5

10、9分59秒時,若再來一個秒脈沖,則分計數(shù)器便向時計數(shù)器送出 吋計數(shù)脈沖,同時,分、秒計數(shù)器均復位到零。吋計數(shù)器是一個二十四進制計數(shù)器, 當計數(shù)顯示23時59分59秒時,若再來一個秒脈沖,則時、分、秒計數(shù)器都應回到零, 并顯示(00:00:00)表示己到達午夜零點,第二天開始繼續(xù)計數(shù)。其主耍的功能模塊如圖1-1所示。按鍵at89c2051選位圖1-1系統(tǒng)結構框圖第二章at89c2051單片機及其引腳說明at89c2051是美國atmel公司生產(chǎn)的低電壓、高性能cmos 8位單片機,片內(nèi)含2kbytes的可反復擦寫的只讀程序存儲器(perom)和128bytes的隨機數(shù)據(jù)存儲器(ram),器件采用

11、atmel公司的高密度、非易失性存儲技術生產(chǎn),兼容標準mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和hash存儲單元,at89c2051單片機在電子類產(chǎn)品中有廣泛的應用如圖2_1所示。圖2-1 at89c20512.1內(nèi)部結構at89c2051是一帶有2k字節(jié)閃速可編程可擦除只讀存儲器(eeprom)的低電壓,高性能8位cmos微處理器。它采用atmel的髙密非易失存儲技術制造并和工業(yè)標準mcs-51指令集和引腳結構兼容。通過在單塊芯片上組合通用的cpli和閃速存儲器,atmel的at89c2051是一強勁的微型處理器,它對許多嵌入式控制應用提供一定髙度靈活和成本低的解決辦法。at89c20

12、51提供以下標準功能:2k字節(jié)閃速存儲器,128字節(jié)ram, 15根i/o口,兩個16位定時器,一個五向量兩級中斷結構,一個全雙工串行口,一個精密模擬比較器以及兩種可選的軟件節(jié)電工作方式。空閑方停止cpu工作但允許ram、定時器/計數(shù)器、串行工作口和中斷系統(tǒng)繼續(xù)工作。掉電方式保存ram內(nèi)容但振蕩器停止工作并禁止有其它部件的工作到下一個硬件復位。2.2程序保密at89c2051設計有2個程序保密位,保密位1被編程之后,程序存儲器不能再被編程除非做一次擦除,保密位2被編程之后,程序不能被讀出。2.3軟硬件的幵發(fā)at89c2051可以米用下面兩種方法開發(fā)應用系統(tǒng)。1. 由于89c2051內(nèi)部程序存貯

13、器為flash,所以修改它內(nèi)部的程序十分方便快捷,只 耍配備一個可以編程89c2051的編程器即可。調(diào)試人員可以采用程序編輯-編譯-固 化-插到電路板中試驗這樣反復循環(huán)的方法,對于熟練的mcs-51程序員來說,這種 調(diào)試方法并不十分困難。但是做這種調(diào)試不能夠了解片內(nèi)ram的內(nèi)容和程序的走向等有關信息。2. 將普通8031/80c31仿真器的仿真插頭中p1. 0p1. 7和p3. 0p3. 6引出來仿真2051,這種方法 可以運用單步、斷點的調(diào)試方法,但是仿真不夠真實,比如,2051的內(nèi)部模擬比較器功能,p1口、p3口的増強下拉能力等等。2.4引腳說明pdip/soicrst/vpp 匚 (rx

14、d) p3 0 匚 (txd) p31 xtal2c _xtal1 <intq)p3 2e inti)p3.3 :(to) p3.4 匚 (t1jp3 5eqndc1234567891020987654321 1. 1- 1. 1. 1 1. i 1 ifvcc p1 7 p16 pl 5 p14 pi 3 pi 2p1.1 (aini) pl 0 (ajmo) r3 7at89c2051圖2-4 at89c201511. vcc:電源電壓。2. gnd:地。3. n口: pl口是一個8位雙向i/o口。口引腳pl. 2p1. 7提供內(nèi)部上拉電阻,p1.0和pl. 1要求外部上拉電阻。p1

15、.0和n.l還分別作為片內(nèi)精密模擬比較器的同相輸入(ani0)和反相輸入(aini)。f>1口輸出緩沖器可吸收20ma電流并能直接驅(qū)動led顯示。當p! 口引腳寫入“1”時,其可用作輸入端,當引腳n.2p1.7用作輸入并被外部拉低時,它們將因內(nèi)部的寫入“1”時,其可用作輸入端。當引腳pl. 2p1. 7用作輸入并被外部拉低時,它們將因內(nèi)部的上拉電阻而流出電流。4. p3: p3口的p3.0p3.5、p3. 7是帶有內(nèi)部上拉電阻的七個雙向i/o口引腳。p3. 6用于固定輸入片內(nèi)比較器的輸出信號并且它作為一通用1/ 0引腳而不可訪問。p3品緩沖器可吸收20ma電流。當p3口寫入“1”時,它們

16、被內(nèi)部上 拉電阻拉高并可用作輸入端。用作輸入?yún)?,被外部吋拉低的p3u腳將用上拉電阻而流出電流。p3口還接收一些用于閃速存儲器編程和程序校驗的控制信號。5. rst:復位輸入。rst旦變成高電平所有的i/o引腳就復位到“1”。當振蕩器正在 運行時,持續(xù)給出rst引腳兩個機器周期的高電平便可完成復位。每一個機器周期需12個振蕩器或時鐘周期。6. xtal1:作為振蕩器反相器的輸入和內(nèi)部吋鐘發(fā)生器的輸入。7. xtal2:作為振蕩器反相放大器的輸出。2. 5主要性能1.和mcs-51產(chǎn)品兼容;2. 2kb可重編程flash存儲器(10000次);3. 2. 7-6v電壓范圍;4. 全靜態(tài)工作:0hz

17、-24mhz;5. 2級程序存儲器保密鎖定;6. 128*8 位內(nèi)部 ram;7. 15條可編程i/o線;8. 兩個16位定時器/計數(shù)器;9. 6個屮斷源;10. 可編程串行通道;11. 高精度電壓比較器(pl.0, pl. 1, p3.6);12.直接驅(qū)動led的輸出端口。第三章電路的硬件設計3. 1復位電路at89c2051單片機的復位是由外部的復位電路來實現(xiàn)的。復位引腳rst通過一個斯密特 觸發(fā)器與復位電路相連,斯密特觸發(fā)器用來抑制噪聲,在每個機器周期的s5p2,斯密 特觸發(fā)器的輸出電平由復位電路采樣一次,然后才能得到內(nèi)部復位操作所需要的信號o上電復位電路是一種簡單的復位電路,只要在rs

18、t復位引腳接-個電容到vcc,接一個 電阻到地就可以了。上電復位是指在給系統(tǒng)上電時,復位電路通過電容加到rst復位引 腳一個短暫的高電平信號,這個復位信號隨著vcc對電容的充電過程而回落,所以rst 引腳復位的高電平維持時間取決于電容的充電時間。為了保證系統(tǒng)安全可靠的復位,rst引腳的高電平信號必須維持足夠長的時間如圖3-1所示。上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的。只要vcc的上升時間不超過lms,就可以實現(xiàn)自動上電復位3.2時鐘電路時鐘是單片機的心臟,單片機各功能部件的運行都是以時鐘頻率為基準,有條不紊的一拍一拍地工作。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質(zhì)量也直接影

19、響單片機系統(tǒng)的穩(wěn)定性。常用的時鐘電路有兩種方式:一種是內(nèi)部時鐘方式,另一種為外部時鐘方式。本文用的是內(nèi)部時鐘方式。cl11c2=-i ilxt al2xt al1gndgn d圖3-2時鐘電路at89c2051單片機內(nèi)部有一個用于構成振蕩器的高增益反相放大器,該高增益反向放大器的輸入端為芯片引腳xtal1,輸出端為引腳xtal2。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,就構成一個穩(wěn)定的自激振蕩器如圖3-2所示。3. 3按鍵電路按鍵的開關狀態(tài)通過一定的電路轉(zhuǎn)換為高、低電平狀態(tài)。按鍵閉合過程在相應的i/o端u形成一個負脈沖。閉合和釋放過程都要經(jīng)過一定的過程才能達到穩(wěn)定,這一過程是 處于高、低電平之

20、間的一種不穩(wěn)定狀態(tài),稱為抖動。抖動持續(xù)時間的常長短與開關的 機械特性有關,一般在5-loms之間。為了避免cpu多次處理按鍵的一次閉合,應采用措 施消除抖動。本文采用的是獨立式按鍵,直接用i/o口線構成單個按鍵電路,每個按鍵 占用一條i/o口線,每個按鍵的工作狀態(tài)不會產(chǎn)生互相影響。按鍵s1s3采用復用的 方式與顯示部分的p3.5、p3.4、p3.2 u復用。其工作方式為,在相應端口輸出高電平吋讀取按鍵的狀態(tài)并由單片機消除抖動并賦予相應的鍵值如圖3-3所示。1k1k1kat89cs51gnd圖3-3按鍵電路3.4迅響電路及輸入、輸出電路迅響電路由有源蜂鳴器和pnp型三極管組成。其工作是當pxp型

21、三極管導通后有源蜂鳴器立即發(fā)出定頻聲響。驅(qū)動方式為獨立端口驅(qū)動,占用p3. 7端口。輸出電路是與迅響電路復合作用的,其電路結構為有源蜂鳴器,5.1k定值電阻r6,排針j3并聯(lián)。當有源蜂鳴器無迅響時j3輸出低電平,當有源蜂鳴器發(fā)出聲響時j3輸出高電平,j3可接入數(shù)字電路等各種需要。驅(qū)動方式為迅響復合輸出,不占端u。輸入電路是與迅響電路復合作用的,其電路結構是在迅響電路的pxp型三極管的基極電路中接入排針j2。弓i腳排針可改變單片機1/0口的電平狀態(tài),從而達到輸入的目的。驅(qū)動方式為復合端口驅(qū)動,占用p3.7端口如圖3-4所示。:ell圖3-4迅響電路及輸入、輸出電路3. 5數(shù)碼管顯示電路3.5.1

22、 lh)數(shù)碼管結構及工作原理led數(shù)碼管(led segmentdisplays)是由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃,公共電極。每一筆劃都是對應一個字母表示dp是小數(shù)點。下圖為常用led數(shù)碼管內(nèi)部引腳圖如圖3-3-1所示。a b圖3-5-1 lh)數(shù)碼管正面?zhèn)€字段引腳led數(shù)碼管根據(jù)lh)的接法不同分為共陰和共陽兩類共陽極led數(shù)碼管的內(nèi)部結構原理圖如圖3-3-2所示。圖3-5-2共陽極lhd數(shù)碼管的內(nèi)部結構原理共陰極lild數(shù)碼管的內(nèi)部結構原理圖如圖3-3-3所示。圖3-5-3共陰極led數(shù)碼管的內(nèi)部結構原理圖lk)數(shù)碼管要正常顯示

23、,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)位,因此根據(jù)led數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。1.靜態(tài)顯示驅(qū)動靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的i/o 埠進行驅(qū)動,或者使用如bcd碼二-十進位*器*進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單 ,顯示亮度高,缺點是占用i/o埠多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5x8 = 40根i/o 埠來驅(qū)動,要知道一個89s51單片機可用的i/o埠才32個呢。故實際應用時必須增加邱區(qū)動器進行驅(qū)動,增加了硬體電路的復雜性。2.動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示介面是單片機中應用最為廣泛的一種顯示方式之一

24、,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a, b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極com增加位元選通控制電路,位元選通由各自獨立的t/0線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相冋的字形碼,但究競是那個數(shù)碼管會顯示出字形,取決于單片機對位元選通com端電路的控制,所以我們只耍將需耍顯示的數(shù)碼管的選通控制打開,該位元就顯示出字形,沒有選通的數(shù)碼管就不會亮。透過分時輪流控制各個led數(shù)碼管的com端,就使各個數(shù)碼管輪流受控顯示,這就是動 態(tài)驅(qū)動。在輪流顯示過程中,每位元數(shù)碼管的點亮時間為12ms,由于人的視覺暫留 現(xiàn)象及發(fā)光二極體的余

25、輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的 速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的i/o埠,而且功耗更低。3. 5. 2顯示原理顯示部分主要器件為3只兩位一體共陽極數(shù)碼管,驅(qū)動采用pnp型三極管驅(qū)動,各端口配 有限流電阻,驅(qū)動方式為動態(tài)掃描,占用p3.0p3.5端口,段碼由p1.0p1.6輸出。冒 號部分采用4個03.0的紅色發(fā)光二極管,驅(qū)動方式為獨立端口p1. 7驅(qū)動如圖3-3-2所示78l05是一個線性的穩(wěn)壓器,不論其輸入端接多少伏電源,其輸出是固定的5伏,主要 給小容量的器件提供電源。因為是線性穩(wěn)壓,所以其

26、輸出波形雜波比較嚴重,而且其 輸出會復制輸入的波形出來。所以前后都要濾波,在輸入端加電容時相當于平滑電容 。起到一個濾波的作用,提高1c工作穩(wěn)定性。輸出端加電容是為木地器件提供能量的存儲器件,它能使穩(wěn)壓器的輸出均勻化,降低負載需求如圖3-6所示。46vc6100ufgnd圖3-6穩(wěn)壓電路本設計采用了單片機at89c2051為核心器件,它與c51相比除少了po、p2門外指令完全 相同。在電路中pl 口輸出段碼數(shù)據(jù),接六位數(shù)碼管的段碼引腳,p3口作掃描控制,控制各 位數(shù)碼管的顯示情況!并配合所有的外圍電路,具有上電復位的功能,無手動復位功能。第四章軟件設計4.1主程序系統(tǒng)結構圖4-1軟件系統(tǒng)結構4

27、.2軟件任務分析軟件任務分析和硬件電路設計結合進行,哪些功能由硬件完成,哪些任務由軟件完成,在硬件電路設計基本定型后,也就基本上決定下來了9。軟件任務分析環(huán)節(jié)是為軟件設計做一個總體規(guī)劃。從軟件的功能來看可分為兩大類: 一類是執(zhí)行軟件,它能完成各種實質(zhì)性的功能,如測量,計算,顯示,打印,輸出控 制和通信等,另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關系,在 系統(tǒng)軟件中充當組織調(diào)度角色的軟件。這兩類軟件的設計方法各有特色,執(zhí)行軟件的設計偏重算法效率,與硬件關系密切,千變?nèi)f化。軟件任務分析時,應將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義和接口定義(輸入輸出定義)。在各執(zhí)行模塊進

28、行定義時,將要牽扯到的數(shù)據(jù)結構和數(shù)據(jù)類型問題也一并規(guī)劃好。各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤設置選擇一種最適合的監(jiān)控程序結構。相對來講,執(zhí)行模塊任務明確單純,比較容易編程,而監(jiān)控程序較易出問題。這如同當一名操作工人比較容易,而當一個廠長就比較難了。軟件任務分析的另一個內(nèi)容是如何安排監(jiān)控軟件和各執(zhí)行模塊。整個系統(tǒng)軟件可分為 后臺程序(背景程序)和前臺程序。后臺程序指主程序及其調(diào)用的子程序,這類程序 對實時性要求不是太高,延誤幾十ms甚至幾百ms也沒關系,故通常將監(jiān)控程序(鍵盤 解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺程序中執(zhí)行,而 前臺程序安排一些實

29、時性要求較高的內(nèi)容,如定時系統(tǒng)和外部中斷(如掉電中斷)。 也可以將全部程序均安排在前臺,后臺程序為“使系統(tǒng)進入睡眠狀態(tài)”,以利于系統(tǒng)節(jié)電和抗干擾。4.3軟件流程圖圖4-3程序設計流程圖程序里先定義兩個中斷定吋器to和t1, 一個作為秒記數(shù)用,另一個做為調(diào)整吋閃爍用。 編程時先將p1和p3口數(shù)據(jù)清零,然后p1和p3口作動態(tài)掃描顯示,由于人的眼睛有延遲性, 當掃描頻率非常高時人就感覺數(shù)碼管一直亮著,而同時記數(shù)器在遵循時間的變化方式執(zhí) 行著秒到了60分加一,分到了60小時加一,小時到了24就歸零。p3. 7作為時間調(diào)整按 鈕當長按按住2秒以上進入校準時間狀態(tài)及換檔和退出,快速點觸用于調(diào)節(jié)時間數(shù)值,歸

30、零是復位按鈕。第五章安裝與調(diào)試5. 1安裝、焊接元件到電路板上按照先低后高,先小后大,先臥式后立式的順序,正確插入元件,其高低、極性要符合規(guī)定。1. 先從最低元件安裝。應先安裝、焊接跳線機及電阻,用電阻多余的腳做跳線,電阻引腳不分正負,焊接時間最好控制在2-3秒。2. 安裝、焊接瓷片電容。瓷片電容部分正負極。3. 安裝、焊接輕觸開關4. 安裝、焊接三極管。三極管的外形基本一樣,注意分青,且方向要和電路板上的方向一致。5. 安裝、焊接12m11z品振。晶振沒有正負極。6. 安裝、焊接電解電容,裝的吋候要躺著安裝,立著會影響發(fā)光二極管的顯示不整齊07. 安裝、焊接20腳1c插座,從用一小缺口或小圓

31、點標記的地方以逆時針數(shù)依次為1-20 腳,安裝時要注意缺口和電路上的缺口相一致。20只引腳都插到位后,先用手指按住 ,固定對角兩只引腳,防止插入的引腳掉出來,再把板放到桌面上把剩k的引腳焊好 。焊好后不要急于插入單片機芯片,因為還有其他元件焊接,防止電烙鐵帶靜電擊壞單片機芯片。8. 安裝、焊接蜂鳴器。9. 安裝、焊接led。led和普通二極管一樣,有正負極之分,不能裝錯。安裝、焊接數(shù)碼管。認識數(shù)碼管內(nèi)部結構。5.2測試與調(diào)試1. 功能按鍵s1為功能選擇按鍵,s2為功能擴展按鍵,s3為數(shù)值加一按鍵。2. 功能及操作操作時,連續(xù)短時間(小于1秒)按動s1,即可在以上的6個功能中連續(xù)循環(huán)。中途如果長

32、按(大于2秒)s1,則立即回到時鐘功能的狀態(tài)。2.1吋鐘功能:上電后即顯示10: 10: 00 ,寓意十全十美。2. 2校時功能:短按一次s1,即當前時間和冒號為閃爍狀態(tài),按動s2則小時位加1,按動s3則分鐘位加1,秒時不可調(diào)。2. 3鬧鐘功能:短按二次s1,顯示狀態(tài)為22: 10: 00,冒號為長亮。按動s2則小時位加 1,按動s3則分鐘位加1,秒時不可調(diào)。當按動小時位超過23時則會顯示這個表示關閉鬧鐘功能。鬧鈴聲為蜂鳴器長鳴3秒鐘。2. 4倒計時功能:短按三次s1,顯示狀態(tài)為0,冒號為長滅。按動s2則從低位依此顯示高位,按動s3則相應位加1,當s2按到第6次時會在所設定的時間狀態(tài)下開始倒計

33、時,再次按動s2將再次進入調(diào)整功能,并且停止倒計時。2. 5秒表功能:短按四次s1,顯示狀態(tài)為00: 00: 00,冒號為長亮。按動s2則開始秒表計時,再次按動s2則停止計時,當停止計時的時候按動s3則秒表清零。2. 6計數(shù)器功能:短按五次s1,顯示狀態(tài)為00: 00: 00,冒號為長火,按動s2則計數(shù)器加1,按動s3則計數(shù)器清零。結論經(jīng)過人呈查找資料和老師的不斷指點,我將所設計的六位數(shù)碼管電子鐘焊接成功,雖然不是很穩(wěn)定,但在這個過程屮,我了解了各個元器件的識別與測量,也了解了 at89c2051單片機及其引腳功能。同時明白了六位數(shù)碼管電子鐘的工作原理并實現(xiàn)了其功能。本租序設計時,只川了一個定

34、時器t0,其他的中斷全部關斷,定時器工作在兩個8位自動加載初始值狀態(tài)。 簡短的定吋中斷程序只負責吋間的計數(shù)和進位功能,這是保證走吋精確。有三個輕觸式按鍵:功能選擇按鍵 s1,功能擴展按鍵s2,數(shù)值加一按鍵s3。此數(shù)字鐘采用了一只npn型的三極管及蜂鳴器為鬧時訊響電路。 通過這次的畢業(yè)設計,我對向己的動手能力有了信心。而臨著就業(yè),我將充分發(fā)揮我的主觀能動性和在學校學到的一切知識。為母校添磚加瓦,為自己的前程奮斗!這次畢業(yè)設計的順利進行,我深刻明白了理論知識 與社會實踐相結合的道理,從總得到了以前書本知識所不曾得到的知識。更加明白了如今信息時代電子技能 知識的重要性。增強了我對實際工藝技術、電子技

35、術和設備技術等方面的認識,掌握了分析處理方法,調(diào)試、計算等基本技能的訓練,并具備丫一定程度的實際工作能力。致謝在這三年的學習生活中,學校嚴謹?shù)闹螌W作風、良好的學習氛圍、老師們認真的工作態(tài)度,都給我留下了非常深刻的印象。在這里我真誠地向那些曾經(jīng)幫助過我、關心過我的老師、同學和朋友們說一聲:謝謝!祝愿他們一生平安謝謝老師對我細心指導參考文獻1石生,電路基本分析m高等教育出版社.2008,9: 6466.2何立民,高級單片機教程m北航出版社.2009, 6:218220.3李振聲,實驗電子技術m國防工業(yè)出版社.2007, 7:7375.4李全利,單片機原理與應用技術m高等教育出版社.2009, 6:

36、8184.5劉守義,單片機應用技術m西安電子科技大學出版社.2008, 4:719.6任為民,電子技術基礎課程設計m中央廣播電視大學出版社.2003, 10:8087.7 atmel, microcontroller data bookm. 2002,9: 3841.8 markl, montrose.printed circuit board design techniques for emccompliance.iee press seriesm.2000,11:4448.附錄1程序主要代碼:#include<reg2051.h>code senen_seg10=0x81,0x

37、e7,0x92,0xa2,0xe4,0xa8,0x88,0xe3,0x80,oxao;bitkey1_enter=0,key2_enter=0,key3_enter=0,countdown_mark=0,stopwatch_mark=0,count_mark=0,bell_mark=0;unsigned char program=0,program_variable=0,count_bit=0,count=0;unsigned char hour=10,minute=10,second=0;unsigned char delayed_hour=22,delayed_minute=10,dela

38、yed_second=0;unsigned char count_hour=0,count_minute=0,count_second=0;unsigned char count_time=0,count_count=0;void delay(unsigned int t)unsigned int ij;for(i=0;i<t;i+)for(j=0;j<10;j+);void timeo_init(void)ea=0;tr0=0;tmod=0x01;th0=0xec;tl0=0x73;et0=1;tr0=1;ea=1;static void timerojsr(void) inte

39、rrupt tfo_vector using 1tr0=0;th0=0xec;tl0=0x73;tr0=1;count_time+;if(count_time>=199)count_time=0;second+;if(second>=60)second=0;minute+;if(minute>=60)minute=o;hour+;if(hour=24)hour=0;if(delayed_hour=hour && delayed_minute=minute && second<4) p3_7=0else p3_7=1;if(countdow

40、n_mark=1)count_count+;if(count_count>=199 &&(count_second!=0|count_minute!=0|count_hour!=0)count_count=0;count_second-;if(count_second>=60)count_second=59;countminute-;if(count_minute>=60)count_minute=59;count_hour;if(count_hour>=100) count_hour=99;if(count_second=0&&coun

41、t_minute=0&&count_hour=0&&count_count<=12000) p3_7=0;else p3_7=1;if(count_count>=15000) count_count= 14000;if(stopwatch_mark=1)count_count+;if(count_count>=2)count_count=0;count_second+;if(count_second>=100)count_second=0;count_minute+;if(count_minute>=60)count_minute=

42、0;count_hour+;if(count_hour>=60) count_hour=0;unsigned char show_key (void)unsigned char x=o,y=o;switch (program)case 0: p1&=senen_segsecond%10;break;case 1: if(count_time>=90) p1&=senen_segsecond%10;break;case 2: if(delayed_hour=24) p1=0xfe;else p1 &=senen_segdelayed_second%10;bre

43、ak;case 3: if(count_bit>=0) p1 &=senen_segcount_second%10;else p1=0xff;break;case 4: p1&=senen_segcount_second%10;break;case 5: p1&=senen_segcount_second%10;break;delay(10);jf(p3_5=0)key1_enter=1;if(count<=254)count+;if(p3_4=0) key2_enter=1;if(p3_2=0) key3_enter=1;p3_3=1;p1|=0xff;s

44、witch (program)case 0: p1 &=senen_segsecond/10;break;case 1: if(count_time>=90) p1 &=senen_segsecond/10;break;case 2: if(delayed_hour=24) p1=0xfe;else p1 &=senen_segdelayed_second/10;break;case 3: if(count_bit=1) p1 &=senen_segcount_second/10;else p1=0xff;break;case 4: p1 &=se

45、nen_segcount_second/10;break;case 5: p1 &=senen_segcount_second/10;break;p3_1=0;delay(10);p3_1=1;p1|=0xff;switch (program)case 0: p1&=senen_segminute%10;break;case 1: if(count_time>=90) p1&=senen_segminute%10;break;case 2: if(delayed_hour=24) p1=0xfe;else p1&=senen_segdelayed_minu

46、te%10;break;case 3: if(count_bit>=2) p1 &=senen_segcount_minute%10;else p1=0xff;break;case 4: p1&=senen_segcount_minute%10;break;case 5: p1&=senen_segcount_minute%10;break;delay(10);p3_2=1;p1|=0xff;switch (program)case 0: p1 &=senen_segminute/10;break;case 1: if(count_time>=90)

47、 p1 &=senen_segminute/10;break;case 2: if(delayed_hour=24) p1=0xfe;else p1 &=senen_segdelayed_minute/10】;break;case 3: if(count_bit>=3) p1 &=senen_segcount_minute/10;else p1=0xff;break;case 4: p1 &=senen_segcount_minute/10;break;case 5: p1 &=senen_segcount_minute/10;break;p3_5

48、=0;delay(10);p3_5=1;p1|=0xff;switch (program)!case 0: p1&=senen_seghour%10;break;case 1: if(count_time>=90) p1 &=senen_seghour%10;break;case 2: if(delayed_hour=24) p1=0xfe;else p1 &=senen_segdelayed_hour%10;break;case 3: if(count_bit>=4) p1&=senen_segcount_hour%10;else p1=0xff;

49、break;case 4: p1 &=senen_segcount_hour%10;break;case 5: p1&=senen_segcount_hour%10;break;p3_0=0;delay(10);jf(p3_4=1 && key2_enter=1)x=3;3p3_0=1;p1|=0xff;switch (program)case 0: p1 &=senen_seghour/10;break;case 1: if(count_time=90) p1 &=senen_seghour/10;break;case 2: if(delaye

50、d_hour=24) p1=0xfe;else p1&=senen_segdelayed_hour/10;break;case 3: if(count_bit>=5)p1 &=senen_segcount_hour/10;else p1=0xff;break;case 4: p1 &=senen_segcount_hour/10;break;case 5: p1 &=senen_segcount_hour/10;break;p3_4=0;delay(10);if(p3_5=1 && key1_enter=1)if(count>=127

51、) x=1;else x=2;key1_enter=0;count=0;if(p3_2=1 && key3_enter=1)x=4;key3_enter=0;p3_4=1;p1|=0xff;if(program<=1 && count_time>=100) p1&=0xff;if(program<=1 && count_time<=100) p1&=0x7f;if(program=2) p1&=0x7f;if(program=3) p1&=0xff;if(program=4) p1&

52、=0x7f;if(program=5) p1&=0xff;y=x;x=0;return y;void main()p1=0xff;p3=0xff;timeo_init();while(1)switch(program)case 0: while(program=0)switch(show_key()case 0: break;case 1: program=0;break;case 2: program=1;break;break;case 1: while(program=1)switch(show_key()case 0: break;case 1: program=0;break

53、;case 2: program=2;break;case 3: hour+;if(hour=24)hour=0;case 4: minute+;if(minute=60)minute=0;break;break;case 2: while(program=2)switch(show_key()case 0: break;case 1: program=0;break;case 2: program=3;break;case 3: delayed_hour+;if(delayed_hour>=25)delayed_hour=0;break;case 4: delayed_minute+;if(delayed_minute>=60)delayed_minute=0;break;case 3: while(program=3)switch(show_key()case 0:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論