2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論