在学习单片机的时候,我们发现很多功能都是通过中断来实现的。之前也举过烧水的例子来阐述中断,今天就讲解一下定时器赋初值的方法。8位的定时器最大可计数2的8次方为256,16位的定时器最大可计数2的16次方为65536。由于单片机的定时器是递加式的,所以最大值减去所要定时的值就是初值,举例如下:
最大值为100,我们只需要38,怎么办呢,由于是递加的,我们只需要在62时开始计时就可以了。
以proteus仿真为例简单讲解定时器赋初值
用proteus搭建的电路图如下,晶振为12M,P2.0每10ms翻转一次,即P2.0输出的频率为100HZ。
这里使用16位的定时器,那单片机定时器0的最大计数就是65536.晶振为12M,那单片机的一个机器周期就是1us,定时器 0工作在方式1时最大定时65.536ms。
假设定时时间T=10ms=10000us,
那定时器初值X=65536-10000=55536us,也就是定时器0从55536开始递加到65536就是10ms,所以55536就是定时器的初值,55536转化为十六进制为0Xd8f0,所以定时器的初值为:
TH0 = 0XD8;
THL = 0XF0;
用虚拟示波器抓到的波形如下:
关键字:51单片机 定时器 初值 计算方法
引用地址:
51单片机定时器初值计算方法详解
推荐阅读最新更新时间:2024-03-16 15:44
STM32CubeMX系列教程3:基本定时器
这一章我们在前一章GPIO的工程修改。复制GPIO的工程,修改文件夹名。点击 打开STM32cubeMX的工程文件重新配置。开启定时器TIM3,选择内部时钟。 定时器就相当于单片机的闹钟,下面我们以基本定时器为例简单介绍一下定时器。 从上图我们可以看到,基本定时器主要由下面三个寄存器组成。 计数器寄存器 (TIMx_CNT) 预分频器寄存器 (TIMx_PSC) 自动重载寄存器 (TIMx_ARR) 计数器寄存器 (TIMx_CNT)存储的是当前的计数值。预分频器 (TIMx_PSC)为多少个SK_PSC脉冲计数一次,如图192 预分频器的值为1(预分频寄存器默认为0,为不分频),则为两个脉冲计数一次。即为
[单片机]
51单片机精确延时程序
51单片机精确延时程序(晶振12MHz,一个机器周期1us.) 几个精确延时程序:在精确延时的计算当中,最容易让人忽略的是计算循环外的那部分延时, 在对时间要求不高的场合,这部分对程序不会造成影响. 一. 500ms延时子程序程序:.(晶振12MHz,一个机器周期1us.) void delay500ms(void) { unsigned char i,j,k; for(i=15;i 0;i--) for(j=202;j 0;j--) for(k=81;k 0;k--); } 计算分析: 程序共有三层循环 一层循环n:R5*2 = 81*2 = 162us DJNZ 2us 二层循环m:R6*(n+3)
[单片机]
51单片机学习笔记———13.2DS1302实时时钟代码部分(1)
代码: 实验序列:11.1 实验任务: 向DS1302中写入初始校准时间,然后不断从DS1302中读出时间并显示 实现现象:程序运行后动态数码管显示初始时间:23-59-50,并不断更新显示 硬件接线:同动态数码管一节要求。 注意事项:(1) DS1302的SPI接口用到了P3.4、P3.5、P3.6,若程序运行有问题查 硬件问题时可以从这三个引脚复用部分查起 (2) DS1302的初始化时间是随便给的,之所以给23.59.50,是为了在10 秒后即可看到24.59.59到00.00.00的跳变。 (3) DS1302寄存器读写的函数编写时要注意时序和LSB这2个要点。 ***
[单片机]
什么是堆栈,51单片机堆栈指针SP的使用举例
SP:堆栈指针。(专用于指出堆栈顶部数据的地址。) 堆栈介绍:日常这样的现象,家里洗的样的现象,家里洗的碗,一只一只摞起来,最晚放上去的放在最上面,而最早放上去的则放在最下面,在取的时候正好相反,先从最上面取,这种现象我们用一句话来概括: 先进后出,后进先出 。请大家想想,还有什么地方有这种现象?其实比比皆是,建筑工地上堆放的砖头、材料,仓库里放的货物,都是 先进后出,后进先出 ,这实际是一种存取物品的规则,我们称之为 堆栈 。 在单片机中,我们也能在RAM中构造这样一个区域,用来存放数据,这个区域存放数据的规则就是 先进后出,后进先出 ,我们称之为 堆栈 。为什么需要这样来存放数据呢?存储器本身不是能按地址来存放数据吗?对,知道
[单片机]
基于51单片机实现红外控制系统控制电机调速
具体功能实现 初始时,数码管上显示0,此时电机不转动;当按下红外遥控上的“1”时,数码管显示1,电机的转速加快;一共分为三个挡位,每升高一个挡位,数码管都会显示对应的挡位数字同时提高电机的转速。 器件: AT89C52,8位数码管,红外遥控器,步进电机,扇叶,74HC138译码器,HS0038红外接收探头 红外调试前后图 : 调试前: 调节后 知识介绍 :HS0038红外探头 HS0038是一款红外接收探头,接收红外信号频率为38kHz,周期约26μs 红外遥控 红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出 通信方式:单工,异步 红外LED波长:940
[单片机]
关于51单片机中的RAM、SFR和位地址的问题
51单片机中_有_4EH这个位地址。 51单片机片内RAM的20H~2FH,这十六字节,可以按照“位”来寻址。 这里面共有128个“位地址”,分别为00H~7FH。 位地址4EH,是在“字节地址为29H的字节单元”中的第6位。 后记:做而论道搜集了51单片机中片内RAM的使用规范,整理如下。 MCS-51系列单片机片内RAM共有128字节,地址范围为00H~7FH。 在这128字节中,全部都可以按照字节地址进行操作(读、写或运算),直接或间接寻址方式皆可。 在这128字节中,按照使用特点,可以分成三类:工作寄存器区、位寻址区和通用数据区。 片内RAM的使用分类可见表1。 下面按照它们的功能特点,分别加以介绍。 1.工作寄存器
[单片机]
基于双51单片机的CAN总线中继器设计
引 言 CAN总线以其开发维护成本低、总线利用率高、传输距离远(最远可达10 km)、传输速率高(最高可达1 Mbps)使用户能组建稳定、高效的现场总线网络。CAN总线已被广泛应用到各个自动化控制系统中,例如汽车电子、自动控制、智能大厦、电力系统、安防监控等领域。随着CAN总线网络区域的扩大,2个节点之间的直接数据传输将难以满足远距离通信要求。CAN中继器是延长CAN总线通信距离的中转站,其通信效率和通信可靠性直接影响CAN总线的通信能力。传统的基于单MCU的CAN中继器难以满足大量数据的中转要求,本文基于双MCU设计高性能的CAN总线中继器。 1 系统总体设计 CY7C136是2 KB高速CMOS静态RAM。同一
[单片机]
C8051单片机实现多目标超声波测距的设计
超声波测距传感器以其测量精度高、响应快和价格低廉而广泛应用在工业现场测距、移动机器人导航和定位等场合。超声波测距传感器常用的方式是1 个发射头对应1 个接收头,也有多个发射头对应1 个接收头。 它们共同之处是:每个接收头只测量一个位置,这个位置就是除盲区内因发射的超声波旁瓣引起的接收信号超声波包络峰值外,第1个接收信号超声波包络峰值对应的距离。 在机器人自主导航避障时,机器人只关心最近障碍物的距离,是能够完成自主避障的。 但是在机器人定位时,尤其在动态环境下,1 个接收头同时测量多个距离,能够更多地描述环境信息,这对机器人用超声波定位具有重要意义。 1 超声波 1. 1 超声波测距原理 超声波测距原理比较简单,一般是采用时差法
[单片机]