资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验四单片机输入接口与定时实验四单片机输入接口与定时/中断中断主要内容 按键控制LED 按键触发外部中断 定时/计数器对按键动作计数 前面的实验介绍了I/O口的输出功能,本次实验介绍I/O口的输入功能。 单片机是作为控制用的单片微型计算机,主要是通过丰富的I/O资源与外界交互,实现控制目的。I/O口可以直接用于控制外部器件,如LED,还有蜂鸣器;I/O信号经过驱动,还可以控制继电器、电机,实现弱电控制强电。I/O口可以用于存储器扩展(P0,P2),访问外部存储器,进行数据的存取操作;可以多个MCU协调工作,通过I/O口进行时钟同步,数据交换等。 同样,外部的信息也通过I/O口输入单片机,简单的如按键和指拨开关的状态,外部的反馈信号,模拟信号等;还有,可以对外部的信号进行计数(定时/计数器),外部中断信号输入,与上位机或其他MCU通信(串口)等。4.1 按键控制LED 用LED显示按键按下的次数(如果是4个LED,计数次数小于16次),或者进行加减计数。 用按键控制流水灯的方向。实验程序#include #include void main() unsigned char PressCounter=0; while(1) if(P24=1) delay_nms(15); if(P24=1)PressCounter+; P1=(PressCounter) 这个程序 可以实现吗?控制流水灯的方向或两个按键进行增减计数4.2 外部中断的工作方式与应用一、中断的概念一、中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生中断发生);); CPU暂时中断当前的工作,转去处理事件B(CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务中断响应和中断服务);); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回中断返回),这一过程称为),这一过程称为中断中断。引起引起CPU中断的请求信号来源,称为中断的请求信号来源,称为中断源中断源。中断源向。中断源向CPU提出的中断请求。提出的中断请求。CPU暂时中断原来的事务暂时中断原来的事务A,转去处理事件,转去处理事件B。对事件。对事件B处理完毕后,再回到原来被中断的地方(即处理完毕后,再回到原来被中断的地方(即断点断点),称为中断返回。实现上述中断功能的部件称为),称为中断返回。实现上述中断功能的部件称为中断系统中断系统(中断机构)。(中断机构)。表4.1 80C51/52 中断源P1 P0P3P2C51/52单片机的引脚图(1)与外部中断相关的)与外部中断相关的SFR:TCON,SCON,IE1)TCON的中断标志 IT0(TCON.0),外部中断),外部中断0触发方式控制位。触发方式控制位。 当当IT0=0时,为电平触发方式(低电平触发)。 当时,为电平触发方式(低电平触发)。 当IT0=1时,为边沿触发方式(下降沿有效)。时,为边沿触发方式(下降沿有效)。 IE0(TCON.1),外部中断0中断请求标志位。 IT1(TCON.2),外部中断1触发方式控制位。 IE1(TCON.3),外部中断1中断请求标志位。 TF0(TCON.5),定时/计数器T0溢出中断请求标志位。 TF1(TCON.7),定时/计数器T1溢出中断请求标志位。2)SCON的中断标志 RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。 TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。3)中断允许控制寄存器IE CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。 ?EX0(IE.0),外部中断,外部中断0允许位;允许位; ?ET0(IE.1),定时/计数器T0中断允许位; ?EX1(IE.2),外部中断0允许位; ?ET1(IE.3),定时/计数器T1中断允许位; ?ES(IE.4),串行口中断允许位; ?EA (IE.7), CPU中断允许(总允许)位。中断允许(总允许)位。中断响应条件 CPU开中断(即开中断(即EA=1)。)。 此中断源的中断允许位为此中断源的中断允许位为1(如外部中断(如外部中断0,EX0=1);); 中断源有中断请求(电平触发?下降沿触发?);中断源有中断请求(电平触发?下降沿触发?);中断服务函数 C51编译器支持在C源程序中直接开发中断程序。中断服务程序是通过按规定语法格式定义的一个函数。中断服务程序的函数定义的语法格式如下: 返回值函数名(参数) interrupt m using n interrupt m,m指相应的中断号,表4.2 80C52单片机中断源例子:用中断方式计数按键动作,然后显示电路图#include #include sbit P32=P32; sbit P33=P33; unsigned char counter;/包含头文件,宏定义,位定义,全局变量定义void INT0_LED() interrupt 0 using 1 EX0=0; delay_nms(10); if(P32=0)counter+; while(P32=0); P0=counter; EX0=1; int main() counter=0; EX0=1; EA=1; IT0=0; while(1) /中断服务函数/主函数4.3.1 定时/计数器工作方式与使用(1)定时器定时器/计数器计数器 对于定时器/计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都具有以下特点:a.定时器/计数器有多种方式,可以是计数方式也可以是定时方式。b. 定时器/计数器的计数值是可变的,当然计数的最大值是有限的,这取决于计数器的位数。计数的最大值也就限定了定时的最大值。 c. 在到达设定的定时或计数值时发出中断申请,以便实现定时控制。MCS-51单片机(51子系列)内带有两个16位定时器/计数器T0和T1,它们均可作为定时器或计数器使用。(2)定时/计数器的结构 定时定时/计数器的实质是加计数器的实质是加1计数器(计数器(16位),由高位),由高8位和低位和低8位两个寄存器组成。位两个寄存器组成。TMOD是定时是定时/计数器的工作方式寄存器,确定工作方式和功能;计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制是控制寄存器,控制T0、T1的启动和停止及设置溢出标志的启动和停止及设置溢出标志。(3)定时/计数器的工作原理 加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。 可见,由溢出时计数器的值减去计数初值才是加可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。计数器的计数值。(4)定时计数模式 设置为定时器模式时设置为定时器模式时,加,加1计数器是对内部机器周期计数(计数器是对内部机器周期计数(1个机器周期等于个机器周期等于12个振荡周期,即计数频率为晶振频率的个振荡周期,即计数频率为晶振频率的1/12)。)。计数值计数值N乘以机器周期乘以机器周期Tcy就是定时时间就是定时时间t 。 设置为设置为计数器模式时计数器模式时,外部事件计数脉冲由,外部事件计数脉冲由T0或或T1引脚输入到计数器。 要求被采样的电平至少要维持一个机器周期。当晶振频率为引脚输入到计数器。 要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时时,最高计数频率不超过,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于,即计数脉冲的周期要大于2 s。4.3.2 定时/计数器的控制80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。 一、工作方式寄存器TMOD 工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下:GATE:门控位。:门控位。 GATE0时,只要用软件使时,只要用软件使TCON中的中的TR0或或TR1为为1,就可以启动定时,就可以启动定时/计数器工作;计数器工作;GATA1时,要用软件使时,要用软件使TR0 或或TR1为为1,同时外部中断引脚或也为高电平时,才能启动定时,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动条件,加上了或引脚为高电平这一条件。计数器工作。即此时定时器的启动条件,加上了或引脚为高电平这一条件。:定时定时/计数模式选择位。计数模式选择位。 =0 为定时模式;为定时模式; =1 为计数模式。为计数模式。M1M0:工作方式设置位。定时:工作方式设置位。定时/计数器有四种工作方式,由计数器有四种工作方式,由M1M0进行设置。进行设置。二、控制寄存器二、控制寄存器TCONTCON的低的低4位用于控制外部中断位用于控制外部中断,已在前面介绍。已在前面介绍。TCON的高的高4位用于控制定时位用于控制定时/计数器的启动和中断申请。其格式如下:计数器的启动和中断申请。其格式如下:TF1(TCON.7):):T1溢出中断请求标志位。溢出中断请求标志位。T1计数溢出时由硬件自动置计数溢出时由硬件自动置TF1为为1。CPU响应中断后响应中断后TF1由硬件自动清由硬件自动清0。T1工作时,工作时,CPU 可随时查询可随时查询TF1的状态。所以,的状态。所以,TF1可用作查询测试的标志。可用作查询测试的标志。TF1也可以用软件置也可以用软件置1或清或清0,同硬件置,同硬件置1或清或清0的效果一样。的效果一样。 TR1(TCON.6):):T1运行控制位。运行控制位。TR1置置1时,时,T1开始工作;开始工作;TR1置置0时,时,T1停止工作。停止工作。TR1由软件置由软件置1或清或清0。所以,用软件可控制定时。所以,用软件可控制定时/计数器的启动与停止。计数器的启动与停止。 TF0(TCON.5):):T0溢出中断请求标志位,其功能与溢出中断请求标志位,其功能与TF1类同。类同。 TR0(TCON.4):):T0运行控制位,其功能与运行控制位,其功能与TR1类同。类同。一、方式一、方式0 方式方式0为为13位计数位计数,由,由TL0的低的低5位(高位(高3位未用)和位未用)和TH0 的的8位组成。位组成。TL0的低的低5位溢出时向位溢出时向TH0进位,进位,TH0溢出时,置位溢出时,置位TCON中的中的TF0标志,向标志,向CPU发出中断请求。发出中断请求。 二、方式二、方式1 方式方式1的计数位数是的计数位数是16位,由位,由TL0作为低作为低8位、位、TH0作为高作为高8位,组成了位,组成了16位加位加1计数器 。计数器 。计数个数与计数初值的关系为:计数个数与计数初值的关系为:4.3.3 定时定时/计数器的工作方式简单介绍计数器的工作方式简单介绍三、方式三、方式2 方式方式2为自动重装初值的为自动重装初值的8位计数方式。位计数方式。工作方式2
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号