单片机技术及应用(中职)课件 17.中断的相关知识.pptx

单片机技术及应用(中职)课件 17.中断的相关知识.pptx

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

51单片机实训课程中断的相关知识

1中断的概念2中断的处理过程3中断的优先级4中断的各寄存器设置5定时器定时初始值的计算重点

1中断的处理过程2中断的各寄存器设置3定时器定时初始值的计算难点

什么是中断,我们从一个生活中的例程引入。你正在家中看书,突然门铃响了,你放下书本,去开门处理收包裹的事情后,回来继续看你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。情境引入

项目任务要求通过学习定时中断来控制一个LED灯的亮灭来掌握中断的基础知识和中断各寄存器的设置以及中断启动的程序编写。中断控制

中断的基础知识中断

中断的处理过程

MCS-51单片机中断系统的结构MCS-51单片机中断系统的结构INT0:外部中断0由P3.2端口线引入,低电平或下跳沿引起INT1:外部中断1由P3.3端口线引入,低电平或下跳沿引起T0:定时器/计数器0中断由T0计满回零引起T1:定时器/计数器l中断由T1计满回零引起TI/RI:串行I/O中断串行端口完成一帧字符发送/接收后引起

52单片机的中断级别52单片机的中断级别中断源中断级别(默认)序号(C语言用)入口地址(汇编语言用)INT0:外部中断0最高00003HT0:定时器/计数器0中断第二1000BHINT1:外部中断1第三20013HT1:定时器/计数器l中断第四3001BHTI/RI:串行I/O中断第五40023HT2:定时器/计数器2中断最低5002BH

中断允许寄存器IE中断允许寄存器IE位序号D7D6D5D4D3D2D1D0位符号EA--ET2ESET1EX1ET0EX0位地址AFH--ADHACHABHAAHA9HA8H

中断优先级寄存器IP位序号D7D6D5D4D3D2D1D0位符号------PSPT1PX1PT0PX0位地址------BCHBBHBAHB9HB8H中断优先级寄存器IP

定时器/计数器工作方式寄存器TMOD

定时器/计数器工作方式M1M0功能说明00方式0,13位定时器计数器计算范围:0-819201方式1,16位定时器计数器计算范围:0-6553610方式2,常数自动装入的8位定时器计数器0-25611方式3,仅用于T0,分为两个8位定时器计数器0-256

定时器/计数器结构原理图

定时器/计数器工作0方式

定时器/计数器控制寄存器TCON定时器/计数器控制寄存器TCON位D7D6D5D4D3D2D1D0功能TF1TR1TF0TR0--------

定时器初值的计算计数信号周期=n*(1/f)=12*(1/12MHz)=1us定时模式的计数脉冲是由单片机的晶体振荡器产生的频率信号经过12分频得到的,以12MHz的晶振计数次数=50ms/(1us)=50000假定定时时间是50ms,选用定时器0,工作方式1,那么TH0=(65536-50000)/256;TL0=(65536-50000)%256;将高八位和低八位的计算值送入寄存器TH0和TL0,即可以完成50ms的定时。

中断服务程序的写法C51中断服务程序的写法void函数名()interrupt中断号using工作组{中断服务程序内容}

软件要求中断

#includereg52.h#defineuintunsignedintsbitled=P0^0;uintnum;//52系列单片机头文件//宏定义//位定义//定义无符号变量num让一盏灯闪烁参考程序(声明定义部分)

voidmain(){TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;EX0=1;TMOD=0X01;While(1);}//主函数入口//重装初值//开总中断//开定时器中断0//设置定时器0为工作方式1//程序在这里不停执行空语句直到中断的发生让一盏灯闪烁参考程序(主函数部分)

voidT0_time()interrupt1{ TH0=(65536-50000)/256; TL0=(6

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档