单片机简易频率计课程设计

上传人:gbs****77 文档编号:10640612 上传时间:2020-04-13 格式:DOCX 页数:25 大小:304.55KB
返回 下载 相关 举报
单片机简易频率计课程设计_第1页
第1页 / 共25页
单片机简易频率计课程设计_第2页
第2页 / 共25页
单片机简易频率计课程设计_第3页
第3页 / 共25页
点击查看更多>>
资源描述
1 前言 2 一 总体设计 3 二 硬件设计 5 AT89C51 单片机及其引脚说明 5 显示原理 7 技术参数 8 电参数表 8 时序特性表 9 模块引脚功能表 9 三 软件设计 10 四 调试说明 11 五 使用说明 13 结论 13 参考文献 13 2 附录 14 系统电路图 14 程序清单 15 3 前言 单片机渗透到我们生活的各个领域 几乎很难找到哪个领域没有单片机的 踪迹 导弹的导航装置 飞机上各种仪表的控制 计算机的网络通讯与数据传 输 工业自动化过程的实时控制和数据处理 广泛使用的各种智能 IC 卡 民用 豪华轿车的安全保障系统 录像机 摄像机 全自动洗衣机的控制 以及程控 玩具 电子宠物等等 这些都离不开单片机 更不用说自动控制领域的机器人 智能仪表 医疗器械以及各种智能机械了 因此 单片机的学习 开发与应用 在生活中至关重要 随着电子信息产业的不断发展 信号频率的测量在科技研究和实际应用中 的作用日益重要 传统的频率计通常是用很多的逻辑电路和时序电路来实现的 这种电路一般运行缓慢 而且测量频率的范围比较小 考虑到上述问题 本论 文设计一个基于单片机技术的数字频率计 首先 我们把待测信号经过放大整 形 然后把信号送入单片机的定时计数器里进行计数 获得频率值 最后把测 得的频率数值送入显示电路里进行显示 本文从频率计的原理出发 介绍了基 于单片机的数字频率计的设计方案 选择了实现系统得各种电路元器件 并对 硬件电路进行了仿真 4 1 总体设计 用十进制数字显示被测信号频率的一种测量装置 它以测量周期的方法对 正弦波 方波 三角波的频率进行自动的测量 所谓 频率 就是周期性信号在单位时间 1s 内变化的次数 若在一 定时间间隔 T 内测得这个周期性信号的重复变化次数 N 则其频率可表示为 f N T 其中脉冲形成电路的作用是将被测信号变成脉冲信号 其重复频率等于 被测频率 fx 时间基准信号发生器提供标准的时间脉冲信号 若其周期为 1s 则门控电路的输出信号持续时间亦准确地等于 1s 闸门电路由标准秒信号进行 控制 当秒信号来到时 闸门开通 被测脉冲信号通过闸门送到计数译码显示 电路 秒信号结束时闸门关闭 计数器停止计数 由于计数器计得的脉冲数 N 是在 1 秒时间内的累计数 所以被测频率 fx NHz 本系统采用测量频率法 可将频率脉冲直接连接到 AT89C51 的 T0 端 将 T C1 用做定时器 T C0 用做计数器 在 T C1 定时的时间里 对频率脉冲进行 计数 在 1S 定时内所计脉冲数即是该脉冲的频率 见图 1 图 1 测量时序图 由于 T0 并不与 T1 同步 并且有可能造成脉冲丢失 所以对计数器 T0 做一 定的延时 以矫正误差 具体延时时间根据具体实验确定 根据频率的定义 频率是单位时间内信号波的个数 因此采用上述各种方 5 案都能实现频率的测量 但是本论文设计的是一个用单片机做为电路控制系统 的数字式频率计 采用脉冲定时测频法 则在低频率的测量时误差会大一些 采用脉冲周期测频法则测高频率时精度无法保证 采用脉冲数倍频测频法和脉 冲数分频测频法则精度有所提高 但控制电路较复杂 采用脉冲平均周期测频 法则很难兼顾低频信号的测量 而采用多周期同步测频法 闸门时间与被测信 号同步 消除了对被测信号计数产生的 1 误差 测量精度大大提高 且测量 精度与待测信号的频率无关 达到了在整个测量频段等精度测量 本次设计由 于个人水平有限 因此 本次设计根据需要 采用脉冲定时测频法 基本设计原理是首先把待测信号通过放大整形 变成一个脉冲信号 然后 通过控制电路控制计数器计数 最后送到译码显示电路里进行显示 其基本构 成框图如图 2 所示 图 2 由上图可以看出 待测信号经过放大整形电路后得到一个待测信号的脉冲 信号 然后通过计数器计数 可得到需要的频率值 最后送入译码显示电路中 显示出来 但是控制部分才是最重要的 它在整个系统的运行中起至关重要的 作用 为了得到一个高性能的数字频率计 本次设计采用单片机来做为数字频率 计的核心控制电路 辅之于少数的外部控制电路 因此本此设计的系统包括信 号放大整形电路 分频电路 单片机 AT89C51 和显示电路等 本系统让被测信 号经过放大整形后 进入单片机开始计数 利用单片机内部定时计数器定时 在 6 把所记得的数经过相关处理后送到显示电路中显示 其系统原理框图将在下面 介绍 根据上述的基于单片机的数字频率计的设计原理 我们可设计一个由 放大整形电路 分频电路 多路数据选择器 AT89C51 以及显示电路来构成的 数字式频率计 其系统框图如图 3 所示 图 3 2 硬件设计 AT89C51 单片机及其引脚说明 89C51 是一种高性能低功耗的采用 CMOS 工艺制造的 8 位微控制器 它提 供下列标准特征 4K 字节的程序存储器 128 字节的 RAM 32 条 I O 线 2 个 16 位定时器 计数器 一个 5 中断源两个优先级的中断结构 一个双工的串行口 片上震荡器和时钟电路 引脚说明 VCC 电源电压 GND 地 P0 口 P0 口是一组 8 位漏极开路型双向 I O 口 作为输出口用时 每个 引脚能驱动 8 个 TTL 逻辑门电路 当对 0 端口写入 1 时 可以作为高阻抗输入 端使用 7 当 P0 口访问外部程序存储器或数据存储器时 它还可设定成地址数据总线 复用的形式 在这种模式下 P0 口具有内部上拉电阻 在 EPROM 编程时 P0 口接收指令字节 同时输出指令字节在程序校验时 程序校验时需要外接上拉电阻 P1 口 P1 口是一带有内部上拉电阻的 8 位双向 I O 口 P1 口的输出缓 冲能接受或输出 4 个 TTL 逻辑门电路 当对 P1 口写 1 时 它们被内部的上拉电 阻拉升为高电平 此时可以作为输入端使用 当作为输入端使用时 P1 口因为 内部存在上拉电阻 所以当外部被拉低时会输出一个低电流 IIL P2 口 P2 是一带有内部上拉电阻的 8 位双向的 I O 端口 P2 口的输出 缓冲能驱动 4 个 TTL 逻辑门电路 当向 P2 口写 1 时 通过内部上拉电阻把端口 拉到高电平 此时可以用作输入口 作为输入口 因为内部存在上拉电阻 某 个引脚被外部信号拉低时会输出电流 IIL P2 口在访问外部程序存储器或 16 位地址的外部数据存储器 例如 MOVX DPTR 时 P2 口送出高 8 位地址数据 在这种情况下 P2 口使用强 大的内部上拉电阻功能当输出 1 时 当利用 8 位地址线访问外部数据存储器时 例 MOVX R1 P2 口输出特殊功能寄存器的内容 当 EPROM 编程或校验 时 P2 口同时接收高 8 位地址和一些控制信号 P3 口 P3 是一带有内部上拉电阻的 8 位双向的 I O 端口 P3 口的输出 缓冲能驱动 4 个 TTL 逻辑门电路 当向 P3 口写 1 时 通过内部上拉电阻把端口 拉到高电平 此时可以用作输入口 作为输入口 因为内部存在上拉电阻 某 个引脚被外部信号拉低时会输出电流 IIL P3 口同时具有 AT89C51 的多种特殊功能 具体如下表 1 所示 端口引脚 第二功能 P3 0 RXD 串行输入口 8 P3 1 TXD 串行输出口 P3 2 INT0 外部中断 0 P3 3 INT1 外部中断 1 P3 4 T0 定时器 0 P3 5 T1 定时器 1 P3 6 WR 外部数据存储器写选通道 P3 7 RD 外部数据存储器都选通道 表 1 RST 复位输入 当振荡器工作时 RST 引脚出现两个机器周期的高电平将 使单片机复位 EA VPP 外部访问允许 为了使单片机能够有效的传送外部数据存储器从 0000H 到 FFFH 单元的指令 EA 必须同 GND 相连接 需要主要的是 如果加密 位 1 被编程 复位时 EA 端会自动内部锁存 ALE RPOG 当访问外部存储器时 地址锁存允许是一输出脉冲 用以锁存 地址的低 8 位字节 当在 Flash 编程时还可以作为编程脉冲输出 RPOG 一般情况下 ALE 是以晶振频率的 1 6 输出 可以用作外部时钟或定时目 的 但也要注意 每当访问外部数据存储器时将跳过一个 ALE 脉冲 PSEN 程序存储允许时外部程序存储器的读选通信号 当 AT89C52 执行 外部程序存储器的指令时 每个机器周期 PSEN 两次有效 除了当访问外部数 据存储器时 PSEN 将跳过两个信号 显示原理 我们测量的频率最终要显示出来 八段 LED 数码管显示器基本电路如图 4 9 所示 图 4 八段 LED 数码管显示器由 8 个发光二极管组成 基中 7 个长条形的发光管排列 成 日 字形 另一个圆点形的发光管在数码管显示器的右下角作为显示小数 点用 它能显示各种数字及部份英文字母 LED 数码管显示器有两种形式 一 种是 8 个发光二极管的阳极都连在一起的 称之为共阳极 LED 数码管显示器 另一种是 8 个发光二极管的阴极都连在一起的 称之为共阴极 LED 数码管显示 器 如下图所示 共阴和共阳结构的 LED 数码管显示器各笔划段名和安排位置 是相同的 当二极管导通时 对应的笔划段发亮 由发亮的笔划段组合而显示 的各种字符 8 个笔划段 hgfedcba 对应于一个字节 8 位 的 D7 D6 D5 D4 D3 D2 D1 D0 于是用 8 位二进制码就能表示欲显示字 符的字形代码 10 技术参数 标 准 值名 称 符 号 MIN TYPE MAX 单 位 电路电源 VDD VSS 0 3 7 0 V LCD 驱动电压 VDD VEE VDD 13 5 VDD 0 3 V 输入电压 VIN 0 3 VDD 0 3 V 静电电压 100 V 工作温度 20 70 C 储存温度 30 80 C 表 2 极限参数表 电参数表 标 准 值名 称 符 号 测 试 条 件 MIN TYPE MAX 单位 输入高电平 VIH 2 2 VDD V 输入低电平 VIL 0 3 0 6 V 输出高电平 VOH IOH 0 2mA 2 4 V 输出低电平 VOL IOL 1 2mA 0 4 V 工作电流 IDD VDD 5 0V 2 0 mA 11 Ta 0 C 4 9 Ta 25 C 4 7液晶驱动电压 VDD VEE Ta 50 C 4 5 V 表 3 电参数表 时序特性表 标 准 值项 目 符 号 测试 条件 MIN TYPE MAX 单位 允许时间周期 TCYCE 1000 ns 允许脉冲宽度 高电平 PWEH 450 ns 允许上升和下降时间 tEr tEf 25 ns 地址建立时间 tAS 140 ns 数据延迟时间 tDDR 320 ns 数据建立时间 tDSW 195 ns 数据保持时间 tH 10 ns DATA HOLD TIME tDHR 20 ns 地址保持时间 tAH 5 1a 5 1b 10 ns 表 4 时序特性表 12 模块引脚功能表 引 线 号 符 号 名 称 功 能 1 Vss 接地 0V 2 VDD 电路电源 5V 10 3 VEE 液晶驱动电压 保证 VDD VEE 4 5 5V 电压差 4 RS 寄存器选择信号 H 数据寄存器 L 指令寄存器 5 R W 读 写信号 H 读 L 写 6 E 片选信号 下降沿触发 锁存数据 7 14 DB0 DB7 数据线 数据传输 表 5 模块引脚功能表 3 软件设计 测频软件的实现是基于电路系统来进行设计的 本次设计采用的是脉冲定 时 测频法 所以在软件实现上基本遵照系统的设计原理 进行测频 本次软 件设计语言采用 C 语言 在电脑上编译通过后即可下载到电路上的实际电路中 即可实现频率的测量 开始 13 NO 初始化 P2 0 xf status F 0 初始化 T0 T1 开定时器 T1 计数器 T0 aa 19 aa 0 status F 0 关闭 T1 定时器 定时 1S 延时矫正误差 delay 46 关闭 T0 计数器 显示所测得频率 display 结束 14 结束 15 4 调试说明 当输入频率为 1HZ 时 测得频率为 1HZ 当输入频率为 987HZ 时 测得频率为 987HZ 16 但是当输入频率为 5KHZ 时 测得频率为 5001HZ 误差为 0 02 当输入频率大到 100kHZ 时 测得频率为 10015HZ 误差为 0 15 17 误差分析 因为定时和计数都是由单片机本身来完成的 在计数的时候会产生 误差 这个误差的大小是用单片机的内部时钟决定的 采用高频率的晶振来为 单片机提供内部时钟 则能减少此误差 本次设计我们用的是 12MHz 的晶振 而测频的范围是 1Hz 1MHz 所以定时计数的误差在本系统基本可以忽略不计 5 使用说明 该设计主要是能够测量外部周期信号的频率值 并且通过数码管进行显示 把编译好得到的 hex 程序文件载入到单片机里 就可以对整体电路进行仿 真了 经过对上述电路的仿真 我们可以看出 电路所要完成的功能都能基本 实现 结论 基于单片机的频率计的设计涉及到计算机的硬软件知识 通过对系统的设 计和调试 本次设计主要完成了以下工作 1 提出基于单片机的数字频率计设计的基本方案 2 完成了电路设计 3 编译了软件程序 4 对硬件电路进行了仿真 进行了误差分析 参考文献 1 李雷等编 集成电路应用实验 国防工业出版社 2003 2 李雷等编 电子技术应用实验教程 电子科技大学出版社 2006 18 3 朱红等编 电子技术综合实验 电子科技大学出版社 2005 4 冯熙昌编 电子电话机集成电路手册 人民邮电出版社 1996 5 李华等编 MCS 51 系列单片机实用接口技术 北京航空航天大学出版社 1993 6 徐惠民 安德宁等编 单片微型计算机原理接口及应用 北京邮电大学出版社 2000 7 张毅坤 陈善久 单片微型计算机原理及应用 西安电子科技大学出版社 2002 8 张友德 赵志英 徐时亮 单片微机原理应用与实验 复旦大学出版社 2000 19 附录 系统电路图 20 程序清单 include include define uchar unsigned char define uint unsigned int sfr16 DPTR 0 x82 bit status F 1 uint aa qian bai shi ge bb wan shiwan uchar cout unsigned long temp uchar code table 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 0 xff void delay uint z void init void display uint shiwan uint wan uint qian uint bai uint shi uint ge void xtimer0 void xtimer1 void main 21 P0 0XFF init while 1 if aa 19 aa 0 status F 1 TR1 0 delay 46 TR0 0 DPL TL0 DPH TH0 temp DPTR cout 65535 shiwan temp 1000000 100000 wan temp 100000 10000 qian temp 10000 1000 bai temp 1000 100 shi temp 100 10 ge temp 10 22 if shiwan 0 shiwan 10 if wan 0 wan 10 if qian 0 qian 10 if bai 0 bai 10 if shi 0 shi 10 display shiwan wan qian bai shi ge 23 void init temp 0 aa 0 cout 0 IE 0X8A TMOD 0 x15 TH1 0 x3c TL1 0 xb0 TH0 0 TL0 0 TR1 1 TR0 1 void display uint shiwan uint wan uint qian uint bai uint shi uint ge P0 0 x20 P2 table shiwan 24 delay 5 P0 0 x10 P2 table wan delay 3 P0 0 x08 P2 table qian delay 3 P0 0 x04 P2 table bai delay 3 P0 0 x02 P2 table shi delay 3 P0 0 x01 P2 table ge delay 3 void xtimer1 interrupt 3 TH1 0 x3c 25 TL1 0 xb0 aa void xtimer0 interrupt 1 cout void delay uint z uint i j for i 0 i z i for j 0 j 110 j
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!