51单片机项目(2)--基于51单片机的频率计仿真
本设计实现的功能:实现对正弦信号的频率测量,并用一个按键控制对频率的读取。当按键按下时,测量频率并且将其显示在LCD1602屏幕上。测频范围是1-100KHZ。
整体原理图如下:
频率测量的基本方法为 :测频法、测周法、测频与测周结合的方法。我这次的设计采用的是测频法。由于是对正弦信号的测量,所以要对正弦信号整形。因为单片机的管脚所能识别的高电平为3.3V左右。波形整形我所采用的方案是用一个运放构成一个电压比较器,电压比较的反向输入端接地,正向输入端接正弦信号,那么这个输入正弦信号经过电压比较器之后,就会输出同频率的方波信号。整形的波形如下所示:
硬件上的准备工作完成之后,接下来就是软件程序的编写了。测频的思路是:使用外部中断,记录输入脉冲的个数。然后在用一个定时器,读取一段时间内的脉冲个数。通过脉冲个数和产生脉冲所花费的时间,就可以计算出频率了。
部分代码如下:
首先配置定时器的中断时间为50ms,通过在定时器的中断服务函数中对变量t++,当t加到20的时候,说明时间已经过去了1S。此时读取外部中断中的count量,也就是1S内记录到的脉冲个数,所得到的就是外部脉冲的频率了。
完整的工程代码可以进群免费领取。
嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!
点击这里找小助理0元领取:扫码进群领资料
单片机的3种时钟电路设计方案,工程师,你是在用哪1种?
工程师在开发一个电路系统,往往会需要用到中央处理器,比如单片机,FPGA,或者DSP等等,当然一些简单的纯硬件电路项目方案例外,如充电器,热水壶等等;
电路系统
作为单片机研发设计的项目,它的最小电路工作系统包含电源电路,复位电路,时钟频率电路;其中电源电路与复位电路,相信工程师都非常容易理解与设计;然而时钟频率电路,由于不同的开发项目功能需求不一样,设计的方案选择也不尽相同,很难得到有效的统一设计;比如:
A项目对研发成本要求较严格,功能较简单;B项目电路系统需要与外界电路系统完成串口通信,通信数据要求不能出错;C项目包含一个时钟万年历功能,时间要求不能间断而且精度要求高;万年历时钟电路板
针对单片机的时钟频率电路,工程师依据不同的项目要求去设计与选择匹配的方案;具体的选择方案包含三类
第一类:外部晶振方案
所谓外部晶振方案,是指在单片机的时钟引脚X1与X2外部连接一个晶振;
单片机外部晶振图
采用这种设计方案
优点 :时钟频率精度高,稳定性能好;对于一些数据处理能力要求较高的项目,尤其是多个电路系统彼此需要信息通讯,如包含USB通讯,CAN通讯的项目,选用外部晶振的方案较多缺点 :由于增加了外部晶振,所以研发的BOM表元器件成本增加扩大了;第二类:内部晶振方案
所谓内部晶振方案,是指单片机利用内部集成的RC振荡电路产生的时钟频率;
单片机内部晶振图
采用这种设计方案
优点: 省去外部晶振,工程师可以有效的节约研发BOM元器件成本;缺点: RC振荡电路产生的时钟频率精度比较低,误差较大,容易引起一些高频率通信的数据交互错误;第三类:时钟芯片方案
所谓时钟芯片方案,是指在单片机外部加入一个专门处理时钟的时钟芯片,用来给单片机提供精准的时钟信号;比如美信的DS1338这个型号时钟芯片
单片机与时钟芯片电路
关于时钟芯片的一些电路特性,以美信的DS1338型号为例说明
DS1338时钟芯片
1,供电 :
时钟芯片的供电电源包含两个部分
其一,VCC供电,是指电路项目系统的电源,同时也是单片机的电源
其二,Vbat供电,是指电池供电的电源,由于某种原因在VCC供电突然失去的条件下,时钟芯片自动启用Vbat电池电源,用以保持时钟芯片内部的时钟信号处理,不必因为电路系统电源VCC断电而失去电路工作;
2,功能 :
时钟芯片内部集成时间的“秒”“分”“时”“日”“周”“月”和“年”详细信息计时电路功能,通过IIC通信方式将时间的信息发送至单片机,单片机即可获得高精度的时钟信息;
万年历时钟
3,接口 :
时钟芯片与单片机的接口是IIC通信接口,此接口方式为串口通信,工程师开发设计较为简单,容易实现电路功能;
4,精度 :
精度,是指时钟芯片在正常工作条件下产生的时钟误差;例如美信的DS1338时钟芯片精度控制在10 PPM,换算成一天24小时误差精度在0.8秒左右;
5,应用 :
时钟芯片,一般用来处理精确计算时间的电路项目,如时间万年历;
采用时钟芯片这个设计方案
优点:精度高,误差小;适用于一些要求较高的电路项目缺点:电路设计复杂,工程师开发难度较高,研发BOM元器件成本高高精度电路项目
当然这三个方案都是针对一些工业与民用领域,如果涉及到航空航天应用领域,比如卫星导航与遥感测量等,则需要选择更高精度的时钟频率电路,如原子钟方案;
综合上述,针对这三类设计方案,目前工程师使用较多的是第二类内部晶振方案,因为此方案能满足绝大多数的单片机电路项目要求,而且研发设计成本最优; 这就是单片机常用的3种电路设计方案,不知工程师,你是在用哪1种方案?
本文由【芯片哥】原创撰写,喜欢就关注芯片哥,和芯片哥一起加油吧#电子元器件# #芯片#
相关问答
单片机 振荡 频率计 算?1、系统晶振频率是12M,则机器周期=12/12=1us;2、定时1ms=1*1000=1000us;3、工作在方式0下:最大计数值是2^13=8192;4、定时初值=8192-(1*1000....
1.在80C51 单片机 中,已知时钟 频率 为12MHz,如果需要利用定时...[最佳回答]voidTimer2()interrupt3//3为定时器1溢出;{TH1=(65536-1000)/256;TL1=(65536-1000)%256;//减多少就是定时多出时间。T...
单片机 中晶振 频率 为12MHZ的机器周期怎么算?_作业帮[最佳回答]1、机器周期=晶振周期*12.2、所以单片机中晶振频率为12MHZ的机器周期=12*1/12M=1微秒.
单片机 1hz 频率 怎么编程?这个很简单!假如你的单片机是普通51单片机,晶振12M,你用定时器做个时基比如100ms用一个全局变量计数,到达10次说明已用时1000ms也就是1S,P1.0状态翻转一次...
STC12C5A60S2 单片机频率 是怎么计算出来的,或者怎么改?频率计算系统时钟/分频系数/256系统时钟不一定等于晶振频率但对于STC12C5A60S2不专门设置的话系统时钟是等于晶振频率CMOD=0X02分频系数是2PWM频率=...
当80C51 单片机 晶振 频率 为12MHz时,时钟周期.机器周期各是多少?2.一个机器周期等于12个时钟周期,所以是1微秒。资料拓展:80C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加...资...
单片机 开发板晶振 频率 是什么?1、一般是12MHZ或者11.0592M。2、开发板晶振频率就是单片机的工作频率呀。可以从单片机边上的金属封装外壳的晶振上看标识。3、每个单片机系统里都有晶振,...
已知 单片机 系统晶振 频率 为6mhz,若要求定时值为10ms时,定时器T0工作方?晶振频率为6M,则机器周期为2us,定时10ms,溢出值为5000,TMOD可以设置为方式0或者1,一般设置为1,初始设置如下:TMOD=0x01;TH0=(65536-5000)/256;TL...
单片机 的ale 频率 怎么算?这得看是什么单片机了:对于精简指令集性能的单片机的工作频率(1/机器周期)=时钟频率(1/时钟周期).普通的51单片机来说:频率是1MHZ,时钟周期是1/12us(1除...
定时器T0工作方,已知 单片机 系统晶振 频率 为6mhz,若要求定时值为50ms时,定时器T0工作方式1?12M晶振机器周期是1us,6M的话就是2us,定时器工作方式1为16位定时,50ms=50000us=25000个机器周期,那么初值TH0=(65536-25000)/256;TL0=(65536-...