系统提供基准,类似于我们人的心跳。单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作的。
之前的文章第一次认识压电换能器中简单描述了晶体的压电效应。那么这里还有一个概念,正常的情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也称为谐振频率。
STC89C52单片机的18脚和19脚是晶振引脚,一般我们会接一个11.0592MHz的晶振(它每秒钟振荡11,059,200次),外加两个20pF的电容,电容的作用是辅助晶振起振,并维持振荡信号的稳定。
计算机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。一个机器周期包括12个时钟周期。我们算一下一个机器周期是多长时间。设一个单片机工作于11.0592M晶振,它的时钟周期是1/11.0592MHz(微秒)。它的一个机器周期是12*(1/11059200)微秒。计算出来并不是一个整数,这为什么还要选用它呢?
51单片机里有很重要的概念——定时器和计数器。定时器和计数器是单片机内部的同一个模块,通过配置 SFR(特殊功能寄存器)能轻松实现两种不同的功能,我们大多数情况下是使用定时器功能,来完成比如延时、中断等任务。
在这里需要借助串口(串行数据通信接口)做说明,串口收发数据有一个很重要的概念——波特率(比特率Baud)。波特率就是发送一位二进制数据位的速率,即发送一位二进制数据的维持的时间为1/Baud。这也是两个独立的系统之间进行串行数据通信前需要确定的一个重要因素。
以定时器T1作为波特率发生器来讲解,方式 1 下的波特率发生器一定要使用定时器T1的模式2,也就是自动重装载模式,定时器的重载值计算公式为:
和波特率有关的还有一个寄存器,是一个电源管理寄存器 PCON,他的最高位可以把波特率提高一倍,也就是如果写 PCON = 0x80 以后,计算公式就成了:
公式中数字的含义这里解释一下,256是8位定时器的溢出值,也就是TL1的溢出值,晶振值就是11059200,12是说1个机器周期等于12个时钟周期,16是说把一个信号采集16次。
由此不难得知当时钟频率选用11.0592MHz时,是很容易获得标准波特率的,所以很多单片机系统会选用这个看起来比较怪参数的晶振了。
单片机的定时器一直是一个很重要的部分,无论是51单片还是其它架构的单片机,熟悉和理解定时器都是非常有必要的。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。举报投诉
频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常
两种不同晶振的区别,用10ms和50ms的计算方式,希望能帮助到大家,有问题能评论区提问一、10MS定时器初值
部分1、一定要记得接晶振和复位电路。很多学生在Proteus上仿真成功后,焊板子的时候总是不记得把晶振和复位电路接上,这样板子是不会工作的。2、一般没有特别的条件的线.0592MHZ
定时器0内部的具有两个一字节的寄存器TH0(高位寄存器)和TL0(低位寄存器
开发板,不相同的型号,内部设计会有一定差别,程序不一定适用)我们先来计算定时中用的初值。先讲原理,帮大家理解。要定时一秒,直接一步到位,用
)电路、电源最小系统用到的引脚1、主电源引脚(2根)VCC:电源输入,接+5V电源GND:接地线:54
周期是 1/11059200,机器周期是 12/11059200二、定时器初值计算 如果要定时0.02秒,就需要x*12
,做一个LED灯闪烁的效果,亮一秒灭一秒现在在给定时器的TH0和TL0赋初值上卡住了看教程说,TL0初值为0,TH0初值为0xB8,一个机器周期等于12个
看门狗溢出时间 = (12 Prescale32768)/11059200 = Prescale*393216/11059200也可以在下载程序里设置看门狗的选项。此时只要在程序里按时喂狗即可。
较高。虽然器件手册给出了相关的例程,但由于定时要求高,所以不同MCU、不同
速度和尺寸两方面都是非凡有效的。现代的编绎器非常适应寄存器和变量的使用方面,比手动编译有较好的优越性
我有一个带有 STM32F030K6T6 的定制板和一个用于 HSE 的
调整运行频率,就能控制性能与功耗,以及系统精确的定时!先粗略地介绍一下
的晶振提供,以达到相对来说比较稳定的定时以及最后面的串口波特率计算。外部晶振每震荡一次
,做一个LED灯闪烁的效果,亮一秒灭一秒 现在在给定时器的TH0和TL0赋初值上卡住了 看教程说,TL0初值为0,TH0初值为0xB8, 一个机器周期等于12个
晶振(延时1ms):(1)Y1指令集适用于SCT89C系列,STC90C系列、STC89LE系列
2.3.2 LCD1602液晶显示器2.3.3 24C02C存储芯片2.3.4 DS1302
本帖最后由 liuqiyan 于 2011-10-1 19:43 编辑 在学习、工作等的时候,大家
现在正在做一块测定电机转速的电路板,由于要调试程序,想把电路板做成可以烧录
频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(1...
的娱乐性。三:语音唐诗的输出口为:P20、P23.四:附件为:hex文件,可以直接烧录到
除频 下面是系统频率FSYS 计算公式 当 CKDIV = 00H时, SYS OSC F
频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的
频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管
,经过一段时间的实验,发现时间精度存在误差,一分钟慢4秒左右。这可了不得,十分钟就要慢40秒,一天下来不得慢半96分钟!!!这个
呢?通过上面的计算可能有些人已经明白了,我们用一个小知识点来为大家解答这个疑感。
的晶振,则一个机器周期等于12的震荡周期(晶振频率的倒数),即每个机器周期约是1.085us,其计算方式分析如下:由于晶振是
频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(1...
^5;unsigned char timer0H, timer0L, time;//
// 频率-半周期数据表 高八位 本软件共保存了四个八度的28个频率数据code unsigne...
晶振(延时1ms):(1)Y1指令集适用于SCT89C系列,STC90C系列、STC89LE系列
参考代码#include reg52.h/* 自定义变量类型 */typedef
定时器0内部的具有两个一字节的寄存器TH0(高位寄存器)和TL0(低位寄存器
看门狗溢出时间 = (12 Prescale32768)/11059200 = Prescale*393216/11059200也可以在下载程序里设置看门狗的选项。此时只要在程序里按时喂狗即可。