单片机中断系统与定时器计数器应用资料.ppt 立即下载
2024-11-26
约4.2千字
约51页
0
1.6MB
举报 版权申诉
预览加载中,请您耐心等待几秒...

单片机中断系统与定时器计数器应用资料.ppt

单片机中断系统与定时器计数器应用资料.ppt

预览

免费试读已结束,剩余 46 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

单片机中断系统与定时器/计数器应用一、MCS-51单片机中断系统1、中断源2、与中断有关的特殊功能寄存器(1)定时器/计数器控制寄存器TCONTR0(TCON.4)定时器/计数器T0启停控制位,可由软件设置。(2)串行口控制寄存器SCONRI串行口接收中断请求标志位。(3)中断允许控制寄存器IEEACPU总中断允许位。
EA=0关中断,EA=1开中断。
EX0外部中断0中断允许位。
EX0=1允许外部中断0中断,EX0=0禁止外部中断0中断。
ET0定时器/计数器T0中断允许位。
ET0=1允许T0中断,ET0=0禁止T0中断。
EX1外部中断l中断允许位。
EX1=1允许外部中断1中断,EX=0禁止外部中断1中断。
ET1定时器/计数器Tl中断允许位。
ET1=1允许T1中断,ET1=0禁止T1中断。
ES串行口中断允许位。
ES=1允许串行口中断,ES=0禁止串行口中断。MCS-51单片机复位时,IE被清零,此时CPU关中断,各中断源的中断也都被屏蔽。若系统需要用中断方式进行事件处理,则系统初始化程序中需要对IE编程。对IE编程时,不仅要开需要的中断,还要开CPU的中断。例如:
EA=1;//CPU开中断
EX1=1;//CPU中断巳开,对EXl的操作有效,允许外部中断1中断。(4)中断优先级寄存器IPMCS-51单片机的中断优先级采用了自然优先级和人工设置高、低优先级的策略,中断处于同一级别时,就由自然优先级确定。开机时每个中断都处于低优先级,中断优先级可以通过中断优先级寄存器IP中的相应位的状态来设定。3、中断服务函数的写法一个简单的中断服务C程序写法如下:
voidT1_time()interrupt3
{
	TH1=(65536一10000)/256;
	TL1=(65536-10000)%256;
}二、MCS-51单片机定时器/计数器其内部主要包括:
①两个16位可编程定时器/计数器,简称为定时器0(T0)和定时器1(T1)。
②一个8位的定时器/计数器方式寄存器TMOD。主要用于设定定时器/计数器的工作方式,有四种工作方式。
③一个8位的定时器/计数器控制寄存器TCON。主要用于控制定时器/计数器的启动与停止,并保存T0、T1的溢出和中断标志。2、与定时器/计数器有关的特殊功能寄存器TMOD.73、定时器/计数器工作方式(2)方式1—16位定时器/计数器方式(M1M0=01)(3)方式2—8位自动重装初值定时器/计数器方式(M1M0=10)(4)方式3—两个8位定时器/计数器方式(M1M0=11)4、定时器/计数器初始化5-1-4计算时间常数X(计算初值)TMOD=0x01;		//设置定时器T0为工作方式1
TH0=(65536-50000)/256;	//装初值
TL0=(65536-50000)%256;
EA=1;				//开总中断
ET0=1;				//开定时器T0中
TR0=1;	//启动定时器5、定时器/计数器典型应用①用定时器T0定时1s实现单个发光二极管闪烁voidT0_time()interrupt1//T0中断服务函数
{
	TH0=(65536-50000)/256;	//重装初值
	TL0=(65536-50000)%256;
	num++;			//num每加1次判断一次是否20次
	if(num==20)		//如果到20次,说明1s时间到
	{
		num=0;		//然后把num清0重新再计20次
		LED1=~LED1;	//LED状态取反
	}
}②用定时器T1定时1s实现八彩灯轮流循环点亮	TR1=1;					//启动定时器1
	while(1);					//程序暂停等待中断
}
voidT1_time()interrupt3//T1中断服务函数
{
	ucharnum,num1;//定义变量
	TH1=(65536-50000)/256;	//重装初值
	TL1=(65536-50000)%256;
	num++;					//中断次数加1
	if(num==20)				//如果到20次,说明1s时间到
	{
		num=0;				//num清0重新再计20次
		P1=table[num1];//取彩灯花样
		num1++;
		if(num1>=8)
		num1=0;
	}
}③用定时器T0定时,完成日历时钟秒、分、时的定时。设晶振频率为12MHZvoidT0_time()interrupt1//T0中断服务函数
{
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	T++;
	if(T==20)//如果到20次,说明1秒时间到
	{
		T=0;
		S++;//秒加1
		if(S==59)
	
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

单片机中断系统与定时器计数器应用资料

文档大小:1.6MB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用