《微型計算機原理及其答案第7-8章習題》由會員分享,可在線閱讀,更多相關《微型計算機原理及其答案第7-8章習題(8頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、7.3 編程使8255A的PC5端輸出一個負跳變。如果要求PC5端輸出一個負脈沖,則程序又如何編寫?,(1)輸出,負跳變,到PC,5,MOV DX,CTRLPORT,MOV AL,0BH,OUT DX,AL,MOV AL,0AH,OUT DX,AL,(2)輸出,負脈沖,到PC,5,MOV DX,CTRLPORT,MOV AL,0BH,OUT DX,AL,MOV AL,0AH,OUT DX,AL,NOP,NOP,MOV AL,0BH,OUT DX,AL,(2)端口C的置位/復位控制字,控制字的格式如圖所示。,圖7.4 8255A 置位/復位控制字格式,D,7,D,6,D,5,D,4,D,3,D,
2、2,D,1,D,0,置位/復位選擇1=置位,0=復位,位 選 擇D3 D2 D1,通道C位,按位置位/復位控制標志0=有效,0 0 0 PC0,0 0 1 PC1,0 1 0 PC2,0 1 1 PC3,1 0 0 PC4,1 0 1 PC5,1 1 0 PC6,1 1 1 PC7,不使用設置為000,7.5 設某工業(yè)控制系統(tǒng)中,有四個有觸點,開關,K0K3,分別用于代表四種不同的工作狀態(tài),另有四個發(fā)光二極管L0L3。要求CPU,反復檢測,K0K3的狀態(tài),并,控制,L0L3的發(fā)光,用來,表示,四個開關的狀態(tài),其中L0L3分別與K0K3對應,即當某開關Ki閉合時,則使對應發(fā)光二極管Li點亮發(fā)光,
3、開關Ki打開則對應的發(fā)光二極管Li不亮。試畫出系統(tǒng)的電氣原理圖并編寫相應的程序。,MOV AL,90H,;設置8255A的控制字:“A口為方式0輸入,;B口為方式0輸出,C口為輸出”,OUT 83H,AL,;寫入到8255A的控制寄存器,L0:IN AL,80H,;從8255A的PA口讀入開關K0K3的狀態(tài),NOT AL,;AL AL,OUT 81H,AL,;輸出到8255A的PB口,控制L0L3的發(fā)光,JMP L0,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,B,組端口C(PC3PC0)1=輸入,0=輸出端口B1=輸入,0=輸出方式選擇0方式0,1=方式1,A,組端口C(
4、PC7PC4)1=輸入,0=輸出端口A1=輸入,0=輸出方式選擇00端口A方式0,01=端口A方式1,1,=端口A方式2,方式設置標志1=有效,圖7.3 8255A工作方式控制字格式,8.4 設16550采用18.432MHZ基準時鐘,端口地址為3F83FFH,要求的波特率為19200,字符格式為8位數(shù)據(jù)位、偶校驗、1個停止位,試寫出其初始化程序。,MOV DX,,03FBH,;DX指向16550的通信線控制寄存器地址,MOV AL,,80H,;置DLAB=1,OUT DX,,AL,MOV DX,03F8H,;除數(shù)寄存器(低字節(jié))地址,MOV AL,,,3CH,;對應波特率為,19200,的除
5、數(shù)為003CH,OUT DX,,AL,;送除數(shù)低字節(jié),INC DX,;指向除數(shù)寄存器(高字節(jié))地址,MOV AL,,0,OUT DX,,AL,;送除數(shù)高字節(jié),8.4 設16550采用18.432MHZ基準時鐘,端口地址為3F83FFH,要求的波特率為19200,字符格式為8位數(shù)據(jù)位、偶校驗、1個停止位,試寫出其初始化程序。,MOV AL,,,1BH,;通信控制寄存器控制字,:0,DLAB,;,MOV DX,,03FBH,;,8,位,數(shù)據(jù),,偶,校驗,,1,個停止位,OUT DX,,AL,MOV DX,03FAH,;DX指向FIFO控制寄存器,MOV AL,,87H,;FIFO控制字:允許FIF
6、O并清除接收器和發(fā) :送器FIFO,設置接收器FIFO中有8個字節(jié)時申請中斷,OUT DX,,AL,MOV DX,03F9H,;指向中斷允許寄存器,MOV AL,,0FH,;中斷允許控制字:允許所有的中斷,OUT DX,,AL,MOV DX,03FCH,;指向Modem控制寄存器,MOV AL,,0BH,;Modem控制字:使 、輸出,OUT DX,AL,;均為有效,例:有數(shù)組X(內含:X1、X2、X3、X4、X5、X6、X7、X8、X9、X10)和Y(內含:Y1、Y2、Y3、Y4、Y5、Y6、Y7、Y8、Y9、Y10),試編程計算:Z1=X1+Y1,Z2=X2+Y2,Z3=X3-Y3,Z4=
7、X4-Y4,Z5=X5-Y5,Z6=X6+Y6,Z7=X7-Y7,Z8=X8-Y8,Z9=X9+Y9,Z10=X10+Y10。要求:必須采用循環(huán)程序結構,可以不考慮溢出問題,解:本題應用邏輯尺的程序設計方法較為簡便,完整的源程序如下。,DATA SEGMENT,X DW X1、X2、X3、X4、X5、X6、X7、X8、X9、X10,Y DW Y1、Y2、Y3、Y4、Y5、Y6、Y7、Y8、Y9、Y10,Z DW 10 DUP(?),LOGR DW,1100010011,000000,;邏輯尺,其中從高位開始,DATA ENDS,;“1”對應做加法,“0”對應做減法,CODE SEGMENT,ASSUME CS:CODE,DS:DATA,START:MOV AX,DATA,MOV DS,AX,MOV CX,10 ;10次循環(huán),MOV BX,0,MOV DX,LOGR,L0:MOV AX,,XBX ;取Xi,SHL DX,1 ;邏輯尺左移一位,JC L1 ;CF為1,轉做加法,SUB AX,YBX ;CF為0,做減法,JMP L2,L1:ADD AX,YBX ;CF 為1,Xi+YiAX,L2:MOV ZBX,AX ;保存Zi,INC BX,INC BX ;指向下一個Xi、Yi、Zi,LOOP L0,HLT,CODE ENDS,END START,CF,DX,0,