| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 定时器与中断系统(5) -> 正文阅读 |
|
[嵌入式]定时器与中断系统(5) |
目录 ?????????????????? 利用定时器中断使数码管显示666 定时器1、简介??????? 定时器:CT107D型号单片机的定时器使用单片机的内部资源,就是说把芯片卸下来也可以使用。 ??????? 定时器作用:①用于计时系统,可实现软件计时等等。 ????????????????????????????? ②替代场时间的Delay,提高CPU的运行效率和处理速度。 ???????? 注意:CT107D单片机内部共有3个定时器,T0、T1、T2,没有的定时器就无法使用,现在的单片机使用的计数器都是向下兼容的,越到后期,单片机的定时器就越多。 2、工作原理??????? 定时器在单片机内部就像一个小闹钟一样,根据时钟的输出信号,每隔“一秒”,计数单元的数值就增加一,当计数单元数值增加到“设定的闹钟提醒时间”时,计数单元就会向中断系统发出中断申请,产生“响铃提醒”,使程序跳转到中断服务函数中执行。 ?CT107D????????单片机的定时器工作模式有四种: ????????????? 模式0:13位定时器/计数器 ????????????? 模式1:16位定时器/计数器(常用) ????????????? 模式2:8位自动重装模式 ????????????? 模式3:两个8位计数器 ????????????? 但是本节我们只研究模式1,下图为工作模式1的电路图。 ???????????????? ?我们将定时器分为三部分:时钟、计数单元、中断系统。 ???????? 计数单元:上图中的TL0、TH0为计数系统,TH为高字节,TL为低字节,这两个字节一共可以存65535个数,只能数到65535。左边的时钟(SYSclk)提供一个脉冲给计时器,每来一个脉冲,计时器里面的计数值就会加一,当加到65535时就会溢出,计时器重新回到0,并向中断系统申请中断。 ???????? 时钟:时钟有两个来源,一是系统的SYSclk(计时器),而是T0 Pin(外部接口——计数器)本节只研究SYSclk计时器。 ???????? SYSclk:系统时钟,即晶振周期,本开发板上的晶振为12MHz。晶振的含义为:在单片机芯片旁边有一个振动的元器件,其频率为12MHz(系统时钟频率就为12MHz),我们就用振动来产生给计数单元的脉冲(常用将方波信号作为脉冲信号)。这个12MHz的脉冲信号在进入计数单元前会进行一个分频(上图左上方的),即÷12或÷1(÷12为12T模式,÷1为1T模式)要是开关连到12分频的话,输出的就是1MHz,那么一个周期就有1M个脉冲,每个脉冲的时间就是1微秒,其含义为计数单元每隔1微秒就记一个数,加一。 ??????? 在上图中有C\T字样,这是选择模式开关,给低电平0的话就选择定时器模式(上面部分)给高电平就选择计数器模式(下面部分)。 3、定时器的配置??????? 下图是有关定时器的串口图,我们将以下图为基准配置定时器的串口。 首先,我们规定计时器的工作模式。这个由工作模式寄存器TMOD来确定。计时器有1、0两种工作模式。高四位用于配置计数器1,第四位用于配置计数器0。我们现在需要的是配置计数器0,所以M1、M2就给0,1.为什么给0、1,因为我们需要计时器工作在方式一下面,所以给0,1.。下面配置C\T,这个是选择定时器模式还是计数器模式。当C\T=1时,工作在计数器模式下。C\T=0时,工作在定时器模式下。GATE是用来测脉冲信号的宽度的,正常情况下都是为0.
?下图为定时器控制寄存器TCON及其控制的端口。
我们配置的是计数器0,所以只要配置有关计数器0的端口就行了。 4、设置定时器初始值??????? 我们知道定时器的最大值是65535,溢出值是65536。
了解了设置定时器的原理后,我们就可以直接运用STC-ISP软件直接设置我们想要的定时器以及其模式。 ?设置时,我们将系统频率固定为12MHz,定时长度由自生遇到的情况决定,定时器自己选择使用0还是1,定时器模式的话一般选择16位自动重载或者16位。二者的区别在于选择16位时,还需要在下面的中断函数中重新定义TL\TH端口,而16位自动重载则不需要。定时器时钟选择1T的话,计数脉冲的频率就更高,精度就高,依次类推。 中断系统:??????? 1、简介简单来说中断系统就是在当单片机执行命令时,发生一个事件,中断系统直接发动时停——The World!!!!停下来吧单片机的时间!!
2、配置中断端口????????
?中断的配置仅仅是这么多。 3、调用中断运用计时器中断使LED以500ms为周期依次亮起下列使用的自定义函数全已模块化,关于模块化还请浏览之前的文章
利用定时器中断使数码管显示666
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:43:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |