基于51單片機(jī)的簡易秒表設(shè)計
《基于51單片機(jī)的簡易秒表設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《基于51單片機(jī)的簡易秒表設(shè)計(34頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、I 畢業(yè)論文畢業(yè)論文 論文題目論文題目 5151 單片機(jī)的簡易秒表設(shè)計單片機(jī)的簡易秒表設(shè)計 指導(dǎo)教師指導(dǎo)教師 專專 業(yè)業(yè) 計算機(jī)應(yīng)用技術(shù)(電子信息工程技術(shù))計算機(jī)應(yīng)用技術(shù)(電子信息工程技術(shù))班班 級級 電子電子 12011201 姓姓 名名 學(xué)學(xué) 號號 12032003021203200302 2015 年 3 月 30II基于 51 單片機(jī)的簡易秒表設(shè)計摘要:摘要:本次論文設(shè)計的電子秒表電路主要由 STC89C52 單片機(jī)最小系統(tǒng)電路、數(shù)碼管動態(tài)顯示電路和控制電路組成。秒表具備啟動、停止、清零功能組計時蜂鳴器報時等功能,在單片機(jī)最小體系的基礎(chǔ)上增加顯示電路和控制電路來完成的系統(tǒng)的設(shè)計的。關(guān)鍵
2、詞關(guān)鍵詞 :51 單片機(jī);秒表;數(shù)碼管;IIIDesign of simple stopwatch based on 51 chip AbstractAbstract:Using this chip STC89C52 chip as the MCU control port control digital tube display minutesand seconds LED digital tube, we must first understand the working principle and the way it, using the button to achieve a sto
3、pwatch start stop reset function packet timing buzzertime accurate to 0.01 seconds.The design of this thesis draw using microcontroller schematic diagram of LED digital tubecircuit diagram and timer mode control, and realize the design of the hardware circuit and programming to complete the final co
4、mmissioning software part of the box in the experimentabove, the stopwatch with start, stop, reset function group timing buzzer timekeeping functions. Through this design deepen the comprehensive understanding of SCM curriculum, and to review and grasp the further understanding of SCM course and its
5、 application. Grasp the external setting and programming principle of interrupt, timer.Through this graduation design, to integrated single-chip programming and program verification.Through the experimental system of single chip microcomputer timer counter,timer and counter the simple design princip
6、le. The design is based on SCM minimumsystem increased on the display circuit and the control circuit design of the system to complete the. Electronic stopwatch circuit mainly by the STC89C52 microcontrollerminimum system circuit, digital tube dynamic display circuit and a control circuit.KeyKey wor
7、dswords: 51 singlechip; stopwatch; circuit;IV目 錄第一章第一章 緒論緒論.1 11.1 選題背景.11.2 研究目標(biāo)和意義.1第第 2 2 章章 系統(tǒng)方案設(shè)計系統(tǒng)方案設(shè)計.5 52.1 設(shè)計要求.52.2 工作原理及系統(tǒng)整體方案設(shè)計.22.2.1 工作原理 .22.2.2 系統(tǒng)整體設(shè)計方案.3第第 3 3 章章 系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計.4 43.1 單片機(jī)的選型.43.2 時鐘電路.43.3 復(fù)位電路.53.5 顯示電路.5第第 4 4 章章 系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計.6 64.1 定時初值的計算 .64.2 初始化 .74.3 判斷有無鍵按下,
8、并進(jìn)行按鍵處理 .74.4 顯示子程序設(shè)計 .74.5 中斷子程序設(shè)計 .8第第 5 5 章章 測試及仿真結(jié)果測試及仿真結(jié)果.9 9第第 6 6 章章 結(jié)語結(jié)語.1 11 1參考文獻(xiàn)參考文獻(xiàn).1 12 2致致 謝謝.1313附附 錄錄.1414V1第一章第一章 緒論緒論1.11.1 選題背景選題背景 單片機(jī)自上世紀(jì) 70 年代以來,由于其價格不是很高,因此受到百姓的重視和關(guān)注,所以發(fā)展很快,單片機(jī)目前應(yīng)用廣泛。單片機(jī)的主要特點(diǎn)就是體積小、集成度高、重量強(qiáng)、抗干擾能力強(qiáng)、對環(huán)境的要求低、價格低廉、可靠性高、靈活性強(qiáng)、開發(fā)較為容易。正因為單片機(jī)有這些優(yōu)良的特性,所以被廣泛應(yīng)用于工業(yè)自動化控制,自動
9、檢測,智能儀器,智能化家用電器,航空航天和軍事技術(shù)領(lǐng)域,我們可以利用單片機(jī)系統(tǒng)跟其他系統(tǒng)相結(jié)合,以獲得很高的經(jīng)濟(jì)效益,更重要的意義在于單片機(jī)的應(yīng)用改變了控制系統(tǒng)的設(shè)計思想和方法,極大推動了工業(yè)的發(fā)展。通過硬件以及軟件的組合來取代單純的硬件確實(shí)能提高系統(tǒng)性能的控制技術(shù)。本文所要論述的就是通過單片機(jī)來控制 LED 顯示屏顯示秒表數(shù)字,秒表是電器制造、電信、工業(yè)自動化控制、國防、實(shí)驗室及科研單位理想的計時工具。本秒表/時鐘設(shè)計就是利用單片機(jī)的上述特點(diǎn),采用目前市場上性價比比較高單的 STC89C52 單片機(jī)設(shè)計而成的最小系統(tǒng)。它在實(shí)際生活中具有十分廣泛的應(yīng)用。1.21.2 研究目標(biāo)和意義研究目標(biāo)和意
10、義 本設(shè)計是在單片機(jī)最小系統(tǒng)的基礎(chǔ)上增加顯示電路和控制電路來完成電子秒表的硬件電路,以達(dá)到 0.01s 的精度以及啟動、暫停、清零等功能。電子秒表電路主要由 STC89C52 單片機(jī)最小系統(tǒng)電路、四段數(shù)碼管動態(tài)顯示電路和控制電路等模塊組成,它能實(shí)現(xiàn)四位數(shù)碼顯示和多次計時,能通過控制電路能控制時間的暫停和開始,能夠多次計時、查詢計時時間。秒表是一種常用的測時儀器。 本設(shè)計從總體要求出發(fā),本次設(shè)計采用自頂向下逐步細(xì)化的方法,將系統(tǒng)模塊化,使得系統(tǒng)具有很強(qiáng)的擴(kuò)充性,并且在實(shí)現(xiàn)設(shè)計的基礎(chǔ)上,采用maxplus 的仿真環(huán)境進(jìn)行仿真實(shí)驗,得到理想的仿真效果。本設(shè)計完成的秒數(shù)計時功能,實(shí)現(xiàn)了在許多特定場合進(jìn)
11、行時間追蹤的功能,在社會生活中具有十分廣泛的應(yīng)用價值。 2第第 2 2 章章 系統(tǒng)方案設(shè)計系統(tǒng)方案設(shè)計2.12.1 設(shè)計要求設(shè)計要求數(shù)字秒表設(shè)計由單片機(jī) AT89C51、數(shù)碼管、開關(guān)、電阻、電容等部分組成。其功能要求是用 AT89C51 設(shè)計一個 2 位 LED 數(shù)碼顯示的“秒表”,顯示時間為00-99 秒,每秒自動加一。另外還設(shè)計了一個“開始”按鍵、一個“復(fù)位”按鍵和一個“暫停”按鍵。按下“啟動”按鈕,開始計數(shù),從 00 開始加二自動數(shù)碼管顯示;按“暫?!卑粹o,系統(tǒng)停止計數(shù),數(shù)碼管顯示計數(shù)。本系統(tǒng)應(yīng)具有以下四種功能:1 1 時鐘功能時鐘功能對于時鐘功能,我們需要在數(shù)碼管上顯示小時、分鐘和秒鐘
12、,因此,可以在內(nèi)部存儲空間分別定義它們的顯示、緩存空間,來存放小時、分鐘和秒鐘的BCD 碼,每個 BCD 碼各需要 2 個字節(jié)的儲存空間。隨著時鐘的不停走動,因此有必要采取自動定時內(nèi)部定時器,使用定時器中斷時間的數(shù)值刷新定時處理器。定時器 51 單片機(jī)的 16 位定時器工作模式。當(dāng)晶振為 12MHz 時,16 位定時器的最大定時值為 60ms;因為在計秒表功能也需要使用 1 個定時器,因此,我們使用第一種方法,只使用 1 定時器 T0 的使用。由于秒表在計功能時也需要用到 1 個定時器,因此,我們采用第一個方法,只使用 1 個定時器,例如使用T0。為了達(dá)到較為準(zhǔn)確的計時,使 T0 的溢出時間為
13、 50ms,使用一個字節(jié)作為軟件計數(shù)器 ST,計數(shù)值為 20。中斷處理程序定時器減 1 操作時,ST 是 0,此時存儲緩沖時間,顯示更新分鐘,秒。 2 2 計時功能計時功能 當(dāng)作為一個計時秒表功能,還需要一個定時器 10ms,單片機(jī)定時器 1 在這種情況下使用。在 TIMER1 的中斷處理程序中更新 SS 和 ss 的緩存空間,與上面類似。 3 3 功能按鍵功能按鍵再看按鍵的處理,這 3 鍵可以使用中斷的方法也可以用來確定查詢的方法。3對于 A、B 鍵,主要功能在于功能切換和數(shù)值復(fù)位,對于時間的要求不是很嚴(yán)格,而 C 鍵主要用于時間的鎖定,需要比較準(zhǔn)確的控制。因此認(rèn)為 A,B 鍵使用查詢模式,
14、和 C 鍵與外部中斷。4 4 中斷嵌套和控制中斷嵌套和控制現(xiàn)在在我的方案中有 3 個中斷,T0、T1 中斷和外部中斷 INT0。這 3 個中斷的特點(diǎn)是:T0 的工作是連續(xù)的,可以在誤差范圍內(nèi)可以被打斷但不可以停止;T1 的工作同樣可以在誤差范圍內(nèi)被打斷,但可以被 INT0 停止;INT0 是用來啟動或停止 T1 的。 2.22.2 工作原理及系統(tǒng)整體方案設(shè)計工作原理及系統(tǒng)整體方案設(shè)計2.2.12.2.1 工作原理工作原理從00開始計數(shù)開始按鍵開始計數(shù)復(fù)位按鍵暫停按鍵數(shù)碼管顯示00數(shù)碼管顯示當(dāng)前數(shù)值圖圖 2.12.1 系統(tǒng)工作原理圖系統(tǒng)工作原理圖該系統(tǒng)主要由三部分組成:鍵控信號處理軟件,單片機(jī),
15、數(shù)碼管顯示。電路的操作,通過開關(guān)的關(guān)鍵決定其運(yùn)作模式,通過單片機(jī)內(nèi)部程序進(jìn)行相應(yīng)的處理,在數(shù)碼管上顯示。一個機(jī)器周期的 12M 晶振使用 1 微秒,二延時所產(chǎn)生的循環(huán),存儲在單片機(jī)(掃描時間值可以是積極的,也有倒計時),并在數(shù)碼管上顯示通過輸出。此外,數(shù)碼管連接的上拉電阻,是為了確保不壓銷的外部鍵,負(fù)載保持引腳是低的電流。系統(tǒng)整體設(shè)計如圖 2.1 所示。2.2.2 系統(tǒng)整體設(shè)計方案數(shù)字秒表系統(tǒng)主要完成對計時實(shí)時的顯示,精度達(dá)到 0.01s,以及通過功能鍵可以使當(dāng)前計時暫?;蚯辶恪O到y(tǒng)主要包括時鐘電路、復(fù)位電路、按鍵電路以及數(shù)碼管顯示電路。系統(tǒng)采用六個共陽極數(shù)碼管,其中八位數(shù)據(jù)口與單片機(jī)的 P0
16、 口通過 74LS245 雙向總線收發(fā)器相接,以增加 P0 的驅(qū)動能力。6 個片選信號連接單片機(jī) P2 口的低六位。該電路可以滿足顯示定時時間,顯示 0.01s 的最小單位,顯示時間范圍在40 到 59 分鐘 59.99 秒。3 個功能鍵連接到 P3 口的低三位,控制系統(tǒng)的計時、暫停和清零。系統(tǒng)的整體組成框圖如圖 2.2 所示。時鐘電路按鍵電路數(shù)碼管單片機(jī)復(fù)位電路圖 2.2 系統(tǒng)整理組成框圖5第第 3 3 章章 系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計 電路原理圖最基本最重要的要求就是要正確,然后就是布局必須合理不能雜亂無章,最后是布局還要美觀,下圖 3.1 為本設(shè)計的硬件總體電路示意圖:圖 3.1 硬件總體
17、電路示意圖3 3.1.1 單片機(jī)的選型單片機(jī)的選型AT89C2052 是一個低電壓,高性能 CMOS 8 位單片機(jī),AT89C2052 片內(nèi)含 8k bytes 的 Flash 只讀程序存儲器,這些制度程序存儲器是可反復(fù)擦寫的,以及256 bytes 的隨機(jī)存取數(shù)據(jù)存儲器(RAM),AT89C2052 器件采用 ATMEL 公司的儲存技術(shù)進(jìn)行生產(chǎn),該技術(shù)具有高密度、非易失性等優(yōu)點(diǎn),并且單片機(jī)兼容標(biāo)準(zhǔn) MCS-51 指令系統(tǒng),片內(nèi)置通用 8 位中央處理器和 Flash 存儲單元,AT89C2052 功能十分強(qiáng)大的,可用于許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。 AT89C52 單片機(jī)有 40 個引腳,32
18、個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含 2 個外中斷口,3 個 16 位可編程定時計數(shù)器,2 個全雙工串行通信口,2個讀寫口線,AT89C52 可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和 Flash 存儲器結(jié)合在一起,特別是可反復(fù)擦寫的 Flash 存儲器可有效地降低開發(fā)成本。AT89C52 有 PDIP、PQFP/TQFP 及 PLCC 等三種封裝形式,6以適應(yīng)生產(chǎn)不同產(chǎn)品的需要。 3.23.2 時鐘電路時鐘電路時鐘電路是單片機(jī)最重要的組成部分之一,它的主要作用是產(chǎn)生 CPU 的校準(zhǔn)時序,AT89C51 時鐘信號可以通過 2 中方式得到,分別是內(nèi)部震蕩方式,第二種是
19、外部振蕩方式。這次論文采用的是內(nèi)部震蕩方式。時鐘電路的時序控制是通過外界 12MHZ 的晶振來實(shí)現(xiàn)的。XTAL1 為反向放大器輸出端,XTAL 為正向放大器的輸入端。外部連接晶體電容來構(gòu)成諧振電路,然后將該電路接到反饋電路里面去,電路接法如圖所示:圖 3.2 反饋電路接法3.33.3 復(fù)位電路復(fù)位電路單片機(jī)復(fù)位的作用是確保 CPU 和系統(tǒng)中的其他功能模塊都處在一個統(tǒng)一的初始狀態(tài),并從這個狀態(tài)開始進(jìn)行工作。當(dāng)單片機(jī)剛開始聯(lián)通電源時需要復(fù)位,斷電后或者發(fā)生故障出現(xiàn)錯誤后也需要復(fù)位。51 系列單片機(jī)的復(fù)位信號是從RST 引腳輸人到芯片的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定之后,如
20、果 RST 引腳有一個高電平并維持 2 個系統(tǒng)機(jī)器周期(24 個振蕩周期),則 CPU 就可馬上進(jìn)行響應(yīng)并且將系統(tǒng)進(jìn)行復(fù)位處理。復(fù)位分為上電復(fù)位手動復(fù)位和電源復(fù)位兩種情況。圖 3.2 系統(tǒng)復(fù)位電路的示意圖:7圖 3.3 復(fù)位電路示意圖3.43.4 按鍵電路按鍵電路本系統(tǒng)設(shè)置 3 個功能按鍵分別為 KEY1、 KEY2 和 KEY3, 其中 KEY1 是開始按鍵, 與 P3.0 相連,按下時數(shù)碼管開始計時;KEY2 是停止按鈕,連接 P3.1數(shù)碼管,當(dāng)你按下的時候數(shù)碼管停止時間走動;KEY3 是清零按鍵,與 P3.2 相連,按下時數(shù)碼管全部清零,即全部顯示為零。當(dāng)數(shù)碼管開始計數(shù)的時候,不能直接按
21、“清除”按鈕需要首先,按下停止按鈕停止,然后按復(fù)位鍵初始化所有顯示 0。3.53.5 顯示電路顯示電路LED 顯示驅(qū)動器的設(shè)計是一個非常重要的問題,顯示電路由 LED 顯示,驅(qū)動電路和驅(qū)動電路部分組成。LCD1620 液晶也被稱為 1602 字符型液晶顯示器,它是一種專門用來顯示字母、數(shù)字、符號的點(diǎn)陣型液晶模塊。它有若干個 5X7或者 5X11 等點(diǎn)陣字符位組成。每個點(diǎn)陣字符都可以顯示一個字符。每個也有間隔之間扮演的角色間距和排間距的影響因為這樣他可以顯示圖形 n1602lcd 指顯示每個線的距離間隔 16x2 內(nèi)容。位驅(qū)動電路通過六只 NPN 三極管驅(qū)動使 P2 口的低六位作為位選信號,使之
22、產(chǎn)生足夠大的電流,來驅(qū)動 LED達(dá)到足夠的亮度,顯示器才能正常工作。如果驅(qū)動電路能力差,即驅(qū)動電流過小,數(shù)碼管顯示亮度低,而驅(qū)動電路驅(qū)動電流太大,這種情況下特別容易損壞數(shù)碼管。LED 顯示屏具有兩種控制模式:靜態(tài)和動態(tài)。設(shè)計方案的選擇是動態(tài)控制方法。由于數(shù)據(jù)顯示由信號部分代碼和代碼一起完成的,因此,也應(yīng)考慮一段和驅(qū)動能力,驅(qū)動能力部分必須定位驅(qū)動能力。LDE 顯示模塊如圖 3.3 所示:8圖 3.4 顯示模塊原理圖第 4 章 系統(tǒng)軟件設(shè)計利用主程序的子程序的設(shè)計方法,來初始化定時器和相關(guān)寄存器和內(nèi)存單元的主程序,調(diào)用按鍵掃描子程序和顯示子程序,判斷時間是否為 9 分鐘 59 秒的時間。主程序設(shè)
23、計流程圖如圖 4-1 所示。 調(diào)用按鍵掃表子程序開始語音初始化計時時間到了9分59秒?將計數(shù)單元3FH-42H清零,將存放按鍵次數(shù)的寄存器R7清零,將存放位選值的寄存器R2清零,關(guān)閉定時器。NY調(diào)用顯示子程序計數(shù)單元清零圖 4.1 主程序設(shè)計流程圖4.14.1 定時初值的計算定時初值的計算 根據(jù)計算的時鐘頻率為 12MHz,機(jī)器周期為 1s,使用定時器/計數(shù)器 19的工作方式,定時時間 50ms。計算初值如下: 計數(shù)值 N=定時/計數(shù)器最大值 M,定時/計數(shù)器初值 X 則初值 X=M/N 機(jī)器周期 TM = 12 * 12 * 1 / 12 OSC =106 = 1 秒采用定時器工作方式 1,
24、所以初值為 X=216,50ms/1us=15536=3CB0H 所以 TH0=3CH,TL0=B0H4.24.2 初始化初始化 通過初始化設(shè)置定時器 0 和 1,總開定時器 0 中斷,分別存儲毫秒,秒,分鐘計數(shù)單元,3FH,40h,41h 42h,復(fù)位。關(guān)閉定時器/計數(shù)器 T0,數(shù)字鍵存儲寄存器 R1 復(fù)位。4.34.3 判斷有無鍵按下,并進(jìn)行按鍵處理判斷有無鍵按下,并進(jìn)行按鍵處理 因為只有一個連接到 P3.0 連接獨(dú)立按鍵,所以連接 P3.0 使用,讀取按鈕狀態(tài) keyend 命令。當(dāng) P3.00 是一個鍵被按下,然后去抖延時去抖延時10ms,將存儲的數(shù)字鍵再加上 1 的 R7 寄存器,然
25、后判斷 R1 的值是什么,如果是 1(代表第一個按鈕)和 SETB tr0。則用 SETB TR0 指令啟動定時器 T0;如果是 2 則用 CLR TR0 指令關(guān)閉定時器 T0;如果是 3 則將存放時間的3FH,40H,41H,42H 單元及存放按鍵次數(shù)的 R1 清零。程序設(shè)計流程圖如圖 4.2所示:10開始將累加器A的內(nèi)容壓入堆棧N按鍵按下次數(shù)子程序返回有鍵按下嗎?按鍵延時消抖關(guān)閉定時器秒表停止計數(shù)秒表復(fù)位顯示0啟動定時器秒表開始計數(shù)將堆棧內(nèi)容彈出至累加器AN圖 4.2 節(jié)點(diǎn)無線通信模塊的軟件流程4 4.4.4 顯示子程序設(shè)計顯示子程序設(shè)計 顯示子程序是用來儲藏在 3Fh,40h,41h,4
26、2 單位計數(shù)的值,查找和計算相應(yīng)的代碼段,然后將信息發(fā)送給對應(yīng)的 LED 數(shù)碼管顯示 。程序設(shè)計流程圖如圖 4-3 所示。 開始將R0賦初值3FH,R2賦初值08H,R3賦初值4N中斷返回Y累加器A清零,通過MOVA,R0指令讀數(shù)計數(shù)單元的值根據(jù)計數(shù)單元的值,通過查表指令,找到跟計數(shù)值相對應(yīng)的顯示斷碼。將查表的顯示送數(shù)碼顯示器,并從R2讀取位選碼,并送P2口。顯示延時R0加1,準(zhǔn)備讀取下一計數(shù)單元,修改R2的值,準(zhǔn)備顯示下個數(shù)碼管。4個數(shù)碼管掃描管顯示完了嗎?圖 4.3 顯示子程序流程圖4 4.5.5 中斷子程序設(shè)計中斷子程序設(shè)計11這個任務(wù)定時器 T0 定時器 50ms,每 50ms,T0
27、產(chǎn)生中斷,進(jìn)入中斷服務(wù)程序。在中斷服務(wù)程序過程中,將第一內(nèi)容能入棧,保護(hù)現(xiàn)場,然后重新安裝到初始值。而后 50ms 計數(shù)單元加 1,再判別計數(shù)單元是不是、加到 2,若沒有則中止返回,然后判斷是否為 10 毫秒計數(shù)單元(即 1s),如果沒有的話,中斷返回;若到了 10,則將毫秒計數(shù)單元清零。然后將秒的個位計數(shù)單元加 1,秒的個位計數(shù)單元加 1 后判斷是否加到 10,若不是則中斷返回;如果這將是一個位計數(shù)單元復(fù)位秒 10 位計數(shù)單元,加上 1 秒,然后將開始初始化初始值 R0 3FH,R2 R3 08H,初始值 4 累加器復(fù)位,通過自轉(zhuǎn)、MOV、R0 指令讀取計數(shù)單元的值根據(jù)計數(shù)單元的值,通過查表
28、指令,找到跟計數(shù)值相對應(yīng)的顯示段碼將查表得顯示段碼送顯示器,并從 R2 讀取位選碼,并送 P2 口顯示延時 R0 加1,準(zhǔn)備讀取下一計數(shù)單元,修改 R2 的值,準(zhǔn)備顯示下個數(shù)碼管 4 個數(shù)碼管掃描顯示完嗎,子程序返回,再判斷秒的 10 位計數(shù)單元是否到 6,若不是則中斷返回;若是則將秒的十位清零,分計數(shù)單元加 1。程序設(shè)計流程圖如圖 4-4 所示。 12開始將A中內(nèi)容壓入堆棧,單元43H中的內(nèi)容加1Y中斷了2次嗎?N中斷次數(shù)單元清零,毫秒計數(shù)單元值加1毫秒計數(shù)單元等于10嗎毫秒計數(shù)單元清零,秒的個位計數(shù)單元值加1秒的各位等于10嗎秒計數(shù)單元清零,分的計數(shù)單元值加1秒的十位等于6嗎、中斷返回秒十
29、位計數(shù)單元清零,分的計數(shù)單元值加1NNNYYY圖 4.4 中斷程序流程圖13第第 5 5 章章 測試及仿真結(jié)果測試及仿真結(jié)果Proteus 仿真測試結(jié)果及分析如下圖示:當(dāng)按了啟動按鈕后,系統(tǒng)計時開始,如下圖所示:當(dāng)按了復(fù)位時,記時清零,如圖所示:運(yùn)行測試結(jié)果證明,系統(tǒng)能夠正常運(yùn)行,達(dá)到了設(shè)計的目的。14第第 6 6 章章 結(jié)語結(jié)語本次以單片機(jī)為核心,跟其他相關(guān)元器件相結(jié)合再編寫相應(yīng)的軟件,實(shí)現(xiàn)了秒表的功能,測試結(jié)果表明,系統(tǒng)能夠正常工作,達(dá)到了之前的想法。通過這次的論文設(shè)計,我對單片機(jī)有了更深一層次的理解,對單片機(jī)的硬件設(shè)計以及軟件設(shè)計還有單片機(jī)系統(tǒng)的工作原理有了更高一層次的認(rèn)識。這次設(shè)計,是
30、我第一次編寫較大的程序內(nèi)容,在編寫程序中,遇到了很多的困難,并及時向同學(xué)、學(xué)長、老師進(jìn)行了請教,都一一解決了問題,在今后的學(xué)習(xí)和實(shí)踐中也將能夠運(yùn)用這些知識和技能。在編寫程序過程中,我將課本上學(xué)到的知識與實(shí)際相結(jié)合,解決了很多的問題,把程序分成多個部分,然后對每個部分分別編寫程序,探后一一調(diào)試,如果越到困難,則仔細(xì)思考、翻閱書籍課本查閱資料,或者向同學(xué)請教,嚴(yán)格謹(jǐn)慎的分析,一定能夠解決困難,這次設(shè)計也讓我更清醒的認(rèn)識到自己的知識量太少了,自身有很多的不足,欠缺。學(xué)到的東西也不能靈活運(yùn)用,基礎(chǔ)差,今后,自己應(yīng)該更加嚴(yán)格要求自己,努力學(xué)習(xí)提升自己的綜合水平與能力。 15參考文獻(xiàn)參考文獻(xiàn)1馬爭.微計算
31、機(jī)與單片機(jī)原理及應(yīng)用,北京:高等教育出版社,2009 2楊素行.模擬電子技術(shù)基礎(chǔ)簡明教程,第三版.北京:高等教育出版社,2006 3郭天翔.新概念51單片機(jī)C語言教程,北京:電子工業(yè)出版社,2009 4張?zhí)旆?完全手冊51單片機(jī)C語言開發(fā)詳解,北京:電子工業(yè)出版社,2008 5胡翔駿.電路分析,北京:高等教育出版社,2002 6張毅剛.彭喜元.單片機(jī)原理與應(yīng)用設(shè)計,北京:電子工業(yè)出版社,2004 7張毅剛.單片機(jī)原理及應(yīng)用,北京:高等教育出版社,2006 8張毅坤.單片機(jī)微型技術(shù)原理及應(yīng)用第二版.西安:西安電子科技大學(xué)出版社,2009 9李全利,遲榮強(qiáng).單片機(jī)原理及接口技術(shù),北京:高等教育出版
32、社,2008 10康華光.電子技術(shù)基礎(chǔ).北京:高等教育出版社,2001 11閻石.模擬電子技術(shù)基礎(chǔ).北京:高等教育出版社,2001 12陳光東.單片機(jī)微型計算機(jī)原理及其C語言程序設(shè)計,武漢:華中科技大學(xué)出版社2004 13楊宇.單片機(jī)與控制技術(shù),北京:北京航空航天大學(xué)出版社,2005 14張鑫,華臻,陳書謙,單片機(jī)原理及應(yīng)用,電子工業(yè)出版社,2005.8,15楊光友,朱宏輝,單片微型計算機(jī)原理及接口技術(shù),水利水電出版社2002.9 ,16楊文龍,單片機(jī)原理及應(yīng)用,西安電子科技大學(xué)出版社1993,6, 第1 版 17夏路易,石宗義,電路原理圖與電路板設(shè)計教程北京希望電子工業(yè)出版2002 18毛謙
33、敏.單片機(jī)原理及應(yīng)用設(shè)計系統(tǒng)M北京:國防工業(yè)出版社,2008 16致致 謝謝時光總是在回首時才發(fā)現(xiàn)它的短暫,真情總是在彼此相處中才體現(xiàn)它的可貴!回首三年的求學(xué)之路,不僅在知識上有了更多的沉淀,更結(jié)交了我人生中很多的貴人,他們是我的師長,是我的同窗,是我的學(xué)長。是他們在我無助時給我?guī)椭?,在我彷徨時給我指引,在我奮力向前時給我前行的力量!為自己出生社會打下了堅實(shí)的基礎(chǔ)。感謝學(xué)校的培養(yǎng),為我們插上理想的翅膀,助力我們揚(yáng)帆遠(yuǎn)航!感謝所有在這里關(guān)心我和幫助我的師長、和同學(xué)!在攻校期間,我也得到了所有任課老師的幫助,對此表示衷心的謝意。感謝我的師弟師妹們對我在學(xué)習(xí)與論文寫作過程中的幫助和支持,同時也感謝所
34、有關(guān)心和幫助過我的其他老師同學(xué)!特別感謝我的父母,感謝他們對我求學(xué)生涯的支持和鼓勵!最后感謝周老師,他抽出珍貴時間為我評審論文,在此特向他表示感謝!17附 錄 一 /*秒表*/ #include #define uchar unsigned char #define uint unsigned int sbit key1=P32; sbit key2=P33; sbit T=P34; sbit buzzer=P12; /*不帶小數(shù)點(diǎn)數(shù)碼管數(shù)值*/ uchar code table= 0 x3f,0 x06,0 x5b,0 x4f,0 x66, 0 x6d,0 x7d,0 x07,0 x7f,0
35、 x6f, ; /*帶小數(shù)點(diǎn)數(shù)碼管數(shù)值*/ uchar code apple= 0 xbf,0 x86,0 xdb,0 xcf,0 xe6, 0 xed,0 xfd,0 x87,0 xff,0 xef, ; /*組別顯示*/ uchar code group= 18 0 x06,0 x5b,0 x4f,0 x66,0 x6d, ; uint a,x; static int b, num,num1,num2,num3,num4; static int num_1,num1_1,num2_1,num3_1,num4_1; static int num_2,num1_2,num2_2,num3_2,
36、num4_2; void delay(uint z); void Buzzer(); void display_1(); void display_2(); void display_3(); void main() T2MOD=0; T2CON=0; RCAP2H=(65536-10000)/256; RCAP2L=(65536-10000)%256; TH2=RCAP2H; TL2=RCAP2H; EA=1; ET2=1; TR2=0; EX1=1; IT1=1; EX0=1; IT0=1; while(1) 19 if(b=0) for(x=0;x11;x+) display_1();
37、; if(b=1) for(x=0;x11;x+) display_2(); ; if(b=2) for(x=0;x11;x+) display_3(); ; if(TR2=0&T=0) b+; while(!T) , if(b=0) for(x=0;x11;x+) display_1(); ; if(b=1) for(x=0;x11;x+) 20 display_2(); ; if(b=2) for(x=0;x11;x+) display_3(); ; if(b=3) for(x=0;x11;x+) display_1(); b=0; ; void display_1() P0=tablen
38、um%10; P2=7; delay(50); P0=tablenum/10; P2=6; delay(50); P0=applenum1; 21 P2=5; delay(50); P0=tablenum2; P2=4; delay(50); P0=applenum3; P2=3; delay(50); P0=tablenum4; P2=2; delay(50); P0=0 x40; P2=1; delay(50); P0=groupb; P2=0; delay(50); if(num=100) num=0; num1+; buzzer=0; delay(1); buzzer=1; if(nu
39、m1=10) 22 num1=0; num2+; if(num2=6) um=0; num1=0; num2=0; num3+; Buzzer(); if(um3=10) num3=0; num4+; if(num4=6) num=0; num1=0; num2=0; num3=0; num4=0; void display_2() 23 P0=tablenum_1%10; P2=7; delay(50); P0=tablenum_1/10; P2=6; delay(50); P0=applenum1_1; 附錄 P2=5; delay(50); P0=tablenum2_1; P2=4; d
40、elay(50); P0=applenum3_1; P2=3; delay(50); P0=tablenum4_1; P2=2; delay(50); P0=0 x40; P2=1; delay(100); P0=groupb; P2=0; delay(50); if(num_1=100) num_1=0; num1_1+; buzzer=0; 24 delay(1); buzzer=1; if(num1_1=10) num1_1=0; num2_1+; if(num2_1=6) num_1=0; , num1_1=0; num2_1=0; num3_1+; Buzzer(); if(num3
41、_1=10) num3_1=0; num4_1+; if(num4_1=6) num_1=0; num1_1=0; num2_1=0; num3_1=0; num4_1=0; 25 void display_3() P0=tablenum_2%10; P2=7; delay(50); P0=tablenum_2/10; P2=6; delay(50); P0=applenum1_2; P2=5; delay(50); P0=tablenum2_2; P2=4; delay(50); P0=applenum3_2; P2=3; delay(50); P0=tablenum4_2; P2=2; d
42、elay(50); P0=0 x40; P2=1; delay(50); P0=groupb; P2=0; 26 delay(50); if(num_2=100) num_2=0; num1_2+; buzzer=0; delay(1); buzzer=1; if(num1_2=10) num1_2=0; num2_2+; if(num2_2=6) num_2=0; num1_2=0; num2_2=0; num3_2+; Buzzer(); if(num3_2=10) num3_2=0; num4_2+; if(num4_2=6) 27 num_2=0; num1_2=0; num2_2=0
43、; num3_2=0; num4_2=0; void dingshi0() interrupt 5 TF2=0; if(b=0) num+; if(b=1) num_1+; if(b=2) num_2+; void exter0() interrupt 0 TR2=TR2; void zhongduan() interrupt 2 if(TR2=0) num=0; num1=0; num2=0; num3=0; num4=0; num_1=0; num1_1=0; num2_1=0; num3_1=0; 28 num4_1=0; num_2=0; num1_2=0; num2_2=0; num
44、3_2=0; num4_2=0; b=0; else / TR2=0; b+; if(b=3) b=0; void Buzzer() if(b=0) for(x=0;x40;x+) , display_1(); buzzer=buzzer; ; if(b=1) for(x=0;x40;x+) display_2(); buzzer=buzzer; ; if(b=2) for(x=0;x40;x+) display_3(); buzzer=buzzer; ; if(b=3) display_1(); buzzer=buzzer; b=0; ; buzzer=1; 29void delay(uint z) while(z-); 附錄二附錄二元件清單序號元件名稱用量備注1STC89C52 單片機(jī)1212M 晶振1330P 瓷片電容2410UF 電解電容1510K 電阻1610K 排阻17四位一體數(shù)碼管18855049按鍵310電源座111開關(guān)1
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025《增值稅法》高質(zhì)量發(fā)展的增值稅制度規(guī)范增值稅的征收和繳納
- 深入學(xué)習(xí)《中華人民共和國科學(xué)技術(shù)普及法》推進(jìn)實(shí)現(xiàn)高水平科技自立自強(qiáng)推動經(jīng)濟(jì)發(fā)展和社會進(jìn)步
- 激揚(yáng)正氣淬煉本色踐行使命廉潔從政黨課
- 加強(qiáng)廉潔文化建設(shè)夯實(shí)廉政思想根基培育風(fēng)清氣正的政治生態(tài)
- 深入學(xué)習(xí)2024《突發(fā)事件應(yīng)對法》全文提高突發(fā)事件預(yù)防和應(yīng)對能力規(guī)范突發(fā)事件應(yīng)對活動保護(hù)人民生命財產(chǎn)安全
- 2023年四年級數(shù)學(xué)上冊第一輪單元滾動復(fù)習(xí)第10天平行四邊形和梯形作業(yè)課件新人教版
- 2023年四年級數(shù)學(xué)上冊第14單元階段性綜合復(fù)習(xí)作業(yè)課件新人教版
- 2023年四年級數(shù)學(xué)上冊易錯清單十五課件新人教版
- 2023年四年級數(shù)學(xué)上冊易錯清單七課件西師大版
- 2023年五年級數(shù)學(xué)下冊易錯清單六作業(yè)課件北師大版
- 2023年五年級數(shù)學(xué)下冊易錯清單二作業(yè)課件北師大版
- 2023年五年級數(shù)學(xué)下冊四分?jǐn)?shù)的意義和性質(zhì)第10課時異分母分?jǐn)?shù)的大小比較作業(yè)課件蘇教版
- 2023年五年級數(shù)學(xué)下冊周周練四作業(yè)課件北師大版
- 2023年五年級數(shù)學(xué)下冊六折線統(tǒng)計圖單元復(fù)習(xí)卡作業(yè)課件西師大版
- 2023年四年級數(shù)學(xué)上冊6除數(shù)是兩位數(shù)的除法單元易錯集錦一作業(yè)課件新人教版