实验三 键盘中断实验报告

实验三 键盘中断实验报告
实验三 键盘中断实验报告

《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所示,

微机原理实验4——子程序的定义与调用

班级:计科1202班姓名:陈秉耀学号:201216010106 实验4——子程序的定义与调用 1、实验目的 掌握子程序编写和调用; 掌握子程序的参数传递和返回值的获取方法; 2、实验内容 实验2(2):“调用DOS中断,完成字符串的以下输入和输出操作。具体要求是:①调用INT 21H的AH=09H子功能输出提示信息“Input String:”,②调用INT 21H的AH=0AH 子功能输入一个字符串,③输出回车(ASCII码为0DH)、换行(ASCII码为0AH),④将输入字符逐一改大写后输出。 设计四个子程序,分别对应上面每一小步子功能,在主程序调用。 ============================================================================ ==== 实验报告 ============================================================================ ==== DATAS SEGMENT ;此处输入数据段代码 keynum =255 string db keynum;定义键盘需要的缓冲区 db 0 db keynum dup(0) string1 db'Input String',"$" DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 call dp1 call dp2 call dp3 call dp4 MOV AH,4CH INT 21H ;输出提示信息Input String dp1 proc

PSOC3外部中断实验报告

一.实验名称 ●中断实验 二.实验任务 ●了解PSoC3中断的构成,特点。 ●掌握PSoC3中断函数的编写 ●按键控制LED灯亮灭。 ●利用轻触按键K3分别产生PSoC3器件I/O口下降沿触发每 触发一次中断,LED1、LED2状态翻转一次。 三.实验设备及环境 ●微型计算机(安装了Psoc creator3.1集成开发软件) ●PSoC实验平台 ●DC9V电源 ●导线若干 四.原理: ●32个中断向量,每个中断向量对于多个中断源 ●可配置的中断入口向量地址 ●灵活的中断源 ●每个中断可独立的使能和禁制 ●每个中断可以设置8级中断优先级

●8级中断嵌套 ●软中断 ●程序可清除正在响应的中断 电平触发 边沿触发 五.具体步骤 1.新建工程 ●双击打开PSoC Creator软件 ●File -> New – Project,在Design栏中使用默认选择的 Empty PSoC 3 Design

●在“Name”框中输入新工程名称Timer,在“Location”框 中输入其存放路径 ●回到创建新工程对话框,点击“OK”,完成新工程的创建 2.绘制原理图 3.设置模块参数 ●设置Pin_1模块参数 ?Name:LED1 ?去掉 HW Connection前的勾 ?General:取默认 ?Drive Mode:Strong Drive ?Initial State:Low(0)

●设置Pin_2模块参数,与上一步相同 4.代码编写 ●主程序编写 #include CY_ISR(SWPin_Control) { if(InputPin_Read() == 1u) { OutputPinSW_Write(0u); } else { OutputPinSW_Write(1u); } InputPin_ClearInterrupt(); } int main() {

计算机组成原理中断实验报告

北京建筑大学 2015/2016 学年第二学期 课程设计 (签名) 计算机组成综合实验任务书

?5、利用上端软件,把所编写的微程序控制器内容写入实验台中控制器中。 ?6、利用单拍测试控制器与编程的要求是否一致。如果有错误重新修改后再写入控制器中。 7、编写一段测试程序,测试控制器运行是否正确。 实验目的 1.融合贯通计算机组成原理课程,加深对计算机系统各模块的工作原理及相互联系(寄存器堆、运算器、存储器、控制台、微程序控制器)。 2.理解并掌握微程序控制器的设计方法和实现原理,具备初步的独立设计能力;3.掌握较复杂微程序控制器的设计、调试等基本技能;提高综合运用所学理论知识独立分析和解决问题的能力。 实验电路 1. 微指令格式与微程序控制器电路 2.微程序控制器组成 仍然使用前面的CPU组成与机器指令执行实验的电路图,但本次实验加入中断系统。这是一个简单的中断系统模型,只支持单级中断、单个中断请求,有中断屏蔽功能,旨在说明最基本的原理。 中断屏蔽控制逻辑分别集成在2片GAL22V10(TIMER1 和TIMER2)中。其ABEL语言表达式如下:

INTR1 := INTR; INTR1.CLK = CLK1; IE := CLR & INTS # CLR & IE & !INTC; IE.CLK= MF; 时, 制逻辑传递给CPU的中断信号,接到微程序控制器上。当收到INTR脉冲信号时,若中断允许位INTE=0,则中断被屏蔽,INTQ仍然为0;若INTE =1,则INTQ =1。 为保存中断的断点地址,以便中断返回,设置了一个中断地址寄存器IAR。第二节图4中的IAR(U19)就是这个中断地址寄存器,它是一片74HC374,有LDIAR和IAR_BUS#两个信号输入端,均连接至微程序控制器。LDIAR信号的上升沿到达时,来自程序计数器PC的

实验八、九 子程序、中断程序实验

实验八子程序实验 一、实验目的 1、掌握全局、局部变量的定义与作用; 2、熟悉无参子程序和有参子程序的建立和调用方法 3、进一步熟悉常用功能指令(加、减、数据类型转换、循环等(另:自学内容已经布置:数学运算指令和数据转换指令) 二、实验设备 TKPLC-1实验实训装置一台,装有STEP7软件的计算机一台,西门子编程电缆一根、连接导线若干。 三、实验内容与步骤 1、不带参数子程序调用例子:设置存储器位或字节的几种方法(注意符号的定义与使用,其它功能指令的学习包含在子程序和中断程序实验中。下同) 本程序描述了用一定值存入预定的存储器位或字节,以及清除存储区内容的几种方法 采用下列指令: FILL 设置一个或几个字 FOR...NEXT FOR...NEXT循环 R 对一位或几位置0 输入以下子程序和主程序,注意体会各指令作用及符号的使用。 子程序0功能:如果输入I0.0=1,则把VW200中值复制到VW204至VW216

子程序1功能:当输入I0.1=1时,把几个初始数复制到变量存储区。循环次数取决于VW10中的首次循环数和VW0中的最后一次循环数。当前循环次数存储在内存字VW20中,首次计数值(50)存储在累加器AC0中,计数值缓冲区首址(& VB100)存储在累加器AC1中,AC1为计数值缓冲区指针,每循环一次的功能:AC0的计数值存入AC1指针所指向的内存单元,AC1指针加2个字节,指向下一个内存字,AC0的计数值加4,直至最后一次循环。

子程序2的功能,使V100.0开始的176个位复位,V204.0开始的112个位复位。

2、带参数子程序的调用例子:求变量区和。 局部变量设置表: 子程序功能:求VW100开始的10个数据字的和。先将整形数转为双整型数,再加,指针值每次增2,循环10次。注意体会各指令作用。

中断实验报告

沈阳工程学院 学生实验报告 实验室名称:微机原理实验室实验课程名称:微机原理及应用 实验项目名称: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 年 月 日

单片机中断实验报告

人的一生要疯狂一次,无论是为一个人,一段情,一段旅途,或一个梦想 ------- 屠呦呦 实验三定时器中断实验 一、实验目的 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;

单片机实验四报告材料_外中断实验

大学实验报告 学生:学号:专业班级: 实验类型:?验证?综合■设计?创新实验日期:2018.05.29 实验成绩: 实验四外中断实验 (一)实验目的 1.掌握单片机外部中断原理; 2.掌握数码管动态显示原理。 (二)设计要求 1.使用外部中断0和外部中断1; 2.在动态数码管上显示中断0次数,中断1用作次数清0,数码管采用74HC595驱动。 (三)实验原理 1.中断 所谓中断是指程序执行过程中,允许外部或部时间通过硬件打断程序的执行,使其转向为处理外部或部事件的中断服务程序中去,完成中断服务程序后,CPU返回继续执行被打断的程序。如下图所示,一个完整的中断过程包括四个步骤:中断请求、中断响应、中断服务与中断返回。 当中断请求源发出中断请求时,如果中断请求被允许的话,单片机暂时中止当前正在执行的主程序,转到中断处理程序处理中断服务请求。中断服务请求处理完后,再回到原来被中止的程序之处(断电),继续执行被中断的主程序。 如果单片机没有终端系统,单片机的大量时间可能会浪费在是否有服务请求发生的查询操作上,即不论是否有服务请求发生,都必须去查询。因此,采用中断技术大大地提高了单片机的工作效率和实时性。

2.IAP15W4K58S4单片机的中断请求 IAP15W4K58S4单片机的中断系统有21个中断请求源,2个优先级,可实现二级中断服务嵌套。由IE、IE2、INT_CLKO等特殊功能寄存器控制CPU是否相应中断请求;由中断优先级高存器IP、IP2安排各中断源的优先级;同优先级2个以中断同时提出中断请求时,由部的查询逻辑确定其响应次序。 中断请求源中的外部中断0(INT0)和外部中断1(INT1)详述如下: (1)外部中断0(INT0):中断请求信号由P3.2引脚输入。通过IT0来设置中断请求的触发方式。当IT0为“1”时,外部中断0为下降沿触发;当IT0为“0”时,无论是上升沿还是下降沿,都会引发外部中断0。一旦输入信号有效,则置位IE0标志,向CPU申请中断。 (2)外部中断1(INT1):中断请求信号由P3.3引脚输入。通过IT1来设置中断请求的触发方式。当IT1为“1”时,外部中断1为下降沿触发;当IT1为“0”时,无论是上升沿还是下降沿,都会引发外部中断1。一旦输入信号有效,则置位E1标志,向CPU申请中断。 中断源是否有中断请求,是由中断请求标志来表示的。在IAP15W4K58S4单片机中,外部中断 0、外部中断1等请求源的中断请求标志分别由特殊功能寄存器TCON和SCON控制,格式如下: (1)TCON寄存器中的中断请求标志。TCON为定时器T0与T1的控制寄存器,同时也锁存T0和T1的溢出中断请求标志及外部中断0和外部中断1的中断请求标志等。格式如下图所示: D7 D6 D5 D4 D3 D2 D1 D0 88H 与中断有关的各标志位功能如下: ①TF1:T1的溢出中断请求标志。T1被启动计数后,从初值做加1计数,计满溢出后由硬件 置位TFI,同时向CPU发出中断请求,此标志一直保持到CPU 响应中断后才由硬件自动清0。 也可由软件查询该标志,并由软件清0。 ②TF0:T0的溢出中断请求标志。T0被启动计数后,从初值做加1计数,计满溢出后由硬件 置位TF0,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清 0。也可由软件查询该标志,并由软件清0。 ③IE1:外部中断1的中断请求标志。当INT1(P3.3)引脚的输入信号满足中断触发要求时,置 位IE1,外部中断1向CPU申请中断。中断响应后中断请求标志自动清0。 ④IT1:外部中断1(INT1)中断触发方式控制位。当(IT1)=1时,外部中断1为下降沿触发方式。 在这种方式下,若CPU检测到INT1出现下降沿信号,则认为有中断申请,随即使IE1标志 置位。中断响应后中断请求标志会自动清0,无须做其他处理。当(T1)=0时,外部中断1为

计算机操作系统 实验报告

操作系统实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 成绩: 2014年 1 月 1 日

实验一线程的状态和转换(5分) 1 实验目的和要求 目的:熟悉线程的状态及其转换,理解线程状态转换与线程调度的关系。 要求: (1)跟踪调试EOS线程在各种状态间的转换过程,分析EOS中线程状态及其转换的相关源代码; (2)修改EOS的源代码,为线程增加挂起状态。 2 完成的实验内容 2.1 EOS线程状态转换过程的跟踪与源代码分析 (分析EOS中线程状态及其转换的核心源代码,说明EOS定义的线程状态以及状态转换的实现方法;给出在本部分实验过程中完成的主要工作,包括调试、跟踪与思考等) 1.EOS 准备了一个控制台命令“loop ”,这个命令的命令函数是 ke/sysproc.c 文件中的ConsoleCmdLoop 函数(第797行,在此函数中使用 LoopThreadFunction 函数(第755 行)创建了一个优先级为 8 的线程(后面简称为“loop 线程”),该线程会在控制台中不停的(死循环)输出该线程的ID和执行计数,执行计数会不停的增长以表示该线程在不停的运行。loop命令执行的效果可以参见下图: 2. 线程由阻塞状态进入就绪状态 (1)在虚拟机窗口中按下一次空格键。 (2)此时EOS会在PspUnwaitThread函数中的断点处中断。在“调试”菜单中选择“快速监视”,在快速监视对话框的表达式编辑框中输入表达式“*Thread”,然后点击“重新计算”按钮,即可查看线程控制块(TCB)中的信息。其中State域的值为3(Waiting),双向链表项StateListEntry的Next和Prev指针的值都不为0,说明这个线程还处于阻塞状态,并在某个同步对象的等待队列中;StartAddr域的值为IopConsoleDispatchThread,说明这个线程就是控制台派遣线程。 (3)关闭快速监视对话框,激活“调用堆栈”窗口。根据当前的调用堆栈,可以看到是由键盘中断服务程序(KdbIsr)进入的。当按下空格键后,就会发生键盘中断,从而触发键盘中断服务程序。在该服务程序的最后中会唤醒控制台派遣线程,将键盘事件派遣到活动的控制台。 (4)在“调用堆栈”窗口中双击PspWakeThread函数对应的堆栈项。可以看到在此函数中连续调用了PspUnwaitThread函数和PspReadyThread函数,从而使处于阻塞状态的控制台派遣线程进入就绪状态。 (5)在“调用堆栈”窗口中双击PspUnwaitThread函数对应的堆栈项,先来看看此函数是如何改变线程状态的。按F10单步调试直到此函数的最后,然后再从快速监视对

微机接口实验报告-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内部结构和引脚图

计算机组成原理 中断实验

实验五中断实验 实验地点:格致A315 实验日期:2016年12月29日 一、实验目的 学习和掌握中断产生、响应、处理等技术; 二、实验说明及内容 说明: 1.要求中断隐指令中执行关中断功能,如果用户中断服务程序允许被中断,必须在中断服务程序中执行EI开中断命令。 2.教学机的中断系统共支持三级中断,由三个无锁按键确定从右到左依次为一、二、三级中断,对应的INT2、INT1、INT0的编码分别是01、10、11,优先级也依次升高。这决定了它们的中断向量(即中断响应后,转去执行的程序地址)为XXX4、XXX8、XXXC;可以看到,每级中断实际可用的空间只有四个字节,故这个空间一般只存放一条转移指令,而真正的用户中断服务程序则存放在转移指令所指向的地址。 3.用户需扩展中断隐指令、开中断指令、关中断指令、中断返回指令及其节拍。内容: 1.扩展中断隐指令。 2.扩展开中断指令EI、关中断指令DI、中断返回指令IRET。 3.确定中断向量表地址。中断向量表是以XXX4H为首地址的一段内存区。高12位由用户通过置中断向量用的插针(在三个无锁按键下方)确定。三级中断对应的中断向量为XXX4H、XXX8H、XXXCH。当有中断请求且被响应后,将执行存放在该中断的中断向量所指向的内存区的指令。 4.填写中断向量表。在上述的XXX4H、XXX8H、XXXCH地址写入三条JR OFFSET转移指令,OFFSET分别对应三段中断服务程序的相对地址。但在本仿真终端中输入时,用户不需要计算偏移量,直接输入要转向的绝对地址即可。 5.编写中断服务程序。中断服务程序可以放在中断向量表之后,中断服务程序可实现在程序正常运行时在计算机屏幕上显示与优先级相对应的不同字符; 6.编写主程序。可编写一死循环程序,等待中断;

外部中断实验

实验二外部中断实验 一.实验目的 1.学习外部中断技术的基本使用方法; 2.学习中断处理程序的编程方法。 二.实验设备及器材配置 1.单片机仿真实验系统。 2.计算机。 3.导线。 三.实验内容 在以下实验题目中任选一个或由老师指定。 1.P1口做输出口,接八只发光二极管,编写程序,使其循环点亮。以单脉冲输出端做为中断申请,当第一次产生外部中断时,使发光二极管全亮,延时1秒后返回中断之前的状态;当第二次产生外部中断时,使发光二极管全灭,延时1秒后返回中断之前的状态;以后如上述一直循环下去。 2.以单脉冲输出端做为中断申请,自行设计连线,用实验箱上的红、绿、黄发光二极管模拟交通灯控制。当有急救车通过时,两交通灯信号为全红,以便让急救车通过,延时10秒后交通灯恢复中断前状态。 四.实验原理说明 本实验中中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能返回中断前P1口及发光二极管的状态。除了保护累加器A、程序状态字PSW外、P1口的状态外,还要注意主程序中的延时程序和中断程序的延时程序不能混用,本实验中,主程序延时程序用的寄存器和中断延时用的寄存器也不能混用。 五.连线方法及实验电路 8031的P1.0—P1.7分别接发光二极管L0—L7,P3.2接单脉冲输出端“ ” 外部中断实验电路如图1-3所示。

图1-3 外部中断实验电路 六.思考题及实验报告要求 1.思考题 (1).试说明51系列单片机外部中断如何使用。 (2).修改程序,外部中断产生时,使发光二极管闪亮移位方向改变。 2.实验报告要求 (1).给出自行设计的程序清单、程序流程图。 (2). 总结实验过程中调试所遇到的问题和解决方法,写出编程调试的经验和体会。 VW集成调试软件使用 1.自建以字母开头的文件夹,推荐在F盘。 2.双击桌面V/W快捷方式 3.左击【文件】-新建文件-保存文件(存于自建文件夹下,以字母开头,后缀为.ASM或.C) 4.左击【文件】-新建项目-(以字母开头,存于自建文件夹下,加入自存的汇编或C源程序) 5.编写程序 6. 左击【项目】-编译,根据提示将提示的错误位置修改,编译,直至程序无错。 7.实验箱断电、连线完毕后,打开实验箱电源开关。左击【仿真器】,在出现的窗口中选择LAB8000\MCS51\8031AH或A T89C51,晶体频率:6000000Hz。 8. 左击【执行】-全速运行,在实验箱上观察运行结果。

单片机中断实验报告

实验三定时器中断实验 一、实验目的 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

实验3 外部中断实验报告

实验三定时中断实验 一、实验目的 1、掌握51单片机外部中断的应用。 2、掌握中断函数的写法。 3、掌握定时器的定时方法。 4、掌握LED数码管的显示。 二、实验内容 1、用外部中断0测量负跳变信号的累计数,同时在LED数码管上显示出来。 2、用外部中断改变流水灯的方式。 3、用定时器T1的方式2控制两个LED以不同周期闪烁。 使用定时器T1的方式2来控制P0、0、P0、1引脚的两个LED分别以1s与2s的周期闪烁。 三、实验仿真硬件图 在Proteus软件中建立如下图所示仿真模型并保存。 1、用外部中断0测量负跳变信号的累计数,同时在LED数码管上显示出来(用中断方式做计数器)。 2、用外部中断改变流水灯的方式。 中断前:开始时,P0、0~P0、7的8个灯依次点亮。 外部中断0:P0、0~P0、7的左右4个灯闪烁亮8次 外部中断1: P0、0~P0、7的8个灯间隔闪烁8次 改变中断优先级与保护现场,观察运行结果 四、编程提示

外部中断0请求 ______ INT,由P3、2管脚输入,通过IT0位来决定就是低电平有效还就是下 降沿有效。一旦输入信号有效,即向CPU申请中断,并建立IE0中断标志。 以外部中断0为例,开放中断源采用以下语句: EA=1; //开放中断总允许位 EX0=1; //开放外部中断0允许位 IT0=1; //置外部中断为边沿(下边沿)触发方式中断函数结构如下: void int_0() interrupt 0 // interrupt 0表示该函数为中断类型号0的中断函数{ } 同级自然优先级: 外部中断0→定时器T0中断→外部中断1→定时器T1中断→串行口中断。 中断优先级别的设定: 实验二要求: 初始状态为P0、0~P0、7的8个LED显示灯依次循环点亮;外部中断0服务程序为8个LED灯,左4个,右4个闪烁8次,外部中断1服务程序8个LED灯,间隔闪烁8次。 ⑴设定外部中断0为高优先级,先执行外部1中断,过程中用外部0中断来将其中断,反之不行。注意保护现场。 ⑵设定外部中断1为高优先级,先执行外部0中断,过程中用外部1中断来将其中断,反之不行。注意保护现场。 实验三(调试下列程序,在错误行后面注明错误及改正方法): #include #define uchar unsigned char; sbit D0=P1^0; sbit D1=P1^1; uchar a,b;

中断实验报告

上机实验报告课程名称计算机接口与外设上机内容中断实验 学院计算机学院 专业计算机科学与技术班级 学号 学生姓名 指导教师吴以凡 完成日期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 + 按钮硬件中断

基与89C51单片机外部中断实验

实验六外部中断实验一 一、实验要求 1.在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路 2.P1口上拉接8个LED; 3.在Keil软件中编写程序,对LED显示进行控制,显示方式有两种:(1)0、7亮,1、 6亮,2、5亮,3、4亮,0、7亮循环;(2))3、4亮,2、5亮,1、6亮,0、7亮, 3、4亮循环。 4.在P3.2连接一个按键,当按键弹起时引脚为高电平,当按键按下时引脚为低时平 5.编写程序:系统对LED显示进行控制,一开始显示方式为(1),当按下P3.2连接 的按键时,系统在(1)和(2)之间切换显示方式 二、实验目的 1.学习端口输入输出的高级应用 2.掌握LED查表显示法 3.掌握外部中断的工作原理 4.掌握外部中断程序设计 三.实验说明 (条理清晰,含程序的一些功能分析计算) 1.程序中void my_int(void) interrupt 0 using 1 { flag=!flag;} //中断子程序是中断子程序,就是按键按下中断一次。 2.以下是灯亮的方式改变,即flag取反一次就改变一次。通过i++或i—实现 变化。 while(1) { P1=LED[i]; //在P1口显示灯亮的方式 delay_ms(500); //延时0.05s if(flag) //判断P3^2开关是否按下 {i++; if(i>=4) //如果灯显示从两边到中间要在回到两边 i=0;} else{i--; if(i<0)//同上 i=3;} 四、硬件原理图及程序设计 (一)硬件原理图设计

(二)程序流程图设计 是 开始 定义变量 i=0;flag=1; P0=LED[i]; Flag ? i++; 否 i--; P3.3按下时进行中 断 Flag=flag!;

计算机组成原理中断实验报告精编WORD版

计算机组成原理中断实验报告精编W O R D版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

北京建筑大学 2015/2016 学年第二学期 课程设计 课程名称计算机组成原理综合实验 设计题目微程序控制器设计与实现 系别电信学院计算机系 班级计141 学生姓名艾尼瓦尔·阿布力米提 学号 完成日期二〇一六年七月八日星期五 成绩 指导教师 (签名) 计算机组成综合实验任务书

?4、在原有指令集基础上自行设计或扩展4~8条指令。画出扩展指令的指令执行流程图; ?5、利用上端软件,把所编写的微程序控制器内容写入实验台中控制器中。 ?6、利用单拍测试控制器与编程的要求是否一致。如果有错误重新修改后再写入控制器中。 7、编写一段测试程序,测试控制器运行是否正确。 实验目的 1.融合贯通计算机组成原理课程,加深对计算机系统各模块的工作原理及相互联系(寄存器堆、运算器、存储器、控制台、微程序控制器)。 2.理解并掌握微程序控制器的设计方法和实现原理,具备初步的独立设计能力; 3.掌握较复杂微程序控制器的设计、调试等基本技能;提高综合运用所学理论知识独立分析和解决问题的能力。 实验电路 1. 微指令格式与微程序控制器电路 2.微程序控制器组成 仍然使用前面的CPU组成与机器指令执行实验的电路图,但本次实验加入中断系统。这是一个简单的中断系统模型,只支持单级中断、单个中断请求,有中断屏蔽功能,旨在说明最基本的原理。

中断屏蔽控制逻辑分别集成在2片GAL22V10(TIMER1 和TIMER2)中。其ABEL语言表达式如下: INTR1 := INTR; INTR1.CLK = CLK1; IE := CLR & INTS # CLR & IE & !INTC; IE.CLK= MF; INTQ = IE & INTR1; 其中,CLK1是TIMER1产生的时钟信号,它主要是作为W1—W4的时钟脉冲,这里作为INTR1的时钟信号,INTE的时钟信号是晶振产生的MF。INTS微指令位是INTS机器指令执行过程中从控制存储器读出的,INTC微指令位是INTC机器指令执行过程中从控制存储器读出的。INTE是中断允许标志,控制台有一个指示灯IE显示其状态,它为1时,允许中断,为0 时,禁止中断。当INTS = 1时,在下一个MF的上升沿IE变1,当INTC = 1时,在下一个MF的上升沿IE变0。CLR信号实际是控制台产生的复位信号CLR#。当CLR = 0时,在下一个CLK1的上升沿IE变0。当 CLR=1 且INTS = 0 且 INTC = 0时,IE保持不变。 INTR是外部中断源,接控制台按钮INTR。按一次INTR按钮,产生一个中断请求正脉冲INTR。INTR1是INTR经时钟CLK1同步后产生的,目的是保持INTR1与实验台的时序信号同步。INTR脉冲信号的上升沿代表有外部中断请求到达中断控制器。INTQ是中断屏蔽控制逻辑传递给CPU的中断信号,接到微程序控制器上。当收到INTR脉冲信号时,若中断允许位INTE=0,则中断被屏蔽,INTQ仍然为0;若INTE =1,则INTQ =1。

中断实验报告报告

中断试验试验报告 班级:电信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次后程序退出。 三、实验电路图

相关文档
最新文档