文档视界 最新最全的文档下载
当前位置:文档视界 › 利用8259A中断实现LED灯和数码管显示实验

利用8259A中断实现LED灯和数码管显示实验

利用8259A中断实现LED灯和数码管显示实验
利用8259A中断实现LED灯和数码管显示实验

实验三:利用8259A中断实现LED灯和数码管显示实验

安全0901 王宇航 09283020

实验报告

1.实验目的:

了解8259中断控制器的基本使用,掌握中断程序编程技术。同时使同学掌握中断和其它接口芯片配合来完成某一特定任务的方法。

2.实验步骤:

8254A的OUT1输出接到8259A的MIR5上,每秒产生一次中断信号向8259A发出中断请求,在中断程序里将连接在8255A口的LED灯按照中断次数二进制点亮(即中断一次L0亮,中断两次L1亮,中断三次L1L0亮,中断四次L2亮……)。同时在数码管低位上显示中断次数。满10次后停止。

1.8254A在主程序中初始化。

CLK0工作在方式3,则控制字为00110110B,计数常数设为1000;

CLK1工作在方式3,则控制字为01110110B,计数常数设为1000,则OUT1输出为1HZ 的方波。

2.8255A在使用前需要在主程序中初始化。

A口方式0输出,B口方式0输入,则控制字为10000011B。

3.8259A不用初始化,但在程序中需要包含以下几个部分:

(1)8259A的MIR5对应的中断向量号为35H,需用此来设置中断入口地址。

(2)设置中断入口地址之后,需设置中断屏蔽字OCW1,使IR5请求被允许,其他请求被禁止。

(3)中断服务程序结束之前写OCW2,送中断结束命令EOI。

4.中断服务程序的主要功能是LED指示灯和数码管显示。

图3-1 实验连线图

注意:实验系统的主8259A的片选信号为20H。

3.实验代码:

.Model small

.386

DATA SEGMENT

DATA0 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;分别对应字符0-9 COUNT DB 10;计数值为10

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX;DS装入段基址

LEA SI,DATA0;取操作数DATA0的16位偏移地址送到寄存器SI中;8254初始化

MOV DX,203H;8254命令口

MOV AL,00110110B;控制字--0通道、方式3(方波发生器)、二进制计数OUT DX,AL;将控制字写入命令口

MOV DX,200H;0通道的数据口

MOV AX,1000;计数常数=1000

OUT DX,AL;先写入低字节

MOV AL,AH

OUT DX,AL;再写入高字节

MOV DX,203H;8254命令口

MOV AL,01110110B;控制字1通道、方式3(方波发生器)、二进制计数OUT DX,AL

MOV DX,201H;1通道的数据口

MOV AX,1000;计数常数=1000

OUT DX,AL

MOV AL,AH

OUT DX,AL;8255初始化

MOV DX,213H;8255命令口

MOV AL,10000011B;8255控制字--A口方式0输出,B口方式0输入

OUT DX,AL;将控制字写入命令口

;中断入口地址设置(用串指令)

CLI;关中断

MOV AX,0

MOV ES,AX;置附件段基地址为0

MOV DI,4*35H;置附件段偏移地址到DI

MOV AX,OFFSET INT_35;置中断程序首地址的偏移量到AX

CLD

STOSW;填首地址的偏移量到中断地址表

MOV AX,SEG INT_35;置中断程序的段基地址到AX

STOSW;填段基地址到中断地址表

IN AL,21H;读中断屏蔽寄存器IMR

AND AL,11011111B;设置中断屏蔽字OCW1,IR5请求被允许,其他请求被禁止OUT 21H,AL;将OCW1写入IMR中

STI;开中断

WAIT:

CMP COUNT,10;判断10次中断是否结束

JNZ WAIT ;未结束,等待

CLI;10次中断后,关中断

MOV AH,4CH;结束,返回DOS

INT 21H

;延时程序

DELAY PROC

PUSH CX;保护现场

MOV CX,100H;延时时间为处理一次CX自减1的时间乘以100H

DELAY1: LOOP DELAY1

POP CX;恢复现场

RET;返回到调用处,继续执行

DELAY ENDP

;中断服务程序

INT_35PROC

PUSH DX;保护现场

PUSH AX

PUSH CX

CLI;关中断

MOV AX,DATA

MOV DS,AX

INC COUNT;中断次数加1

MOV AL,COUNT;将中断次数写入AL中

MOV DX,210H;8255数据口

OUT DX,AL;将中断次数输出到LED显示灯

MOV CX,680H

CMP COUNT,10

JB GOON

-randomirandom;;低于10时跳转到GOON

CMP COUNT,10

JNZ L1;不等于10(此处即大于10)时跳转到L1 SUB SI,9;第10次中断时SI减去9,即归0

L1:

MOV AL,[SI];查表,对应0-9

MOV DX,220H;地址译码器连接六位数码管电路的数据口OUT DX,AL

MOV DX,221H;数据口

MOV AL,00000001B;指定六位数码管在最低位显示0-9

OUT DX,AL

CALL DELAY;调用延时程序

MOV AL,06H;对应字符'1'

MOV DX,220H

OUT DX,AL

MOV DX,221H

MOV AL,00000010B;指定六位数码管在次低位显示1

OUT DX,AL

CALL DELAY

LOOP L1;CX=680H

INC SI;SI加1

JMP L ;跳转至L

GOON:

INC SI;SI加1

MOV AL,[SI];查表

MOV DX,220H

OUT DX,AL

MOV DX,221H

MOV AL,00000001B

OUT DX,AL

L:

MOV AL,20H;写OCW2,送中断结束命令EOI

OUT 20H,AL

STI;开中断

POP CX;恢复现场

POP AX

POP DX

IRET;中断返回

INT_35ENDP

CODE ENDS

END START

4. 试验流程图:

主程序流程图

开始

中断次数计数值

将字符0-9对应的操作数的偏移地址送入

寄存器SI 中

8254初始化

8255初始化

中断入口地址设置

开中断

COUNT=10?

N

中断服务程序

关中断

设置OCW1并写入IMR 中,使只有IR5请求被允许

Y 返回DOS

主程序结束

中断服务程序流程图

保护现场

关中断

COUNT+1→COUNT

将中断次数输出到LED 显示灯

COUNT<10?

COUNT=10?

查表,使六位数码管在最低位显示中断次数的个位

调用延时程序

使六位数码管在次低位显示1

调用延时程序

SI -9→SI

N SI+1→SI

Y

N

Y

查表,使六位数码管在最低位显示中断次数

CX -1→CX

CX=0?

写OCW2,送中断结束命令EOI

SI+1→SI

Y N

开中断恢复现场中断返回

《8259中断控制器实验》的实验报告

实验六8259中断控制器实验 6.1 实验目的 (1) 学习中断控制器8259的工作原理。 (2) 掌握可编程控制器8259的应用编程方法。 6.2 实验设备 PC微机一台、TD-PIT+实验系统一套。 6.3 实验内容 1. 单中断应用实验 (1)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。 (2)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“Hello”,中断5次后退出。 2.扩展多中断源实验 利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。编写程序对8259控制器的IR0和IR1中断请求进行处理。 6.4 实验原理 1. 8259控制器的介绍 中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。8259A的内部结构和引脚如图6-1所示。 8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。ICW1-ICW4各命令字格式如图6-2所示,

微机接口实验报告-8259中断控制器应用实验

姓名 院专业班 年月日实验内容8259中断控制器实验指导老师 【实验目的】 (1)学习中断控制器8259的工作原理。 (2)掌握可编程控制器8259的应用编程方法。 【试验设备】 PC微机一台、TD-PIT+实验系统一套。 【实验内容】 (1) 编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。 (2) 编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“9”,中断显示6次后退出。 【实验原理】 1. 8259控制器的介绍 中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。8259A的内部结构和引脚如图6-1所示。 8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1- OCW3分别写入初始化命令寄存器组和操作命令寄存器组。ICW1-ICW4各命令字格式如图6-2所示,OCW1-OCW3各命令字格式如图6-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。 图6-1 8259内部结构和引脚图

指示灯数码管的中断控制

学生实验报告 学院:软件与通信工程学院 课程名称:单片机系统设计 专业班级: 姓名: 学号:

学生实验报告(1) 一、实验综述 1、实验目的及要求 【实验目的】 掌握外部中断原理,学习中断编程与程序调试方法 【内容及要求】 (1)熟悉uvision3的软件调试方法; (2)完成c51语言编程 (3)练习uvision3与ISIS的联机仿真方法 【实验原理】 在编程软件配合下,要求实现如下功能:程序启动后,D1处于熄灯、LED1处于黑屏状态;单击K1,可使D1亮灯状态反转一次;单击K2,可使LED1显示值加1,并按十六进制数显示,达到F后重新从1开始。 软件编程原理为:K1和K2的按键动作分别作为INT0和INT1的中断请求,在中断函数中进行指示灯与数码管的信息处理。初始化后,主函数处于无限循环状态,等待中断请求 2、实验仪器、设备或软件 电脑, Keil uVision4, proteus7 二、实验过程(实验步骤、记录、数据、分析)

(1)在Keil uVision4中编写和编译C51程序,生成可执行文件; (2)在uVision4中启动ISIS的仿真运行,并进行联机调试。 【实验代码】 #include<> unsigned char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x58,0x5e,0x79,0x71}; unsigned char count=0; sbit P0_4=P0^4; void INT_0SRV() interrupt 0 { P0_4 = ~P0_4; } void INT_1SRV() interrupt 2 { count++; if(count==16) count = 1; P2 = led_mod[count]; } void main(){ P2=0x00; P0_4=0x01; EA=1; EX0=1; EX1=1; IT1=1; IT0=1;

实验六 8259中断控制(1)

实验六8259中断控制(1) 一.实验目的 1. 学习8086/8088 CPU中断系统的知识。 2. 学习8259中断控制器的使用。 二.实验要求 编写程序,使8255的A口控制双色灯。CPU执行主程序时四个绿灯亮。用+pulse作为8259的IR2的输入信号,向CPU请求中断。CPU在中断服务程序中熄灭绿灯,并使红灯亮。中断服务程序结束,又返回主程序,再使绿灯亮。 三.实验电路及连线

1.将8255的PA0~PA3接双色灯的DG1~DG4。 2.将8255的PA4~PA7接双色灯的DR1~DR4。 3.将单脉冲电路的+pulse接8259的IR2。 4.将8255的CS接200~207H。 5.将8259的CS接210~217H。 6.将K15插针连上。 四.编程提示 1. 8255初始化:A口方式0输出。 2. 8259初始化:边沿触发。 3. 设置中断矢量,将中断服务程序入口地址送入中断矢量表的相应单元,在本系统中,80000H~800FFH相当于00000H~000FFH,其中用户可用中断矢量表区域为80014H~800FFH。 4. 主程序控制8255 PA0~PA3输出点亮绿灯。 5. 编制中断服务程序,使PA4~PA7输出点亮红灯,关闭绿灯。 五.实验步骤 1. 编制程序。 2. 在PC机上编辑、汇编及连接。 3. 在实验板上按实验连线要求连接硬件线路(注意先关闭实验板电源)。 4. 连接实验板与PC机的串行通信线,开实验板电源。 5. 将程序从PC机送入实验板。 6. 运行程序,此时双色灯绿灯亮,表明在运行主程序。 7. 按一下+pulse按钮,应当红灯亮绿灯灭,表明在执行中断服务程序;过一会儿红灯熄灭了,绿灯又亮了起来,表明中断服务程序已返回了主程序。 六.实验报告 应包括画电路图、试验程序框图、编程(要有注释)、调试过程及心得体会等。

单片机中断实验报告

人的一生要疯狂一次,无论是为一个人,一段情,一段旅途,或一个梦想 ------- 屠呦呦 实验三定时器中断实验 一、实验目的 1、掌握51单片机定时器基本知识; 2、掌握定时器的基本编程方法; 3、学会使用定时器中断。 二、实验内容 1、利用定时器设计一个秒表,计数范围为0—59,并在数码管实时显示。 三、实验设备 PC 机一台、单片机实验箱 主要器件:AT89C52、7SEG-BCD、 四、实验步骤 1、使用Proteus设计仿真原理图; 2、使用Keil设计程序; 3、联合调试仿真。 五、实验流程图 六、实验程序与结果 #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1;

void timer1_init() { TMOD=0x10;//将定时器1设置为工作方式1 TH1=(65536-6000)/256;//定时器每加一时间为1/fsoc,定时时间为1/500 //(1/500)s/(1/3000000)s=6000 TL1=(65536-6000)%256;//fsoc=3000000,所以装入16位定时器中值为65536-6000 EA=1; ET1=1; TR1=1; } void main() { timer1_init(); while(1); } void timer1() interrupt 3 { TH1=(65536-6000)/256;//每次进入中断,重装初值TL1=(65536-6000)%256; F=~F;//每次进入中断P1.1口取反 } #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1; void timer0_init() {TMOD=0x01;//将定时器0设置为工作方式1 TH0=(65536-83)/256;//定时器每加一时间为1/fsoc,定时时间为2Khz,既500us //500us/6us=83.3333 TL0=(65536-83)%256;//fsoc=6000000,所以装入16位定时器中值为65536-83 EA=1; ET0=1; TR0=1; }void main() { timer0_init(); while(1); } void timer0() interrupt 1 { TH0=(65536-83)/256;//每次进入中断,重装初值 TL0=(65536-83)%256; F=~F;//每次进入中断P1.1口取反,表示定时时间到 } #include // 包含51单片机寄存器定义的头文件 #define seg_data P1 #define seg_data2 P3 #define uint unsigned int sbit D1=P2^0; //将D1位定义为P2.0引脚 uint counter=0; unsigned int unit=0,decade=0,avs=0;//time=0;

中断实验报告

沈阳工程学院 学生实验报告 实验室名称:微机原理实验室实验课程名称:微机原理及应用 实验项目名称:8259中断控制器实验实验日期:年月日 班级:姓名:学号: 指导教师:批阅教师:成绩: 一.实验目的 1.熟悉8086中断系统及8259的扩展方法。 2.理解8259中断控制器的工作原理。 3.初步掌握8259的应用编程方法。 二.实验设备 PC机一台,TD-PITE实验装置一套。 三.实验内容 1.实验原理 (1)在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器:一个为主控制器,一个为从控制器。从片的INT连接到主片的IR2信号上构成两片8259的级联。主片8259的中断请求信号IR6和IR7开放,从片的中断请求信号IR1开放,以供实验使用。 (2)单次脉冲输出与主片8259的MIR7相连,每按动一次单次脉冲开关,产生一个外部中断,在显示器上输出一个字符。 8259中断实验接线图 2.实验步骤 (1)补全实验程序,按实验接线图接线。 (2)对实验程序进行编译、链接无误后,加载到实验系统。 (3)执行程序,并按动单次脉冲开关KK1或KK2,观察程序执行结果。 3.程序清单 SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:SSTACK START: PUSH DS MOV AX, 0000H MOV DS, AX ·1·

8259中断控制实验 ·2· MOV AX, OFFSET MIR7 ①MOV SI, ( ) MOV [SI], AX MOV AX, CS ②MOV SI, ( ) MOV [SI], AX CLI POP DS MOV AL, 11H OUT 20H, AL MOV AL, 08H OUT 21H, AL MOV AL, 04H OUT 21H, AL MOV AL, 01H OUT 21H, AL MOV AL, ( ) OUT 21H, AL STI AA1: NOP JMP AA1 MIR7: STI CALL DELAY MOV AX, 0137H INT 10H MOV AX, 0120H INT 10H MOV AL, 20H OUT 20H, AL IRET DELAY: PUSH CX MOV CX, 0F00H AA0: PUSH AX POP AX LOOP AA0 POP CX RET CODE ENDS END START 四.实验结果及分析 根据实验回答下列问题: 1.按动单次脉冲输入KK1后,屏幕显示字符 。 2.分析中断矢量地址能改成别的数值吗?为什么? 3.改变接线,KK1连接MIR6。修改程序行①为 ,修改程序行②为 ,重新设置中断向量,以及中断屏蔽字改为 。 4.如果输出数字9,如何修改程序? 5.如何屏蔽MIR7上的中断请求?按下KK1会有什么现象? 6.选做:如果采用级联方式扩展一片8259从片,应如何修改程序呢?请将程序写在背面。 成绩评定 对实验原理的掌握情况 2 1 0 — 实验步骤正确性 3 2 1 0 实验数据记录正确性 2 1 0 — 实验结果及分析的正确性 3 2 1 成 绩 批阅教师: 20 年 月 日

8259中断控制实验

本科实验报告 课程名称:接口实验 姓名: 学院: 系: 专业: 学号: 指导教师: 2015年12 月26 日

浙江大学实验报告 课程名称:接口实验实验类型:普通实验 实验项目名称:8259中断控制实验 学生姓名:专业:学号: 同组学生姓名:指导老师: 实验地点:实验日期:2015年12月22日 一、实验目的和要求: 1.掌握中断的工作原理及编程方式,掌握8259中断控制器工作原理,了解中断控制芯片的初始化及工作方式的设定,熟悉实验中涉及到的各寄存器的使用方法,学会中断程序的编写。 2.学会中断控制器8259接口电路的应用和中断服务程序的编写。 3.了解PCI总线目标接口适配器PCI9052的使用,学会其中断及状态的控制。 二、实验内容和原理 8259中断控制电路: 在PC机中,主板上的两片8259可编程中断控制芯片以主从结构为系统提供了15级中断(每片8级,其中一级作为级联)。从片的中断请求信号INT 与主片的IRQ2相连。其中给用户保留的中断号有IRQ10、IRQ11、IRQ12、和IRQ15,这些中断级都设置在从片上。 主片:IRQ0——T/C0 IRQ1——键盘中断 IRQ2——8259从片 IRQ3——串口2 IRQ4——串口1 IRQ5——并行口2 IRQ6——软盘控制器 IRQ7——并行口1

从片:IRQ8——实时时钟中断 IRQ9——RE —DTNECT IRQA ——保留 IRQB ——保留 IRQC ——保留 IRQD ——协处理器 IRQE ——硬盘控制器 IRQF ——保留 70H 73H 77H 76H 75H 74H 72H 71H PC 机中8259中断管理设有相应的矢量地址,主片的IRQ0—IRQ7对应为08H —0FH ,从片的IRQ8—IRQ15对应为70H —77H 。主片的中断控制寄存器ISR 和中断屏蔽寄存器IMR 的端口地址分别为20H 和21H ,从片的中断控制寄存器ISR 和中断屏蔽寄存器IMR 的端口地址分别为0A0H 和0A1H 。 中断初始化编程时,若使用主片中的中断级,只需打开主片屏蔽寄存器的相应屏蔽级,并在中断处理完毕后发中断结束命令EOI ;而使用从片中的中断级,除对从片相应的级作出处理,还需打开主片IRQ2相应的屏蔽寄存器位,并在中断处理完毕后对主片和从片都要发中断结束命令EOI 。 9052的中断控制寄存器: 偏移地址为4CH 的32位寄存器。其中高19位为保留位,低13位可根据需要进行8位、16位操作。实验仪上的中断源信号必须通过9052控制器

单片机指示灯和数码管的中断控制实验报告

实验四、指示灯和数码管的中断控制 一、实验目的 掌握外部中断的工作原理,学会中断程序设计。 二、实验内容 1、按照教材图A.53,绘制实验四电路原理图; 2、要求采用外部中断原理完成本次实验,其中按键K1、K2均设置为下降沿触发方式,自然优先级; 3、编写C51程序实现如下功能:开机后D1灭灯,LED1黑屏,随后单击K1→D1状态反转,单击K2 →LED1从0开始循环显示0~F字符。 4、观察仿真结果,完成实验报告。 三、实验要求 提交的实验报告中应包括:电路原理图,外部中断工作原理阐述(以K1为例说明中断响应过程),C51源程序(含流程图与注释语句),运行效果(含运行截图与说明),实验小结。 提交实验报告的电子邮件主题及存盘文件名格式如,2005041220马晓明实验四。 1、电路原理图 2、外部中断工作原理阐述

持续按下K1则D1将“亮→灭→亮→灭→亮→灭如此循环,表明实现了K1对应于D1状态反转这个功能;持续按下持续按K2则数码显示管依次显示1-F,实现了K2对应于0~F间的数码管加一计数显示。 3、C51程序 #include sbit P0_4=P0^4; unsigned char count=0; unsigned led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0 x5e,0x79,0x71}; void main(){ P2=0x00; P0_4=0; EA=1; EX1=EX0=1; IT1=IT0=1; while(1); } void INT_OSVR() interrupt 0 {P0_4=!P0_4;} void INT_1SVR() interrupt 2

单片机指示灯和数码管的中断控制实验报告

实验四、指示灯与数码管的中断控制 一、实验目的 掌握外部中断的工作原理,学会中断程序设计。 二、实验内容 1、按照教材图A、53,绘制实验四电路原理图; 2、要求采用外部中断原理完成本次实验,其中按键K1、K2均设置为下降沿触发方式,自然优先级; 3、编写C51程序实现如下功能:开机后D1灭灯,LED1黑屏,随后单击K1→D1状态反转,单击K2 →LED1从0开始循环显示0~F字符。 4、观察仿真结果,完成实验报告。 三、实验要求 提交的实验报告中应包括:电路原理图,外部中断工作原理阐述(以K1为例说明中断响应过程),C51源程序(含流程图与注释语句),运行效果(含运行截图与说明),实验小结。 提交实验报告的电子邮件主题及存盘文件名格式如,2005041220马晓明实验四。 1、电路原理图 2、外部中断工作原理阐述

持续按下K1则D1将“亮→灭→亮→灭→亮→灭如此循环,表明实现了K1对应于D1状态反转这个功能;持续按下持续按K2则数码显示管依次显示1-F,实现了K2对应于0~F间的数码管加一计数显示。 3、C51程序 #include sbit P0_4=P0^4; unsigned char count=0; unsigned led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0 x5e,0x79,0x71}; void main(){ P2=0x00; P0_4=0; EA=1; EX1=EX0=1; IT1=IT0=1; while(1); } void INT_OSVR() interrupt 0 {P0_4=!P0_4;} void INT_1SVR() interrupt 2

单片机中断实验报告

实验三定时器中断实验 一、实验目的 1、掌握51单片机定时器基本知识; 2、掌握定时器的基本编程方法; 3、学会使用定时器中断。 二、实验内容 1、利用定时器设计一个秒表,计数范围为0—59,并在数码管实时显示。 三、实验设备 PC 机一台、单片机实验箱 主要器件:AT89C52、7SEG-BCD、 四、实验步骤 1、使用Proteus设计仿真原理图; 2、使用Keil设计程序; 3、联合调试仿真。 五、实验流程图 六、实验程序与结果 #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1; void timer1_init() 开始 设置显示初值启动定时器 判断是否到59 继续 是 否

{ TMOD=0x10;//将定时器1设置为工作方式1 TH1=(65536-6000)/256;//定时器每加一时间为1/fsoc,定时时间为1/500 //(1/500)s/(1/3000000)s=6000 TL1=(65536-6000)%256;//fsoc=3000000,所以装入16位定时器中值为65536-6000 EA=1; ET1=1; TR1=1; } void main() { timer1_init(); while(1); } void timer1() interrupt 3 { TH1=(65536-6000)/256;//每次进入中断,重装初值TL1=(65536-6000)%256; F=~F;//每次进入中断P1.1口取反 } #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1; void timer0_init() {TMOD=0x01;//将定时器0设置为工作方式1 TH0=(65536-83)/256;//定时器每加一时间为1/fsoc,定时时间为2Khz,既500us //500us/6us=83.3333 TL0=(65536-83)%256;//fsoc=6000000,所以装入16位定时器中值为65536-83 EA=1; ET0=1; TR0=1; }void main() { timer0_init(); while(1); } void timer0() interrupt 1 { TH0=(65536-83)/256;//每次进入中断,重装初值 TL0=(65536-83)%256; F=~F;//每次进入中断P1.1口取反,表示定时时间到 } #include // 包含51单片机寄存器定义的头文件 #define seg_data P1 #define seg_data2 P3 #define uint unsigned int

第5章 中断系统 - 3

【实例4】【P108】根据下图所示的数码管显示与按键电路,编程验证两级外部中断嵌套效果。此外,利用发光管验证外部中断请求标志IE0在脉冲触发中断时的硬件置位与撤销过程。 #include //林立P108例题 char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(unsigned int count) { unsigned char i; while(count--) for(i=0;i<120;i++); } void key0(void) interrupt 0 // P3.2 { unsigned char i; for(i=0; i<=9; i++) { P2=led_mod[i]; delay(1000); } P2=0x40; //循环显示完“0”~“9”之后,显示“-”

void key1(void) interrupt 2 //P3.3 { unsigned char i; for(i=0; i<=9; i++) { P1=led_mod[i]; delay(1000); } P1=0x40; } void main(void) { unsigned char i; TCON=0x05; // 0x05= 0000 0101,最好写成IT0=1,IT1=1 PX0=0; PX1=1; //INT1 高优先级 P1=0x40; P2=0x40; IE=0x85; // 0x85=1000 0101, EA=1, EX1=1,EX0=1 while(1) { for(i=0;i<=9;i++) { P0=led_mod[i]; delay(1000); } } } 5.6 扩充外部中断源 实际应用中,两个外部中断请求源往往不够用,需对外部中断源进行扩充,如图5-10所示。系统有5个外部中断请求源IR0~IR4,高电平有效。 INT,优先级高的请求源IR0直接接到80C51的一个外部中断请求输入端0 其余4个请求源IR1~IR4通过各自的OC门(集电极开路门)连到80C51的另 INT,同时还连到P1口的P1.0~P1.3脚,供80C51查询。一个外中断源输入端1 图5-10所示电路,除了IR0优先权级别最高外,其余4个外部中断源的中断优先权的高与低取决于查询顺序。

8259A中断实验

实验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.ASM ASSUME CS: CODE INTPORT1 EQU 0FF80H INTPORT2 EQU 0FF81H INTQ3 EQU INTREEUP3 INTQ7 EQU INTREEUP7 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 12D0H START: JMP START0 BUF DB ?,?,?,?,?,? intcnt db ? data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h, 0c6h,0a1h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: CLD ;递加 CALL BUF1 ;写显示缓冲初值 CALL WRINTVER ;写中断向量 MOV AL,13H ;写ICW1 MOV DX,INTPORT1 OUT DX,AL MOV AL,08H ;写ICW2 MOV DX,INTPORT2 OUT DX,AL MOV AL,09H ;写ICW4 OUT DX,AL MOV AL,0F7H ;写OCW1 OUT DX,AL MOV intcnt,01H ;中断计数初值 STI ;开中断 WATING: CALL DISP ;DISP 8259-1

实验五 定时中断及数码管显示实验(3课时)20140506

实验五定时中断及数码管显示实验(3课时) 1.对P1口所接8只发光二极管,编写相应的程序使发光二极管循环点亮。其中每一个发光二极管亮的时间为0.5S,0.5S的时间要求用定时中断实现。(已知单片机晶振频率为12 .00MHz) 2.采用定时器设计一分钟倒计时器,通过P1口显示计时状态,每过1S时间8个发光二极管最右边一个亮一次,一分钟时间到时全部8个二极管都亮。(已知单片机晶振频率为12 .00MHz) 3. 用八段数码管显示自己的生日:年月日各两位。 实验报告 实验五 1. 实验目的和要求 ①对P1口所接8只发光二极管,编写相应的程序使发光二极管循环点亮。其中每一个发光二极管亮的时间为0.5S,0.5S的时间要求用定时中断实现。(已知单片机晶振频率为 12 .00MHz) ②采用定时器设计一分钟倒计时器,通过P1口显示计时状态,每过1S时间8个发光二极管最右边一个亮一次,一分钟时间到时全部8个二极管都亮。(已知单片机晶振频率为 12 .00MHz) ③用八段数码管显示自己的生日:年月日各两位。 2. 主要仪器设备 ①笔记本电脑 ②51单片机 3. 实验内容 ①对P1口所接8只发光二极管,编写相应的程序使发光二极管循环点亮。其中每一个发光二极管亮的时间为0.5S,0.5S的时间要求用定时中断实现。(已知单片机晶振频率为12 .00MHz) 源程序: #include #define uint unsigned int #define uchar unsigned char char i=100; uchar temp; void display()

中断实验报告

上机实验报告课程名称计算机接口与外设上机内容中断实验 学院计算机学院 专业计算机科学与技术班级 学号 学生姓名 指导教师吴以凡 完成日期2014-12-9

一、实验目的 1、掌握8259中断控制器的工作原理。 2、学会编写中断服务程序。 二、实验内容及成果展示 实验1:使用软中断 代码: start: M OV AX,DATA M OV DS,AX CLI M OV SI,0CH*4 M OV AX, OFFSET INTSERVICE ;中断入口偏移地址 M OV ES:[SI], AX M OV AX, SEG INTSERVICE ;中断入口的段地址 M OV ES:[SI+2], AX S TI ;开中断 M OV AL,CNT ; 初始CNT=1 M OV DX,0000H ; led的地址 O UT DX,AL ;开始第一个灯亮 LI: CALL INTSERVICE ;调用软件中断 C ALL DELAY ;延时 J MP LI ;中断服务程序---------------------------------- INTSERVICE PROC P USH DS M OV AL,CNT ;cnt=1; R OL AL,1 ;cnt=cnt<<1 M OV CNT,AL

M OV DX,0000H ;led=cnt<<1 O UT DX,AL P OP DS INTSERVICE ENDP ;------------------------------------------------- ;软件延时子程序---------------------------------- DELAY PROC P USH BX ;这里用到堆栈 P USH CX M OV BX,1 L P2:MOV CX,0 L P1:LOOP LP1 D EC BX J NZ LP2 P OP CX P OP BX R ET DELAY ENDP code ENDS END start实验结果: 实验2:使用1片8259A + 按钮硬件中断

微机原理与接口技术 实验报告

微机原理与接口技术 实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名:

实验一8259中断控制器应用实验 一、实验目的 1.掌握PC机中断处理系统的基本原理。 2. 掌握可编程中断控制器8259的应用编程方法。 二、实验内容 1.PC机内中断实验。使用单次脉冲模拟中断产生。验证中断处理程序,在显示器屏幕上显示一行预设定的字符串。 2.PC机内中断嵌套实验。使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌套的过程。 3.扩展多中断源查询方式应用实验。利用实验平台上8259控制器作为中断扩展源,编写程序对8259控制器的中断请求进行处理。 三、实验步骤 1.实验1-1:PC机内中断应用实验 (1)按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,屏幕显示结果截图如下: (2)自设计实验。改变接线方式,将单次脉冲连到USB核心板上的IRQ10插孔上,参考本实验代码,编程实现IRQ10中断。(注意:考虑PC机内中断级联的方式,参看前面的原理说明),代码如下: DA TA SEGMENT MESS DB 'IRQ10 ',0DH,0AH, '$' DA TA ENDS

CODE SEGMENT ASSUME CS:CODE, DS:DA TA START: MOV AX, CS MOV DS, AX MOV DX,OFFSET INT10 MOV AX,2572H ;设置IRQ10对应的中断向量 INT 21H IN AL,21H ;读取中断屏蔽寄存器 AND AL,0F3H ;开放IRQ3中断和从片 OUT 21H,AL IN AL,0A1H ;从片的中断屏蔽寄存器 AND AL,0FBH ;开放IRQ10中断 OUT 0A1H,AL MOV CX,10 STI WAIT: JMP W AIT INT10: MOV AX, DATA ;中断服务程序 MOV DS, AX MOV DX, OFFSET MESS MOV AH, 09 ;在屏幕上显示每次中断的提示信息 INT 21H MOV AL, 20H ; 发出EOI结束中断到PC内主片的地址20H OUT 20H, AL LOOP NEXT IN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字 OR AL, 08H ;关闭IRQ3中断 OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器 STI ;置中断标志位 MOV AH, 4CH ;返回DOS INT 21H NEXT: IRET ;中断返回 CODE ENDS END START 调用程序代码,观察实验现象,屏幕显示截图如下:

8259中断实验

XX学院 实验报告 实验名称 姓名 学号 班级 教师 日期

一、实验内容与要求 1.1 实验内容 本次实验分为如下3个子实验: (1)单中断请求实验:利用系统总线上中断请求信号MIR7,设计一个单一中断请求实验; (2)双中断优先级实验:利用系统总线上中断请求信号MIR6和MIR7,设计一个双中断优 先级应用实验,观察8253对中断优先级的控制; (3)级联中断实验:利用系统总线上中断请求信号MIR7和SIR1,设计一个级联中断应用 实验。 1.2 实验要求 本次实验中三个子实验的实验要求如下: (1)单中断请求实验:单脉冲KK1+与主片8259的IR7相连。每按KK1+,进入一次中断, 输出7; (2)双中断优先级实验:单脉冲KK1+连主片8259的IR7,KK2+连其IR6。每当KK1+按 下时显示“7”,每当KK2+按下显示“6”; (3)级联中断实验:单脉冲KK1+连主片8259的IR7,KK2+连从片的IR1。每当KK1+按 下时显示“M7”,每当KK2+按下显示“S1”。 二、实验原理与硬件连线 2.1 实验原理 (1)中断控制器8259简介 在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。 在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的内部连接及外部管脚引出如图1-1:

指示灯开关的中断控制单片机实验报告

嘉应学院物理与光信息科技学院单片机原理及应用实验 学生实验报告 实验项目:指示灯/数码管的中断控制 实验地点:工A310 班级: 姓名: 座号: 指导老师:老师 实验时间:年月日

一、实验目的 掌握外部中断原理,学习中断编程与程序调试方法。 二、实验原理 实验原理图如图所示: 图中按键K1和K2分别接于P3.2和P3.3,发光二极管D1接于P0.4,共阴极数码管LED1接于P2口。时钟电路、复位电路、片选电路忽略。 在编程软件的配合下,要求实现如下功能:程序启动后,D1处于熄灯、LED1处于黑屏状态;单击K1,可使D1亮灯状态反转一次;单击K2,可使LED1显示值加1,并按十六进制数显示,达到F后重新从1开始。 编程原理为:K1和K2的按键动作分别作为INT0和INT1的中断请求,在中断函数中进行指示灯与数码管的信息处理。初始化后,主函数处于无限循环状态,等待中断请求。三、实验内容: (1)熟悉μVision3的软件调试方法; (2)完成实验4的C51语言编程; (3)掌握在μVision3与ISIS的联机仿真方法。 四、实验步骤 1、提前阅读与实验4相关的阅读材料; 2、参考书本实验4,在ISIS中完成电路原理图的绘制: (1).启动ISIS模块 从Windows的“开始”菜单中启动Proteus ISIS模块,可进入仿真件的主界面,如图所示

可以看出,ISIS的编辑界面是标准的Windows软件风格,由标准工具栏、主菜单栏、绘图工具栏、仿真控制工具栏、对象选择窗口、原理图编辑窗口和预览窗口等组成。 (2).元件和电源的选取、摆放及属性编辑,总线与标签的画法等内容 元件的选取:单击左侧绘图工具栏中的“元件模式”按観和对象选择按観“P”,弹出“Pick Devices”元件选择窗口,如图: 摆放元件: 单击对象选择列表中的元件名称,预览窗口中出现的图形单击编辑窗口,元件以红色轮廓图形出现(选中状态),拖动鼠标使元件轮廓移动到所需位置,再次单击可固定摆放位置,同时也撤销选中状态(变为黑色线条图形)。 编辑属性与总线: 对摆放好的元件双击或者右键后选择“编辑属性”即可对元件的属性进行修改。 最后效果图为:

中断实验报告报告

中断试验试验报告 班级:电信1001 姓名:张贵彬学号:201046830213 一、实验目的 1、掌握PC机中断处理系统的基本原理。 2、学会编写中断服务程序。 二、实验原理与内容 1、实验原理 PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源: 中断源中断类型号中断功能 IRQ0 08H 时钟 IRQ1 09H 键盘 IRQ2 0AH 保留 IRQ3 OBH 串行口2 IRQ4 0CH 串行口1 IRQ5 0DH 硬盘 IRQ6 0EH 软盘 IRQ7 0FH 并行打印机 8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。对于PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级连,对外可以提供16个中断源: 中断源中断类型号中断功能 IRQ8 070H 实时时钟 IRQ9 071H 用户中断 IRQ10 072H 保留 IRQ11 O73H 保留 IRQ12 074H 保留 IRQ13 075H 协处理器 IRQ14 076H 硬盘 IRQ15 077H 保留 TPC-USB实验板上,固定的接到了3号中断IRQ3上,即进行中断实验时,所用中断类型号为0BH。 2、实验内容 实验电路如图9-1,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。要求每按一次开关产生一次中断,在屏幕上显示一次“TPCA Interrupt!”,中断10次后程序退出。 三、实验电路图

单片机第五章答案

5-3. 现有存储容量为512K×4、1K×4、2K×8、4K×1、8KB、512KB和4MB的存储器,试问这些存储器分别有多少条地址线和数据线(设它们均为非动态RAM)? 5-8 要在单片机片外扩展16KB数据存储器,选择其地址为0000~3FFFH。如选用6264 为存储器芯片,74LS138为译码器,试画出硬件的连接图。(图中右边的6116应该改为6264) 74LS138 5-9 要在单片机片外扩展32KB数据存储器,选择其地址为8000H~FFFFH。如选用线 选法,试设计其硬件的连接图。

5-10写出图5-43中#1~#7存储器的寻址范围,片选信号低电平有效,其中#1~#3为2KB 的ROM;#4~#7为1KB的RAM. 1#:8000H----87FFH 2#:8800H----8FFFH 3#:9000H----97FFH 4#:0A000H—0A3FFH 5#:0A400H---0A7FFH 6#:0A800H---0ABFFH 7#:0AC00H---0AFFFH 5-11 决定8155端口地址的引脚有哪些?IO/M的作用是什么?T/IN和T/OUT的作用是什么? 1. AD0~AD7(8条)三态地址/数据线 控制总线(8条) I/O总线(22条) 电源线(2条) 2. IO/M为I/O口及存储器选择信号,若IO/M=0,则选择存储器;否则 选择I/O口; 3. T/IN为定时器输入,定时器工作所需的时钟信号由此端输入。T/OUT 为定时器输出; 5-13 LED数码管显示器在单片机系统中有哪几种显示方式? LED显示器的显示方式可分为静态显示和动态显示两种。 静态显示是指每个数码管的段选线控制是独立的,其特点是各LED管能稳定地同时显示各自的字形。 动态显示又称扫描显示方式,它是将每个数码管的段选线同名相连,在某一时刻只让一根位选线有效,同时在段选线上输出该位要显示的字形码,在下

相关文档
相关文档 最新文档