单片机速测量系统的设计.docx
- 文档编号:29382142
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:24
- 大小:167.10KB
单片机速测量系统的设计.docx
《单片机速测量系统的设计.docx》由会员分享,可在线阅读,更多相关《单片机速测量系统的设计.docx(24页珍藏版)》请在冰豆网上搜索。
单片机速测量系统的设计
关键词:
单片机;速度测量;霍尔传感器;LED
1总体设计1
1.1系统设计方案论证1
1.2本系统设计的主要内容1
2单片机速度测量系统2
2.1单片机速度测量原理2
2.2单片机速度测量系统结构框图2
3系统硬件设计2
3.1传感器概述2
3.1.1霍尔传感器的基本工作原理3
3.1.2CS3020霍尔传感器4
3.1.3霍尔传感器的硬件连接6
3.2MCU控制系统的设计6
3.2.1CPU的选用6
3.2.2AT89S51主要特性和引脚说明7
3.2.3单片机最小系统9
3.3LED数码管显示器10
3.4单片机测速系统总原理图11
4系统软件设计12
4.1程序流程图12
4.2程序功能13
4.3程序调试14
参考文献15
附录15
1总体设计
1.1系统设计方案论证
现在测量速度的方法有很多,可以采用不同的器件做出多种测速器。
在这里讨论了两种方案。
方案一:
光电式脉冲发生器。
主要由光源、光敏器件和遮光盘组成。
水轮旋转带动遮光盘旋转,当遮光盘没有遮住光源时,光源的光射到光敏器件上,光敏器件中有电流流过,于是在输出端产生电压输出。
其脉冲频率与水速成正比,经过单片机处理后,即可得出水的速度。
这种光脉冲发生装置,在转换速度较高的情况下,由于水流动中的振动引起的光脉冲干扰等问题不好解决,现在采用的不多。
方案二:
磁电式脉冲发生器。
将导磁材料的齿轮固定在转轴上,对着齿轮端面固定一块磁钢,霍尔元件贴在磁钢的一个端面上,随着齿轮转动,元件的输出呈周期性变化,经整形和放大后输出方波脉冲。
霍尔传感器输出频率与转速成正比,此信号经单片机处理后,即可得出水流的速度。
本设计测量要求稳定性好,灵敏度高和精度高,而且对水流速度的测量要求传感器能够适应各种各样的环境。
所以这里选择方案二。
其原因还有三点:
其一是霍尔传感器输出信号电压幅值不受转速的影响;其二是频率响应高,其响应频率高达20kHz,相当于水速为1000km/h时所检测的信号频率;其三是抗电磁波干扰能力强。
根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和M/T法(频率周期法)。
测频法一般用于高速测量,在转速较低时,测量误差较大;而测周期法一般用于低速测量,速度越低测量精度越高,但在测量高转速时,误差较大;频率周期法结合了上面两种方法的优点,但是此种方法要求单片机有3个定时/计数器。
考虑上面三种因素,该系统选择测频法。
1.2本系统设计的主要内容
根据上面选择的方案,本设计主要内容由以下三大部分组成:
一、信号的采集。
这部分主要是用霍尔转速传感器采集水轮转速的信号,并将采集的信号传给单片机。
二、单片机数据处理。
这部分主要是使用51系列单片机采用适当的算法来编程快速准确地对采集的数据进行相关运算并得出结果。
此部分是本设计的重点和难点。
三、LED数字显示。
这部分主要是对测得的结果通过4位LED数码管显示给用户。
用单片机AT89S51作为控制核心,通过霍尔传感器来检测汽水的运转情况进而实现水速度的测量,最后用4位LED数码管直观的将速度显示给用户,保留一位小数位。
该测量方法是数字式测量方法,代替了传统的机械式或模拟式结构,测量精度有了很大的提高,具有很大的实用价值。
2单片机速度测量系统
2.1单片机速度测量原理
根据霍尔效应原理,将一块永久磁钢固定在水轮转轴上的转盘边沿(如果要提高测量精度,可以在转盘边沿多固定2到3个磁钢),转盘随着轴旋转,磁钢也将跟着同步旋转。
在转盘附近安装一个霍尔器件,转盘随轴旋转一周时,受磁钢所产生的磁场的影响,霍尔器件输出一个脉冲信号,转盘转了多少转霍尔器件就输出多少个脉冲信号,将输出的脉冲信号送到单片机的计数口,利用单片机的定时/计数器进行定时和计数,测出脉冲的周期或频率即可计算出水轮转速。
通过单片机软件设计,把转速转换成线速度。
转速即是角速度,线速度=角速度*周长。
2.2单片机速度测量系统结构框图
根据霍尔转速测量原理,可以画出单片机速度测量系统的结构框图。
结构框图如图3-1所示。
图3-1单片机速度测量系统结构框图
由霍尔传感器采集水轮转速的信号,并将采集的信号传给单片机,利用单片机的定时计数器功能和编写的程序将采集的信号转换成数据,通过数码管将数据显示出来。
3系统硬件设计
整个系统主要包括霍尔转速传感器、单片机和LED显示模块三大部分组成。
各个硬件部分将在后面详细阐述。
3.1.1霍尔传感器的基本工作原理
霍尔传感器是利用霍尔效应原理,通过磁场、电流对被测量的控制,使包含有被测量变化信息的霍尔电压发生变化,在利用后继的信号检索和信号放大电路,就可以得到被测量的信息。
正因为霍尔传感器的基本原理霍尔效应只包含了磁场、电流、电压三个常用物理量,使得采用霍尔传感器对被测量的测量简单易行,而磁场强度、电流、电压是磁场、电场的基本物理量,所以霍尔传感器可以进行精确的非接触测量。
1.霍尔效应
在一块半导体薄片上,当它被置于磁感应强度为B的磁场中,如果在它相对的两边通以控制电流I,且磁场方向与电流方向正交,则在半导体另外两边将产生一个大小与控制电流I和磁感应强度B乘积成正比的电势UH,即UH=KhIB,其中Kh为霍尔元件的灵敏度,Kh值越大,灵敏度就越高,该电势称为霍尔电势。
在片子上作四个电极,其中C1、C2间通以工作电流I,C1、C2称为电流电极,C3、C4间取出霍尔电压UH,C3、C4称为敏感电极。
将各个电极焊上引线,并将片子用塑料封装起来,就形成了一个完整的霍尔元件。
图4-2霍尔效应
2.工作原理
霍尔开关集成电路由稳压器、霍尔元件、差分放大器、斯密特触发器和输出级组成。
在外磁场的作用下,当磁感应强度超过导通阈值BOP时,霍尔电路输出管导通,输出低电平。
之后,磁感应强度再增加,仍保持导通态。
若外加磁场的磁感应强度值降低到BRP时,输出管截止,输出高电平。
通常称BOP为工作点,BRP为释放点,BOP-BRP=BH称为回差。
回差的存在使开关电路的抗干扰能力增强。
集成电路中的信号放大器将霍尔元件产生的幅值随磁场强度变化的霍尔电压UH放大后再经过斯密特触发器进行整形、放大后输出脉冲方波信号。
霍尔传感器内部结构如图4-3所示。
图4-3霍尔传感器内部结构方框图
3.1.2CS3020霍尔传感器
霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路门输出,工作电压范围宽,使用非常方便。
考虑到用于汽水速度测量这种特殊环境下,在本设计中选择了CS3020霍尔传感器,该系列霍尔开关电路传感器广泛用于汽水工业和军事工程中。
如图4-4所示是CS3020的外形图。
将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。
图4-4CS3020的外形图
CS3020是由电压调整器,霍尔电压发生器,差分放大器,史密特触发器和集电极开路的输出级组成的磁敏传感电路,它是一种单磁极工作的磁敏电路,适合于矩形或者柱形磁体下工作。
当磁钢随水轮轴旋转时,霍尔传感器受磁场的影响,霍尔器件输出一个脉冲信号。
感受到磁场的时候输出一个低电平,没感受到磁场的时候输出高电平。
工作特点如下:
●电源电压范围宽
●开关速度快,无瞬间抖动
●工作频率宽
●寿命长、体积小、安装方便
●能直接和晶体管及TTL、MOS等逻辑电路接口
极限参数见下表4-1
参数
符号
量值
单位
电源电压
VCC
25
V
磁感应强度
B
不限
mT
输出电流
IOL
25
mA
工作环境温度
TA
-40~125
℃
贮存温度
TS
-55~150
℃
电特性见下表4-2(TA=25℃)
参数
符号
测试条件
CS3020
单位
最小
典型
最大
电源电压
VCC
Vcc=4.5~24
4.5
—
24
V
输出低电平电压
VOL
Vcc=4.5V,
Vo=Vccmax,
B=50mT,Io=25mA
—
200
400
mV
输出漏电流
IOH
Vo=Vccmax,VCC开路
—
0.05
10
μA
电源电流
ICC
Vo=Vccmax,VCC开路
—
8
12
mA
输出上升时间
tr
Vcc=12V,
RL=480Ω
CL=20pF
—
0.12
1.2
μS
输出下降时间
tf
—
0.14
1.4
μS
磁特性见表4-3(VCC=4.5~24V)
参数
符号
CS3020
单位
最小
典型
最大
工作点
BOP
7
—
35
mT
释放点
BRP
5
—
33
mT
回差
BH
2
—
—
mT
3.1.3霍尔传感器的硬件连接
霍尔传感器的标志面对着自己,从左至有右分别是接5V电压,接地,脉冲输出。
如图4-5所示是霍尔传感器的硬件连接图。
图中R1是限流电阻,C1、R2起滤高频的作用。
当霍尔元件感受到磁场的时候引脚3输出低电平,三极管导通,单片机P3.5口接收到高电平脉冲;当霍尔元件没有感受到磁场的时候引脚3输出高电平,三极管截止,单片机P3.5口接收到低电平脉冲。
图4-5霍尔传感器的硬件连接图
3.2MCU控制系统设计
3.2.1CPU的选用
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytes的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
3.2.2AT89S51主要特性和引脚说明
AT89S51有PDIP、PLCC、TQFP三种封装方式,以适应不同产品的需求。
其中最常见的就是采用40Pin封装的双列直接PDIP封装,其引脚排列见如图4-7所示。
图4-7AT89S51芯片引脚排列图
1.主要特性:
●与MCS-51产品指令系统完全兼容
●4K字节可编程FLASH存储器
●1000次擦写周期
●全静态工作:
0Hz-24KHz
●128*8位内部RAM
●32个可编程I/O口线
●两个16位定时/计数器
●6个中断源
●可编程串行通道
●低功耗的闲置和掉电模式
●片内振荡器和时钟电路
2.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,可用作输入,P2口的管脚被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
当P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入,P3口被外部下拉为低电平时,P3口将输出电流,这是由于内部上拉的缘故。
P3口的第二功能如下:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
RST:
复位输入。
可以是单片机处于复位工作状态。
通常有自动上电复位和人工按键复位两种。
ALE/PROG:
地址锁存允许信号。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在不访问外部存储器时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
该脉冲序列可作为外部时钟源或定时脉冲源使用。
/PSEN:
外部程序存储器读选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
程序存储器的内外部选通信号。
接低电平时,则只使用片外ROM;如果接高电平,则只使用片内ROM。
XTAL1和XTAL2:
片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89S51片内OSC的定时反馈回来。
3.2.3MCU最小系统设计
单片机最小系统就是能使单片机工作的最少的器件构成的系统,是大多数控制系统所必不可少的部分。
AT89S51内部已经包含了一定数量的程序存储器,在外部只要增加时钟电路和复位电路就可以构成单片机最小系统。
1.时钟电路
所有单片机都需要时钟电路,时钟电路的作用是控制单片机的工作节奏。
利用芯片内部的振荡器然后在引脚XTAL1和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。
外接晶振时,C1和C2的值通常选择为30pF左右,C1、C2对频率有微调作用,为了减小寄生电容,更好地保证振荡器稳定、可靠的工作,振荡器和电容应尽可能安装得与单片机引脚XTAL1和XTAL2靠近。
2.复位电路
复位是单片机的初始化操作,所有单片机在启动运行时都需要复位,以使CPU和系统中的其他部件处于一个确定的初始状态,并从这个状态开始工作,因而,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部复位电路才能实现。
单片机第40引脚正极接上5V电源,负极(地)接20引脚。
单片机内部已集成了振荡器,使用晶体振荡器时,接18、19脚,再接上电容。
EA引脚接到正电源端就可以了。
如图4-8所示是由AT89S51构成的单片机最小系统,P0-P3口为32个通用I/O口,使用P0口需要通过10KΩ电阻上拉Vcc。
图4-8内部已包含ROM的单片机最小系统
3.3LED数码管显示器
由于LED数码管具有亮度高、使用电压低、寿命长等特点,所以在工业测控系统中常用LED数码管作为显示输出。
本系统也采用LED数码管作显示输出。
LED显示器是由发光二极管显示字段的显示器件。
单片机系统中通常使用8段LED数码显示器,其外形及引脚如图4-9(a)所示,由图可见8段LED显示器由8个发光二极管组成。
其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,通过不同的组合可用来显示各种数字,包括A~F在内的部分英文字母和小数点“.”等字样。
LED显示器有两种不同的形式:
一种是8个发光二极管的阳极都连在一起的,称为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称为共阴极LED显示器。
如图4-9(b)所示。
图4-98段LED数码显示器
本设计采用LED动态扫描显示,这样能分时轮流选通数码管的公共端,使得数码管轮流导通,在选通相应LED后,即在显示字段上得到字形码。
究竟是哪个数码管亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。
这种方式不但能提高数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。
在动态方式中,逐个地循环地点亮各位显示器。
这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。
在单片机P0的8个输出口分别连接上一个150Ω的电阻是为了保证数码管显示的时候每段亮度都一样。
采用共阳极驱动,当位选口P2.0~P2.3输出一个低电平的时候三极管导通,这就决定了哪一位数码管被点亮。
三极管前面的1KΩ电阻起限流的作用,防止电流过大烧坏三极管。
这样P2.0~P2.3分别控制百位,十位,个位和小数位。
数码管显示硬件图如图4-10所示。
图4-10LED数码管显示硬件图
3.4单片机测速系统总原理图
图4-11单片机测速系统总原理图
从系统原来图中可以看到本设计结构和线路布局相对比较简单,也具有较强的实用性。
将永久磁钢固定在转盘上,转盘随轴旋转一周,磁钢也旋转一周,霍尔传感器感受到一次磁场。
当霍尔传感器感受永久磁钢产生的磁场时,传感器的引脚3输出低电平,此时三极管导通,单片机P3.5口接收到高电平脉冲;当传感器没有感受到磁场的时候引脚3输出高电平,此时三极管截止,单片机P3.5口接收到低电平脉冲。
转盘转了多少转单片机就接收到多少个脉冲,利用单片机的定时/计数器进行定时和计数,测出脉冲的周期或频率即可计算出水轮转速。
通过单片机软件设计,把转速转换成线速度。
转速即是角速度,线速度=角速度*周长。
4系统软件设计
在单片机软件编程时,应运用模块化编程思想,按照先粗后细的方法把整个系统的软件划分成多个功能独立、大小适当的模块。
本设计软件可分为主程序、中断服务子程序、LED数码管显示子程序三个部分。
软件功能是在KeiluVision2中编写C语言来实现的。
4.1程序流程图
主程序流程图和中断服务程序流程图分别见图5-1和图5-2。
图5.1主程序流程图
系统要开始工作就要对单片机进行初始化,系统初始化部分程序如下:
#include
#include
#defineSYSCLK11.059200
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
#defineR4
#definePI314
接下来是定时/计数器初始化,设置工作方式控制寄存器TMOD。
TMOD=0x51
TL1=0x00。
TH1=0x00。
TL0=0x00。
TH0=0x4c。
单片机跳中断处理,处理后返回主程序,最后用数码管显示数据,1秒钟更新一次,结束程序。
图5.2中断服务程序流程图
当单片机执行中断程序的时候要重新设置定时计数器的初值,每次从传感器传来一个脉冲的时候,单片机计数器加“1”。
如果每50ms中断一次,那么当k=20的时候(即定时器每到1秒钟),程序跳出中断返回到主程序,执行显示程序。
4.2程序功能
该程序的功能是利用单片机将霍尔传感器采集到的信号进行处理,将处理后得到的数据通过P0口送到LED数码管显示出来。
系统初始化:
TMOD=0x51。
//初始化,工作方式控制寄存器TMOD十六进制51转化成二进制为01010001。
T1计数工作方式,工作在方式1;T0定时工作方式,工作在方式1。
TL1=0x00。
TH1=0x00。
//T1计数初值为0。
TL0=0x00。
TH0=0x4c。
//每50ms=50000us中断一次。
由公式(5-1)
(65536-x)*12/11.0592=50000
得定时初值(65536-50000*11.0592/12)/256=76转换为16进制,得高位为4C(65536-50000*11.0592/12)%256=0得低位。
IE=0x82。
//中断控制IE,EA=1,CPU开放中断;ET0=1,允许定时器中断。
TR0=1。
//定时开始。
中断函数程序如下:
voidtimer0(void)interrupt1
{
TR1=0。
TR0=0。
//启动计数/定时器
TF0=0。
//中断标志位
TL0=0x00。
TH0=0x4c。
k++。
if(k>=20)//每50ms中断一次,那么当K>=20的时候就是1s,每1s钟计算一次转速js。
{
js=TH1*256+TL1。
TH1=0。
TL1=0。
k=0。
}
js=0。
TR0=1。
}
系统程序详见附录。
4.3程序调试
该程序在KeiluVision2中进行调试,可以看到调试结果如下图5-3所示:
图5-3程序在Keil中的调试。
参考文献
[1].张齐等.单片机应用系统设计技术—基于c语言编程[M].北京:
电子工业出版社,2004年.
[2].黄冰.微机原理及应用[M].重庆:
重庆大学出版社,2006年
[3].蔡萍.现代检测技术与系统[M].北京:
高等教育出版社,2005年
[4].黄智伟等.全国大学生电子设计竞赛电路设计[M].北京:
北京航空航天大学出版社,2006
[5].彭军等.数字电路设计与制作[M].北京:
科学出版社,2007年
[6].常建等.传感器原理及工程应用[M].西安:
西安电子科技大学出版社,2007年
[7].郑燕等.单片机在电子电路设计中的应用[M].北京:
清华大学出版社,2006年
附录
单片机测速测量系统程序如下:
#include
#include
#defineSYSCLK11.059200//时钟脉冲,单位MHz
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
#defineR5//半径0.5m
#definePI314//pi=3.14
//段选定义
sbitP0_0=P0^0。
sbitP0_1=P0^1。
sbitP0_2=P0^2。
sbitP0_3=P0^3。
sbitP0_4=P0^4。
sbitP0_5=P0^5。
sbitP0_6=P0^6。
sbitP0_7=P0^7。
//位选定义
sbitP2_0=P2^0。
sbitP2_1=P2^1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 测量 系统 设计