实验六 8259A硬件中断实验

合集下载

8259A硬件中断实验

8259A硬件中断实验

实验二8259A硬件中断实验一.实验要求编写中断程序,在请求8259A中断1时,能够响应8259A的硬件中断,并在数码管上显示“Irq0…”字样,中断结束时,显示“E…IRQ”。

二.实验目的1. 了解8259A中断控制器的工作原理。

2. 了解PC机中断的原理和过程。

3. 学会中断处理程序的编写。

三.实验电路及连线○20模块中的+PLUSE接⑨模块中的INT_0,⑨模块中的INT接实验机内核模块中的88INTR, ⑨模块中的INTA接实验机内核模块中的88/INTA 。

CS8259接200H,CS8279已固定接至238H。

四.实验说明1、运行该实验程序的方法是:先通过加载选项将8259A的初始化程序与中断处理程序送到RAM中。

2、本实验指导书只提供硬件中断0实验,中断方式为边沿触发、单片、全嵌套中断方式,且中断号从中断8开始。

使用者可以根据自己的需要设定为其他中断方式,且中断号可以设定从任一中断号开始。

3、实验方法:以硬中断0为例:(1)先加载8259A主中断程序(假定地址为8100:0),然后再加载中断程序IRQ0程序(假定地址为8200:0),这里的段地址的改变在菜单设置下面的实验机/仿真机设置对话框中进行操作(见图3-8)。

(2)进入TALK WITH 88ET选项下,键入SW0:0020<回车>0000,8200<回车>(将中断服务程序的入口地址8200:0000转入中断向量0000:0020开始的单元中),再执行G8100:0<回车>Y即可(执行主程序)。

这样设计的目的是为了让学生们更能理解中断的执行原理与过程。

注意:选择了哪个段地址进行加载,就在后面的操作中用那个段地址(就是黑体的段地址要对应)。

五.实验程序框图。

8259A的单极中断控制和ad转换

8259A的单极中断控制和ad转换

8259A的单极中断控制实验1.实验目的1)掌握中断控制器8259A与微机接口的原理和方法。

2)掌握中断控制器8259A的应用编程2.实验内容本实验中已设计有1片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7实验原理图如图所示。

8259A和8088系统总线直接相连,8259A上连有一系统地址线A0,故8259A有两个端口地址,本系统中为20H、21H。

20H用来写ICW11,21H用来写ICW2、ICW3、ICW4,初始化命令字写好后,再写操作命令字。

OCW2、OCW3用端口地址20H,OCW1用端口地址21H,。

图中使用了3号中断源,IRQ33插孔和SP插孔相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断信号,向8259A发出中断请求信号.如果中断源电平信号不符合规定要求则自动转到7号中断,显示Err。

CPU 响应中断后,在中断服务中,对中断次数进行计数并显示,计满次数结束,显示器显示“8259 good”。

3.实验软件框图4.实验步骤1)连接好线路:8259A的IRQ33插孔和脉冲发生器单元SP插孔相连。

SP插孔初始电平置低电平。

2)运行实验程序。

3)按QAN键,每按2次产生一次中断,在显示器左边一位显示中断次数,满55次中断,显示器显示“8259 good”。

5.实验参考程序CODE SEGMENTASSUME CS:CODE INTPORT1 EQU 0020H INTPORT2 EQU 0021HINTQ3 EQU INTREEUP3 INTQ7 EQU INTREEUP7 CONTPORT EQU 00DFH DATAPORT EQU 00DEH DATA0 EQU 0580H DATA1 EQU 0500H DATA2 EQU 0508H DATA3 EQU 0518H DATA4 EQU 0520HORG 1000H START: JMP Tint1Tint1: CLIMOV AX,0HMOV DS,AXMOV DX,CONTPORTMOV AL,00HOUT DX,AL;KEYBORD DISPLY MODEMOV AL,2AHOUT DX,AL;8279 CLOCKMOV AL,0d0hOUT DX,AL;8279 CLEARMOV AL,90hOUT DX,AL;READ FIFO RAM COMMAND TEST1: IN AL,DXAND AL,80HJNZ TEST1CALL FORMATCLIMOV DI,DATA0MOV CX,08HXOR AX,AXREP STOSWMOV SI,DATA3CALL LEDDISP ;DISP 8259-1MOV AX,0HMOV DS,AXCALL WRINTVER ;WRITE INTRRUPTMOV 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 WATINGWRINTVER: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,20HMOV DX,INTPORT1OUT 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],00 LED1: CMP BYTE PTR DS:[0600H],07HJA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+SI]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETLEDDISPD:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00 LEDD1: CMP BYTE PTR DS:[0600H],07HJA 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],4F5BHADD BX,2MOV WORD PTR DS:[BX+0500H],6D66HADD BX,2MOV WORD PTR DS:[BX+0500H],077DHADD BX,2MOV WORD PTR DS:[BX+0500H],6F7FHADD 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 START6.思考题简述8259A的中断初始化过程。

微机原理8259A实验报告

微机原理8259A实验报告

实验二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中断控制器实验报告篇一: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单级中断控制器实验目的:1.掌握8259中断控制器的接口方法.2.掌握8259中断控制器的应用编程.二、实验内容:本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关于如下表所示。

8259中断源中断类型号中断矢量表地址IR0 8 20H~23HIR1 9 24H~27HIR2 A 28H~2BHIR3 B 2CH~2FHIR4 C 30H~33HIR5 D 34H~37HIR6 E 38H~3BHIR7 F 3CH~3FH根据实验原理图5-14,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插孔初始电平置为低电平。

四、实验软件清单:见随机光盘,文件名为H8259-1.ASM五、实验步骤:1、按图5-14连好实验线路2、运行实验程序:在DVCC-8086JHN上显示"8259-1"。

3、按AN按键,每按二次产生一次中断,在显示器左边一位显示中断次数,满5次中断,显示器显示"8259 good"。

实验-8259A单级中断 微机原理与接口技术

实验-8259A单级中断 微机原理与接口技术

DATA0
DATA2 DATA1 DATA3 DATA4
EQU 0580H
EQU 0508H EQU 0500H EQU 0518H EQU 0520H
;指向显示 8259Good 显示模区 ; ;指向显示 Err 显示模区 ;指向 8259-1显示模区
程序分析
1、显示部分 FORMAT 建立显示缓冲区
0580H
INTRE1:
MOV MOV RET MOV MOV OUT STI IRET
BX, DATA0 ; 指向 8259 Good 模区 DS: [BX], AL AL,20H ;送结束命令 DX,INTPORT1 DX,AL
INTRUPUT7: CLI MOV CALL MOV MOV OUT IRET
CODE
ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR RET ENDS END START

;建显示模型库, 调用中用 SI 指示显示模区 LEDDISP ; 显示 8259-1 WRINTVER ;将IRQ3、IRQ7中断矢量装入矢量表 CONVERS ;
INTRE1 ;送结束命令
2、编程
CODE SEGMENT ASSUME CS:CODE INTPORT1 EQU 0020H ;8259A 端口地址 INTPORT2 EQU 0021H INTQ3 EQU INTREEUP3 ;IRQ3 服务程序 INTQ7 EQU INTREEUP7 ;IRQ7 服务程序 CONTPORT EQU 00DFH ;8255A 控制口 DATAPORT EQU 00DEH ;数据口(PC口) DATA0 EQU 0580H ;指向显示 8259Good 显示模区 DATA1 EQU 0500H ;指向显示 Err 显示模区 DATA2 EQU 0508H ; DATA3 EQU 0518H ;指向显示 DISP 8259-1显示模区 DATA4 EQU 0520H ; 6000H ;显示位数(0~7) 0601H ;IRQ3 的申请次数记录

PC机8259A的中断应用实验

PC机8259A的中断应用实验

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。

利用8259A中断实现交替闪灯实验报告

利用8259A中断实现交替闪灯实验报告

利用8259A中断实现交替闪灯实验组员:房皓 13410801 任课教师:李济生一、实验目的该实验能使学生掌握8259A矢量中断方式的硬件连接和软件编程的方法,同时使同学掌握中断和其它接口芯片配合来完成某一特定任务的方法。

二、实验内容每按动一次PLUS按钮,产生一次中断信号向8259A发出中断请求,在中断程序里将LED指示等交替点亮和熄灭。

选择完成在数码管上显示“8259-A”。

三、实验接线图图2-5 实验连线图四、实验步骤1、根据原理图正确连接实验线路(需要连接粗黑线)。

2、正确理解实验原理。

3、编写实验程序,并上机调试,观察实验结果。

五、实验结果运行程序后,波动开关,LED灯交替闪灯。

六、实验总结通过本次试验,我掌握了8259A中断控制器和微机接口的连接方法,并了解了8259A中断控制器的基本的工作原理和编程方法。

七、实验代码.Model small.386DATA SEGMENTNUM DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AX;8259填写中断向量表CLI ;关中断CLD ;填写中断入口地址表0MOV AX,0HMOV DS,AX ;DS内清零MOV DI,4*35H ;35H为中断向量号MOV AX,OFFSET INT_35 ;中断服务程序入口偏移地址送AX MOV [DI],AXMOV AX,SEG INT_35 ;中断服务程序入口段基址送AX MOV [DI+2],AXMOV DX,203H ;初始化8255MOV AL,10000000B ;设置8255控制字,B口输出OUT DX,ALIN AL,21H ;读IMRAND AL,11011111B ;设置OCW1,开放IR5中断OUT 21H,AL ;写中断屏蔽字OCW1MOV BL,00000000B ;BL用于计数STI ;开中断AGAIN:JMP AGAIN ;一直等待中断MOV AX,DATAMOV DS,AXMOV AH,4CH ;结束,返回DOSINT 21HINT_35 PROC NEAR ;中断服务程序PUSH DX ;保护现场PUSH AXPUSH CXCLI ;关中断MOV AX,DATAMOV DS,AXXOR BL,11111111B ;反转MOV AL,BLMOV DX,201H ;8255B口数据口OUT DX,AL ;输出到LEDMOV AL,20H ;写OCW2,送中断结束命令EOI OUT 20H,ALSTI ;开中断POP CX ;恢复现场POP AXPOP DXIRET ;中断返回INT_35 ENDPCODE ENDSEND START。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六8259A硬件中断实验一.实验要求编写中断程序,在请求8259A中断1时,能够响应8259A的硬件中断,并在数码管上显示“Irq0…”字样,中断结束时,显示“E..IRQ”。

二.实验目的1. 了解8259A中断控制器的工作原理。

2. 了解PC机中断的原理和过程。

3. 学会中断处理程序的编写。

三.实验电路及连线20模块中的+PLUSE接第8模块中的INT_0,第8模块中的INT接模块中的88INTR,第8模块中的INTA接实验机内核模块中的88/INTA 。

CS8259接200H,CS8279已固定接至238H。

四.实验说明1、运行该实验程序的方法是:先通过加载选项将8259A的初始化程序与中断处理程序送到RAM中。

2、本实验指导书只提供硬件中断0实验,中断方式为边沿触发、单片、全嵌套中断方式,且中断号从中断8开始。

使用者可以根据自己的需要设定为其他中断方式,且中断号可以设定从任一中断号开始。

3、实验方法:以硬中断0为例,先加载8259A主中断程序(注意加载地址为8100:0),然后再加载中断程序IRQ0程序(加载地址为8200:0)。

然后进入TALK WITH 88ET选项下,键入SW 0:0020↙0000,8200↙,再执行G8100:0↙Y即可。

这样设计的目的是为了让学生们更能理解中断的执行原理与过程。

五.实验程序框图六.实验程序如下:(2)8259A主程序:;ORG 8100:0INT00 EQU 200hINT01 EQU 201hZ8279 EQU 239HD8279 EQU 238HLEDMODE EQU 00HSCANFRQ EQU 38Hdata segmentdata endsstack segmentsta dw 50 dup(?)top equ length stastack endsCODE SEGMENTASSUME CS:CODE,DS:data,SS:stackSTART:CLI ;关中断MOV AL,13H ;ICW1:边沿触发,单片,要ICW4MOV DX,INT00OUT DX,ALNOPNOPMOV AL,8 ;中断号从8开始MOV DX,INT01OUT DX,ALNOPNOPMOV AL,3 ;全嵌套方式,86/88系统9MOV DX,INT01OUT DX,ALNOPNOPMOV DX,INT01MOV AL,00H ;八个中断全部开放OUT DX,ALNOPNOPMOV DX,INT00MOV AL,20H ;非特殊EOI结束中断OUT DX,ALNOPNOPMOV DX,Z8279 ;8279左边输入,八位显示,外部译码MOV AL,LEDMODEOUT DX,ALMOV AL,SCANFRQ ;设置扫描频率OUT DX,ALMOV AL,0D0HOUT DX,ALMOV CX,0FFHL2: LOOP L2MOV AL,90H ;写显示缓冲区RAM命令字OUT DX,ALMOV DX,D8279MOV AL,67H ;显示中断前字样"IRQ"OUT DX,ALMOV AL,50HOUT DX,ALMOV AL,0FHOUT DX,ALSTI ;开中断x2: hlt ;等待硬件中断mov cx,5x1: push cxmov cx,0loop $pop cxloop x1mov dx,z8279mov ax,0d0hout dx,almov cx,0ffhl5: loop l5mov al,90hout dx,almov dx,d8279mov al,67h ;中断返回,显示"E...IRQ0"字样out dx,almov al,50hout dx,almov al,0fhout dx,almov al,80hout dx,alout dx,almov al,79hout dx,aljmp short x2code endsend start(2)IRQ0.ASM 中断子程序;ORG 8200:0Z8279 EQU 239HD8279 EQU 238Hdata segmentdata endsstack segmentstack endsCODE SEGMENTASSUME CS:CODE,DS:data,SS:stack START:STIMOV DX,Z8279MOV AL,0D0HOUT DX,ALMOV CX,0FFHl1: loop l1MOV AL,90HOUT DX,ALMOV DX,D8279mov al,80hout dx,alout dx,alout dx,alMOV AL,3FHOUT DX,ALMOV AL,67HOUT DX,ALMOV AL,50HOUT DX,ALMOV AL,0FHOUT DX,ALIRETCODE ENDSEND START实验七直流电机驱动实验一.实验要求利用0832D/A转换输出直流量,控制直流电机的转速。

二.实验目的了解直流电机控制的基本方法。

三.实验电路及连线CS0832接8088译码地址200H,CS8279已固定接至238H。

第15模块的COUT接C+。

四.实验说明1.直流电机转速调节某些场合往往要求直流电机的转速在一定范围内可调节,例如,电车、机床等,调节范围根据负载的要求而定。

调速可以有三种方法:(1)改变电机两端电压;(2)改变磁通;(3)在电枢回路中,串联调节电阻。

本实验采用第一种方法:通过改变施加于电机两端的电压大小达到调节直流电机转速的目的。

本实验用DAC0832D/A转换输出控制直流电机两端电压。

2.直流电机运转方向控制要改变直流电动机的转向,必须改变电磁转矩的方向。

根据左手定则,改变电磁转矩的方法有两种方法:(1)改变电枢电流的方向;(2)改变磁通的方向。

本实验采用第一种方法。

本实验用实验机键盘输入来控制直流电机的速度。

在运行过程中,可按动小键盘的“0─9”数码键,控制电机转速,按“F”键退出程序。

五.实验程序框图六.实验程序:D0832 EQU 200HC8279 EQU 239HD8279 EQU 238H CODE SEGMENTASSUME CS:CODE,DS:CODE START:PUSH CSPOP DSINI:MOV DX,D0832MOV AL,00HOUT DX,ALMOV DX,C8279MOV AL,00HOUT DX,ALMOV AL,90HOUT DX,ALMOV AL,34HOUT DX,ALMOV AL,0D2HOUT DX,ALJMP SHORT $+2 WAIT1:IN AL,DXMOV AH,ALAND AL,80HCMP AL,80HJE W AIT1MOV AL,AHAND AL,0FHCMP AL,00HJE W AIT1RUN:CALL CHKKEYCALL DISPLAYMOV DX,D0832OUT DX,ALJMP RUN CHKKEY PROC NEAR RDKEY:MOV DX,C8279IN AL,DXMOV AH,ALAND AL,80HCMP AL,80HJE RDKEYMOV AL,AHAND AL,0FHCMP AL,00HJE RDKEYMOV AL,40HOUT DX,ALMOV DX,D8279IN AL,DXCHK:CMP AL,0FHJE QUITCMP AL,0AHJNC RDKEYMOV SPDNUM,ALLEA BX,SPDXLATMOV AH,ALRTN:MOV DX,C8279MOV AL,0C2HOUT DX,ALMOV AL,AHRETCHKKEY ENDPDISPLAY PROC NEARMOV AH,ALMOV DX,D8279LEA BX,LEDMOV AL,SPDNUMXLATOUT DX,ALLEA SI,DSPMOV CX,0007H LOOP1:MOV AL,[SI]OUT DX,ALINC SILOOP LOOP1MOV AL,AHRETDISPLAY ENDPQUIT:MOV DX,D0832MOV AL,00HOUT DX,ALMOV DX,C8279MOV AL,0D2HOUT DX,ALHLTLED DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHSPD DB 60H,70H,80H,90H,0A0HDB 0B0H,0C0H,0D0H,0E0H,0FFHDSP DB 00H,5EH,79H,79H,73H,6DH,0DEHSPDNUM DB 0CODE ENDSEND START实验八步进电机驱动实验一.实验要求利用8255的PC口PC0-PC3轮流输出脉冲序列,实验机上键盘控制步进电机的转速和转动方向。

二.实验目的1.了解控制步进电机的基本原理。

2.掌握控制步进电机转动的编程方法。

三.实验电路及连线CS8255接200H,CS8279已固定接至238H。

PC0-PC3接至SMA-SMD。

四.实验说明1. 本实验提供的程序是供四相步进电机使用。

本实验使用的步进电机用直流+12V电压,电机线圈由A、B、C、D四相组成。

2. 驱动方式为四相单四拍方式,各线圈通电顺序如下表。

表中首先向A相线圈输入驱动电流,接着向B,C,D线圈通电,最后又返回到A相线圈驱动,按这种顺序轮流切换,电机轴按顺时针方向旋转。

若通电顺序相反,则电机轴按逆时针方向旋转。

3. 在运行过程中,可按动小键盘的“0─9”数码键,控制步进电机的转速,按“B或C”键控制步进电机的方向,按“F”键退出。

五.实验程序框图六.实验程序:C8279 EQU 20AHD8279 EQU 208HC8255 EQU 203HP8255C EQU 202H CODE SEGMENTASSUME CS:CODE,DS:CODE START:PUSH CSPOP DSINI:MOV DX,C8255MOV AL,80HOUT DX,ALMOV DX,C8279MOV AL,00HOUT DX,ALMOV AL,2AHOUT DX,ALMOV AL,90HOUT DX,ALMOV AL,0D1HOUT DX,ALJMP SHORT $+2WAIT1:IN AL,DXMOV AH,ALAND AL,80HJNZ WAIT1MOV AL,AHAND AL,0FHCMP AL,00HJE W AIT1LEA BX,STEPRUN:CALL CHKKEYCALL DISPLAYMOV CX,08HLOOP3:MOV DX,P8255CMOV AL,[SI]OUT DX,ALINC SICALL DELAYLOOP LOOP3JMP RUNCHKKEY PROC NEAR RDKEY:MOV DX,C8279IN AL,DXMOV AH,ALAND AL,80HCMP AL,80HJE RDKEYMOV AL,AHAND AL,0FHCMP AL,00HJE RTNMOV AL,40HOUT DX,ALMOV DX,D8279IN AL,DXCHK:CMP AL,15HJE QUITCMP AL,0AHJNC DIREMOV DELAYTIME,ALJMP RTNDIRE:CMP AL,12HJNE NEXTMOV DIRDSP,40HLEA BX,STEPJMP RTNNEXT:CMP AL,13HJNE RTNMOV DIRDSP,46HLEA BX,STEPADD BX,07HRTN:MOV SI,BXRETCHKKEY ENDPDELAY PROC NEARPUSH CXMOV CX,0AHSUB CL,DELAYTIME LOOP1:PUSH CXMOV CX,03FFH LOOP2:NOPLOOP LOOP2POP CXLOOP LOOP1POP CXRETDELAY ENDPDISPLAY PROC NEARPUSH BXMOV DX,D8279MOV AL,DELAYTIMELEA BX,LEDXLATOUT DX,ALMOV AL,DIRDSPOUT DX,ALMOV CX,0006HLEA BX,DSPLOOP4:MOV AL,[BX]OUT DX,ALINC BXLOOP LOOP4MOV DX,C8279MOV AL,0C2HOUT DX,ALPOP BXRETDISPLAY ENDPQUIT:MOV DX,C8279MOV AL,0D2HOUT DX,ALjmp $LED DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH DSP DB 5EH,79H,79H,73H,6DH,0EDH DELAYTIME DB 01HSTEP DB 04H,05H,01H,09H,08HDB 0AH,02H,06H,02H,0AHDB 08H,09H,01H,05H,04H DIRDSP DB 40HCODE ENDSEND START实验十串并转换实验一.实验要求利用8255并行口和并行输出串行移位寄存器74LS164,扩展一位数码显示在数码显示器上循环显示0-9这10个数字。

相关文档
最新文档