




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微機(jī)原理和接口技術(shù)課程設(shè)計(jì)報(bào)告電子鐘實(shí)驗(yàn)學(xué)院:計(jì)算機(jī)學(xué)院指導(dǎo)教師:馬學(xué)文實(shí)驗(yàn)任務(wù)及要求任務(wù):1、掌握綜合使用基本輸入輸出設(shè)備、通用接口芯片、專用接口芯片的方法;2、掌握實(shí)時(shí)處理程序的編制和調(diào)試方法。要求設(shè)計(jì)一個(gè)定時(shí)顯示裝置,用實(shí)驗(yàn)儀左側(cè)的六個(gè)LED數(shù)碼管顯示時(shí)間,時(shí)間顯示格式為24小時(shí)制。分秒值為59分55秒時(shí)開(kāi)始報(bào)時(shí),每秒鐘蜂鳴器鳴叫一聲,至V整點(diǎn)報(bào)時(shí)停止用小鍵盤(pán)控制置,鍵的定義參見(jiàn)上圖鍵值具體定義如下:G鍵(啟停鍵)一一程啟動(dòng);再次按下該鍵,暫停計(jì)時(shí),顯示當(dāng)前時(shí)間S鍵(設(shè)置鍵)二硬件連線按下S鍵后,為時(shí)鐘設(shè)置時(shí)、分、秒初始值鍵盤(pán)的控制、LED顯示模塊:采用74系列模塊控制鍵盤(pán)的行信號(hào)Q_0
2、Q_1Q_2Q_3分別和開(kāi)放的輸入信號(hào)Q0Q1Q2Q3相連,鍵盤(pán)的列信號(hào)P_0P_1P_2和開(kāi)放的輸出信號(hào)P0P1、P2相連。74芯片的片選信號(hào)CS1接地址譯碼信號(hào)340H,CS2接地址譯碼信號(hào)360HL時(shí)間的精確定時(shí):用8254定時(shí)器0產(chǎn)生25ms的中斷信號(hào);8254的片選CS連地址輸出端320H,A0,A1分別連地址總線A2,A3,GATE0連+5V,CLK0連74LS393分頻輸出的47K輸出端,OUT0連接到8259的IRQ0整點(diǎn)報(bào)時(shí)控制:由8255模塊控制;PC0直接和蜂鳴器相連,CS_4連接到實(shí)驗(yàn)儀中部的地址輸出端CS_4中斷處理模塊:由8259控制8259的片選CS-1連地址輸出
3、300H,INT1連總線輸入INTR,8259模塊的INT-A連總線的INTA,8259的SP/1連+5V,8259的IRQ0連接到8254的OUT0。三、程序流程圖主程序初始化各階段寄存器及相關(guān)變量I初始化8254、8259、8255芯片設(shè)置中斷向量、開(kāi)放8259中斷屏蔽開(kāi)放處理器中斷仃掃描鍵盤(pán)G鍵G鍵其他鍵Stop置0Stop置0N調(diào)用鍵盤(pán)中程時(shí)分秒值務(wù)程刖、亠判斷時(shí)間是否不小于59分55秒報(bào)時(shí)G鍵?調(diào)用啟停子程序S鍵?Y調(diào)用設(shè)置時(shí)間子程序COUNT力口1COUNT=40?YV修改時(shí)間,調(diào)用ADDONE子程序COUNT清0彷顯示時(shí)間,調(diào)用顯示時(shí)間子程序結(jié)束中斷(發(fā)EOI命令)恢復(fù)現(xiàn)場(chǎng)中斷返
4、回中斷返回四、實(shí)驗(yàn)源代碼.486pDATASEGMENTAT0USE16ORG1000HHOURDW?MINDW?SECDW?SLLDB?COUNTDB?DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATAORG1500HBEG:JMPSTARTDB;行列編碼TABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H;0F的共陰極七段譯碼表00H表示不顯示任何東西KEYCOD0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H值KEYVA
5、LDB0,1,2,3,4,5,6,7,8,9,0AH,0BH;所有鍵的鍵面值PORT1EQU340H;數(shù)碼管段選端口PORT2EQU360H;數(shù)碼管位選端口,鍵盤(pán)矩陣的行列端口RT:MOVEAX,60000000HMOVCR0,EAXMOVAX,DATAMOVDS,AXMOVHOUR,0203H;小時(shí)分鐘以及秒的初始化MOVMIN,0509HMOVSEC,0502HLEABX,TABMOVSLL,0;開(kāi)始暫停標(biāo)志位置0MOVCOUNT,0;中斷次數(shù)計(jì)數(shù)初始值為0;8255初始化,用于產(chǎn)生報(bào)時(shí)的脈沖MOVEAX,80808080H;控制字MOVDX,20CH;后面的是4個(gè)8255的控制端口20C
6、-20F(這個(gè)地址由實(shí)驗(yàn)臺(tái)決OUTDX,EAX;初始化8255,A、B、C口均為方式0輸出MOVDX,20BHMOVAL,0FFHOUTDX,AL定);8254初始化,用于產(chǎn)生周期為25ms的中斷MOVAL,00110110B制MOVDX,32cHOUTDX,ALMOVDX,320HMOVAX,1175OUTDX,ALMOVAL,AHOUTDX,AL;8259初始化CLIMOVDX,300HMOVAL,00010011BOUTDX,ALMOVDX,308HMOVAL,08HOUTDX,ALMOVAL,00000001BOUTDX,ALMOVAL,0FEHOUTDX,ALXORAX,AXMOVE
7、S,AX;計(jì)數(shù)器0,先低后高,方式三,二進(jìn);寫(xiě)往控制口;計(jì)數(shù)器0寫(xiě)初值:47KHz*25ms:關(guān)中斷;ICW1;ICW2;IR0中斷類(lèi)型號(hào)為08H;ICW4;IR0開(kāi)屏蔽;裝載中斷向量;開(kāi)中斷;中斷服務(wù)程序;比較當(dāng)前時(shí)間是否在59分55秒00分00秒之;蜂鳴器低有效,報(bào)時(shí)MOVDI,08H*4MOVAX,OFFSETINTSRMOVES:DI,AXMOVAX,SEGINTSRMOVES:DI+2,AXSTIJMP$INTSRPROCCMPMIN,0509H間JLNEXT1CMPSEC,0505HJLNEXT1MOVDX,20BHMOVAL,00HOUTDX,ALJMPNEXT2NEXT1:CM
8、PMIN,0JNENEXT3CMPSEC,0JNENEXT3MOVDX,20BHMOVAL,00HOUTDX,ALJMPNEXT2NEXT3:MOVDX,20BHMOVAL,0FFHOUTDX,ALNEXT2:CMPCOUNT,20JLENEXT4MOVDX,20BHMOVAL,0FFHOUTDX,ALNEXT4:CMPSLL,0;蜂鳴器低有效,報(bào)時(shí);用8255產(chǎn)生0.5ms的蜂鳴JZLOBCALLTSTARTLOB:CALLKEYCHECKCMPAL,0AHJNZNEXT5CALLTSTARTJMPNEXT6NEXT5:CMPAL,0BHJNZNEXT6CALLSETTIMENEXT6:IN
9、CCOUNTCMPCOUNT,40JBNEXT7CALLADDONEMOVCOUNT,0NEXT7:CALLSHOWMOVAL,20HMOVDX,300HOUTDX,ALIRETINTSRENDPTSTARTPROC;檢測(cè)有無(wú)鍵按下;啟停鍵按下,調(diào)用啟停程序;設(shè)置鍵按下,調(diào)用設(shè)置時(shí)間程序;當(dāng)COUNT直為40時(shí),加一秒,之后置0;25ms*40=1s;顯示時(shí)間;發(fā)EOI命令,結(jié)束中斷;控制時(shí)間暫停和開(kāi)始。CMPSLL,0JNZR1DECSLLR1:CALLKEYCHECKCMPAL,0AHJZR2CALLSHOWJMPR1R2:INCSLLRETTSTARTENDPADDONEPROCMOVA
10、X,SECCMPAL,9JEN1;加1秒子程序;當(dāng)前秒個(gè)位為9,加1后變0,十位加1INCALN1:N2:N3:MOVSEC,AXJMPN6INCAHMOVAL,0CMPAH,6JEN2MOVSEC,AXJMPN6MOVAX,0MOVSEC,AXMOVAX,MINCMPAL,9JEN3INCALMOVJMPMIN,AXN6AHAL,0CMPAH,6JEN4;十位加1后為6,則秒變?yōu)?0,分鐘個(gè)位加1;當(dāng)前分鐘個(gè)位為9,加1后變0,十位加1INCMOV;十位加1后為6,則分鐘變?yōu)?0,小時(shí)個(gè)位加1MOVMIN,AXJMPN6N4:MOVMOVMOVINCAX,0MIN,AXAX,HOURALN5
11、:CMPJEMOVJMPMOVMOVAX,0204HN5HOUR,AXN6AX,0HOUR,AX;小時(shí)加1后和24比,相等,則變?yōu)?N6:RETADDONEENDP;設(shè)置時(shí)間子程序SETTIMEPROCLEABX,TABMOVHOUR,0MOVMIN,0MOVSEC,0NOPNOPL1:CALLKEYCHECK;調(diào)用KEYCHECK,無(wú)鍵按下時(shí),AL中值為0CHCALLDELAYCMPAL,0CHJNZL2JMPL1L2:CMPAL,02HJGL1;設(shè)置小時(shí)十位時(shí),將其他各位數(shù)碼管滅掉及對(duì)應(yīng)的七段譯碼表0CHMOVAH,ALMOVBYTEPTRHOUR+1,ALMOVBYTEPTRHOUR,0
12、CHMOVMIN,0C0CHMOVSEC,0C0CHL3:CALLSHOWCALLKEYCHECK;設(shè)置小時(shí)的個(gè)位CALLDELAYCMPAL,0CHJZL3MOVAH,BYTEPTRHOUR+1L4:CMPAX,0204HJGEL1MOVHOUR,AXL5:CALLSHOWCALLKEYCHECK;設(shè)置分鐘的十位CALLDELAYCMPAL,0CHJZL5L6:CMPAL,06HJGEL1MOVAH,ALMOVBYTEPTRMIN+1,ALL7:CALLSHOWCALLKEYCHECK;設(shè)置分鐘的個(gè)位CALLDELAYCMPAL,0CHJZL7MOVAH,BYTEPTRMIN+1L8:CMP
13、AX,0509HJGL1MOVMIN,AXL9:CALLSHOWCALLKEYCHECK;設(shè)置秒的十位CALLDELAYCMPAL,0CHJZL9L10:CMPAL,06HJGEL1MOVAH,ALMOVBYTEPTRSEC+1,ALL11:CALLSHOWCALLKEYCHECK;設(shè)置秒的個(gè)位CALLDELAYCMPAL,0CHJZL11MOVAH,BYTEPTRSEC+1L12:CMPAX,0509HJGL1MOVSEC,AXL13:CALLSHOWCALLKEYCHECK;再次按鍵,CALLDELAYCMPAL,0CHJZL13SETTIMERETENDPKEYCHECKPROC啟動(dòng)計(jì)時(shí)
14、;判斷有無(wú)鍵按下子程序PUSHBXCALLCLEARMOVDX,PORT2INAL,DXANDAL,0FHCMPAL,0FHJZEXIT;有按鍵按下,延時(shí)消抖NOPNOP;再次確認(rèn)是否有鍵按下INAL,DXANDAL,0FHCMPAL,0FHEXITJZ;開(kāi)始對(duì)每一列進(jìn)行逐行掃描MOVCX,3BL,0FEHNEXT:MOVAL,BLMOVMOVDX,PORT2OUTDX,ALNOPNOPINAL,DXANDAL,0FHCMPAL,0FHJNZKEYROLBL,1LOOPNEXTJMPEXITKEY:SHLBL,4OR息AL,BL;形成一個(gè)字節(jié)的鍵碼信息存入AL,高4位為列信息低4位為行信LEA
15、SI,KEYCODLEADI,KEYVALMOVCX,12NEXT11:CMPAL,SIJZFINDINCSIINCDILOOPNEXT11JMPEXITFIND:MOVAL,DI;AL中內(nèi)容為所按鍵的鍵面值PUSHNOPAXNOPWAIT1:INAL,DX;判斷按鍵是否已釋放,若無(wú)則等待ANDAL,0FHCMPAL,0FHJNZWAIT1POPAXJMPEXIT2EXIT:MOVEXIT2:NOPAL,0CHPOPRETBXKEYCHECKENDPSHOWPROC;顯示時(shí)間MOVAX,HOURXLATMOVDX,PORT1;段選輸出數(shù)據(jù)OUTDX,ALMOVDX,PORT2;位選輸出小時(shí)的個(gè)
16、位MOVAL,0C2HOUTDX,ALCALLDELAYCALLCLEARMOVAL,AHXLATMOVDX,PORT1OUTDX,ALMOVDX,PORT2MOVAL,0C1HOUTDX,ALCALLDELAYCALLCLEARMOVAX,MINXLATMOVDX,PORT1OUTDX,ALMOVDX,PORT2MOVAL,0C8HOUTDX,ALCALLDELAYCALLCLEARMOVAL,AHXLATMOVDX,PORT1OUTDX,ALMOVDX,PORT2MOVAL,0C4HOUTDX,ALCALLDELAYCALLCLEARMOVAX,SECXLATMOVDX,PORT1OUTD
17、X,ALMOVDX,PORT2MOVAL,0E0hOUTDX,ALCALLDELAYCALLCLEARMOVAL,AHXLATMOVDX,PORT1OUTDX,AL;段選輸出數(shù)據(jù);位選輸出小時(shí)的十位;段選輸出數(shù)據(jù);位選輸出分鐘的個(gè)位;段選輸出數(shù)據(jù);位選輸出分鐘的十位;段選輸出數(shù)據(jù);位選輸出秒的個(gè)位;段選輸出數(shù)據(jù)MOVDX,PORT2MOVAL,0D0HOUTDX,ALCALLDELAYCALLCLEARRETSHOWENDPDELAYPROCPUSHCXMOVCX,1000LOOP$POPCXRETDELAYENDPCLEARPROCMOVAL,00HMOVDX,PORT1OUTDX,ALMOVDX,PORT2OUTDX,ALNOPNOPRETCLE
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 兒童文學(xué)經(jīng)典作品選征文
- 變速器軸相關(guān)行業(yè)投資規(guī)劃報(bào)告范本
- 疾控中心預(yù)防艾滋病教育
- 多功能輕質(zhì)復(fù)合板相關(guān)行業(yè)投資方案
- 企業(yè)發(fā)展戰(zhàn)略規(guī)劃演講材料
- 三國(guó)演義的英勇故事解讀
- 有機(jī)磷酸酯類(lèi)中毒解毒藥行業(yè)相關(guān)投資計(jì)劃提議范本
- 貨物運(yùn)輸合作協(xié)議合同
- 英語(yǔ)名詞性從句的種類(lèi)與功能解析:大學(xué)基礎(chǔ)英語(yǔ)教學(xué)設(shè)計(jì)
- 機(jī)器人銷(xiāo)售合同
- 常見(jiàn)意外傷害的處理課件
- 第八章運(yùn)動(dòng)和力單元試卷 (含答案) 2024-2025學(xué)年人教版物理八年級(jí)下
- 2025年中央一號(hào)文件高頻重點(diǎn)考試題庫(kù)150題(含答案解析)
- 風(fēng)電項(xiàng)目電網(wǎng)接入系統(tǒng)可行性研究報(bào)告編制服務(wù)方案投標(biāo)文件(技術(shù)方案)
- 2024人教版新教材初中地理七年級(jí)下冊(cè)內(nèi)容解讀課件(深度)
- 2025年遼寧醫(yī)藥職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2023-2028年中國(guó)油畫(huà)行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及投資規(guī)劃建議報(bào)告
- 100以內(nèi)加減法練習(xí)100題(50套)-可直接打印
- 2024年干式電力電容器項(xiàng)目可行性研究報(bào)告
- 河南12系列建筑設(shè)計(jì)圖集一(12YJ1)
- 2025年村三會(huì)一課工作計(jì)劃表
評(píng)論
0/150
提交評(píng)論