freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

現(xiàn)代微型計算機原理與接口技術(shù)習題解答(接口部分(編輯修改稿)

2024-12-13 05:36 本頁面
 

【文章內(nèi)容簡介】 8255A怎樣區(qū)分這兩種控制字?寫出 A端口作為基本輸入, B 端口作為基本輸出的初始化程序。 解: ( 1) 8255A 的方式選擇控制字和 C 口按位控制字的端口地址一樣,它們之間的區(qū)別在控制字的 D7 位(特征位)的值不同, 8255A的方式選擇控制字 D7=1,而 C口按位置位 /復位控制字 D7=0。 ( 2) 初始化程序:(設端口地址為, A口: 200H, B口: 201H,控制口: 203H) MOV AL, 90H MOV DX, 203H OUT DX, AL 2. 用 8255A的 A端口接 8位二進制輸入, B端口和 C端口各接 8只發(fā)光二極管顯示 二進制數(shù)。編寫一段程序,把 A端口讀入的數(shù)據(jù)送 B端口顯示,而 C端口的各位則采用置 0/置 1的方式顯示 A端口的值。 解:(設端口地址為, A口: 200H, B口: 201H, C口: 202H,控制口: 203H) MOV AL, 90H ; 8255A初始化: MOV DX, 203H ; 8255A各組方式 0, A口輸入 OUT DX, AL ; B、 C 口輸出 MOV DX, 200H IN AL, DX ;讀 A口輸入值 MOV DX, 201H OUT DX, AL ;送 B 口輸出 MOV AH, AL ; A口輸入值轉(zhuǎn)存在 AH 中 MOV DX, 203H MOV CX, 08 ; CX 置循環(huán)次數(shù)初值 MOV AL, 00H ; C 端口置 0/置 1 控制字初值 LPA: AND AL, 0FEH ;清除最低位 SHR AH, 1 ; A端口一位轉(zhuǎn)入 CF ADC AL, 0 ; A端口一位從 CF 轉(zhuǎn)入命令字 OUT DX, AL ; A端口一位從送往 C端口對應位 ADD AL, 02H ;形成下一個命令字 LOOP LPA ;處理 C 端口下一位 3. 將 8255A用作兩臺計算機并行通信的接口電路 , 請畫出采用查詢式輸入 /輸出方式工作的接口電路 , 并寫出采用查詢式輸入 /輸出方式的程序。 解: 用兩片 8255作兩臺計算機 8088_A與 8088_B之間并行通信的接口電路,兩片 8255之間的連接如下圖所示。兩片 8255 均在方式 查詢方式下工作。 8088A8255A8088BD7~D0A0A1A0A1D7~D0A口B口A口A0A1A0A1A0A1地址譯碼CS 地址譯碼地址譯碼PC6( ACK )PC4( STB )A口CS8255A 8255BPC0PC0 ( 1) 8088_A輸出程序: ( 8255_A 的 A 口作為數(shù)據(jù)輸出口, C 口的 PC0作為“數(shù)據(jù)輸出選通”信號,負脈沖輸出。 C 口的 PC6作為“應答”信號輸入,負脈沖有效。端口地址: A口: 200H, C口: 202H,控制口: 203H) DATA SEGMENT Buffer DB “This is a example. ”, 0DH, 0AH, 1 DATA ENDS CODE SEGMENT START: MOV AX, DATA MOV DS, AX LEA BX, Buffer ;輸出緩沖區(qū)指針送 BX MOV DX, 203H MOV AL, 0A0H ; 8255_A的方式選擇字, A口工作在方式 輸出 , C口低四位輸出 OUT DX, AL MOV AL, 1 OUT DX, AL ;將 PC0 置 1 CALL DELAY ;延時等待對方完成初始化 ; A口查詢方式輸出 NEXT: MOV DX, 202H IN AL, DL TEST AL, 80H ;判別 OBF 是否有效 JZ NEXT ;數(shù)據(jù)尚未取走,等待 MOV DX, 200H MOV AL, [BX] OUT DX, AL ;輸出一項數(shù)據(jù) INC BX MOV DX, 203H MOV AL, 0 OUT DX, AL NOP NOP INC AL OUT DX, AL ;通過 PC0 向?qū)Ψ桨l(fā)選通信號(負脈沖) CMP BYTE PTR[BX1], 1 ;判斷輸出是否完成 JNE NEXT ;未完成,繼續(xù) MOV AX, 4C00H INT 21H CODE ENDS END START ( 2) 8088_B輸入程序: ( 8255_B的 A口作為輸入,方式 1, PC4作為“數(shù)據(jù)輸入選通”信號,輸入,負脈沖有效。 PC0為“應 答”信號輸出,負脈沖有效。 端口地址: A口: 210H, C口: 212H,控制口: 213H) DATA SEGMENT Buffer DB 80 DUP(?) DATA ENDS 。 CODE SEGMENT START: MOV AX, DATA MOV DS, AX LEA BX, Buffer ;輸入緩沖區(qū)指針送 BX MOV DX, 213H MOV AL, 0B0H ; 8255_B的方式選擇字, A口工作在方式 1,輸入, C口低四位輸出。 OUT DX, AL MOV AL, 01H OUT DX, AL ; PC0 置 1,表示沒有“應答”信號 CALL DELAY ;延時等待對方狀態(tài)就緒 ; A口查詢方式輸入 AGA: MOV DX, 212H IN AL, DX TEST AL, 20H JZ AGA ; PC5 ( IBF )是否為 1,不是,無數(shù)據(jù)輸入,繼續(xù)查詢 MOV DX, 210H IN AL, DX MOV [BX], AL MOV DX, 212H MOV AL, 0 OUT DX, AL INC BX NOP NOP INC AL OUT DX, AL ;通過 PC0向發(fā)送方發(fā)“應答”負脈沖 CMP BYTE PTR[BX1], 1 ;數(shù)據(jù)接收完了嗎? JNE AGA ;未完,繼續(xù) MOV AX, 4C00H INT 21H CODE ENDS END START 說明: 這道題有多種可選的解法,上面的方法是程序比較簡單的一種。這種方法實施時,應先啟動 8088B,使它首先“就緒”,然后開始通訊。由于雙方都用負脈沖進行選通,聯(lián)絡過程比較簡單,也比較可靠。 可選的另一種方法是:在上述連接 的基礎上用中斷方式進行數(shù)據(jù)傳輸,以提高 CPU的工作效率。需要編制雙方的中斷服務程序,初始化時要設置中斷向量,允許 8255中斷,開放中斷等操作。當然也要連接相應的中斷請求信號線。 可選的第三種方法是:雙方用一根狀態(tài)線( C 端口某一位)送往對方,用這兩根線進行聯(lián)絡(“握手”)。這種方法看似簡單,其實程序是比較復雜的。雙方聯(lián)絡的過程如下圖。 ①②③④⑤⑥A 狀態(tài)數(shù) 據(jù)B 狀態(tài) 8088B 在初始化完成后,把它的狀態(tài)線置為“高電平”,表示可以開始接受數(shù)據(jù)。而 8088A在初始化完成后,把它的狀態(tài)線置為“低電平”,表示數(shù)據(jù)傳輸尚未開始。 ① 8088A查詢 8088B的狀態(tài),在發(fā)現(xiàn) 8088B“就緒”(狀態(tài)線為高電平)后,把數(shù)據(jù)發(fā)往 8255 的( A或 B)端口。 ② 8088A發(fā)出數(shù)據(jù)之后把本機狀態(tài)置為“就緒”(高電平),表示數(shù)據(jù)已經(jīng)送到端口的數(shù)據(jù)線上。 ③ 8088B查詢 8088A的狀態(tài),得知 8088A的狀態(tài)線“就緒”,知道 8088A已經(jīng)把數(shù)據(jù)送出,于是從 8255 接收數(shù)據(jù),并把自身的狀態(tài)線置為“未就緒”,表示已經(jīng)把8088A發(fā)出的數(shù)據(jù)接收。 ④ 8088A 查詢到 8088B 的狀態(tài)線變?yōu)榈碗娖剑缹Ψ揭呀?jīng)把數(shù)據(jù)接收完成,于是把本機的狀態(tài)線置為“低電平”,表示這個數(shù)據(jù)的發(fā)送已 經(jīng)完成,而下一個數(shù)據(jù)尚未發(fā)出。 ⑤ 8088B查詢到 8088A的狀態(tài)線變?yōu)椤暗碗娖健?,知道對方已?jīng)結(jié)束了第一個數(shù)據(jù)的傳輸,在本機做好下一個數(shù)據(jù)的接收準備之后(例如,把數(shù)據(jù)存入緩沖區(qū),如果緩沖區(qū)滿,則把緩沖區(qū)內(nèi)容存入磁盤文件),把本機狀態(tài)線置為“高電平”,表示已經(jīng)做好了接收下一個數(shù)據(jù)的準備。 ⑥ 8088A 得知 8088B 做好準備,發(fā)送下一個數(shù)據(jù)。于是,下一個數(shù)據(jù)的傳輸可以由此開始 (轉(zhuǎn)① )。 這種方法實施時,應首先啟動 8088A。 4. 設計一個用 8255A作為 8個七段顯示器的接口電路,并設計一個把內(nèi)存地址為 ADDRA的 8 個數(shù)字在這 8 個七段顯示器上顯示的程序。 解:設 8 個七段顯示器采用共陽接法, A口控制段的顯示, B口控制位的顯示。 端口地址 A口: 200H, B口: 201H,控制口: 203H DATA SEGMENT ADDRA DB , , , , , , , TABLE DB 40H, 4FH, 24H, 30H, 19H DB 12H, 02H, 78H, 00H, 10H DISPBIT DB ? DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV AL, 80H ;對 8255A初始化,方式 0,輸出 MOV DX, 203H OUT DX, AL LEA BX, TABLE ; BX 置為七段碼表首地址 MOV DISPBIT, 7FH ;置位碼初值為 7FH LEA SI, ADDRA ; SI 置為顯示緩沖區(qū)首地址 MOV CX, 8 ; CX 置為循環(huán)次數(shù)初值 8 AGA: MOV AL, 0FFH MOV DX, 201H OUT DX, AL ;熄滅所有數(shù)碼管 MOV AL, [SI] ;取出一個待顯示數(shù) XLAT ;轉(zhuǎn)換成七段碼 MOV DX, 200H OUT DX, AL ;送入段碼端口 MOV AL, DISPBIT ; MOV DX, 201H OUT DX, AL ;送當前位碼,點亮一個數(shù)碼管 ROR DISPBIT, 1 ;產(chǎn)生下一個位碼 INC SI ;修改指針,指向下一個待顯示數(shù)據(jù) CALL DELAY ;延時 LOOP AGA ;處理下一個數(shù)碼管的顯示 MOV AX, 4C00H INT 21H CODE ENDS END START 5. 8254定時 /計數(shù)器的定時與計數(shù)方式有什么區(qū)別 ? 8254在方式 0工作時,各通道的 CLK、 GATE信號有什么作用 ? 各通道的控制字地址都相同, 8254 是怎樣區(qū)分的 ? 解: ( 1) 8254作為計數(shù)器使用時,對 CLK端的輸入脈沖進行單純的減法計數(shù),這時 CLK端輸入的脈沖不作為計時基準。此外,用作計數(shù)器時,計數(shù)完成后必須重新初始化,只能使用一次。 8254作為定時器使用時,要求 CLK 端輸入的脈沖必須作為時鐘基準,通過對該基準時鐘脈沖的計數(shù)來實現(xiàn)精確定時。用作定時器時,計數(shù)的過程周而往復,重復進行。 ( 2) 8254 工作在方式 0 時, CLK 端輸入計數(shù)用的脈沖信號; GATE 信號為高電平時,對 CLK 端輸入的脈沖進行計數(shù); GATE信號為低電平時,暫停計數(shù); GATE信號重新為高電平后,恢復原先的計數(shù)。 ( 3) 由 8254的方式控制字中的 D D6 兩位來選擇計數(shù)通道。 6. 設 8254的端口地址為 0240H~ 0243H,通道 0輸入的 CLK頻率為 1MHz,為使通道 0 輸出 1KHz 的方 波,編寫初始化程序。如果讓通道 0 與通道 1 級聯(lián)(即 OUT0 接 CLK1)實現(xiàn) 1秒鐘定時,則初始化程序如何編制。 解: ( 1) 通道 0 輸出 1KHz的方波: 計數(shù)初值為 1MHz/1KHz = 1000,等于十六進制數(shù) 03E8H,控制字設定為先寫低 8位,后寫高 8 位,方式 3 工作,二進制計數(shù)方式,所以控制字為 36H。初始化程序如下: MOV AL, 36H; MOV DX, 243H ;寫入通道 0的控制字 OUT DX, AL ; MOV DX, 240H ; MOV AL, 0E8H ;寫入通道 0的時間常數(shù) OUT DX, AL ; MOV AL, 03H ; OUT DX, AL ; (
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1