《微型計(jì)算機(jī)原理及其答案第7-8章習(xí)題》由會(huì)員分享,可在線閱讀,更多相關(guān)《微型計(jì)算機(jī)原理及其答案第7-8章習(xí)題(8頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、7.3 編程使8255A的PC5端輸出一個(gè)負(fù)跳變。如果要求PC5端輸出一個(gè)負(fù)脈沖,則程序又如何編寫?,(1)輸出,負(fù)跳變,到PC,5,MOV DX,CTRLPORT,MOV AL,0BH,OUT DX,AL,MOV AL,0AH,OUT DX,AL,(2)輸出,負(fù)脈沖,到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的置位/復(fù)位控制字,控制字的格式如圖所示。,圖7.4 8255A 置位/復(fù)位控制字格式,D,7,D,6,D,5,D,4,D,3,D,
2、2,D,1,D,0,置位/復(fù)位選擇1=置位,0=復(fù)位,位 選 擇D3 D2 D1,通道C位,按位置位/復(fù)位控制標(biāo)志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,不使用設(shè)置為000,7.5 設(shè)某工業(yè)控制系統(tǒng)中,有四個(gè)有觸點(diǎn),開關(guān),K0K3,分別用于代表四種不同的工作狀態(tài),另有四個(gè)發(fā)光二極管L0L3。要求CPU,反復(fù)檢測(cè),K0K3的狀態(tài),并,控制,L0L3的發(fā)光,用來,表示,四個(gè)開關(guān)的狀態(tài),其中L0L3分別與K0K3對(duì)應(yīng),即當(dāng)某開關(guān)Ki閉合時(shí),則使對(duì)應(yīng)發(fā)光二極管Li點(diǎn)亮發(fā)光,
3、開關(guān)Ki打開則對(duì)應(yīng)的發(fā)光二極管Li不亮。試畫出系統(tǒng)的電氣原理圖并編寫相應(yīng)的程序。,MOV AL,90H,;設(shè)置8255A的控制字:“A口為方式0輸入,;B口為方式0輸出,C口為輸出”,OUT 83H,AL,;寫入到8255A的控制寄存器,L0:IN AL,80H,;從8255A的PA口讀入開關(guān)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,方式設(shè)置標(biāo)志1=有效,圖7.3 8255A工作方式控制字格式,8.4 設(shè)16550采用18.432MHZ基準(zhǔn)時(shí)鐘,端口地址為3F83FFH,要求的波特率為19200,字符格式為8位數(shù)據(jù)位、偶校驗(yàn)、1個(gè)停止位,試寫出其初始化程序。,MOV DX,,03FBH,;DX指向16550的通信線控制寄存器地址,MOV AL,,80H,;置DLAB=1,OUT DX,,AL,MOV DX,03F8H,;除數(shù)寄存器(低字節(jié))地址,MOV AL,,,3CH,;對(duì)應(yīng)波特率為,19200,的除
5、數(shù)為003CH,OUT DX,,AL,;送除數(shù)低字節(jié),INC DX,;指向除數(shù)寄存器(高字節(jié))地址,MOV AL,,0,OUT DX,,AL,;送除數(shù)高字節(jié),8.4 設(shè)16550采用18.432MHZ基準(zhǔn)時(shí)鐘,端口地址為3F83FFH,要求的波特率為19200,字符格式為8位數(shù)據(jù)位、偶校驗(yàn)、1個(gè)停止位,試寫出其初始化程序。,MOV AL,,,1BH,;通信控制寄存器控制字,:0,DLAB,;,MOV DX,,03FBH,;,8,位,數(shù)據(jù),,偶,校驗(yàn),,1,個(gè)停止位,OUT DX,,AL,MOV DX,03FAH,;DX指向FIFO控制寄存器,MOV AL,,87H,;FIFO控制字:允許FIF
6、O并清除接收器和發(fā) :送器FIFO,設(shè)置接收器FIFO中有8個(gè)字節(jié)時(shí)申請(qǐng)中斷,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(內(nèi)含:X1、X2、X3、X4、X5、X6、X7、X8、X9、X10)和Y(內(nèi)含:Y1、Y2、Y3、Y4、Y5、Y6、Y7、Y8、Y9、Y10),試編程計(jì)算: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)程序結(jié)構(gòu),可以不考慮溢出問題,解:本題應(yīng)用邏輯尺的程序設(shè)計(jì)方法較為簡(jiǎ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”對(duì)應(yīng)做加法,“0”對(duì)應(yīng)做減法,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,轉(zhuǎn)做加法,SUB AX,YBX ;CF為0,做減法,JMP L2,L1:ADD AX,YBX ;CF 為1,Xi+YiAX,L2:MOV ZBX,AX ;保存Zi,INC BX,INC BX ;指向下一個(gè)Xi、Yi、Zi,LOOP L0,HLT,CODE ENDS,END START,CF,DX,0,