实验三中断

合集下载

北航计算机控制系统实验报告

北航计算机控制系统实验报告

北航计算机控制系统实验报告计算机控制系统实验报告实验一模拟式小功率随动系统的实验调试实验二 A/D、D/A接口的使用和数据采集实验三中断及采样周期的调试实验四计算机控制系统的实验调试姓名:陈启航学号: 13031144 同组人:吴振环陈秋鹏李恺指导教师:袁少强日期: 2016年6月16日实验一二阶系统的电子模拟及时域响应的动态测试一、实验目的1. 熟悉反馈控制系统的结构和工作原理,进一步了解位置随动系统的特点。

2. 掌握判别闭环系统的反馈极性的方法。

3. 了解开环放大倍数对稳定性的影响及对系统动态特性的影响,对静态误差的影响。

二、实验内容1. 连接元件构成位置随动系统;2. 利用计算机内的采样及显示程序,显示并分析输出的响应结果;3. 反复调试达到设计要求。

三、实验设备XSJ-3 小功率直流随动系统学习机一台、DH1718 双路直流稳压电源一台、4 1/2 数字多用表一台四、实验原理模拟式小功率随动系统如下图所示:1. 实验前需进行零位调整,反馈极性判断,反馈极性判断又包括速度反馈极性判断和位置反馈极性判断,须使反馈为负反馈。

2. 动态闭环实验系统调试。

按下面电路图连线,通过改变变阻器大小来改变闭环系统放大倍数,通过一路A/D把输出相应采入计算机进行绘图,同时测量输入电压和反馈电位计输入电压,算出稳态误差。

五、实验结果滑阻阻值(千欧)7.118.324.138.3比例系数 1 1.52.753.7 给定角度(度)30 60 120输出角度(度)38 66 129静差角度(度) 3 1 4静态误差(mv)-146.7-6.2-193.5过度过程曲线见下图1.K=1时的过渡过程曲线2.K=1.5时的过渡过程曲线3.K=2.75时的过渡过程曲线4.K=3.7时的过渡过程曲线六、思考题及实验感想1 如果速度反馈极性不对应如何处理?如果位置反馈极性不对应如何处理?答:首先判断测速机反馈极性。

在一级运放处加一电压,记住电机转向,然后断开输入,用手旋转电机按同一转向转动,测量测速机输出电压,如与前电机所加电压极性相同,则可将该信号接入运放二的负端;否则应把测速机输出极性倒置,即把另一信号接入运放二的负相端。

单片机外部中断实验报告

单片机外部中断实验报告

单片机外部中断实验报告实验三外部中断实验报告班级:学号:姓名:教师:一、实验LI的1、掌握单片机外部中断的原理及过程。

2、掌握单片机外部中断程序的设计方法。

3、掌握单片机外部中断时中断方式的选择方法。

二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管DPD8O每当发生外部中断时,发光二极管以向下流水灯的方式点亮。

分别选择边沿触发外部中断放是和电平触发外部中断方式两种。

三、编程提示1、P3 口是8位准双向口,具有双重功能:第一功能和P1 口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3. 0RXD串行输入口P3. 1TXD串行输出口P3. 2INTO外部中断0请求输入线P3. 3INT1外部中断1请求输入线P3.4TO定时器/计数器TO外部计数器脉冲输入线P3. 5T1定时器/计数器T1外部计数器脉冲输入线P3. 6WR外部数据存贮器写脉冲输出线P3. 7RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断003H定时器/计数器T1溢出中断OBH外部中断113H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EAESET1EX1ET0EX0(1)外部中断源允许中断(中断0: EX0=l;中断1: EXl=l)o(2)CPU 开中断(EA二1)。

(3)外部中断方式CPU发出中断申请。

4、外部中断方式的选择控制TCOX:TF1TR1TF0TR0IE1IT1IE0IT0IT0是选择文字则外部中断0请求(INTO)边沿触发方式或电平触发方式的控制位。

前一方式IT0二1,后一方式IT0二0。

IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。

前一方式IT1=1,后一方式ITl=0o当8031复位后,TCON被清0。

5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。

单片机及其接口技术实验报告

单片机及其接口技术实验报告

单片机及接口技术实验报告实验一数据传送程序一、实验目的1、掌握汇编语言设计和调试方法。

2、掌握DVCC实验系统的操作步骤。

二、实验内容1、编程实现,把7000H~70FFH单元的内容清零。

2、编程实现,把源地址为6000H开始的单元内容,传送到目的地址7000H开始的单元中,传送个数为0FFFH个。

三、DVCC实验系统操作说明1、接通DVCC实验系统电源,在DVCC实验箱上应显示闪动的“P”,否则按Reset键。

2、运行DVCC软件。

(程序DVCC598H实验系统DVCC实验系统)3、单击工具栏上“新建”或“打开”按钮,编写源程序。

单击“编译”按钮,使其形成可执行文件。

4、单击工具栏上“联接”按钮,同时按下DVCC实验箱上PCDBG键(键盘上最右边第2个),实现PC机和实验箱的联接。

联机成功,屏幕上出现:.反汇编窗口、寄存器标示位窗口。

5、在成功联机后,单击工具栏上“调试”按钮,把最终目标文件装载到实验系统RAM区;或者通过单击菜单栏中的“动态调试”,选择“传送(.EXE)文件”来实现。

6、单击工具栏上“运行”或“单步”按钮,运行实验程序。

7、单击工具栏上“窗口”,选择“显示内部数据窗口”或“显示外部数据窗口”可显示数据窗口。

鼠标右击数据窗口的数据,可设置数据块新地址;鼠标左键单击数据,可修改数据数值。

8、运行完毕,先按实验箱上的复位按钮Reset键,再按PCDBG键,并且点击屏幕上OK,即可退出运行状态。

四、实验程序代码1、把7000H~70FFH单元的内容清零。

程序代码:ORG 0000HAJMP STARTORG 70HSTART: MOV P2, #70H ;送地址高8位到P2端口MOV R0, #00H ;R0=00H,表地址低8位CLR A ;将累加器A清0LOOP: MOVX @R0, A ;将A送入以R0内容为地址的外部RAM.INC R0 ;R0+1-->R0CJNE R0,#00H,LOOP;比较条件转移指令,若R0不等于0,则跳转到LOOPAJMP $ ;暂停END2、编程实现,将源地址为6000H开始的单元,传送到目的地址7000H开始的单元,传送个数为0FFFH个。

外中断优先级实验报告

外中断优先级实验报告

实验三外中断优先级实验一、实验目的:1.理解单片机中断优先级和优先权。

2.用PROTEUS 设计, 仿真基于AT89C51单片机的中断优先级实验。

3.掌握中断编程方法。

单片机主程序控制P0口数码管循环显示0~8;外中断0、外中断1发生时分别在P2口、P1口依次显示0~8。

通过实验可演示高优先级可中断低优先级, 但低优先级的中断请求不能中断高优先级。

二、PROTEUS电路设计:三、实验仪器和设备PC机、PROTEUS软件或W-A-51综合开发学习板四、源程序设计:1.程序ORG 0000HAJMP MAINORG 0003HAJMP ZD0ORG 0013HAJMP ZD1ORG 0030HMAIN:SETB IT0 ;设置边沿触发方式SETB IT1SETB EX0 ;中断0和中断1中断允许SETB EX1SETB PX1 ;设置优先级, 中断1为高优先级CLR PX0SETB EA ;开中断MOV DPTR,#BIAO ;指针指向表的首地址LOOP: ;主程序P0输出, 在LED上循环显示0-8MOV A,#09LOOP1:JZ LOOPDEC APUSH ACCMOVC A,@A+DPTRMOV P0,ALCALL DISPOP ACCLJMP LOOP1ZD0: ;外部中断0, P1输出, 在LED上循环显示0-8 MOV A,#09LOOP2:DEC APUSH ACCMOVC A,@A+DPTRMOV P1,ALCALL DIS0POP ACCJNZ LOOP2RETIZD1: ;外部中断1, P2输出, 在LED上循环显示0-8 MOV A,#09LOOP3:DEC APUSH ACCMOVC A,@A+DPTRMOV P2,ALCALL DIS1POP ACCJNZ LOOP3RETIDIS: ;延时1SMOV R3,#10DEL3:MOV R2,#200DEL2:MOV R1,#125DEL1:NOPNOPDJNZ R1,DEL1DJNZ R2,DEL2DJNZ R3,DEL3RETBIAO: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H ;7段数码管0-8的显示代码END。

单片机中断控制实验

单片机中断控制实验

实验三中断控制实验
1、实验目的
⑴学习51单片机的中断控制原理。

⑵学习51单片机的外部中断的编程方法。

⑶学习数据的堆栈操作原理和编程方法。

2、实验任务
图1外部中断控制接口电路原理图
实验任务是:在图1中,P2连接8个LED、第12脚(即INT0引脚)连接一个10kΩ的上拉电阻,让该引脚保持为High,另外再连接一个按钮开关(1NT0)。

当主程序正常执行时,P2所连接的8个LED将闪烁。

若按INT0按钮开关,则进入中断状态,P2所连接的8个LED将变成单灯左移,而左移3圈(从最左边到最右边为1圈)后,恢复中断前的状态,程序将继续执行8灯闪烁的功能。

3、实验内容
⑴编制完成实验任务的程序。

⑵绘制实验任务的原理图。

⑶结合硬件原理图,仿真调试程序,记录实验数据和现象。

4、实验预习要求
⑴认真阅读本实验指导书,领会实验目的的要求和实验内容。

⑵复习教材中有关内容。

⑶了解51单片机的中断控制原理。

⑷了解与51单片机的中断控制相关的寄存器的用法。

⑸了解51单片机的各中断源的中断服务子程序的入口地址。

⑹根据实验内容编好各项源程序,为实验做好软件准备。

5、思考题
⑴说明针对外部输入,查询法和中断法有何区别?
⑵若把一个按钮开关改到INT1引脚,实现同样的任务,实验程序应该如何修改,请写出修改后的程序。

6、实验报告要求
⑴写出所编写的程序,需加注释。

⑵写出思考题的答案。

外部中断0实验

外部中断0实验

实验三外部中断0实验一.实验目的1.学习8051单片机的中断原理及编程方法;2.掌握中断处理程序的编程方法和调试方法。

二.实验说明中断服务程序入口地址两相邻中断服务程序起始地址之间只相距8 个字节,而一般序长度会超过8 个字节,为了避免和下一个中断地址相冲突,常用一条跳转指令,将程序转外的某一区间。

三.实验原理:MCS-51中断系统有5个中断请求源:① /INT0----外部中断0请求,低电平有效。

通过P3.2引脚输入。

② /INT1 ----外部中断1请求,低电平有效。

通过P3.3引脚输入。

③ T0 ----定时器/计数器0溢出中断请求。

④ T1 ----定时器/计数器1溢出中断请求。

⑤ TX/RX ----串行口中断请求。

当串行口完成一帧数据的发送或接收时,便请求中断。

四.实验电路图及参数对照表中断允许寄存器IE:中断优先级寄存器IP:中断入口地址表:P1口接发光二极管,外部中断INT0(P3.2)接拨动开关K01。

如果是下载式实验仪,在程序装载前,必须使P3.2口的拨动开关处于高电平状态。

六.实验流程:七、实验电路图循环左移一次外部中断0入口保护现场恢复现场中断返回开始开外部中断点亮所有发光二级管设置初始状态设置中断控制寄存器中断允许将实验程序打入KEIL软件,然后编译连接九.进行仿真,仿真结果如下图;十:实验源程序ORG 0000HAJMP MAINORG 0003H址AJMP IINT0处ORG 0030HMAIN: MOV IE,#10000001BCLR IT0LOOP: MOV P1,#00HAJMP LOOPIINT0: MOV R0,#08HMOV A,#0FFHCLR CIINT01: RLC AMOV P1,ACALL DELAYDJNZ R0,IINT01RETI;********************************************************************** *******; /*延时子程序*/;********************************************************************** *******DELAY: MOV R5,#10sDELAY1: MOV R6,#50DELAY2: MOV R7,#250sDJNZ R7,$DJNZ R6,DELAY2sDJNZ R5,DELAY1sRET ;END十一.实验总结在本实验中,我深入了解了中断的工作原理,及其作用,中断对于单片机的实时控制,软/硬件错误检查等有着重大的意义。

实验三-IO和中断实验

实验三-IO和中断实验
紧急情况。
用C程序来实现上述交通灯时序的功能,延时 时间可通过示波器大致地校准。
三、实验内容
4、中断方式输入的交通灯时序:
将P3.2作为单片机的中断信号INT0; 利用中断方式,读取P3.2的电平; 实现上述交通灯时序;
用C程序编写中断程序函数,以及初始化和主 程序。
0输出1Hz方波,正常交通;
马灯效果: 1、C51实验开发板
1块
一个灯右循环间隔时间0.
1、P1口直接输出,驱动LED指示灯,演示跑马灯效果:
1、P1口直接输出,驱动LED指示灯,演示跑马灯效果:
P1口做输出口; 编写程序,使发光二极管指示灯循环点亮。
4、PC机
1台
P1连接至8只发光二极管接口JP8; 0输出占空比为75%、2Hz矩形波,紧急情况。
实验三 I/O和中断实验
一、实验目的
1、掌握单片机基本I/O口的使用特点,
了解本扩展I/O口的方法;
2、掌握单片机中断机制,
掌握单片机中断的使用特点和编程方法。
二、实验仪器
1、C51实验开发板
1块
2、直流温压电源
1台
3、仿真器
1只
4、PC机
1台
5、示波器
1台
三、实验内容
1、P1口直接输出,驱动LED指示灯,演示跑 马灯效果:
0
三、实验内容 用C程序来实现上述交通灯时序的功能,延时时间可通过示波器大致地校准。
实验三 I/O和中断实验
P3口作为输入口,查询P3.
2作为单片机的中断信号INT0;
掌握单片机中断的使用特点和编程方法。
4了、解中本断扩方展式I/O输口入的的1方交法、通;灯时P序1: 口直接输出,驱动LED指示灯,演示跑

单片机汇编实验三:外部中断实验

单片机汇编实验三:外部中断实验

单片机汇编实验三:外部中断实验实验要求:由AT89S52 内部定时器0,按方式1 工作,即作为16 位定时器使用每0.05 秒T1 溢出中断一次。

P1 口的P1.0~P1.8 分别接8 个发光二极管。

要求编写程序模拟一时序控制装置。

开机后第一秒钟L1,L8 亮,第二秒钟L2,L7 亮,第三秒钟L3,L6 亮,第四秒L4,L5 亮,第五秒L3,L6 亮,第六秒L2,L7 亮,第七秒L1,L8 亮,第八秒L1,L3,L5,L7 亮,第九秒L2,L4,L6,L8 亮,第十秒全亮,第十一秒全灭。

然后再从头循环。

由键盘生成外部中断信号,当任意键按下时,为外部中断请求信号,此时L3,L4,L5,L6 亮,持续时间为5 秒。

//This is the third program of the homework;//Name: WQ DATE: 2013214//In thisprogramwe used Intterput;ORG 0000H //****无条件转移指令*******LJMP MAIN //LJMP 长转移指令65535(双字节)ORG 0003H //0003H 中断程序I0 入口地址LJMP WINTT0 //AJMP 绝对转移ORG 000BH //000BH 计时器程序T0 入口地址LJMP WT0 //SJMP 短转移-128127// ORG 001BH //001BH 计时器程序T1 入口地址JMP 变址转移JMP @A+DPTR// LJMP WT1 //另外只要程序段的空间能合理分配不冲突就能随便调用ORG 0050HMAIN:MOV DPTR,#TABLE MOV R1,#11 //R1 做一个计数器查表用CLR A //将A 清零,用来寻址MOV R2,A //另一个计数器用来加减MOV TMOD,#01H MOV TH0,#4CH MOV TL0,#00H MOV R3,#20 //R3 做一个计数器SETB EA //开总中断SETB ET0 //允许计时器SETB TR0 //开启计时器0// SETB TR1 //开启计时器1 SETB IT0 //边沿触发方式SETB EX0 //允许外部中断0 MOV P0,#0FFHOK1: MOV C,P3.4 JNC KAISHI MOV C,P3.5 JNC KAISHI MOV C,P3.6 JNC KAISHI MOV C,P3.7 JNC KAISHI SJMP OK1KAISHI:CLRP3.2 SETB P3.2 SJMP OK1。

实验三定时器及外部中断实验

实验三定时器及外部中断实验

实验三定时器及外部中断实验一、实验目的1)熟悉VC5416的定时器工作原理。

2)掌握VC5416定时器的编程控制方法。

3)学会使用定时器的中断方式来控制程序执行方法。

4)掌握外部中断的编程控制方法,理解DSP对于中断的响应的过程。

5)了解并学习混合编程的实现方法。

二、实验设备1)计算机一套,DSP硬件仿真器一台,实验箱一台。

2)CCS4.1-CCS5.5软件版本。

3)源程序及链接命令文件见:D:\ EXPER\EXP3目录下的.asm 、.cmd、.C 和.lib文件。

三、实验步骤(一)、连接仿真器,将仿真器插接到C5416的JTAG接口上,另一头插接到电脑的USB接口上,因为仿真器是金属外壳,容易和箱子内部的电路触碰造成短路,从而对实验箱造成损坏,这个要特别注意,也不允许在机箱打开电源情况下插拔仿真器。

(二)、实验箱配置及连线:C5416DSP核心板上的SW1的1-6的开始设置为off off off off on on(上电后工做于1/2分频器方式,其它实验也按照此设置不变,我试验过改为PLL*2方式仿真器就连接不上了),SW2设置为on on on on。

将DSP核心板所在试验箱引脚连线区的BCANRX(C54的XF)引脚,与指示灯连线区LAMP的L1连接起来,这样就可以通过XF控制这个L1这个方光管的亮灭了。

将DSP核心板所在试验箱引脚连线区的INT0(C54的外部中断0输入)引脚与单脉冲按键PAULSE的P-(按下输出负脉冲)连接起来,这样按下按键时,就会给DSP的INT0中断引脚发送一个负脉冲。

连线照片见程序目录中的图片文件。

(二)、打开实验箱电源开关。

(三)、使用给定的文件,按照实验一的步骤建立实验项目,例如工作区目录为D:\ exp3 中建立一个exp3的实验项目,添加所有的给定的文件。

(四)、仿真调试方法1、通过菜单Project- Build All 对项目进行编译和链接,如下:如果有错误会出现在problem 窗口中。

嵌入式系统实验三-按键中断实验

嵌入式系统实验三-按键中断实验

《嵌入式系统》课程实验报告学生姓名:所在班级:指导教师:记分及评价:一、实验名称按键中断实验二、实验目的通过实验掌握S3C2410X的中断控制寄存器的使用;通过实验掌握S3C2410X处理器的中断响应过程;通过实验掌握ARM处理器的中断方式和中断处理过程;通过实验掌握ARM处理器中断处理的软件编程方法。

三、实验内容编写程序,当用户在实验箱按下KEY1键或KEY2键时在中断服务子程序中将相关信息打印到串口中,显示在超级终端上。

四、实验原理在本实验平台的主板上设计了两个外部按键,电路原理图如下:EXINT0和EXINT1信号作为CPLD芯片的输入信号。

CPLD内部逻辑图:五、实验结果超级终端上显示以下信息:按下KEY1键或KEY2键,超级终端上显示以下信息。

六、练习题编写程序实现:按下KEY1或KEY2后点亮实验系统的LEDs一段时间后熄灭。

任务:按下KEY1键后LED1点亮一段时间后熄灭;按下KEY2键后点亮LED2一段时间后熄灭。

#define rCPLDIntControl (*(volatile unsigned char*)0x22600000)#define rCPLDIntStatus (*(volatile unsigned char*)0x22200000)#define rCPLDLEDADDR (*(volatile unsigned char*)0x21180000)void __irq int_int(void){unsigned char Status;int i;Status = rCPLDIntStatus;Status = ~(Status & 0x6);if(Status & 0x2){uart_printf(" Eint0 interrupt occurred.\n");rCPLDLEDADDR = (rCPLDLEDADDR | 0xFF )& 0xFE;for(i = 0; i < 100000; i++);rCPLDLEDADDR = rCPLDLEDADDR | 0xFF ;}else if(Status & 0x4){uart_printf(" EINT1 interrupt occurred.\n");rCPLDLEDADDR =(rCPLDLEDADDR | 0xFF) & 0xFD;for(i = 0; i < 100000; i++);rCPLDLEDADDR = rCPLDLEDADDR | 0xFF ;}rEINTPEND=(1<<9);ClearPending(BIT_EINT8_23);}。

实验三定时器中断

实验三定时器中断

实验三定时器中断一.实验目的1.掌握定时器典型应用方法,了解相应寄存器的作用和编程应用;2. 了解TMS320F2812的中断结构和对中断的处理流程。

二.实验设备1.PC机一台,操作系统为WindowsXP (或Windows98、Windows2000),安装了ccs3.1;2.TI 2000系列的TMS320F2812 eZdsp开发板一块;3.扩展实验箱一台。

三.实验原理1.TMS320F2812器件上有3个32位定时器(图3.1)(TIMER0/1/2)。

CPU定时器1和2预留给系统(如DSP-BIOS)使用,CPU定时器0可以在用户应用程序中使用。

在F2812芯片中,定时器中断信号(TINT0、TINT1、TINT2)的连接如图3.2。

图3.1 CPU定时器图3.2 CPU定时器中断信号和输出信号CPU 定时器的通常操作如下:定时器时钟经过预定标计数器(PSCH:PSC)递减计数,预定标计数器产生溢出后向定时器的32位计数器(TIMH:TIM)借位,定时器计数器产生溢出后使定时器向CPU发送中断。

每次预定标计数器产生溢出后使用分频寄存器(TDDRH:TDDR)中的值重新装载,32位周期寄存器(PRDH:PRD)为32位计数器提供重新装载值。

表3.1中列出的寄存器用于配置定时器。

表3.1 CPU 定时器0、1、2 配置和控制寄存器2.中断响应过程一般分为四步:a.接受中断请求。

必须由软件中断(从程序代码)或硬件中断(从一个引脚或一个基于芯片的设备)提出请求去暂停当前主程序的执行。

b.响应中断。

必须能够响应中断请求。

如果中断是可屏蔽的,则必须满足一定的条件,按照一定的顺序去执行。

而对于非可屏蔽中断和软件中断,会立即作出响应。

c.准备执行中断服务程序并保存寄存器的值。

d.执行中断服务子程序。

调用相应得中断服务程序ISR,进入预先规定的向量地址,并且执行已写好的ISR。

中断类别分为可屏蔽中断、不可屏蔽中断。

实验3外部中断实验报告

实验3外部中断实验报告

实验3外部中断实验报告以下是为大家整理的实验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次改变中断优先级和保护现场,观察运行结果四、编程提示12345678p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7AT89c51c122pfu1x112m18 xTAL219xTAL1p0.0/AD0p0.1/AD1p0.2/AD2p0.3/AD3p0.4/AD4p0.5/AD5p 0.6/AD6p0.7/AD7p2.0/A8p2.1/A9p2.2/A10p2.3/A11p2.4/A12p2.5/A13p2 .6/A14p2.7/A15p3.0/RxDp3.1/TxDp3.2/InT0p3.3/InT1p3.4/T0p3.5/T1p3. 6/wRp3.7/RD3938373635343332212223242526272810111213141516171234567812345678c222pfD1D2D3D4D5D6D7D8R110k9RsTc310uf2930 31psenALeeAR2220R3220R4220R5220R6220R7220R8220R9220外部中断0请求InT0,由p3.2管脚输入,通过IT0位来决定是低电平有效还是下降沿有效。

实验三51单片机的外中断设计与实现

实验三51单片机的外中断设计与实现

实验三51单片机的外中断设计与实现在单片机系统的设计中,“中断”是指CPU执行正常程序时,系统中出现特殊请求,CPU 暂时中止当前的程序,转去处理紧急的,突发的事件(执行中断服务程序),处理完毕(中断服务完成)后,CPU自动返回原程序的过程。

采用中断技术可以提高CPU效率、解决速度矛盾、实现并行工作、分时操作、实时处理、故障处理、应付突发事件,可使多项任务共享一个资源(CPU)。

中断涉及的几个环节:中断源、中断申请、开放中断、保护现场、中断响应、恢复现场、中断返回。

一、实验目的掌握51单片机的外中断处理及应用。

二、实验内容1、系统如图3-1所示,P1.0~P1.3接有4个开关,P1.4~P1.7接有4个发光二极管,当消抖电路的开关来回拨动一次将产生一个下跳变信号,向CPU申请INT0中断。

要求:初时发光二极管全黑,每中断一次,P1.0~P1.3所接的开关状态反映到发光二极管上,且要求开关合上时对应发光二极管亮。

图3-1 中断应用电路2、设计一个跑马灯应用系统(每个LED亮灯时间为100ms),用外中断INT1实现LED单灯左移和单灯右移的切换。

3、通过外部中断控制八盏灯循环点亮。

分析:通过P1口扩展八盏灯,在INT1引脚(P3.3)接一个按钮开关到地,每按一下按钮就申请一次中断,点亮一盏灯,中断服务则是:依次点亮八盏灯中的一盏。

采用边沿触发。

硬件电路如图3-2所示。

图3-2 中断应用电路4、两个外中断实验。

要求:当主程序正常执行时,P2所连接的8个LED灯闪烁。

若INT0有中断请求,则进入INT0中断状态,此时P2所接地8个LED将变成单灯左移,而左移3圈(从最左到最右为1圈)后,恢复中断前的状态,程序将继续执行8灯闪烁功能。

若INT1有中断请求,则进入INT1中断状态,P2所接的8个LED灯将变成单灯右移,而右移3圈后恢复中断前的状态,程序将继续执行8灯闪烁功能。

另外,要求INT1的优先级高于INT0的优先级。

实验三使用中断的定时器

实验三使用中断的定时器

实验三使用中断的定时器一、实验目的1、理解C2000芯片的CPU定时器和中断系统的工作原理;2、学会使用TMS320F28027芯片的定时器实现定时;3、掌握CPU定时器和PIE外设中断控制器相关寄存器的配置与使用。

二、概述本实验的程序实现了定时器Timer0定时1秒,对应LED灯D10状态翻转,由亮到灭,在由灭到亮,一致循环下去;定时器Timer1定时2秒,对应LED灯D12状态翻转;定时器Timer2定时4秒,对应LED灯D13状态翻转。

表1 输出引脚硬件配置表3D13GPIO237Timer2对应LED图1 LED灯连接电路图三、实验内容1、按照新建工程项目的方法进行实验(参考实验二)。

2、主函数(程序流程框图见图2所示)#include"DSP28x_Project.h"// Device Headerfile and Examples Include File // Prototype statements for functions found within this file.interrupt void cpu_timer0_isr(void);interrupt void cpu_timer1_isr(void);interrupt void cpu_timer2_isr(void);void InitTimerGpio(void);void main(void){// Step 1.系统初始化Initialize System Control:// PLL, WatchDog, enable Peripheral Clocks// This example function is found in the f2802x_SysCtrl.c file.InitSysCtrl();// Step 2.GPIO初始化 Initalize GPIO:// This example function is found in the f2802x_Gpio.c file and// illustrates how to set the GPIO to it's default state.// InitGpio(); // Skipped for this exampleInitTimerGpio();// Step 3. 清除(关闭)中断并初始化外设中断向量表 Clear all interrupts and initialize PIE vector table:// 关闭CPU中断 Disable CPU interruptsDINT;// Initialize the PIE control registers to their default state.// The default state is all PIE interrupts disabled and flags// are cleared.// This function is found in the f2802x_PieCtrl.c file.InitPieCtrl();// Disable CPU interrupts and clear all CPU interrupt flags:IER = 0x0000;IFR = 0x0000;// Initialize the PIE vector table with pointers to the shell Interrupt// Service Routines (ISR).// This will populate the entire table, even if the interrupt// is not used in this example. This is useful for debug purposes.// The shell ISR routines are found in f2802x_DefaultIsr.c.// This function is found in f2802x_PieVect.c.InitPieVectTable();// Interrupts that are used in this example are re-mapped to// 设置中断向量表 ISR functions found within this file.EALLOW; // This is needed to write to EALLOW protected registers0 = &cpu_timer0_isr;1 = &cpu_timer1_isr;2 = &cpu_timer2_isr;EDIS; // This is needed to disable write to EALLOW protected registers // Step 4. 初始化CPU定时器 Initialize the Device Peripheral. This function can be// found in f2802x_CpuTimers.cInitCpuTimers(); // For this example, only initialize the Cpu Timers#if (CPU_FRQ_60MHZ)//配置CPU定时器 Configure CPU-Timer 0, 1, and 2 to interrupt every second:// 60MHz CPU Freq, 1 second Period (in uSeconds)ConfigCpuTimer(&CpuTimer0, 60, );ConfigCpuTimer(&CpuTimer1, 60, );ConfigCpuTimer(&CpuTimer2, 60, );#endif#if (CPU_FRQ_50MHZ)// Configure CPU-Timer 0, 1, and 2 to interrupt every second:// 50MHz CPU Freq, 1 second Period (in uSeconds)ConfigCpuTimer(&CpuTimer0, 50, );ConfigCpuTimer(&CpuTimer1, 50, );ConfigCpuTimer(&CpuTimer2, 50, );#endif#if (CPU_FRQ_40MHZ)// Configure CPU-Timer 0, 1, and 2 to interrupt every second:// 40MHz CPU Freq, 1 second Period (in uSeconds)ConfigCpuTimer(&CpuTimer0, 40, );ConfigCpuTimer(&CpuTimer1, 40, );ConfigCpuTimer(&CpuTimer2, 40, );#endif// To ensure precise timing, use write-only instructions to write to the entire register. Therefore, if any// of the configuration bits are changed in ConfigCpuTimer and InitCpuTimers (in F2802x_CpuTimers.h), the// below settings must also be updated..all = 0x4001; //Use write-only instruction to set TSS bit = 0.all = 0x4001; // Use write-only instruction to set TSS bit = 0.all = 0x4001; // Use write-only instruction to set TSS bit = 0// Step 5.使能用到的中断 User specific code, enable interrupts:// Enable CPU int1 which is connected to CPU-Timer 0, CPU int13// which is connected to CPU-Timer 1, and CPU int 14, which is connected// to CPU-Timer 2:IER |= M_INT1;IER |= M_INT13;IER |= M_INT14;// Enable TINT0 in the PIE: Group 1 interrupt 7R1.7 = 1;// Enable global Interrupts and higher priority real-time debug events:EINT; // Enable Global interrupt INTMERTM; // Enable Global realtime interrupt DBGM// Step 6. 设置空循环(程序进入运行状态) IDLE loop. Just sit and loop forever (optional):for(;;);}//下面是中断服务程序interrupt void cpu_timer0_isr(void){ EALLOW;ruptCount++;.GPIO0 = 1;.GPIO34 = 1;// Acknowledge this interrupt to receive more interrupts from group 1 K.all = PIEACK_GROUP1;}interrupt void cpu_timer1_isr(void){ EALLOW;ruptCount++;.GPIO1 = 1;// The CPU acknowledges the interrupt.EDIS;}interrupt void cpu_timer2_isr(void){ EALLOW;ruptCount++;.GPIO2 = 1;// The CPU acknowledges the interrupt.EDIS;}// 下面是配置GPIOvoid InitTimerGpio(void){EALLOW;X1.34 = 0;R.34 = 1;X1.0 = 0;R.0 = 1;X1.1 = 0;R.1 = 1;X1.2 = 0;R.2 = 1;EDIS;}四、课外学习任务1、进一步理解实验内容,在实验板上找到GPIO34连接的LED灯,试解读下面的程序代码:X1.34 = 0;R.34 = 1;2、总结实验内容及步骤写出实验报告。

中断实验实验报告

中断实验实验报告

中断实验实验报告篇一:中断实验报告报告中断试验试验报告班级:电信1001姓名:张贵彬学号:20XX46830213一、实验目的1、掌握Pc机中断处理系统的基本原理。

2、学会编写中断服务程序。

二、实验原理与内容1、实验原理Pc机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。

中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向cPU发出可屏蔽中断请求。

iBmPc、Pc/XT机内有一片8259中断控制器对外可以提供8个中断源:中断源中断类型号中断功能iRQ008H时钟iRQ109H键盘iRQ20aH保留iRQ3oBH串行口2iRQ40cH串行口1iRQ50dH硬盘iRQ60EH软盘iRQ70FH并行打印机8个中断源的中断请求信号线iRQ0~iRQ7在主机的62线iSa总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。

对于Pc/aT及286以上微机内又扩展了一片8259中断控制,iRQ2用于两片8259之间级连,对外可以提供16个中断源:中断源中断类型号中断功能iRQ8070H实时时钟iRQ9071H用户中断iRQ10072H保留iRQ11o73H保留iRQ12074H保留iRQ13075H协处理器iRQ14076H硬盘iRQ15077H保留TPc-USB实验板上,固定的接到了3号中断iRQ3上,即进行中断实验时,所用中断类型号为0BH。

2、实验内容实验电路如图9-1,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。

要求每按一次开关产生一次中断,在屏幕上显示一次“TPcainterrupt!”,中断10次后程序退出。

三、实验电路图四、实验流程图五、实验程序datasegmentmessdb&#39;TPcainterrupt!&#39;,0dh,0ah,&#39;$&#39;dataendscodese gmentassumecs:code,ds:datastart:movax,csmovds,axmovdx,offsetint3movax,250bhint21hinal,21handal,0f7hout21h,almovcx,10still:jmpllint3:movax,datamovds,axmovdx,offsetmessmovah,09int21hmoval,20hout20h,alloopnextinal,21hor al,08hout21h,alstimovah,4chint21hnext:iretcodeendsendstart六、实验结果七、思考修改中断服务程序,在屏幕上显示0、1、2、3、?,触发一次,显示一个。

哈工大单片机原理及应用实验报告

哈工大单片机原理及应用实验报告

微处理器原理与应用实验报告姓名:李声勇同组人:袁钟达,张秋实学号:1080510123班级:0805101指导教师:张云院系:电子与信息工程学院1 实验一简单I/O口扩展实验(一)交通灯控制实验1.1实验要求扩展实验箱上的74LS273作为输出口,控制八个发光二极管燃灭,模拟交通灯管理。

1.2实验目的1.学习在单片机系统中扩展简单I/O接口的方法2.学习数据输出程序的设计方法3.学习模拟交通灯控制的实现方法1.3实验原理要完成本实验,首先必须了解交通路灯的燃灭规律。

本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。

不妨将L1、L3、L5作为东西方向的指示灯,将L2、L4、L6作为南北方向的指示灯。

而交通灯的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,重复上述过程。

各发光二极管共阳极,阴极接有与非门,因此使其点亮应使相应输入端为高电平。

1.4 实验内容(包括实验电路和程序流程图)1.5 实验结果成功模拟交通灯管制系统,红绿灯方向指示正常,黄灯闪烁正常1.6 实验结果讨论分析实验中发现交通灯在黄灯和红绿灯切换的时候有抖动和延时,初步估计是单片机定时系统不稳定以及程序的延时冗余没有添加所导致。

1.7 实验程序代码变量说明:R1、R2、R3用来做延时控制变量。

EW段表示东西导通南北截止;SNBY是SN STAND BY的缩写,表示南北准备;SN段表示南北导通东西截止。

延时控制由若干延时控制单元组合而成(参考了一下老师的程序)。

片选地址和显示单元调用了老师的部分程序。

PORT EQU 0CFA0H ;片选地址CS0CSEG AT 0000HLJMP BEGINCSEG AT 4100HBEGIN: MOV A,#03H ;1、2亮,其余灭ACALL SHOW ;调用273显示单元ACALL T03 ;延时3秒EW: MOV A,#12H ;东西导通;南北截止ACALL SHOWACALL T10 ;延时10秒MOV A,#02H ;东西截止;南北截止ACALL SHOWSNBY: MOV A,#04H ;东西黄灯闪烁;南北截止ACALL SHOWACALL T02 ;东西黄灯5次闪烁程序MOV A,#00HACALL SHOWACALL T02MOV A,#04HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#04HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#04HACALL SHOWACALL T02MOV A,#00H ACALL SHOWACALL T02MOV A,#04HACALL SHOWACALL T02MOV A,#00H ;东西黄灯闪烁程序结束ACALL SHOWACALL T02 ;延时0.2秒MOV A,#02H ;东西路口黄灯灭;南北路口红灯亮ACALL SHOWACALL T02 ;延时0.2秒MOV A,#03H ;东西南北都截止ACALL SHOWACALL T02 ;延时0.2秒MOV A,#21H ;东西截止;南北导通ACALL SHOWACALL T10 ;延时10秒MOV A,#01H ;东西截止;南北截止ACALL SHOWSN: MOV A,#08H ;东西截止,南北准备ACALL SHOW ;南北黄灯闪烁程序ACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00H ;南北黄灯闪烁截止 ACALL SHOWACALL T02 ;延时0.2秒MOV A,#01H ;东西截止;南北截止 ACALL SHOWACALL T02 ;延时0.2秒MOV A,#03H ;东西南北都截止ACALL SHOWACALL T02 ;延时0.2秒JMP EW ;转EW循环T10: MOV R1,#100 ;延时10秒JMP TU1T03: MOV R1,#30 ;延时3秒JMP TU1T02: MOV R1,#02 ;延时0.2秒TU1: MOV R2,#200TU2: MOV R3,#126TU3: DJNZ R3,TU3DJNZ R2,TU2DJNZ R1,TU1RETSHOW: MOV DPTR,#PORT ;273显示单元MOVX @DPTR,ARETEND2 实验二简单I/O口扩展实验(二)2.1实验要求利用74LS244作为输入口,读取开状态,并将此状态通过发光二极管显示出来。

单片机 实验三中断及定时器实验

单片机  实验三中断及定时器实验

实验三:中断及定时器实验一、实验目的:1、弄清中断的概念、基本原理,掌握中断技术的应用2、了解中断初始化的方法,中断向量安装和中断服务子程序的设计方法。

3、了解定时/计数器的工作原理及MCS51单片机的定时器内部结构4、掌握时间常数计算方法5、掌握定时器初始化方法和定时中断程序设计方法二、实验内容:定时器实验1、这个是一个电子钟走时程序,利用定时器T0产生50ms中断,中断计数器中断20次为1秒,利用秒信号进行电子钟计时。

先读懂下面程序段,然后编辑、编译程序,并在伟福仿真器上模拟调试该程序。

程序清单如下:COUNT EQU 7FHCOUNT1 EQU 7EHS_MEM EQU 73HM_MEM EQU 72HH_MEM EQU 71HORG 0000HLJMP MAINORG 000BHLJMP INT_T0 ;“*1”MAIN: MOV SP,#2FHMOV TMOD,#BMOV TH0,#03CH ;50毫秒中断时间常数MOV TL0,#0BHMOV IE,#B ;开放T0MOV IP,#0MOV S_MEM,#0MOV M_MEM,#0MOV H_MEM,#0MOV COUNT,#20SETB TR0;______________________________________________________ W AIT:NOPSJMP W AITINT_T0: MOV TL0,#0BHMOV TH0,#3CHDJNZ COUNT,EXT_T0MOV COUNT,#20 ;恢复中断计数器INC S_MEM ;“*2”MOV A,S_MEMCJNE A,60,EXT_T0MOV S_MEM,#0INC M_MEMMOV A,M_MEMCJNE A,#60,EXT_T0MOV M_MEM,#0INC H_MEMMOV A,H_MEMCJNE A,#13,EXT_T0MOV H_MEM,#0EXT_T0: RETI2、按下列要求修改程序或回答问题。

实验报告中断系统实验

实验报告中断系统实验

一、实验目的1. 理解中断系统的基本概念和工作原理。

2. 掌握中断请求、中断响应、中断处理和中断返回的过程。

3. 学习使用中断系统实现实时处理功能。

二、实验环境1. 操作系统:Windows 102. 编程语言:C/C++3. 开发环境:Visual Studio 2019三、实验内容1. 实验一:中断请求和中断响应2. 实验二:中断处理和中断返回3. 实验三:使用中断系统实现实时处理功能四、实验步骤(一)实验一:中断请求和中断响应1. 创建一个简单的C/C++程序,实现以下功能:- 定义一个全局变量,用于模拟中断请求。

- 实现一个中断服务例程(ISR),当全局变量被修改时,触发中断请求。

- 在主函数中,设置中断向量表,使CPU能够识别并响应中断请求。

2. 编写代码如下:```c#include <stdio.h>// 全局变量,用于模拟中断请求volatile int interrupt_flag = 0;// 中断服务例程void interrupt_service_routine() {printf("中断服务例程执行\n");interrupt_flag = 0; // 清除中断请求标志}// 主函数int main() {// 设置中断向量表// ...// 启动中断请求interrupt_flag = 1;while (1) {// 执行其他任务// ...}return 0;}```(二)实验二:中断处理和中断返回1. 在中断服务例程中,添加更多的处理逻辑,如: - 获取中断请求的来源。

- 执行相应的中断处理任务。

- 中断返回,恢复中断前的状态。

2. 修改中断服务例程如下:```cvoid interrupt_service_routine() { // 获取中断请求的来源int interrupt_source = ...;// 执行相应的中断处理任务switch (interrupt_source) {case ...:// ...break;case ...:// ...break;default:// ...break;}// 中断返回__asm {popairet}}```(三)实验三:使用中断系统实现实时处理功能1. 使用中断系统实现一个实时时钟(RTC)功能,要求:- 定时触发中断,更新RTC的值。

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

大连理工大学实验报告
实验时间:2014 年7 月 1 日星期二时间:13:00 ~ 15 :05
实验室(房间号):420 实验台号码: 3 班级:电英1001 姓名:杜勇指导教师签字:成绩:
实验三MCS-51单片机中断系统及外部中断/INT0实验
一、实验目的和要求
1、学习掌握单片机中断原理,正确理解中断矢量入口、中断调用和中断返回的概念及物理
过程。

学习辨析“软件防抖”程序,了解“软件防抖”原理。

2、对/int0、/int1两个外部中断进行编程,其中:
主程序的功能:LDE灯“全亮”、“全灭”交替进行 --------(状态2);
Int0中断服务程序功能:2个相邻的LED灯被点亮且循环左移(状态0);
Int1中断服务程序功能:1个LED灯被点亮且循环右移 ---(状态1);
二、实验内容与步骤
1.INT0、INT1同一优先级运行实验:
保持上电复位时INT0、INT1默认为“低优先级”的状态,且将SW1、SW2全部事先置于“0”电平(同时申请中断)后,再启动运行程序,按照表1要求填写结果。

结论一: INT0和INT1处于同一优先级,同时产生中断时,按照自然顺序,程序响应中断INT1。

同时在一个中断进行时,另一个中断无法响应。

2.将 INT1设定为高优先级(INT0保持为低优先级)的运行实验:
在程序中使用指令将INT1设定为“高优先级”状态,按照表2内容填写结果。

表2:INT1为高优先级(int0保持为低优先级)时运行状态记录
结论二: INT0为低优先级,INT1为高优先级。

同时产生中断时,程序首先响应高优先级。

在低优先级中断进行时,高优先级中断可以打断该中断并进入高优先级中断。

反之则不能。

三、实验电路图
四、程序流程图
五、程序清单
ORH 8000H
LJMP START
ORG 8003H
LJMP INT_0
ORG 8013H
LJMP INT_1
ORG 8100H
START: MOV SP, #60H
SETB EX0 ;开中断INT0
SETB EX1 ;开中断INT1
SETB EA ;总使能
SETB PX1 ;设定INT1为高优先级,INT0默认低优先级
MOV TCON, #00H
MOV A,#00H
LOOP3:CPL A
MOV P1,A ;输出A
LCALL DELAY ;延时,使肉眼可以看见LED闪烁
SJMP LOOP3
INT_0:PUSH PSW
PUSH ACC
LCALL DELAY ;防前抖
MOV A, #0FCH ;赋初值0FCH,使最低的两个LED亮LOOP4: MOV P1,A
RL A
LCALL DELAY ;使肉眼可以看见LED闪烁
JNB P3.2,LOOP4 ;SW0=0时,在中断中循环,为1时跳出中断
LCALL DELAY ;防后抖
POP ACC
POP PSW
RETI
INT_1:PUSH PSW
PUSH ACC
LCALL DELAY
MOV A, #0FEH ;赋初值0FEH,最低LED亮
LOOP5: MOV P1,A
RR A
LCALL DELAY
JNB P3.3,LOOP5
LCALL DELAY
POP ACC
POP PSW
RETI
DELAY:PUSH 01H ;延时子程序
PUSH 02H
MOV R1,#00H
DELAY1:MOV R2,#00H
DJNZ R2,$
DJNZ R1,DELAY1
POP 02H
POP 01H
RET
END
六、实验结果与分析
实验结果:在实验台上调试之后,由第二部分实验内容与步骤可见,最终实验结果符合理论结果。

七、实验体会
本次实验主要部分是外部中断指令。

通过本次实验,学习了外部中断的进入方式以及程序的编写,收获很大,关于中断矢量也有了一个更深的理解,在下一次实验定时器与计数器的实验中,这些将会很有作用。

相关文档
最新文档