




文檔簡介
用低位端口地址(即A0=0)進行操作,因此可編程如下:MOVAL,23HMOV20H,AL根據中斷過程的要求設計的一個中斷系統,大致需要考慮哪些問題?答:1)設計必要的中斷源,確定它們提出的中斷請求的方式。2)編寫初始化程序。根據急迫程度的不同,規定好中斷源的優先級別,以確定當幾個中斷源同時請求時,處理機能有一個先后響應次序。3)當處理機響應中斷后,需要把被中斷程序的現場、斷點保護起來,以便中斷處理結束后能返回原程序。4)中斷服務程序設計。5)恢復現場,返回原程序。給定(SP)=0100H,(SS)=0300H,(PSW)=0240H,以及存儲單元的內容(00020H)=0040H,(00022H)=0100H,在段地址為0900H及偏移地址為00A0H的單元中有一條中斷指令INT8,試問執行INT8指令后,SP、SS、IP、PSW的內容是什么?棧頂的三個字是什么?答:執行INT8之后,(SP)=00FAH,(SS)=0300H,(IP)=0040H,(PSW)=0040H。由于INT8為雙字節指令,所以棧頂的三個字從上到下分別是00A2H,0900H,0240H。中斷服務程序結束時,用RETF指令代替IRET指令能否返回主程序?這樣做存在什么問題?答:可以。但這樣做存在問題。IRET指令執行時將出棧IP,CS和PSW的值,而RETF指令只出棧IP,CS的值,因而若中斷服務程序中改變了標志位,用RETF指令返回在主程序中將無法恢復標志位的值。尤其是在中斷服務程序中關中斷后(IF=0),用RETF指令將無法重新開中斷,從而導致中斷服務結束后CPU不能再響應其他可屏蔽中斷。
第9章定時/計數器8253應用設計下列地址哪些能夠分配給8253/8254的計數器0?為什么?(23H、54H、97H、51H、FCH、59H)解:因為已經約定采用A2,A1作為8253的內部地址線,而且計數器0的地址為00,所以在題中所給的地址中只有51H,59H的A2和A1同時為0,即:A2A1=00.如果計數器0設定為方式0,GATE0=1,CLK0=1MHz,時常數為N=1000,請畫出OUT0的波形。如果計數器1設定為方式1,其它參數與計數器0相同,畫出OUT1的波形。編程實現:將8253計數器0設置成方式4,并置時常數10000,然后處于等待狀態,直到CE的內容≤1000后再向下執行。解:MOVDX,COUNTD;寫入計數器0的方式控制字
MOVAL,00111000B
OUTDX,AL
MOVDX,COUNTA;設置計數器0的常數
MOVAX,10000OUTDXXCHGAL,AHOUTDXL1:MOVDX,COUNTD;寫入計數器0的方式控制字MOVAL,0HOUTDXMOVDX,COUNTA;讀入CEINAL,DXMOVAH,ALINAL,DXXCHGAL,AHCMPAX,1000;判別CE當前大小
JAL1利用8253可以實現確定時間的延遲,編程實現延時10秒的程序段(設可以使用的基準時鐘為1MHz)。解:本題使用計數器0和計數器1,并且計數器0的輸出OUT0作為計數器1的時鐘輸入CLK1.程序如下:MOV DX,COUNTD ;寫計數器0方式控制字MOV AL,00110100BOUT DXMOV DX,COUNTAMOV AX,10000 ;寫計數器0時常數,分頻得到100Hz時鐘頻率OUT DXXCHG AL,AHOUT DXMOV DX,COUNTD ;寫計數器1方式控制字MOV AL,01110000BOUT DXMOV DX,COUNTBMOV AX,999 ;分頻得到0.1Hz時鐘頻率。(在方式0下,時常數為N時,;OUT輸出的低電平寬度為N+1).OUT DXXCHG AL,AHOUT DXL1: ;延時MOV DX,COUNTD ;當前CE的內容鎖存到OLMOV AL,01000000BOUT DXMOV DX,COUNTBIN AL,DXMOV AH,ALIN AL,DXXCHG AL,AHCMP AX,999 JNA L1 ;延時結束,則繼續執行,否則,跳到L1,繼續延時….比較8254方式0與方式4、方式1與方式5的區別?方式0與方式4方式0OUT端計數過程中為低,計數值減為0時,輸出變高方式4OUT端計數過程中為高,計數值減為0時輸出寬度為1個CLK的負脈沖方式1與方式5方式1OUT端輸出寬度為n個CLK的低電平,計數值減為0時,輸出為高方式5OUT端計數過程中為高,計數值減為0時輸出寬度為1個CLK的負脈沖在8088最小系統中,8253的端口地址為284H~287H。系統提供的時鐘為1MHz,要求在OUT0輸出周期為20微秒的方波,在OUT1輸出周期為200微秒,其中每周期為負的時間是180微秒的信號。請編寫8253的初始化程序。解:OUT0輸出為20微妙方波,可用方式三直接產生,OUT1輸出波形與書中例9.2類似,可用其中思想產生此信號。如果允許增加外部器件,也可在例9.1的基礎上,將OUT端信號通過與非門取反,這樣即可產生題目要求信號。本例利用例9.1思想解答MOVDX,287H;寫計數器0控制方式字MOVAL,00010110BOUTDXMOVDX,284H;寫計數器0時常數MOVAL,20OURDX,ALMOVDX,287;寫計數器2控制方式字MOVAL,10010110BOUTDXMOVDX,286H;寫計數器2時常數MOVAL,200OUTDXMOVDX,287HMOVAL,01010010B;寫計數器1控制方式字OUTDXMOVDX,285HMOVAL,9;寫計數器1時常數OUTDX,通過8253計數器0的方式0產生中斷請求信號,現需要延遲產生中斷的時刻,可采用:在OUT0變高之前重置初值;在OUT0變高之前在GATE0端加一負脈沖信號;降低加在CLK0端的信號頻率;以上全是。解:DA:方式0下,在OUT0變高之前重置初值,將在下一個CLK的下降沿使時常數從CR讀入CE并重新計數。B:在OUT0變高之前在GATE0端加一負脈沖信號可以延時一個時鐘周期,達到延時的目的。C:降低加在CLK0端的信號頻率,可以增大時鐘周期,達到延長OUT0端低電平的時間。(注:A中,如果重置的初值為1,則不會達到延時的效果)已知8254計數器0的端口地址為40H,控制字寄存器的端口地址為43H,計數時鐘頻率為2MHz,利用這一通道設計當計數到0時發出中斷請求信號,其程序段如下,則中斷請求信號的周期是32.7675ms。MOVAL,00110010BOUT43H,ALMOVAL,0FFHOUT40H,ALOUT40H,AL若8254芯片可使用的8086端口地址為D0D0H~D0DFH,試畫出系統設計連接圖。設加到8254上的時鐘信號為2MHz,(1)利用計數器0~2分別產生下列三種信號:周期為10us的對稱方波每1s產生一個負脈沖10s后產生一個負脈沖每種情況下,說明8254如何連接并編寫包括初始化在內的程序段。(2)希望利用8086通過一專用接口控制8253的GATE端,當CPU使GATE有效開始,20us后在計數器0的OUT端產生一個正脈沖,試設計完成此要求的硬件和軟件。解:選用D0D0H~D0DFH中的偶地址DODO,DOD2,DOD4,DOD6為基本地址作為8254的端口地址,設8086工作在最小方式下。8254端口地址譯碼電路如下圖:計數器0輸入端加2MHz的時鐘信號,GATE0加+5V電壓,輸出OUT0信號為周期為10μs的對稱方波。初始化代碼:MOVDX,0D0D6H;寫計數器0工作方式MOVAL,00010110BOUTDXMOVDX,0D0D0H;寫計數器0時常數MOVAL,20OUTDXCLK0加2MHz的始終信號,GATE0,GATE1加+5V電壓,OUT0輸出加到CLK1做時鐘信號,OUT1輸出為每1s產生一個負脈沖。初始代碼:MOVDX,0D0D6H;寫計數器0的工作方式MOVAL,00010110BOUTDXMOVDX,0D0D0H;寫計數器0的時常數MOVAL,100OUTDXMOVDX,0D0D6H;寫計數器1的工作方式MOVAL,01110100BOUTDXMOVDX,0D0D2H;寫計數器1的時常數MOVAX,20000OUTDXXCHGAL,AHOUTDXCLK0加2MHz的始終信號,GATE0,GATE1加+5V電壓,OUT0輸出加到CLK2做時鐘信號,OUT2輸出為10s后產生一個負脈沖。初始代碼:MOVDX,0D0D6H;寫計數器0的工作方式MOVAL,00110110BOUTDXMOVDX,0D0D0H;寫計數器0的時常數MOVAX,1000OUTDXXCHGAL,AHOUTDXMOVDX,0D0D6H;寫計數器2的工作方式MOVAL,10111000BOUTDXMOVDX,0D0D4H;寫計數器2的時常數MOVAX,20000OUTDXXCHGAL,AHOUTDX選用地址D0D0,DOD2,DOD4,DOD6為8253的端口地址,D0D8為GATE端口地址,該端口采用74LS373,8253用方式4,在OUT輸出端加非門實現脈沖功能。接口電路如圖:初始代碼為:MOVDX,0D0D8H;GATE初始化MOVAL,0OUTDXMOVDX,0D0D6H;寫計數器0工作方式MOVAL,00011000BOUTDXMOVDX,0D0D0H;寫計數器0時常數MOVAL,40OUTDXMOVDX,0D0D8HMOVAL,1OUTDX,AL;使GATE變高有效若加到8254上的時鐘頻率為0.5MHz,則一個計數器的最長定時時間是多少?若要求10分鐘產生一次定時中斷,試提出解決方案。解:一個計數器的最長定時時間應該是置入時常數0時,此時定時時間為:65536/0.5*10^6s=131ms采用方式0即:計數達到終值時中斷來10分鐘產生一次定時中斷,此時時常數CR為:10*60*0.5*10^6=3*10^9.由于一個計數器最多分頻65536,所以至少得使用2個計數器。我們采用計數器0和計數器1.計數器0的時常數CR0為60000,計數器1的時常數CR1為50000.連接方式為:把0.5MHz的時鐘頻率接到計數器0的CLK0,然后把計數器0的OUT0接到計數器1的CLK1。這樣計數器1的OUT1端輸出的就是10分鐘產生一次的定時中斷。織布機控制系統如圖9.26所示,已知織布機每織1米發出一個正脈沖,每織100米要求接收到一脈沖,去觸發剪裁設備把布剪開。(1)設8253的端口地址為80H~83H,編寫對8253初始化程序。(2)假定系統提供的信號頻率為1MHz,希望利用8253的其余通道產生0.1秒的周期信號,編寫初始化程序。圖9.26織布機控制系統解:(1) MOV DX,83H MOV AL,00010100B OUT DX MOV DX,80H MOV AL,100 OUT DX (2)將計數器1的輸出OUT1信號作為計數器2的時鐘輸入CLK2,計數器1的時鐘輸入為系統提供1MHZ的信號MOV DX,83HMOV AL,01110100BOUT DXMOV DX,81HMOV AX,1000OUT DXXCHG AL,AHMOV DXMOV DX,83HMOV AL,10010110BOUT DXMOV DX,82HMOV AL,100OUT DX在IBMPC系統中根據下列不同條件設計接口邏輯,利用8253完成對外部脈沖信號重復頻率的測量。(1)被測脈沖信號的重復頻率在10~1000Hz范圍內。(2)被測脈沖信號的重復頻率在0.5~1.5Hz范圍內。(3)被測脈沖信號重復頻率在10~100Hz范圍內。(4)被測是間歇脈沖信號,每次有信號時有100個脈沖,重復頻率為0.8~1.2MHz,間歇頻率大約每秒15次,要求測有信號時的脈沖重復頻率。解:用兩個計數器,計數器0的CLK接待測信號,GATE接半周期為10s的高電平信號,OUT接8259,同時取反接計數器1的GATE端。計數器1的CLK接系統時鐘,半周期為T0。在這樣的邏輯電路下,計數器0的功能是記錄待測信號的脈沖數N0,計數器1的功能是記錄在相同時間里系統時鐘信號的脈沖數N1。根據T=N1*T0/N0可計算出待測信號的周期。S(t)是待測信號,S’(t)為給定的周期大于10s的高電平信號。端口聲明:COUNTA為計數器0的地址,COUNTB為計數器2的地址,COUNTD為控制器地址,COUNT為373地址程序如下:MOVDX,COUNTD;計數器1初始化MOVAL,01110000BOUTDXMOVDX,COUNTBOUTDXMOVDX,COUNTBMOVAL,OOUTDXMOVDX,COUNTD;計數器0初始化MOVAL,00010000BOUTDXMOVDX,COUNTAMOVAL,0OUTDXOUTDXSTI讀兩計數器的計數,并進行計算的中斷服務子程序:PUSHAXPUSHBXPUSHCXPUSHDXMOVDX,COUNTDMOVAL,00000000BOUTDXMOVDX,COUNTAINAL,DXXCHGAL,AHINAL,DXXCHGAL,AHNEGAXINCAXMOVBX,AXMOVDX,COUNTDMOVAL,00010000BOUTDXMOVDX,COUNTBINAL,DXXCHGAL,AHINAL,DXXCHGAL,AHNEGAXINCAXMOVCX,T0MULCXDIVBXMOVSFR,AXPOPDXPOPCXPOPBXPOPAXIRETSFR中保存結果即為待測信號的周期。對于(1)題,10*10不小于100,10*1000不大于65535,可以用計數法。同理(3)也可用此方法。對于(2)題,可用周期法。邏輯電路圖如下:程序如下:MOVDX,COUNTDMOVAL,00110100BOUTDXMOVDX,COUNTAMOVAL,0OUTDXOUTDXSTIPUSHAXPUSHBXPUSHDXMOVDX,COUNTDMOVAL,00000000BOUTDXMOVDX,COUNTAINAL,DXXCHGAL,AHINAL,DXXCHGAL,AHNEGAXINCAXMOVBX,AXMOVDX,000FHMOVAX,4240HDIVBXMOVSFR,AXPOPDXPOPBXPOPAXIRET(4)如圖設計接口,計數器1用來記錄在50個脈沖所用時間,50個信號脈沖最多用1/0.8*50(約為63us)由于計數器1用1MHzCLK,故其計數個數N即為Nus,所以當N>63時,則有低電平間隔計入,須重新計數。當N>63時,則計算得待測頻率。程序如下:MOVDX,COUNTDMOVAL,00HOUTDXMOVDX,COUNTDMOVAL,00010000BOUTDXMOVDX,COUNTAMOVAL,50OUTDXMOVDX,COUNTDMOVAL,01110000BOUTDXMOVCOUNTBMOVAL,0OUTDXOUTDXL2:MOVDX,COUNT;給GATE0和GATE1高電平,開始計數MOVAL,81HOUTDXL1:NOPMOVDX,COUNTDMOVAL,00000000BOUTDXMOVDX,COUNTAINAL,DXMOVDX,COUNTAINAL,DXANDAL,AL;判斷是否計完50個脈沖,若未計完繼續等待JNZL1MOVDX,COUNTMOVAL,00H;若計完則暫停計數OUTDXMOVDX,COUNTD;讀計數器1結果MOVAL,01000000BOUTDXMOVDX,COUNTBINAL,DXXCHGAL,AHINAL,DXXCHGAL,AHNEGAXINCAXCMPAX,70H;當AL大于70,則有間歇計入,重新測試JAL2MOVBL,ALMOVAL,50;計算頻率DIVBLMOVFREC,AL
第10章定時/計數器8253應用設計試分析8255A方式0、方式1和方式2的主要區別,并分別說明它們適合于什么應用場合。答:方式0是基本的輸入/輸出,端口A、B、C都可以作為輸入輸出端口。適用于CPU與非智能I/O設備的數據傳輸;方式1是有聯絡信號的輸入/輸出,端口A、B都可以設定成該方式,此時三個端口的信號線分成了A、B兩組,用作A組的聯絡信號,用作B組的聯絡信號。適用于高速CPU與低速I/O設備的數據傳輸; 方式2是雙向傳輸,只有A組端口可以設定成該方式,用作輸出的聯絡信號,用作輸入的聯絡信號,用作中斷請求信號。適用于雙機之間數據的并行傳送。8255A的A組設置成方式1輸入,與CPU之間采用中斷方式聯絡,則產生中斷請求信號INTRA的條件是STBA=1,IBFA=1,INTEA=1。如果8255A的端口地址為300H~303H,A組和B組均為方式0,端口A為輸出,端口B為輸入,PC3~PC0為輸入,PC7~PC4為輸出,寫出8255A的初始化程序段;編程實現將從端口C低4位讀入的值從高4位送出。解: MOVDX,303H MOVAL,10000011B OUTDX MOVDX,302H INAL,DX MOVCL,4 SHLAL,CL OUTDX在實際應用中經常需要檢測設備的狀態,并進行指示。在8086最小方式系統下,有一片8255A,其分配的端口地址為8F00H~8F07H中的奇地址,外部設備產生的狀態有16個(K15~K0),要求采用4個發光二極管來指示開關量中“1”的個數。(1)畫出8255A的連接圖;(2)編寫程序段實現連續檢測并顯示。解:(1)(2) MOVDX,8F07H MOVAL,10010010B;端口A、B方式0輸入,端口C方式0輸出 OUTDXNEXT: MOVDX,8F03H;從端口B讀取高8位開關量 INAL,DX XCHGAL,AH MOVDX,8F01H;從端口A讀取低8位開關量 INAL,DX MOVBX,AX XORAL MOVCX,16 CLCL2: SHLBX,1 JNCL1 INCALL1: LOOPL2 MOVDX,8F05H;從端口C送出 OUTDX JMPNEXT;進行下一次檢測利用IBMPC系統機的總線槽,開發由一片8255A構成的子系統,8255A端口地址為260H~263H,編程實現產生如圖10.20所示的8個信號(各個信號的節拍不必嚴格相等)。圖10.20要求產生的信號波形解:8355A與IBMPC機總線的連接框圖如下:可將8255A的端口A作為要產生的信號的輸出端口,設定為方式0輸出,端口B和端口C不做使用,均設定為方式0輸0出。程序段如下:MOVDX,263H;設定8255A的工作方式MOVAL,10000000BOUTDXMOVDX,260H;產生指定信號XORALOUTDXREP:MOVAL,80HMOVCX,7REP1:OUTDXSARAL,1LOOPREP1MOVCX,8REP2:SHLAL,1OUTDXLOOPREP2JMPREP在實際應用中,經常會遇到要求輸入多個數據量,這時需要用到多路開關,如圖10.21表示八選一的邏輯框圖及其真值表?,F有8組16位開關量數據(無符號數),要求通過一片8255A(端口地址為260H~263H)分時輸入到CPU(8088最小方式系統)中,并
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國兩輪頭盔行業市場發展趨勢與前景展望戰略分析研究報告
- 2025-2030中國三硅酸鎂市場供需現狀及前景產銷規模研究報告
- 2025-2030中國一次性醫用非織造布行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國GPS車輛監控調度系統需求領域與發展風險前景剖析報告
- 2025-2030中國ATM專用攝像機行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025-2030中國3d電影市場經營管理風險與投資前景盈利性規劃報告
- 2025-2030中國14-丁二醇(BDO)行業市場深度調研及前景趨勢與投資研究報告
- 2025-2030PE發泡膠帶行業市場現狀供需分析及重點企業投資評估規劃分析研究報告
- 2025年度校方責任險賠償協議書:校園學生意外傷害事故理賠服務合同
- 高檔汽車售賣合同范本
- 疊放物塊間的摩擦力分析
- 熱電廠機組A級檢修策劃書
- 常用高分子絮凝劑規格及性能
- 2023年青海省文化和旅游系統事業單位人員招聘筆試題庫及答案解析
- 某熱電廠化水運行操作規程
- 靜壓預應力管樁靜載荷試驗異常沉降的原因及復壓處理
- 點到表(標準模版)
- 第5課 安史之亂與唐朝衰亡【課件】
- 風力發電項目居間合同
- YY 0504-2016手提式蒸汽滅菌器
- GB/T 4649-2018工業用乙二醇
評論
0/150
提交評論