【正文】
OUT 20H,AL ;讀主片IRR命令 IN AL,20H ;讀IRR進AL中 MOV BL,AL 。主片ISR存入內存 INC SI IN AL,21H 。從片IRR存入內存 INC DI MOV AL,0BH OUT 0A0H,AL 。從片IMR存入內存 MOV AL,BL 。取從片IRR MOV CX,8 MOV DL,0 。OCW3 OUT 0A0H,AL MOV AL,BL NOT AL 。屏蔽從片未申請的中斷 LRET: NOP .EXIT(4) INSTR: PUSH AX PUSH DX MOV DX,3C0H IN AX,DX MOV WORD PTR DATABUF,AX CMP AX,2005H JA STOP CMP AX,0 JZ WRITEAASTOP: MOV AL,55H MOV DX,3C1H OUT DX,AL JMP RET0WRITEAA: MOV BYTE PTR DATABUF+5,0AAHRET0: MOV AL,20H 。打開從片IR7中斷 OUT 0A1H,AL STI MOV DX,OFFSET INSTALL INT 27H(1) 電路改動(a)系統(tǒng)地址線A1接8259的A0,其它地址不變 (b)U3的1腳原來接A1的改接A0GAL編程:U4不變GAL16V8 。主片A0=0的地址 OUT DX,AL MOV DX,304H 。從片A0=0的地址 OUT DX,AL CR0=60000001H知PG=0,PE=1保護方式中斷描述符首地址=IDT表首地址+中斷類型號*8=65000000H+11H*8=65000088H所以中斷描述符=0042EE0081132012H其中描述的偏移地址=00422012H, 段選擇子=8113H因此段描述符首地址=GDT首地址+索引*8=00100000H+8110H=00108110H段描述符=0144F20070001FFFH,其描述符的段基地址=01007000H,因此中斷服務程序入口地址=段基地址+偏移地址=01007000H+00422012H=01429012H第10章.1V對應的數(shù)字量:由1=5/256*D得,D1V=256/5==51=33H同理4V對應的數(shù)字量D4V=256/5*4==205=CDHDLV EQU 51DHV EQU 205 MOV DX,3A9HMOV AL,DLVREPLP1: OUT DX,AL CMP AL,DHV JB INCDVREPLP2 DEC AL OUT DX,AL CMP AL,DLV JA REPLP2INCDV: INC AL JMP REPLP1入口:8255口地址320H~323H出口:轉換后的12位數(shù)字量在BX中ADCS PROC NEAR MOV DX, 323H 。PC5=0,使為低電平 MOV AL, 00001100B OUT DX, AL 。指向端口CTWAIT: IN AL, DX TEST AL, 01 。 OUT DX, AL 。取高4位數(shù)據(jù)(PB3~PB0) AND AL, 0FH 。讀低8位數(shù)據(jù)暫存BL中 MOV DX, 323H 。結束讀取操作 RETADCS ENDP 15。使CE=0無效 OUT DX, AL MOV AL, 00001101B 。A/D轉換值高4位暫存BH中 DEC DX 。使CE=1允許讀 OUT DX, AL MOV DX, 321H 。STS=1等待 INC DX 。PC7=1,使CE為高電平,啟動A/D轉換 MOV AL, 00001011B OUT DX, AL 。8255A,下半口輸入 MOV DX, AL 。IR5最先優(yōu)先 MOV DX,300H 。主片A0=1的地址 OUT DX,AL MOV AL,98H MOV DX,306H 。中斷類型號77H(對應從片的IR7) INT 21H IN AL,0A1H 。屏蔽主片未申請的中斷 MOV AL,BH NOT AL 。=2? JZ EIOP JMP LRETEIOP: MOV AL,20H 。計1的個數(shù)LP10: SHR AL,1 ADDC DL,0 LOOP LP10 CMP DL,2 。從片ISR存入內存 INC DI IN AL,0A1H 。主片IMR存入內存 MOV AL,0AH OUT 0A0H,AL ;讀從片IRR命令 IN AL,0A0H ;讀從IRR進AL中 MOV BL,AL 。主片IRR存入內存 INC SI MOV AL,0BH OUT 20H,AL 。初值=1S/4ms=250 MOV DX,281H 。CTC0通道 OUT DX,AL 。寫初值 OUT DX,AL .EXIT END (1) 由地址:280H~283H知:(地址不重疊,即全譯碼,I/O端口16條地址線全部要參與譯碼) A15A14A13A12A11A10A9A8A7A6A5A4A3A2=0000 0010 1000 00xx B電路如下:(2) OUT0產生