【STC89C52】外部中断与定时/计数器中断

目录

一、中断系统

二、外部中断

一)配置外部中断的三个步骤

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进行处理,非常感谢!

上一篇 2022年11月2日
下一篇 2022年11月2日

相关推荐