基于单片机的直流电动机的转速检测(编辑修改稿)内容摘要:

存器的端口地址与命令寄存器相同,低 8 位 也是00H,状态寄存器的内容只能读出不能写入。 所以可以认为 8155 的 I/O 口地址00H 是命令 /状态寄存器,对其写入时作为命令寄存器;而对其读出时,则作为状态寄存器。 14 状态寄存器的格式如图 17 所示。 A 口中断标志请求 A 口缓冲器满空标志 A 口中断允许标志 B 口中断标志请求 B 口缓冲器满空标志 B 口中断允许标志 定时器中断标志,定时器计数到 指定长度置“ 1 ”,读状态后清“ 0 ” 图 17 8155 状态寄存器格式 8155 的定时 /计数器 8155 内部的定时 /计数器实际上是一个 14 位的减法计数器,它对 TIMER IN端输入脉冲进行减 1 计数,当计数结束(即减 1 计数“回 0”)时,由 TIMER OUT端输出方波或脉冲。 当 TIMER IN 接外部脉冲时,为计数方式;接系统时钟时,可作为定时方式。 定时 /计数器由两个 8 位寄存器构成,其中的低 14 位组成计数器,剩下的两个高位( M2, M1)用于定义输出方式。 其格式如下: 15 第三章 本系统的设计思路 系统设计要求 启动点击并测试他的每分钟转数,然后把测试结果随时显示在数码显示器上,且进行连续测试。 系统设计思想 在直流电机轴上固定一个小圆盘,圆盘的外侧,靠近圆周的位置上粘贴一块小磁铁。 紧挨着圆盘外侧,正对着小磁铁的位置,安放一个霍尔传感器芯片。 当电机旋转一圈,使圆盘上的小磁铁跟霍尔 芯片相遇时,霍尔元件将产生一个负跳变的脉冲信号。 此负跳变脉冲的个数完全可以代表电机的转数。 将此脉冲信号,通过定时 /计数器 1 的外部输入引脚 T1 输入到定时 /计数器 1 并进行计数。 因此必须把定时 /计数器 1 作为计数器使用。 另外,把定时 /计数器 0 作为定时器使用,且让它定时 1s。 把两个定时 /计数器同时启动之后,定时 /计数器 1 从 0开始记录电机的转数,当它计到 1s 的时候,定时 /计数器 0 将关停定时 /计数器1. 此时定时 /计数器 1 的当前计数值,正是电机每秒的转数。 把它转换成每分钟的转数之后送数码显示器显示。 系统控制电路 直流电机的转速测试电路图 (见附录 A) 16 控制电路说明 当系统启动开关 S 接通后, 引脚输入高电平。 此时,在程序的控制下 引脚将输出高电平。 于是两个晶体管导通使电机旋转。 由于电机的旋转需要足够的电流,因此用两个晶体管进行电流放大。 当开关 S 断开时, 引脚输入低电平。 此时 引脚将输出低电平。 于是两个晶体管同时截止,电机便停止旋转。 由于电机是一个电感元件,因此当他由导通突然变截止时,内部产生很大的反向电动势会把晶体击穿。 为了保护晶体管,电机的两端跨接一个续流二极管 ,是使反向电动势通过它进行释放。 在电机轴上装有一个小圆盘,它跟电机同步旋转。 当圆盘上的小磁铁与霍尔传感器相遇时, 霍尔传感器给定时 /计数器 1 的外部输入引脚 T1 提供提供负跳变的脉冲信号。 霍尔传感器的工作机理是:当通有电流的半导体材料上作用外磁场时,与电流垂直方向将产生一个感应电动势。 单片机与外部设备的联系是通过以通过寻址的方式访问外部接口来实现的,由于外部接口所使用的是外部数据存储器的地址,因此它的地址必须由单片机的P0 和 P2 口来发出。 其中, P0 口发出的是接口地址的低 8 位,而 P2 口发出的是接口地址的高 8 位。 在图中, P0 口的 位地址经锁存器之后,接到 8155 芯片的 A0 引脚上;而 P2 口的 位地址则接到 8155 芯片的片选引脚 CS 上。 因此 8155 接口芯片地址有以下两种: 0 x x x x x x x x x x x x x x 1 发命令或读状态时的地址 0 x x x x x x x x x x x x x x 0 读写数据时的地址 其中, x 可以任取,因此在控制程序中,索性把这两个地址采用如下的形式: 0111 1111 1111 1111 ( 7FFFH) 0111 1111 1111 1110 ( 7FFEH) 8155 接口芯片被指定为 7FFEH 地址时,它是通过单片机的 P0 口读入转速数据的 8 个显示段码的 8155 的复位引脚所接的是上电复位电路。 由于控制程序存储在 8155 单片机的内部程序储存器中,因此必须把单片机 17 的 EA 引脚街上高电平 因为显示器将采用编码扫描方式,故 8155 的扫描信号 CSo~SC2 必须进行外部译码( 74LS138)。 存储在 8155 内部 RAM 的转速数据的 8 位显示断码,通过 OUTAo~OUTA3和 OUTBo~OUTB3 引脚输出到数码显示器。 图中, 75451 和 7404 分别是显示器扫描和断码信号的驱动芯片。 AT89S51 引脚图 系统控制程序流程图 系统控制程序流程图 (见附录 B) 18 控制程序 系统控制程序如下: ORG 0000H。 程序从 0 地址开始运行 AJMP MAIN ;转主程序 ORG 000BH。 定时 /计数器 0 中断矢量 AJMP TSEV。 转定时 /计数器 0 中断服务程序 ORG 0050H ;主程序起始地址 MAIN: LCALL CLR0。 调用转速数据缓冲区清 0 子程序 LCALL CLR1。 调用转速段码缓冲区清 0 子程序 LCALL SHSV。 调用显示器初始化子程序 LACLL TISV。 调用定时 /计数器初始化子程序 SETB。 口读引脚准备 WRUN: MOV C,。 读启动开关状态 JNC WRUN。 等待启动 SETB。 启动电机 SETB TR0。 启动定时 /计数器 0 SETB TR1 ;启动定时 /计数器 1 HERE: JNB F0,HERE。 等待中断 MOV A,TL1。 测试结束,将每秒转数送 A MOV B,3CH。 60 秒送 B MUL AB。 计算每分钟转数 MOV R2,A。 每分钟转数的低 8 位数据送 R2 MOV R3,B。 每分钟转数的高 8 位数据送 R3 C1000: CLR C。 计算每分钟转数的千位十进制数 MOV A,R2。 从每分钟转数中反复减 1000,计算千 位 数。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。