使用8259A的单级中断控制实验
- 格式:doc
- 大小:289.00 KB
- 文档页数:27
实验六8259中断控制器实验实验目的(1)学习中断控制器8259的工作原理。
(2)掌握可编程控制器8259的应用编程方法。
实验设备PC微机一台、TD-PIT+实验系统一套。
实验内容1.单中断应用实验(1)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。
(2)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“Hello ”,中断5次后退出。
2 •扩展多中断源实验利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。
编写程序对8259控制器的IR0和IR1中断请求进行处理。
实验原理1.8259控制器的介绍中断控制器8259A 是Intel 公司专为控制优先级中断而设计开发的芯片。
它将中断源 优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A 进行编程,就可以管理 8级中断,并选择优先模式和中断请求方式,即中断 结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片 8259A 的级连,能构成多达64级的矢量中断系统。
它的管理功能包括: 1 )记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向 CPU 专送中断类型号。
8259A 的内部结构和引脚如图 6-1所示。
8259A 的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259A 的编程就是根据应用需要将初始化命令字 ICW1-ICW4和操作命令字0CW1-0CW3别写入初始化命令 寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图 6-2所示,0CW1-0CW 各命令字格式如图6-3所示,其中OCW 用于设置中断屏蔽操作字, OCW 用于设置优先级循环方式和中断结束方式的操作命令字,OCW 用于设置和撤销特殊屏蔽方式、 设置中断查询方式以及设置对8259内部寄存器的读出命令。
实验二8259A中断控制器应用实验分析报告一、填写补充实验1-2中以下两段代码,并简述其意义:第1段:IN AL,21H_ AND AL, 0F7H _____________OUT 21H,ALIN AL,0A1H__AND AL, 0FBH______________OUT 0A1H,AL第2段:MOV AL,20HOUT 0A0H,ALOUT 20H,AL二、简述实验1-2的实验现象,分析解释其原因;结合本实验,简述中断嵌套和中断优先级的意义以及正确形成中断嵌套的基本要求。
答:实验1现象:按下一次单脉冲,显示一次字符,十次中断后停机,不再显示字符串实验2现象:分别按下两个单脉冲显示一串3和一串10,在3未显示完全时按下显示10的脉冲键,可发生中断,相反则不能发生中断,需等待一串10显示完后再显示一行3。
原因:IRQ10的中断级别高于IRQ3,所以可以在3还没有执行完时中断IRQ3,中断原程序执行IRQ10 。
中断嵌套的意义:为了让CPU及时响应更高级别的中断请求。
中断优先级的意义: CPU只能响应一个中断请求,在中断源较多的情况下,当有多个中断源同时发起中断请求时,CPU需要对多个中断源的优先级进行判断,判断出优先级最高的中断请求进行响应。
中断嵌套要求是:被中断程序的优先级低于请求程序中断的优先级。
三、抄写实验1-2中要求填写的“显示‘10’和‘空格’”的代码段NEXT10_1:MOV AX,SEG MESS10MOV DS,AXMOV DX,OFFSET MESS10MOV AH,09INT 21H ;使用INT21 – 09H实现字符串的输出‘10’CALL DELAY1 ;调用延时子程序LOOP NEXT10_1MOV DX,0DH ;调用DOS的中断功能,回车MOV AH,02HINT 21HMOV DX,0AH ;调用DOS的中断功能,换行MOV AH,02HINT 21H四、用文字简述或流程图方式,说明实验1-3中“以查询方式检测处理多中断请求”的过程。
竭诚为您提供优质文档/双击可除8259中断控制器实验报告篇一:8259中断控制器实验报告8259中断控制器实验报告作者:一实验目的1,掌握8259A的工作原理。
2,掌握编写中断服务程序方法。
3,掌握初始化中断向量的方法。
二,实验设备cpu挂箱,8086cpu模块图1-cpu挂箱三,实验内容用电平开关的输出作为中断源,每个开关对应于一个中断源。
在中断服务程序中,通过74Ls273输出一个数据,以点亮于中断源对应位置的LeD灯。
四,实验原理1.本实验用到三部分电路:电平开关电路、简单I/o扩展电路和8259中断控制器电路;2.8086的中断系统是向量中断方式,内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量,不同的中断向量对应不同的偏移地址;3.中断类型由8359通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序;4.中断类型的高5位由8359寄存器Icw2决定,低3位由中断源IRx的编码自动填充,IRo~IR7的编码分别是000,001,010,011,100,101,110,111。
五,实验步骤1,实验接线cs0-cs8259cs1-cs27300~07-LeD1~LeD8K1~K8-IR0~IR7InT-InT(8086cpu板)InTA-InTA(8086cpu板)2,编译调试程序3,全速运行程度,拨动某一电平开关,观察LeD的亮灭情况。
六,实验结果全速运行程序,由上向下拨动开关时,相应位置的LeD灯点亮,其余LeD灯全灭七,源代码Assumecs:coDecoDesegmenTpubLIcoRg100hsTART:moVcx,0sTART1:cLImoVDx,04A0hmoVAx,13houTDx,AxmoVDx,04A2hmoVAx,80h ouTDx,AxmoVAx,01houTDx,AxmoVAx,00houTDx,AxnopmoVAx,0moVDs,AxmoVADDDI,2DI,200hmoVDs:[DI],100h;初始化中断向量表moVAx,oFFseTint0moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint1moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint2moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint3moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint4moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint5moVDs:[DI],AxADDDI,2moVAx,oFFseTint6moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint7moVDs:[DI],AxADDDI,2;上述程序为芯片8259的初始化程序moVDs:[DI],100hmAIn:moVAx,0sTIwAITIng:cmpAx,0hJewAITIngmoVDx,04b0houTDx,AxmoVcx,0 DeLAY:LoopDeLAYJmpsTART1Int0:cLInopmoVAx,oFehIReTInt1:cLInopmoVAx,oFDhIReTInt2:cLInopmoVAx,oFbhIReTInt3:cLInopmoVAx,oF7hIReTInt4:cLInopmoVAx,oeFhIReTInt5:cLInopmoVAx,oDFhIReTInt6:cLInopmoVAx,obFhIReTInt7:cLInopmoVAx,o7FhIReT篇二:8259中断控制实验报告深圳大学实验报告班级:实验时间:实验报告提交时间:教务处制篇三:8259中断控制实验报告实验六8259中断控制一、实验目的1.学习8086/8088cpu中断系统的知识。
实验8259单级中断控制器实验一、实验目的⒈掌握8259中断控制器的接口方法。
⒉掌握8259中断控制器的应用编程。
二、实验内容利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。
三、实验接线图图6-6四、编程指南⑴8259芯片介绍中断控制器8259A是专为控制优先级中断而设计的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。
因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。
即中断结构可以由用户编程来设定。
同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。
⑵本实验中使用3号中断源IR3,“”插孔和IR3相连,中断方式为边沿触发方式,每拨二次AN开关产生一次中断,满5次中断,显示“8259——good”。
如果中断源电平信号不符合规定要求,则自动转到7号中断,显示“Err”。
五、实验程序框图IR3中断服务程序:IR7中断服务程序:六、实验步骤1、按图6-6连好实验线路图。
⑴8259的INT连8088的INTR;⑵8259的INTA连8088的INTA;⑶“”插孔和8259的3号中断IR3插孔相连,“”端初始为低电平;⑷8259的CS端接FF80H孔。
2、运行实验程序,在系统处于命令提示符“P.”状态下,按SCAL键,输入12D0,按EXEC键,系统显示8259-1。
3、拨动AN开关按钮,按满l0次显示good。
七、实验程序清单CODE SEGMENT ;H8259.ASMASSUME CS: CODEINTPORT1 EQU 0FF80HINTPORT2 EQU 0FF81HINTQ3 EQU INTREEUP3INTQ7 EQU INTREEUP7PA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口ORG 12D0HSTART: JMP START0BUF DB ?,?,?,?,?,?intcnt db ?data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: CLD ;递加CALL BUF1 ;写显示缓冲初值CALL WRINTVER ;写中断向量MOV AL,13H ;写ICW1MOV DX,INTPORT1OUT DX,ALMOV AL,08H ;写ICW2MOV DX,INTPORT2OUT DX,ALMOV AL,09H ;写ICW4OUT DX,ALMOV AL,0F7H ;写OCW1OUT DX,ALMOV intcnt,01H ;中断计数初值STI ;开中断WATING: CALL DISP ;DISP 8259-1JMP WATING ;循环显示WRINTVER: MOV AX,0H ;写中断向量子程序MOV ES,AXMOV DI,002CH ;IR3中断向量地址LEA AX,INTQ3 ;IR3中断服务地址STOSW ;写中断服务地址偏移量MOV AX,0000h ;写中断服务段地址STOSWMOV DI,003CH ;IR7中断向量地址LEA AX,INTQ7 ;IR7中断服务地址STOSW ;写中断服务地址偏移量MOV AX,0000h ;写中断服务段地址STOSWRETINTREEUP3: CLI ;IR3中断服务push ax ;压栈保护现场push bxpush cxpush dxMOV AL,INTCNT ;CALL CONVERS ;拆送缓冲区MOV BX,OFFSET BUF ;077BHMOV AL,10HMOV CX,05HINTRE0: MOV [BX],AL ;高五位缓冲区送熄灭码INC BXLOOP INTRE0MOV AL,20H ;中断返回码MOV DX,INTPORT1OUT DX,ALADD INTCNT,01HCMP INTCNT,06HJNA INTRE2 ;中断次数小于5次继续CALL BUF2 ;中断次数结束DISP:good INTRE1: CALL DISPJMP INTRE1CONVERS: AND AL,0FH ;拆送缓冲区MOV BX,offset buf ;077AHMOV [BX+5],ALRETINTRE2: MOV AL,20HMOV DX,INTPORT1OUT DX,ALpop dxpop cxpop bxpop axSTIIRET ;中断返回INTREEUP7: CLI ;IR7中断服务MOV AL,20H ;中断返回码MOV DX,INTPORT1OUT DX,ALcall buf3 ;disp:errINTRE3: CALL DISP ;循环显示:ERR JMP INTRE3DISP: MOV AL,0FFH ;显示子程序 ,5ms MOV DX,PAOUT DX,ALMOV CL,0DFH ;20HMOV BX,OFFSET BUFDIS1: MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV AL,[BX]POP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,00A0HLOOP $POP CXCMP CL,0FEH ;01HJZ LX1INC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,08H ;写”8259-1”MOV BUF+1,02HMOV BUF+2,05HMOV BUF+3,09HMOV BUF+4,17HMOV BUF+5,01HRETBUF2: MOV BUF,09H ;写”good ”MOV BUF+1,00HMOV BUF+2,00HMOV BUF+3,0dHMOV BUF+4,10HMOV BUF+5,10HRETBUF3: MOV BUF,0eH ;写”err ”MOV BUF+1,18HMOV BUF+2,18HMOV BUF+3,10HMOV BUF+4,10HMOV BUF+5,10HRETCODE ENDSEND START。
一、实验目的与要求1、了解8259的内部结构,工作原理;了解8259A 与8088的接口逻辑;掌握对8259A 的初始化编程方法,了解8088是如何响应中断、退出中断的。
二、实验逻辑原理图与分析 2.1 画实验逻辑原理图AD0~AD15ALEWR#INTR INTA数据锁存器地址锁存器地址译码器D0~D7CS#A0WR#INT INTA#IR0A02.2 逻辑原理图分析8282地址锁存器,用于8086CPU 与8259A 芯片地址线的连接用于总线周期T1状态下发出的地址信号。
经锁存后的地址信号可以在整个周期内保持稳定不变,8286收发器用于8086CPU 与8259A 芯片数据线的连接,通过地址译码器实现片选信号(CS )的选通。
(1)、8086是Intel 系列的16为微处理器,芯片上有4万个晶体管,采用NMOS 工艺制造,用单一的+5V 电源,时钟频率为4.77MHZ~10MHZ.8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据,可寻址的内存空间为1MB 。
(2)、8282锁存器:用来锁存8086访问存储器或I/O 端口时,于总线周期T1状态下发出的地址信号。
经锁存后的地址信号可以在整个周期内保持稳定不变 (3)、8286收发器:可以进行双向数据锁存 (4)、8259A 可编程中断控制器主要功能:1)、 1片8259A 能管理8级中断,通过级联用9片8259A 可以构成64 级主从 式中断系统2)、每一级中断可以屏蔽或允许3)、在中断响应周期,8259A 可提供相应的中断类型号。
4)、 可编程使8259A 工作在多种不同的方式。
(5)、8259A 的内部结构:1)、IRR:当IR0-IR7某一个引脚上出现有效中断请求时,IRR对应位被置12)、IMR:当IR0-IR7中需要屏蔽的,IMR对应位置13)、ISR:是一个8位寄存器,通过8位二进制数的值纪录当前正在处理的中断请求。
南昌大学实验报告学生姓名:林海金学号:6100210178 专业班级:卓越通信101班实验类型: 验证□综合□设计□创新实验日期:2012-5-22 实验成绩:一、实验项目名称实验五8259A中断控制器实验二、实验目的(1)了解8259A中断控制器的工作原理。
(2)了解PC机中断的原理和过程。
(3)学会中断程序的编写。
三、实验要求编写中断程序,在请求8259A1时,能够响应8259A的硬件中断,并在数码管上显示“IRQ0…”字样,中断结束时,显示“E…IRQ”。
四、实验仪器及连线方式1)实验仪器:AEDK-T598D实验系统。
2)连线方式:INT0连接至+PULSE;8259A的片选接至试验箱的200H;8279的片选接至210H~217H。
五、实验说明以中断0为例,先加载主中断程序,然后再加载中断程序IRQ0程序,然后打开对话窗口,输入“SW 0:0020,<回车>0000,””8200<回车>”,在执行“G8100:0<回车>Y”即可。
六、实验参考程序INT00 EQU 200HINT01 EQU 201HZ8279 EQU 239HD8279 EQU 238HLEDMODE EQU 00HSCANFRQ EQU 38HDA TA SEGMENTDA TA ENDSSTACK SEGMENTSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: CLIMOV AL,13HMOV DX,INT00OUT DX,ALNOPNOPMOV AL,8MOV DX,INT01OUT DX,ALMOV CX,0FFFHL00: LOOP L00MOV AL,3MOV DX,INT01OUT DX,ALMOV CX,0FFFHMOV CX,0FFFHL01: LOOP L01NOPNOPMOV DX,Z8279MOV AL,LEDMODEOUT DX,ALMOV AL,SCANFRQOUT DX,ALMOV DX,INT01MOV AL,00HOUT DX,ALMOV CX,0FFFHL02: LOOP L02MOV DX,INT00MOV AL,20HOUT DX,ALMOV CX,0FFFHL03: LOOP L03MOV DX,Z8279MOV AL,90HOUT DX,ALMOV AL,0D0HOUT DX,ALMOV CX,0FFFFHL2: LOOP L2MOV AL,67HOUT DX,ALMOV AL,50HOUT DX,ALMOV AL,0FHOUT DX,ALJMP SHORT $+2STIHLT0X2: MOV DX,Z8279MOV AX,0D0HOUT DX,ALMOV CX,0FFFHLOOP L5L5: LOOP L5MOV AL,90HOUT DX,ALMOV DX,D8279MOV AL,67HOUT DX,ALMOV AL,50HOUT DX,ALMOV AL,0FHOUT DX,ALMOV AL,80HOUT DX,ALOUT DX,ALMOV AL,79HOUT DX,ALJMP SHORT X2NOPCODE ENDSEND STARTZ8279 EQU 239HD8279 EQU 238HINT0 EQU 200HDA TA SEGMENTDA TA ENDSSTACK SEGMENTSTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: STIMOV CX,0FFFHMOV DX,Z8279MOV AL,0D0HOUT DX,ALL1: LOOP L1MOV AL,90HOUT DX,ALMOV DX,D8279MOV AL,80HOUT DX,ALOUT DX,ALOUT DX,ALMOV AL,3FHOUT DX,ALOUT DX,ALMOV AL,50HOUT DX,ALMOV AL,0FHOUT DX,ALMOV CX,0FFFFH12: LOOP L2MOV DX,INT0MOV AL,20HOUT DX,ALIRETCODE ENDSEND START七、实验步骤1、实验前检查实验箱是否完好,串口是否正确连接;2、按照实验电路图连接好电路,并检测通讯口;3、在LCA88ET环境中依次进入文件--打开--EXP--88ASM--8259A和Irgo;4、程序加载:设置--实验机--加载地址,8259A加载到8100H,Irgo加载到8200H;5、在LCA88ET环境中进行程序调试,调试(或窗口)--对话窗口--SW 0:0200<回车>0000,8200<回车>,再执行G8100:0<回车>Y6、运行程序,按下按键,看实验箱上数码管显示结果是否正确;3、实验结果:程序运行后,每次按下按键都能产生中断。
8259A的中断应用实验一、实验目的(1)学习8259 A中断控制器的结构及其工作原理。
(2)掌握59A的工作方式及初始化。
(2)学习8259 可编程控制器的应用编程。
(3)掌握使用PC 机内8259 的方法。
(4)掌握修改中断向量的方法。
二、实验要求编写一键盘中断处理程序,计数键盘中断次数,并用该程序替换系统键盘中断处理程序,使当键盘中断产生10 次后,显示按键次数并结束应用。
三、相关基本知识a、CPUCPU是中央处理单元(Central Process Unit)的缩写,它可以被简称做微处理器。
(Microprocessor),不过经常被人们直接称为处理器(processor)。
不要因为这些简称而忽视它的作用,CPU是计算机的核心,其重要性好比心脏对于人一样。
实际上,处理器的作用和大脑更相似,因为它负责处理、运算计算机内部的所有数据,而主板芯片组则更像是心脏,它控制着数据的交换。
CPU的种类决定了你使用的操作系统和相应的软件。
CPU主要由运算器、控制器、寄存器组和内部总线等构成,是PC的核心,再配上储存器、输入/输出接口和系统总线组成为完整的PC。
CPU的基本结构、功能及参数CPU主要由运算器、控制器、寄存器组和内部总线等构成。
寄存器组用于在指令执行过后存放操作数和中间数据,由运算器完成指令所规定的运算及操作。
CPU主要的性能指标有:1.主频主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。
CPU的主频=外频×倍频系数。
很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差。
CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。
CPU的运算速度还要看CPU的流水线的各方面的性能指标。
当然,主频和实际的运算速度是有关的,只能说主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。
2.外频外频是CPU的基准频率,单位也是MHz。
8259中断控制实验报告实验报告:8259中断控制实验一、实验目的:学习和掌握8259中断控制器的工作原理和使用方法。
二、实验设备:计算机、8259中断控制器芯片、连接线、示波器等。
三、实验原理:1.8259中断控制器简介8259是Intel公司推出的一个通用中断控制器芯片,它可以管理多种设备的中断请求,并对中断请求进行优先级排序和处理。
8259具有级联功能,可以通过级联实现更多的设备中断管理。
2.8259工作原理8259中断控制器有两个主要模块:中断请求译码器和中断向量地址寄存器。
中断请求译码器用于判断中断请求的优先级,按照优先级排序,将中断请求发送给CPU。
中断向量地址寄存器用于存储中断向量的地址,CPU根据中断向量的地址来执行相应的中断服务程序。
3.8259中断控制器的寄存器8259中断控制器有多个重要的寄存器,包括中断屏蔽寄存器、中断请求寄存器、中断服务地址寄存器等。
中断屏蔽寄存器用于屏蔽或打开特定中断请求。
中断请求寄存器用于存储当前的中断请求状态。
中断服务地址寄存器用于存储中断向量的地址。
四、实验内容:1.配置8259中断控制器将8259中断控制器连接到计算机,并通过连接线将适当的引脚连接到需要中断控制的设备上。
2.编写中断服务程序根据实验要求,编写相应的中断服务程序,并将其存储在中断服务地址寄存器指定的内存地址中。
3.设置中断向量地址将中断向量的地址存储在中断向量地址寄存器中,使CPU能够根据中断请求执行相应的中断服务程序。
4.测试中断控制功能通过测试设备向8259中断控制器发送中断请求,观察计算机是否能正确处理中断请求,并执行相应的中断服务程序。
五、实验结果与分析:经过以上实验步骤,我们成功配置了8259中断控制器,并编写了相应的中断服务程序。
在测试过程中,通过向8259中断控制器发送中断请求,我们观察到计算机正确地处理了中断请求,并执行了我们编写的中断服务程序。
这表明我们成功地完成了8259中断控制实验。
8259a中断实验报告
8259A中断实验报告
实验目的:
本实验旨在通过对8259A中断控制器的实验,加深对中断处理的理解,掌握中断控制器的基本原理和工作方式,以及实现中断服务程序的编写和调用。
实验内容:
1. 熟悉8259A中断控制器的工作原理和寄存器结构;
2. 编写中断服务程序,实现对8259A中断的响应和处理;
3. 进行实际的中断触发和处理实验,验证中断服务程序的正确性。
实验步骤:
1. 了解8259A中断控制器的寄存器结构和工作原理;
2. 编写中断服务程序,包括中断向量表的初始化和中断服务程序的编写;
3. 配置8259A中断控制器,使其能够正确地响应外部中断;
4. 在实验板上模拟外部中断信号,验证中断服务程序的正确性;
5. 测试不同优先级的中断,观察中断响应的顺序和中断服务程序的执行情况;
6. 调试和优化中断服务程序,确保其能够正确地处理各种中断情况。
实验结果:
通过本次实验,我们成功地实现了对8259A中断控制器的实验,并完成了中断服务程序的编写和调试。
在实验过程中,我们深入理解了中断的工作原理和中断服务程序的编写方法,掌握了中断控制器的配置和使用技巧。
通过不断地调试和优化,我们确保了中断服务程序能够正确地响应和处理各种中断情况,提高了系统的稳定性和可靠性。
结论:
本次实验使我们对8259A中断控制器有了更深入的了解,掌握了中断处理的基本原理和方法,提高了我们的实际操作能力和问题解决能力。
通过实验,我们对中断控制器的使用和调试有了更深入的认识,为我们今后的学习和工作打下了良好的基础。
实验五使用8259A的单级中断控制实验一、实验目的1、掌握中断控制器8259A与微机接口的原理和方法。
2、掌握中断控制器8259A的应用编程。
二、预备知识1、8259A的内部结构8259A是专为控制优先级中断而设计的芯片。
它将中断源按优先级排队、辨认中断源、提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8 级中断。
b5E2RGbCAP如图5-19所示,它由中断请求寄存器(IRR>、优先级分析器、中断服务寄存器(ISR>、中断屏蔽寄存器(IMR>、数据总线缓冲器、读写控制电路和级联缓冲器、比较器组成。
p1EanqFDPw图5-19中断请求寄存器:寄存所有要求服务的请求IR0~IR7。
中断服务寄存器:寄存正在被服务的中断请求。
中断屏蔽寄存器:存放被屏蔽的中断请求,该寄存器的每一位表示一个中断号,该位为1,屏蔽该号中断,否则开放该号中断。
DXDiTa9E3d 数据总线缓冲器:是双向三态的,用以连接系统总线和8259A内部总线,通过它可以由CPU对8259A写入状态字和控制字。
RTCrpUDGiT读写控制电路:用来接受I/O命令,对初始化命令和操作命令字寄存器进行写入,以确定8259A的工作方式和控制方式。
5PCzVD7HxA级联缓冲器/比较器:用于多片8259A的连接,能构成多达64级的矢量中断系统。
2、8259A编程及初始化(1> 写初始化命令字* 写初始化命令字ICW1(A0=0>,以确定中断请求信号类型,清除中断屏蔽寄存器,中断优先级排队和确定系统用单片还是多片。
jLBHrnAILg* 写初始化命令字ICW2,以定义中断向量的高五位类型码。
* 写初始化命令字ICW3,以定义主片8259A中断请求线上IR0~IR7有无级联的8259A从片。
xHAQX74J0X第i位=0,表明IRi引脚上无从片第i位=1,表明IRi引脚上有从片* 写初始化命令ICW4,用来定义8259A工作时用8085模式,还是8088模式,以及中断服务寄存器复位方式等。
实验三、使用8259的单级中断控制实验一、实验目的:1、通过本实验,要掌握8259的使用方法。
二、实验内容8259的IR3引脚接单脉冲发生电路。
产生的中断次数由8086计数,并将计数个数显示在一位LED上。
三、实验分析:本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0-IR7对应的中断类型号为8-F,其中断矢量关系如下表所示。
中断向量表的写入:使用STOSW 命令将AX的内容存储在ES:DI地址。
ES=0,DI=002CH。
AX先为中断服务程序的地址偏移量(offset INTQ3)、后为段地址0000.A.Y6是由74LS138输出端引出的,由CPU地址线的A4、A5、A6分别连到138的ABC端。
所以,可以确定Y6作为选通信号A6A5A4=110。
B.CPU的A0和8259的A0相连。
C.故8259A 有2 个端口地址。
选择的是60H、61H. 60H 用来写ICW1, 61H 用来写ICW2、ICW3、ICW4,初始化命令字写好后,再写操作命令字。
OCW2、OCW3 用口地址60H,OCW1用口地址61H。
所以:对8259的初始化值如下:ICW1:13HICW2:08HICW4:09HIMR :0F7H图中,使用了3号中断源,IR3插孔和SP插孔相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断信号,向8259A发出中断请求信号。
CPU响应中断后,在中断服务中,对中断次数进行计数并显示。
使用[0701H] 存放计数次数,从1到F。
如果〉F ,重新显示。
所以中断服务程序需要更改计数值。
四、实验线路连接1)8259模块上的INT1连8088的INTR(在主板键盘矩阵下面)。
2)8259模块上的INTA连8088的INTA(在主板键盘矩阵下面)。
3)MP区SP插孔和8259的3号中断IR3插孔相连,SP端初始为低电平。
4)8259模块上的D0~D7连到BUS 2区的XD0~XD7。
实验报告实验名称8259A中断控制器实验姓名学号班级教师日期一、实验内容与要求1.1 实验内容了解8259A终端控制器的工作原理,了解PC中断的原理和过程,设计并编写程序,设置8259A的命令字,定义中断服务程序,使在TPC-USB平台上每按一次单脉冲开关产生一次中断,在屏幕上依次显示“The 1 TPCA Interrupt!”、“The 2 TPCA Interrupt!”、……、“The 10 TPCA Interrupt!”,中断10次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”。
1.2 实验要求(1)具有一定的汇编编程的基础,能编写一些基本语句来实现实验。
实验前根据实验流程图,写出对应代码;(2)要了解8259A中断控制器的内部结构和外部引脚,理解芯片的工作原理和工作过程。
熟悉8259A芯片的命令字,对其进行编程;(3)熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;(4)连接PC与TPC-USB平台,用微机实验软件运行程序,每按一次TPC-USB平台上的单脉冲开关产生一次中断,要在屏幕上依次显示“The 1 TPCA Interrupt!”、“The 2TPCA Interrupt!”、……、“The 10 TPCA Interrupt!”,中断10次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”。
二、实验原理与硬件连线2.1 实验原理8259A是一种可编程中断控制器,可协助CPU进行中断管理。
8259A 的内部结构如图1所示。
单片8259A工作时,每次中断处理过程如下:(1)当IR7 ~ IR0 上有中断请求,则IRR 相应的位置1;(2)对于已进入IRR且未被IMR屏蔽的中断请求,PR电路进行优先级判定,得到最高级的中断请求;(3)控制逻辑接收中断请求,向CPU发INT 信号;(4)若CPU允许中断,则在当前指令结束后连续发出2个中断应答信号INTA,进行中断响应。
实验五、8259中断控制器实验和作业实验题目:8259中断控制器点亮LED灯实验一、实验目的了解8259中断控制器的基本使用,掌握中断程序编程技术。
二、实验内容使用单脉冲电路产生的脉冲信号作为386EX模块8259中断请求输入,每按一次单脉冲按键,触发一次中断,通过8255 PC0驱动LED交替亮和灭,硬件连接如题图所示。
基础三题图、8259中断控制器实验连线示意图三、实验提示MIR5是接到PC的主8259A中断控制器的IR5端,因此不需要对8259A初始化(ICW1-ICW4),但要进行设置中断矢量和打开中断等操作;注意:TPC实验平台中采用的是非自动结束,则需要在中断结束前(中断服务程序的最后)发中断结束命令。
另外、写入中断屏蔽字应采用“读—修改—写”过程,如下所述:IN AL,21HAND AL,0DFH软件实现流程图.MODEL SMALL.386CODE SEGMENTASSUME CS:CODESTART: MOV DX,203HMOV AL,90H ;设置8255控制字,OUT DX,ALMOV CL,0CLI ;关386 CPU中断;写入中断屏蔽字OCW1时,采用读取-修改-写入的顺序IN AL,21HAND AL,11011111B ;MASK BYTEOUT 21H,AL;将中断入口地址写入中断向量表PUSH DSMOV BX,0MOV DS,BXLEA AX,CS:INT_PROC ;将中断程序的入口地址给AXMOV BX,5 ;N=IRX 中断IR5MOV SI,30H ;BASE =30H 基址ADD SI,BX;基址+IR5=中断类型号为35HSAL SI,2 ; 中断类型号为35H X 4=中断向量存于SIMOV DS:[SI],AX ;将入口地址AX送到中断向量表中PUSH CSPOP AXMOV DS:[SI+2],AXPOP DSSTI ;开386 CPU中断LLL: JMP LLLINT_PROC PROC FARPUSH AXCMP CL,0JZ SET0MOV DX,203H ;PC0=1MOV AL,01OUT DX,ALMOV CL,0JMP ENDINTSET0: MOV DX,203H ;PC0=0MOV AL,00OUT DX,ALMOV CL,1ENDINT:MOV AL,20HOUT 20H,ALPOP AXSTIIRETINT_PROC ENDPCODE ENDSEND START。
实验十一8259A中断实验一、实验目的1.学习8086/8088与8259A的连接与控制方法, 掌握其工作原理。
2、完成程序设计题, 学会编写中断服务程序。
二、实验原理8259A是一种可编程序中断控制器, 与8088/86微机兼容, 能处理8级向量优先权中断, 亦可以通过级联构成64级向量优先权中断系统。
具有可编程控制中断方式, 并能分别屏蔽各个中断请求。
通过4个初始化命令字(ICW1——ICW4)及3个操作命令字(OCW1——OCW3)使用8259A可编程序中断控制器。
三、实验内容用8066/86控制8259可编程中断控制器, 实现对外部中断的响应和处理。
要求程序中对每次中断进行计数, 并将计数结果用8255的PA口输出到LED显示。
四、实验方法与步骤(1)根据要求编写程序mode equ 82hpa8255 equ 8000hctl8255 equ 8003hicw1 equ 00010011bicw2 equ 00100000bicw4 equ 00000001bocw1 equ 11111110bcs8259a equ 09000hcs8259b equ 09001hdata segmentcnt db 0data endscode segmentassume cs:code,ds:dataienter proc nearpush axpush dxmov dx,pa8255inc cntmov al ,cntout dx,almov dx,cs9259amov al,20hout dx,alpop dxpop axiretienter endpiinit proc nearmov dx ,cs8259amov al ,icw1out dx ,almov dx, cs8259bmov al,icw2out dx,almov al,icw4out dx,almov al,ocw1out dx,alretiinit endpstart proc nearmov dx,ctl8255mov al,modeout dx,alclimov ax,0mov ds,axmov bx,4*icw2mov ax,codeshl ax,4add ax,offset ientermov [bx],axmov ax,0inc bxinc bxmov [bx],axcall iinitmov ax,datamov ds,axmov cnt,0mov al,cntmov dx,pa8255out dx,alstilp:nopjmp lpstart endpcode endsend start(2)根据电路连线。
8259A中断控制器实验一、实验目的与要求了解8259A的内部结构、工作原理;了解8259A与8088的接口逻辑;掌握对8259A的初始化编程方法,了解8088是如何响应中断、退出中断的。
复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。
二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编制程序:拨动单脉冲开关,“”送给8259A的IR0,触发中断,8088计数中断次数,显示于F4区的数码管上四、实验原理图五、实验步骤1、连线说明:区:单脉冲3、上下拨动单脉冲开关,拨动二次,产生一个“”,观察结果,数码管上显示的次数与拨动开关次数是否对应。
六、演示程序.MODEL TINYEXTRN Display8:NEARIO8259_0 EQU 0F000HIO8259_1 EQU 0F001H.STACK 100.DATABUFFER DB 8 DUP(?)Counter DB ?ReDisplayFlag DB 0.CODESTART: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPCALL Init8259CALL WriIntverMOV Counter,0 ;中断次数MOV ReDisplayFlag,1 ;需要显示STI ;开中断START1: CMP ReDisplayFlag,0JZ START1CALL LedDisplayMOV ReDisplayFlag,0JMP START1Init8259 PROC NEARMOV DX,IO8259_0MOV AL,13HOUT DX,ALMOV DX,IO8259_1MOV AL,08HOUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0FEHOUT DX,ALRETInit8259 ENDPWriIntver PROC NEARPUSH ESMOV AX,0MOV ES,AXMOV DI,20HLEA AX,INT_0STOSWMOV AX,CSSTOSWPOP ESRETWriIntver ENDPLedDisplay PROC NEARMOV AL,CounterMOV AH,ALAND AL,0FHMOV Buffer,ALAND AH,0F0HROR AH,4MOV Buffer + 1,AHMOV Buffer + 2,10H ;高六位不需要显示MOV Buffer + 3,10HMOV Buffer + 4,10HMOV Buffer + 5,10HMOV Buffer + 6,10HMOV Buffer + 7,10HLEA SI,BufferCALL Display8RETLedDisplay ENDPINT_0: PUSH DXPUSH AXMOV AL,CounterADD AL,1DAAMOV Counter,ALMOV ReDisplayFlag,1MOV DX,IO8259_0MOV AL,20HOUT DX,ALPOP AXPOP DXIRETEND START七、实验扩展及思考1、从8259A收到上升沿,到8088响应中断,试画这个过程的时序图。
实验三8259 中断控制器实验一、实验目的1.掌握8259 中断控制器与微机的接口方法。
2.掌握8259 中断控制器的编程。
二、实验内容1.硬件线路原理图如图。
2.编程提示(1) 8259 芯片介绍8259 是专用控制中断优先级而设计的集成电路,可对中断源的优先级排队、识别、及提供中断矢量。
单块8259 可编程实现8 级中断管理,并可选择优先模式及中断请求方式。
另外由多片8259 级联,可构成多达64 级的矢量中断系统。
(2) 程序方框图主程序IR3 中断服务程序IR7 中断服务程序(3)初始化编程:由CPU向8259A送初始化命令字ICW。
在8259A开始正常工作前,必须写初始化命令字使其处于开始状态。
操作命令编程:由CPU向8259A送操作命令字OCW,可以在8259A初始化后,根据需要在程序的任何地方写入。
(4 Array 4. 硬件连线及实验结果(1) 8259 的CS6插孔连线EX1插孔。
(2) 8259 的INT 插孔连线INTR 插孔。
(3) 8259 的INTA 插孔连线INTA 插孔。
(4) 8259 的IR 3插孔连线插孔。
(5) D 0~7数据线用扁平电缆连接数据总线。
本实验用 3 号中断源IR3,与插孔线连,中断方式为边沿触发方式。
程序每按一次AN 键产生一次中断,满5次中断,显示“8259 Good”。
如果中断触发信号不符号要求,则自动转到7 号中断,显示“Err”,以示出错。
例 IBM PC/XT 系统初始化中,设ICW1=13H ,表示系统中8259A 为单片方式,上升沿触发,要求设置ICW4。
指令为: MOV AL ,13H OUT 20H ,AL中断类型号基值,即IR0的类型号。
其中低3位初始时为0,高5位由用户设定。
工作过程中,低3位值由IR0~IR7中响应哪级中断(对应000~111)来确定。
在IBM PC/XT 系统中,T7~T3=00001,所以对应8个中断的类型号为08H~0FH 。
实验五使用8259A的单级中断控制实验一、实验目的1、掌握中断控制器8259A与微机接口的原理和方法。
2、掌握中断控制器8259A的应用编程。
二、预备知识1、8259A的内部结构8259A是专为控制优先级中断而设计的芯片。
它将中断源按优先级排队、辨认中断源、提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8 级中断。
如图5-19所示,它由中断请求寄存器(IRR)、优先级分析器、中断服务寄存器(ISR)、中断屏蔽寄存器(IMR)、数据总线缓冲器、读写控制电路和级联缓冲器、比较器组成。
图5-19中断请求寄存器:寄存所有要求服务的请求IR0~IR7。
中断服务寄存器:寄存正在被服务的中断请求。
中断屏蔽寄存器:存放被屏蔽的中断请求,该寄存器的每一位表示一个中断号,该位为1,屏蔽该号中断,否则开放该号中断。
数据总线缓冲器:是双向三态的,用以连接系统总线和8259A内部总线,通过它可以由CPU对8259A写入状态字和控制字。
读写控制电路:用来接受I/O命令,对初始化命令和操作命令字寄存器进行写入,以确定8259A的工作方式和控制方式。
级联缓冲器/比较器:用于多片8259A的连接,能构成多达64级的矢量中断系统。
2、8259A编程及初始化(1) 写初始化命令字优先级排队和确定系统用单片还是多片。
* 写初始化命令字ICW2,以定义中断向量的高五位类型码。
* 写初始化命令字ICW3,以定义主片8259A中断请求线上IR0~IR7有无级联的8259A从片。
第i位=0,表明IRi引脚上无从片第i位=1,表明IRi引脚上有从片* 写初始化命令ICW4,用来定义8259A工作时用8085模式,还是8088模式,以及中断服务寄存器复位方式等。
(2) 写控制命令字* 写操作命令字0CW1,用来设置或清除对中断源的屏蔽。
第i位=0,对应的中断请求IRi开放第i位=1,对应的中断请求IRi屏蔽注:OCW1如不写,则在初始化命令写入后,OCW1为全开放状态。
* 操作命令字OCW2,设置优先级是否进行循环、循环方式及中断结束方式。
* 操作命令字OCW3,设置查询方式、特殊屏蔽方式以及读取8259中断寄存器的当前状态。
(3) 8259A查询字通过OCW3命令字的设置,可使CPU处于查询方式,随时查询8259A有否中断请求,有则转入相应的中断服务程序。
三、实验内容本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关于如下表5-3所示。
表5-3根据实验原理图5-20(见下页),8259A和8088系统总线直接相连,8259A 上连有一系统地址线A0,故8259A 有2 个端口地址,本系统中为20H、21H。
20H 用来写ICW1,21H 用来写ICW2、ICW3、ICW4,初始化命令字写好后,再写操作命令字。
OCW2、OCW3 用口地址20H,OCW1用口地址21H。
图5-14中,使用了3号中断源,IR3插孔和SP插孔相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断信号,向8259A发出中断请求信号。
如果中断源电平信号不符规定要求则自动转到7号中断,显示“Err”。
CPU响应中断后,在中断服务中,对中断次数进行计数并显示,计满5次结束,显示器显示“8259Good”。
四、实验线路连接8259A的IR3插孔和SP插孔相连。
SP插孔初始电平为低电平。
图5-20五、实验软件框图六、实验软件清单CODE SEGMENTASSUME CS:CODEINTPORT1 EQU 0020HINTPORT2 EQU 0021HINTQ3 EQU INTREEUP3INTQ7 EQU INTREEUP7CONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA0 EQU 0580HDATA1 EQU 0500HDATA2 EQU 0508HDATA3 EQU 0518HDATA4 EQU 0520HORG 1800HSTART: JMP Tint1Tint1: CALL FORMATCLDMOV DI,DATA0MOV CX,08HXOR AX,AXREP STOSWMOV SI,DATA3MOV AX,0HMOV DS,AXCALL WRINTVER ;WRITE INTRRUPT MOV AL,13HMOV DX,INTPORT1OUT DX,ALMOV AL,08HMOV DX,INTPORT2OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0F7HOUT DX,ALMOV BYTE PTR DS:[0601H],01H ;TIME=1STIWATING: JMP W ATINGWRINTVER:MOV AX,0HMOV ES,AXMOV DI,002CHLEA AX,INTQ3STOSWMOV AX,CSSTOSWMOV DI,003CHLEA AX,INTQ7STOSWMOV AX,CSSTOSWRETINTREEUP3:CLIMOV AL,DS:[0601H]CALL CONVERSMOV SI,DATA0CALL LEDDISPDMOV AL,20HOUT DX,ALADD BYTE PTR DS:[0601H],01HCMP BYTE PTR DS:[0601H],06HJNA INTRE1MOV SI,DATA4CALL LEDDISPINTRE3: JMP INTRE3CONVERS:MOV BH,0HAND AL,0FHMOV BL,ALMOV AL,CS:[BX+DATA2]MOV BX,DATA0MOV DS:[BX],ALRETINTRE1: MOV AL,20HMOV DX,INTPORT1OUT DX,ALSTIIRETINTREEUP7: CLIMOV SI,DATA1CALL LEDDISPMOV AL,20HMOV DX,INTPORT1OUT DX,ALIRETLEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00LED1: CMP BYTE PTR DS:[0600H],07H JA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+SI]OUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETLEDDISPD:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00LEDD1: CMP BYTE PTR DS:[0600H],07H JA LEDD2MOV BL,DS:[0600H]MOV BH,0HMOV AL,DS:[BX+SI]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LEDD1LEDD2: RETFORMAT: MOV BX,0MOV WORD PTR DS:[BX+0500H],5050HADD BX,2MOV WORD PTR DS:[BX+0500H],0079HADD BX,2MOV WORD PTR DS:[BX+0500H],0000HADD BX,2MOV WORD PTR DS:[BX+0500H],0000HADD BX,2MOV WORD PTR DS:[BX+0500H],063FHADD BX,2MOV WORD PTR DS:[BX+0500H],4F5BH ADD BX,2MOV WORD PTR DS:[BX+0500H],6D66H ADD BX,2MOV WORD PTR DS:[BX+0500H],077DH ADD BX,2ADD BX,2MOV WORD PTR DS:[BX+0500H],7C77HADD BX,2MOV WORD PTR DS:[BX+0500H],5E39HADD BX,2MOV WORD PTR DS:[BX+0500H],7179HADD BX,2MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D6FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHADD BX,2MOV WORD PTR DS:[BX+0500H],3F5EHADD BX,2MOV WORD PTR DS:[BX+0500H],5C3FHADD BX,2MOV WORD PTR DS:[BX+0500H],6D6FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRETCODE ENDSEND START七、实验步骤1、按图5-20连好实验线路2、运行实验程序在系统显示“DVCC-86H”状态下,按任意键,系统显示命令提示符“-”。
按GO键,显示“1000 XX”输入F000 :B2E0按EXEC键,在DVCC-8086H上显示“8259-1”。
3、按AN按键,每按二次产生一次中断,在显示器左边一位显示中断次数,满5次中断,显示器显示“8259 good”。
实验六 8255A可编程并行口实验(一)一、实验目的1、掌握并行接口芯片8255A和微机接口的连接方法。
2、掌握并行接口芯片8255A的工作方式及其编程方法。
二、预备知识1、8255A结构8255A是可编程并行接口芯片,双列直插式封装,用+5V单电源供电,如图5-6 是8255A 的逻辑框图,内部有3个8位I/O端口:A口、B口、C口;也可以分为各有12 位的两组:A 和B组,A组包含A口8位和C口的高四位,B组包含B口8位和C口的低4位;A 组控制和B组控制用于实现方式选择操作;读写控制逻辑用于控制芯片内寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。
由于8255A 数据总线缓冲器是双向三态8位驱动器,因此可以直接和8088系统数据总线相连。
2、8255A端口地址见表5-1表5-1图5-123、8255A工作方式8255A芯片有三种工作方式:方式0、方式1、方式2。
它通过对控制寄存器写入不同的控制字来决定其三种不同的工作方式。
方式0 :基本输入/输出图5-7(a) 方式0引脚功能如图5-13(a)所示。
该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,C 口分成高4 位(PC7~PC4)和低4位(PC3~PC0)两组,也有控制字决定其输入或输出。