单片机实验三_中断与定时器实验

合集下载

单片机实验-外部中断、计数器定时器

单片机实验-外部中断、计数器定时器

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。

单片机实验3 中断、定时器计数器实验

西南科技大学实验报告课程名称:单片机原理及应用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,进行脉冲个数的计数。

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

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口为高电平是三极管导通,经过电流放大驱动蜂鸣器。

低电平时截止没有电流流过蜂鸣器无响声。

作用是增加单片机的带负
载能力。

相关文档
最新文档