版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 微機(jī)原理與接口技術(shù)課程設(shè)計(報告)</p><p> 題 目 __________________________________</p><p> 指導(dǎo)教師__________________________</p><p> 學(xué)生姓名__ ________________________</p><p> 學(xué)
2、生學(xué)號__________________________</p><p> 學(xué)生成績 </p><p> _______________________________院(部)____________________________專業(yè)________________班</p><p> ______年 ___月 ___
3、日- _6__月 _29__日</p><p><b> 目錄</b></p><p> 1 設(shè)計任務(wù)與要求1</p><p><b> 1.1設(shè)計任務(wù)1</b></p><p><b> 1.2設(shè)計要求1</b></p><p><
4、b> 2系統(tǒng)分析2</b></p><p><b> 3設(shè)計方案3</b></p><p> 3.1 設(shè)計任務(wù)分析3</p><p> 3.2 設(shè)計方案論證3</p><p> 3.3硬件系統(tǒng)總體方案設(shè)計4</p><p> 3.4軟件系統(tǒng)總體方案設(shè)計4&
5、lt;/p><p><b> 4硬件電路設(shè)計5</b></p><p> 4.1 功能硬件設(shè)計5</p><p> 4.1.1定時器/計數(shù)器82535</p><p> 4.1.2 用可編程并行接口芯片8255的PA口以及PB口實(shí)現(xiàn)數(shù)碼管輸出,PC口實(shí)現(xiàn)按鍵實(shí)現(xiàn)數(shù)據(jù)顯示輸出8</p><
6、p> 4.1.3鎖存器2738</p><p> 4.1.4 數(shù)據(jù)收發(fā)器2459</p><p> 4.1.5譯碼器74ls15410</p><p> 4.1.6數(shù)碼管10</p><p> 4.2 總電路設(shè)計11</p><p><b> 5軟件設(shè)計13</b>&
7、lt;/p><p> 5.1 主程序設(shè)計13</p><p> 5.2 中斷程序設(shè)計14</p><p><b> 6系統(tǒng)調(diào)試19</b></p><p><b> 設(shè)計總結(jié)21</b></p><p> 1 本系統(tǒng)存在的問題及改進(jìn)措施21</p&g
8、t;<p><b> 2 心得體會21</b></p><p><b> 參考資料23</b></p><p><b> 附錄Ⅰ:24</b></p><p><b> 附錄Ⅱ26</b></p><p><b>
9、 1 設(shè)計任務(wù)與要求</b></p><p><b> 1.1設(shè)計任務(wù)</b></p><p> 設(shè)計并制作符合要求的電子秒表。</p><p> 秒表由6位7段LED顯示器顯示,其中2位顯示“min”,4位顯示“s”,其中顯示分辨率位“0.01S”。</p><p> 具有清零、啟動計數(shù)、暫停計時及
10、繼續(xù)計時等控制功能。</p><p><b> 1.2設(shè)計要求</b></p><p> 同組同學(xué)要發(fā)揚(yáng)團(tuán)隊(duì)協(xié)作精神,積極主動的提出問題、解決問題、討論問題,互相幫助和啟發(fā)。在設(shè)計中可以引用所需的參考資料,避免重復(fù)工作,加快設(shè)計進(jìn)程,但必須和題目的要求相符合,保證設(shè)計的正確。在老師的指導(dǎo)下制定好自己各環(huán)節(jié)的詳細(xì)設(shè)計進(jìn)程計劃,按給定的時間計劃保質(zhì)保量的完成個階段的設(shè)
11、計任務(wù)。設(shè)計中可邊設(shè)計,邊修改,軟件設(shè)計與硬件設(shè)計可交替進(jìn)行,問題答疑與調(diào)試和方案修改相結(jié)合,提高設(shè)計的效率,保證按時完成設(shè)計工作并交出合格的設(shè)計報告。</p><p><b> 2系統(tǒng)分析</b></p><p> 本設(shè)計采用了匯編語言編寫,匯編語言由于采用了助記符號來編寫程序,比用機(jī)器語言的二進(jìn)制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點(diǎn)是用
12、符號代替了機(jī)器指令代碼,而且助記符與指令代碼一一對應(yīng),基本保留了機(jī)器語言的靈活性。使用匯編語言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。</p><p><b> 匯編語言的特點(diǎn):</b></p><p> (1).面向機(jī)器的低級語言,通常是為特定的計算機(jī)或系列計算機(jī)專門設(shè)計的。</p><p> (2).保持了機(jī)器語言的優(yōu)點(diǎn)
13、,具有直接和簡捷的特點(diǎn)。</p><p> (3).可有效地訪問、控制計算機(jī)的各種硬件設(shè)備,如磁盤、存儲器、CPU、I/O端口等。</p><p> (4).目標(biāo)代碼簡短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計語言。</p><p> (5).經(jīng)常與高級語言配合使用,應(yīng)用十分廣泛。</p><p> 在程序設(shè)計過程中,為了有效地完成
14、任務(wù),把所要完成的任務(wù)精心的分割成若干個相互獨(dú)立但相互又仍可有聯(lián)系的任務(wù)模塊,這些任務(wù)模塊使得任務(wù)變得相對單純,對外的數(shù)據(jù)交換相對簡單,容易編寫,容易檢測,容易閱讀和維護(hù)。這種程序設(shè)計思想稱為模塊化程序設(shè)計思想。模塊化結(jié)構(gòu)程序的設(shè)計,可以使系統(tǒng)軟件便于調(diào)試與優(yōu)化,也使其他人更好地理解和閱讀系統(tǒng)的程序設(shè)計。程序的主要模塊有:主程序、顯示程序、定時溢出中斷服務(wù)程序、外部中斷服務(wù)程序。</p><p><b>
15、; 3設(shè)計方案</b></p><p> 3.1 設(shè)計任務(wù)分析</p><p> 可任意啟動/停止的電子秒表的實(shí)現(xiàn)用按鍵中斷來控制整個程序,當(dāng)按一下KEY1啟動電子秒表,再按一下暫停,按一下KEY2鍵清零,用六個七段數(shù)碼管顯示時間。整個程序涉及到8255、8253和8259三個芯片。給8253的CLK0提供一個頻率為10KHZ的時鐘信號, 8253的OUT0連接8259的
16、IRQ7,8253的GATE2連接正5伏電壓,采用計數(shù)器0每隔0.01秒產(chǎn)生一次中斷并且計數(shù),寫入以偏移地址4000H開始的6個內(nèi)存單元,然后利用8255將內(nèi)存單元的數(shù)據(jù)輸出到七段數(shù)碼管。由于按鍵中斷優(yōu)先于8259的7號中斷,所以程序只有在按一下KEY1才啟動電子秒表,再按一下暫停,按一下KEY2鍵清零,如果超出了60分,整個程序自動重新開始。</p><p> 3.2 設(shè)計方案論證</p>&l
17、t;p> 根據(jù)課程設(shè)計的要求和我們所要增加的功能寫好程序流程圖,在程序流程圖的基礎(chǔ)上,結(jié)合芯片的功能寫出相應(yīng)的程序。然后再進(jìn)行程序調(diào)試和相應(yīng)的修改,以達(dá)到能夠?qū)崿F(xiàn)所要求實(shí)現(xiàn)的功能的目的。</p><p> 在微機(jī)原理定匯編調(diào)試軟件上編輯源程序,并進(jìn)行匯編,在匯編成功無誤后,選擇端口進(jìn)行調(diào)試,然后裝入程序,至此,本次設(shè)計的軟件工作準(zhǔn)備完畢。再根據(jù)硬件原理設(shè)計圖完成各芯片之間的連接,打開實(shí)驗(yàn)箱電源開關(guān)總體進(jìn)
18、行調(diào)試。</p><p> 在整個實(shí)驗(yàn)過程中,在8253可編程定時器CLK端輸出管腳處接上一個計數(shù)的頻率為10KHZ的時鐘信號,由8253定時/計數(shù)器產(chǎn)生0.01秒的中斷并進(jìn)行計數(shù),可編程并行I/O接口芯片8255A將偏移地址寫入內(nèi)存單元,進(jìn)中斷更新數(shù)據(jù),然后將內(nèi)存數(shù)據(jù)送給LED數(shù)碼管顯示。定時器中斷就是定義初值,然后開中斷,剩下的就在中斷里寫了。保存數(shù)據(jù)段后,取中斷程序入口地址,定義可編程中斷控制器8259中
19、斷7中斷矢量,讀8259中斷屏蔽字,開8259中斷7,六位數(shù)碼管用動態(tài)顯示,挨個點(diǎn)亮,六個I/O控制位,十二個I/O控制段碼,將8259的定時器設(shè)置在0.01秒進(jìn)入一次中斷,交替輸出高低電平(形成時鐘頻率),在計數(shù)器輸出使用組合邏輯電路連接LED燈的各個控制輸入端。</p><p> 3.3硬件系統(tǒng)總體方案設(shè)計</p><p> 電子秒表系統(tǒng)主要完成對計時實(shí)時的顯示,精度達(dá)到1/100
20、s,以及通過功能鍵可以使當(dāng)前計時暫停或重新計時。系統(tǒng)主要包括晶振電路、復(fù)位電路、按鍵電路以及數(shù)碼管顯示電路。</p><p> 系統(tǒng)的整體框圖如圖3-1所示:</p><p> 圖3-1 系統(tǒng)整體框圖</p><p> 3.4軟件系統(tǒng)總體方案設(shè)計</p><p> 系統(tǒng)軟件由主程序模塊、測溫程序模塊、鍵盤掃描程序模塊以及LED驅(qū)動程序
21、模塊組成。軟件總體框圖如圖3-2所示。</p><p> 圖3-2 軟件總體框圖</p><p><b> 4硬件電路設(shè)計</b></p><p> 4.1 功能硬件設(shè)計</p><p> 4.1.1定時器/計數(shù)器8253</p><p> 用系統(tǒng)8253定時器提供的55ms定時單位,
22、設(shè)計秒表定時程序。 </p><p> 有關(guān)系統(tǒng)定時方法:PC機(jī)系統(tǒng)中的8253定時器0工作于方式3,外部提供一個時鐘作為CLK信號, </p><p> 頻率:f=1.1931816MHz。 </p><p> 定時器0輸出方波的頻率:fout=1.1931816/65536=18.2Hz。 </p><p> 輸出方波的周期
23、Tout=1/18.2=54.945ms。8253A每隔55ms引起一次中斷,作為定時信號??捎?5945ms作基本計時單位。 </p><p> 用BIOS調(diào)用INT 1AH可以取得該定時單位。例:1秒=18.2 (計時單位) </p><p> 8253的引腳圖及硬件連接圖如圖4-1和4-2所示。</p><p> 圖4-1 8253引腳圖</p&
24、gt;<p> 圖4-2 硬件連接圖</p><p> 當(dāng)A1A0分別為00 01 10 11時分別選中三個通道和控制字寄存器在8088系統(tǒng)中,8088的A1A0分別與8253的A1A0相連在8086系統(tǒng)中,通常將8253的8位數(shù)據(jù)線與8086的低8位相連,即使用偶地址,所以8086的A2A1分別與8253的A1A0相連。計數(shù)器(0 ~ 2)即三個計數(shù)器/定時器通道。每個通道包括:8位控制字寄存
25、器、16位計數(shù)初值寄存器、減一計數(shù)器和輸出鎖存器。作定時器用:其CLK端上的輸入脈沖應(yīng)是標(biāo)準(zhǔn)的、精確的;作計數(shù)器用:對其CLK端上的脈沖計數(shù),脈沖寬度可以不等。采用減一計數(shù)器,為0時,從OUT端上輸出一個脈沖定時時間 = 時鐘脈沖周期X預(yù)置的計數(shù)初值。 </p><p><b> 控制功能表</b></p><p> 由于8253的讀/寫操作對系統(tǒng)時鐘沒有特
26、殊的要求,因此它幾乎可以應(yīng)用與由任何一種微處理器組成的系統(tǒng)中,可作為可編程的方波頻率發(fā)生器、分頻器、實(shí)時時鐘、事件計數(shù)器和單脈沖發(fā)生器等。</p><p> 8253是一片具有三個獨(dú)立的16位計數(shù)器通道的可編程定時器/計數(shù)器芯片。每個通道都可以編程設(shè)定3種工作方式之一種;8253由以下幾個部分組成:</p><p> 數(shù)據(jù)總線緩沖器(8位、三態(tài)、雙向);</p><
27、p> (2) 讀/寫控制邏輯;CS:片選信號,低電平有效;</p><p> RD:讀信號,低電平有效;</p><p> WR:寫信號,低電平有效</p><p> A1A0:端口選擇信號 (3) 三個通道( 0 ~ 2),由A0,A1控制選擇; (4) 一個控制寄存器;</p><p> 圖4-3內(nèi)部結(jié)構(gòu)及
28、引腳圖</p><p> 4.1.2 用可編程并行接口芯片8255的PA口以及PB口實(shí)現(xiàn)數(shù)碼管輸出,PC口實(shí)現(xiàn)按鍵實(shí)現(xiàn)數(shù)據(jù)顯示輸出 </p><p> 8255 可編程外圍接口芯片是 Intel 公司生產(chǎn)的通用并行I/O 接口芯片,它具有A、B、C 三個并行接口,并行接口是以數(shù)據(jù)的字節(jié)為單位與I/O 設(shè)備或被控制對象之間傳遞信息。CPU 和接口之
29、間 的數(shù)據(jù)傳送總是并行的,即可以同時傳遞8 位、16 位、32 位等。用+5V 單電源供電,能在以下三種方式下工作:方式0--基本輸入/出方式、方式1--選通輸入/出方式、方式2--雙向選通工作方式。</p><p> 8255 工作方式控制字和C口按位置位/ 復(fù)位控制字格式如圖4-3所示。</p><p> 圖4-3 8255工作方式圖</p><p> 4
30、.1.3鎖存器273</p><p> 74LS273是8位數(shù)據(jù)/地址鎖存器,他是一種帶清除功能的8D觸發(fā)器,下面介紹一下他的管腳圖功能表等資料。</p><p> (1).1腳是復(fù)位CLR,低電平有效,當(dāng)1腳是低電平時,輸出腳2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部輸出0,即全部復(fù)位;</p><p
31、> (2).當(dāng)1腳為高電平時,11(CLK)腳是鎖存控制端,并且是上升沿觸發(fā)鎖存,當(dāng)11腳有一個上升沿,立即鎖存輸入腳3、4、7、8、13、14、17、18的電平狀態(tài),并且立即呈現(xiàn)在在輸出腳2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上.如圖4-4。</p><p> 圖4-4 74LS273 </p><p> 74
32、ls273管腳功能:</p><p> 1D~8D為數(shù)據(jù)輸入端,1Q~8Q為數(shù)據(jù)輸出端,正脈沖觸發(fā),低電平清除,常用作8位地址鎖存器?! ?lt;/p><p> 4.1.4 數(shù)據(jù)收發(fā)器245 </p><p> 當(dāng)片選端/CE低電平有效時,DIR=“0”,信號由 B 向 A 傳輸;(接收)*DIR=“1”,信號由 A 向 B 傳輸;(發(fā)送)當(dāng)/CE為高電平時
33、,A、B均為高阻態(tài)</p><p> 4.1.5譯碼器74ls154</p><p> 74ls154為4—16線制譯碼器其引腳圖如下圖4-5所示 </p><p> 圖4-5譯碼器其引腳圖</p><p><b> 4.1.6數(shù)碼管</b></p><p> 數(shù)碼管要正常顯示,就要來驅(qū)
34、動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。 </p><p><b> 靜態(tài)顯示驅(qū)動</b></p><p> 靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機(jī)的I/O端口進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/
35、O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動,實(shí)際應(yīng)用時必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。 </p><p><b> 動態(tài)顯示驅(qū)動</b></p><p> 數(shù)碼管動態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"
36、的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制。圖4-6所示。</p><p> 圖4-6 數(shù)碼管接線圖</p><p><b> 4.2 總電路設(shè)計</b></p><p> 系統(tǒng)總電路(原理)圖如圖4-7所示。</p><p> 圖4-7 系統(tǒng)總電路圖<
37、;/p><p><b> 5軟件設(shè)計</b></p><p> 5.1 主程序設(shè)計</p><p> 本系統(tǒng)程序主要模塊由主程序、定時中斷服務(wù)程序、外部中斷0服務(wù)程序和外部中斷1服務(wù)程序組成。其中主程序是整個程序的主體??梢詫Ω鱾€中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個子程序之間的聯(lián)系。</p><p> 系統(tǒng)(上電)復(fù)位后,進(jìn)
38、入主程序,主程序流程圖如圖5-1。首先對系統(tǒng)進(jìn)行初始化,包括設(shè)置各入口地址、中斷的開啟、對各個數(shù)據(jù)緩存區(qū)清“0”、賦定時器初值,初始化完畢后,就進(jìn)入數(shù)碼管顯示程序。數(shù)碼管顯示程序?qū)︼@示緩存區(qū)內(nèi)的數(shù)值進(jìn)行調(diào)用并在數(shù)碼管上進(jìn)行動態(tài)顯示。顯示一次就對P1.1和P2.5進(jìn)行一次掃描,查詢復(fù)位鍵P1.1是否按下,當(dāng)復(fù)位鍵按下后,程序返回開始,重新對系統(tǒng)進(jìn)行初始化。當(dāng)沒有按下復(fù)位鍵時,程序則掃描P2.5是否按下,當(dāng)P2.5沒有按下則返回顯示程,不斷
39、地調(diào)用顯示緩存區(qū)的數(shù)據(jù)進(jìn)行顯示。使用戶能清楚的看到當(dāng)前電子秒表所記錄的時間。當(dāng)查詢到P2.5按下后則跳轉(zhuǎn)到另外一段顯示程序并調(diào)用最紅緩存區(qū)的數(shù)據(jù)進(jìn)行顯示,此時顯示的時間即為上一次計時的時間。與此同時,在P2.5按下后執(zhí)行顯示程序的同時也在對P2.5進(jìn)行掃描,當(dāng)P2.5斷開后立即跳轉(zhuǎn)回之前的顯示程序顯示當(dāng)前的計時時間。</p><p> 在主程序中還進(jìn)行了賦寄存區(qū)的初始值、設(shè)置定時器初值以及開啟外部中斷等操作,當(dāng)
40、定時時間到后就轉(zhuǎn)去執(zhí)行定時中斷程序。當(dāng)外部中斷有請求則去執(zhí)行外部中斷服務(wù)程序。并在執(zhí)行完后返回主程序。</p><p> 圖5-1主程序流程圖</p><p> 5.2 中斷程序設(shè)計</p><p> 現(xiàn)在方案中采用了三個中斷,外部中斷INT0,INT1和定時中斷T0。CPU在響應(yīng)中斷時,先處理高級中斷,在處理低級中斷,若有多個同級中斷時,則按自然優(yōu)先順序處
41、理。例如當(dāng)CPU正在處理一個中斷申請時,有出現(xiàn)了另一個優(yōu)先級比它高的中斷請求,這是,CPU就暫停終止對當(dāng)前優(yōu)先級較低的中斷源的服務(wù),轉(zhuǎn)去響應(yīng)優(yōu)先級比它高的中斷請求,并為其服務(wù)。待服務(wù)結(jié)束,再繼續(xù)執(zhí)行原來較低級的中斷服務(wù)程序。而當(dāng)CPU為級別高的終端服務(wù)程序服務(wù)時,如果級別低的中斷發(fā)出中斷請求,此時CPU是不會響應(yīng)的,所以為了避免開始和暫停兩個按鍵中的一個出現(xiàn)沒有響應(yīng)的情況,在進(jìn)行程序編輯時要注意對中斷的使用,避免出現(xiàn)中斷的嵌套,合理分配
42、中斷對本設(shè)計的實(shí)現(xiàn)是至關(guān)重要的。</p><p> 另外由于數(shù)字式電子秒表的最小精度位1ms,屬于高精度電子秒表。定時器T0的定時周期也為1ms,為了使電子秒表暫停鍵按下后CPU能馬上去響應(yīng)中斷程序,必須將暫停的外部中斷級別高于定時計數(shù)器的中斷級別。避免出現(xiàn)CPU執(zhí)行完定時溢出中斷程序后再響應(yīng)外部中斷程序,影響計時精度。</p><p> 數(shù)字式秒表中的兩個按鍵采用了中斷實(shí)現(xiàn)功能。開始
43、采用外部中斷INT0,暫停采用外部中斷INT1。另外程序中還用到了定時/計數(shù)器0溢出中斷進(jìn)行計時。依據(jù)設(shè)計要求,暫停的外部中斷INT1中斷級別最高,計時的定時/計數(shù)器0溢出中斷次之,開始的外部中斷INT0級別最低。</p><p> ?。?)外部中斷0服務(wù)程序:</p><p> 外部中斷0服務(wù)程序結(jié)合外部P3.2停止鍵實(shí)現(xiàn)數(shù)字電子秒表的停止功能,具體流程圖如圖5-2。</p>
44、;<p> 當(dāng)按下P3.2停止鍵按下向CPU發(fā)出外部中斷請求,CPU轉(zhuǎn)向外部中斷0服務(wù)程序執(zhí)行,停止定時器。另外將當(dāng)前顯示的時間進(jìn)行一次存儲,存進(jìn)中間寄存區(qū)。最后中斷返回。</p><p> 圖5-2 外部中斷0服務(wù)程序流程圖</p><p> (2)外部中斷1服務(wù)程序:</p><p> 外部中斷1服務(wù)程序結(jié)合外部P3.3停止鍵實(shí)現(xiàn)數(shù)字電子秒
45、表的啟動功能,具體流程圖如圖5-3。</p><p> 當(dāng)按下P3.3啟動鍵按下向CPU發(fā)出外部中斷請求,CPU轉(zhuǎn)向外部中斷1服務(wù)程序執(zhí)行,啟動定時器。另外進(jìn)行二次存儲,將之前進(jìn)行一次存儲的數(shù)碼管顯示數(shù)據(jù)存入最終緩存區(qū),避免下次計時暫停時一次存儲將數(shù)據(jù)掩蓋,從而起到保護(hù)數(shù)據(jù)的作用。二次存儲后就中斷返回。</p><p> 圖5-3 外部中斷1服務(wù)程序流程圖</p><
46、;p> ?。?)定時中斷服務(wù)程序</p><p> 當(dāng)定時/計數(shù)器T0器溢出后,向CPU發(fā)出中斷請求信號。CPU跳轉(zhuǎn)到定時中斷程序執(zhí)行,具體流程如圖5-4。定時中斷程序是一個進(jìn)位程序,主要負(fù)責(zé)對1ms的加一。1ms位沒有滿十就跳出中斷程序,返回顯示程序。當(dāng)1ms位滿十后就對1ms位清零,向10ms位加一,同時檢測10ms位是否滿十,沒有滿十就跳出中斷程序,返回顯示程序。如果滿十就向100ms位加一,依次類
47、推,最終達(dá)到99.99秒后歸零,從零開始再次計時。</p><p> 定時/計數(shù)器T0工作在方式0下,TH0和TL0組成一個13位的二進(jìn)制數(shù)計數(shù)器。單片機(jī)開機(jī)或復(fù)位時,它的值為00H,當(dāng)T0啟動后,從第一個輸入脈沖開始計時,每來一個脈沖計數(shù)加一,即從0000000000000開始計數(shù)到1111111111111,再計數(shù)一個脈沖時TH0和TL0組成的13位計數(shù)器將會從13個1變成13個0,并產(chǎn)生溢出,溢出位將被送
48、到TF0標(biāo)志位,通過溢出標(biāo)志產(chǎn)生溢出中斷請求。顯然,T0定時器在方式0下引起一次中斷所允許計數(shù)的最多脈沖個數(shù)為213 個。</p><p> 但如果定時計數(shù)器如果每次都固定從0開始計數(shù),到計滿后,再向CPU發(fā)出溢出中斷請求信號那是毫無意義的。為了使定時計數(shù)器在規(guī)定的計數(shù)脈沖個數(shù)字之后(此時應(yīng)小于213 個脈沖),向CPU發(fā)出溢出中斷請求,可采取預(yù)先向TH0和TL0中放入一個初值X的方法,使計數(shù)器以X值為起始值
49、開始計數(shù),即X+1,X+2,……直至計數(shù)器計滿,從1全變?yōu)?。設(shè)需要計數(shù)的脈沖個數(shù)為Y,則有:</p><p><b> X+Y=213 </b></p><p> 在定時方式下:定時時間間隔位t=(213—X)*振蕩周期*12</p><p> 現(xiàn)在本設(shè)計要求1ms實(shí)現(xiàn)一次中斷,選擇定時器T0工作在方式0。所以需要根據(jù)以上條件計算出T
50、0的初值。</p><p> 設(shè)T0的初值為X,則</p><p> (213—X)*12/12*106 =1*10-3 </p><p> 轉(zhuǎn)換位十六進(jìn)制數(shù)X=7192=1110000011000B</p><p> 即TH0=0E0H(取X的高8位)</p><p> TL0=18H(取X的低5位)&l
51、t;/p><p> 由于定時1ms只是一個理想化的時間,其中并沒有考慮到中斷后單片機(jī)執(zhí)行語句所花的時間。雖然執(zhí)行語句所花的時間很短只有即微秒,但積少成多,數(shù)字秒表一秒中要溢出中斷1000次,積累起來誤差就能達(dá)到毫秒級,這對于精度到達(dá)毫秒級的數(shù)字電子秒表來說是很大的誤差。所以要在后期編程時還要將單片機(jī)讀程序的時間考慮進(jìn)去,</p><p> 在對定時器賦初值時將單片機(jī)需要執(zhí)行的語句所花的時間
52、加上,這樣就能使數(shù)字電子秒表的誤差達(dá)到最小。</p><p> 圖5-4 定時中斷服務(wù)程序</p><p><b> 6系統(tǒng)調(diào)試</b></p><p> 程序在Keil uVision4環(huán)境下編寫,編譯通過后生成.hex文件加載到Protuse下可正常運(yùn)行。程序剛運(yùn)行前數(shù)碼管顯示初值為0000.00,接通電源后系統(tǒng)開始計時,程序中每0.
53、01s進(jìn)入一次定時中斷,故精度可達(dá)到0.01s。在程序運(yùn)行過程中若按下一次功能鍵,則系統(tǒng)暫停計時,數(shù)碼管顯示計時截至狀態(tài);若再次按下功能鍵,系統(tǒng)自動清零并重新開始計時,如此重復(fù)進(jìn)行下去。按下暫停鍵實(shí)現(xiàn)暫停功能,圖6-1,圖6-2.</p><p><b> 圖6-1</b></p><p> 繼續(xù)計數(shù)后按下清零鍵實(shí)現(xiàn)清零功能</p><p>
54、; 圖6-2 系統(tǒng)調(diào)試狀態(tài)圖</p><p><b> 設(shè)計總結(jié)</b></p><p> 1 本系統(tǒng)存在的問題及改進(jìn)措施</p><p> 本系統(tǒng)所設(shè)計的秒表計時器基本實(shí)現(xiàn)了所要求的功能,但經(jīng)過后期的實(shí)驗(yàn)發(fā)現(xiàn),其實(shí)本系統(tǒng)的精度還不是特別精確,做過對比后得知,當(dāng)該系統(tǒng)運(yùn)行大概450秒時,與標(biāo)準(zhǔn)時間相比相差一秒,這對計時時間所要求高精度
55、還需要進(jìn)一步矯正。依據(jù)個人觀點(diǎn),實(shí)現(xiàn)高精度的計時,僅通過單片機(jī)內(nèi)部定時并不能到達(dá)要求,因?yàn)橄到y(tǒng)每次進(jìn)入中斷處理函數(shù)都會多少消耗些沒經(jīng)預(yù)算的時間,長時間積累之后誤差就會變明顯。希望以后能改正這些誤差,是通過外加定時器還是修改參數(shù)是在以后的學(xué)習(xí)中要注意的。</p><p><b> 2 心得體會 </b></p><p> 為期兩周的課程設(shè)計終于結(jié)束了,通過這次學(xué)習(xí)讓
56、我明白要將書本上學(xué)到的知識應(yīng)用于實(shí)踐中,學(xué)會使用Proteus仿真軟件,雖然在學(xué)習(xí)過程中遇到了許多困難,但是解決這些困難后也使我有了很大的提高。這次課程設(shè)計不僅增強(qiáng)了我在電子設(shè)計方面的經(jīng)驗(yàn),鼓舞了自己,更是一次興趣的培養(yǎng)。</p><p> 通過兩個星期的學(xué)習(xí),使我對微機(jī)的理論有了更深的了解,培養(yǎng)了我學(xué)以致用的能力,提高了我分析問題和解決問題的能力,增強(qiáng)了與同學(xué)合作的能力。在設(shè)計實(shí)踐的過程中,我深深的體會到必須
57、要有扎實(shí)的知識基礎(chǔ),熟練地掌握課本上的知識,才能對試驗(yàn)中出現(xiàn)的問題進(jìn)行分析解決。在整個電路的設(shè)計過程中,主要的是利用Proteus 軟件仿真,因?yàn)橐郧皼]有學(xué)過這個軟件,所以我們要從頭學(xué)起。我們在各個單元電路的連接上花費(fèi)了大量時間。設(shè)計時曾做出了兩套方案以及仿真電路,我們仔細(xì)比較分析其原理以及可行的原因,這才確定了我們的電路。實(shí)驗(yàn)過程中,我深刻的體會到在設(shè)計過程中,要考慮到各個元器件的功能和特性,要翻閱大量資料,參考別人的經(jīng)驗(yàn),只有這樣才
58、能把自己的電路設(shè)計的成功。</p><p> 通過這次對秒表的設(shè)計與制作,讓我了解了設(shè)計電路的程序,也讓我了解了關(guān)于秒表的原理與設(shè)計理念。在此次的秒表設(shè)計過程中,我更進(jìn)一步地熟悉了芯片的結(jié)構(gòu)、管腳圖、功能表及掌握了各芯片的工作原理和其具體的使用方法。熟悉常用電子器件的類別、型號、規(guī)格、性能及其使用范圍,能查找資料,查閱有關(guān)的電子器件圖書等。而且這些知識是對我們大學(xué)生來說十分寶貴的實(shí)踐經(jīng)驗(yàn),是無法在課堂上獲得的,
59、是現(xiàn)今社會最重視的同時也是我們最需要提高的部分。</p><p> 總體來說,通過這次課程設(shè)計學(xué)習(xí)讓我受益匪淺,培養(yǎng)了我的思維設(shè)計,增強(qiáng)了我的合作能力,最重要的是讓我明白了自學(xué)的重要性,掌握了更多自學(xué)的方法。這次課程設(shè)計的成功,我越發(fā)感覺電子設(shè)計不是死板的東西,是有很大科學(xué)性與藝術(shù)性的。不同芯片的使用,不同的接線方法,不同的變量,不同的實(shí)現(xiàn)思路,經(jīng)過組合后幾乎可以稱之為藝術(shù)。這次課程設(shè)計使我對各種電路都有了大概
60、的了解,也學(xué)會了常用仿真軟件的使用,在平時的理論學(xué)習(xí)中遇到的問題都一一解決,加深了我對專業(yè)的了解,培養(yǎng)了我對學(xué)習(xí)的興趣,為以后的學(xué)習(xí)打下了好的開端,我受益匪淺。</p><p><b> 參考資料</b></p><p> [1] 劉紅玲主編 微機(jī)原理與接口技術(shù) 北京:中國電力出版社,2007</p><p> [2] 顧暉等。微
61、機(jī)原理與接口技術(shù)-基于8086和Proteus仿真[M].電子工業(yè)出版社陳繼紅等. 微機(jī)原理及應(yīng)用[M].高等教育出版社,2010</p><p> [3]戴梅萼等.微型計算機(jī)技術(shù)及應(yīng)用[M].清華大學(xué)</p><p> [4]沈美明等.IBM-PC匯編語言程序設(shè)計 [M]. 清華大學(xué)出版社</p><p> [5]彭虎等. 微機(jī)原理與接口技術(shù)(第2
62、版) [M].電子工業(yè)出版社,2008</p><p> [6] 張彌左,王兆月,邢立軍等.微型計算機(jī)接口技術(shù).北京:機(jī)械工業(yè)出版社</p><p><b> 附錄Ⅰ:</b></p><p> 圖4-2 硬件連接圖</p><p> 圖4-6 譯碼器其引腳圖</p><p> 圖4-
63、8 系統(tǒng)總電路圖</p><p><b> 附錄Ⅱ </b></p><p><b> 主程序:</b></p><p> PUSH DS ;保存數(shù)據(jù)段 </p><p> MOV AX,0000H </p><p> MOV DS,A
64、X ;數(shù)據(jù)段清零</p><p> MOV AX,OFFSET IRQ7 ;取中斷程序入口地址</p><p> ADD AX,2000H ;加裝時IP=2000地址 </p><p> MOV SI,003C ;填8259中斷7中斷矢量</p><p> MOV W[SI],AX
65、 ;填偏移量矢量 </p><p> MOV AX,0000H ;段地址CS=0000H</p><p> MOC SI,003EH</p><p> MOV W[SI],AX ;填段地址矢量</p><p> POP DS ?。粡棗!?lt;/p><
66、;p> IN AL,21H ??;讀8259中斷屏蔽字</p><p> AND AL,7FH ??;開8259中斷7</p><p> OUT 21H,AL</p><p> MOV AL,39H ;8253的計數(shù)器0為方式2,采用BCD碼計數(shù),先寫低8位,后寫高8位。方式控制字為00110101</p
67、><p> OUT 43H,AL ;寫入方式控制字到控制字寄存器</p><p> MOV AL,00H ;計數(shù)初值低8位</p><p> OUT 42H,AL ;寫入計數(shù)初值低8位到通道0</p><p> MOV AL,10H ;計數(shù)初值高8位</p>
68、;<p> OUT 42H,AL ;寫入計數(shù)初值高8位到通道0</p><p> MOV AL,81H ;8255的A口位方式0輸出,B口為方式0輸出,C口下部輸入1000 0001 </p><p> OUT 63H,AL ;寫方式控制字</p><p> CALL FIRST ;調(diào)
69、用first子程序,賦計數(shù)初值</p><p> BEGI: HLT ; 延時等待</p><p> STI ;開中斷</p><p> MOV AH,01H</p><p> INT 16H ;檢測是否按了鍵</p><p><b> JZ BEJ
70、I</b></p><p> MOV AH,00H ;讀鍵值</p><p><b> INT 16H</b></p><p> CMP AL,0DH ?。皇欠癜戳薑EY2</p><p><b> JNZ A1 </b></p>&l
71、t;p> MOV SI,4000H </p><p> NOT [SI+04H] ;偏移地址為4004H的內(nèi)存單元內(nèi)容取反</p><p><b> JMP BEGI</b></p><p> A1:CMP AL,1BH ;是否按了KEY1鍵</p><p><b>
72、; JNZ A2</b></p><p> CALL FIRST ;重新賦初值,相當(dāng)于清零</p><p> A2: JMP BEGI</p><p><b> 中斷程序:</b></p><p> IRQ7:CAKK DIS ;調(diào)用DISP子程序,用來在數(shù)碼管顯示數(shù)據(jù)<
73、/p><p> MOV SI 4000H</p><p> CMP [SI+04H],00H ??;判斷是否按了第2次回車鍵</p><p><b> JE A4</b></p><p> CALL ADDN ;調(diào)用ADDN子程序,用來計數(shù)</p><p> A4:M
74、OV AL,20H</p><p> OUT 20H,AL</p><p> CLI ;關(guān)中斷</p><p> IRET ;返回</p><p><b> ADDN程序:</b></p><p> ADDN:MOV SI,4000H</p>
75、<p> ADD [SI+05H],01H ;百分之一秒加1</p><p> CMP [SI+05H],0AH ;判斷是否大于10</p><p><b> JZ A5</b></p><p><b> JMP A11</b></p><p> A5
76、:MOV [SI+05H],00H</p><p> ADD [SI+04H],01H ;十分之一秒加1</p><p> CMP [SI+04H],0AH ?。慌袛嗍欠翊笥?0</p><p><b> JZ A6</b></p><p><b> JMP A11</b
77、></p><p> A6:MOV [SI+04H],00H</p><p> ADD [SI+03H],01H ;秒位加1</p><p> CMP [SI+03H],0AH ;判斷是否大于10 </p><p><b> JZ A7</b></p><p>
78、<b> JMP A11</b></p><p> A7:MOV [SI+03H],00H</p><p> ADD [SI],01H ?。皇胛患?</p><p> A8:MOV [SI+02H],00H</p><p> ADD [SI+01H],01H ;分位加1</p
79、><p> CMP [SI+01H],0AH ;判斷是否大于10 </p><p><b> JZ A7</b></p><p><b> JMP A9</b></p><p> A9:MOV [SI+01H],00H</p><p> ADD [SI],
80、01H ;十分位加1</p><p> CMP [SI],06H ?。慌袛嗍欠翊笥?</p><p><b> JZ A8</b></p><p><b> JMP A9</b></p><p> A10:MOV [SI],00 ??;
81、大于60:00重新開始</p><p><b> A11: RET</b></p><p><b> 顯示程序:</b></p><p> DSP: PUSH AX ??;保存AX</p><p> MOV SI,4000H;指向數(shù)據(jù)緩沖區(qū)</p><p>
82、; MOV DL,F7H;1111 0111 指向數(shù)碼管</p><p> MOV AL,DL ;AL=1111 0111</p><p> AGAIN:OUT 60H,AL??;寫端口A</p><p> MOV AL,[SI]</p><p> MOV BX,4100H ;指向數(shù)碼緩沖區(qū)
83、 BX=0100 0001 0000 0000</p><p> AND AX,00FFH ; BX=0000 0000 al</p><p> ADD BX,AX;得到顯示代碼 BX=0100 0001 al</p><p> MOV AL,[BX] </p><p> OUT 61H,AL
84、 ;寫端口B</p><p> CALL DELAY:調(diào)用延時程序DELAY</p><p><b> INC SI</b></p><p> MOV AL,DL </p><p> TEST AL,01H</p><p><b> JZ OUT </b
85、></p><p> ROR AL,1;指向下一個數(shù)碼管</p><p><b> MOV DL,AL</b></p><p> JMP AGAIN</p><p> OUT: POP AX;彈出AX</p><p><b> RET</b&
86、gt;</p><p> LEDMAP: ;數(shù)碼管顯示代碼:</p><p> DB 3FH,06H,5BH,4FH,66H</p><p> DB 6DH,7DH.07H,7FH,6FH</p><p> DELAY: PUSH CX;延時程序</p><p>&
87、lt;b> PUSH AX </b></p><p> MOV CX,0010H</p><p> T1:MOV AX, 0010H</p><p> T2 :DEC AX</p><p><b> JNZ T2 </b></p><p><b> LO
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)課程設(shè)計--電子秒表
- 微機(jī)原理電子秒表課程設(shè)計
- 微機(jī)原理課程設(shè)計報告(電子秒表)
- 微機(jī)課程設(shè)計--數(shù)字秒表
- 微機(jī)接口課程設(shè)計(電子鐘)
- 微機(jī)接口課程設(shè)計
- 電子秒表 課程設(shè)計
- 電子秒表課程設(shè)計
- 電子秒表課程設(shè)計
- 微機(jī)原理課程設(shè)計報告--秒表設(shè)計
- 電子秒表課程設(shè)計
- 電子秒表課程設(shè)計
- 電子秒表課程設(shè)計
- 微機(jī)接口電子鐘課程設(shè)計報告
- 電子秒表的課程設(shè)計
- 數(shù)字電子課程設(shè)計---電子秒表
- 電力電子課程設(shè)計---電子秒表
- eda課程設(shè)計--電子秒表設(shè)計
- 電子秒表課程設(shè)計報告
- 電子秒表課程設(shè)計報告
評論
0/150
提交評論