51定时器初值的计算

1Hz:1秒内电流往返一次

晶振           11.0592MHz =11059200Hz

时钟周期  1/11059200   s(晶振的倒数)

机器周期是 12/11059200 s (标准框架下51单片机一个机器是12个时钟周期)

因为定时器是每个机器周期加1所以定时时间为 N*时钟机器周期时间=所定时间T

所以要经过的机器周期是N*(12/11059200 s)=T

N=t/(12/11059200)

初值等于 65536-N(因为16位的定时器65535再加1才溢出)

例如:

需要定时50ms=0.05s

0.05/(12/11059200)=0.05*(11059200/12)=0.05*921600=46080

快速计算只需更改这个 ↑

初值y=65536-46080=19456=0X4C00

时间: 2024-08-02 17:11:26

51定时器初值的计算的相关文章

用定时器和时间戳计算距离中秋节的时间并动态刷新

虽然这个代码很快就“过期”了.不过思路还是可以保留的~~ 获取当前和期待的时间的时间戳,求差值,用定时器使时间的变化随时刷新展示. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale

51定时器延时函数(精确延时)

1 bit f,m; 2 3 void T0_service(void) interrupt 1 4 { 5 TH0=(65536-5000)>>8; 6 TL0=(unsigned char)(65536-5000); 7 Count5ms=Count5ms+1; 8 m=~m; 9 if (Count5ms==100) 10 { 11 Count5ms=0; 12 f=~f; 13 } 14 } 15 16 void delay1s(void) 17 { 18 while(f); 19 w

毕业回馈-89c51之定时器/计数器(Timer/Count)

今天分享的是89c51系列单片机的内部资源定时器/计数器,在所有的嵌入式系统中都包含这两个内部功能. 首先先了解几个定时器/计数器相关的概念: ?时钟周期:时钟周期 T 是时序中最小的时间单位,具体计算的方法就是1/时钟源频率,(一般单片机采用的是11.0592mHz) ?机器周期:我们的单片机完成一个操作的最短时间.标准51单片机,一个机器周期是 12 个时钟周期,也就是 12/11059200 秒. ?定时器:当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加1,计数

单?片?机?定?时?器?初?值?实例计?算?

一.10MS定时器初值的计算:  1.晶振12M  12MHz除12为1MHz,也就是说一秒=1000000次机器周期.10ms=10000次 机器周期.  65536-10000=55536(d8f0)  TH0=0xd8,TL0=0xf0  2.晶振11.0592M  11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期.  65536-9216=56320(dc00)  TH0=0xdc,TL0=0x00 二.50MS定时器初值的计算:

51单片机的一些知识点

1.单片机芯片型号:STC 89C51RC 40C—PDIP 0707 STC——STC公司,其他前缀还有AT.Winbond等 8——基于8051内核芯片 9——表示内部含有Flash E2PROM存储器 C——表示该器件为CMOS产品 5——固定不变 1——代表芯片内部存储空间,1为4KB,2为8KB,3为12KB RC——STC单片机内部RAM(随机读写存储器)为512B,还有RD+表示内部RAM为1280B 40——表示外部晶振最高可接入40MHz,对于AT单片机数值一般在24MHz C

[51单片机学习笔记TWO]----蜂鸣器

蜂鸣器音乐播放实验 首先应该了解一下蜂鸣器音乐播放的原理,在这里我只讲一下电磁式蜂鸣器驱动原理(还有一种是压电式蜂鸣器): 电磁式蜂鸣器驱动原理: 蜂鸣器发声原理是电流通过电磁线圈,使电磁圈产生磁场来驱动振动膜发声的.因此需要一定的电流才能驱动它,而单片机I/O引脚输出的电压较小.单片机输出的TTLK电平基本驱动不了蜂鸣器,因需要增加一个放大电路.这里用三极管作为放大电路.下面是原理图: 我这里的J8端是跟芯片的P1^5端口相连,当P1^5输出高电平时,三极管截止,蜂鸣器不发声,反之,输出低电平

深入理解51单片机串口通信

串口通信的基本认识 通信分为并行通信和串行通信,并行通信时的数据各个位同时传送,可以实现字节为单位通信,但通信线多占用资源,成本高.以前用到的的P1=0x55,一次给P1口的8个管脚分别赋值,同时进行信号输出,类似于8个车道可以过去8辆车,这样的形式是并行的,一般称P0,P1,P2,P3为51单片机的4组并行总线. 串行通信,就是一个车道,一个只能通过一辆车,如果一个0x55这样一个字节的数据要传输过去的话,假如低位在前,高位在后的话,那发送方式是:0-1-0-1-0-1-0-1,一位一位的进行

中断计数器定时器串口通信

1.(P3.2)可由IT0(TCON.0)选择其为低电平有效还http://www是下降沿有效.当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断. 2.(P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效.当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断. 3.TF0(TCON.5),片内定时/计数器T0溢出中断请求标志.当定时/计数器T0发生溢出时,置位TF0,并向CP

51单片机_音乐

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 #include "SoundPlay.h" #include"music.h" typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; void Delay1ms(unsigned int count) { unsigned int i,j; for(i=0;i<count;i++