九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類(lèi) > DOC文檔下載  

微機(jī)原理及接口技術(shù) 實(shí)驗(yàn)指導(dǎo)

  • 資源ID:43589717       資源大?。?span id="24d9guoke414" class="font-tahoma">2.39MB        全文頁(yè)數(shù):44頁(yè)
  • 資源格式: DOC        下載積分:30積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要30積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類(lèi)文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

微機(jī)原理及接口技術(shù) 實(shí)驗(yàn)指導(dǎo)

微機(jī)原理及接口技術(shù)實(shí) 驗(yàn) 指 導(dǎo) 書(shū)楊霞 周林英 編長(zhǎng)安大學(xué)電子與控制工程學(xué)院2009年9月44前 言本實(shí)驗(yàn)指導(dǎo)是為適應(yīng)各大、中專(zhuān)院校開(kāi)設(shè)微機(jī)原理及應(yīng)用方面的課程需做大量軟硬件實(shí)驗(yàn)的需要而編寫(xiě)的,供學(xué)生編程用。完成本實(shí)驗(yàn)指導(dǎo)中的實(shí)驗(yàn),可使學(xué)生基本掌握8086/8088的結(jié)構(gòu)原理、接口技術(shù)、程序設(shè)計(jì)技巧。手冊(cè)中詳細(xì)敘述了各實(shí)驗(yàn)的目的、內(nèi)容,列出了接線圖、程序框圖和實(shí)驗(yàn)步驟。主要學(xué)習(xí)內(nèi)容為80X86語(yǔ)言實(shí)驗(yàn)環(huán)境配置、匯編源語(yǔ)言格式、輸出字符、循環(huán)結(jié)構(gòu)、子程序調(diào)用,以及加減乘除等指令操作、通用接口芯片的接口編程與使用。所有實(shí)驗(yàn)都是相互獨(dú)立的,次序上也沒(méi)有固定的先后關(guān)系,在使用本書(shū)進(jìn)行教學(xué)時(shí),教師可根據(jù)教學(xué)要求,選擇相應(yīng)實(shí)驗(yàn)。學(xué)習(xí)結(jié)束后,要求學(xué)生能夠獨(dú)立編寫(xiě)出綜合加減乘除等指令,以及循環(huán)結(jié)構(gòu)、子程序調(diào)用等程序控制程序、看懂一般接口芯片電路圖。目 錄實(shí)驗(yàn)一 清零程序4實(shí)驗(yàn)二 拆字程序6實(shí)驗(yàn)三 數(shù)據(jù)區(qū)移動(dòng)8實(shí)驗(yàn)四 多分支程序設(shè)計(jì)10實(shí)驗(yàn)五 多字節(jié)減法運(yùn)算13實(shí)驗(yàn)六 顯示程序16實(shí)驗(yàn)七 8251串口實(shí)驗(yàn)25實(shí)驗(yàn)八 步進(jìn)電機(jī)控制29附錄一 匯編語(yǔ)言的存儲(chǔ)模型36附錄二 8279鍵值顯示程序37實(shí)驗(yàn)一 清零程序一、實(shí)驗(yàn)?zāi)康?掌握8088匯編語(yǔ)言程序設(shè)計(jì)和調(diào)試方法。二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容 把RAM區(qū)內(nèi)4000H-40FFH單元的內(nèi)容清零 。四、程序框圖五、源程序清單.MODEL TINY.STACK 100.DATA.CODEORG 0100HSTART:MOV BX,4000HMOV AX,0000HMOV CX,80HL1: MOV BX,AXINC BXINC BXLOOP L1JMP $END START六、實(shí)驗(yàn)步驟 手動(dòng)修改RAM區(qū)內(nèi)4000H-40FFH的內(nèi)容,連續(xù)或單步方式運(yùn)行程序,檢查4000-40FFH內(nèi)容 執(zhí)行程序前后的變化。七、思考1、把4000H-40FFH中的內(nèi)容改成FF,如何修改程序。2、把4000H-40FFH中的內(nèi)容改成00FF,如何修改程序。實(shí)驗(yàn)二 拆字程序一、實(shí)驗(yàn)?zāi)康恼莆諈R編語(yǔ)言設(shè)計(jì)和調(diào)試方法。 二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容 把4000H單元的內(nèi)容拆開(kāi),高位送4001H低位,低位送4002H低位,4001H、4002H 的高位清零,一般本程序用于把數(shù)據(jù)送顯示緩沖區(qū)時(shí)用。 四、程序框圖五、源程序.MODEL TINY.STACK.DATA.CODESTART:MOV BX,4000HMOV AL,BXMOV AH,ALMOV CL,4SHR AH,CLINC BXMOV BX,AHAND AL,0FHINC BXMOV BX,ALJMP $六、實(shí)驗(yàn)步驟 手動(dòng)修改4000H的內(nèi)容,用連續(xù)或單步方式運(yùn)行程序,檢查4000H-4002H中內(nèi)容變化情況。七、思考1.如何用斷點(diǎn)方式調(diào)試本程序。2.把4000H、4001H單元低位的內(nèi)容合成一字送4002H單元。實(shí)驗(yàn)三 數(shù)據(jù)區(qū)移動(dòng)一、實(shí)驗(yàn)?zāi)康恼莆誖AM中的數(shù)據(jù)操作。二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容把4100H源RAM區(qū)首址內(nèi)的16字節(jié)數(shù)據(jù)傳送到4200H目標(biāo)RAM區(qū)。四、設(shè)計(jì)思想 程序要求把內(nèi)存中某一數(shù)據(jù)區(qū)(稱(chēng)為源數(shù)據(jù)塊)傳送到另一存儲(chǔ)區(qū)(稱(chēng)為目的數(shù)據(jù)塊)。源數(shù)據(jù)塊和目的數(shù)據(jù)塊在存儲(chǔ)器中可能有三種情況,如下圖: 對(duì)于兩個(gè)數(shù)據(jù)塊分離的情況,如圖(a),數(shù)據(jù)的傳送從數(shù)據(jù)塊的首址開(kāi)始,或者從數(shù)據(jù)塊的末址開(kāi)始均可。但對(duì)于有部分重疊的情況,則要加以分析,否則重疊部分會(huì)因“搬移”而遭破壞。 可以得出以下結(jié)論:當(dāng)源數(shù)據(jù)首址目的塊首址時(shí),從數(shù)據(jù)塊首址開(kāi)始傳送數(shù)據(jù)。 當(dāng)源數(shù)據(jù)塊首址目的塊首址時(shí),從數(shù)據(jù)塊末地址開(kāi)始傳送數(shù)據(jù)。五、程序框圖六、源程序清單 .MODEL TINY.STACK.DATA.CODEORG 0100HSTART0: MOV CX,0010HMOV SI,4100HMOV DI,4200HCMP SI,DIJA A42ADD SI,CXADD DI,CXA41: DEC SI DEC DIMOV AL,SIMOV DI,ALLOOP A41 JMP $A42: MOV AL,SIMOV DI,ALINC SIINC DILOOP A42JMP $END START0七、實(shí)驗(yàn)步驟 調(diào)試運(yùn)行3060程序,檢查4100-410FH中內(nèi)容是否和4200-420FH中內(nèi)容完全一致。 八、思考1.把4200H源RAM區(qū)首址內(nèi)的16字節(jié)數(shù)據(jù)傳送到4100H目標(biāo)RAM區(qū)。2.把4100H源RAM區(qū)首址內(nèi)的16字節(jié)數(shù)據(jù)傳送到410AH目標(biāo)RAM區(qū)。實(shí)驗(yàn)四 多分支程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?掌握匯編語(yǔ)言的編程,熟悉程序散轉(zhuǎn)的設(shè)計(jì)方法。二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容編寫(xiě)程序,根據(jù)接收到的鍵值,作不同的處理。四、設(shè)計(jì)思想多分支結(jié)構(gòu)相當(dāng)于一個(gè)多路開(kāi)關(guān),在程序設(shè)計(jì)中通常是根據(jù)某寄存器或某單元的內(nèi)容進(jìn)行程序轉(zhuǎn)移。在設(shè)計(jì)多分支轉(zhuǎn)移程序時(shí),如果分支太多,則平均轉(zhuǎn)移速度太慢,本實(shí)驗(yàn)采用轉(zhuǎn)移地址表實(shí)現(xiàn)多分支轉(zhuǎn)移,可以提高平均轉(zhuǎn)移速度。 五、程序框圖六、實(shí)驗(yàn)步驟1、連線說(shuō)明:E5區(qū) :CLKB2區(qū):2ME5區(qū) :CSA3區(qū):CS5E5區(qū) :A0A3區(qū):A0E5區(qū) :A、B、C、DG5區(qū):A、B、C、D2、在G5區(qū)的鍵盤(pán)上輸入1位數(shù)3、使用各種手段調(diào)試程序3、結(jié)果顯示在G5區(qū)的數(shù)碼管上七、源程序清單;調(diào)用GetKeyB返回鍵值,根據(jù)鍵值執(zhí)行相應(yīng)的程序.MODELTINYEXTRNDisplay8:NEAR, GetKeyB:NEAR.STACK100.DATABUFFERDB8 DUP(?).CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXNOPSTART1:CALLGetKeyB;鍵值存放在AL中CMPAL,8JBSTART2XORAL,AL;大于7,作0處理START2:XORAH,AHMOVBX,AXSHLBX,1LEADI,Table_1JMPCS:DIBXTable_1: DWKey0, Key1, Key2, Key3, Key4, Key5, Key6, Key7Key0:MOVAL,1JMPKeyKey1:MOVAL,2JMPKeyKey2:MOVAL,3JMPKeyKey3:MOVAL,4JMPKeyKey4:MOVAL,5JMPKeyKey5:MOVAL,6JMPKeyKey6:MOVAL,7JMPKeyKey7:MOVAL,8JMPKeyKey:MOVCX,8LEADI,BUFFERREPSTOSBLEASI,BUFFERCALLDisplay8MOVCX,60000LOOP$;延時(shí)JMPSTART1ENDSTART實(shí)驗(yàn)五 多字節(jié)減法運(yùn)算一、實(shí)驗(yàn)?zāi)康?掌握BCD碼、補(bǔ)碼,熟悉多文件、多模塊匯編語(yǔ)言程序設(shè)計(jì)的方法。 二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容 從鍵盤(pán)上輸入4位被減數(shù)、減數(shù),實(shí)現(xiàn)雙字節(jié)BCD碼(四位數(shù))的減法,結(jié)果顯示在數(shù)碼管上;進(jìn)一步熟悉使用斷點(diǎn)、單步進(jìn)入、單步、運(yùn)行到光標(biāo)處、修改PC指針、全速運(yùn)行等各種調(diào)試手段;熟悉查看特殊功能寄存器、CS段、DS段存貯器的各種方法。四、程序框圖五、實(shí)驗(yàn)步驟1、連線說(shuō)明:E5區(qū) :CLKB2區(qū):2ME5區(qū) :CSA3區(qū):CS5E5區(qū) :A0A3區(qū):A0E5區(qū) :A、B、C、DG5區(qū):A、B、C、D2、在G5區(qū)的鍵盤(pán)上輸入4位被減數(shù)、減數(shù)3、結(jié)果顯示在G5區(qū)的數(shù)碼管上六、源程序清單.MODELTINYEXTRNDisplay8:NEAR, GetBCDKey:NEAREXTRNF1:BYTE.STACK100.DATABUFFERDB8 DUP(?)minuendDW1 DUP(?);被減數(shù)subtrahendDW1 DUP(?);減數(shù).CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXNOPMOVF1,0;先清除顯示,再接收鍵輸入START1:LEADI,minuendMOVCX,4;按鍵次數(shù)CALLGetBCDKey;得到雙字節(jié)十進(jìn)制數(shù)(被減數(shù))MOVF1,1;接收到第一個(gè)鍵,才清除顯示LEADI,subtrahendMOVCX,4;按鍵次數(shù)CALLGetBCDKey;得到雙字節(jié)十進(jìn)制數(shù)(減數(shù))MOVAX,minuendMOVBX,subtrahendMOVDL,10HCMPAX,BXJNBSTART2XCHGAX,BXMOVDL,11H;負(fù)數(shù)START2:SUBAL,BL;低位DASXCHGAL,AHSBBAL,BH;高位DASXCHGAL,AHCLDLEADI,BUFFER;存放顯示結(jié)果CALLB1toB2;低位MOVAL,AHCALLB1toB2;高位MOVAL,10H;最高三位消隱STOSBSTOSBSTOSBSTOSBLEASI,BUFFER+3MOVCX,3CALLBlackDisplay;將高位0消隱LEASI,BUFFERCALLDisplay8JMPSTART1;將一個(gè)字節(jié)壓縮BCD碼轉(zhuǎn)換成二個(gè)字節(jié)非壓縮BCD碼B1toB2PROCNEARPUSHAXANDAL,0FHSTOSBPOPAXANDAL,0F0HRORAL,4STOSBRETB1toB2ENDPBlackDisplayPROCNEAR;將高位0消隱BlackDisplay1:MOVAL,SICMPAL,0JNZExitMOVAL,10HMOVSI,ALDECSILOOPBlackDisplay1Exit:CLDMOVSI+1,DLRETBlackDisplayENDPENDSTART七、思考從鍵盤(pán)上輸入4位被加數(shù)、加數(shù),實(shí)現(xiàn)雙字節(jié)BCD碼(四位數(shù))的加法,結(jié)果顯示在數(shù)碼管上。實(shí)驗(yàn)六 顯示程序一、實(shí)驗(yàn)?zāi)康?1、熟悉8255的功能,理解LED顯示原理及控制方法;2、學(xué)會(huì)使用LED點(diǎn)陣液晶顯示字體和圖形;3、認(rèn)真預(yù)習(xí)本節(jié)實(shí)驗(yàn)內(nèi)容,可嘗試自行編寫(xiě)程序,做好實(shí)驗(yàn)準(zhǔn)備工作,填寫(xiě)實(shí)驗(yàn)報(bào)告。二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容1、編寫(xiě)程序,用8255的PA、PB口控制LED的位選和段選,(1)控制8位數(shù)碼管依次顯示0;(2)編寫(xiě)程序,控制8位數(shù)碼管依次顯示任意指定字符(0-F);(3)編寫(xiě)程序,控制8位數(shù)碼管同時(shí)顯示0、1、F;2、按圖連接線路,運(yùn)行程序,觀察實(shí)驗(yàn)結(jié)果。四、實(shí)驗(yàn)原理圖五、實(shí)驗(yàn)步驟1、主機(jī)連線說(shuō)明:B4區(qū):CS(8255)A3區(qū):CS1B4區(qū):A0、A1A3區(qū):A0、A1B4區(qū):JP56、JP53G5區(qū):JP 41、 JP 422、運(yùn)行程序,驗(yàn)證顯示結(jié)果。六:源程序(1) 控制8位數(shù)碼管依次顯示0;.MODELTINY.STACK100.DATAIO8255_ConEQU0F003H;CS3IO8255_AEQU0F000H;AIO8255_BEQU0F001H;BLED_TAB:DB03FH,06H,05BH,04FH,66H,6DH,7DH,07HDB07FH,6FH,77H,7CH,39H,05EH,79H,71H .CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVDX,IO8255_ConMOVAL,80H;方式0,A,B,C均為輸出OUTDX,ALMOVAL,0FEH;8255 PC輸出MOVCX,8GOON:MOVDX,IO8255_A;位選OUTDX,ALROLAL,1MOVAH,ALMOVDX,IO8255_BMOVAL,03FHOUTDX,ALMOVAL,AH;0FFH->8255 PACALLDelayJMPGOONDelayPROCNEARPUSHCXMOVCX,20000Delay1:LOOPDelay1POPCXRETENDPENDSTART (2) 編寫(xiě)程序,控制8位數(shù)碼管依次顯示任意指定字符(0-F);.MODELTINY.STACK100.MODELTINY.STACK100.DATAIO8255_ConEQU0F003H;CS3IO8255_AEQU0F000H;AIO8255_BEQU0F001H;BLED_TAB:DB03FH,06H,05BH,04FH,66H,6DH,7DH,07HDB07FH,6FH,77H,7CH,39H,05EH,79H,71H .CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVDX,IO8255_ConMOVAL,80H;方式0,A,B,C均為輸出OUTDX,ALMOVAL,0FEH;8255 PC輸出MOVCX,8GOON:MOVDX,IO8255_BMOVAL,05BHOUTDX,ALMOVAL,AHMOVDX,IO8255_A;位選OUTDX,ALROLAL,1MOVAH,AL;0FFH->8255 PACALLDelayJMPGOONDelayPROCNEARPUSHCXMOVCX,800Delay1:LOOPDelay1POPCXRETENDPENDSTART(3) 編寫(xiě)程序,控制8位數(shù)碼管同時(shí)顯示0、1、F:.MODELTINY.STACK100.MODELTINY.STACK100.DATAIO8255_ConEQU0F003H;CS3IO8255_AEQU0F000H;AIO8255_BEQU0F001H;BLED_TAB:DB03FH,06H,05BH,04FH,66H,6DH,7DH,07HDB07FH,6FH,77H,7CH,39H,05EH,79H,71H F1DB0.CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVDX,IO8255_ConMOVAL,80H;方式0,A,B,C均為輸出OUTDX,ALMOVAX,0FEFEH;8255 PC輸出MOVCX,1600LEABX,LED_TABGOON:MOVAL,F1XLATMOVDX,IO8255_B;段選OUTDX,ALMOVAL,AHMOVDX,IO8255_A;位選OUTDX,ALROLAL,1MOVAH,ALCALLDL500msLOOPGOON;8段數(shù)碼管顯示當(dāng)前值MOVCX,1600;8段數(shù)碼管顯示完成,則顯示下個(gè)字符MOVAL,AH;CALLDL3SINCF1CMPF1,10H;是否顯示完了JZEXITJMPGOONDL500msPROCNEARPUSHCXMOVCX,400DL500ms1:LOOPDL500ms1POPCXRETDL500msENDPEXIT:ENDSTART七、思考 (4)編寫(xiě)程序,控制8位數(shù)碼管顯示當(dāng)前日期以及時(shí)間;實(shí)驗(yàn)七 8251串口實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康呐c要求了解8251的內(nèi)部結(jié)構(gòu)、工作原理;了解8251與8088的接口邏輯;掌握對(duì)8251的初始化編程方法,學(xué)會(huì)使用8251實(shí)現(xiàn)設(shè)備之間的串行通信。復(fù)習(xí)本節(jié)實(shí)驗(yàn)內(nèi)容,可嘗試自行編寫(xiě)程序,做好實(shí)驗(yàn)準(zhǔn)備工作,填寫(xiě)實(shí)驗(yàn)報(bào)告。二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)三、實(shí)驗(yàn)內(nèi)容1、編制程序:實(shí)現(xiàn)8251A與PC機(jī)的串行通訊,使用8253作分頻器提供8251的收發(fā)時(shí)鐘。2、連接線路,從微機(jī)接收一批數(shù)據(jù),接收完畢,再將它們回送給微機(jī)。四、程序框圖開(kāi)始初始化8253(定時(shí)器0,方式3,BCD碼計(jì)數(shù),CLK0/26)初始化8251接收10個(gè)字節(jié)數(shù)據(jù)子程序?qū)⒔邮盏降?0個(gè)字節(jié)數(shù)據(jù)通過(guò)8251發(fā)送給微機(jī)初始化8251:開(kāi)始允許接收和發(fā)送數(shù)據(jù)清錯(cuò)誤標(biāo)志復(fù)位8251波特率系數(shù)為16,8個(gè)數(shù)據(jù)位,一個(gè)停止位,偶校驗(yàn)返回接收10個(gè)字節(jié)數(shù)據(jù)子程序:開(kāi)始讀入狀態(tài)有數(shù)據(jù)讀數(shù)據(jù)->緩沖區(qū)接收了10個(gè)字節(jié)數(shù)據(jù)返回NNYY發(fā)送了10個(gè)字節(jié)數(shù)據(jù)子程序:開(kāi)始讀入狀態(tài)有數(shù)據(jù)發(fā)送發(fā)送了10個(gè)字節(jié)數(shù)據(jù)NNYY返回五、實(shí)驗(yàn)原理圖六、實(shí)驗(yàn)步驟1、連線說(shuō)明:C5區(qū):CS(8253)、A0、A1A3區(qū):CS5、A0、A1C5區(qū):CLK0B2區(qū):2MC5區(qū):GATE0C1區(qū)的VCCC5區(qū):OUT0C5區(qū):RxC、TxCC5區(qū):CS(8251)、C/DA3區(qū):CS1、A0C5區(qū):CLKB2區(qū):4MC5區(qū):RXD、TXDE7區(qū):RXD、TXD2、運(yùn)行程序3、運(yùn)行“串口助手(ComPort.EXE)”,設(shè)置串口(波特率4800,8個(gè)數(shù)據(jù)位,一個(gè)停止位,偶校驗(yàn)),打開(kāi)串口,選擇“HEX發(fā)送”、“HEX顯示”,向8251發(fā)送10個(gè)字節(jié)數(shù)據(jù)(輸入數(shù)據(jù)之間用空格分隔),是否能接收到10個(gè)字節(jié)數(shù)據(jù),接收到的數(shù)據(jù)是否與發(fā)送數(shù)據(jù)一致。4、改變傳輸數(shù)據(jù)的數(shù)目,重復(fù)實(shí)驗(yàn),觀察結(jié)果。七、演示程序.MODELTINY;使用8253的計(jì)數(shù)器0,外接2Mhz,經(jīng)26分頻后,送給8251,產(chǎn)生4800bpsCTL_ADDREQU0FF01H;控制字或狀態(tài)字DATA_ADDREQU0FF00H;讀寫(xiě)數(shù)據(jù)W_8253_T0EQU0BF00H;計(jì)數(shù)器0地址W_8253_CEQU0BF03H;控制字.STACK100.DATAReceive_BufferDB10 DUP(0);接受緩沖器Send_BufferEQUReceive_Buffer;發(fā)送緩沖器.CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXNOPCALLINIT_8253CALLINIT_8251START1:MOVCX,10CALLReceive_GroupMOVCX,10CALLSend_GroupJMP START1INIT_8253PROCNEARMOVDX,W_8253_CMOVAL,37H;定時(shí)器0,方式3OUTDX,ALMOVDX,W_8253_T0MOVAL,26H;BCD碼26(2000000/26)=16*4800OUTDX,ALMOVAL,0OUTDX,ALRETINIT_8253ENDPINIT_8251PROCNEARCALLRESET_8251MOVDX,CTL_ADDRMOVAL,7EH;波特率系數(shù)為16,8個(gè)數(shù)據(jù)位OUTDX,AL;一個(gè)停止位,偶校驗(yàn)CALLDLTIME;延時(shí)MOVAL,15H ;允許接收和發(fā)送發(fā)送數(shù)據(jù),清錯(cuò)誤標(biāo)志OUTDX,ALCALLDLTIMERETINIT_8251ENDPReset_8251PROCNEARMOVDX,CTL_ADDRMOVAL,0OUTDX,AL;向控制口寫(xiě)入"0"CALLDLTIME;延時(shí),等待寫(xiě)操作完成OUTDX,AL;向控制口寫(xiě)入"0"CALLDLTIME;延時(shí)OUTDX,AL;向控制口寫(xiě)入"0"CALLDLTIME;延時(shí)MOV AL,40H;向控制口寫(xiě)入復(fù)位字40HOUTDX,ALCALLDLTIMERETReset_8251ENDP;接受一組數(shù)據(jù),CX-接受數(shù)目Receive_GroupPROCNEARLEADI,Receive_BufferReceive_Group1: CALLReceive_ByteSTOSBLOOPReceive_Group1RETReceive_GroupENDP;接受一個(gè)字節(jié)Receive_BytePROCNEARMOVDX,CTL_ADDRReceive_Byte1:INAL,DX;讀入狀態(tài)TESTAL,2JZReceive_Byte1;有數(shù)據(jù)嗎?MOVDX,DATA_ADDR;有INAL,DXRETReceive_ByteENDP;發(fā)送一組數(shù)據(jù),CX-發(fā)送數(shù)目Send_GroupPROCNEARLEASI,Send_BufferSend_Group1:LODSBCALLSendByteLOOPSend_Group1RETSend_GroupENDP;發(fā)送一個(gè)字節(jié)SendbytePROCNEARPUSHAXMOVDX,CTL_ADDR;讀入狀態(tài)Sendbyte1:INAL,DXTESTAL,1JZSendbyte1;允許數(shù)據(jù)發(fā)送嗎?POPAX;發(fā)送MOVDX,DATA_ADDROUTDX,ALRETSendbyteENDP;延時(shí)DLTIMEPROCNEARMOVCX,10LOOP$RETDLTIMEENDPENDSTART八、實(shí)驗(yàn)擴(kuò)展及思考請(qǐng)讀者思考,如何修改程序?qū)崿F(xiàn)8251的自發(fā)自收功能?實(shí)驗(yàn)八 步進(jìn)電機(jī)控制一、實(shí)驗(yàn)?zāi)康呐c要求1、了解步進(jìn)電機(jī)的基本原理,掌握步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)編程方法2、了解影響電機(jī)轉(zhuǎn)速的因素有那些二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容編寫(xiě)程序:使用G5區(qū)的鍵盤(pán)控制步進(jìn)電機(jī)的正反轉(zhuǎn)、調(diào)節(jié)轉(zhuǎn)速,連續(xù)轉(zhuǎn)動(dòng)或轉(zhuǎn)動(dòng)指定步數(shù);將相應(yīng)的數(shù)據(jù)顯示在G5區(qū)的數(shù)碼管上。四、控制原理步進(jìn)電機(jī)的驅(qū)動(dòng)原理是通過(guò)它每相線圈的電流的順序切換來(lái)使電機(jī)作步進(jìn)式旋轉(zhuǎn),驅(qū)動(dòng)電路由脈沖來(lái)控制,所以調(diào)節(jié)脈沖的頻率便可改變步進(jìn)電機(jī)的轉(zhuǎn)速,微控制器最適合控制步進(jìn)電機(jī)。另外,由于電機(jī)的轉(zhuǎn)動(dòng)慣量的存在,其轉(zhuǎn)動(dòng)速度還受驅(qū)動(dòng)功率的影響,當(dāng)脈沖的頻率大于某一值(本實(shí)驗(yàn)為f.>100hz)時(shí),電機(jī)便不再轉(zhuǎn)動(dòng)。實(shí)驗(yàn)電機(jī)共有四個(gè)相位(A,B,C,D),按轉(zhuǎn)動(dòng)步驟可分單4拍(A->B->C->D->A),雙4拍(AB->BC->CD->DA->AB)和單雙8拍(A->AB->B->BC->C->CD->D->DA->A).五、程序框圖NYNYNNNN0->需要刷新顯示標(biāo)志1->步進(jìn)電機(jī)未轉(zhuǎn)動(dòng)過(guò)標(biāo)志1->轉(zhuǎn)動(dòng)方向標(biāo)志(1:表示順時(shí)針?lè)较?33H->下次送給步進(jìn)電機(jī)值5->步進(jìn)電機(jī)轉(zhuǎn)速初始化8255(PC口輸出)初始化8253(計(jì)數(shù)器T0設(shè)置在模式2狀態(tài),BCD碼計(jì)數(shù),CLK0/210)初始化8259(允許8253中斷)初始化8253中斷向量初始化顯示緩沖區(qū):(數(shù)碼管第8位:0,順時(shí)針?lè)较颍?、7位消隱;6位:轉(zhuǎn)速;1、2、3、4位:0,表示連續(xù)轉(zhuǎn)動(dòng),其他值表示需要轉(zhuǎn)動(dòng)的步數(shù))調(diào)用顯示子程序有鍵按下需要刷新顯示標(biāo)志=10->需要刷新顯示標(biāo)志調(diào)用步數(shù)調(diào)整子程序關(guān)中斷(終止步進(jìn)電機(jī)轉(zhuǎn)動(dòng))數(shù)碼管的1、2、3位->2、3、4位鍵值送給數(shù)碼管的第一位調(diào)用改變轉(zhuǎn)向子程序鍵值>9鍵值=0AH調(diào)用增速子程序調(diào)用減速子程序調(diào)用啟動(dòng)步進(jìn)電機(jī)子程序Y鍵值=0BH鍵值=0CH鍵值=0DH開(kāi)始YYY改變方向子程序:YYNNY開(kāi)始轉(zhuǎn)動(dòng)方向標(biāo)志=091H->下次送給步進(jìn)電機(jī)值下次送給步進(jìn)電機(jī)值循環(huán)右移二次1->轉(zhuǎn)動(dòng)方向標(biāo)志0->送給數(shù)碼管的第7位步進(jìn)電機(jī)未轉(zhuǎn)動(dòng)過(guò)標(biāo)志33H->下次送給步進(jìn)電機(jī)值下次送給步進(jìn)電機(jī)值循環(huán)左移二次0->轉(zhuǎn)動(dòng)方向標(biāo)志1->送給數(shù)碼管的第7位步進(jìn)電機(jī)未轉(zhuǎn)動(dòng)過(guò)標(biāo)志返回啟動(dòng)步進(jìn)電機(jī)子程序:YNY開(kāi)始0->步進(jìn)電機(jī)未轉(zhuǎn)動(dòng)過(guò)標(biāo)志取轉(zhuǎn)動(dòng)步數(shù)取轉(zhuǎn)速對(duì)應(yīng)的延時(shí)值(轉(zhuǎn)速延時(shí))初始轉(zhuǎn)速延時(shí)1=初始轉(zhuǎn)速延時(shí)轉(zhuǎn)速延時(shí)< 50初始轉(zhuǎn)速延時(shí)=50返回開(kāi)中斷初始轉(zhuǎn)速延時(shí)=轉(zhuǎn)速延時(shí)增速子程序:YN開(kāi)始轉(zhuǎn)速=11轉(zhuǎn)速+1轉(zhuǎn)速送給數(shù)碼管第5位返回減速子程序:NY開(kāi)始轉(zhuǎn)速=0轉(zhuǎn)速-1轉(zhuǎn)速送給數(shù)碼管第5位返回定時(shí)中斷程序:NNYNNNYYNY初始轉(zhuǎn)速延時(shí)1=轉(zhuǎn)速延時(shí)初始轉(zhuǎn)速延時(shí) -1=0時(shí)初始轉(zhuǎn)速延時(shí)1 - 1初始轉(zhuǎn)速延時(shí)=初始轉(zhuǎn)速延時(shí)11-1轉(zhuǎn)動(dòng)方向標(biāo)志=0時(shí)下次送給步進(jìn)電機(jī)值循環(huán)右移一次1-1轉(zhuǎn)動(dòng)步數(shù)=0時(shí)1->需要刷新顯示標(biāo)志轉(zhuǎn)動(dòng)步數(shù)減一1-1轉(zhuǎn)動(dòng)步數(shù)=0時(shí)關(guān)中斷清中斷標(biāo)志開(kāi)始下次送給步進(jìn)電機(jī)值循環(huán)左移一次1-1返回下次送給步進(jìn)電機(jī)值->8255的PC口(控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)一步)Y六、實(shí)驗(yàn)原理圖七、實(shí)驗(yàn)步驟1、主機(jī)連線說(shuō)明:E1區(qū):A、B、C、DB4區(qū):PC0、PC1、PC2、PC3E5區(qū):CLKB2區(qū):2M E5區(qū):CS、A0A3區(qū):CS5、A0E5區(qū):A、B、C、DG5區(qū):A、B、C、DB3區(qū):CS、A0A3區(qū):CS1、A0B3區(qū):INT、INTAES8688:INTR、INTAC5區(qū):CS(8253)、A0、A1A3區(qū):CS2、A0、A1C5區(qū):GATE0C1區(qū):VCCC5區(qū):CLK0B2區(qū):1MC5區(qū):OUT0B3區(qū):IR0B4區(qū):CS(8255)、A0、A1A3區(qū):CS3、A0、A12、調(diào)試程序,查看運(yùn)行結(jié)果是否正確八、演示程序 .MODELTINYEXTRNDisplay8:NEAR, SCAN_KEY:NEARIO8259_0EQU0F000HIO8259_1EQU0F001HCon_8253EQU0E003HT0_8253EQU0E000HIO8255_ConEQU0D003H;CS3IO8255_PCEQU0D002H.STACK100.DATAStepControlDB0;下一次送給步進(jìn)電機(jī)的值bufferDB8 DUP(0);顯示緩沖區(qū),8個(gè)字節(jié)buffer1DB8 DUP(0);顯示緩沖區(qū),8個(gè)字節(jié)SpeedNoDB0;選擇哪一級(jí)速度StepDelayDB0;轉(zhuǎn)動(dòng)一步后,延時(shí)常數(shù)StartStepDelayDB0;若選擇速度過(guò)快,延時(shí)由長(zhǎng)到短,最終使用對(duì)應(yīng)延時(shí)常數(shù)StartStepDelay1 DB0;StartStepDelaybFirstDB0;有沒(méi)有轉(zhuǎn)動(dòng)過(guò)步進(jìn)電機(jī)bClockwiseDB0 ; =1 順時(shí)針?lè)较?=0 逆時(shí)針?lè)较蜣D(zhuǎn)動(dòng)bNeedDisplayDB0;已轉(zhuǎn)動(dòng)一步,需要顯示新步數(shù)StepCountDW0;需要轉(zhuǎn)動(dòng)的步數(shù)StepDelayTab:DB250,125,83,62,50,42,36,32,28,25,22,21.CODESTART:MOV AX,DATAMOVDS,AXMOVES,AXNOPMOVbFirst,1;有沒(méi)有轉(zhuǎn)動(dòng)過(guò)步進(jìn)電機(jī)MOVbClockwise,1;順時(shí)針?lè)较騇OVStepControl,33H;下一次送給步進(jìn)電機(jī)的值MOVSpeedNo,5;第五級(jí)速度CALLInit8255CALLInit8253CALLInit8259CALLWriIntverMOVbuffer,0;顯示緩沖器初始化MOVbuffer+1,0MOVbuffer+2,0MOVbuffer+3,0MOVbuffer+4,10HMOVAL,SpeedNoMOVbuffer+5,ALMOVbuffer+6,10HMOVbuffer+7,0STAR2:LEASI,bufferLEADI,buffer1MOVCX,8REPMOVSBLEASI,buffer1CALLDisplay8STAR3:CALLScan_KeyJBSTAR5CMPbNeedDisplay,0JZSTAR3MOVbNeedDisplay,0CALLStep_SUB_1JMPSTAR2STAR5:CLI;終止步進(jìn)電機(jī)轉(zhuǎn)動(dòng)CMPAL,10JNBSTAR1MOVAH,buffer+2MOVbuffer+3,AHMOVAH,buffer+1MOVbuffer+2,AHMOVAH,bufferMOVbuffer+1,AHMOVbuffer,ALJMPSTAR2STAR1:CMPAL,14JNBSTAR3LEASI,DriverTabSUBAL,10SHLAL,1XORAH,AHMOVBX,AXJMPCS:SI+BXDriverTab:DWDirection;轉(zhuǎn)動(dòng)方向DWSpeed_up;提高轉(zhuǎn)速DWSpeed_Down;降低轉(zhuǎn)速DWExec ;步進(jìn)電機(jī)根據(jù)方向、轉(zhuǎn)速、步數(shù)開(kāi)始轉(zhuǎn)動(dòng)Direction:CMPbClockwise,0JZClockwiseMOVbClockwise,0MOVbuffer+7,1AntiClockwise:CMPbFirst,0JZAntiClockwise1MOVStepControl,91HJMPDirection1AntiClockwise1:MOVAL,StepControlRORAL,2MOVStepControl,ALJMPDirection1Clockwise:MOVbClockwise,1MOVbuffer+7,0CMPbFirst,0JZClockwise1MOVStepControl,33HJMPDirection1Clockwise1:MOVAL,StepControlROLAL,2MOVStepControl,ALDirection1:JMPSTAR2Speed_up:MOVAL,SpeedNoCMPAL,11JZSpeed_up2Speed_up1:INCALMOVSpeedNo,ALMOVbuffer+5,ALSpeed_up2:JMPSTAR2Speed_Down:MOVAL,SpeedNoCMPAL,0JZSpeed_Down1DECALMOVSpeedNo,ALMOVbuffer+5,ALSpeed_Down1:JMPSTAR2Exec:MOVbFirst,0CALLTakeStepCountLEABX,StepDelayTabMOVAL,SpeedNoXLATMOVStepDelay,ALCMPAL,50JNBExec1MOVAL,50Exec1:MOVStartStepDelay,ALMOVStartStepDelay1,ALSTIJMPSTAR2TIMER0:PUSHAXPUSHDXDECStartStepDelayJNZTIMER0_1MOVAL,StartStepDelay1CMPAL,StepDelayJZTIMER0_2DECALMOVStartStepDelay1,ALTIMER0_2:MOVStartStepDelay,ALMOVAL,StepControlMOVDX,IO8255_PCOUTDX,ALCMPbClockwise,0JNZTIMER0_3RORAL,1JMPTIMER0_4TIMER0_3:ROLAL,1TIMER0_4:MOVStepControl,ALCMPStepCount,0JZTIMER0_1MOVbNeedDisplay,1DECStepCountJNZTIMER0_1addsp,8 ;小寫(xiě)部分不允許使用單步、單步進(jìn)入命令popfclipushfsubsp,8nopTIMER0_1:MOVDX,IO8259_0MOVAL,20HOUTDX,ALPOPDXPOPAXIRETStep_SUB_1PROCNEARMOVCX,4LEABX,bufferStep_SUB_1_1:DECBYTE PTR BXCMPBYTE PTR BX,0FFHJNZStep_SUB_1_2MOVBYTE PTR BX,9INCBXLOOPStep_SUB_1_1Step_SUB_1_2:RETStep_SUB_1ENDPTakeStepCountPROCNEARMOVAL,buffer+3;轉(zhuǎn)動(dòng)步數(shù)送入StepCountMOVBX,10MULBLADDAL,buffer+2MULBLADDAL,buffer+1ADCAH,0MULBXADDAL,bufferADCAH,0MOVStepCount,AXRETTakeStepCountENDPInit8255PROCNEARMOVDX,IO8255_ConMOVAL,80HOUTDX,AL;8255 PC輸出DECDXMOVAL,0FFHOUTDX,AL;0FFH->8255 PCRETInit8255ENDPInit8253PROCNEARMOVDX,Con_8253MOVAL,35HOUTDX,AL ;計(jì)數(shù)器T0設(shè)置在模式2狀態(tài),BCD碼計(jì)數(shù)MOVDX,T0_8253MOVAL,10HOUTDX,ALMOVAL,02HOUTDX,AL;CLK0/210RETInit8253ENDPInit8259PROCNEARMOVDX,IO8259_0MOVAL,13HOUTDX,ALMOVDX,IO8259_1MOVAL,08HOUTDX,ALMOVAL,09HOUTDX,ALMOVAL,0FEHOUTDX,ALRETInit8259ENDPWriIntverPROCNEARPUSHESMOVAX,0MOVES,AXMOVDI,20HLEAAX,TIMER0STOSWMOVAX,CSSTOSWPOPESRETWriIntverENDPENDSTART九、實(shí)驗(yàn)擴(kuò)展及思考1、怎樣改變電機(jī)的轉(zhuǎn)速?2、通過(guò)實(shí)驗(yàn)找出電機(jī)轉(zhuǎn)速的上限,如何能進(jìn)一步提高最大轉(zhuǎn)速?3、怎樣能使電機(jī)反轉(zhuǎn)?附錄一 匯編語(yǔ)言的存儲(chǔ)模型模型說(shuō)明TINY(微)所有數(shù)據(jù)及代碼裝入同一個(gè)代碼段內(nèi),此模型的程序按.COM文件格式編寫(xiě),要求程序從地址0100H處開(kāi)始SMALL(小)這種模型包含兩個(gè)段:一個(gè)64KB的數(shù)據(jù)段和一個(gè)64KB的代碼段MEDIUM(中)這種模型包含一個(gè)64KB的數(shù)據(jù)段和任意多個(gè)代碼段,以供大程序使用COMPACT(壓縮)包含一個(gè)代碼段和任意多個(gè)數(shù)據(jù)段LARGE(大)LARGE模型允許多個(gè)代碼段和數(shù)據(jù)段HUGE(巨型)允許數(shù)據(jù)段大于64KB,其他與LARGE模型相同F(xiàn)LAT(平展)僅限于MASM6.X版本。FLAT模型使用一個(gè)512KB的段來(lái)存儲(chǔ)所有的代碼和數(shù)據(jù),應(yīng)注意的是該模型主要用于Windows NT中附錄二 8279鍵值顯示程序;8279 鍵盤(pán)顯示器接口芯片;1.查詢控制方式 2.輸入時(shí)鐘2MHZ 3.8279內(nèi)部20分頻(100KHZ) ;4.掃描計(jì)數(shù)器采用編碼工作方式(通過(guò)外部138譯碼);5.顯示按鍵值,第九次按鍵,清除顯示;8279 查詢工作方式.MODELTINYCMD_8279 EQU 0BF01H;8279命令字、狀態(tài)字地址DATA_8279 EQU 0BF00H;8279讀寫(xiě)數(shù)據(jù)口的地址PUBLICGetKey, GetKeyA, GetKeyB, GetBCDKey, DisPlay8, SCAN_KEYPUBLICF1.STACK100.DATAF1 DB ?LED_TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB080H,90H,88H,83H,0C6H,0A1H,86H,8EH DB0FFH,0BFH.CODEGetKeyPROCNEARCMPCX,0JZGetKey5CMPCX,9JNBGetKey5PUSHAXPUSHBXPUSHDXPUSHFMOVAX,CXCLCRCRAX,1DECAXADDDI,AXSTDMO

注意事項(xiàng)

本文(微機(jī)原理及接口技術(shù) 實(shí)驗(yàn)指導(dǎo))為本站會(huì)員(努力****83)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!