微機(jī)課程設(shè)計(jì)-電子秒表_第1頁(yè)
微機(jī)課程設(shè)計(jì)-電子秒表_第2頁(yè)
微機(jī)課程設(shè)計(jì)-電子秒表_第3頁(yè)
微機(jī)課程設(shè)計(jì)-電子秒表_第4頁(yè)
微機(jī)課程設(shè)計(jì)-電子秒表_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

微機(jī)課程設(shè)計(jì)--電子秒表第1章總體設(shè)計(jì)方案1.1課程設(shè)計(jì)的內(nèi)容和要求一、課程設(shè)計(jì)內(nèi)容:設(shè)計(jì)一個(gè)帶時(shí)間顯示的電子秒表,具體內(nèi)容如下:1.電子秒表的初始狀態(tài)為零,分別顯示分、秒、毫秒;2.設(shè)計(jì)一個(gè)按鈕,按第一次開(kāi)始計(jì)時(shí),按第二次計(jì)時(shí)暫停,顯示當(dāng)前記錄的時(shí)間,按第三次計(jì)時(shí)停止,回到初始態(tài);3.有時(shí)間顯示的功能,當(dāng)不用電子秒表的功能時(shí),顯示當(dāng)先的時(shí)間,分別為時(shí)、分、秒形式。二、課程設(shè)計(jì)要求:1.獨(dú)立完成課程設(shè)計(jì)任務(wù);2.通過(guò)老師當(dāng)場(chǎng)驗(yàn)收;3.交出完整的課程設(shè)計(jì)報(bào)告。1.2設(shè)計(jì)原理根據(jù)課程設(shè)計(jì)任務(wù)書的內(nèi)容與要求,要設(shè)計(jì)一個(gè)帶時(shí)間顯示的電子秒表,設(shè)計(jì)一個(gè)按鈕帶有計(jì)時(shí)開(kāi)始、計(jì)時(shí)暫停、計(jì)時(shí)清零功能,還要可以進(jìn)行時(shí)鐘顯示。在本次設(shè)計(jì)中主要使用了8253定時(shí)/計(jì)數(shù)器芯片、8259A中斷控制芯片以及8279鍵盤/顯示芯片來(lái)完成電子秒表的計(jì)時(shí)過(guò)程和時(shí)鐘顯示過(guò)程的模擬。程序開(kāi)始時(shí)掃描鍵盤判斷是否按鍵,如有則讀出相應(yīng)的控制鍵,來(lái)決定做什么操作,例如開(kāi)始計(jì)時(shí)、暫停計(jì)時(shí)、停止計(jì)時(shí)、時(shí)鐘顯示等等。利用8253定時(shí)/計(jì)數(shù)器芯片實(shí)現(xiàn)分頻功能,使其產(chǎn)生100HZ(10毫秒)的方波,使計(jì)時(shí)周期為10ms;利用8259A中斷控制芯片產(chǎn)生中斷響應(yīng),通過(guò)8253控制8259每10毫秒產(chǎn)生一次中斷,使秒表加1,實(shí)現(xiàn)計(jì)時(shí)功能;利用8279鍵盤/顯示芯片在數(shù)碼管上進(jìn)行顯示,將秒表的計(jì)時(shí)過(guò)程、時(shí)鐘的當(dāng)前時(shí)間顯示在數(shù)碼管上。1.3設(shè)計(jì)思路采用匯編語(yǔ)言程序結(jié)合硬件電路設(shè)計(jì)方法,利用AEDK實(shí)驗(yàn)箱上已有芯片來(lái)實(shí)現(xiàn)一個(gè)帶時(shí)間顯示的電子秒表(包括開(kāi)始計(jì)時(shí)、暫停計(jì)時(shí)、停止計(jì)時(shí)、時(shí)鐘顯示等等)。(1)提出方案首先,實(shí)現(xiàn)電子秒表的計(jì)時(shí)功能;其次,通過(guò)一個(gè)按鈕實(shí)現(xiàn)電子秒表的開(kāi)始計(jì)時(shí)、暫停計(jì)時(shí)、停止計(jì)時(shí)的功能;再次,通過(guò)一個(gè)按鈕實(shí)現(xiàn)秒表顯示和時(shí)鐘顯示切換的功能;最后,要實(shí)現(xiàn)秒表的運(yùn)行和停止與時(shí)鐘運(yùn)行的互不影響。(2)方案論證為了完成電子秒表的計(jì)時(shí)功能,可以應(yīng)用8253定時(shí)/計(jì)數(shù)器芯片,設(shè)定計(jì)數(shù)器0工作在模式3,由于本實(shí)驗(yàn)要求計(jì)時(shí)周期為10毫秒,故可以利用8253實(shí)現(xiàn)分頻功能,使其產(chǎn)生100HZ的方波。并且利用8259產(chǎn)生中斷響應(yīng)每10毫秒產(chǎn)生一次中斷,使計(jì)數(shù)器加1,實(shí)現(xiàn)秒表計(jì)數(shù)。并當(dāng)秒表達(dá)到最大值時(shí),即59分59秒990毫秒,將秒表重新初始化;當(dāng)時(shí)鐘達(dá)到最大值時(shí),即23時(shí)59分59秒,將時(shí)鐘重新初始化為通過(guò)一個(gè)按鈕實(shí)現(xiàn)電子秒表的開(kāi)始計(jì)時(shí)、暫停計(jì)時(shí)、停止計(jì)時(shí)的功能,可以利用8279鍵盤/顯示芯片來(lái)讀入鍵值,再設(shè)置num來(lái)計(jì)數(shù),以便來(lái)區(qū)分開(kāi)始計(jì)時(shí)、暫停計(jì)時(shí)、停止計(jì)時(shí)。為通過(guò)一個(gè)按鈕實(shí)現(xiàn)秒表顯示和時(shí)鐘顯示切換的功能,可以利用8279鍵盤/顯示芯片來(lái)讀入鍵值,再設(shè)置n來(lái)區(qū)分是秒表顯示、還是時(shí)鐘顯示。為實(shí)現(xiàn)秒表的運(yùn)行和停止與時(shí)鐘運(yùn)行的互不影響,設(shè)置flag來(lái)區(qū)分是秒表運(yùn)行、還是秒表停止,在中斷中判斷秒表是否運(yùn)行。1.4實(shí)驗(yàn)環(huán)境·硬件環(huán)境:AEDK實(shí)驗(yàn)箱,PC機(jī)?!ぼ浖h(huán)境:LCA88ET應(yīng)用軟件。第2章詳細(xì)設(shè)計(jì)方案2.1主程序設(shè)計(jì)主程序流程圖如圖2.1所示。圖2.1主程序流程圖2.2功能模塊的設(shè)計(jì)與實(shí)現(xiàn)對(duì)8253、8259、8279各個(gè)芯片進(jìn)行初始化,并將中斷服務(wù)程序裝入中斷向量表。利用8253定時(shí)/計(jì)數(shù)器芯片產(chǎn)生100HZ的方波,使8259每10毫秒產(chǎn)生一次中斷,使秒表加1,實(shí)現(xiàn)計(jì)時(shí)功能利用8279的鍵盤輸入功能輸入控制鍵,利用顯示功能,秒表或時(shí)鐘顯示在七段數(shù)碼管上。(1)芯片初始化模塊的設(shè)計(jì)與實(shí)現(xiàn)對(duì)8253、8259、8279等芯片進(jìn)行初始化,并將中斷服務(wù)程序裝入中斷向量表。流程圖如下所示:圖2.2芯片初始化流程圖(2)功能實(shí)現(xiàn)模塊的設(shè)計(jì)與實(shí)現(xiàn)利用8253定時(shí)/計(jì)數(shù)器芯片產(chǎn)生100HZ的方波,使8259每10毫秒產(chǎn)生一次中斷,使秒表加1,實(shí)現(xiàn)計(jì)時(shí)功能利用8279的鍵盤輸入功能輸入控制鍵,利用顯示功能,秒表或時(shí)鐘顯示在七段數(shù)碼管上。程序中所需定義的內(nèi)存單元含義如下:disbufm:秒表的時(shí)間值;disbufh:時(shí)鐘的時(shí)間值;tab:存放能在數(shù)碼管上顯示0-9的十六進(jìn)制碼;flag:標(biāo)志是計(jì)時(shí)運(yùn)行(0)還是計(jì)時(shí)停止(1);flag1:標(biāo)志是秒表未達(dá)最大值(0)還是秒表達(dá)最大值(1);flag2:標(biāo)志是時(shí)鐘未達(dá)最大值(0)還是時(shí)鐘達(dá)最大值(1);n:標(biāo)志是秒表顯示(0)還是時(shí)鐘顯示(1);num:標(biāo)志是第幾次按下A鍵。程序中所需的秒表的各個(gè)功能鍵定義如下:A:,按第一次時(shí)秒表開(kāi)始計(jì)時(shí),按第二次時(shí)秒表計(jì)時(shí)暫停按第三次時(shí)秒表計(jì)時(shí)停止,回到初始態(tài);B:切換鍵,進(jìn)行秒表顯示和時(shí)鐘顯示的切換。(1)清屏子程序的實(shí)現(xiàn)在清屏?xí)r所顯示的狀態(tài)與秒表在初始狀態(tài)一樣,即00-00-00,數(shù)碼管顯示如圖2.3所示。圖2.3清屏圖在清屏子程序中,修改disbufm或disbufh中的值,使分、秒、十毫秒或時(shí)、分、秒每位都為零。秒表清屏子程序:begin1:;秒表初始化movbyteptr[di],0movbyteptr[di+1],0movbyteptr[di+3],0movbyteptr[di+4],0movbyteptr[di+6],0movbyteptr[di+7],0ret(2)中斷服務(wù)子程序在中斷服務(wù)子程序中實(shí)現(xiàn)了秒表的計(jì)時(shí)和顯示與時(shí)鐘的計(jì)時(shí)和顯示功能,每當(dāng)8259進(jìn)入中斷后,都要修改disbufh或disbufm和disbufh中所存的時(shí)間信息,再對(duì)disbufh或disbufm中每一位的值與最大值進(jìn)行比較,若達(dá)到最大值(秒表達(dá)到最大值59-59-99,時(shí)鐘達(dá)到最大值23-59-59)將disbufh或disbufm進(jìn)行初始化,最后要通過(guò)8279將disbufm或disbufh中所存的時(shí)間信息顯示一遍。2.3程序連線圖程序連線圖如圖2.4所示。307200HZ200-207VCC210-217注:8279鍵盤/顯示芯片自帶220-227有小鍵盤及8位數(shù)碼管圖2.4程序連線圖第3章結(jié)果測(cè)試及分析3.1結(jié)果測(cè)試測(cè)試結(jié)果如下:(1)時(shí)鐘以時(shí)、分、秒形式顯示時(shí)間,顯示時(shí)間如XX-XX-XX;(2)電子秒表的初始狀態(tài)為零,分別顯示分、秒、10毫秒,顯示00-00-00;(3)按A鍵開(kāi)始秒表計(jì)時(shí),顯示時(shí)間如XX-XX-XX;(4)再按一次A鍵秒表暫停計(jì)時(shí),顯示秒表暫停時(shí)的時(shí)間;(5)第三次按A鍵時(shí)秒表計(jì)時(shí)器清零,顯示00-00-00;(6)按B鍵時(shí)實(shí)現(xiàn)秒表顯示和時(shí)鐘顯示的切換。3.2結(jié)果分析對(duì)于上述的運(yùn)行結(jié)果和操作過(guò)程,已經(jīng)達(dá)到了課程設(shè)計(jì)任務(wù)書中的要求。秒表的初始狀態(tài)為零,分別顯示分、秒、10毫秒;按鈕A,按第一次開(kāi)始計(jì)時(shí),按第二次計(jì)時(shí)暫停,顯示當(dāng)前記錄的時(shí)間,按第三次計(jì)時(shí)停止,回到初始態(tài);按鈕B,實(shí)現(xiàn)秒表顯示和時(shí)鐘顯示的切換,當(dāng)不用電子秒表的功能時(shí),可以顯示當(dāng)先的時(shí)間,分別為時(shí)、分、秒形式。參考文獻(xiàn)[1]龔尚福.微機(jī)原理與接口技術(shù)[M]西安:西安電子科技大學(xué)出版社,2003[2]沈美明,溫冬嬋.IBM-PC匯編語(yǔ)言程序設(shè)計(jì)[M]北京:清華大學(xué)出版社,2001[3]張雪蘭.匯編語(yǔ)言程序設(shè)計(jì)[M]北京:清華大學(xué)出版社,2006[4]王愛(ài)英.計(jì)算機(jī)組成與設(shè)計(jì)[M]北京:教育出版社,2003[5]王忠民.微型計(jì)算機(jī)原理[M]西安:西安電子科技大學(xué)出版社,2003附錄codesegmentassumecs:codemain:jmpstartdisbufmdb0,0,0ah,0,0,0ah,0,0;秒表初值disbufhdb2,3,0ah,5,9,0ah,5,8,0,0;時(shí)鐘初值flagdb1flag1db0flag2db0numdb0ndb1start:movax,8100hmovds,axcli;關(guān)中斷calli8279calli8259calli8253calls1sti;開(kāi)中斷key:a:movdx,222h;是否有鍵讀入inal,dxandal,0fhjzamoval,40houtdx,almovdx,220hinal,dxcmpal,0ahjzstajmpchangesta:;startcmpnum,0jnzpaumovflag,0movnum,1jmpkeypau:;pausecmpnum,1jnzclemovflag,1movnum,2jmpkeycle:;clearmovdi,offsetdisbufmcallbegin1movnum,0jmpkeychange:;changecmpal,0bhjnzkeycmpn,0jzchange1movn,0jmpkeychange1:movn,1jmpkeyi8279:moval,0d2h;8279A初始化220-227movdx,222houtdx,almoval,0outdx,alreti8253:moval,36h;8253A初始化200-207movdx,203houtdx,almovax,0c00hmovdx,200houtdx,almoval,ahoutdx,alreti8259:moval,13h;8259A初始化210-217movdx,210houtdx,almoval,30hmovdx,211houtdx,almoval,03houtdx,almoval,0feh;中斷IR0outdx,alretbegin1:;秒表初始化movbyteptr[di],0movbyteptr[di+1],0movbyteptr[di+3],0movbyteptr[di+4],0movbyteptr[di+6],0movbyteptr[di+7],0retbegin2:;時(shí)鐘初始化movbyteptr[di],0movbyteptr[di+1],0movbyteptr[di+3],0movbyteptr[di+4],0movbyteptr[di+6],0movbyteptr[di+7],0movbyteptr[di+8],0movbyteptr[di+9],0rets1:;中斷向量的裝入pushdspushbxxorax,axmovds,axmovbx,30h*4movax,offsetintrmov[bx],axmovax,8100hmov[bx+2],axpopbxpopdsretintr:;中斷pushaxpushdipushdxmovsi,offsetdisbufmmovdi,offsetdisbufhcmpflag,0jnzr;秒表計(jì)時(shí)cmpbyteptr[si+7],9jzc1incbyteptr[si+7]jmprc1:movbyteptr[si+7],0cmpbyteptr[si+6],9jzc2incbyteptr[si+6]jmprc2:movbyteptr[si+6],0cmpbyteptr[si+4],9jzc3incbyteptr[si+4]jmprc3:movbyteptr[si+4],0cmpbyteptr[si+3],5jzc4incbyteptr[si+3]jmprc4:movbyteptr[si+3],0cmpbyteptr[si+1],9jzc5incbyteptr[si+1]jmprc5:movbyteptr[si+1],0incbyteptr[si];時(shí)鐘計(jì)時(shí)r:cmpbyteptr[di+9],9jzr1incbyteptr[di+9]jmpisendr1:movbyteptr[di+9],0cmpbyteptr[di+8],9jzr2incbyteptr[di+8]jmpisendr2:movbyteptr[di+8],0cmpbyteptr[di+7],9jzr3incbyteptr[di+7]jmpisendr3:movbyteptr[di+7],0cmpbyteptr[di+6],5jzr4incbyteptr[di+6]jmpisendr4:movbyteptr[di+6],0cmpbyteptr[di+4],9jzr5incbyteptr[di+4]jmpisendr5:movbyteptr[di+4],0cmpbyteptr[di+3],5jzr6incbyteptr[di+3]jmpisendr6:movbyteptr[di+3],0cmpbyteptr[di+1],9jzr7incbyteptr[di+1]jmpisendr7:movbyteptr[di+1],0incbyteptr[di]isend:cmpflag,0jnzisend1;秒表是否到最大值cmpbyteptr[si],5jnzdisplaycmpbyteptr[si+1],9jnzdisplaycmpbyteptr[si+3],5jnzdisplaycmpbyteptr[si+4],9jnzdisplaycmpbyteptr[si+6],9jnzdisplaycmpbyteptr[si+7],9jnzdisplaymovflag1,1;時(shí)鐘是否到最大值isend1:cmpbyteptr[di],2jnzdisplaycmpbyteptr[di+1],3jnzdisplaycmpbyteptr[di+3],5jnzdisplaycmpbyteptr[di+4],9jnzdisplaycmpbyteptr[di+6],5jnzdisplaycmpbyteptr[di+7],9jnzdisplaycmpbyteptr[di+8],9jnzdisplaycmpbyteptr[di+9],9jnzdisplaymovflag2,1display:;顯示movbx,offsettabcmpn,0jnzhmovsi,offsetdisbufmjmph1h:movsi,offsetdisbufhh1:addsi,7moval,90hmovdx,222houtdx,almovcx,8dis:moval,[si]xlatmovdx,2

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論