单片机实验三_中断与定时器实验
- 格式:doc
- 大小:154.02 KB
- 文档页数:6
1)用单次脉冲申请中断INT0,在中断处理程序中对输出信号进行反转。
ORG 0000HLJMP STARTORG 0003HLJMP INT0START:CLR P1.0MOV TCON, #01HMOV IE, #81HLJMP $INT0:PUSH PSWCPL P1.0POP PSWRETIEND结果:按一下单脉冲小灯亮,再按一下,小灯灭接线:INT0接单脉冲P1.0接个小灯2)用单次脉冲申请中断INT1,在中断处理程序中实现8个小灯左移点亮1次。
ORG 0000HLJMP STARTORG 0013HLJMP INT1START:MOV TCON,#04HMOV IE,#84HCLR PX1MOV A,#01HSJMP $INT1:MOV R1,#8LOOP:MOV P1,ALCALL DELAYRL ADJNZ R1,LOOPRETIDELAY:MOV R6,#200DELAY1:MOV R7,#125DELAY2:DJNZ R7,DELAY2DJNZ R6,DELAY1RETEND结果:按一下单脉冲,8个小灯左移点亮一次接线:INT1接单脉冲P1口接8个小灯3)将8051计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行单脉冲计数,并将其数值按二进制在P1口驱动LED灯上显示出来。
ORG 0000HSTART:MOV TMOD,#05HMOV TH0,#0MOV TL0,#0SETB TR0LOOP:MOV P1,TL0LJMP LOOPEND结果:P1口与四个小灯相连,按单脉冲的次数在四个小灯上显示接线:(P3.4)T0接单脉冲P1.0到P1.4接4个小灯4)用CPU内部定时器T0中断方式计时,实现每1秒钟输出状态发生一次反转。
ORG 0000HLJMP STARTORG 000BHLJMP INTSTART: MOV TMOD,#01HMOV B,#0AH;即10,设循环次数10次。
中断与定时器和计数器实验一、实验目的:1.掌握单片机的中断的原理、中断的设置,掌握中断的处理及应用2.掌握单片机的定时器/计数器的工作原理和工作方式,学会使用定时器/计数器二、实验内容:(一)、定时器/计数器应用程序设计实验1.计数功能:用定时器1方式2计数,每计数满100次,将P1.0取反。
(在仿真时,为方便观察现象,将TL1和TH1赋初值为0xfd,每按下按键一次计数器加1,这样3次就能看到仿真结果。
)分析:外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器加1,由程序查询TF1。
方式2有自动重装初值的功能,初始化后不必再置初值。
将T1设为定时方式2,GATE=0,C/T=1,M1M0=10,T0不使用,可为任意方式,只要不使其进入方式3即可,一般取0。
TMOD=60H。
定时器初值为X=82-100=156=9CH,TH1=TL1=9CH。
(1)硬件设计硬件设计如图所示(2)C源程序#include "reg51.h" sbit P1_0=P1^0;void main(){TMOD=0x60;TH1=0xfd;TL1=0xfd;TR1=1;ET1=1;while(1){if(TF1==1){P1_0=~P1_0;TF1=0;}}}(3)proteus仿真通过Keil编译后,利用protues软件进行仿真。
在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
(二)中断应用程序设计实验2.中断定时使用定时器定时,每隔10s使与P0、P1、P2和P3端口连接的发光二极管闪烁10次,设P0、P1、P2和P3端口低电平灯亮,反之灯灭。
分析:中断源T0入口地址000BH;当T0溢出时,TF0为1发出中断申请,条件满足CPU响应,进入中断处理程序。
主程序中要进行中断设置和定时器初始化,中断服务程序中安排灯闪烁;TL0的初值为0xB0,TH0的初值为0x3C,执行200次,则完成10s定时。
单片机外部中断实验报告实验三外部中断实验报告班级:学号:姓名:教师:一、实验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. 掌握中断源、中断优先级、中断服务程序等基本概念。
3. 学会使用单片机的中断系统实现实时响应外部事件。
4. 培养动手实践能力和问题解决能力。
三、实验器材1. 单片机实验板2. 示波器3. 电源4. 连接线5. 逻辑分析仪(可选)四、实验内容1. 实验一:外部中断实验(1)实验目的:验证外部中断功能,实现按键控制LED灯的点亮和熄灭。
(2)实验步骤:a. 将外部中断0(INT0)引脚连接到按键,按键按下时产生低电平信号。
b. 编写中断服务程序,实现按键按下时点亮LED灯,按键释放时熄灭LED灯。
c. 编译程序,下载到单片机实验板上。
d. 测试实验效果,观察LED灯的点亮和熄灭情况。
2. 实验二:定时器中断实验(1)实验目的:验证定时器中断功能,实现LED灯的定时闪烁。
(2)实验步骤:a. 配置定时器T0为模式1,设置定时器初值,使定时器溢出时间为1秒。
b. 开启定时器中断,编写定时器中断服务程序,实现LED灯的定时闪烁。
c. 编译程序,下载到单片机实验板上。
d. 测试实验效果,观察LED灯的闪烁情况。
3. 实验三:中断嵌套实验(1)实验目的:验证中断嵌套功能,实现定时器中断和外部中断的嵌套。
(2)实验步骤:a. 配置定时器T0为模式1,设置定时器初值,使定时器溢出时间为1秒。
b. 开启定时器中断和外部中断,设置中断优先级。
c. 编写定时器中断服务程序和外部中断服务程序,实现中断嵌套。
d. 编译程序,下载到单片机实验板上。
一、实验目的1. 理解中断和定时器的基本概念及工作原理。
2. 掌握51单片机中断系统和定时器的配置方法。
3. 学会使用中断和定时器实现特定功能,如延时、计数等。
4. 培养动手实践能力和问题解决能力。
二、实验原理中断是计算机系统中的一种机制,允许CPU在执行程序过程中,暂停当前程序,转去执行另一个具有更高优先级的程序。
51单片机具有5个中断源,包括两个外部中断(INT0、INT1)、两个定时器中断(定时器0、定时器1)和一个串行口中断。
定时器是51单片机内部的一种计数器,可以用于产生定时中断或实现定时功能。
51单片机有两个定时器,即定时器0和定时器1。
定时器可以工作在模式0、模式1、模式2和模式3。
三、实验内容及步骤1. 实验内容一:外部中断实验(1)实验目的:掌握外部中断的使用方法,实现按键控制LED灯的亮灭。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置外部中断,实现按键控制LED灯的亮灭。
2. 实验内容二:定时器中断实验(1)实验目的:掌握定时器中断的使用方法,实现LED灯闪烁。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断,实现LED灯闪烁。
3. 实验内容三:定时器与外部中断结合实验(1)实验目的:掌握定时器与外部中断结合使用的方法,实现按键控制LED灯闪烁频率。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断和外部中断,实现按键控制LED灯闪烁频率。
四、实验结果与分析1. 外部中断实验:成功实现了按键控制LED灯的亮灭。
当按下按键时,LED灯亮;松开按键时,LED灯灭。
2. 定时器中断实验:成功实现了LED灯闪烁。
LED灯每隔一定时间闪烁一次,闪烁频率可调。
3. 定时器与外部中断结合实验:成功实现了按键控制LED灯闪烁频率。
实验三 定时器实验 ——循环彩灯实验1、 实验目的1. 学习8051内部计数器的使用和编程方法。
2. 进一步掌握中断处理程序的编写方法。
2、 实验原理1. 定时常数的确定定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。
比如实验中时钟频率为12MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.05秒产生一次中断,CPU响应中断后将RO中计数值减一,令RO=0AH,即可实现0.5秒延时。
初值=65536-500002. 初始化程序包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。
3. 设计中断服务程序和主程序中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
3、 实验要求由8051内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次。
P1口的P1.0~P1.7分别接发光二极管的L1~L8。
要求编写程序模拟一循环彩灯。
彩灯变化花样可自行设计。
建议变化花样为:L1、L2、…L8依次点亮;L1、L2、…L8依次熄灭;L1、L2、…L8全亮、全灭。
各时序间隔为0.5秒。
让发光二极管按以上规律循环显示下去。
4、 实验连线P1.0~P1.7分别接发光二极管L1~L8即可。
5、 程序org 0000hLjmp mainorg 000BhLjmp INTTorg 0100hmain:mov sp,#60h /*设置堆栈指针mov TMOD,#01h /*设置TMOD,仅由TRx控制中断,定时器模式,工作方式1mov TH0,#3CHMOV TL0,#0B0H /*设置初值x=65536-50000 (12M晶振)SETB EA /*开中断SETB ET0 /*开定时器中断T0SETB TR0 /*启动定时器MOV R1,#8 /*中断子程序工作方式1的工作次数MOV R2,#8 /*中断子程序工作方式2的工作次数MOV R3,#1 /*中断子程序工作方式3的工作次数MOV R0,#0AH /*延时次数(产生中断的次数)MOV A,#0FFHWAIT1:AJMP WAIT1INTT:MOV TH0,#3CHMOV TL0,#0B0H /*计数器赋初值DJNZ R0,RETT /*R0减1后判断延时的次数是否足够,足够顺序执行,不足够跳中断返回CJNE R1,#0,INTT1 /*判断彩灯工作方式1工作是否完毕,完毕顺序执行下一种方式,未完毕跳转继续执行此种方式CJNE R2,#0,INTT2 /*判断彩灯工作方式2工作是否完毕,完毕顺序执行下一种方式,未完毕跳转继续执行此种方式CJNE R3,#0,INTT3 /*判断彩灯工作方式3工作是否完毕,完毕顺序执行下一种方式,未完毕跳转继续执行此种方式 JMP INTT4 /*跳转执行第4种方式INTT1:MOV R0,#0AH /*重新向延时次数计数器赋初值CLR C /*C清零RLC A /*带进位左循环移位,低位移入0,即LED相继点亮(低电平亮)DEC R1 /*工作次数减1JMP RETT /*跳中断返回INTT2:MOV R0,#0AHSETB C /*C置1RRC A /*带进位右循环移位,高位移入1,即LED相继熄灭(低电平灭)DEC R2JMP RETTINTT3:MOV R0,#0AHMOV A,#0 /*8位LED灯全部点亮DEC R3JMP RETTINTT4:MOV R0,#0AHMOV P1,#0FFH /*8位LED灯全部熄灭MOV R1,#8MOV R2,#8MOV R3,#1MOV R0,#0AHMOV A,#0FFH /*重新装入相应初值,循环执行彩灯的四种工作方式JMP INTTRETT:MOV P1,A /*输出彩灯的各种状态RETIEND6、 结论通过本次试验掌握了8051内部计数器的使用和编程方法。
报告成绩:教师签字:批改日期:评语:学生实验报告课程名称单片机原理及接口技术姓名实验名称定时器/计数器、中断综合实验班级实验目的掌握51系列单片机中断系统及定时器的工作原理及使用技巧学号实验日期实验内容(1)P1 口做输出口,接八只发光二极管,高电平点亮,控制一个. 方向循环点亮8只LED,每个LED点亮时间为50ms;(2)在以上基础上加外部中断内容,由外部中断请求时,8只LED全亮(3)P1 口做输出口,接八只发光二极管,高电平点亮,控制一个方向循环点亮8只LED,每个LED点亮时间改为2s实验地点实验组号实验设备计算机 wave6000程序 lab2000p试验箱同组人1.实验电路及连线本次试验不做要求2.程序流程图本次实验无3.源程序(1 ORG 0000H MOV TL0,#58HLJMP MAIN SETB EAORG 0003H SETB ET0ORG 000BH SETB TR0LJMP SER0 SJMP $ORG 1000H SER0:MOV TH0,#9EHMAIN: MOV A,#01H MOV TL0,#58HLOOP: MOV P1,A RL AMOV TMOD,#01H MOV P1,AMOV TH0,#9EH RETIEND(2ORG 0000H SER0:MOV TH0,#9EHLJMP MAIN MOV TL0,#58HORG 0003H RL ALJMP SER1 MOV P1,AORG 000BH RETILJMP SER0 SER1:PUSH ACCORG 1000H PUSH PSWMAIN: MOV A,#01H MOV A,#0FFH LOOP: MOV P1,A MOV P1,AMOV TMOD,#01H LCALL DELAY MOV TH0,#9EH POP PSWMOV TL0,#58H POP ACCSETB EA RETISETB ET0 DELAY:MOV R7,#0FFH SETB TR0 L1:MOV R6,#0FAH SETB EX0 DJNZ R6,$SETB IT0 DJNZ R7,L1SJMP $ RETEND(3 ORG 0000H SETB EALJMP MAIN SETB ET0ORG 000BH SETB TR0LJMP SER0 SJMP $ORG 1000H SER0:MOV TH0,#9EH MAIN: MOV A,#01H MOV TL0,#58H LOOP: MOV P1,A DJNZ R0,EXIT MOV R0,#28H MOV R0,#28HMOV TMOD,#01H RL AMOV TH0,#9EH MOV P1,AMOV TL0,#58H EXIT:RETIEND4.结果记录及分析(1)结果: P1 口做输出口,接八只发光二极管,高电平点亮,控制一个方向循环点亮8只LED,每个LED点亮时间为50ms;分析:用定时器方式0,使用定时功能,定时器以中断方式工作。
单片机实验报告中断单片机实验报告:中断引言:单片机是一种集成电路,具有微处理器、存储器和输入输出接口等功能。
在嵌入式系统中,单片机常常被用于控制和管理各种设备。
而中断是单片机中一种重要的机制,它可以在特定条件下打断程序的正常执行,执行一段特定的代码,然后返回到原来的程序中。
本文将介绍中断的概念、分类以及在单片机实验中的应用。
一、中断的概念中断是一种硬件或软件生成的信号,用于打断正在执行的程序。
当中断信号发生时,单片机会立即停止当前的任务,转而执行中断服务程序。
中断可以提高程序的响应速度和效率,使单片机能够及时处理紧急事件。
二、中断的分类中断可以分为外部中断和内部中断两种类型。
1. 外部中断外部中断是由外部设备产生的中断信号。
当外部设备需要单片机的处理时,会发送中断请求信号。
单片机在接收到中断请求后,会立即停止当前任务,转而执行与中断相关的程序。
外部中断常用于处理外部设备的输入信号,如按键、传感器等。
2. 内部中断内部中断是由单片机内部产生的中断信号。
内部中断通常由单片机的一些特定事件触发,如定时器溢出、串口接收完成等。
内部中断常用于周期性的任务处理和数据通信等。
三、中断的实验应用在单片机实验中,中断被广泛应用于各种场景,下面将介绍两个实验应用的例子。
1. 外部中断实验假设我们需要设计一个按键控制LED灯的实验。
当按下按键时,LED灯亮起;当松开按键时,LED灯熄灭。
这个实验可以使用外部中断来实现。
首先,我们需要将按键连接到单片机的外部中断引脚。
当按键按下时,外部中断引脚会产生一个中断请求信号。
单片机接收到中断请求后,会执行相应的中断服务程序。
在中断服务程序中,我们可以控制LED灯的亮灭。
通过这个实验,我们可以学习到如何使用外部中断来处理外部设备的输入信号,并且了解到中断的响应速度和效率优势。
2. 内部中断实验假设我们需要设计一个定时器实验,要求每隔一段时间点亮一次LED灯。
这个实验可以使用内部中断来实现。
实验三:定时器实验一、实验要求由8031内部定时器具1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。
P1口的P1.0-P1.7分别接8个发光二极管。
要求编写程序模拟一时序控制装置。
开机后第一秒钟L0,L2亮,第二秒钟L1,L3亮,第三秒钟L4,L6亮,第四秒钟L5,L7亮,第7秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,一直循环下去。
二、实验目的1.学习8031内部部计数器的使用和编程方法。
2.进一步掌握中断程序的编程方法。
三、实验电路及连线P1.0-P1.7接L0-L7。
四、实验程序//---定时器实验---//-----头文件引用-----#include<reg51.h>#include<absacc.h>//-----宏声明-----#define uchar unsigned charuchar idata LED[8]={0xfa,0xf5,0xaf,0x5f,0xaa,0x55,0x00,0xff};//显示常数表uchar times=20; //延时一秒的常数uchar status=0;//-----定时器-----void int1() interrupt 3{TR1=0; //关中断TL1=0x00; //延时50mS常数TH1=0x4b;TR1=1; //开中断times=(times-1);if(times==0){times=20; //延时一秒的常数P1=LED[status]; //送P1口显示status=((status+1)&0x07);}}//-----主程序-----void main(){TMOD=0x10; //置T1为方式1TL1=0x00; //延时50mS的时间常数TH1=0x4b;TR1=1;ET1=1;EA=1; //开中断while(1);}ORG 0000HAJMP STARTORG 001BH ;T1中断入口地址AJMP INT_T1ORG 0100HSTART:MOV SP,#60HMOV TMOD,#10H ;置T1为方式1MOV TL1,#00H ;延时50mS的时间常数MOV TH1,#4BHMOV R0,#00HMOV R1,#20SETB TR1SETB ET1SETB EA;开中断SJMP $INT_T1: ;T1中断服务子程序PUSH ACC ;保护现场PUSH PSWPUSH DPLPUSH DPHCLR TR1 ;关中断MOV TL1,#00H ;延时50mS常数MOV TH1,#4BHSETB TR1 ;开中断DJNZ R1,EXITMOV R1,#20 ;延时一秒的常数MOV DPTR,#DA TA1 ;置常数表基址MOV A,R0 ;置常数表偏移量MOVC A,@A+DPTR ;读常数表MOV P1,A;送P1口显示INC R0ANL 00,#07HEXIT:POP DPH ;恢复现场POP DPLPOP PSWPOP ACCRETI;LED显示常数表DA TA1: DB 0FAH,0F5H,0AFH,05FH,0AAH,55H,00H,0FFH END。
西南科技大学实验报告课程名称:单片机原理及应用A实验名称:中断、定时器/计数器实验姓名:学号:班级:生医1401指导教师:雷华军西南科技大学信息工程学院制实验题目数码管动态扫描显示驱动、键盘动态扫描驱动一、实验目的1、熟练巩固单片机开发环境KEIL界面的相关操作和PROTUES仿真软件的操作,会使用HEX文件进行单片机的仿真。
2、了解定时器的原理和四种工作方式的使用方法,学习定时器的相关应用,包括产生信号和计数,利用定时器进行延时等。
3、进一步掌握熟练单个数码管以及多位数码管的显示原理,学会将0~1000的数字进行显示。
4、掌握利用单片机产生矩形方脉冲的相关原理。
二、实验原理1、定时器结构和原理图①上图①为定时器T0、T1的结构,其中振荡器经12分频后作为定时器的时钟脉冲,T为外部计数脉冲输入端,通过开关K1选择。
反相器,或门,与门共同构成启/停控制信号。
TH 和TL为加1计数器,TF为中断标志。
每接收到一个脉冲,加1计数器自动加1,当计数器中的数被加为0时产生溢出标志,TF将被置1。
计数器工作方式的选择和功能的实现需要配置相应的寄存器TMOD和TCON。
2、定时器工作方式定时器共有四种工作方式分别为方式0——方式3。
方式0:13位计数器,最大计数值为213个脉冲。
方式1:16位计数器,最大计数值为216个脉冲。
方式2:8位自动重装计数器。
该方式下,TL进行计数工作,TH用于存放计数初值,当产生溢出中断请求时会自动将TH中的初值重新装入TL,以使计数器继续工作。
方式3:仅限于T0计数器,在方式3下,T0计数器被分成两个独立的8为计数器TL0和TH0。
3、定时器间隔1ms产生一个脉冲利用单片机1 P3.0口进行脉冲的输出,通过定时器进行端口定时控制,实现每1ms高低电平变换。
就可以实现一个占空比为50%的矩形脉冲输出。
对于定时器的定时功能实现,需要进行定时器模式选择,定时器初值设定。
4、利用中断进行脉冲的计数将单片机1 P3.0口输出的脉冲连接到单片机2的中断INT0口P3.2,通过脉冲的高低电平变换触发中断0,进行脉冲个数的计数。
定时器及中断实验报告定时器及中断实验报告引言近年来,随着科技的不断发展,计算机技术在各个领域得到了广泛应用。
定时器和中断是计算机系统中非常重要的组成部分,能够帮助我们实现各种功能和任务。
本文将介绍定时器和中断的原理和应用,并结合实验结果进行分析和讨论。
一、定时器的原理和应用定时器是计算机系统中的一种硬件设备,用于计量时间间隔并触发相应的操作。
它通常由一个时钟源和一个计数器组成。
时钟源产生固定的脉冲信号,计数器根据时钟源的信号进行计数,当计数值达到设定的阈值时,定时器会触发一个中断信号,通知处理器执行相应的操作。
定时器在计算机系统中有广泛的应用。
例如,操作系统可以利用定时器来实现任务调度,确保各个任务按照一定的时间片轮转执行。
此外,定时器还可以用于测量时间间隔,计算程序运行时间,以及实现各种定时任务等。
二、中断的原理和应用中断是计算机系统中的一种机制,用于打破程序的顺序性,以响应外部事件或异常情况。
当发生中断事件时,处理器会立即中断当前的执行任务,保存当前的上下文信息,并跳转到中断处理程序来处理中断事件。
处理完成后,再返回到原来的执行任务。
中断可以分为硬件中断和软件中断。
硬件中断由硬件设备触发,例如定时器到达设定阈值、外部设备请求等。
而软件中断则是由程序主动触发,例如调用系统函数、执行软件异常等。
中断在计算机系统中的应用非常广泛。
它可以用于处理外部设备的输入输出,例如键盘、鼠标、打印机等。
同时,中断还可以用于处理各种异常情况,例如除零错误、越界访问等。
通过中断机制,计算机系统能够实现更高效、更灵活的任务处理和异常处理。
三、实验设置和结果分析为了更好地理解定时器和中断的原理和应用,我们进行了一系列的实验。
实验使用的是一款基于8051单片机的开发板,通过编写相应的汇编程序来实现定时器和中断的功能。
首先,我们设置了一个定时器,将时钟源设置为1MHz,计数器的初始值为0,阈值为1000。
然后,我们在中断处理程序中编写了一段代码,用于在定时器触发中断时进行相应的操作。
课程名称:单片机实验题目:实验三定时实验学生姓名:专业:电子信息科学与技术班级:学号:指导教师:张涛实验三 定时器实验一、实验目的1、掌握单片机系统定时器断的原理及使用方法。
二、实验原理 (一)、单片机定时器/计数器的结构 1.定时器/计数器组成框图8051单片机内部有两个16位的可编程定时器/计数器,称为定时器0(T0)和定时器1(T1),可编程选择其作为定时器用或作为计数器用。
此外,工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定,其逻辑结构如图所示。
_____INT1(P3.3)_____INT0(P3.2)T1(P3.5)T0(P3.4)图 8051定时器/计数器逻辑结构图由图可知,8051定时器/计数器由定时器 T0、定时器T1、定时器方式寄存器TMOD 和定时器控制寄存器TCON 组成。
2.定时/计数器的方式寄存器和控制寄存器定时/计数器的初始化通过定时/计数器的方式寄存器TMOD 和控制寄存器TCON 完成。
1)定时/计数器方式寄存器TMODTMOD 为T1、T2的工作方式寄存器,其格式如下:TMOD D7 D6 D5 D4 D3 D2 D1 D0(89H) TMOD 的低 (1(2)T /C :功能选择位。
0/C =时,设置为定时器工作方式;1/C =时,设置为计数器工作方式。
(3)GATE :门控位。
当GA TE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须0INT (P3.2)或1INT (P3.3)为高电平方可启动定时器,即允许外中断0INT 、1INT 启动定时器。
TMOD 不能位寻址,只能用字节指令设置定时器工作方式,高4位定义T1,低4位定义T0。
复位时,TMOD 所有位均置0。
2)定时器/计数器控制寄存器TCONTCON 的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况。
定时器控制字TCON 的格式如下:TCON (88H ) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H(1) TCON.7 TF1:定时器1溢出标志位。
一、实验目的1. 理解单片机中断的基本概念和工作原理。
2. 掌握单片机中断系统的初始化方法。
3. 学会编写中断服务程序,实现特定功能。
4. 熟悉中断优先级设置及其对系统性能的影响。
二、实验设备1. 单片机实验板:STC89C52单片机实验板2. 串口下载线:USB转串口下载线3. 电脑:一台运行Windows操作系统的电脑4. 软件工具:Keil uVision4集成开发环境三、实验原理单片机中断系统是单片机的重要组成部分,它允许单片机在执行主程序时,响应外部或内部事件的中断请求,暂停主程序执行,转而执行相应的中断服务程序。
中断系统由硬件和软件两部分组成。
1. 硬件部分:包括中断源(如定时器、外部中断等)、中断控制器、优先级寄存器、中断服务寄存器等。
2. 软件部分:包括中断初始化程序、中断服务程序等。
四、实验步骤1. 创建项目:在Keil uVision4中创建一个新项目,选择STC89C52单片机作为目标芯片。
2. 设计电路:根据实验要求,绘制电路原理图,连接单片机实验板上的相关元器件。
3. 编写程序:编写C语言程序,实现以下功能:(1)初始化单片机中断系统,包括设置中断优先级、启用中断等;(2)编写中断服务程序,处理中断请求;(3)编写主程序,实现特定功能。
4. 编译程序:将编写好的程序编译成hex文件。
5. 烧录程序:将编译好的hex文件烧录到单片机实验板中。
6. 运行实验:观察实验现象,验证程序功能。
五、实验内容1. 实验一:外部中断实验(1)功能:当外部中断0(INT0)或外部中断1(INT1)有信号输入时,触发对应的中断服务程序,使LED灯闪烁。
(2)步骤:a. 初始化外部中断0和外部中断1,设置中断优先级;b. 编写外部中断0和外部中断1的中断服务程序;c. 编写主程序,实现LED灯闪烁。
2. 实验二:定时器中断实验(1)功能:定时器0每隔1秒产生一次中断,触发中断服务程序,使LED灯闪烁。
单片机原理与应用实验报告学院(部):专业:学生姓名:班级:学号:最终评定成绩:实验一存储器读写一、实验目的:1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作。
二、实验仪器设备1.PC机,1台2.WAVE软件开发系统三、实验内容及步骤:1、将下面的汇编程序输入到W A VE集成开发软件中ORG 0000HSJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08HMOV R1,#70HMOV DPTR,#2000HLOOP:MOVX A,@R1MOVX A,@DPTRINC R1INC ADJNZ R7,LOOPSJMP $END2、选择菜单“仿真器”→“仿真器设置”,按下图所示完成软件初始设置。
3、选择菜单“项目”下“编译”,编译通过后,选择“单步运行”,观察记录寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。
四、源程序源程序:ORG 0000H ;定义起始地址SJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08H ;给内部RAM的70H单元赋初值MOV R1,#70H ;使R1指向内部70H单元MOV DPTR,#2000H ;定义外部存储器开始单元LOOP:MOVX A,@R1 ;将R1所指向的70H的内容赋给AMOVX @DPTR,A;将A的内容赋给外部存储器单元INC R1 ;内部RAM地址加1INC DPTR ;外部存储器地址加1DJNZ R7,LOOP ;循环,直到RAM中70H~7FH;单元的内容全部相应赋给;外部2000H~2007H单元SJMP $END3、记录下程序单步运行时,寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。
五、仿真效果图实验二I/O端口操作一、实验目的:1、掌握I/O端口读写等基本汇编指令;2、掌握单片机最小系统硬件电路设计及仿真软件PROTEUS仿真、调试等基本操作方法。
单片机中断实验报告单片机中断实验报告引言:单片机是一种集成电路,具有微处理器、存储器和各种输入输出设备等功能模块。
中断是单片机中的一种重要机制,它可以使单片机在执行某个任务时,暂停当前操作,转而执行其他紧急任务。
本次实验旨在深入了解单片机中断的原理和应用,以及如何在程序中实现中断功能。
一、实验目的本次实验的目的是通过编写程序,实现单片机中断功能,并验证中断的正确性和可靠性。
具体而言,我们将使用单片机的外部中断和定时器中断功能,分别实现按键中断和定时中断。
二、实验器材1. 单片机开发板2. 按键模块3. 七段数码管模块4. 电源模块5. 连接线等三、实验原理1. 外部中断外部中断是通过外部中断引脚与外部电路连接来实现的。
当外部电路触发中断条件时,单片机将暂停当前操作,转而执行中断服务程序。
在本实验中,我们将按键模块连接到外部中断引脚,当按下按键时,触发外部中断,实现按键中断功能。
2. 定时器中断定时器中断是通过定时器模块来实现的。
定时器可以按照设定的时间间隔产生中断请求信号,从而实现定时中断功能。
在本实验中,我们将使用定时器模块来实现每隔一段时间触发一次中断,实现定时中断功能。
四、实验步骤1. 连接电路将按键模块的输出引脚连接到单片机的外部中断引脚,将七段数码管模块连接到单片机的IO口。
接通电源,确保电路连接正确。
2. 编写程序使用C语言编写程序,首先需要初始化单片机的中断向量表和相关寄存器。
然后编写中断服务程序,根据实验要求实现按键中断和定时中断功能。
最后,在主程序中设置中断使能位,使得中断能够正常触发。
3. 烧录程序使用烧录器将编写好的程序烧录到单片机中。
4. 实验验证按下按键,观察七段数码管的显示是否按照预期变化。
等待一段时间,观察定时中断是否按照设定的时间间隔触发。
五、实验结果与分析经过实验验证,按键中断和定时中断功能均能够正常运行。
按下按键时,七段数码管的显示会按照预期变化,定时中断也能够按照设定的时间间隔触发。
中断及定时器实验报告中断及定时器实验报告引言:中断是计算机系统中一种重要的机制,它可以打破程序的顺序执行,响应外部事件的发生。
中断的引入使得计算机可以同时处理多个任务,提高了系统的效率和可靠性。
定时器是中断的一种常见应用,它可以在一定时间间隔内产生中断信号,实现定时任务的功能。
本实验旨在通过编程实现中断和定时器的功能,并测试其正确性和稳定性。
一、实验目的1. 学习中断的概念和原理;2. 掌握中断的编程方法和中断处理程序的编写;3. 理解定时器的工作原理和应用场景;4. 实现定时器的功能,并测试其正确性和稳定性。
二、实验过程1. 硬件准备在实验中,我们使用了一台基于8051单片机的开发板,通过连接外部电路和开发板的引脚,实现对定时器的控制。
2. 软件编程首先,我们需要在开发板上搭建一个简单的电路,包括一个LED灯和一个按钮。
然后,我们使用汇编语言编写中断处理程序,实现当按钮按下时,LED灯闪烁的功能。
具体的编程步骤如下:(1)设置中断向量表:将中断处理程序的地址存储到中断向量表中,以便系统在中断发生时能够正确地跳转到相应的处理程序;(2)初始化定时器:设置定时器的计数器初值和工作模式;(3)编写中断处理程序:当中断发生时,执行相应的处理程序。
在本实验中,我们编写了一个简单的中断处理程序,当按钮按下时,将LED灯的状态取反;(4)启用中断:使能中断,使得系统能够响应外部事件的发生。
3. 实验测试将编写的程序下载到开发板上,并连接相应的电路。
按下按钮,观察LED灯是否按照预期的频率闪烁。
通过调整定时器的计数器初值和工作模式,可以改变LED灯闪烁的频率。
三、实验结果经过多次实验测试,我们发现中断和定时器的功能正常,LED灯能够按照预期的频率闪烁。
通过改变定时器的计数器初值和工作模式,我们成功地实现了LED灯闪烁频率的调节。
实验结果表明,中断和定时器是一种有效的方法,可以实现对外部事件的及时响应和定时任务的精确控制。
理工大学实验报告(模板)实验时间:年月日星期时间::~ :实验室(房间号):实验台:班级::指导教师签字:成绩:实验三外部中断/INT0实验一、实验目的和要求学习、掌握单片机的中断原理。
正确理解中断矢量入口、中断调用和中断返回的概念与物理过程。
学习编写“软件防抖”程序,了解“软件防抖”原理。
对/int0、/int1两个外部中断进行编程,其中:●主程序的功能:LDE灯“全亮”、“全灭”交替进行 --------(状态2);●Int0中断服务程序功能:2个相邻的LED灯被点亮且循环左移(状态0);●Int1中断服务程序功能:1个LED灯被点亮且循环右移 ---(状态1);【注意】:实验仪上的LED灯物理位置最左侧为d0;最右侧为d7。
二、实验算法1 在主程序中利用CPL P3.3的指令驱动其电平不断地转换(由逻辑笔电路做程序状态监视)。
2 在中断服务程序中将P3.3置位(P3.3=1),实现对计数器“加1”并(通过P1口)显示的功能。
3 中断结束后回到主程序,程序继续对P3.3的电平不断取反。
三、实验电路图四、实验流程图主程序入口INT0入口设置中断允许P3.2置1设置中断优先级调用延时子程序设TCON 计数器加一并显示CLR A开中断(P0)—(A) P3.2=0?调用延时子程序调用延时子程序(A)—(A) RETI INT1同理五、程序清单ORG 0000HLJMP STARTORG 0003HLJMP INT_0ORG 0013HLJMP INT_1ORG 0100H ;主程序START: MOV SP,#60HMOV IE,#85HMOV IP,#04HMOV TCON,#05HLP1: M OV P0,ALCALL DELAYCPL ASJMP LP1INT_0: PUSH PSW ;中断T0入口PUSH ACCLCALL DELAYMOV A,#3FHLP2: M OV P0,ARR ALCALL DELAYSETB P3.2JNB P3.2,LP2LCALL DELAYPOP ACCPOP PSWRETIINT_1: PUSH PSW ;中断T1入口PUSH ACCLCALL DELAYLP3: M OV P0,ARL ALCALL DELAYSETB P3.3JNB P3.3,LP3LCALL DELAYPOP ACCPOP PSWRETIDELAY: PUSH 02HPUSH 03HMOV R2,#00HDL1: MOV R3,#00H DJNZ R3,$DJNZ R2,DL1POP 03HPOP 02HRETEND六、实验结果与分析LED灯按程序设计的规则亮灭,可调至3个状态,两个中断分高低优先级,实验成功。
a b c d e f g 实验三 中断、定时器实验
信息学院 10通信A 柳东旭 1015231030
一、实验目的
1. 学习外部中断和定时器的工作原理及使用方法。
2. 学习外部中断和定时器的初始化程序、应用程序的编写和调试。
二、实验仪器和设备
PC 机、W A VE 软件、仿真器+仿真头、实验板、电源等。
三、实验说明
本实验1通过开关向单片机提出中断请求,单片机响应中断进行计数,并通过LED 数码管指示出计数值,从而观察中断的请求、响应的过程。
实验2通过单片机的定时器产生延时,模拟交通灯控制的方法。
通过本实验学生可以掌握单片机中断和定时器的工作原理及使用方法以及中断和定时器的初始化程序、应用程序的编写和调试。
四、实验内容
1、开关S0—S1连接P3口做输入,P0输出接LED 数码管,通过S2产生外部中断请求(/INT0)信号,在中断服务程序中完成十进制递增计数,并将计数值显示在LED 数码管上,要求分别采用电平触发和边沿触发。
按上述要求完成S3产生外部中断请求。
编写初始化程序和中断服务程序。
(注意开关抖动处理)
2、P1.0--P1.7作输入口接拨动开关S0--S7;P0.0--P0.7作输出口,接发光二极管L1—L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,要求发光二极管(LED )按亮0.5秒、暗0.5秒闪烁,LED 亮的同时,从P2.0送出1kHz 的音频信号到音频驱动电路发声(持续0.5秒),将开关编号(0—7)显示在LED 数码管上。
要求延时采用内部定时器T0,音频的产生采用内部定时器T1。
编写初始化程序和中断服务程序。
五、实验电路连线
P0.0 ---- LED0
P3.2(/INT0)----- S2 P0.1 ---- LED1
P3.3(/INT1)----- S3 P0.2 ---- LED2
P0.3 ---- LED3
P0.4 ---- LED4
P0.5 ---- LED5
P0.6 ---- LED6
P0.7 ---- LED7
LED 连接 外部中断请求输入
a b c d e f g h(dp)
P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7
LED数码管各段与I/O的连接
六、程序框图
1、中断实验
中断实验程序
ORG 0000H;
SJMP START;
ORG 0003H; //外部中断0程序入口地址
SJMP IN0;
START : SETB EA ; //开总中断
SETB EX0; //外部中断0允许
SETB IT0; //下降沿触发
MOV IP,#01H; //最高优先
MOV DPTR,#TABLE; //表格地址
MOV P2,#0FFH; //清零
LL1 : MOV A,#00H;
MOVC A,@A+DPTR; //输入表格第一个数
CJNE A,#1BH,LL2; //是否结束字符,不是则到LL2
MOV DPTR,#TABLE; //是,则重新输入
LJMP LL1; //跳转到LL1
LL2 : MOV P2,A; //输出数据
LJMP LL1;
IN0 : CLR EX0; //关中断
LCALL DELAY; //延时
MOV A,P3;
CJNE A,#0FBH,LL3; //对比是否低电平.真的有中断
PUSH PSW; //入栈
PUSH ACC;
INC DPTR; //表格地址加一
POP ACC;
POP PSW; // 出栈
SETB EX0; //开中断
RETI; //返回
LL3 :SETB EX0;
RETI;
DELAY : MOV R7,#01H; //延时程序
DE1 : MOV R6,#50;
DE2 : MOV R5,#123;
DJNZ R5,$;
DJNZ R6,DE2;
DJNZ R7,DE1;
RET
TABLE : DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 1BH
END
2、定时器实验框图
定时器实验程序
ORG 0000H;
AJMP START;
ORG 000BH; //定时器0入口
AJMP ITT0;
ORG 001BH; //定时器1入口
LJMP ITT1;
START : SETB EA; //开总中断
MOV IP,#08H; //设置优先级
MOV TMOD,#11H; //设置方式1
MOV TH0,#3CH; //置定时器0初值
MOV TL0,#0B0H;
SETB ET0; //允许T0中断
MOV TH1,#0FEH; //定时器1初值
MOV TL1,#0CH;
SETB ET1; //开启定时器1
SETB TR1;
BEEP BIT P3.7; //蜂鸣器设置
SETB BEEP;
MOV R0,#00H; //初始化
MOV R1,#00H;
MOV P2,#0FFH;
MOV P0,#0FFH;
MOV P1,#0FFH; //p1口初始化给ffh值
L2 : MOV DPTR,#TABLE; //表地址存入DPTR
MOV 50H,#0FEH; //比较初值载入地址50h
L0 : MOV A,P1; //按键消抖
CJNE A,#0FFH,L1;
AJMP L0;
L1 : LCALL DELAY ; //延时再判断
MOV A,P1;
CJNE A,#0FFH,LL1;
AJMP L0;
LL1 : CJNE A,50H,LL2; //是否与地址50h中数据相等
MOV R0,A; //按键值载入R0,R3
MOV R3,A;
SETB TR0; //开定时器0
MOV A,#00H;
MOVC A,@A+DPTR;
MOV P2,A; //输出表格数据到数码管
LJMP L2; //返回程序开头
LL2 : XCH A,50H; //交换数据
RL A; //左移
XCH A,50H; //再次交换,此时地址50h中数据左移一位
INC DPTR; //表格数据地址加一
LJMP LL1; //返回继续比较
ITT0 : MOV TH0,#3CH; //定时器0中断程序重装计数值
MOV TL0,#0B0H;
CLR TR0; //关中断
INC R1; //加一
CJNE R1,#0AH,LL3; //是否为10,即中断了500ms 不是跳转到LL3
MOV R1,#00H; //是,清零计数值
MOV A,R0;
MOV P0,A; //输出led控制值
XRL A,R3; //异或求反让灯下次输出相反
CPL A;
MOV R0,A;
LL3 : SETB TR0; //开定时中段0
RETI; //返回
ITT1 : CLR TR1; //定时中断1程序关中断
MOV TH1,#0FEH;
MOV TL1,#0CH;
CJNE R0,#0FFH,LL4; //判断R0是否为0ffh 即灯是否为灭是则转移到LL4 :CPL BEEP; //蜂鸣器求反响
LL4 : SETB TR1; //开定时器中断1
RETI; //放回
DELAY : MOV R7,#01; //延时程序
DE1 : MOV R6,#40;
DE2 : MOV R5,#123;
DJNZ R5,$;
DJNZ R6,DE2;
DJNZ R7,DE1;
RET
TABLE : DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H;
;//DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH; //表格数据
END
六、思考题
1、外部中断采用电平触发和边沿触发处理方法上又何不同?
答:选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。
选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。
2、阐述定时器几种工作方式所实现的功能及应用时的注意事项
答:四种工作方式
方式0:为十三位计数器,由TLX(0、1)的低五位和THX的高八位所构成,计数溢出后全0,所以技术范围为0001H—2000H;
方式1:为16位计数器,由TLX和THX组成,计数范围0001H—10000H;
方式2:自动恢复的8位定时器/计数器;TLX作为常数缓冲器,当TLX 溢出时,在置1溢出标志位同时,还自动将THX的初值赋给TLX,是TLX重新计数,因此可以精确地定时计数,方式2的范围0001H—0100H; 。
方式3:仅适用于定时器/计数器T0,T0被分成2独立的8位计数器,一般情况下,当T1用作串行口的波特率发生器时,T0才工作在方式3;
3、试画出音频驱动电路的原理图并分析工作原理和作用。
工作原理为,当片机IO口为高电平是三极管导通,经过电流放大驱动蜂鸣器。
低电平时截止没有电流流过蜂鸣器无响声。
作用是增加单片机的带负
载能力。