51中断
来源:互联网 发布:背离指标源码 编辑:程序博客网 时间:2024/05/16 01:36
关于51单片机中断
定时器0 定时器1 外部中断0 外部中断1
1、对于优先级
外部中断0>定时器0>外部中断1>定时器1;
即外部的优先级高,有0的优先级都比1的优先级高。
2、关于定时器初始化
定时器的初始化格式:
如:void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0FF;
TL0 = 0x9C;
EA = 1; //开总中断
ET0 = 1; //允许T0中断
TR0 = 1; //启动定时器T0,不一定在此处开,当需要启动时再开,在此处就将他设为0
}
(1)首先是模式问题,定时器需要设定模式,模式TMOD的设定为八个位,高四位定义T1,低四位 定义T0,八位分别为:GATE C/T M1 M0 GATE C/T M1 M0 对于GATE基本设为0 ;C/T为计数定时位,定时是设为0,计数设为1;M0、M1表示所选模式,有模式0为00(最大定时8192um),模式1为01(最大定时65.536ms),模式2为10。定时时间不长首选模式二。以上程序是选用定时器0的模式1.
(2)其次是初值问题,以上程序中是选用模式1,定时100um,所以初值为TH0 = 0x0FF;TL0 = 0x9C;。对于初值的计算,就模式一来讨论定时时间,定时时间=(2^16-初值)*振荡周期*12,这样就可以求出初值,另一种方法,TH0=(65536-定时时间‘此时间用um为单位’) /256,TL0=(65536-定时时间‘以um为单位’)%256。
(3)之后就是开总中断,允许T0中断,启动定时器T0。
3、定时器中断函数:
void Timer0_isr(void) interrupt 1 基本格式,其中interrupt为优先级,定时器0的优先级为1,而外部中断0为0,外部中断1为2,定时器1为3。
当开启定时器即TR0/1=1;此时进入定时状态,而这时主函数还是一样在运行,定时器在定时,直到定时到我们设定的定时时间时,主函数暂停运行,进入到中断函数,执行中断函数,执行完后又返回主函数,只要定时器没有关,定时器就不断循环定时,没到定时时间主函数就暂停去执行中断函数。
4、外部中断
对于外部中断的初始化,即
开总中断EA=1,
开外部中断0/1 EX0/1=1,
设置触发方式,IT,IT=0为电平触发方式,低电平触发,IT=1为边沿触发方式,下降沿触发。
对于中断函数,
P3^2口为外部中断0接口,假设我们是电平触发方式,当此端口检测到一个低电平时,就产生中断执行中断函数,执行完后又返回主函数。只要检测到低电平就进行如此循环。P3^3口为外部中断1接口。
- 51中断
- 51中断
- 51中断-定时器/计数器中断
- 51中断程序
- MCS-51中断系统
- 51单片机中断问题
- MCS--51中断系统
- 51单片机中断
- 51单片机中断系统
- 51单片机 中断
- 51单片机中断学习
- 51单片机中断
- 51单片机中断学习
- 51的中断系统
- 51单片机中断学习
- 51单片机中断
- 51单片机外部中断
- 51单片机中断
- 2010年最具影响十大技术:移动互联…
- [Android]环境变量搭配(eclipse)
- 什么是黑客?
- 延迟加载单例模式(懒汉式)
- [Android]监听(获取)未读短信和未接电话(demo)
- 51中断
- JS获得浏览器的宽度和高度
- [Android]桌面悬浮窗 (demo)
- 李开复谈程序员年龄问题
- [Android]完美屏蔽Home键
- 二叉树遍历、分层遍历
- [Android] 利用java反射调用隐藏Api
- 技术总监谈好的程序员如何写代码
- java内存管理