版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本科畢業(yè)設計(論文)</p><p><b> ?。?0 屆)</b></p><p> 基于單片機的數(shù)字秒表設計</p><p><b> 目 錄</b></p><p><b> 摘要III</b></p><p>
2、 AbstractIV</p><p><b> 第1章 緒論1</b></p><p> 第2章 硬件設計2</p><p> 2.1 單片機的選擇2</p><p> 2.1.1 AT89C51單片機的介紹2</p><p> 2.1.2 單片機的外部結構2&l
3、t;/p><p> 2.2 單片機電路的設計4</p><p> 2.2.1 方案設計4</p><p> 2.2.2 顯示模塊的設計6</p><p> 2.2.3 時鐘電路模塊的設計9</p><p> 2.2.4 按鍵電路的設計10</p><p> 2.2.5
4、 復位電路的設計12</p><p> 2.2.6 系統(tǒng)電路的設計12</p><p> 第3章 軟件設計14</p><p> 3.1 匯編語言介紹14</p><p> 3.2 內(nèi)部存儲器的分配14</p><p> 3.3 主程序設計15</p><p>
5、 3.4 中斷程序設計16</p><p> 第4章 數(shù)字電子秒表的安裝與調(diào)試21</p><p> 4.1 軟件的仿真與調(diào)試21</p><p> 4.2 硬件的安裝與調(diào)試21</p><p> 4.2.1 晶振電路的測試21</p><p> 4.2.2 復位電路的測試22<
6、;/p><p> 4.2.3 顯示電路的測試22</p><p> 4.3 系統(tǒng)程序的燒錄22</p><p> 4.4 數(shù)字電子秒表的精度調(diào)試23</p><p><b> 結束語24</b></p><p><b> 參考文獻25</b></p
7、><p> 附錄A 程序26</p><p> 附錄B 秒表設計原理圖32</p><p><b> 致謝33</b></p><p> 基于單片機的數(shù)字秒表設計</p><p><b> 摘要</b></p><p> 本設計是一個
8、基于單片機的數(shù)字秒表設計。為了解決傳統(tǒng)的秒表計時精度不夠高造成的誤差,所以本論文設計的秒表計時精度設計為10ms,滿足一般體育競賽的計時要求,是普通體育競賽中必備設備之一。本設計的數(shù)字電子秒表采用AT89C51用為核心,利用T0定時器/計數(shù)器定時和記數(shù)原理,結合顯示電路、LED八段數(shù)碼管以及外部中斷電路來設計的計時器。將硬件和軟件有機地聯(lián)系在一起,使本設計能夠?qū)崿F(xiàn)6位LED顯示,顯示的時間范圍為0~59分59.99秒,計時的精度為10m
9、s,在進行計時的同時,能保存一次時間,并在下次計時后能查詢上一次計時的時間。軟件系統(tǒng)設計采用的是匯編語言編寫程序,其中包括定時中斷服務,顯示程序,延時程序,外部中斷服務程序等。</p><p> 關鍵詞:秒表;單片機;LED八段數(shù)碼管</p><p> Based on SCM Digital Stopwatch Design</p><p><b>
10、 Abstract</b></p><p> This design is a digital stopwatch design based on single chip. In order to solve the traditional stopwatch precision insufficient high errors, so this paper designed stopwatch
11、for 10ms pure design, meet general sports contests timing requirements, is common in one of the necessary equipment for sports contest. The designed digital electronic stopwatch adopted with as the core, use AT89C51 T0 t
12、imer/counter timing and numeration theory, combined with display circuit, LED erection of digital tube,</p><p> Key words : Stopwatch,SCM,LED Erection of Eigital Tube </p><p><b> 第1章 緒
13、論</b></p><p> 數(shù)字電子秒表是電器制造,自動化控制、國防、實驗室及科研單位必不可少的儀器,它廣泛應用于各種繼電器、電磁開關,控制器、延時器、定時器等的時間測試。</p><p> 在現(xiàn)在的高端體育競賽中,隨著運動員的水平不斷提高,差距在不斷縮小。很多體育競賽對時間精度的要求越來越高,有時比賽冠亞軍之間的差距僅僅只有幾毫秒,因此就需要有較高精度,以及較低誤差的秒
14、表來記錄比賽成績。</p><p> 本設計采用AT89C51單片機的T0定時器/計數(shù)器定時和記數(shù)的原理,使秒表能精確的計時。使用中斷系統(tǒng)來實現(xiàn)開始和暫停的功能。P0口輸出字形代碼數(shù)據(jù),P2口的P2.0~2.5口作列掃描位輸出,而P1.1、P1.6、P3.2、P3.3分別接4個按鈕型開關,使其分別控制暫停計時、查看上一次暫停的計錄時間、停止計時和開始計時的功能,另外RET復位鍵連接一個按鈕型開關,使其能控制顯示
15、器顯示歸零,即復位。顯示電路由6位共陰極LED數(shù)碼管組成,通過P0口、P2口以及5個按鈕開關來控制秒表的計時與顯示。</p><p> 根據(jù)以上設計思路就能夠?qū)崿F(xiàn)數(shù)字電子秒表的計時和查看上一次記錄時間的功能。</p><p><b> 第2章 硬件設計</b></p><p> 2.1 單片機的選擇</p><p&
16、gt; 2.1.1 AT89C51單片機的介紹</p><p> 本設計選用由美國ATMEL公司生產(chǎn)單的AT89C51[1]。AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器。AT89C51是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀
17、存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p> AT89C51的主要特征:</p><p
18、> 與MCS-51 兼容;</p><p> 4K字節(jié)可編程FLASH存儲器; </p><p> 壽命:1000寫/擦循環(huán); </p><p> 數(shù)據(jù)保留時間:10年; </p><p> 全靜態(tài)工作:0Hz-24MHz; </p><p> 三級程序存儲器鎖定; </p>
19、<p> 128×8位內(nèi)部RAM; </p><p> 32可編程I/O線; </p><p> 兩個16位定時器/計數(shù)器; </p><p><b> 5個中斷源; </b></p><p> 可編程串行通道; </p><p> 低功耗的
20、閑置和掉電模式; </p><p> 片內(nèi)振蕩器和時鐘電路。</p><p> 2.1.2 單片機的外部結構</p><p> 由于AT89C51單片機與8051、80C51完全兼容,所以為了介紹方便以下統(tǒng)一使用8051單片機進行介紹。</p><p> 8051單片機采用40引腳[2]的雙列直插封裝方式。引腳排列圖和40條引腳
21、說明[2]如圖2.1所示;</p><p> 圖2.1 8051單片機的引腳圖</p><p><b> Vss接地</b></p><p> Vcc正常操作時為+5伏電源</p><p> XTAL1內(nèi)部振蕩電路反相放大器的輸入端,是外接晶體的一個引腳。當采用外部振蕩器時,此引腳接地。 </p&g
22、t;<p> XTAL2內(nèi)部振蕩電路反相放大器的輸出端。是外接晶體的另一端。當采用外部振蕩器時,此引腳接外部振蕩源。</p><p> 當振蕩器運行時,在此引腳上出現(xiàn)兩個機器周期的高電平(由低到高跳變),將使單片機復位在Vcc掉電期間,此引腳可接上備用電源,由VPD向內(nèi)部提供備用電源,以保持內(nèi)部RAM中的數(shù)據(jù)。</p><p> 正常操作時為ALE功能(允許地址鎖存)提
23、供把地址的低字節(jié)鎖存到外部鎖存器,ALE 引腳以不變的頻率(振蕩器頻率的1/6)周期性地發(fā)出正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。對于EPROM型單片機,在EPROM編程期間,此引腳接收編程脈沖(功能)。</p><p> 外部程序存儲器讀選通信號輸出端,在從外部程序存儲取指令(或數(shù)據(jù))期間,在每個機器周期內(nèi)兩次有效。同樣可以驅(qū)動八LSTTL輸入。</p><p>
24、 、為內(nèi)部程序存儲器和外部程序存儲器選擇端。當為高電平時,訪問內(nèi)部程序存儲器,當為低電平時,則訪問外部程序存儲器。對于EPROM型單片機,在EPROM編程期間,此引腳上加21伏EPROM編程電源(Vpp)。</p><p> P0口(P0.0~0.7)是一個8位漏極開路型雙向I/O口,在訪問外部存儲器時,它是分時傳送的低字節(jié)地址和數(shù)據(jù)總線,P0口能以吸收電流的方式驅(qū)動八個LSTTL負載。</p>
25、<p> P1口(P1.0~1.7)是一個帶有內(nèi)部提升電阻的8位準雙向I/O口。能驅(qū)動(吸收或輸出電流)四個LSTTL負載。</p><p> P2口(P2.0~P2.7)是一個帶有內(nèi)部提升電阻的8位準雙向I/O口,在訪問外部存儲器時,它輸出高8位地址。P2口可以驅(qū)動(吸收或輸出電流)四個LSTTL負載。</p><p> P3口(P3.0~3.7)是一個帶有內(nèi)部提升電阻的
26、8位準雙向I/O口。能驅(qū)動(吸收或輸出電流)四個LSTTL負載。</p><p> 運算器的功能是進行算術運算和邏輯運算??梢詫Π胱止?jié)(4位)、單字節(jié)等數(shù)據(jù)進行操作。例如能完成加、減、乘、除、加1、減1、BCD碼十進制調(diào)整、比較等算術運算和與、或、異或、求補、循環(huán)等邏輯操作,操作結果的狀態(tài)信息送至狀態(tài)寄存器。8051運算器還包含有一個布爾處理器,用來處理位操作。</p><p> 程序
27、計數(shù)器PC用來存放即將要執(zhí)行的指令地址,共16位,可對64K程序存儲器直接尋址。執(zhí)行指令時,PC內(nèi)容的低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。</p><p> 指令寄存器是用作存放指令代碼。CPU執(zhí)行指令時,由程序存儲器中讀取的指令代碼送入指令寄存器,經(jīng)譯碼后由定時與控制電路發(fā)出相應的控制信號,完成指令功能。</p><p> 2.2 單片機電路的設計</p><
28、;p> 2.2.1 方案設計</p><p> 本設計的目標是設計一個帶有查看上一次計時的數(shù)字電子秒表,并且具有顯示直觀、精度高、讀取方便等優(yōu)點,在日常生活中能廣泛的使用。本設計用單片機組成數(shù)字電子秒表,力求結構簡單、計時精度高為目標。</p><p> 硬件電路設計主要有主控制器,計時器、顯示電路、復位電路、開始計時、暫停計時、停止計時電路等。使用AT89C51單片機做主控
29、制器,顯示電路采用共陰極LED八段數(shù)碼管。</p><p> 本設計利用AT89C51單片機的定時器/計數(shù)器定時和記數(shù)的原理,使其能精確計時。利用中斷系統(tǒng)使其能實現(xiàn)開始暫停的功能。P0口的P0.0~0.7輸出段碼字形數(shù)據(jù),P2口的P2.0~2.5口作列掃描位輸出,而P1.1、P1.6、P3.2、P3.3分別接4個按鈕型開關,使其分別控制暫停計時、查看上一次暫停的計錄時間、停止計時和開始計時的功能,另外RET復位
30、件連接一個按鈕型開關,使其能控制顯示器顯示歸零,即復位。顯示電路由6位共陰極LED數(shù)碼管組成,通過P0口、P2口以及5個按鈕開關來控制顯示。電路原理圖設計最基本的要求是正確性,布局合理,在保證正確性和布局合理的前提下要求設計更美觀。硬件電路布局如圖2.2所示;</p><p> 圖2.2 數(shù)字秒表硬件電路布局原理圖</p><p> 根據(jù)要求知道秒表設計主要實現(xiàn)的功能是計時和顯示。本
31、設計中,數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元79H~7EH中。其中79H存放十毫秒位數(shù)據(jù),7AH存放百毫秒位數(shù)據(jù),7BH存放秒位數(shù)據(jù),7CH存放十秒位數(shù)據(jù),7DH存放分位數(shù)據(jù),7EH存放十分位數(shù)據(jù),每一個地址單元內(nèi)存放的數(shù)據(jù)均為十進制BCD碼。由于采用動態(tài)掃描電路實現(xiàn)數(shù)據(jù)顯示功能,顯示所用的段碼十進制BCD碼數(shù)據(jù)存放在RAM表中。顯示時,取出79H~7EH中的一個地址中的數(shù)據(jù),然后查得對應的顯示用段碼,并從P0口輸出該段碼,P2口將對應的數(shù)碼
32、管點亮,從而顯示該地址單元的數(shù)據(jù)值,如此循環(huán)取地址中的數(shù)據(jù)進行顯示,達到動態(tài)顯示。</p><p> 將上一次暫停顯示的時間存放在59H~5EH內(nèi)存單元中,數(shù)據(jù)存放規(guī)則和79H~7EH一樣。與79H~7EH存儲區(qū)不同的是:59H~5EH存儲的內(nèi)容為數(shù)字秒表上一次計時顯示的時間,而79H~7EH為當前計時時間存儲區(qū)。</p><p> 計時利用定時器/計數(shù)器T0溢出中斷完成,T0作方式0
33、,設置溢出中斷周期為1ms,當溢出中斷后向CPU發(fā)出溢出中斷請求,而每發(fā)出一次中斷請求就對毫秒計數(shù)單元加一,當溢出中斷請求達到10次就對10ms位加1,依次類推,直到59分59.99秒重新復位。 </p><p> 再考慮按鍵的處理。這5個鍵可以采用中斷的方式,也可以采用掃描的方式來識別。復位鍵、查看上一次顯示時間和暫停計時按鍵在于數(shù)值復位和查詢上次計時時間,對于時間的要求不是很嚴格,而開始計時鍵和停止計時鍵則
34、是用于對時間的鎖定,需要比較準確的控制。因此,可以對復位鍵、暫停記時鍵和查看上次顯示時間鍵采取掃描的方式,而對開始和停止鍵采用外部中斷的方式。</p><p> 初始狀態(tài)下由6個LED數(shù)碼管組成的計時器顯示為00.00.00,如果按下開始計時鍵時,INT1向CPU發(fā)出中斷請求,CPU停止當前的工作,轉(zhuǎn)去執(zhí)行外部中斷1服務程序,即開啟定時器T0,開始計時。計時是采用定時器T0溢出中斷來完成的,設計的定時溢出中斷為
35、1ms,當溢出中斷后向CPU發(fā)出溢出中斷請求,每發(fā)出一次溢出中斷請求后就相當于計時了1ms,當達到10次溢出中斷就相當于對10ms位進位,即是ms位加1,依次類推,直到59分59.99秒重新復位。在計時過程中,如果按下暫停計時鍵且沒有放開時,將本次記錄時間存入另一個寄存區(qū),并且6位LED顯示器持續(xù)顯示本次暫停的計時,當放開按鍵P1.1后,繼續(xù)計時。如果按下停止計時鍵時,外部中斷INT0向CPU發(fā)出外部中斷請求,CPU轉(zhuǎn)去執(zhí)行外部中斷0服
36、務程序,即關閉定時器T0計時,同時將此次計時時間存入寄存區(qū),且沒有按下其他鍵時循環(huán)顯示最后記錄的時間。如果按下查看上一次記錄時間鍵且沒有放開時,6位LED數(shù)碼管顯示器將顯示上一次記錄的時間,放開查看上一次記錄時間鍵是,6位LED數(shù)碼管繼續(xù)顯示最后記錄的時間,等待下一次計時開始。</p><p> 設計中包括硬件電路的設計和系統(tǒng)程序的設計。其硬件電路主要有主控制器,顯示電路和回零、啟動、查看、停表電路等。主控制器
37、采用單片機AT89C51,顯示電路采用共陰極LED數(shù)碼管顯示計時時間,5個按鍵均采用觸點式按鍵,并且都是低電平有效。</p><p> 2.2.2 顯示模塊的設計</p><p> 數(shù)字秒表的顯示電路,常采用液晶顯示或數(shù)碼管顯示。本設計采用LED八段數(shù)碼管[3]作為的顯示電路的顯示介質(zhì)。</p><p> 顯示器可以分為靜態(tài)顯示和動態(tài)顯示兩種。由于本設計需要
38、采用六位LED八段數(shù)碼管顯示,如果靜態(tài)顯示則占用的口線多,硬件電路復雜。所以采用動態(tài)顯示。</p><p> 動態(tài)顯示是一位一位地輪流點亮各位數(shù)碼管,這種逐位點亮顯示器的方式稱為位掃描。通常各位數(shù)碼管的段選線相應并聯(lián)在一起,由一個八位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動態(tài)方式顯示時,各數(shù)碼管分時輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時刻只選通一位數(shù)碼管,并送出相應的段碼,在
39、另一時刻選通另一位數(shù)碼管,并送出相應的段碼,依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同的時刻分別顯示,但由于人眼存在視覺暫留效應,只要每位顯示間隔足夠短就可以給人同時顯示的感覺。</p><p> 數(shù)碼顯示管分為共陽數(shù)碼管和共陰數(shù)碼管兩種,共陽極數(shù)碼管的八個發(fā)光二極管的陽極(二極管正端)連接在一起,如圖2.3(b)所示,通常,公共陽極接高電平(一般接電源),其它管腳接段驅(qū)動電路輸出端
40、。當某段驅(qū)動電路的輸出端為低電平時,則該端所連接的字段導通并點亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能吸收額定的段導通電流,還需根據(jù)外接電源及額定段導通電流來確定相應的限流電阻。</p><p> 共陰極LED數(shù)碼管[3]的八個發(fā)光二極管的陰極(二極管負端)連接在一起,如圖2.3(c)所示,通常,公共陰極接低電平(一般接地),其它管腳接段驅(qū)動電路輸出端,當某段驅(qū)動電路的輸出端為高
41、電平時,則該端所連接的字段導通并點亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能提供額定的段導通電流,還需根據(jù)外接電源及額定段導通電流來確定相應的限流電阻。 </p><p> 圖2.3 (a)數(shù)碼管引腳圖 (b)共陽極內(nèi)部結構圖 (c)共陰極內(nèi)部結構圖</p><p> 本設計采用6個共陰極LED數(shù)碼顯示管作顯示電路,數(shù)碼管的a、b、c、d、
42、e、f、g、DP引腳為高電平時,那么其對應的二極管就會被點亮,使數(shù)碼顯示管顯示0~9的10個阿拉伯數(shù)字。段碼編碼如表2.1所示。</p><p> 表2.1 共陰極數(shù)碼顯示阿拉伯數(shù)字字型代碼</p><p> 動態(tài)顯示電路由顯示塊、字形碼驅(qū)動模塊、字位驅(qū)動模塊三部分組成。如圖2.4所示為本系統(tǒng)的6位LED動態(tài)顯示器基本顯示原理電路。圖中,6個LED數(shù)碼管的八段段選線分別與外接上拉電阻
43、的單片機P0口對應連接,而6個LED數(shù)碼管的位控制端則和NPN型三極管的集電極相連接。單片機的P2.0~P2.5口則分別連接對應數(shù)碼顯示管的最低位到最高位,P2.0~P2.5口分別和6個NPN型三極管的基極相連,控制三極管的導通。NPN型三極管選用的是最常使用的9013型三極管。根據(jù)9013的資料顯示:其耐壓值為40V,最大功率為0.65W,最大電流為0.5A,電氣性能完全滿足本設計的要求。另外數(shù)碼管顯示是采用動態(tài)顯示,所以對三極管的開
44、關頻率有一定的要求。根據(jù)電子秒表的設計計算可知動態(tài)顯示的頻率最高為3KHz,而9013的導通頻率為150MHz,完全能滿足本設計的要求,所以最終選取9013三極管最為位控制開關。 </p><p> 圖2.4 顯示電路基本原理圖</p><p> 6個LED數(shù)碼管是由P0口來驅(qū)動,它內(nèi)部沒有上拉電阻,作為輸出口時驅(qū)動能力很弱,不能把LED數(shù)碼管點亮,因此P0口必須接上拉電阻。另
45、外,共陰數(shù)碼管的驅(qū)動電流一般為20mA左右,如果電流太大容易造成數(shù)碼管燒毀,所以也需要根據(jù)電源的電壓值來確定上拉電阻的大小。如果電阻過小,勢必會形成灌電流過大,造成單片機IO的損壞,如果電阻過大,那么對上拉電流沒有太大的影響,不能夠達到驅(qū)動效果。電源供電電壓為5V,當上拉電阻選用220Ω電阻時灌電流為22mA。不會損壞單片機的I/O口,同時也可以為數(shù)碼顯示管起到限制電流的保護作用。 </p><p> 2.2.
46、3 時鐘電路模塊的設計</p><p> 單片機的時鐘信號用來提供單片機內(nèi)各種微操作的時間基準,8051單片機內(nèi)設有一個由反向放大器所構成的振蕩電路,XTAL1和 XTAL2分別為振蕩電路的輸入和輸出端,8051單片機的時鐘信號通常有兩種電路形式:內(nèi)部振蕩方式與外部振蕩方式。外部振蕩方式的時鐘很少用,若要使用外部振蕩方式的時鐘時,只需要把XTAL1接地,XTAL2接外部振蕩器就行。對外部振蕩信號無特殊要求,只
47、要保證脈沖寬度,一般采用頻率低于12MHz的方波信號。</p><p> 時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘信號P1和P2供單片機使用。P1在每一個狀態(tài)S的前半部分有效,P2在每個狀態(tài)的后半部分有效。本設計采用的內(nèi)部振蕩方式,內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定,實用電路中使用較多。本設計系統(tǒng)的時鐘電路[4]如圖2.4所示。只要按照圖2.5所示,電路進行設計連接就能使系統(tǒng)可靠起振并能穩(wěn)定運行。圖中,電容
48、器C1 、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為5~33pF。但在時鐘電路的實際應用中一定要注意正確選擇其大小,并保證電路的對稱性,盡可能匹配,選用正牌的瓷片或云母電容,如果可能的話,溫度系數(shù)盡可能低。本設計中采用大小為30pF的電容和12MHz的晶振。</p><p> 圖2.5 內(nèi)部振蕩電路</p><p> 8051單片機典型的指令周期[5](執(zhí)行一條指令所
49、需要的的時間稱之為指令周期)為一個機器周期,一個機器周期由六個狀態(tài)(十二振蕩周期或時鐘周期)組成。每個狀態(tài)又被分成兩個時相P1和P2。所以,一個機器周期可以依次表示為S1P1,S1P2……,S6P1,S6P2。通常算術邏輯操作在P1時相進行,而內(nèi)部寄存器傳送在P2時相進行。時序電路</p><p><b> 如圖2.6所示;</b></p><p> 圖2.6
50、8051 時序圖</p><p> 圖2.6給出了8051單片機的取指令和執(zhí)行指令的定時關系。這些內(nèi)部振蕩時鐘信號不能從外部觀察到,所用XTAL2振蕩信號作參考。</p><p> 對于單周期指令,當操作碼被送入指令寄存器時,便從S1P2開始執(zhí)行指令。如果是雙字節(jié)單機器周期指令,則在同一機器周期的S4期間讀入第二個字節(jié),若是單字節(jié)單機器周期指令,則在S4期間仍進行讀,但所讀的這個字節(jié)操
51、作碼被忽略,程序計數(shù)器也不加1,在S6P2結束時完成指令操作。</p><p> 2.2.4 按鍵電路的設計</p><p> 本設計中設計了5個按鍵,分別用于實現(xiàn)開始計時、暫停計時、復位、查看上一次顯示時間和停止計時的功能,如圖2.7所示。這5個鍵可以采用中斷的方法,也可以采用查詢的方法來識別。對于復位、查看上次顯示時間和暫停計時鍵,主要功能在于數(shù)值復位、對上次顯示時間的查看和暫停
52、計時器計時,對于時間的要求不是很嚴格,而開始計時和停止計時鍵主要用于時間的鎖定,需要比較準確的控制。因此對復位鍵、查看上一次顯示時間、暫停計時采用查詢的方式,而對于開始計時和停止計時鍵采用外部中斷。5個按鍵按鍵除了復位鍵使用高電平有效外,其他4個按鍵均采用低電平有效。</p><p> 圖2.7 按鍵電路圖</p><p> 單片機的I/O口直接連接電源,因此需要接上拉電阻來進行限流
53、,本設計中選取阻值為2kΩ 的電阻作為上拉電阻,根據(jù)計算可知此時的灌電流為2.5mA,電流在安全范圍內(nèi),符合安全設計要求。</p><p> 按鍵電路中由于采用了外部中斷,所以需要用到P3口的第二功能。P3口引腳的第二功能如表2.2所示;</p><p> 表2.2 P3口引腳第二功能表</p><p> 2.2.5 復位電路的設計</p>
54、<p> 本設計采用上電且開關復位電路[6],如圖2.8所示。按下開關后,由于電容充電,使RST將持續(xù)一段時間的高電平。當單片機已在運行之中時,按下復位鍵也能使RST持續(xù)一段時間的高電平,從而實現(xiàn)上電且開關復位的操作。通常選擇C=10~30μF,R=1K,本設計采用的電容值為22μF的電容和電阻為1K的電阻。</p><p> 圖2.8 單片機復位電路</p><p>
55、2.2.6 系統(tǒng)電路的設計</p><p> 系統(tǒng)總電路由顯示電路,時鐘電路,按鍵電路和復位電路組成,只要將單片機與以上各部分電路合理的連接就組成了系統(tǒng)總電路??偟碾娐穲D附錄B所示。</p><p> 本設計以8051單片機為主電路的核心部分,各個電路均和8051單片機相連,由單片機統(tǒng)籌、協(xié)調(diào)和控制各個電路模塊的運行與工作。</p><p> 將設計好的晶振
56、電路連接到兩個專用引腳即可為單片機提供時鐘脈沖,但在連接接晶振電路時要盡量使晶振電路靠近單片機,這樣可以為單片機提供穩(wěn)定的時鐘脈沖。</p><p> 復位電路是單片機設有的一個專用的硬件復位接口RST,并設置為高電平有效。當RST為高電平是系統(tǒng)復位。</p><p> 按鍵電路模塊與單片機的I/O端口連接可以由自己設定,本設計的暫停計時鍵和查看上一次顯示時間鍵分別接單片機的P1.1和
57、P1.6,均設為低電平有效。而另外的開始計時鍵和停止計時鍵兩鍵使用的是外部中斷,所以需要連接到單片機的特殊接口P3.3和P3.2,這兩個I/O口的第二功能分別為單片機的外部中斷1端口和外部中斷0端口。同樣設置為位低電平有效。</p><p> 顯示電路由6位LED數(shù)碼管組成,采用動態(tài)掃描顯示方式,因此使用P0口的P0.0~P0.7實現(xiàn)8位段控制和P2口的P2.0~P2.5實現(xiàn)6位位控制,8位段控制接P0口,P0
58、.0~P0.7分別控制數(shù)碼顯示管的a、b、c、d、e、f、g、dp顯示,P0口沒有集成上拉電阻,高電平的驅(qū)動能力很弱,所以需要接上拉電阻來提高P0的高電平驅(qū)動能力。6位位控制則由低位到高位分別接到P2.0~P2.5口,NPN三極管9013作為位控制端的開關,當P2.0~P2.5端口任意一個端口為高電平時,與其相對應的三極管就導通,對應的數(shù)碼管導通顯示。</p><p> 通過以上設計,將各部分電路與單片機有機的
59、結合到一起,硬件部分的設計基本完成,剩下的部分就是對單片機的編程,使單片機按程序運行,實現(xiàn)數(shù)字電子秒表的功能。</p><p><b> 第3章 軟件設計</b></p><p> 3.1 匯編語言介紹</p><p> 本設計的程序采用匯編語言編寫,匯編語言由于采用了助記符號來編寫程序,比使用機器語言用二進制代碼編程要方便很多,簡化
60、了編程設計過程過程。匯編語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應,基本保留了機器語言的靈活性。使用匯編語言能面向機器并較好地發(fā)揮機器的特性,得到質(zhì)量較高的程序。</p><p> 匯編語言的特點[7]:</p><p> 面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。</p><p> 保持了機器語言的優(yōu)點,具有直接
61、和簡捷的特點。</p><p> 可有效地訪問、控制計算機的各種硬件設備,如磁盤、存儲器、CPU、I/O端口等。</p><p> 目標代碼簡短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設計語言。</p><p> 經(jīng)常與高級語言配合使用,應用十分廣泛。</p><p> 在程序設計過程中,為了有效地完成任務,把所要完成的任務精心的分割成
62、若干個相互獨立但相互又仍可有聯(lián)系的任務模塊,這些任務模塊使得任務變得相對單純,對外的數(shù)據(jù)交換相對簡單,容易編寫,容易檢測,容易閱讀和維護。這種程序設計思想稱為模塊化程序設計思想。模塊化結構程序的設計,可以使系統(tǒng)軟件便于調(diào)試與優(yōu)化,也使其他人更好地理解和閱讀系統(tǒng)的程序設計。程序的主要模塊有:主程序、顯示程序、定時溢出中斷服務程序、外部中斷服務程序。</p><p> 3.2 內(nèi)部存儲器的分配</p>
63、<p> 本設計系統(tǒng)所用到的單片機端口數(shù)比較多,所以在這里將對數(shù)字電子秒表的硬件資源的大概分配加以說明。片內(nèi)RAM的分配、各功能鍵的定義以及各端口的分配安排如表3.1所示。</p><p> 表3.1 端口的分配安排表</p><p> 3.3 主程序設計</p><p> 本設計系統(tǒng)程序主要模塊由主程序、定時中斷服務程序、外部中斷0服務程
64、序和外部中斷1服務程序組成。主程序是整個程序的最重要部分??梢詫Ω鱾€中斷程序進行調(diào)用。協(xié)調(diào)各個子程序之間的聯(lián)系。</p><p> 系統(tǒng)(上電)復位后,進入主程序,主程序流程圖如圖3.1所示。首先對系統(tǒng)進行初始化,包括設置各入口地址、中斷的開啟、對各個數(shù)據(jù)緩存區(qū)清“0”、賦定時器初值,初始化完畢后,就進入數(shù)碼管顯示程序。數(shù)碼管顯示程序?qū)︼@示緩存區(qū)內(nèi)的數(shù)值進行調(diào)用并在數(shù)碼管上進行動態(tài)顯示。顯示一次就對P1.1和P
65、1.6進行一次掃描,查詢暫停計時鍵P1.1和顯示上一次計時時間鍵P1.6是否按下,當這個兩按鍵有按下時,程序暫停計時或顯示上一次顯示時間。當沒有按下復位鍵時,不斷地調(diào)用顯示緩存區(qū)的數(shù)據(jù)進行顯示。使用戶能清楚的看到當前電子秒表所記時時間。當查詢到P1.6按下后則跳轉(zhuǎn)到另外一段顯示程序并調(diào)用最終緩存區(qū)的數(shù)據(jù)進行顯示,此時顯示的時間即為上一次計時的時間。與此同時,在P1.6按下后單片機執(zhí)行顯示程序的同時也在對P1.6進行掃描,當P1.6斷開后
66、立即跳轉(zhuǎn)回之前的顯示程序顯示當前的計時時間。</p><p> 在主程序中還進行了賦寄存區(qū)的初始值、設置定時器初值以及開啟外部中斷等操作,當定時時間到后就轉(zhuǎn)去執(zhí)行定時中斷程序。當外部中斷有請求則去執(zhí)行外部中斷服務程序。并在執(zhí)行完后返回主程序。</p><p> 圖3.1 主程序顯示流程圖</p><p> 3.4 中斷程序設計</p><
67、;p> 現(xiàn)在方案中采用了三個中斷,外部中斷INT0,INT1和定時中斷T0[8]。CPU在響應中斷時,先處理高級中斷,在處理低級中斷,若有多個同級中斷時,則按自然優(yōu)先順序處理。例如當CPU正在處理一個中斷申請時,有出現(xiàn)了另一個優(yōu)先級比它高的中斷請求,這是,CPU就暫停終止對當前優(yōu)先級較低的中斷源的服務,轉(zhuǎn)去響應優(yōu)先級比它高的中斷請求,并為其服務。待服務結束,再繼續(xù)執(zhí)行原來較低級的中斷服務程序。當CPU為級別高的終端服務程序服務時
68、,如果級別低的中斷發(fā)出中斷請求,此時CPU是不會響應的,所以為了避免開始和暫停兩個按鍵中的一個出現(xiàn)沒有響應的情況,在進行程序編輯時要注意對中斷的使用,避免出現(xiàn)中斷的嵌套,合理分配中斷對本設計的實現(xiàn)是至關重要的。</p><p> 另外由于數(shù)字式電子秒表的最小精度位10ms,屬于較高精度電子秒表。定時器T0的定時周期也為1ms,為了使電子秒表暫停鍵按下后CPU能馬上去響應中斷程序,必須將暫停的外部中斷級別高于定時
69、計數(shù)器的中斷級別。避免出現(xiàn)CPU執(zhí)行完定時溢出中斷程序后再響應外部中斷程序,影響計時精度。</p><p> 8051的自然優(yōu)先按級順序排列為:中斷源,外部中斷0,定時/計數(shù)器0溢出中斷,外部中斷1,定時/計數(shù)器1溢出中斷,串行口中斷。</p><p> 數(shù)字式秒表中的兩個按鍵采用了中斷實現(xiàn)功能。開始采用外部中斷INT0,暫停采用外部中斷INT1。另外程序中還用到了定時/計數(shù)器0溢出中
70、斷進行計時。依據(jù)設計要求,暫停的外部中斷INT1中斷級別最高,計時的定時/計數(shù)器0溢出中斷次之,開始的外部中斷INT0級別最低。</p><p> 3.4.1 外部中斷0服務程序:</p><p> 外部中斷0服務程序結合外部P3.2停止鍵實現(xiàn)數(shù)字電子秒表的停止功能,具體流程圖如圖3.2所示。</p><p> 圖3.2 外部中斷0服務程序流程圖</
71、p><p> 當P3.2停止計時鍵按下后,INT0向CPU發(fā)出外部中斷請求,CPU轉(zhuǎn)向外部中斷0服務程序執(zhí)行,停止定時器T0,然后中斷返回。</p><p> 3.4.2 外部中斷1服務程序</p><p> 外部中斷1服務程序結合外部P3.3停止鍵實現(xiàn)數(shù)字電子秒表的啟動功能,具體流程圖如圖3.2。</p><p> 圖3.3 外部中
72、斷1服務程序流程圖</p><p> 當P3.3開始計時鍵按下后,INT1向CPU發(fā)出外部中斷請求,CPU轉(zhuǎn)向外部中斷1服務程序執(zhí)行,啟動定時器T0,然后中斷返回。</p><p> 3.4.3 定時中斷服務程序</p><p> 當定時/計數(shù)器T0器溢出后,向CPU發(fā)出中斷請求信號。CPU跳轉(zhuǎn)到定時中斷程序執(zhí)行,具體流程如圖3.4所示。定時中斷程序是一個進
73、位程序,主要負責對1ms的加一。1ms位沒有滿十就跳出中斷程序,返回顯示程序。當1ms位滿十后就對1ms位清零,向10ms位加一,同時檢測10ms位是否滿十,沒有滿十就跳出中斷程序,返回顯示程序。如果滿十就向100ms位加一,依次類推,最終達到59分鐘59.99秒后歸零,從零開始再次計時。</p><p> 圖3.4 定時中斷服務程序</p><p> 定時/計數(shù)器T0[9]工作在方
74、式0下,TH0和TL0組成一個13位的二進制數(shù)計數(shù)器。單片機開機或復位時,它的值為00H,當T0啟動后,從第一個輸入脈沖開始計時,每來一個脈沖計數(shù)加一,即從0000000000000開始計數(shù)到1111111111111,再計數(shù)一個脈沖時TH0和TL0組成的13位計數(shù)器將會從13個1變成13個0,并產(chǎn)生溢出,溢出位將被送到TF0標志位,通過溢出標志產(chǎn)生溢出中斷請求。顯然,T0定時器在方式0下引起一次中斷所允許計數(shù)的最多脈沖個數(shù)為213 個
75、。</p><p> 但如果定時計數(shù)器如果每次都固定從0開始計數(shù),到溢出后,再向CPU發(fā)出溢出中斷請求信號那是毫無意義的。為了使定時計數(shù)器在規(guī)定的計數(shù)脈沖個數(shù)字之后(此時應小于213個脈沖),向CPU發(fā)出溢出中斷請求,可采取預先向TH0和TL0中放入一個初值X的方法,使計數(shù)器以X值為起始值開始計數(shù),即X+1,X+2,……直至計數(shù)器計滿,從1全變?yōu)?。設需要計數(shù)的脈沖個數(shù)為Y,則有:</p><
76、;p><b> X+Y=213 </b></p><p> 在定時方式下:定時時間間隔位t=(213—X)</p><p> 現(xiàn)在本設計要求1ms實現(xiàn)一次中斷,選擇定時器T0工作在方式0。所以需要根據(jù)以上條件計算出T0的初值。</p><p> 設T0的初值為X,則</p><p> ?。?13—X)*1
77、2/12*106 =1*10-3 </p><p> 轉(zhuǎn)換位十六進制數(shù)X=7192=1110000011000B</p><p> 即TH0=0E0H(取X的高8位)</p><p> TL0=18H(取X的低5位)</p><p> 由于定時1ms只是一個理想化的時間,其中并沒有考慮到中斷后單片機執(zhí)行語句所花的時間。雖然執(zhí)行語句所
78、花的時間很短只有幾微秒,但積少成多,數(shù)字秒表1秒要溢出中斷1000次,積累起來誤差就能達到毫秒級,這對于精度到達毫秒級的數(shù)字電子秒表來說是很大的誤差。所以要在后期編程時還要將單片機讀程序的時間考慮進去。</p><p> 在對定時器賦初值時將單片機需要執(zhí)行的語句所花的時間加上,這樣就能使數(shù)字電子秒表的誤差達到最小。</p><p> 第4章 數(shù)字電子秒表的安裝與調(diào)試</p>
79、;<p> 4.1 軟件的仿真與調(diào)試</p><p> Proteus ISIS[10]是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件,它可以仿真、分析(SPICE)各種模擬器件和集成電路。該軟件的主要特點總結后有以下四點:①實現(xiàn)了單片機仿真和SPICE電路仿真相結合的功能。②支持目前主流單片機系統(tǒng)的仿真。③提供了軟件調(diào)試功能,并可以與WAVE聯(lián)合仿真調(diào)試。④具有強大的原理圖繪制功能
80、??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真軟件,功能極其強大。在電子領域中也起到了很大的作用,它的出現(xiàn)仿真不需要先焊接電路,可以先仿真調(diào)試通過后在焊電路,節(jié)省了不少在硬件調(diào)試上所花的時間。</p><p> Proteus ISIS的工作界面在標準的Windows界面。它包括主菜單、標題欄、狀態(tài)欄、繪圖工具欄、標準工具欄、預覽對象方位控制按鈕、對象選擇按鈕、仿真進程控制按鈕、對象選擇器窗口、預覽窗
81、口、圖形編輯窗口等十幾個工具,方便了使用者的使用。</p><p> 首先打開已經(jīng)畫好的文件,選擇AT89C51芯片,就會彈出一個窗口,在Program File項中通過路徑選擇在WAVE中生成的HEX文件,雙擊選中后確定,這樣AT89C51芯片就讀取了HEX文件。單擊“三角形仿真按鈕”進行仿真。通過對仿真結果的觀察來對程序進行修改,最終使程序到達設計要求。</p><p> 4.2
82、 硬件的安裝與調(diào)試</p><p> 按照之前設計好的數(shù)字電子秒表原理圖,詳細計算系統(tǒng)中各個元件的參數(shù),選擇相應器件,制作實際電路板。由于考慮到萬能板大小的問題及元件之間連線的方便,在焊接元器件前必須考慮元件的布局然后進行實際操作。</p><p> 制作好的電路板可以用萬用表(200歐姆檔)的紅、黑表筆測試電路板的每條走線,當其電阻非常小時,證明走線沒有斷開,當其電阻很大時,證明該條
83、走線斷了,應該重新走線,使電路板在電氣上得到正確地連接。選用萬用表的20K歐姆檔,檢測電路中是否存在短路。因為系統(tǒng)采用的是共陰極數(shù)碼管作為顯示電路,必須確保數(shù)碼管的公共端接的是低電平。</p><p> 4.2.1 晶振電路的測試</p><p> 在單片機正常運行的必要條件是單片機系統(tǒng)的時鐘穩(wěn)定正常。實際中,因為各種原因?qū)е孪到y(tǒng)時鐘不正常而出現(xiàn)系統(tǒng)無法正常運行的情況時有,因此系統(tǒng)時
84、鐘是否振是通電檢查的首要環(huán)節(jié)。在系統(tǒng)通電的狀況下,用萬用表的直流電壓檔(20V),分別測量XTAL1和XTAL2引腳的電壓,看是否正常,在調(diào)試過程中,測得電壓XTAL1引腳應為2.05V,XTAT2應為2.15V。</p><p> 4.2.2 復位電路的測試</p><p> 復位不正常也會導致系統(tǒng)不能工作。如果復位引腳始終為高電平,系統(tǒng)將始終處于復位狀態(tài),如果始終為低電平,不能產(chǎn)
85、生復位所需的高電平信號脈沖,則系統(tǒng)也可能無法正常工作。單片機正常工作時,RST復位引腳應為0V,按下復位按鍵時,復位引腳為高電平5V左右。</p><p> 4.2.3 顯示電路的測試</p><p> 顯示電路是數(shù)字電子秒表正常運行最直觀的觀察窗口,我們可以通過觀察顯示電路的顯示結果觀察系統(tǒng)能否正常運行。當顯示電路按照電路圖焊接好后,用萬用表的測二極管檔位,將黑表筆接共陰數(shù)碼管的公
86、共段,然后將紅表筆接數(shù)碼管的各段,當數(shù)碼管的段能正常顯示,說明各點焊接正常。 </p><p> 4.3 系統(tǒng)程序的燒錄</p><p> 在軟件調(diào)試中,使用當今流行的功能強大且普遍的WAVE 6000軟件\進行軟件編譯與調(diào)試,使用Microcontroller ISP Software及其配套的單片機對程序進行燒錄。</p><p> 圖4.1 Atme
87、l microcontroller</p><p> 軟件的燒錄:第一步:安裝并運行Microcontroller ISP Software軟件;第二步:點擊Options欄的select device選項;這時出現(xiàn)一個對話窗口,按圖選擇后,點擊OK按鍵,如出現(xiàn)圖4.1所示窗口,則說明電腦與開發(fā)板沒連接好或單片機沒插好等,需重裝檢查硬件連接,如果沒有出現(xiàn)則說明初始化成功。第三步:點擊File欄的Load Buf
88、fer選項打開已經(jīng)編譯好的HEX文件。點擊載入文件,然后點擊確定,會出現(xiàn)如圖4.2所示的對話框,完成后,按軟件默認選項,點擊“OK”-“OK”―“OK”燒錄完成,否則重新檢查硬件連接后再重新燒錄。</p><p> 圖4.2 auto programming</p><p> 4.4 數(shù)字電子秒表的精度調(diào)試</p><p> 將數(shù)字電子秒表的程序編譯,然后
89、燒錄進單片機,然后將單片機插入系統(tǒng),并保證其能正常運行。在進行精度測試之前的編程過程中,我們知道了單片機在進行定時中斷時需要執(zhí)行語句,而執(zhí)行這些語句是需要占用CPU時間的,從而影響單片機定時的精確性,最終會導致數(shù)字電子秒表的計時誤差,為了減小這種計時的誤差,我們之前在編程時已經(jīng)將單片機一秒鐘內(nèi)執(zhí)行程序的時間計算在內(nèi),并將定時器的初值做出了適當調(diào)整。爭取最大限度的減小數(shù)字電子秒表的計時誤差。</p><p> 在
90、進行秒表精度調(diào)試時,我們讓本設計的單片機數(shù)字秒表和電子表同時計時,為了能盡可能的觀察出是否有誤差,我們將計時時間設定為5分鐘,當計時時間達到5分鐘后觀察兩個秒表是否同時到達。如果不是同時到達就說明有一定的誤差,如果兩表是同時到達則說明秒表的設計滿足要求。</p><p><b> 結束語</b></p><p> 本設計的數(shù)字電子秒表是由AT89C51單片機、LE
91、D共陰數(shù)碼顯示管、控制按鍵、三極管等器件構成的,設有6位計時顯示,開始計時、暫停計時、停止計時、復位按鍵以及查看上次顯示鍵。計時精度能到達10ms,能滿足一般秒表計時要求,設計精簡,使用方法簡單易懂。系統(tǒng)設計合理,線路簡單、功能先進,性能穩(wěn)定,程序精簡。并給出了詳細的電路設計方法。本系統(tǒng)是以單片機為核心,僅單片機方面知識是不夠的,還應根據(jù)具體硬件結構,以及針對具體應用對象特點的軟件結合,以作完善。所以采用匯編語言來進行軟件設計,利用匯編
92、語言面向機器并能較好的發(fā)揮機器的特性,得到較高的程序,同時匯編語言目標代碼簡短,占用內(nèi)存少,執(zhí)行速度快,能提高秒表的精度。</p><p> 通過本次畢業(yè)設計,復習和鞏固我們以前所學習的數(shù)字、模擬電子技術、單片機原理及匯編程序設計等知識,加深對各門課程及相互關系的理解,并使用了Wave、Protel 99se和Proteus三款電子軟件,使理論知識系統(tǒng)化、實用化,系統(tǒng)地掌握微機應用系統(tǒng)的一般設計方法,培養(yǎng)較強的
93、編程能力、開發(fā)能力。</p><p> 同時,在設計的過程中,我也發(fā)現(xiàn)了本系統(tǒng)的許多不足和可以改進的地方。但因時間緊迫等原因沒能改進。本設計的數(shù)字電子秒表缺少對多次計時時間進行記錄的功能。應給在單片機的內(nèi)部存儲區(qū)多設置一些存儲空間,用來存儲多次計時時間。并在程序中編入對多次計時時間的調(diào)用顯示。雖然存在不足,但本設計的數(shù)字電子秒表仍具有它的實用性。</p><p><b> 參
94、考文獻</b></p><p> [1] 劉文濤MCS-51單片機培訓教程[M].北京:電子工業(yè)出版社,2005. 121.</p><p> [2] 毛美琴,張為民,何金兒,等.MCS-51系列單片機系統(tǒng)及其應用[M].北京:高等教育出版社,2004. 8~10.</p><p> [3] 胡花.單片機原理及應用技術[M].北京:電子工業(yè)出
95、版社,2009. 130~131.</p><p> [4] 張濤.單片機原理與接口技術[M].北京:北方交通大學出版社,2007. 27.</p><p> [5] 白駒珩.單片機計算機及其應用[M].北京:科學出版社,2005. 34~35.</p><p> [6] 陳權昌.單片機原理及應用 [M].北京:電子工業(yè)出版社,2007. 27.<
96、;/p><p> [7] 霍婷婷.潤滑供油箱控制系統(tǒng)的研制[D].西安電子科技大學,2010.</p><p> [8] 徐惠民,安德寧,丁玉珍.單片微型計算機原理、接口及應用 [M].第三版,北京:北京郵電大學出版社,2007. 166~167.</p><p> [9] 黃慧婷基于單片機的數(shù)字電子秒表的設計與實現(xiàn)[D].寧夏理工學院,2008.</
97、p><p> [10] 覃家敦,孫洪民.電工電子技術實驗改革基于電子設計競賽的探索[D].中國計量學院,2010.</p><p><b> 附錄A 程序</b></p><p> ORG 0000H</p><p> LJMP MAIN</p><p> ORG 0003H
98、 ;外部中斷INT0中斷入口</p><p> LJMP TINGZHI</p><p> ORG 000BH ;定時器T0中斷入口</p><p> LJMP UPDATE</p><p> ORG 0013H
99、; 外部中斷INT1中斷入口</p><p> LJMP KAISHI</p><p> MAIN: MOV DPTR, #TAB ;存入表頭地址</p><p> MOV TMOD, #00H ;置T0為方式0</p><p> MOV TH0, #0D8H ;賦定時器初值</p
100、><p> MOV TL0, #0F0H</p><p> MOV 79H, #00H ;顯示緩存區(qū)清零</p><p> MOV 7AH, #00H</p><p> MOV 7BH, #00H</p><p> MOV 7CH, #00H</p><p>
101、MOV 7DH, #00H</p><p> MOV 7EH, #00H</p><p> MOV 59H, #00H ;最終顯示緩存區(qū)清零</p><p> MOV 5AH, #00H</p><p> MOV 5BH, #00H</p><p> MOV 5CH, #00H&l
102、t;/p><p> MOV 5DH, #00H</p><p> MOV 5EH, #00H</p><p> MOV R0, #00H ;溢出計數(shù)區(qū)清零</p><p> MOV R1, #00H</p><p> MOV R2, #00H</p><p>
103、 MOV R3, #00H</p><p> MOV R4, #00H</p><p> MOV R5, #00H </p><p> MOV R6,#00H</p><p> SETB EA ;CPU開中斷</p><p> SETB EX0
104、 ;開外部中斷0</p><p> SETB EX1 ;開外部中斷1</p><p> SETB IT0 ;外部中斷0位邊沿觸發(fā)方式</p><p> SETB IT1 ;外部中斷1位邊沿觸發(fā)方式</p><p> SETB ET0
105、 ;定時器0允許位</p><p> XIAN: MOV A, 79H ;顯示10ms位數(shù)字</p><p> MOVC A, @A+DPTR</p><p> MOV P0, A</p><p> SETB P2.0</p><p> LCA
106、LL DELAY</p><p> CLR P2.0</p><p> MOV A, 7AH ;顯示100ms位數(shù)字</p><p> MOVC A, @A+DPTR</p><p> MOV P0, A</p><p> SETB P2.1</p>
107、<p> LCALL DELAY</p><p> CLR P2.1</p><p> MOV A, 7BH ;顯示1s位數(shù)字</p><p> MOVC A, @A+DPTR</p><p> MOV P0, A</p><p> SETB P2.2
108、</p><p> LCALL DELAY</p><p> CLR P2.2</p><p> MOV A, 7CH ;顯示10s位數(shù)字</p><p> MOVC A, @A+DPTR</p><p> MOV P0, A</p><p&
109、gt; SETB P2.3</p><p> LCALL DELAY</p><p> CLR P2.3</p><p> MOV A, 7DH ;顯示1min位數(shù)字</p><p> MOVC A, @A+DPTR</p><p> MOV P0, A<
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文-基于單片機的數(shù)字鐘設計【精校排版】
- 畢業(yè)論文-基于單片機的數(shù)字電子鐘【精校排版】
- 畢業(yè)論文-基于單片機倒車系統(tǒng)設計【精校排版】
- 畢業(yè)論文-基于單片機的數(shù)字溫度計的設計【精校排版】
- 畢業(yè)論文-基于fpga數(shù)字秒表電路的設計【精校排版】
- 畢業(yè)論文-基于單片機的電子門鈴設計【精校排版】
- 畢業(yè)論文-基于單片機的多點數(shù)字測溫系統(tǒng)(設計)【精校排版】
- 畢業(yè)論文-基于單片機數(shù)據(jù)采集系統(tǒng)設計【精校排版】
- 畢業(yè)論文-基于單片機的密碼鎖設計【精校排版】
- 畢業(yè)論文-基于單片機的音樂流水燈設計【精校排版】
- 畢業(yè)論文-基于單片機的電子時鐘設計【精校排版】
- 畢業(yè)論文-單片機開發(fā)板設計【精校排版】
- 畢業(yè)論文-基于單片機的數(shù)字萬用表的設計【精校排版】
- 畢業(yè)論文-基于單片機的溫度計的設計【精校排版】
- 畢業(yè)論文-基于at89c51單片機數(shù)字鐘【精校排版】
- 畢業(yè)論文-基于單片機的多功能電子跑表設計【精校排版】
- 畢業(yè)論文-智能單片機照明控制裝置設計【精校排版】
- 畢業(yè)論文-單片機日歷時鐘開發(fā)【精校排版】
- 畢業(yè)論文-基于單片機的lcd顯示器的設計【精校排版】
- 畢業(yè)論文-基于stc單片機的人體感應臺燈設計【精校排版】
評論
0/150
提交評論