51单片机中断系统详解
更新时间:2023-08-24 16:55:01 阅读量: 教育文库 文档下载
51 单片机中断系统详解(定时器、计数器)51 单片机中断级别中断源 INT0---外部中断 0/P3.2 T0---定时器/计数器 0 中断/P3.4 INT1---外部中断 1/P3.3 T1----定时器/计数器 1 中断 /P3.5 TX/RX---串行口中断 T2---定时器/计数器 2 中断 第5 最低 4 5 默认中断级别 最高 第2 第3 第4 序号(C 语言用) 0 1 2 3 intrrupt 0
中断允许寄存器 IE位 序 号 符 号 位 EA/0 ------ET2/1 ES ET1 EX1 ET0 EX0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
EA---全局中允许位。 EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打 开或关闭。 EA=0,关闭全部中断。 -------,无效位。
ET2---定时器/计数器 2 中断允许位。ET2=1, 打开 T2 中断。 ET2=0,关闭 T2 中断。 关,…… ES---串行口中断允许位。 关,…… ES=1,打开串行口中断。 关,…… ES=0,关闭串行口中断。 关,…… ET1---定时器/计数器 1 中断允许位。 关,…… ET1=1,打开 T1 中断。 ET1=0,关闭 T1 中断。 EX1---外部中断 1 中断允许位。 EX1=1,打开外部中断 1 中断。 EX1=0,关闭外部中断 1 中断。 ET0---定时器/计数器 0 中断允许位。 ET0=1,打开 T0 中断。
EA 总中断开关,置 1 为开;EX0 为外部中断 0 (INT0) 开关, …… ET0 为定时器/计数器 0(T0)开 EX1 为外部中断 1(INT1)开 ET1 为定时器/计数器 1(T1)开 ES 为串行口(TX/RX)中断开 ET2 为定时器/计数器 2(T2)开
ET0=0,关闭 T0 中断。 EX0---外部中断 0 中断允许位。 EX0=1,打开外部中断 0 中断。 EX0=0,关闭外部中断 0 中断。
中断优先级寄存器 IP位 序 号 位 地 址 ------PS/0 PT1/0 PX1/0 PT0/0 PX0/0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
-------,无效位。 PS---串行口中断优先级控制位。 PS=1,串行口中断定义为高优先级中断。 PS=0,串行口中断定义为低优先级中断。 PT1---定时器/计数器 1 中断优先级控制位。 PT1=1,定时器/计数器 1 中断定义为高优先级中断。 PT1=0,定时器/计数器 1 中断定义为低优先级中断。 PX1---外部中断 1 中断优先级控制位。 PX1=1,外部中断 1 中断定义为高优先级中断。 PX1=0,外部中断 1 中断定义为低优先级中断。 PT0---定时器/计数器 0 中断优先级控制位。 PT0=1,定时器/计数器 0 中断定义为高优先级中断。 PT0=0,定时器/计数器 0 中断定义为低优先级中断。 PX0---外部中断 0 中断优先级控制位。 PX0=1,外部中断 0 中断定义为高优先级中断。 PX0=0,外部中断 0 中断定义为低优先级中断。
定时器/计数器工作模式寄存器 TMOD位序 号 位符 号 GATE C/T M1 M0 GATE C/T M1 M0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
|---------定时器 1-----------------------|-------- ------定时器 0----------------------| GATE---门控制位。 GATE=0,定时器/计数器启动与停止仅受 TCON
寄存器中 TRX(X=0,1)来控制。 GATE=1, 定时器计数器启动与停止由 TCON 寄存器中 TRX(X=0,1)和外部中断引 脚(INT0 或 INT1)上的电平状态来共同控制。 C/T---定时器和计数器模式选择位。 C/T=1,为计数器模式;C/T=0,为定时器模式。 M1M0---工作模式选择位。M 1 0 M 工作模式
0 0 1 1 位 序 号 符 号 位 TF1 DB7
0 1 0 1 DB6 DB5
方式 0,为 13 位定时器/计数器 方式 1,为 16 位定时器/计数器 方式 2,8 位初值自动重装的 8 位定时器/计数器 方式 3,仅适用于 T0,分成两个 8 位计数器,T1 停止工作 DB4 DB3 DB2 DB1 DB0
定时器/控制器控制寄存器 TCON
TR1
TF0
TR0
IE1 /1
IT1/P3.3 0/1
IE0
IT0P3.2
TF1---定时器 1 溢出标志位。 当定时器 1 记满溢出时,由硬件使 TF1 置 1,并且申请中断。进入中断服务程 序后,由硬件自动清 0。需要注意的是,如果使用定时器中断,那么该位完全不用人 为去操作,但是如果使用软件查询方式的话,当查询到该位置 1 后,就需要用软件清 0。 TR1---定时器 1 运行控制位。 由软件清 0 关闭定时器 1。当 GATE=1,且 INIT 为高电平时,TR1 置 1 启动定 时器 1;当 GATE=0 时,TR1 置 1 启动定时器 1。 TF0---定时器 0 溢出标志,其功能及其操作方法同 TF1。 TR0---定时器 0 运行控制位,其功能及操作方法同 TR1。 IE1---外部中断 1 请求标志。 当 IT1=0 时,位电平触发方式,每个机器周期的 S5P2 采样 INT1 引脚(p3.3), 若 NIT1 脚为低电平,则置 1,否则 IE1 清 0。 当 IT1=1 时,INT1 为跳变沿触发方式,当第一个及其机器周期采样到 INIT1 为 低电平时,则 IE1 置 1。IE1=1,表示外部中断 1 正向 CPU 中断申请。当 CPU 响应中 断,转向中断服务程序时,该位由硬件清 0。 IT1 外部中断 1 触发方式选择位。 IT1=0,为电平触发方式,引脚 INT1 上低电平有效。 IT1=1,为跳变沿触发方式,引脚 INT1 上的电平从高到低的负跳变有效。 IE0---外部中断 0 请求标志,其功能及操作方法同 IE1。 IT0---外部中断 0 触发方式选择位,其功能及操作方法同 IT1。 从上面的知识点可知,每个定时器都有 4 种工作模式,可通过设置 TMOD 寄存 器中的 M1M0 位来进行工作方式选择。 方式 1 的计数位数是 16 位,对 T0 来说,由 TL0 寄存器作为低 8、TH0 寄存器 作为高 8 位,组成了 16 位加 1 计数器。 关于如何确定定时器 T0 的初值问题。定时器一但启动,它便在原来的数值上开 始加 1 计数,若在程序开始时,我们没有设置 TH0 和 TL0,它们的默认值都是 0,假 设时钟频率为 12MHz,12 个时钟周期为一个机器周期,那么此时机器周期为 1us,记 16 满 TH0 和 TL0 就需要 2 -1 个数, 再来一个脉冲计数器溢出, 随即向 CPU 申请中断。 因此溢出一次共需 6
5536us,约等于 65.6ms,如果我们要定时 50ms 的话,那么就需要 先给 TH0 和 TL0 装一个初值,在这个初值的基础上记 50000 个数后,定时器溢出, 此时刚好就是 50ms 中断一次,当需要定时 1s 时,我们写程序时当产生 20 次 50ms
的定时器中断后便认为是1s,这样便可精确控制定时时间啦。要计50000个数时,TH0和TL0中应该装入的总数是65536-50000=15536.,把15536对256求模:15536/256=60装入TH0中,把15536对256求余:15536/256=176装入TL0中。
以上就是定时器初值的计算法,总结后得出如下结论:当用定时器的方式1时,设机器周期为TCY,定时器产生一次中断的时间为t,那么需要计数的个数为N=t/TCY ,装入THX和TLX中的数分别为:
THX=(65536-N)/256 , TLX=(65536-N)%256 <x为0或1> 中断服务程序的写法
void 函数名()interrupt 中断号 using 工作组 {
中断服务程序内容 }
在写单片机的定时器程序时,在程序开始处需要对定时器及中断寄存器做初始化设置,通常定时器初始化过程如下:
(1)对TMOD赋值,以确定T0和 T1的工作方式。
(2)计算初值,并将初值写入TH0、TL0或TH1、TL1。 (3)中断方式时,则对IE赋值,开放中断。
(4)使TR0和TR1置位,启动定时器/计数器定时或计数。
例:利用定时器0工作方式1,实现一个发光管以1s亮灭闪烁。 程序代码如下: #include<reg52.h>
#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
{
TH0=(65536-45872)/256; //重新装载初值 TL0=(65536-45872)%256; num++; }
正在阅读:
51单片机中断系统详解08-24
考核材料02-15
我家的故事作文300字06-29
紫金矿业集团东北亚公司2011年校园招聘简章--辽宁工程技术大学03-11
网络环境下图书馆资料管理模式的创新分析03-16
毕业论文03-09
形容随声附和的成语02-11
Scratch趣味编程 - 大鱼吃小鱼11-15
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 单片机
- 中断
- 详解
- 系统
- 基于工作过程导向的《网络管理员》岗位课程体系设计
- 七年级道德与法治上册第一单元相逢是首歌第2课我和老师交朋友第1框感恩师爱教学设计鲁人版五四制
- 《国际企业管理》期末复习题(开本)14秋
- 2017年国防科学技术大学理学院828生物化学考研冲刺密押题
- 某企业职业卫生培训讲义
- 地质灾害防治工程试题
- 市场规划与关键客户管理
- 学案4 农业与区域可持续发展 以东北地区为例
- 湖南省张家界市2016-2017学年高一下学期期末联考数学(A)试题Word版含答案
- 一图了解复星集团总部组织架构
- 网上购物网站建设方案
- 电大审计学 形考 材料成本差异长期挂账牵出偷税大案案例分析 答案
- 服装购销合同范本
- 财务管理论文--论加强应收账款管理的重要性
- 家装工程各项目施工验收标准表
- JS文档
- 高考地理一轮复习专题训练 地球的自转及其地理意义
- 电子数字时钟课程设计报告(数电)
- 空气源热泵热水器海外市场分析0703
- 人教版数学九年级上册24.4《弧长和扇形的面积》同步练习含答案