MCS-51单片机 中断系统_定时计数器_串行口

MCS-51单片机 中断系统_定时计数器_串行口
MCS-51单片机 中断系统_定时计数器_串行口

计数单元:向上计数

工作方式寄存器: TMOD

控制寄存器: TCON

②定时/计数器工作状态与初值计算

设模为M,计数值为N,应设初值为X,则

计数状态下: X=M-N

定时状态下: X=M-定时时间/T,其中 T=12*晶振周期,为51的机器周期。提示,定时的实质是计数机器周期。

③定时/计数器工作方式和控制寄存器(TMOD、TCON)

TMOD

其中:

GATE 定时/计数器运行门控标志位

C/t 定时/计数工作状态选择位

M1M0 工作方式选择:

方式0为13位定时器(TH的高8位和TL的低5位);

方式1为16位定时/计数器;

方式2为自动装载初值的8位计数器;

方式3 时T0分为两个独立的8位计数器:TL0利用了T0本身的一些控制位(GATE、C/T、TR0、INT0和TF0),它的操作与方式0、1类似;而TH0借用了T1的控制位TR1和TF1,并规定只能用作定时器功能,对机器周期计数。TH0控制了T1的中断,T1可设置为方式0~2,主要用于任何不需要中断控制的场合或用作串行口的波特率发生器。通常,当T1用作串行口波特率发生器时,T0才定义为方式3,以增加一个8位计数器。

《MCS-51 单片机内部定时/计数器及串行接口》之串行接口

①串行通信的基本概念

CPU与外设交换数据有并行和串行通信两种方式。

串行通信依据收发功能分为3种:单工方式、半双工方式、全双工方式

在串行通信过程中,数据传送方式有2种:同步方式、异步方式

同步方式:同步方式是将一大批数据分成几个数据块,数据块之间用同步字符予以隔开,而传送的各位二进制之间都没有间隔。其基本特征是发送与接收时钟始终保持严格同步。如SPI总线利用CLK同步收发双方。

异步方式:异步通信是按帧传送数据,它利用每一帧的起止信号来建立发送与接收之间的同步,每帧内部各位均采用固定的时间间隔,但帧与帧之间的时间间隔的随机的。

如前所述,串行口以模式2、3接收时:若SM2=1 则当RB8=1时数据才装入SBUF,并使RI=1;当RB8=0时,不产生中断标志(RI=0),信息丢失。若SM2=0 则不管RB8是0还是1都将接收数据装入SBUF,并产生中断标志(RI=1)。利用这一特点可实现多机通信。

每一个从机有一个地址编码,从机初始化串口为模式2或3的接收方式:SM2=1,REN =1。

当主机要发送数据给某一从机时先发送地址帧,目标从机确认这个地址与本机相符后令SM2=0 准备接收数据。其余从机因SM2=1 且第9位RB8=0,不满足接收数据的条件,而将所接收的数据丢失。

⑤波特率计算

●?模式0波特率=Fosc/32, 即一个机器周期收发一位。

●?模式2波特率=9Fosc*2^SMOD)/64,即 Fosc/32 或 Fosc/64.

●?模式1和3:T1作为波特率发生器,常选用定时方式2(8位自动装载初值),并且

禁止T1中断

模式1或3波特率=T1溢出率*(2^SMOD)/32

=Fosc/(12*(256-TH1)) * (2^SMOD)/32

●?初值TH1由以上公式计算

9.6k波特率:串口模式1或3,Fosc=11.059MHz, SMOD=0, C/t=0,定

时器T1方式2,初值TH1=FDH

51单片机中断程序大全

//实例42 :用定时器T0 查询方式 P2 口8 位控制LED 闪烁 //#include单片机寄存器定义的头文件 51包含 /******************************************************* *******函数功能:主函数 ******************************************************** ******/void main(void){ // EA=1;开总中断// 中断允许T0 // 定时器// ET0=1; 1的模式TMOD=0x01;// 使用定时器T0 位赋初值定时器T0 的高8 TH0=(65536-46083)/256; // 位赋初值的高8 TL0=(65536-46083)%6; // 定时器T0 T0启动定时器TR0=1;// TF0=0;P2=0xff; 无限循环等待查询while(1)// {while(TF0==0); TF0=0;P2=~P2; 位赋初值的高8 定时器TH0=(65536-46083)/256; // T0 位赋初值T0 TL0=(65536-46083)%6; //

定时器的高8 }} 1KHzT1:用定时器43 实例// 音频查询方式控制单片机发出 #include 单片机寄存器定义的头文件51 // 包含sbit sound=P3^7;将// 引脚sound P3.7 位定义为 /********************************************************** **** 函数功能:主函数 ******************************************************** ******/void main(void){// EA=1;开总中断// 中断允许ET0=1;// // 定时器T0 1的模式使用定时器// T1 TMOD=0x10; 位赋初值// TH1=(65536-921)/256; T1 定时器的高8 TL1=(65536-921)%6; // 定时器T1 的高8 位赋初值 TR1=1;// 启动定时器T1TF1=0; while(1)// 无限循环等待查询{while(TF1==0); TF1=0;

单片机中断程序大全

单片机中断程序大全公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

//实例42:用定时器T0查询方式P2口8位控制L E D闪烁#include // 包含51单片机寄存器定义的头文件void main(void) { // EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 TF0=0; P2=0xff; while(1)//无限循环等待查询 { while(TF0==0) ; TF0=0; P2=~P2; TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 //实例43:用定时器T1查询方式控制单片机发出1KHz音频

#include // 包含51单片机寄存器定义的头文件sbit sound=P3^7; //将sound位定义为P3.7引脚 void main(void) {// EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x10; //使用定时器T1的模式1 TH1=(65536-921)/256; //定时器T1的高8位赋初值 TL1=(65536-921)%256; //定时器T1的高8位赋初值 TR1=1; //启动定时器T1 TF1=0; while(1)//无限循环等待查询 { while(TF1==0); TF1=0; sound=~sound; //将P3.7引脚输出电平取反 TH1=(65536-921)/256; //定时器T0的高8位赋初值 TL1=(65536-921)%256; //定时器T0的高8位赋初值 } } //实例44:将计数器T0计数的结果送P1口8位LED显示 #include // 包含51单片机寄存器定义的头文件sbit S=P3^4; //将S位定义为P3.4引脚

中断系统与定时计数器各个位的定义

第5章中断系统与定时/计数器 本章概要及学习目标 本章介绍单片机中断系统的概念及89C51三种中断类型的工作方式;介绍定时/计数器的结构、类型及控制方式。并通过实训介绍中断技术、定时/计数器的具体应用及中断服务子程序的基本编程方法。 通过对本章的学习,读者应掌握和了解以下知: 1.89C51中断系统的概念及中断系统的功能 2.特殊功能寄存器TCON、SCON、IE、IP、TH、TL和TMOD各控制位的功能及设置方法 3.定时/计数器的结构、两种工作方式、四种工作模式及应用 4.中断服务子程序的结构及基本编程方法 5.MCS-51单片机外部中断源的扩展方法 5.1 中断系统 中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断系统的应用大大提高了计算机的工作效率。中断技术的应用使计算机的功能更强,效率更高。 5.1.1 中断的概念 1.中断技术 中断是指CPU正在执行程序的过程中,CPU以外发生的某一事件(如芯片引脚一个电平的变化、一个脉冲沿的发生或定时/计数器的溢出等)向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。这种程序在执行过程中由于外界的原因而被中间打断的情况称为“中断”。例5.1中,50ms定时时间到则发生定时器0溢出,向CPU提出中断请求,CPU 响应中断请求,就暂时终止当前执行的程序,转去执行相应的处理程序ISSR(Interrupt Service Subroutine)。 “中断”之后所执行的相应的处理程序通常称之为中断服务或中断处理子程序,原来正常运行的程序称为主程序。主程序被断开的位置(或地址)称为“断点”。引起中断的原因或能发出中断申请的来源,称为“中断源”。中断源要求服务的请求称为“中断请求”(或中断申请)。例5.1中的中断服务子程序是ISSR程序,主程序中的断点(读者自行查找),中断源是定时器0,在50ms定时时间到后由硬件置位TCON寄存器中的TF0位,然后自动向CPU发出中断请求。 调用中断服务程序的过程类似于调用子程序,其区别在于调用子程序在程序中是事先安排好的,而何时调用中断服务程序事先无法确定,因为“中断”的发生是由外部因素随机决定的,程序中无法事先安排调用指令,因此,调用中断服务程序的过程是由硬件自动完成的。对这个中断全过程的分析,研究及实现方法称为中断技术。 2.中断技术的应用 采用中断技术能实现以下的功能: (1)并行处理有了中断技术,就解决了快速的CPU与慢速外设之间的速度匹配问题,CPU可以与多台外设并行工作,CPU可分时与多台外设进行信息交换。CPU在启动外设后,便继续执行主程序;而外设被启动后,开始进行准备工作。当外设准备就绪时,就向CPU

51单片机中断系统详解

的定时器中断后便认为是1s,这样便可精确控制定时时间啦。要计50000个数时,TH0和TL0中应该装入的总数是65536-50000=15536.,把15536对256求模:15536/256=60装入TH0中,把15536对256求余:15536/256=176装入TL0中。 以上就是定时器初值的计算法,总结后得出如下结论:当用定时器的方式1时,设机器周期为T CY,定时器产生一次中断的时间为t,那么需要计数的个数为N=t/T CY ,装入THX和TLX中的数分别为: THX=(65536-N)/256 , TLX=(65536-N)%256 中断服务程序的写法 void 函数名()interrupt 中断号using 工作组 { 中断服务程序内容 } 在写单片机的定时器程序时,在程序开始处需要对定时器及中断寄存器做初始化设置,通常定时器初始化过程如下: (1)对TMOD赋值,以确定T0和 T1的工作方式。 (2)计算初值,并将初值写入TH0、TL0或TH1、TL1。 (3)中断方式时,则对IE赋值,开放中断。 (4)使TR0和TR1置位,启动定时器/计数器定时或计数。 例:利用定时器0工作方式1,实现一个发光管以1s亮灭闪烁。 程序代码如下: #include #define uchar unsigned char #define uint unsigned int sbit led1=P1^0; uchar num; void main() { TMOD=0x01; //设置定时器0位工作模式1(M1,M0位0,1) TH0=(65536-45872)/256; //装初值11.0592M晶振定时50ms数为45872 TL0=(65536-45872)%256; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0 while(1) { if(num==20) //如果到了20次,说明1秒时间 { led1=~led1; //让发光管状态取反 num=0; } } } void T0_time()interrupt 1

51单片机中断程序大全

//实例42:用定时器T0查询方式P2口8位控制LED闪烁#include // 包含51单片机寄存器定义的头文件 /************************************************************** 函数功能:主函数 **************************************************************/ void main(void) { // EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 TF0=0; P2=0xff; while(1)//无限循环等待查询 { while(TF0==0) ; TF0=0; P2=~P2; TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 } } //实例43:用定时器T1查询方式控制单片机发出1KHz音频#include // 包含51单片机寄存器定义的头文件 sbit sound=P3^7; //将sound位定义为P3.7引脚 /************************************************************** 函数功能:主函数 **************************************************************/ void main(void) { // EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x10; //使用定时器T1的模式1 TH1=(65536-921)/256; //定时器T1的高8位赋初值

51单片机中断系统编程

51单片机中断系统编程 51单片机中断系统编程 上传的图片 抱歉,您所在的组无权下载附件,请注册或登陆中断是指如下过程(如下图所示):CPU 与外设同时工作,CPU执行主程序,外设做准备工作。当外设准备好时向CPU发中断请求信 号,若条件满足,则CPU终止主程序的执行,转去执行中断服务程序。在中断服务程序中 CPU与外设交换信息,待中断服务程序执行完后,CPU再返回刚才终止的主程序继续执行。 5.3.1 中断系统 MCS-51单片机提供了5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储 器中各有固定的中断入口地址,由此进入中断服务程序。5个中断源的符号、名称及产生 的条件如下。 ? INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。 ? INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 ? T0:定时器/计数器0中断,由T0计数溢出引起。 ? T1:定时器/计数器l中断,由T1计数溢出引起。 ? TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。 中断源有两级中断优先级,可形成中断嵌套。两个特殊功能寄存器用于中断控制和条件设 置。整个中断系统的结构框图如图所示。 上传的图片 抱歉,您所在的组无权下载附件,请注册或登陆 中断系统结构框图 2 中断系统的控制寄存器 中断系统有两个控制寄存器(IE和IP),它们分别用来设定各个中断源的打开/关闭和中

断优先级。此外,在TCON中另有4位用于选择引起外部中断的条件并作为标志位。 (1)中断允许寄存器IE IE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H-AFH。IE 用 来打开或关断各中断源的中断请求,基本格式如下: 上传的图片 抱歉,您所在的组无权下载附件,请注册或登陆 ? EA:全局中断允许位。EA=0,禁止一切中断;EA=1,打开全局中断控制,此时,由各 个中断控制位确定相应中断的打开或关闭。 ? ×:无效位。 ? ES:串行I/O中断允许位。ES=1,允许串行I/O中断;ES=0,禁止串行I/O中断。 ? ETl;定时器/计数器T1中断允许位。ETl=1,允许T1中断;ETl=0,禁止T1中断。 ? EXl:外部中断l中断允许位。EXl=1,允许外部中断1中断;EXl=0,禁止外部中断1中 断。 ? ET0:定时器/计数器T0中断允许位。ET0=1,允许T0中断;ET0=0,禁止TO中断。 ? EX0:外部中断0中断允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中 断。 (2)中断优先级寄存器IP IP在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别是B8H一BFH。 MCS-51单片机的中断分为两个优先级,IP用来设定各个中断源属于两级中断中的哪一级, 其基本格式如下: 上传的图片

中断及定时计数器

单片机的中断与定时器/计数器 中断就是停止当前的任务,去做另一个需要马上处理的任务,做完后再回去做原来的任务! P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/V PD P3.0/RXD P3.1/TXD P3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WR P3.7/RD XTAL2XTAL1V SS V CC P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/V PP PSEN P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0 RST P3.0/RXD P3.1/TXD XTAL2XTAL1P3.2/INT0P3.3/INT1P3.4/T0P3.5/T1 GND V CC P1.7P1.6P1.5P1.4P1.3P1.2 P1.1/AIN1P1.0/AIN0P3.7 注:类似的还有Philips公司的 87LPC64,20引脚 8XC748/750/(751),24引脚 8X749(752),28引脚 8XC754,28引脚 等等 如上图 8051中有5个中断: P3.2和P3.3为外部中断INT0和INT1端口, P3.4和P3.5为定时器/计数器中断T0和T1端口, 以及一个串行口中断,(此内容暂时不讲) 8052中有6个中断,比8051多一个特殊的定时器/计数器中断。(暂时不讲) 外部中断: INT0和INT1 外部中断通过其对应的引脚来接受外部中断请求,触发方式有两种: 1.低电平触发,即得到地电位就触发中断。 2.负边沿触发,即由高电平降至低电平的瞬间触发。 区别在于低电平触发属于静态触发,只要是低电平就一定触发;而负边沿触发为动态触发,必须由高电平变为低电平的时候才会触发。 控制触发方式的开关为:IT 。 IT0和IT1分别对应控制INT0和INT1的触发方式。 0为低电平触发,1为负边沿触发。 例:外部中断INT0开启低电平触发: IT0=0; 定时器/计数器中断: T0和T1 它有两种工作模式:定时器与计数器。 1. 定时器模式下,单片机对内部时钟脉冲进行计数。不使用外部端口。 2. 计数器模式下,单片机对外部脉冲进行计数,使用外部端口,外部脉冲由外部对应

51单片机中断程序大全

//实例42 :用定时器TO查询方式P2 口8位控制LED闪烁#include // 包含 51 单片机寄存器定义的头文件/************************************************************** 函数功能:主函数 void main(void) { // EA=1; // 开总中断 // ETO=1; // 定时器 TO 中断允许 TMOD=OxO1; // 使用定时器 TO 的模式 1 THO=(65536-46O83)/256; // 定时器 TO 的高 8 位赋初值 TLO=(65536-46O83)%256; // 定时器 TO 的高 8 位赋初值 TRO=1; // 启动定时器 TO TFO=O; P2=Oxff; while(1)// 无限循环等待查询 { while(TFO==O) TFO=O; P2=~P2; THO=(65536-46O83)/256; // 定时器 TO 的高 8 位赋初值

TL0=(65536-46083)%256; // 定时器 T0 的高 8 位赋初值 } // 实例43 :用定时器T1 查询方式控制单片机发出1KHz 音频#include // 包含 51 单片机寄存器定义的头文件 sbit sou nd=P3^7; // 将 sound 位定义为 P3.7 引脚 /************************************************************** 函数功能:主函数 **************************************************************/ void main(void) { // EA=1; // 开总中断 // ET0=1; // 定时器 T0 中断允许 TMOD=0x10; // 使用定时器 T1 的模式 1 TH1=(65536-921)/256; // 定时器 T1 的高 8 位赋初值 TL1=(65536-921)%256; // 定时器 T1 的高 8 位赋初值 TR1=1; // 启动定时器 T1 TF1=0; while(1)// 无限循环等待查询 {

51单片机中断程序大全

( //实例42:用定时器T0查询方式P2口8位控制LED闪烁 #include<> // 包含51单片机寄存器定义的头文件 void main(void) { // EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-46083)/256; //定时器T0的高8位赋初值 : TL0=(65536-46083)%256; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 TF0=0; P2=0xff; while(1)//无限循环等待查询 { while(TF0==0) ; ] TF0=0; P2=~P2; TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 //实例43:用定时器T1查询方式控制单片机发出1KHz音频 #include<> // 包含51单片机寄存器定义的头文件 sbit sound=P3^7; //将sound位定义为引脚 void main(void) ( {// EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x10; //使用定时器T1的模式1 TH1=(65536-921)/256; //定时器T1的高8位赋初值 TL1=(65536-921)%256; //定时器T1的高8位赋初值 TR1=1; //启动定时器T1 TF1=0; while(1)//无限循环等待查询 — { while(TF1==0); TF1=0;

51单片机外部中断实验

实验6 外部中断实验 (仿真部分) 一、实验目的 1. 学习外部中断技术的基本使用方法。 2. 学习中断处理程序的编程方法。 二、实验内容 在INT0和INT1上分别接了两个可回复式按钮,其中INT0上的按钮每按下一次则计数加一,其中INT1上的按钮每按下一次则计数减一。P1.0~ P1.3接LED灯,以显示计数信号。 三、实验说明 编写中断处理程序需要注意的问题是: 1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。 2.必须在中断处理程序中设定是否允许中断重入,即设置EX0位。 3.INT0和INT1分别接单次脉冲发生器。P1.0~ P1.3接LED灯,以查看计数信号. 四、硬件设计 利用以下元件:AT89C51、BOTTON、CAP、CAP-POL、CRYSTAL、RES、NOT、LED-Yellow。设计出如下的硬件电路。晶振频率为12MHz。 五、参考程序框图 设置P1.0~ 3初始状态

主程序框图 INT0中断处理程序框图 实验6 外部中断实验 (实验箱部分) 1.实验目的 认识中断的基本概念 学会外部中断的基本用法 学会asm和C51的中断编程方法 2.实验原理 图按键中断 【硬件接法】 控制LED,低电平点亮 INT1接按键,按下时产生低电平 【运行效果】 程序工作于中断方式,按下按键K2后,LED点亮,秒后自动熄灭。

8051单片机有/INT0和/INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或下降沿触发方式来输入中断请求信号。/INT0和/INT1中断的入口地址分别是0003H和0013H。 TCON寄存器(SFR地址:88H)中的IT0和IT1位分别决定/INT0和/INT1的触发方式,置位时为下降沿触发,清零时为低电平触发。实际应用时,如果外部的中断请求信号在产生后能够在较短时间内自动撤销,则可以选择低电平触发。在中断服务程序里要等待其变高后才能返回主程序,否则会再次触发中断,产生不必要的麻烦。 如果外部的中断请求信号产生后可能长时间后才能撤销,则为了避免在中断服务程序里长时间无谓等待,可以选择下降沿触发。下降沿触发是“一次性”的,每次中断只会有1个下降沿,因此中断处理程序执行完后可以立即返回主程序,而不必等待中断请求信号恢复为高电平,这是一个重要的技巧。 3. 实验步骤 参考实验例程,自己动手建立Keil C51工程。注意选择CPU类型。Philips半导体的P89V51RB2。 编辑源程序,编译生成HEX文件。 ISP下载开关扳到“00”,用Flash Magic软件下载程序HEX文件到MCU BANK1,运行。 运行Flash Magic软件。各步骤操作如下: Step 1: COM Port:选择实际使用的串行口,通常为COM1; Baud Rate:波特率不可设置得过高,推荐用9600; Device:请选择正确的型号89V51RB2; Interface:选择None(ISP)。 Step 2:请勾中“Erase blocks used by Hex File”。 Step 3:装入你的程序文件,注意必须为HEX格式。 Step 4: 请勾中“Verify after programming”(编程后校验); 对其它几项如果不了解,请不要勾中。 Step 5: 请先给电路板上电,同时按住复位键不松手,然后点击Flash Magic软件的“Start”按

51单片机中断系统程序实例

51单片机中断系统程序实例(STC89C52RC) 51单片机有了中断,在程序设计中就可以做到,在做某件事的过程中,停下来先去响应中断,做别的事情,做好别的事情再继续原来的事情。中断优先级是可以给要做的事情排序。 单片机的学习不难,只要掌握学习方法,学起来并不难。什么是好的学习方法呢,一定要掌握二个要点: 1. 要知道寄存器的英文全拼,比如IE = interrupt中断 不知道全拼,要去猜,去查。这样就可以理解为什么是这个名称,理解了以后就不用记忆了。 2. 每个知识点要有形像的出处 比如看到TF0,脑子里马上要形像地定位到TCON寄存器的某位 看到ET0, 马上要形像地定位到IE寄存器的第2位 https://www.360docs.net/doc/ed10565784.html,/tuenhai/独家揭秘:形像是记忆的最大技巧。当人眼看到某个图时,是把视觉信号转化成电信号,再转化成人能理解的形像。当我们回忆形像时,就是在重新检索原先那个视觉信号,并放大。在学习过程中,不断练习检索、放大信号,我们的学习能力就会越来越强。 写程序代码时,也要把尽量把每行代码形像化。 51单片机内中断源 8051有五个中断源,有两个优先级。与中断系统有关的特殊功能寄存器有IE(中断允许寄存器)、IP(中断优先级控制寄存器)、中断源控制寄存器(如TCON、SCON的有关位)。51单片机的中断系统结构如下图(注意,IF0应为TF0):

8052有6个中断源,它比8051多一个定时器/计数器T2中断源。 8051五个中断源分别是: (1)51单片机外部中断源 8051有两个外部中断源,分别是INT0和INT1,分别从P3.2和P3.3两个引脚引入中断请求信号,两个中断源的中断触发允许由TCON的低4位控制,TCON的高4位控制运行和溢出标志。 INT0也就是Interrupt 0。在这里应该看一下你的51单片机开发板的电路原理图。离开形像的记忆是没有意义的。读到上面这句,你应该回忆起原理图上的连接。任何记忆都转化为形像,这是学习的根本原理,我们通过学习单片机要学会这种学习方法,会让你一辈子受益无穷。 TCON的结构如下图: (a)定时器T0的运行控制位TR0

第5讲 中断系统和定时器(一)

教案首页 (以2课时为单元) 课序授课日期授课班次授课教师批准人 薛凯凯 课题第5讲中断系统和定时器(一) 目的要求掌握单片机的主要功能部件;掌握单片机的引脚及其功能定义;掌握单片机的复位电路、时钟电路;理解单片机的指令周期 教学内容1)AT89S51单片机内部结构(如图) 2)AT89S51单片机的CPU 3)AT89S51单片机的引脚及其功能 重点难点单片机的主要功能部件;单片机的引脚功能定义单片机的时钟电路及指令周期 教学方法 手段 理论讲述为主,结合举例进行讲解 教学步骤1)回顾与提问 2)课程讲解 3)课堂讨论 4)小结 5)布置作业 复习提问题1、单片机的概念 2、单片机的应用环节 作业题目 预习内容 课时分配(以分钟计算) 教学环节复习提问新课讲解课堂讨论每课小结布置作业时间分配 3 85 7 4 1

教学内容课堂组织 【回顾与提问】第5讲中断系统和定时器(一) 一、中断系统的概念 在日常生活中,“中断”是一种很普遍的现象。例如某同学正在教室写作业,忽然被人叫 出去,回来后,继续写作业。单片机中也有同样的问题。CPU正在执行原程序,突然被意外 打断,转去执行新程序;CPU执行新程序技术后,又回到原程序中继续执行。这种停止当前 工作,转而去做其他工作,做完后又返回来做先前工作的现象称为中断。 1.中断源 要让单片机停止当前程序去执行其他程序,需要向他发出请求信号,CPU接收到中断请 求信息号才能产生中断。让MCS-51单片机提供了5个中断源,其中两个为外部中断请求源 INT0(P3.2)和INT1(P3.3),两个片内定时器/计数器T0和T1的益处请求中断源TF0(TCON 的第5位)和TF1(TCON的第7位),1个片内串行口发送或接收中断请求源TI(SCON的 第1位)和RI(SCON的第0位)。 2.中断的优先级 单片机内部的CPU工作时,如果一个中断源向他发出中断请求信号,它就会产生中断。 但是,如果同时收到两个中断源发出中断请求信号,CPU会优先接收级别高的中断请求源, 然后再接收优先级别低的中断请求。表1列出了C51的独立中断请求源由其硬件结构决定的 自然优先级安排顺序。 对应于MCS-51的5个独立中断,应有相应的中断服务程序。这些中断服务程序有专门 规定的存放位置,即表1中的中断入口地址。当有了中断请求后,CPU可以根据入口地址迅 速找到中断服务程序并开始执行,大大提高执行效率。 需要说明的是,为了便于C语言编写单片机中断程序,C51编译器也支持51单片机的

(完整版)第五章中断系统及定时计数器

第五章中断系统及定时/计数器参考答案 1、80C51有几个中断源?各中断标志是如何产生的?又是如何复位的?CPU 响应各中断时,其中断地址入口是多少? 答:80C51有5个中断源,具体的名称、产生方式、复位方式和中断入口地址如下: (1)INT0(P302), 外部中断0请求信号输入引脚。当CPU检测到P3.2引脚出现有效的中断信号时,中断标志IE0(TCON.1)置一,向CPU 申请中断,中断入口地址为0003H。可由IT0(TCON.0)选择其为低 电平有效还是下降沿有效。当IT0=0时,中断标志在CPU响应中断 时不能自动清零,只能撤除INT0引脚的低电平,IE0才清零;当ITO=1 时,由硬件自动清除IE0标志。 (2)INT1(P3.3), 外部中断1请求信号输入引脚。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置一,向CPU 申请中断,入口地址为000BH。可由IT1(TCON.2)选择其为低电平 有效还是下降沿有效,中断标志复位清零与INTO类同。 (3)TF0(TCON.5), 片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断,入口地址为0013H。 CPU响应中断时,TF0自动清零。 (4)TF1(TCON.7), 片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断,入口地址为001 BH。CPU响应中断时,TF1自动清零。 (5)RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI, 向 CPU申请中断,入口地址为0023H。RI和TI必须由软件清除。 2、某系统有三个外部中断源1、2、3,当某一中断源变低电平时便要求CPU 处理,它们的优先处理次序由高到低为3、2、1,处理程序的入口地址分别为2000H、2100H、2200H,试编写主程序及中断服务程序(转至相应的入口即可)。 答:ORG 0000H LJMP BOOT ORG 0003H LJMP INT3 ORG 000BH LJMP INT2 ORG 0013H LJMP INT1 ORG 001BH RETI BOOT:ACALL INT0_0 ;中断启动程序 ACALL T0_0 ACALL INT1_0 SETB EA SJMP $

定时计数器练习题

定时/计数器练习题 一、填空题 1.当使用慢速外设时,最佳的传输方式是(中断)。 2.MCS-51单片机有( 5 )个中断源,有( 2 )个中断优先级,优先级由软件填写特 殊功能寄存器( IP )加以选择。 3.MCS-51单片机中,T0中断服务程序入口地址为( 000BH )。 4.外部中断请求标志位是( IE0 )和( IE1 )。 5.MCS-51单片机晶振频率为12MH Z ,相应单重中断的最短时间是( 3 μs),最长时间 是( 8μs)。 6.MCS-51单片机外部中断有( 2 )种中断信号触发方式,若选用外部中断0为边沿 触发方式,则需要指令( SETB IT0 )。 7.MCS-51单片机中断系统选用外部中断1和定时器/计数器T1中断为高优先级,则中断 优先级控制字(IP)= ( 0CH )。 8.对采用电平触发方式的外部中断,必须在中断返回前(撤销中断请求信号)。 9.( RETI )指令以及任何访问( IE )和( IP )寄存器的指令执行完后,CPU 不能马上相应中断。 10.MCS-51单片机有( 2 )个16位可编程定时器/计数器,有( 4 )种工作方式。 11.MCS-51单片机的最大计数值为( 65536 ),此时工作于方式( 1 )。 12.若定时器/计数器工作于方式0时,为( 13 )位的定时器/计数器,TL的低(5 ) 位计满溢出时,向高( 8 )位的TH进位。 13.当定时器/计数器T0工作在方式3时,要占用定时器/计数器T1的( TR1 )和(TF1 ) 两个控制位。 14.当把定时器/计数器T0定义为一个可自动重新装入初值的8位定时器/计数器时, ( TL0 )作为8位计数器,( TH0 )为常数寄存器。 15.使用定时器T1设置串行通信的波特率时,应把定时器T1设定为工作方式2,即(自 动重装载)。 16.在定时器/计数器T0工作方式3下,TH0溢出时,( TF1 )标志将被硬件置1去请求 中断。 17.T0和T1两引脚也可作为外部中断输入引脚,这时TMOD寄存器中的C/T位应为( 1 )。 若MO、M1两位置成10B,则计数初值应当是TH=TL=( 0FFH或255 )。 18.欲使T1停止工作,应执行一条指令( CLR TR1 ),在工作方式3下,欲使TH0开始 工作,应执行一条指令( SETB TR1 )。 19.串行口中断的中断标志位是由(硬件)产生,由(软件)清零。 20.进行串行通信,通信双方需具有相同的(数据格式)和(速率)。 21.要串行口工作为10位异步串行通信方式,工作方式应选为(方式1 )。 22.用串行口扩展并行口时,串行口工作方式应选为(方式0 )。 23.按照数据传送方向,串行通信分为(单工)、(半双工)和(全双工)。 24.计算机通信主要有两种方式:(并行通信)和(串行通信)。 25.异步串行数据通信的帧格式由(起始位)、(数据位)、(奇偶校验位)和(停止位)组 成。 26.在串行通信中,按照传送的帧的格式,分为(异步串行通信)和(同步串行通信)。 27.串行口启动发送过程是通过执行指令( MOV SBUF )实现,而接收过程是在接收控制 器检测到RXD端的(负跳变)时启动的。 一、选择题

51单片机中断编程

第6章中断系统 在CPU与外设交换信息时,存在一个快速的CPU与慢速的外设间的矛盾。为解决这个问题,采用了中断技术。良好的中断系统能提高计算机实时处理的能力,实现CPU 与外设分时操作和自动处理故障,从而扩大了计算机的应用范围。 当CPU正在处理某项事务的时候,如果外界或内部发生了紧急事件,要求CPU暂停正在处理的工作转而去处理这个紧急事件,待处理完以后再回到原来被中断的地方,继续执行原来被中断了的程序,这样的过程称为中断。向CPU提出中断请求的源称为中断源。微型计算机一般允许有多个中断源。当几个中断源同时向CPU发出中断请求时,CPU应优先响应最需紧急处理的中断请求。为此,需要规定各个中断源的优先级,使CPU 在多个中断源同时发出中断请求时能找到优先级最高的中断源,响应它的中断请求。在优先级高的中断请求处理完了以后。再响应优先级低的中断请求。 当CPU正在处理一个优先级低的中断请求的时候,如果发生另一个优先级比它高的中断请求,CPU能暂停正在处理的中断源的处理程序,转去处理优先级高的中断.请求,待处理完以后,再回到原来正在处理的低级中断程序,这种高级中断源能中断低级中断源的中断处理称为中断嵌套。 MCS-51系列单片机允许有五个中断源,提供两个中断优先级(能实现二级中断嵌套)。每一个中断源的优先级的高低都可以通过编程来设定。中断源的中断请求是否能得到响应,受中断允许寄存器IE的控制;各个中断源的优先级可以由中断优先级寄存器IP 中的各位来确定;同一优先级中的各中断源同时请求中断时,由内部的查询逻辑来确定响应的次序。这些内容都将在本节中讨论。 6 . 1 中断请求源和中断请求标志 1、中断请求源 MCS-51中断系统可用图6-1来表示。五个中断源是: INT来自P3.2引脚上的外部中断请求(外中断0)。 ◆0 INT来自P3.3引脚上的外部中断请求(外中断1)。 ◆1 ◆T0 片内定时器/计数器0溢出(TF0)中断请求。 ◆T1片内定时器/计数器1溢出(TF1)中断请求。 ◆串行口片内串行口完成一帧发送或接收中断请求源TI或RI。 每一个中断源都对应有一个中断请求标志位,它们设置在特殊功能寄存器TCON和SCON中。当这些中断源请求中断时,分别由TCON和SCON中的相应位来锁存。

实验4:定时与中断系统实验

实验四:定时与中断系统实验 一、实训目的 1.利用单片机的定时与中断方式,实现对信号灯的复杂控制。 2.通过定时器程序调试,学会定时器方式1的使用。 3.通过中断程序调试,熟悉中断的基本概念。 二、实验仪器、材料 1.微型计算机(PⅣ以上) 2.编程、汇编与模拟平台软件Keil uVision3 3.电子技术专业仿真软件protues运行平台 4.单片机实训开发电路板 三、实验内容和步骤 1.定时器查询方式 1)要求:信号灯循环显示,时间间隔为1秒。 2)方法:用定时器方式1编制1秒的延时程序,实现信号灯的控制。 系统采用12M晶振,采用定时器T1方式1定时50ms,用R3做50ms计数单元,其源程序可设计如下: ORG 0000H CONT:MOV R2,#07H MOV A,#0FEH NEXT:MOV P2,A ACALL DELAY RL A DJNZ R2,NEXT MOV R2,#07H NEXT1:MOV P2,A RR A ACALL DELAY DJNZ R2,NEXT1 SJMP CONT DELAY:MOV R3,#14H ;置50ms计数循环初值 MOV TMOD,#10H ;设定时器1为方式1 MOV TH1,#3CH ;置定时器初值 MOV TL1,#0B0H SETB TR1 ;启动T1 LP1:JBC TF1,LP2 ;查询计数溢出 SJMP LP1 ;未到50ms继续计数LP2:MOV TH1,#3CH ;重新置定时器初值 MOV TL1,#0B0H DJNZ R3,LP1 ;未到1s继续循环 RET ;返回主程序 END 2.定时器中断方式 1)要求:信号灯循环显示,时间间隔为1秒。 2)方法:用定时器中断方式编制1秒的延时程序,实现信号灯的控制。 采用定时器T1中断定时50ms,用R3做50ms计数单元,在此基础上再用08H位作1s 计数溢出标志,主程序从0100H开始,中断服务程序名为CONT。可设计源程序如下: ORG 0000H ;程序入口 AJMP 0100H ;指向主程序 ORG 001BH ;定时器T1中断入口 AJMP CONT ;指向中断服务程序 ORG 0100H

单片机实验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 口进行脉冲的输出,通过定时器进行端口定时控制,实现每1ms高低电平变换。就可以实现一个占空比为50%的矩形脉冲输出。对于定时器的定时功能实现,需要进行定时器模式选择,定时器初值设定。 4、利用中断进行脉冲的计数

实验二 中断控制实验实验三 定时/计数器实验

《单片机原理与接口技术》 第3章单片机集成功能模块实验实验二中断控制实验 实验三定时/计数器实验 班级:学号: 姓名:成绩: 指导老师: 日期:2017年11月6日

实验二中断控制实验 一、实验目的 学习中断控制技术的基本原理,掌握中断程序的设计方法。 二、实验原理 1、参照实验电路连线图接线,在8051的P1口上接8个发光二极管,在INT0(P3.2)接入触发脉冲电路,利用下降沿触发产生中断。 2、编制主程序,使P1口的8个发光二极管同时亮,延时一会儿在同时熄灭,延时时间自定。外来脉冲每触发一次,主程序便中断一次,在中断服务子程序中,使P1口的8个发光二极管在某一时刻只有一个点亮,并向左循环移动。 三、仪器设备: 1、PC计算机一台。 2、Dais-386PRO+实验系统一套。 四、实验内容: 1、定时器中断 单片机集成的定时器可以产生定时中断,利用定时器T0,编 写程序,使P1.0控制的发光二极管L0每隔1秒交替点亮或熄灭。 实验步骤: 1)按图3-2-1连接实验电路,参考程序:A51\3_2_1.ASM; 2)编写程序,经编译、链接无语法错误后装载到实验系统; 3)运行程序,观察发光二极管L0,应每隔1秒交替点亮或熄 灭; 4)实验完毕后,应使用暂停命令中止程序的运行。 2、外部中断 L0P1.0 发光二极管 单片机图3-2-2 实验接线图SP 单脉冲 P3.2 L0P1.0 发光二极管单片机图3-2-1 实验接线图

P3.2(INT0)连接单脉冲发生器,编写程序,每按一次脉冲产生一次中断,使P1.0控制的发光二极管L0交替点亮或熄灭。 1)按图3-2-2连接实验电路,参考程序: A51\3-2-2.ASM; 2)编写程序,经编译、链接无语法错误后装载到 实验系统; 3)运行程序,每按动一次单脉冲按钮令发光二极 管L0交替点亮或熄灭; 4)实验完毕后,

相关文档
最新文档