传感器脉冲信号处理电路设计.doc_第1页
传感器脉冲信号处理电路设计.doc_第2页
传感器脉冲信号处理电路设计.doc_第3页
传感器脉冲信号处理电路设计.doc_第4页
传感器脉冲信号处理电路设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

课程设计说明书 第 页I 传感器脉冲信号处理电路设计 摘 要 介绍了一种基于单片机平台 采用霍尔传感器实施电机转速测量的方法 硬件系 统包括脉冲信号产生 脉冲信号处理和显示模块 重点分析 脉冲信号处理电路 采 用 c 语言编程 通过实验检测电路信号 关键词 霍尔传感器 转速测量 单片机 课程设计说明书 第 页 II 目目 录录 1 绪论绪论 1 1 1 课题描述 1 1 2 基本工作原理及框图 1 2 相关芯片及硬件电路设计相关芯片及硬件电路设计 1 2 1 系统的主控电路 1 2 2 STC89C52 单片机介绍 2 2 2 1 STC89C52 芯片管脚介绍 3 2 2 2 时钟电路 4 2 3 单片机复位电路 5 2 4 霍尔传感器电机采样电路 6 2 4 1 A3144 霍尔开关的工作原理及应用说明 6 2 4 2 霍尔传感器测量原理 7 2 5 电机驱动电路 8 2 6 显示电路 8 3 软件系统设计软件系统设计 9 3 1 软件流程图 9 3 2 系统初始化 10 3 3 定时获取脉冲数据 11 3 4 数据处理及显示 12 3 5 C 语言程序 13 总总 结结 17 致谢致谢 18 参考文献参考文献 19 课程设计说明书 第 1 页 1 绪论绪论 1 1 课题描述 在工农业生产和工程实践中 经常会遇到各种需要测量转速的场合 测量转速的 方法分为模拟式和数字式两种 模拟式采用测速发电机为检测元件 得到的信号是模 拟量 控制系统的硬件部分非常复杂 功能单一 而且系统非常不灵活 调试困难 数字式通常采用光电编码器 圆光栅 霍尔元件等为检测元件 得到的信号是脉冲信 号 单片机技术的日新月异 特别是高性能价格比的单片机的出现 转速测量普遍采 用以单片机为核心的数字式测量方法 使得许多控制功能及算法可以采用软件技术来 完成 采用单片机构成控制系统 可以节约人力资源和降低系统成本 从而有效的提 高工作效率 本课题 是要利用霍尔传感器来测量转速 由磁场的变化来使霍尔传感 器产生脉冲 由单片机计数 经过数据计算转化成所测转速 再由数码管显示出来 1 2 基本工作原理及框图 本课程设计的电机采用直流电机 然后利用霍尔传感 A3144 对电机的转速进行采 样从而输出脉冲信号 主控芯片采用 STC89C52 单片机 对脉冲个数进行计数并经过 数据处理以后得到单位时间内电机转过的转数机电机的转速 再通过显示电路将电机 转速显示出来 基本工作原理框图如图 1 所示 电机驱 动电路 电机转速 采样电路 STC89C5 2 单片机 主控电路 显示电路 图 1 基本工作原理框图 2 相关芯片及硬件电路设计相关芯片及硬件电路设计 2 1 系统的主控电路 图 2 是该系统的主控单元的电路图 J2 J3 J4 J5 是单片机的 I O 端口的扩展 预留接口用于调试等 主控芯片采用 STC89C52 单片机 该系统中采用定时器 0 作为 定时器 定时器的时间为 1S 定时器 1 作为计数器 对 P35 引脚采集到的脉冲信号进 行计数操作 单片机然后对数据进行处理 计算出 1S 内计数脉冲的个数 即电机转速 然后通过显示电路将电机转速显示出来 从而实现整个系统的功能 课程设计说明书 第 2 页 T2 P10 1 T2EX P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 RST 9 RXD P30 10 TXD P31 11 INT0 P3 2 12 INT1 P3 3 13 T0 P34 14 T1 P35 15 WR P36 16 RD P37 17 XTAL2 18 XTAL1 19 GND 20 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN P44 29 ALE P45 30 EA P46 31 P07 32 P06 33 P05 34 P04 35 P03 36 P02 37 P01 38 P00 39 VCC 40 U1 89C52 VCC GND 1 2 3 4 5 6 7 8 J2 1 2 3 4 5 6 7 8 J3 1 2 3 4 5 6 7 8 J4 1 2 3 4 5 6 7 8 J5 P00 P01 P02 P03 P04 P05 P06 P10 P11 P12 P13 P14 P15 P16 P17 P20 P21 P22 P23 P24 P25 P26 P27 P30 P31 P32 P33 P34 P35 P36 P37 VCC P01 P02 P03 P04 P05 P00 P20 P21 P22 P23 P24 P25 P26 P27 P10 P11 P12 P13 P14 P15 P16 P17 P30 P31 P32 P33 P34 P35 P36 P37X2 X1 RSTP07 P06 P07 图 2 单片机主控电路 2 2 STC89C52 单片机介绍 国芯微电子公司生产的 STC89C52 单片机是为一个 8 位通用的微处理器 2 采用 工业标准的 51 内核 工作电压为 5V 在低端的微控制器领域 这个单片机的性能非 常好 采用 CHMOS 制作工艺制作 功耗很低 芯片内部集成了一个可反复擦写 10 万次的只读存储器 ROM 和一个升具有 256 个字节的随机存储器 RAM 随机存储器 RAM 器件 采用标准 MCS 52 指令系统并且兼容 MCS 51 指令系统 单片机片内部 还集成了一个通用的 8 位中央处理器与一个 FLASH 存储单元 还有定时器 串口中 断 外部中断等外设资源 AT89C52 单片机这些优点使其得大多数设计者的青睐 为 许多嵌入式控制电路提供了一种灵活 实用 经济实惠的设计模式 其引脚图 如下 图 3 所示 课程设计说明书 第 3 页 T2 P10 1 T2EX P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 RST 9 RXD P30 10 TXD P31 11 INT0 P3 2 12 INT1 P3 3 13 T0 P34 14 T1 P35 15 WR P36 16 RD P37 17 XTAL2 18 XTAL1 19 GND 20 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN P44 29 ALE P45 30 EA P46 31 P07 32 P06 33 P05 34 P04 35 P03 36 P02 37 P01 38 P00 39 VCC 40 U1 89C52 图 3 单片机引脚图 2 2 1 STC89C52 芯片管脚介绍 1 引脚至 8 引脚为单片机端口的输入 输出脚 9 引脚 是单片机的复位引脚 当单片机上电以后 时钟电路开始工作 如果复位 引脚出现高电平的时间超过两个机器周期以上 单片机将进入复位状态 10 引脚至 17 引脚是单片机 P3 端口的输入 输出引脚 P3 口与 P2 很相似 不同的 是 P3 口有很多第二功能 比如说定时器 外部中断 串口中断 串口通信等功能 在 实际应用中 我们对 P3 口的第二功能应用的是比较多的 18 19 引脚分别是时钟电路的输出端 输入端 一般通过 22pF 的瓷片电容接地 为单片机提供时钟新信号 相当于这个系统的心脏 29 引脚一般用于扩展单片机存储器空间 当次引脚输出低电平的时候 选通外部 程序存储器 如果输出高电平 则不选择外部存储器 即没有选择存储器扩展功能 单片机上电默认高电平 30 引脚跟 29 引脚差不多 也是单片机的存储空间不足的时候用于 通过使用外部 的存储器 来扩展单片机自身存储空间的不足 从而改善单片机存储空间的问题 31 引脚也是跟程序存储器相关的控制端口 在开发应用中一般很少用到 因为随 课程设计说明书 第 4 页 着社会的发展 单片的发展非常迅速 单片机内部的存储空间是足够用的 所以这些 第二功能是很少用到的 并且现在已经有很多更低功耗的单片机 更大的存储器的单 片机已经被生产应用 并逐渐占领低端单片机的市场 39 引脚至 32 引脚是 P0 端口的输出输入引脚 其输出端口漏极开漏 与 P2 口结合 可作为 16 跟地址总线服用端口 当作为普通的 I O 端口的时候 需要上上 10K 的拉电 阻 否则 P0 端口不能正常工作 40 引脚为 VCC 是给芯片供电的引脚 额定电压为 5V 并且该引脚旁边要加上滤 波电路 防止电压波动很大的时候烧毁芯片 20 引脚为 GND 很显然是单片机的接地引脚 为电路各处的电压提供一个基准值 P1 口的部分管脚的第二功能如表 4 所示 表表 4 P1 口的部分管脚的第二功能口的部分管脚的第二功能 引脚号第二功能 P1 0T 定时器 2 的复用引脚 或者输出一个时钟脉冲 P1 1T2 C2 的控制输入引脚 P1 5MOSI 即主出从入 用于 SPI 通信 P1 6MISO 即主入从出 用于 SPI 通信 P1 7SCK 时钟信号 用于 SPI 通信 P3 口的部分管脚的第二功能如表 5 所示 表表 5 P3 口的部分管脚的第二功能口的部分管脚的第二功能 引脚号第二功能引脚号第二功能 P3 0RXD 串口接收P3 4T0 的外部计数器输入 P3 1TXD 串口输出P3 5T1 外部计数器输入 P3 2外部中断 0P3 6允许外部写入引脚 P3 3外部中断 1P3 7允许外部读取引脚 2 2 2 时钟电路 图 5 为单片机的时钟单元电路 晶振采用 12MHz C1 和 C2 均为 22pF 的陶瓷电容 51 单片机会对时钟电路进行 12 分频 给单片机提供机器时钟 时钟电路是单片机的心 脏 它控制着单片机的工作节奏 单片机就是通过复杂的时序电路完成不同的指令功 能的 课程设计说明书 第 5 页 12 X1 C1 C2 GND X2 X1 图 5 时钟电路 2 3 单片机复位电路 图 6 是系统复位电路 3 C3 为 10UF 的电解电容 R2 是 10K 的电阻 REST 是低 位按键 复位电路的基本功能是 系统上电时提供复位信号 直至系统电源稳定后 撤销复位信号 为可靠起见 电源稳定后还要经一定的延时才撤销复位信号 以防电 源开关或电源插头分 合过程中引起的抖动而影响复位 单片机的复位引脚保持高电平 2 个机器周期以上 就会进入复位状态 VCC R2 GND C3 CAP REST RST 图 6 复位电路 2 4 霍尔传感器电机采样电路 霍尔传感器分为线型霍尔传感器和开关型霍尔传感器两种 本系统采用开关型霍尔传感器型号为 A3144 其内部集成了信号放大电路 整形电 路 输出电路 当霍尔传感器采集到外部脉冲信号以后 通过内部集成小信号放大器 课程设计说明书 第 6 页 电路把信号放大 然后经过一个施密特触发器整形 最后通过一个集电极开漏的三极 管输出 该传感器为开关型霍尔传感器 所以输出为数字信号 由于集电极开漏 所 以在应用的电路中 需要加一个 10K 左右的上拉电阻 R1 1 引脚为 VCC 2 引脚为 GND 3 引脚为信号输出端 1 1 2 2 3 3 J1 A3144 VCC GND R1 VCC P35 霍尔传感器 A3144 电路 2 4 1 A3144 霍尔开关的工作原理及应用说明 根据霍尔效应 人们用半导体材料制成的元件叫霍尔元件 4 它具有对磁场敏感 结构简单 体积小 频率响应宽 输出电压变化大和使用寿命长等优点 因此 在测 量 自动化 计算机和信息技术等领域得到广泛的应用 霍尔传感器 A3144 是 Allegro MicroSystems 公司生产的宽温 开关型霍尔效 应传感器 其工作温度范围可达 40 150 它由电压调整电路 反相电源保护电 路 霍尔元件 温度补偿电路 微信号放大器 施密特触发器和 OC 门输出极构成 通过使用上拉电阻可以将其输出接入 CMOS 逻辑电路 该芯片具有尺寸小 稳定性好 灵敏度高等特点 有两种封装形式 一种是 3 脚贴片微小型封装 后缀为 LH 另一 种是 3 脚直插式封装 后缀为 UA 5 课程设计说明书 第 7 页 A3144E 系列单极高温霍尔效应集成传感器是由稳压电源 霍尔电压发生器 差 分放大器 施密特触发器和输出放大器组成的磁敏传感电路 其输入为磁感应强度 输出是一个数字电压讯号 它是一种单磁极工作的磁敏电路 适用于矩形或者柱形磁 体下工作 可应用于汽车工业和军事工程中 霍尔传感器的外形图和与磁场的作用关系如图 3 6 所示 磁场由磁钢提供 所以霍 尔传感器和磁钢需要配对使用 a 霍尔元件和磁钢 b 管脚图 图 2 4 1 霍尔传感器的外形图 2 4 2 霍尔传感器测量原理 测量电机转速的第一步就是要将电机的转速表示为单片机可以识别的脉冲信号 从而进行脉冲计数 霍尔器件作为一种转速测量系统的传感器 它有结构牢固 体积 小 重量轻 寿命长 安装方便等优点 因此选用霍尔传感器检测脉冲信号 其基本 的测量原理如图 3 7 所示 当电机转动时 带动传感器运动 产生对应频率的脉冲信号 经过信号处理后输出到计数器或其他的脉冲计数装置 进行转速的测量 6 图 2 4 2 霍尔器件测速原理 课程设计说明书 第 8 页 2 5 电机驱动电路 本系统采用型号为 RF 300FA 的直流电机 额定供电电压为 5 9V 在本系统中采 用 5V 供电 由于电机直接由电源供电 不是采用单片机单片机端口驱动 所以无需在 添加驱动电路 即可适用于系统应用 J6 是直流电机接口 电位器 PR3 为 10K 通过 调节电位器可改变通过电机的电流 从而控制电机的转速 实现无极调速 1 2 J6 MOTRO VCC PR3 GND 图 2 5 电机驱动电路 2 6 显示电路 显示电路采用四位一体数码管 电路设计为横流驱动方式 使数码管亮度均匀 Q1 Q2 Q3 Q4 均为 PNP 型三极管 型号为 8550 PR1 为阻值为 2 2K 的 4P8 排阻 具有限流作用 防止三极管击穿 课程设计说明书 第 9 页 a Q1 8550 Q2 8550 Q3 8550 Q4 8550 A1 A2 A3 A4 GNDGNDGNDGND 1 2 3 4 5 6 7 8 RR1 P20 P21 P22 P23 b 图 3 0 显示电路 3 软件系统设计软件系统设计 3 1 软件流程图 图 4 1 所示是软件流程图 首先进行软件初始化 然后主函数进行数据处理 定时 器函数设置定时时间是否到达 1S 达到 1 秒就更新电机转速变量 没有达到 1S 则不 进行数据更新处理 数据处理以后 通过数码管显示 计数器中断函数 通过外部脉 冲计算脉冲个数 定时器在更新电机转速变量的时候 会读取 TH0 TL0 寄存器 并 清空寄存器 课程设计说明书 第 10 页 计数脉 冲 TH0 TL0 寄存器值加 1 TH0 TL0 寄存器值不 变 开始 程序初始化 化 定时 1S 读取 TH0 TL0 寄 存器的值 数据处理 数码管显示 a 主函数 Y N N Y 图 3 1 软件流程图 3 2 系统初始化 系统初始化函数主要是对系统的配置进行初始化 在这里使用到的定时器 0 和计数 器 1 所以只需要对定时器 0 和计数器 1 进行初始化即可 下面是初始换函数 定时器初始化 定时器 0 定时 计数器 1 计数 void Timer Init TMOD 0 x51 定时器 1 16 位定时器负责定时 定时器 0 16 位计数器负责计数 定时器 0 配置 b 定时器中断函 数 课程设计说明书 第 11 页 TH0 0 xDC 10ms 定时初值 TL0 0 x00 ET0 1 使能定时器 0 中断 TR0 1 允许定时器 0 计数 计数器 1 配置 TH1 0 x00 计数器初值 TL1 0 x00 TR1 1 允许计数器 1 计数 EA 1 使能总中断 3 3 定时获取脉冲数据 根据本系统的测速原理 可以知道 单片机通过 P3 5 将来自动累计外部脉冲的个 数 将其保存到 TH1 TL1 寄存器中 然后通过定时器中断服务函数 定时读取这两 个寄存器中数据 并将其清空为 0 以便计数器重新开始计数 以下是代码分析 函 数 uint16 Get DC MotorSpeedCounterValue void 输入参数 无 返回参数 计数器所记的数值 uint16 Get DC MotorSpeedCounterValue void uint8 temp1 0 temp2 0 两个临时变量 分别用来保存 TH1 和 TL1 的数值 uint16 Temp DC MotorSpeedCounter 0 temp1 TH1 temp2 TL1 uint8 类型强制转换为 uint16 类型然后移位 计算计数脉冲数 Temp DC MotorSpeedCounter uint16 temp1 8 uint16 temp2 课程设计说明书 第 12 页 TH1 0 TL1 0 return Temp DC MotorSpeedCounter 检测到的直流电机旋转的圈数 即计数器的 值 void T0 Interrupt interrupt 1 static uint8 counter 0 TH0 0 xDC 10ms 定时初值 TL0 0 x00 counter if counter 100 10ms 100 1s counter 0 DC MotorSpeedCounter Get DC MotorSpeedCounterValue 3 4 数据处理及显示 获取电机转速以后 需要单片机将数据显示出来 但是电机转速十一个 uint16 类 型的数据 因此需要吧这个整数的千位 百位 十位和个位分离出来 然后通过各位 的数值对应的数码管的段码 将数据正确的显示出来 以下是数据处理函数 void Data Process uint16 x 将数据的千百十个位分别提取出来 放入缓冲区 Disp Buffer 0 x 1000 Disp Buffer 1 x 1000 100 Disp Buffer 2 x 100 10 课程设计说明书 第 13 页 Disp Buffer 3 x 10 以下是主函数 负责系统各个外设的控制 主函数 void main uint8 i Timer Init while 1 Data Process DC MotorSpeedCounter for i 0 i 4 i P0 Digit Bits Disp Buffer i P2 Digit Seg i Delay Ms 1 3 5 C 语言程序语言程序 include void Timer Init uint8 Digit Bits 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f uint8 Digit Seg 0 x0e 0 x0d 0 x0b 0 x07 uint8 dispbuf 8 0 0 0 0 0 0 10 10 uint8 temp 8 uint8 dispcount uint16 counter uint8 T1count bit flag uint16 x 课程设计说明书 第 14 页 void main uint8 i Timer Init while 1 if flag 1 flag 0 x TH1 256 TL1 for i 0 i 8 i temp i 0 i 0 while x 10 temp i x 10 x x 10 i temp i x for i 0 i 6 i dispbuf i temp i counter 0 T1count 0 TH1 0 TL1 0 TR1 1 void Timer Init TMOD 0 x51 00n00 0000 0101 0001 定时器 0 16 位定时器负责定时 定时器 1 16 位计数器负责计数 定时器 0 配置 TH0 0 xDC 9 216ms 定时初值 TL0 0X00 课程设计说明书 第 15 页 ET0 1 使能定时器 0 中断 TR0 1 允许定时器 0 计数 计数器 1 配置 TH1 0 x00 计数器初值 TL1 0 x00 ET1 1 使能计数器 1 中断 TR1 1 允许计数器 1 计数 EA 1 使能总中断 void t1 void interrupt 3 using 3 T1count void t0 void interrupt 1 using 1 TH0 0 xDC 10ms 定时初值 TL0 0 x00 counter if counter 500 10ms 100 1s TR1 0 counter 0 flag 1 P0 Digit Bits dispbuf dispcount P2 Digit Seg dispcount dispcount if dispcount 4 dispcount 0 课程设计说明书 第 16 页 总 结 课程设计是我们专业课程知识综合应用的实践训练 这是我们迈向社会 从事职 业工作前一个必不少的过程 千里之行始于足下 通过这次课程设计 我深深体会到 这句千古名言的真正含义 在这次设计过程中 体现出自己单独设计的能力以及综合 运用知识的能力 体会了学以致用 突出自己劳动成果的喜悦心情 从中发现自己平 时学习的不足和薄弱环节 从而加以弥补 我今天认真的进行课程设计 学会脚踏实 地迈开这一步 就是为明天能稳健地在社会大潮中奔跑打下坚实的基础 在这次课程 设计当中我碰到了许多问题 我曾经接触过这方面的书籍和实物 也对其有一些简单 的了解 但是却不知道具体的工作原理 当我拿到课程设计的题名后完全不知道该怎 么办好 在杨老师的悉心指导下 我明白了其中的道理 于此同时我通过大量地阅读 和查阅相关的资料 最终此次课程设计才得以完成 通过这次课程设计让我懂得了在以后的学习和工作当中要不断地完善自我 努力 上进 刻苦钻研力争在电子信息行业有一个好的发展和结果 课程设

温馨提示

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

最新文档

评论

0/150

提交评论