目录
一、中断系统
二、外部中断
一)配置外部中断的三个步骤
1)中断允许
(2)中断方式配置
3)中断处理函数
二)实验代码
三、定时器/计数器
一)使用定时器/计数器的三个步骤
1)启动定时/计数器
2)设置工作模式辑
3)查询定时/计数器是否溢出
二)实验代码
1)定时器
2)计数器
四、定时器/计数器中断
一)执行定时器/计数器中断的四个步骤
1.中断允许
2.启动定时、计数器
3.设置工作模式
4.中断处理函数
二)实验代码
一、中断系统
中断反映计算机处理紧急事件的能力,分为四个步骤:中断请求、中断响应、中断处理、中断返回。
51单片机允许5个中断源:2个外部中断INT0、INT1,3个内部中断:2个定时/计数器中断T0、T1,串口中断TI/RI。
它们的优先级:INT0(H)中断入口:0
T0 1
INT1 2
T1 3
TI/RI (L) 4
二、外部中断
一)配置外部中断的三个步骤
1)中断允许
如果想执行中断,需要将总中断开关闭合,以及各自中断开关闭合 。
可位寻址的意思就是可以直接写EA=1;而不用读二进制。
如果想打开外部中断1
(2)中断方式配置
IE1和IE0是由硬件自动置1置0的,我们不用管。
如果想用下降沿触发外部中断1
3)中断处理函数
二)实验代码
将P3^2与P3^7用杜邦线相连,按一次独立按键S2,先给P3^7一个高电平,再给一个低电平,实现下降沿触发,用P1的翻转体现中断执行。
三、定时器/计数器
一)使用定时器/计数器的三个步骤
1)启动定时/计数器
想让定时器T0运行
TF0是判断是否溢出,if(TF0==1) 完成从初值加到65536的过程。
软件查询方法 可以直接TF0=0;
不可位寻址,就是不可以直接写GATE=1;而要读二进制
如果要执行16位计数器1
1)GATE位置0; 如果置1还需要INT1为高电平才能执行
2)C/T位置1;
3)工作模式1
TMOD=01010000=0x50;
TL0和TH0怎么计算
如果是定时器50ms
单片机工作频率11.0592MHz,时钟周期1/11.0592/1000000*1000000=0.0904us
机器周期0.0904*12=1.085us
50ms=50000us
50000/1.085=46082
65535-46082=19453
TH0=0XFD;
TL0=0X4B;
如果是计数器
TH0=0;
TL0=0;
3)查询定时/计数器是否溢出
二)实验代码
1)定时器
T0做定时器,数码管显示从0-10,间隔时间1s。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!