基于51单片机的频率计的设计ppt课件_第1页
基于51单片机的频率计的设计ppt课件_第2页
基于51单片机的频率计的设计ppt课件_第3页
基于51单片机的频率计的设计ppt课件_第4页
基于51单片机的频率计的设计ppt课件_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于51单片机的频率计的设计 指导老师 曹新亮通信12级王妍静 一 方案的设计与比较 1 方案一 本设计是基于MCS 51单片机的频率计 被测信号经过信号转换电路从而将其转换成同频率的方波信号 当频率过大时将进行分频处理 利用单片机控制数据选择模块进行数据选择 最终将结果显示在1602液晶显示屏上2 方案二 本方案采用单片机程序处理输入信号并且将结果直接送往液晶显示 为了提高系统的稳定性 输入信号前进行放大整形 在通过A D转换器输入单片机系统 采用这种方法可大大提高测试频率的精度和灵活性 并且能极大的减少外部干扰 采用VDHL编程设计实现的数字频率计 除被测信号的整形部分 键输入部分和数码显示部分以外 其余全部在一片FPGA芯片上实现 整个系统非常精简 而且具有灵活的现场可更改性 3 方案三 采用频率计专用模块 即大规模集成电路将计数器 锁存器 译码 位和段驱动 量程及小数点选择等电路集成在一块芯片中 该方案在技术上是可行的 可以简化电路的设计 当对于设计要求中的某些指标 采用专用模块来完成比较困难 即扩展极为不便 以上三种方案比较 第一种方案具有设计复杂度小 电路简洁 功能实用且成本低廉等特点 其稳定性较好基本能满足设计要求 方案二采用单片机处理能较高要求 但成本提高且设计复杂 方案三采用专用频率计设计模块固然设计简单且稳定但系统可扩展性能较差 综上所述 本课题采用第一种设计方案 二 设计原理与总体方案 测量一个信号的频率有两种方法 第一种是计数法 用基准信号去测量被测信号的高电平持续的时间 然后转换成被测信号的频率 第二种是计时法 计算在基准信号高电平期间通过的被测信号个数 根据设计要求测量10HZ 100MHZ的正弦波信号 首先要将正弦信号通过过零比较转换成方波信号 如果用第一种方法 当信号频率超过1KHZ的时候测量精度将超出测量极限要求 所以当被测信号的频率高于1KHZ的时候需要将被测信号进行分频处理 如果被测信号频率很高需要将被测信号进行多次分频直到达到设计的精度要求 根据设计要求用单片机的内部定时器0产生基准信号 由INTO输入被测信号 通过定时方式计算被测信号的高电平持续时间 并通过单片机计算得出结果 最后由1062液晶显示器显示测量结果 频率计的系统设计框架如下图所示 三 硬件设计 硬件电路主要分为信号转换电路 分频电路 数据选择电路 单片机系统和显示电路五部分 其总体电路图如下图所示 3 1电平转换电路 要将正弦信号转换成方波信号可以用过零比较电路实现 正弦信号通过LM833N与零电平比较 电压大于零的时候输出LM833N的正电源 5V 电压小于零的时候输出负电源0V 具体电路如下图所示 3 2分频电路 分频电路采用十进制的计数器74HC4017来分频 当被测信号脉冲个数达到10个时74HC4017产生溢出 C0端输出频率为输入频率的1 10 达到十分频的作用 如果当频率很高时需要多次分频只需将多片74HC4017级联就可以了74HC4017时序图如下图所示 系统分频电路如下图所示 3 3数据选择电路 根据设计要求 要根据计数脉冲个数来选择分频次数 可以用74151来选择分频次数 74151的选择控制信号由单片机的I O口来控制 数据选择电路如下图所示 3 4单片机系统 单片机采用AT89C51 采用12MHZ的晶振频率 单片机的P3 2口接被处理后的被测信号 P0口接液晶显示器的数据输入端 ALE RD WR P0 0 P0 1通过外接控制电路接液晶显示器的控制端 单片机系统的电路如下图所示 3 5显示电路 显示电路由1602组成 其电路如下图所示 四 软件设计 频率计的软件设计主要由主程序 分频选择程序 液晶显示程序组成 4 1频率计的算法设计 根据设计要求频率范围是10HZ 100MHZ 当频率为10HZ时 T 100000us 高电平为50000us 0 1 的误差为100us 由单片机产生的基准频率为1MHZ T0 1us 最大误差为1us 计数个数为50000 方式1 满足设计要求 当频率增加到1KHZ时 产生的误差刚刚能达到设计要求 这时计数个数为500 当频率大于1KHZ时 即计数个数小于500 就需要将被测频率分频后再测量 如当频率为10KHZ时 先计算计得的脉冲数等于50 小于了500 所以将10KHZ的信号10分频得到1KHZ 这时就满足要求了 最后得到的频率其中n为计得的脉冲个数 i为分频的次数 4 2主程序 主程序首先对系统环境初始化 设置分频选通信号P2 0 x00 选通0通道 设置T0工作方式 采用硬件启动方式 GATE 1 当INT0和TR0同时为1时启动计时 计数方式为方式1 16位 TH0和TL0都置零 当外部中断INT0 1时等待 当外部中断为0时启动T0即TR0 1 当INT0一直为0时就等待 一旦INT0 1就启动计数同时等待 当INT0为0时跳出并关闭T0即TR0 0 这样就计得高电平期间基准脉冲个数 当脉冲个数小于500时就选择10分频信号 即P2自加1 同时记录分频一次 如果分频后脉冲个数还小于500则再次分频 直到计数个数大于500 其计数工作示意图如下图所示 主程序流程图如下图所示 主程序 include 头文件 include include includesbitp32 P3 2 P3 2作为信号输入端main unsignedintperiod k j i 0 period 为定时器计数总值 i是分频次数floatf m 浮点变量charbuff 30 init LCD 初始化LCDP2 0 x00 选通D0路信号while 1 TMOD 0X09 配置定时器0为工作方式1 即16位定时器 并硬件启动TH0 0 装定时器初值为0TL0 0 while p32 1 执行完这条语句后信号电平状态为低电平TR0 1 使能TR0 while p32 0 等待信号高电平到来 如果高电平来了则定时器开始计时 如果没来 则继续循环等待 while p32 1 等待信号高电平结束后 如果低电平 则定时器停止计时TR0 0 关闭定时器period TH0 256 TL0 计算定时器装的总值while period 500 判断是否分频及计算分频次数 即频率是否大于1KHZ P2 i period period 10 if i 6 P2 0 x00 break k pow 10 i 10的i次方 f 1000000 0 2 period k if fcharcodeCGRAM TABLE 0 x08 0 x0F 0 x12 0 x0F 0 x0A 0 x1F 0 x02 0 x02 年0 x0F 0 x09 0 x0F 0 x09 0 x0F 0 x09 0 x11 0 x00 月0 x0F 0 x09 0 x09 0 x0F 0 x0 0 x09 0 x0F 0 x00 日voiddelay 延时子程序 unsignedchari for i 0 i 250 i voidinit LCD 初始化LCD unsignedchari WR COM 0 x38 设置为8位数据总线 16 2 5 7点阵for i 0 i 100 i delay WR COM 0 x01 清屏幕for i 0 i 50 i delay WR COM 0 x06 光标移动 显示区不移动 读写操作后AC加1for i 0 i 50 i delay WR COM 0 x0c for i 0 i 50 i delay voidinit cgram unsignedchari 设置自定义字符WR COM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论