基于AT89S51直流电机的转速测试系统.docx
《基于AT89S51直流电机的转速测试系统.docx》由会员分享,可在线阅读,更多相关《基于AT89S51直流电机的转速测试系统.docx(23页珍藏版)》请在冰豆网上搜索。
基于AT89S51直流电机的转速测试系统
基于AT89S51直流电机的转速测试系统
摘要:
这次的设计主要完成的是直流电动机测试系统,它是以AT89S51单片机作为核心的涉及到了速度的给定、控制和显示。
在这次的设计中运用到了与高中的物理知识电子在磁场中的运行轨迹相似的原理,在与电动机上安装的圆盘上的小磁铁相对应的位置放一个霍尔感应原件,霍尔感应原件就涉及到了前面所说的知识。
若想要显示速度准确数值在这里推荐使用8279专用芯片。
并且可以连续不断的测量速度的准确值观察速度的变化并记录总结。
关键词:
直流电机;单片机;转速测量
AT89S51-basedDCmotorspeedtestsystem
Abstract:
Thisdesignismainlytocompletethedirectcurrentmotortestsystem,itisthecoreofAT89S51includesagivenspeed,display,measure-mentspeedandcontrolthesethreeaspects.Usingfixedsmallmagnets,magneticfieldinadcmotorwithsmallmagnetscorrespondingtoaddastrongsensitivityofhallsensorcandirectlytothespeedofthedcmotoraccordingtomeasurement.Displayspeedvaluecanusethespecialchip8279.Andyoucanwatchtheaccuratevalueofcontinuousmeasuringspeedchangeandrecordsummary.
Keyword:
DC-motor,Microcontroller,Measurementofrotatingspeed
目录
第一章引言1
第二章系统的芯片功能介绍2
2.18155各引脚功能说明7
2.28155的地址编码及工作方式8
2.38155的定时/计数器10
第三章系统的设计思路11
3.1系统设计要求11
3.2系统设计思想11
3.3系统控制电路11
3.4控制电路说明12
3.5系统控制程序流程图13
3.6控制程序14
3.7控制程序说明19
结论20
致谢21
参考文献22
附录A23
附录B24
第一章引言
单片机就是一个电脑(又称单片微控制器),他把计算机系统都集成到了芯片上。
包括:
中央处理器(CPU)﹑内存、内部和外部总线系统等等这些计算机不可缺少的部件,目前大部分的单片机还另外增加了外界存储的功能。
嵌入式系统最适合使用的处理器还是单片机。
由于单片机具有独特的结构和它本身采用的先进的工艺材料半导体制作的,使它比其他的处理器更优越,多出了一些其他的功能。
单片机的主要特点:
(1)优异的性能价格比。
(2)集成密度较高体积相对较小可靠性高。
(3)控制功能强。
(4)消耗低、使用的电压低。
(5)易扩展。
第二章系统的芯片功能介绍
AT89S51采用来自于ATMEL(爱特梅尔)公司的一种先进高级的高密度、非容易失去性能的存储制造技术。
能标准的MCS-51指挥系统和80c51销结构兼容,也使用更多数量的8位CPU和芯片ISP闪存单元。
此外,AT89S51单片机CPU0赫兹振荡频率配置增加暂停节电模式下工作仍然可以继续工作运行,不受打扰的还有随机存取存储器(RAM)定时计数器、串行口、外中断系统同时该芯片还具有塑料双列直插式封装(PTIP)、薄四方扁平封装(TQFB)和特殊引脚芯片封装(PLCC)等三种封装形式。
以适应适合不同产品的需求总有一个会合适的。
图1-1AT89S51的结构图
(1)
图1-2AT89S51的结构图
(2)
AT89S51或者AT89S52单片机实际有40个有效的引脚,经常使用的封装形式有俩种,其普通40脚引脚的具体分布可参见图1-3:
(a)塑封双列直插形式英文简称就是DIP(DualIn-linePackage);(b)方型芯片形式的英文简称就是PLCC(PlasticChipCarrier),这种形式具有44个“J”形脚(其中有4个脚是中空的)。
图1-3常见的两种封装形式
40个引脚总体上包含了电源、时钟、控制和I/O。
其逻辑图如图1-4所示。
图1-440个引脚的逻辑图
2.18155部分引脚功能说明
:
片选信号线,在低电平下有效。
IO/
:
8155的随机存取存储器(RAM)或输入/输出(I/O)的选择线。
当IO/
和0相等时,选择随机存取存储器(RAM)那么AD0~AD7上地址就是00H~FFH;当IO/
和0不相等和1相等的时候就会选择8155的片内的输入输出(I/O)那么AD0~AD7上的地址就是8155输入/输出(I/O)口接口的地址。
PA0~PA7:
8位通用输入/输出(I/O)口接口,其输入/输出(I/O)口接口的传输方向是程序全程控制的。
PB0~PB7:
8位通用I/O,功能同A一样。
PC0~PC5:
有两个作用,第一通过程序来控制用来当作输入/输出(I/O)口,第二通过程序来控制用来作为PA口接口和口PB接口的控制信号线。
VCC:
+5V电源端口接口。
图1-58155内部结构及引脚
2.28155的地址编码及工作方式
8155的16位地址是统一由外部数据存储在单片机处理。
片选线
提供高8位,在
和0相等不和1相等,就会选中该片。
在
、IO/
和0相等的情况下,就会选择8155内随机存取存储器(RAM),这时8155只能当作片外的随机存取存储器那么随机存取存储器的低8位编址就为00H~FFH;当
、IO/
和1相等时,选中输入/输出那么低8位就得由AD7~AD0确定。
如表1-6所示。
A对应低8位01H,B对应低8位02H,C对应低8位03H。
表1-68155芯片的输入/输出(I/O)口地址
AD7~AD0
选择输入/输出(I/O)口
A7
A6
A5
A4
A3
A2
A1
A0
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
命令/状态寄存器
A口
B口
C口
定时器低8位
定时器高6位及方式
在8155中A、B可用作基本输入/输出也可以作为选通输入/输出。
C既可以当做基本输入/输出同时也可控制A和B的选通。
状态控制信号在C时每一条线的作用如下:
A中断请求线(PC0:
AINTR)B中断请求线(PC3:
BINTR)
A缓冲器满信号(PC1:
ABF)B缓冲器满信号(PC4:
BBF)
A选通信号(PC2:
)B选通信号(PC5:
)
8155的输入/输出是通过设制在8155内部的命令寄存器(只能写进去不读出来)来实现的。
命令寄存器只读不写的格式如图1-6所示。
A、B、C分别在ALT1ALT2ALT3ALT4下的工作方式:
ALT1:
A为基本B也为基本,C为输入进去。
ALT2:
A为基本B也为基本,C为输出出来。
选通A是在ALT3时,基本是B,PC0是AINTR,PC1是ABF,PC2是
PC3~输出的是PC5。
ALT4:
A、B为选通,AINTR是PC0,ABF是PC1,
是PC2,BINTR是PC3,BBF是PC4,
是PC5。
图1-78155命令寄存器格式
8155内部还有一个状态寄存器(只读出来不写进去,又称条件码寄存器),供中央处理器在需要的时候查询输入/输出(I/O)和定时/计数器的当前状态。
状态寄存器的格式如图1-8所示。
图1-88155状态寄存器格式
2.38155的定时/计数器
TIMERIN接系统时钟时,就变成了定时方式。
在连接外部时,就变成了不同于定时方式的计数方式
定时/计数器的俩个8位的寄存器格式如下:
图1-98位寄存器格式
第三章系统的设计思路
3.1系统设计要求
测试电动机在一分钟内能转多少圈,并且要把它在一分钟内转的圈数通过数字形式在显示器显示出来,要进行多次测量排除阻碍。
3.2系统设计思想
把小圆盘牢牢固定在电动机的旋转轴上,靠近圆周的外侧边粘一块小磁铁同样也不能影响到实验。
在小圆盘旁边与小磁铁的位置相对应的地方,安放一个霍尔传感器芯片切记不能与电动机和小圆盘相碰,要留有空隙间隙不能太大以防止霍尔传感器上的接收器接收不到信号显示器上显示不出数字。
闭合开关电动机开始旋转,圆盘上的小磁铁块跟这圆盘同速旋转,在旋转一周后跟霍尔芯片相遇,霍尔元件将会产生一个信号同样电动机旋转几周霍尔原件就会产生几次连续的信号。
此信号个数完全全胜可以代表电机的转数。
在这里一号定时/计数器做计数器,二号定时/计数器做定时器,信号从计数器T1脚流过一次就记为一圈。
把定时器定时为1秒,计数器复原0,定时器从1秒变成0秒后,系统就会立即发出停止计数器停止计数的信号,计数器收到信号后(时间差可以忽略不记)就立即停止计数,停止计数后计数显示器上的数值也不会随着停止而消失,只会停在当前的数值上,那个数值就是电动机在1秒内所转的圈数。
最后再把得到的数值进行换算变成一分钟所转的圈数。
3.3系统控制电路
直流电机的转速测试电路图(见附录A)
3.4控制电路说明
系统程序启动开关后,高电平从P1.0脚流进去,同时P1.1程序将输出的控制下必须是一个高电平的电动机启动旋转操作,为了保证电动机能够正常的旋转,在电路中加入俩个晶体管放大适定的电流。
当系统程序发出断开指令电动机收到停止指令后,低电平从P1.0脚流进去同时在程序的控制下低电平从P1.1输出,没有了高电平的输出电动机停止旋转。
在直流电机轴上固定一个小圆盘(边缘上粘有小磁铁)。
当圆盘上的小磁铁与霍尔传感器相遇。
霍尔传感器的外部输入插脚1号定时器/计数器T1提供负脉冲信号的跳。
霍尔传感器是通过半导体来充当介质产生电流当外部磁场的方向垂直于电流将产生感生电动势。
单片机的寻址方式来访问外部接口与外部设备。
由于外部接口所使用地址是来自于外部数据存储器,因此它的地址的发出必须从P0口和P2口,P0是低8位P2是高8位。
在图中P0.0地址锁存后,A0收到8155芯片。
虽然P2和P2.7同时收到8155芯片发出的CS,但8155接口芯片地址通常会出现以下两种:
第一种:
0XXXXXXXXXXXXXX1命令或读出地址
第二种:
0XXXXXXXXXXXXXX0读/写的地址
X可以任取0或1比如常见的就有0111111111111111(7FFFH)和0111111111111110(7FFEH)
8155接口芯片发出的指令是第二种地址也就是7FFEH时,8个显示段码的转速数据是通过单片机的P0读入。
8155的复位脚接的是电源复位电路。
速度数据存储在8155内部随机存取存储器(RAM),通过OUTAoOUTA1OUTA2OUTA3和OUTBoOUTB1OUTB2OUTB3引脚输出数字显示。
图中的75451和7404分别是显示器扫描和断码信号的驱动芯片。
图1-10AT89S51引脚图
3.5系统控制程序流程图
系统控制程序流程图(见附录B)
3.6控制程序
系统控制程序如下:
ORG0000H
AJMPMAIN
ORG000BH
AJMPTSEV
ORG0050H
MAIN:
LCALLCLR0
LCALLCLR1
LCALLSHSV
LACLLTISV
SETBP1.0
WRUN:
MOVC,P1.0
JNCWRUN
SETBP1.1
SETBTR0
SETBTR1
HERE:
JNBF0,HERE
MOVA,TL1
MOVB,#3CH
MULAB
MOVR2,A
MOVR3,B
C1000:
CLRC
MOVA,R2
SUBBA,#0E8H
MOVR2,A
MOVA,R3
SUBBA,#03H
MOVR3,A
JCRST0
INC40H
SJMPC1000
RSY0:
MOVA,R2
ADDA,#0E8H
MOVR2,A
MOVA,R3
ADDCA,#03H
MOVR3,A
C100:
CLRC
MOVA,R2
SUBBA,#64H
MOVR2,A
MOVA,R3
SUBBA,#00H
MOVR3,A
JCRST1
INC41H
SJMPC100
RST1:
MOVA,R2
ADDA,#64H
MOVR2,A
C10:
CLRC
MOVA,R2
SUBBA,#0AH
MOVR2,A
JCRST2
INC42H
SJMPMOTS
RST2:
MOVA,R2
ADDA,#0AH
MOV43H,A
MOVDPTR,#TAB
MOVR0,#30H
MOVR1,#40H
MOVR7,#04H
STAB:
MOVA,@R1
MOVCA,@DPTR+A
MOV@R0,A
INCR0
INCR1
DJNZR7,STAB
MOVDPIR,#7FFEH
MOVR0,#30H
MOVR7,#08H
DISP:
MOVA,@R0
MOVX@DPTR,A
INCR0
DJNZR7,DISP
MOVTH0,#00H
MOVC,P1.1
JCCNTN
CLRP1.1
LJMPMAIN
CNTN:
SETBTR1
SETBTR0
CLRF0
ACALLCLR0
LJMPHERE
CLR0:
MOVRO<#40H
MOVR7,#04H
CLR2:
MOV@R0,#00H
DJNZR7,CLR2
RET
CLR1:
MOVR0,#30H
MOVR7,#08H
CLR3:
MOV@R0,#00H
DJNZR7,CLR3
RET
SHSV:
MOVDPTR,#7FFFH
MOVA,#0D1H
WAIT:
MOVXA,@DPTR
JBACC.7,WAIT
MOVA,#34H
MOVX@DPTR,A
MOVA,#90H
MOCX@DPTR,A
RET
TISV:
MOVTMOD,#6H
MOVTL1,#00H
MOVTH0,#0D8H
MOVTL0,#0F0H
MOVR1,#64H
CLRF0
CLRP1.1
SETBET0
SERTBEA
RET
TSEV:
MOVTH0,#0D8H
MOVTL0,#0F0H
DECR1
CJNER1,#00H,END0
SETBF0
CLRTR0
CLRTR1
MOVR1,#64H
END0:
RETI
TAB:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
3.7控制程序说明
在程序输入中,定时器定时10ms;计数器复0从0开始计数;单片机的时钟频率调整为12MHz。
通过R1寄存器中预置控制常数100实现1秒的定时。
定时器每中断一次,中断服务程序将R1中的数据减1.当把它减到0的时候1秒倒计时已到。
于是把用户标志位置1,同时关停定时器和计数器。
在返回主程序之后,每秒电动机的转数即计数器的当前计数值乘以60(1分钟=60秒)来计算电机的每分钟转数。
且把它暂存到高位R3和低位R2寄存器中。
然后把每分钟转数的二进制数转换成4位十进制数。
采用无符号数的双字节减发运算。
对R2和R3寄存器中的数据反复减1000。
直至余下的数值不够减停止减去。
而每次减1000,就将40H单元加1用来作为转换后的千位数。
当R2和R3的余数不够减1000时。
加上1000恢复余数。
不够减的判断依据是看借位是否为1。
用同样的方法当余数不足100的时候采用单字节减法运算。
对于余数R2继续减10。
将够减次数计到42H单元。
作为转换后的十位数。
当余数R0不够减10是。
加10恢复余数之后将其作为转换后的个位数送43H单元。
至此每分钟的电动机转数的4位十进制数依次在40H~43H单元之中,此后可以用查表指令。
查询每位十进制数的显示段码。
分别送30H~33H单元予以保存。
最后通过8155接口芯片把它们送到数码显示器进行显示。
到此整个测试到此结束。
然后检查系统启动开关是否断开。
若已经断开。
则把电机关停。
使程序转到主程序的起始位置等待重新启动。
若任仍然接通。
那么重新启动两个定时器。
并把用户标志位。
1号定时/计数器(TL1)和转速数据单元(40H~43H)清0。
继续下一轮的测试过程。
结论
在直流电机轴上固定一个薄薄的小圆盘不能影响到电动机的运转,靠近圆周的外侧边粘一块小磁铁同样也不能影响到实验。
在小圆盘旁边与小磁铁的位置相对应的地方,安放一个霍尔传感器芯片切记不能与电动机和小圆盘相碰,要留有空隙间隙不能太大以防止霍尔传感器收不到信号,当电动机开始旋转时,圆盘上的小磁铁块在旋转一周后跟霍尔芯片相遇。
霍尔元件将会产生一个负跳变的脉冲冲击信号。
此负跳变脉冲的显示的个数完全可以代表电机的转圈数。
将此脉冲信号。
通过1号定时/计数器的外部输入引脚T1输入到1号定时/计数器并进行计数统计。
因此必须把1号定时/计数器作为计数器使用。
另外。
2号把定时/计数器作为定时器使用俩这不能混合。
且让它定时1秒,把两个定时/计数器同时启动之后,定时/计数器1从0开始记录电机的转数。
当它计到1s的时候。
2号定时/计数器将关停1号定时/计数器同时1号定时/计数器的当前计数值就是电机每秒的转数,把它转换成每分钟的转数之后传送到数码显示器显示。
致谢
在这次的毕业课题设计中,在老师的帮助下设计变得越来越完善,我非常谢谢田磐老师的指导和帮助以及班主任屡次的关心。
有目的的实践远大于冥思苦想。
参考文献
[1]秦龙.MSP430单片机应用系统开发典型实例.中国电力出版社。
2005
[2]崔玮等.Protel99SE电路原理图与电路板设计教程.海洋出版社。
2005
[3]杨帮文.新型继电器实用手册.人民邮电出版社。
2004
[4]沙占友.单片机外围电路设计.电子工业出版社。
2003
[5]朱善君.单片机接口技术与应用.清华大学出版社。
2005
[6]骆新全.电路仿真与PCB设计.北京航空航天大学出版社。
2004
[7]李刚、林凌、姜苇。
51系列单片机系统设计与应用技巧。
北京航空航天大学出版社,2004
[8]冯建华、赵亮。
单片机应用系统设计与产品开发。
人民邮电出版社。
2004
[9]李铁才、杜坤梅。
电机控制技术。
哈尔滨工业大学出版社。
2000
[10]丁元杰单片微机原理及应用(第2版)。
机械工业出版社。
1999
附录A
直流电机的转速测试电路图
附录B
系统控制程序流程图