![微機(jī)接口課程設(shè)計(jì)可任意啟動(dòng)停止的電子秒表設(shè)計(jì)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/4e1459bf-ae1b-4fdb-b5e7-bf5f6ce22cd0/4e1459bf-ae1b-4fdb-b5e7-bf5f6ce22cd01.gif)
![微機(jī)接口課程設(shè)計(jì)可任意啟動(dòng)停止的電子秒表設(shè)計(jì)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/4e1459bf-ae1b-4fdb-b5e7-bf5f6ce22cd0/4e1459bf-ae1b-4fdb-b5e7-bf5f6ce22cd02.gif)
![微機(jī)接口課程設(shè)計(jì)可任意啟動(dòng)停止的電子秒表設(shè)計(jì)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/4e1459bf-ae1b-4fdb-b5e7-bf5f6ce22cd0/4e1459bf-ae1b-4fdb-b5e7-bf5f6ce22cd03.gif)
![微機(jī)接口課程設(shè)計(jì)可任意啟動(dòng)停止的電子秒表設(shè)計(jì)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/4e1459bf-ae1b-4fdb-b5e7-bf5f6ce22cd0/4e1459bf-ae1b-4fdb-b5e7-bf5f6ce22cd04.gif)
![微機(jī)接口課程設(shè)計(jì)可任意啟動(dòng)停止的電子秒表設(shè)計(jì)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/4e1459bf-ae1b-4fdb-b5e7-bf5f6ce22cd0/4e1459bf-ae1b-4fdb-b5e7-bf5f6ce22cd05.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、徐州工程學(xué)院微機(jī)原理與接口技術(shù)課程設(shè)計(jì)(報(bào)告)可任意啟動(dòng)/停止的電子秒表設(shè)計(jì)題 目 _王 義指導(dǎo)教師_施軍 唐亞軍 潘春飛學(xué)生姓名_ _20090501169 、71 、73 學(xué)生學(xué)號(hào)_ 學(xué)生成績(jī) 09軟件1計(jì)算機(jī)科學(xué)與技術(shù)信電_院(部)_專業(yè)_班 1862012_年 _月 _日- _6_月 _29_日目錄1 設(shè)計(jì)任務(wù)與要求11.1設(shè)計(jì)任務(wù)11.2設(shè)計(jì)要求12系統(tǒng)分析23設(shè)計(jì)方案33.1 設(shè)計(jì)任務(wù)分析33.2 設(shè)計(jì)方案論證33.3硬件系統(tǒng)總體方案設(shè)計(jì)43.4軟件系統(tǒng)總體方案設(shè)計(jì)44硬件電路設(shè)計(jì)54.1 功能硬件設(shè)計(jì)54.1.1定時(shí)器/計(jì)數(shù)器825354.1.2 用可編程并行接口芯片8255的p
2、a口以及pb口實(shí)現(xiàn)數(shù)碼管輸出,pc口實(shí)現(xiàn)按鍵實(shí)現(xiàn)數(shù)據(jù)顯示輸出84.1.3鎖存器27384.1.4 數(shù)據(jù)收發(fā)器24594.1.5譯碼器74ls154104.1.6數(shù)碼管104.2 總電路設(shè)計(jì)115軟件設(shè)計(jì)135.1 主程序設(shè)計(jì)135.2 中斷程序設(shè)計(jì)146系統(tǒng)調(diào)試19設(shè)計(jì)總結(jié)211 本系統(tǒng)存在的問(wèn)題及改進(jìn)措施212 心得體會(huì)21參考資料23附錄:24附錄261 設(shè)計(jì)任務(wù)與要求1.1設(shè)計(jì)任務(wù) 設(shè)計(jì)并制作符合要求的電子秒表。秒表由6位7段led顯示器顯示,其中2位顯示“min”,4位顯示“s”,其中顯示分辨率位“0.01s”。具有清零、啟動(dòng)計(jì)數(shù)、暫停計(jì)時(shí)及繼續(xù)計(jì)時(shí)等控制功能。1.2設(shè)計(jì)要求
3、同組同學(xué)要發(fā)揚(yáng)團(tuán)隊(duì)協(xié)作精神,積極主動(dòng)的提出問(wèn)題、解決問(wèn)題、討論問(wèn)題,互相幫助和啟發(fā)。在設(shè)計(jì)中可以引用所需的參考資料,避免重復(fù)工作,加快設(shè)計(jì)進(jìn)程,但必須和題目的要求相符合,保證設(shè)計(jì)的正確。在老師的指導(dǎo)下制定好自己各環(huán)節(jié)的詳細(xì)設(shè)計(jì)進(jìn)程計(jì)劃,按給定的時(shí)間計(jì)劃保質(zhì)保量的完成個(gè)階段的設(shè)計(jì)任務(wù)。設(shè)計(jì)中可邊設(shè)計(jì),邊修改,軟件設(shè)計(jì)與硬件設(shè)計(jì)可交替進(jìn)行,問(wèn)題答疑與調(diào)試和方案修改相結(jié)合,提高設(shè)計(jì)的效率,保證按時(shí)完成設(shè)計(jì)工作并交出合格的設(shè)計(jì)報(bào)告。2系統(tǒng)分析本設(shè)計(jì)采用了匯編語(yǔ)言編寫,匯編語(yǔ)言由于采用了助記符號(hào)來(lái)編寫程序,比用機(jī)器語(yǔ)言的二進(jìn)制代碼編程要方便些,在一定程度上簡(jiǎn)化了編程過(guò)程。匯編語(yǔ)言的特點(diǎn)是用符號(hào)代替了機(jī)器
4、指令代碼,而且助記符與指令代碼一一對(duì)應(yīng),基本保留了機(jī)器語(yǔ)言的靈活性。使用匯編語(yǔ)言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。匯編語(yǔ)言的特點(diǎn):(1).面向機(jī)器的低級(jí)語(yǔ)言,通常是為特定的計(jì)算機(jī)或系列計(jì)算機(jī)專門設(shè)計(jì)的。(2).保持了機(jī)器語(yǔ)言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷的特點(diǎn)。(3).可有效地訪問(wèn)、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤、存儲(chǔ)器、cpu、i/o端口等。(4).目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語(yǔ)言。(5).經(jīng)常與高級(jí)語(yǔ)言配合使用,應(yīng)用十分廣泛。在程序設(shè)計(jì)過(guò)程中,為了有效地完成任務(wù),把所要完成的任務(wù)精心的分割成若干個(gè)相互獨(dú)立但相互又仍可有聯(lián)系的任務(wù)模塊,這些任務(wù)模塊使得
5、任務(wù)變得相對(duì)單純,對(duì)外的數(shù)據(jù)交換相對(duì)簡(jiǎn)單,容易編寫,容易檢測(cè),容易閱讀和維護(hù)。這種程序設(shè)計(jì)思想稱為模塊化程序設(shè)計(jì)思想。模塊化結(jié)構(gòu)程序的設(shè)計(jì),可以使系統(tǒng)軟件便于調(diào)試與優(yōu)化,也使其他人更好地理解和閱讀系統(tǒng)的程序設(shè)計(jì)。程序的主要模塊有:主程序、顯示程序、定時(shí)溢出中斷服務(wù)程序、外部中斷服務(wù)程序。3設(shè)計(jì)方案3.1 設(shè)計(jì)任務(wù)分析可任意啟動(dòng)/停止的電子秒表的實(shí)現(xiàn)用按鍵中斷來(lái)控制整個(gè)程序,當(dāng)按一下key1啟動(dòng)電子秒表,再按一下暫停,按一下key2鍵清零,用六個(gè)七段數(shù)碼管顯示時(shí)間。整個(gè)程序涉及到8255、8253和8259三個(gè)芯片。給8253的clk0提供一個(gè)頻率為10khz的時(shí)鐘信號(hào), 8253的out0連接
6、8259的irq7,8253的gate2連接正5伏電壓,采用計(jì)數(shù)器0每隔0.01秒產(chǎn)生一次中斷并且計(jì)數(shù),寫入以偏移地址4000h開始的6個(gè)內(nèi)存單元,然后利用8255將內(nèi)存單元的數(shù)據(jù)輸出到七段數(shù)碼管。由于按鍵中斷優(yōu)先于8259的7號(hào)中斷,所以程序只有在按一下key1才啟動(dòng)電子秒表,再按一下暫停,按一下key2鍵清零,如果超出了60分,整個(gè)程序自動(dòng)重新開始。3.2 設(shè)計(jì)方案論證根據(jù)課程設(shè)計(jì)的要求和我們所要增加的功能寫好程序流程圖,在程序流程圖的基礎(chǔ)上,結(jié)合芯片的功能寫出相應(yīng)的程序。然后再進(jìn)行程序調(diào)試和相應(yīng)的修改,以達(dá)到能夠?qū)崿F(xiàn)所要求實(shí)現(xiàn)的功能的目的。在微機(jī)原理定匯編調(diào)試軟件上編輯源程序,并進(jìn)行匯編
7、,在匯編成功無(wú)誤后,選擇端口進(jìn)行調(diào)試,然后裝入程序,至此,本次設(shè)計(jì)的軟件工作準(zhǔn)備完畢。再根據(jù)硬件原理設(shè)計(jì)圖完成各芯片之間的連接,打開實(shí)驗(yàn)箱電源開關(guān)總體進(jìn)行調(diào)試。在整個(gè)實(shí)驗(yàn)過(guò)程中,在8253可編程定時(shí)器clk端輸出管腳處接上一個(gè)計(jì)數(shù)的頻率為10khz的時(shí)鐘信號(hào),由8253定時(shí)/計(jì)數(shù)器產(chǎn)生0.01秒的中斷并進(jìn)行計(jì)數(shù),可編程并行i/o接口芯片8255a將偏移地址寫入內(nèi)存單元,進(jìn)中斷更新數(shù)據(jù),然后將內(nèi)存數(shù)據(jù)送給led數(shù)碼管顯示。定時(shí)器中斷就是定義初值,然后開中斷,剩下的就在中斷里寫了。保存數(shù)據(jù)段后,取中斷程序入口地址,定義可編程中斷控制器8259中斷7中斷矢量,讀8259中斷屏蔽字,開8259中斷7,
8、六位數(shù)碼管用動(dòng)態(tài)顯示,挨個(gè)點(diǎn)亮,六個(gè)i/o控制位,十二個(gè)i/o控制段碼,將8259的定時(shí)器設(shè)置在0.01秒進(jìn)入一次中斷,交替輸出高低電平(形成時(shí)鐘頻率),在計(jì)數(shù)器輸出使用組合邏輯電路連接led燈的各個(gè)控制輸入端。3.3硬件系統(tǒng)總體方案設(shè)計(jì)電子秒表系統(tǒng)主要完成對(duì)計(jì)時(shí)實(shí)時(shí)的顯示,精度達(dá)到1/100s,以及通過(guò)功能鍵可以使當(dāng)前計(jì)時(shí)暫?;蛑匦掠?jì)時(shí)。系統(tǒng)主要包括晶振電路、復(fù)位電路、按鍵電路以及數(shù)碼管顯示電路。系統(tǒng)的整體框圖如圖3-1所示:8253定時(shí)/計(jì)數(shù)器晶振電路數(shù)碼管顯示復(fù)位電路按鍵電路 圖3-1 系統(tǒng)整體框圖3.4軟件系統(tǒng)總體方案設(shè)計(jì) 系統(tǒng)軟件由主程序模塊、測(cè)溫程序模塊、鍵盤掃描程序模塊以及l(fā)ed
9、驅(qū)動(dòng)程序模塊組成。軟件總體框圖如圖3-2所示。圖3-2 軟件總體框圖4硬件電路設(shè)計(jì)4.1 功能硬件設(shè)計(jì)4.1.1定時(shí)器/計(jì)數(shù)器8253 用系統(tǒng)8253定時(shí)器提供的55ms定時(shí)單位,設(shè)計(jì)秒表定時(shí)程序。 有關(guān)系統(tǒng)定時(shí)方法:pc機(jī)系統(tǒng)中的8253定時(shí)器0工作于方式3,外部提供一個(gè)時(shí)鐘作為clk信號(hào), 頻率:f=1.1931816mhz。 定時(shí)器0輸出方波的頻率:fout=1.1931816/65536=18.2hz。 輸出方波的周期tout=1/18.2=54.945ms。8253a每隔55ms引起一次中斷,作為定時(shí)信號(hào)??捎?5945ms作基本計(jì)時(shí)單位。 用bios調(diào)用int 1ah可以取得該定時(shí)
10、單位。例:1秒=18.2 (計(jì)時(shí)單位) 8253的引腳圖及硬件連接圖如圖4-1和4-2所示。圖4-1 8253引腳圖 圖4-2 硬件連接圖當(dāng)a1a0分別為00 01 10 11時(shí)分別選中三個(gè)通道和控制字寄存器在8088系統(tǒng)中,8088的a1a0分別與8253的a1a0相連在8086系統(tǒng)中,通常將8253的8位數(shù)據(jù)線與8086的低8位相連,即使用偶地址,所以8086的a2a1分別與8253的a1a0相連。計(jì)數(shù)器(0 2)即三個(gè)計(jì)數(shù)器/定時(shí)器通道。每個(gè)通道包括:8位控制字寄存器、16位計(jì)數(shù)初值寄存器、減一計(jì)數(shù)器和輸出鎖存器。作定時(shí)器用:其clk端上的輸入脈沖應(yīng)是標(biāo)準(zhǔn)的、精確的;作計(jì)數(shù)器用:對(duì)其cl
11、k端上的脈沖計(jì)數(shù),脈沖寬度可以不等。采用減一計(jì)數(shù)器,為0時(shí),從out端上輸出一個(gè)脈沖定時(shí)時(shí)間 = 時(shí)鐘脈沖周期x預(yù)置的計(jì)數(shù)初值。 控制功能表csrdwra1a0功 能0100 0寫計(jì)數(shù)器00100 1寫計(jì)數(shù)器10101 0寫計(jì)數(shù)器20101 1寫控制字寄存器0010 0讀計(jì)數(shù)器00010 1讀計(jì)數(shù)器10011 0讀計(jì)數(shù)器20011 1 無(wú)操作1xxx x禁止使用011x x無(wú)操作每個(gè)通道: clk計(jì)數(shù)脈沖或標(biāo)準(zhǔn)脈沖輸入端gate允許端,當(dāng)gate=1時(shí)允許計(jì)數(shù)ut計(jì)數(shù)值為0時(shí)輸出一個(gè)脈沖 由于8253的讀/寫操作對(duì)系統(tǒng)時(shí)鐘沒(méi)有特殊的要求,因此它幾乎可以應(yīng)用與由任何一種微處理器組成的系統(tǒng)中,可作
12、為可編程的方波頻率發(fā)生器、分頻器、實(shí)時(shí)時(shí)鐘、事件計(jì)數(shù)器和單脈沖發(fā)生器等。8253是一片具有三個(gè)獨(dú)立的16位計(jì)數(shù)器通道的可編程定時(shí)器/計(jì)數(shù)器芯片。每個(gè)通道都可以編程設(shè)定3種工作方式之一種;8253由以下幾個(gè)部分組成:(1) 數(shù)據(jù)總線緩沖器(8位、三態(tài)、雙向);(2) 讀/寫控制邏輯;cs:片選信號(hào),低電平有效; rd:讀信號(hào),低電平有效; wr:寫信號(hào),低電平有效 a1a0:端口選擇信號(hào) (3) 三個(gè)通道( 0 2),由a0,a1控制選擇; (4) 一個(gè)控制寄存器;圖4-3內(nèi)部結(jié)構(gòu)及引腳圖 4.1.2 用可編程并行接口芯片8255的pa口以及pb口實(shí)現(xiàn)數(shù)碼管輸出,pc口實(shí)現(xiàn)按鍵實(shí)現(xiàn)數(shù)據(jù)顯示輸出
13、8255 可編程外圍接口芯片是 intel 公司生產(chǎn)的通用并行i/o 接口芯片,它具有a、b、c 三個(gè)并行接口,并行接口是以數(shù)據(jù)的字節(jié)為單位與i/o 設(shè)備或被控制對(duì)象之間傳遞信息。cpu 和接口之間 的數(shù)據(jù)傳送總是并行的,即可以同時(shí)傳遞8 位、16 位、32 位等。用+5v 單電源供電,能在以下三種方式下工作:方式0-基本輸入/出方式、方式1-選通輸入/出方式、方式2-雙向選通工作方式。8255 工作方式控制字和c口按位置位/ 復(fù)位控制字格式如圖4-3所示。圖4-3 8255工作方式圖4.1.3鎖存器273 74ls273是8位數(shù)據(jù)/地址鎖存器,他是一種帶清除功能的8d觸發(fā)器,下面介紹一下他的
14、管腳圖功能表等資料。(1).1腳是復(fù)位clr,低電平有效,當(dāng)1腳是低電平時(shí),輸出腳2(q0)、5(q1)、6(q2)、9(q3)、12(q4)、15(q5)、16(q6)、19(q7)全部輸出0,即全部復(fù)位;(2).當(dāng)1腳為高電平時(shí),11(clk)腳是鎖存控制端,并且是上升沿觸發(fā)鎖存,當(dāng)11腳有一個(gè)上升沿,立即鎖存輸入腳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。圖4-4 74ls273 74ls273管腳功能: 1d8d為數(shù)據(jù)輸入端,1q8q為數(shù)據(jù)
15、輸出端,正脈沖觸發(fā),低電平清除,常用作8位地址鎖存器。 4.1.4 數(shù)據(jù)收發(fā)器245 當(dāng)片選端/ce低電平有效時(shí),dir=“0”,信號(hào)由 b 向 a 傳輸;(接收)*dir=“1”,信號(hào)由 a 向 b 傳輸;(發(fā)送)當(dāng)/ce為高電平時(shí),a、b均為高阻態(tài) 4.1.5譯碼器74ls154 74ls154為416線制譯碼器其引腳圖如下圖4-5所示 圖4-5譯碼器其引腳圖4.1.6數(shù)碼管 數(shù)碼管要正常顯示,就要來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。 靜態(tài)顯示驅(qū)動(dòng) 靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)
16、的i/o端口進(jìn)行驅(qū)動(dòng),或者使用如bcd碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用i/o端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根i/o端口來(lái)驅(qū)動(dòng),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。 動(dòng)態(tài)顯示驅(qū)動(dòng) 數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極com增加位選通控制電路,位選通由各自獨(dú)立的i/o線控制。圖4-6所示。圖4-6 數(shù)碼管接線圖4.2 總電路設(shè)計(jì)系統(tǒng)總電路(
17、原理)圖如圖4-7所示。圖4-7 系統(tǒng)總電路圖5軟件設(shè)計(jì)5.1 主程序設(shè)計(jì)本系統(tǒng)程序主要模塊由主程序、定時(shí)中斷服務(wù)程序、外部中斷0服務(wù)程序和外部中斷1服務(wù)程序組成。其中主程序是整個(gè)程序的主體??梢詫?duì)各個(gè)中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個(gè)子程序之間的聯(lián)系。系統(tǒng)(上電)復(fù)位后,進(jìn)入主程序,主程序流程圖如圖5-1。首先對(duì)系統(tǒng)進(jìn)行初始化,包括設(shè)置各入口地址、中斷的開啟、對(duì)各個(gè)數(shù)據(jù)緩存區(qū)清“0”、賦定時(shí)器初值,初始化完畢后,就進(jìn)入數(shù)碼管顯示程序。數(shù)碼管顯示程序?qū)︼@示緩存區(qū)內(nèi)的數(shù)值進(jìn)行調(diào)用并在數(shù)碼管上進(jìn)行動(dòng)態(tài)顯示。顯示一次就對(duì)p1.1和p2.5進(jìn)行一次掃描,查詢復(fù)位鍵p1.1是否按下,當(dāng)復(fù)位鍵按下后,程序返回開始
18、,重新對(duì)系統(tǒng)進(jìn)行初始化。當(dāng)沒(méi)有按下復(fù)位鍵時(shí),程序則掃描p2.5是否按下,當(dāng)p2.5沒(méi)有按下則返回顯示程,不斷地調(diào)用顯示緩存區(qū)的數(shù)據(jù)進(jìn)行顯示。使用戶能清楚的看到當(dāng)前電子秒表所記錄的時(shí)間。當(dāng)查詢到p2.5按下后則跳轉(zhuǎn)到另外一段顯示程序并調(diào)用最紅緩存區(qū)的數(shù)據(jù)進(jìn)行顯示,此時(shí)顯示的時(shí)間即為上一次計(jì)時(shí)的時(shí)間。與此同時(shí),在p2.5按下后執(zhí)行顯示程序的同時(shí)也在對(duì)p2.5進(jìn)行掃描,當(dāng)p2.5斷開后立即跳轉(zhuǎn)回之前的顯示程序顯示當(dāng)前的計(jì)時(shí)時(shí)間。在主程序中還進(jìn)行了賦寄存區(qū)的初始值、設(shè)置定時(shí)器初值以及開啟外部中斷等操作,當(dāng)定時(shí)時(shí)間到后就轉(zhuǎn)去執(zhí)行定時(shí)中斷程序。當(dāng)外部中斷有請(qǐng)求則去執(zhí)行外部中斷服務(wù)程序。并在執(zhí)行完后返回主程
19、序。圖5-1主程序流程圖5.2 中斷程序設(shè)計(jì)現(xiàn)在方案中采用了三個(gè)中斷,外部中斷int0,int1和定時(shí)中斷t0。cpu在響應(yīng)中斷時(shí),先處理高級(jí)中斷,在處理低級(jí)中斷,若有多個(gè)同級(jí)中斷時(shí),則按自然優(yōu)先順序處理。例如當(dāng)cpu正在處理一個(gè)中斷申請(qǐng)時(shí),有出現(xiàn)了另一個(gè)優(yōu)先級(jí)比它高的中斷請(qǐng)求,這是,cpu就暫停終止對(duì)當(dāng)前優(yōu)先級(jí)較低的中斷源的服務(wù),轉(zhuǎn)去響應(yīng)優(yōu)先級(jí)比它高的中斷請(qǐng)求,并為其服務(wù)。待服務(wù)結(jié)束,再繼續(xù)執(zhí)行原來(lái)較低級(jí)的中斷服務(wù)程序。而當(dāng)cpu為級(jí)別高的終端服務(wù)程序服務(wù)時(shí),如果級(jí)別低的中斷發(fā)出中斷請(qǐng)求,此時(shí)cpu是不會(huì)響應(yīng)的,所以為了避免開始和暫停兩個(gè)按鍵中的一個(gè)出現(xiàn)沒(méi)有響應(yīng)的情況,在進(jìn)行程序編輯時(shí)要注意
20、對(duì)中斷的使用,避免出現(xiàn)中斷的嵌套,合理分配中斷對(duì)本設(shè)計(jì)的實(shí)現(xiàn)是至關(guān)重要的。另外由于數(shù)字式電子秒表的最小精度位1ms,屬于高精度電子秒表。定時(shí)器t0的定時(shí)周期也為1ms,為了使電子秒表暫停鍵按下后cpu能馬上去響應(yīng)中斷程序,必須將暫停的外部中斷級(jí)別高于定時(shí)計(jì)數(shù)器的中斷級(jí)別。避免出現(xiàn)cpu執(zhí)行完定時(shí)溢出中斷程序后再響應(yīng)外部中斷程序,影響計(jì)時(shí)精度。數(shù)字式秒表中的兩個(gè)按鍵采用了中斷實(shí)現(xiàn)功能。開始采用外部中斷int0,暫停采用外部中斷int1。另外程序中還用到了定時(shí)/計(jì)數(shù)器0溢出中斷進(jìn)行計(jì)時(shí)。依據(jù)設(shè)計(jì)要求,暫停的外部中斷int1中斷級(jí)別最高,計(jì)時(shí)的定時(shí)/計(jì)數(shù)器0溢出中斷次之,開始的外部中斷int0級(jí)別最
21、低。(1)外部中斷0服務(wù)程序:外部中斷0服務(wù)程序結(jié)合外部p3.2停止鍵實(shí)現(xiàn)數(shù)字電子秒表的停止功能,具體流程圖如圖5-2。當(dāng)按下p3.2停止鍵按下向cpu發(fā)出外部中斷請(qǐng)求,cpu轉(zhuǎn)向外部中斷0服務(wù)程序執(zhí)行,停止定時(shí)器。另外將當(dāng)前顯示的時(shí)間進(jìn)行一次存儲(chǔ),存進(jìn)中間寄存區(qū)。最后中斷返回。圖5-2 外部中斷0服務(wù)程序流程圖(2)外部中斷1服務(wù)程序:外部中斷1服務(wù)程序結(jié)合外部p3.3停止鍵實(shí)現(xiàn)數(shù)字電子秒表的啟動(dòng)功能,具體流程圖如圖5-3。當(dāng)按下p3.3啟動(dòng)鍵按下向cpu發(fā)出外部中斷請(qǐng)求,cpu轉(zhuǎn)向外部中斷1服務(wù)程序執(zhí)行,啟動(dòng)定時(shí)器。另外進(jìn)行二次存儲(chǔ),將之前進(jìn)行一次存儲(chǔ)的數(shù)碼管顯示數(shù)據(jù)存入最終緩存區(qū),避免下
22、次計(jì)時(shí)暫停時(shí)一次存儲(chǔ)將數(shù)據(jù)掩蓋,從而起到保護(hù)數(shù)據(jù)的作用。二次存儲(chǔ)后就中斷返回。圖5-3 外部中斷1服務(wù)程序流程圖(3)定時(shí)中斷服務(wù)程序當(dāng)定時(shí)/計(jì)數(shù)器t0器溢出后,向cpu發(fā)出中斷請(qǐng)求信號(hào)。cpu跳轉(zhuǎn)到定時(shí)中斷程序執(zhí)行,具體流程如圖5-4。定時(shí)中斷程序是一個(gè)進(jìn)位程序,主要負(fù)責(zé)對(duì)1ms的加一。1ms位沒(méi)有滿十就跳出中斷程序,返回顯示程序。當(dāng)1ms位滿十后就對(duì)1ms位清零,向10ms位加一,同時(shí)檢測(cè)10ms位是否滿十,沒(méi)有滿十就跳出中斷程序,返回顯示程序。如果滿十就向100ms位加一,依次類推,最終達(dá)到99.99秒后歸零,從零開始再次計(jì)時(shí)。定時(shí)/計(jì)數(shù)器t0工作在方式0下,th0和tl0組成一個(gè)13位
23、的二進(jìn)制數(shù)計(jì)數(shù)器。單片機(jī)開機(jī)或復(fù)位時(shí),它的值為00h,當(dāng)t0啟動(dòng)后,從第一個(gè)輸入脈沖開始計(jì)時(shí),每來(lái)一個(gè)脈沖計(jì)數(shù)加一,即從0000000000000開始計(jì)數(shù)到1111111111111,再計(jì)數(shù)一個(gè)脈沖時(shí)th0和tl0組成的13位計(jì)數(shù)器將會(huì)從13個(gè)1變成13個(gè)0,并產(chǎn)生溢出,溢出位將被送到tf0標(biāo)志位,通過(guò)溢出標(biāo)志產(chǎn)生溢出中斷請(qǐng)求。顯然,t0定時(shí)器在方式0下引起一次中斷所允許計(jì)數(shù)的最多脈沖個(gè)數(shù)為213 個(gè)。但如果定時(shí)計(jì)數(shù)器如果每次都固定從0開始計(jì)數(shù),到計(jì)滿后,再向cpu發(fā)出溢出中斷請(qǐng)求信號(hào)那是毫無(wú)意義的。為了使定時(shí)計(jì)數(shù)器在規(guī)定的計(jì)數(shù)脈沖個(gè)數(shù)字之后(此時(shí)應(yīng)小于213 個(gè)脈沖),向cpu發(fā)出溢出中斷請(qǐng)
24、求,可采取預(yù)先向th0和tl0中放入一個(gè)初值x的方法,使計(jì)數(shù)器以x值為起始值開始計(jì)數(shù),即x+1,x+2,直至計(jì)數(shù)器計(jì)滿,從1全變?yōu)?。設(shè)需要計(jì)數(shù)的脈沖個(gè)數(shù)為y,則有:x+y=213 在定時(shí)方式下:定時(shí)時(shí)間間隔位t=(213x)*振蕩周期*12現(xiàn)在本設(shè)計(jì)要求1ms實(shí)現(xiàn)一次中斷,選擇定時(shí)器t0工作在方式0。所以需要根據(jù)以上條件計(jì)算出t0的初值。設(shè)t0的初值為x,則 (213x)*12/12*106 =1*10-3 轉(zhuǎn)換位十六進(jìn)制數(shù)x=7192=1110000011000b即th0=0e0h(取x的高8位)tl0=18h(取x的低5位)由于定時(shí)1ms只是一個(gè)理想化的時(shí)間,其中并沒(méi)有考慮到中斷后單片機(jī)
25、執(zhí)行語(yǔ)句所花的時(shí)間。雖然執(zhí)行語(yǔ)句所花的時(shí)間很短只有即微秒,但積少成多,數(shù)字秒表一秒中要溢出中斷1000次,積累起來(lái)誤差就能達(dá)到毫秒級(jí),這對(duì)于精度到達(dá)毫秒級(jí)的數(shù)字電子秒表來(lái)說(shuō)是很大的誤差。所以要在后期編程時(shí)還要將單片機(jī)讀程序的時(shí)間考慮進(jìn)去,在對(duì)定時(shí)器賦初值時(shí)將單片機(jī)需要執(zhí)行的語(yǔ)句所花的時(shí)間加上,這樣就能使數(shù)字電子秒表的誤差達(dá)到最小。圖5-4 定時(shí)中斷服務(wù)程序6系統(tǒng)調(diào)試程序在keil uvision4環(huán)境下編寫,編譯通過(guò)后生成.hex文件加載到protuse下可正常運(yùn)行。程序剛運(yùn)行前數(shù)碼管顯示初值為0000.00,接通電源后系統(tǒng)開始計(jì)時(shí),程序中每0.01s進(jìn)入一次定時(shí)中斷,故精度可達(dá)到0.01s。
26、在程序運(yùn)行過(guò)程中若按下一次功能鍵,則系統(tǒng)暫停計(jì)時(shí),數(shù)碼管顯示計(jì)時(shí)截至狀態(tài);若再次按下功能鍵,系統(tǒng)自動(dòng)清零并重新開始計(jì)時(shí),如此重復(fù)進(jìn)行下去。按下暫停鍵實(shí)現(xiàn)暫停功能,圖6-1,圖6-2.圖6-1繼續(xù)計(jì)數(shù)后按下清零鍵實(shí)現(xiàn)清零功能圖6-2 系統(tǒng)調(diào)試狀態(tài)圖設(shè)計(jì)總結(jié)1 本系統(tǒng)存在的問(wèn)題及改進(jìn)措施本系統(tǒng)所設(shè)計(jì)的秒表計(jì)時(shí)器基本實(shí)現(xiàn)了所要求的功能,但經(jīng)過(guò)后期的實(shí)驗(yàn)發(fā)現(xiàn),其實(shí)本系統(tǒng)的精度還不是特別精確,做過(guò)對(duì)比后得知,當(dāng)該系統(tǒng)運(yùn)行大概450秒時(shí),與標(biāo)準(zhǔn)時(shí)間相比相差一秒,這對(duì)計(jì)時(shí)時(shí)間所要求高精度還需要進(jìn)一步矯正。依據(jù)個(gè)人觀點(diǎn),實(shí)現(xiàn)高精度的計(jì)時(shí),僅通過(guò)單片機(jī)內(nèi)部定時(shí)并不能到達(dá)要求,因?yàn)橄到y(tǒng)每次進(jìn)入中斷處理函數(shù)都會(huì)多少
27、消耗些沒(méi)經(jīng)預(yù)算的時(shí)間,長(zhǎng)時(shí)間積累之后誤差就會(huì)變明顯。希望以后能改正這些誤差,是通過(guò)外加定時(shí)器還是修改參數(shù)是在以后的學(xué)習(xí)中要注意的。2 心得體會(huì) 為期兩周的課程設(shè)計(jì)終于結(jié)束了,通過(guò)這次學(xué)習(xí)讓我明白要將書本上學(xué)到的知識(shí)應(yīng)用于實(shí)踐中,學(xué)會(huì)使用proteus仿真軟件,雖然在學(xué)習(xí)過(guò)程中遇到了許多困難,但是解決這些困難后也使我有了很大的提高。這次課程設(shè)計(jì)不僅增強(qiáng)了我在電子設(shè)計(jì)方面的經(jīng)驗(yàn),鼓舞了自己,更是一次興趣的培養(yǎng)。通過(guò)兩個(gè)星期的學(xué)習(xí),使我對(duì)微機(jī)的理論有了更深的了解,培養(yǎng)了我學(xué)以致用的能力,提高了我分析問(wèn)題和解決問(wèn)題的能力,增強(qiáng)了與同學(xué)合作的能力。在設(shè)計(jì)實(shí)踐的過(guò)程中,我深深的體會(huì)到必須要有扎實(shí)的知識(shí)基礎(chǔ)
28、,熟練地掌握課本上的知識(shí),才能對(duì)試驗(yàn)中出現(xiàn)的問(wèn)題進(jìn)行分析解決。在整個(gè)電路的設(shè)計(jì)過(guò)程中,主要的是利用proteus 軟件仿真,因?yàn)橐郧皼](méi)有學(xué)過(guò)這個(gè)軟件,所以我們要從頭學(xué)起。我們?cè)诟鱾€(gè)單元電路的連接上花費(fèi)了大量時(shí)間。設(shè)計(jì)時(shí)曾做出了兩套方案以及仿真電路,我們仔細(xì)比較分析其原理以及可行的原因,這才確定了我們的電路。實(shí)驗(yàn)過(guò)程中,我深刻的體會(huì)到在設(shè)計(jì)過(guò)程中,要考慮到各個(gè)元器件的功能和特性,要翻閱大量資料,參考別人的經(jīng)驗(yàn),只有這樣才能把自己的電路設(shè)計(jì)的成功。通過(guò)這次對(duì)秒表的設(shè)計(jì)與制作,讓我了解了設(shè)計(jì)電路的程序,也讓我了解了關(guān)于秒表的原理與設(shè)計(jì)理念。在此次的秒表設(shè)計(jì)過(guò)程中,我更進(jìn)一步地熟悉了芯片的結(jié)構(gòu)、管腳圖
29、、功能表及掌握了各芯片的工作原理和其具體的使用方法。熟悉常用電子器件的類別、型號(hào)、規(guī)格、性能及其使用范圍,能查找資料,查閱有關(guān)的電子器件圖書等。而且這些知識(shí)是對(duì)我們大學(xué)生來(lái)說(shuō)十分寶貴的實(shí)踐經(jīng)驗(yàn),是無(wú)法在課堂上獲得的,是現(xiàn)今社會(huì)最重視的同時(shí)也是我們最需要提高的部分??傮w來(lái)說(shuō),通過(guò)這次課程設(shè)計(jì)學(xué)習(xí)讓我受益匪淺,培養(yǎng)了我的思維設(shè)計(jì),增強(qiáng)了我的合作能力能力,最重要的是讓我明白了自學(xué)的重要性,掌握了更多自學(xué)的方法。這次課程設(shè)計(jì)的成功,我越發(fā)感覺(jué)電子設(shè)計(jì)不是死板的東西,是有很大科學(xué)性與藝術(shù)性的。不同芯片的使用,不同的接線方法,不同的變量,不同的實(shí)現(xiàn)思路,經(jīng)過(guò)組合后幾乎可以稱之為藝術(shù)。這次課程設(shè)計(jì)使我對(duì)各種
30、電路都有了大概的了解,也學(xué)會(huì)了常用仿真軟件的使用,在平時(shí)的理論學(xué)習(xí)中遇到的問(wèn)題都一一解決,加深了我對(duì)專業(yè)的了解,培養(yǎng)了我對(duì)學(xué)習(xí)的興趣,為以后的學(xué)習(xí)打下了好的開端,我受益匪淺。 參考資料1 劉紅玲主編 微機(jī)原理與接口技術(shù) 北京:中國(guó)電力出版社,20072 顧暉等。微機(jī)原理與接口技術(shù)-基于8086和proteus仿真m電子工業(yè)出版社陳繼紅等. 微機(jī)原理及應(yīng)用m高等教育出版社,20103戴梅萼等.微型計(jì)算機(jī)技術(shù)及應(yīng)用m清華大學(xué)4沈美明等.ibm-pc匯編語(yǔ)言程序設(shè)計(jì) m 清華大學(xué)出版社5彭虎等. 微機(jī)原理與接口技術(shù)(第2版) m電子工業(yè)出版社,20086 張彌左,王兆月,邢立軍等.微型計(jì)算
31、機(jī)接口技術(shù).北京:機(jī)械工業(yè)出版社附錄: 圖4-2 硬件連接圖 圖4-6 譯碼器其引腳圖圖4-8 系統(tǒng)總電路圖附錄 主程序: push ds ;保存數(shù)據(jù)段 mov ax,0000h mov ds,ax ;數(shù)據(jù)段清零 mov ax,offset irq7 ;取中斷程序入口地址 add ax,2000h ;加裝時(shí)ip2000地址mov si,003c ;填8259中斷7中斷矢量mov wsi,ax ;填偏移量矢量mov ax,0000h ;段地址cs0000hmoc si,003ehmov wsi,ax ;填段地址矢量pop ds ;彈棧in al,21h ;讀8259中斷屏蔽字and al,7fh
32、 ;開8259中斷7out 21h,almov al,39h ;8253的計(jì)數(shù)器0為方式2,采用bcd碼計(jì)數(shù),先寫低8位,后寫高8位。方式控制字為00110101out 43h,al ;寫入方式控制字到控制字寄存器mov al,00h ;計(jì)數(shù)初值低8位out 42h,al ;寫入計(jì)數(shù)初值低8位到通道0mov al,10h ;計(jì)數(shù)初值高8位out 42h,al ;寫入計(jì)數(shù)初值高8位到通道0mov al,81h ;8255的a口位方式0輸出,b口為方式0輸出,c口下部輸入1000 0001out 63h,al ;寫方式控制字call first ;調(diào)用first子程序,賦計(jì)數(shù)初值begi: hlt ; 延時(shí)等待sti ;開中斷mov ah,01hint 16h ;檢測(cè)是否按了鍵jz bejimov ah,00h ;讀鍵值int 16hcmp al,0dh ;是否按了key2jnz a1mov si,4000h not si+04h ;偏移地址為4004h的內(nèi)存單元內(nèi)容取反jmp begia1:cmp al,1bh ;是否按了key1鍵jnz a2call first ;重新賦初值,相當(dāng)于清零a2: jmp begi中斷程序:irq7:cakk
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 事業(yè)單位臨時(shí)聘用人員合同
- 內(nèi)外墻抹灰勞務(wù)合同書
- 購(gòu)房合同定金協(xié)議書
- 三農(nóng)村電商三農(nóng)村創(chuàng)新創(chuàng)業(yè)支持方案
- 2025年寧波貨運(yùn)從業(yè)資格證考試模擬考試
- 2025年陽(yáng)泉貨運(yùn)車從業(yè)考試題
- 小學(xué)二年級(jí)數(shù)學(xué)下冊(cè)口算題人教版
- 電瓶車抵押給個(gè)人合同(2篇)
- 電機(jī)員工合同(2篇)
- 市貫徹落實(shí)第輪省生態(tài)環(huán)境保護(hù)督察報(bào)告整改方案
- 2024年中國(guó)黃油行業(yè)供需態(tài)勢(shì)及進(jìn)出口狀況分析
- 永磁直流(汽車)電機(jī)計(jì)算程序
- 中學(xué)學(xué)校2024-2025學(xué)年教師發(fā)展中心工作計(jì)劃
- 小班期末家長(zhǎng)會(huì)-雙向奔赴 共育花開【課件】
- 2024年江西省高考物理試卷(含答案解析)
- 頸部瘢痕攣縮畸形治療
- 貴州省貴陽(yáng)市2023-2024學(xué)年五年級(jí)上學(xué)期語(yǔ)文期末試卷(含答案)
- 規(guī)劃課題申報(bào)范例:俄羅斯教育改革研究(附可修改技術(shù)路線圖)
- 運(yùn)輸企業(yè)安全事故報(bào)告調(diào)查處理制度(簡(jiǎn)單版5篇)
- 端午做香囊課件
- 墨香里的年味兒(2023年遼寧沈陽(yáng)中考語(yǔ)文試卷記敘文閱讀題及答案)
評(píng)論
0/150
提交評(píng)論