登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 51单片机定时器中断

[复制链接]
发表于 2023-1-17 13:11:38 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 51单片机定时器计数器中断
学习安排: 寒假学习
开始时间: 2023-01-06
结束时间: 2023-02-28
鄙人写作能力有限,本文有大大小小知识点还待后续补充

非教学意图,有错本人不负责还请大佬斧正

一,为什么使用定时器,使用delay函数不好吗

    使用delay函数进行大量空循环会占用cpu资源,而定时器是单片机的内部资源。

二,定时器与计数器的区别

  计数器和定时器的本质是相同的,他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触发的脉冲,定时器是单片机内部在晶振的触发下产生的脉冲。当他们的脉冲间隔相同的时候,计数器和定时器就是一个概念。

三,中断的作用   定时器相当于一个闹钟,而中断相当于钟表的响铃,可以自己设定这个响铃后让你干什么,只配置定时器不配置中断的后果是闹钟知道时间到了但是却不去提醒你。
如何配置定时器\计数器\中断
四(1),定时器和中断系统原理图 Z$V[CM_G$__WZVM3N(8JNJG.jpg

上半部分定时器,下半部分中断。
我们需要从图中左上角的system走一条线至中断入口。

四(2),寄存器是什么
1,寄存器是连接软硬件的媒介
2,在单片机中寄存器就是段特殊的RAM存 储器,一方面,寄存器可以存储和读取数据,另一方面,每一个寄存器背后都连接了一根导线,控制着电路的连接方式。
3,寄存器相当于一个复杂机器的“操作按钮”

我们需要通过配置寄存器来配置定时器、计数器、中断

四(3),定时器0,低优先级中断设置
定时器设置
我们这使用定时器0,具体可以参考STC89C52文档
20210615225526721.png
TCON寄存器(可位寻址,后缀为1的是定时器1的配置,不用管)
TF0 = 0; //清除TF0溢出中断标志,加到65536后TF0会被置为1
TR0 = 1; //允许定时器0计时
IE0和IT0不用管,需要的话自己去看文档
20210615230425115.png
TMOD寄存器(不可位寻址)

不可位寻址与可位寻址的区别在于前者不可以单独给寄存器配置,只能以 TMOD=十六进制数 配置,十六进制对应的二进制1和0按上图顺序照应

定时器1的不用配置,定时器0配置如下
GATE=0:这个看电路图就知道为啥给0(不需要管INT0是啥)
C/T=0:0代表用作定时器,1代表用作计数器
M1=0,M0=1。M1和M0这样设置代表使用模式1,即TH0和TL0两个寄存器都使用
TMOD=0x01
20210615231345365.png
TH0和TL0
TL0=64535%256+1;
TH0=64535/256;
//距离65535差1000,一次1us,1000次就是1ms

中断配置
定时器的配置就配置好了,现在还要配置中断处理的配置
20210615231927496.png
//中断配置
ET0=1;
EA=1;
PT0=0;//低优先级
20210615232102530.png
中断处理程序
五,STC89C51RC手册

STC-STC89C51RC.pdf (1.74 MB, 下载次数: 42)
好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表