




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文基于AT89S51直流电机的转速测试系统系 名: 电子与信息系 专业班级: 电子W04 目录第一章 引言4第二章本系统的芯片功能介绍5第三章 本系统的设计思路153.1系统的设计要求15 3.2系统设计思想15 3.3系统控制电路15 3.4控制电路说明16 3.5系统控制程序流程图173.6控制程序18 3.7控制程序说明24总结25致谢26参考文献27附录A28附录B2931基于AT89S51直流电机的转速测试系统 摘要:本设计主要完成以AT89S51单片机为核心的直流电机的测速系统,该系统包括速度给定、速度显示、速度测量和速度控制。利用在直流电机固定小磁铁,在对应位置上再加一霍尔传感器把直流电机的转速进行测量显示,利用8279专用芯片显示速度,并且可以连续测量。关键词:直流电机;单片机;转速测量AT89S51-based DC motor speed test system机的调速系统。该系统包括速度给定、速度显示、速度测量和速度控制。论文主要介绍了基于单片机用PWMAbstract:A speed governing system of DC- motor by using AT89S51 microcontroller is introduced .The system includes the setting of speed,the displaying of speed,the measurement of speed and the control of speed. This paper introduces a kind of method Of DC-motor speed modification based on PWM theory by the SCM. Showing some relative knowledge upon the DC-motor timing,the basic theory and the way to implement. And it emphasizes on the way for carrying out PWM signals based on MCS-51.This paper still provides a method for modifying the speed of DC-motor by way of time by software. It offers a sort of efficient method for the DC-motor Speed-controlling system.Keyword: DC-motor, Microcontroller, Measurement of rotating speed第一章 引言单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。 单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。由于单片机的这种结构形式及它所采取的半导体工艺,使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展。单片机主要如下特点:(1)有优异的性能价格比。 (2)集成度高、体积小、有很高的可靠性。(3)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。 (4)低功耗、低电压,便于生产便携式产品。 (5)外部总线增加了I C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。 (6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。第二章 本系统的芯片功能介绍AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS -51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个 全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断 系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三 种封装形式,以适应不同产品的需求。 主要功能特性: 兼容MCS-51指令系统 4k可反复擦写(1000次)ISP Flash ROM 32个双向I/O口 4.5-5.5V工作电压 2个16位可编程定时/计数器 时钟频率0-33MHz 全双工UART串行中断口线 128x8bit内部RAM 2个外部中断源 低功耗空闲和省电模式 中断唤醒省电模式 3级加密位 看门狗(WDT)电路 软件设置空闲和省电功能 灵活的ISP字节和分页编程 双数据寄存器指针AT89S51的结构图: 图1-1图1-2单片机实际有效的引脚为个,常用的有种封装形式,其引脚图可参见图- :()为 (-)封装形式,这是普通脚塑封双列直插形式;()为 ()封装形式,这种形式是具有个“” 形脚(其中有个是空脚)的方型芯片,使用时需要插入到与其相配的方型插座中。 图1-3个引脚大致可分为类:电源、时钟、控制和 引脚。其逻辑图如图- 所示。 图- 1. 8155各引脚功能说明如下:RST:复位信号输入端,高电平有效。复位后,3个I/O口均为输入方式。AD0AD7:三态的地址/数据总线。与单片机的低8位地址/数据总线(P0口)相连。单片机与8155之间的地址、数据、命令与状态信息都是通过这个总线口传送的。:读选通信号,控制对8155的读操作,低电平有效。:写选通信号,控制对8155的写操作,低电平有效。:片选信号线,低电平有效。IO/:8155的RAM存储器或I/O口选择线。当IO/0时,则选择8155的片内RAM,AD0AD7上地址为8155中RAM单元的地址(00HFFH);当IO/1时,选择 8155的I/O口,AD0AD7上的地址为8155 I/O口的地址。ALE:地址锁存信号。8155内部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及,IO/的状态都锁存到8155内部锁存器。因此,P0口输出的低8位地址信号不需外接锁存器。PA0PA7:8位通用I/O口,其输入、输出的流向可由程序控制。PB0PB7:8位通用I/O口,功能同A口。PC0PC5:有两个作用,既可作为通用的I/O口,也可作为PA口和PB口的控制信号线,这些可通过程序控制。TIMER IN:定时/计数器脉冲输入端。TIMER OUT:定时/计数器输出端。VCC:5V电源。2、8155的地址编码及工作方式在单片机应用系统中,8155是按外部数据存储器统一编址的,为16位地址,其高8位由片选线提供,0,选中该片。当0,IO/0时,选中8155片内RAM,这时8155只能作片外RAM使用,其RAM的低8位编址为00HFFH;当0,IO/1时,选中8155的I/O口,其端口地址的低8位由AD7AD0确定,如表1-5所示。这时,A、B、C口的口地址低8位分别为01H、02H、03H(设地址无关位为0)。表1-5 8155芯片的I/O口地址AD7AD0选择I/O口A7A6A5A4A3A2A1A0000011001100010101命令/状态寄存器A口B口C口定时器低8位定时器高6位及方式8155的A口、B口可工作于基本I/O方式或选通I/O方式。C口可工作于基本I/O方式,也可作为A口、B口在选通工作方式时的状态控制信号线。当C口作为状态控制信号时,其每位线的作用如下:PC0:AINTR(A口中断请求线)PC1:ABF(A口缓冲器满信号)PC2:(A口选通信号)PC3:BINTR(B口中断请求线)PC4:BBF(B口缓冲器满信号)PC5:(B口选通信号)8155的I/O工作方式选择是通过对8155内部命令寄存器设定控制字实现的。命令寄存器只能写入,不能读出,命令寄存器的格式如图1-6所示。在ALT1ALT4的不同方式下,A口、B口及C口的各位工作方式如下:ALT1:A口,B口为基本输入/输出,C口为输入方式。ALT2:A口,B口为基本输入/输出,C口为输出方式。ALT3:A口为选通输入/输出,B口为基本输入/输出。PC0为AINTR,PC1为ABF,PC2为,PC3PC5为输出。ALT4:A口、B口为选通输入/输出。PC0为AINTR,PC1为ABF,PC2为,PC3为BINTR,PC4为BBF,PC5为。图1-6 8155命令寄存器格式8155内还有一个状态寄存器,用于锁存输入/输出口和定时/计数器的当前状态,供CPU查询用。状态寄存器的端口地址与命令寄存器相同,低8位也是00H,状态寄存器的内容只能读出不能写入。所以可以认为8155的I/O口地址00H是命令/状态寄存器,对其写入时作为命令寄存器;而对其读出时,则作为状态寄存器。状态寄存器的格式如图1-7所示。图1-7 8155状态寄存器格式3、8155的定时/计数器8155内部的定时/计数器实际上是一个14位的减法计数器,它对TIMER IN端输入脉冲进行减1计数,当计数结束(即减1计数“回0”)时,由TIMER OUT端输出方波或脉冲。当TIMER IN接外部脉冲时,为计数方式;接系统时钟时,可作为定时方式。定时/计数器由两个8位寄存器构成,其中的低14位组成计数器,剩下的两个高位(M2,M1)用于定义输出方式。其格式如下:第三章 本系统的设计思路3.1 系统设计要求启动点击并测试他的每分钟转数,然后把测试结果随时显示在数码显示器上,且进行连续测试。3.2 系统设计思想在直流电机轴上固定一个小圆盘,圆盘的外侧,靠近圆周的位置上粘贴一块小磁铁。紧挨着圆盘外侧,正对着小磁铁的位置,安放一个霍尔传感器芯片。当电机旋转一圈,使圆盘上的小磁铁跟霍尔芯片相遇时,霍尔元件将产生一个负跳变的脉冲信号。此负跳变脉冲的个数完全可以代表电机的转数。将此脉冲信号,通过定时/计数器1的外部输入引脚T1输入到定时/计数器1并进行计数。因此必须把定时/计数器1作为计数器使用。另外,把定时/计数器0作为定时器使用,且让它定时1s。把两个定时/计数器同时启动之后,定时/计数器1从0开始记录电机的转数,当它计到1s的时候,定时/计数器0将关停定时/计数器1. 此时定时/计数器1的当前计数值,正是电机每秒的转数。把它转换成每分钟的转数之后送数码显示器显示。3.3 系统控制电路直流电机的转速测试电路图 (见附录A)3.4 控制电路说明 当系统启动开关S接通后,P1.0引脚输入高电平。此时,在程序的控制下P1.1引脚将输出高电平。于是两个晶体管导通使电机旋转。由于电机的旋转需要足够的电流,因此用两个晶体管进行电流放大。 当开关S断开时,P1.0引脚输入低电平。此时P1.1引脚将输出低电平。于是两个晶体管同时截止,电机便停止旋转。由于电机是一个电感元件,因此当他由导通突然变截止时,内部产生很大的反向电动势会把晶体击穿。为了保护晶体管,电机的两端跨接一个续流二极管,是使反向电动势通过它进行释放。 在电机轴上装有一个小圆盘,它跟电机同步旋转。当圆盘上的小磁铁与霍尔传感器相遇时,霍尔传感器给定时/计数器1的外部输入引脚T1提供提供负跳变的脉冲信号。霍尔传感器的工作机理是:当通有电流的半导体材料上作用外磁场时,与电流垂直方向将产生一个感应电动势。 单片机与外部设备的联系是通过以通过寻址的方式访问外部接口来实现的,由于外部接口所使用的是外部数据存储器的地址,因此它的地址必须由单片机的P0和P2口来发出。其中,P0口发出的是接口地址的低8位,而P2口发出的是接口地址的高8位。在图中,P0口的P0.0位地址经锁存器之后,接到8155芯片的A0引脚上;而P2口的P2.7位地址则接到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单片机的内部程序储存器中,因此必须把单片机的EA引脚街上高电平 因为显示器将采用编码扫描方式,故8155的扫描信号CSoSC2必须进行外部译码(74LS138)。 存储在8155内部RAM的转速数据的8位显示断码,通过OUTAoOUTA3和OUTBoOUTB3引脚输出到数码显示器。图中,75451和7404分别是显示器扫描和断码信号的驱动芯片。AT89S51引脚图3.5 系统控制程序流程图系统控制程序流程图 (见附录B)3.6 控制程序系统控制程序如下: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 P1.0 ;P1.0口读引脚准备WRUN: MOV C,P1.0 ;读启动开关状态 JNC WRUN ;等待启动 SETB P1.1 ;启动电机 SETB TR0 ;启动定时/计数器0 SETB TR1 ;启动定时/计数器1HERE: JNB F0,HERE ;等待中断 MOV A,TL1 ;测试结束,将每秒转数送A MOV B,#3CH ;60秒送B MUL AB ;计算每分钟转数 MOV R2,A ;每分钟转数的低8位数据送R2 MOV R3,B ;每分钟转数的高8位数据送R3C1000: CLR C ;计算每分钟转数的千位十进制数 MOV A,R2 ;从每分钟转数中反复减1000,计算千位数(双 字节减算) SUBB A,#0E8H MOV R2,A MOV A,R3 SUBB A,#03H MOV R3,A JC RST0 ;不够减转 INC 40H ;每分钟转数的千位十进制数存40H单元 SJMP C1000 ;够减数,继续减1000RSY0: MOV A,R2 ;不够减,则加1000恢复余数 ADD A,#0E8H MOV R2,A MOV A,R3 ADDC A,#03H MOV R3,AC100: CLR C ;计算每分钟转数的百位十进制数 MOV A,R2 ;从余数中反复减100,计算百位数(双字节减算) SUBB A,#64H MOV R2,A MOV A,R3 SUBB A,#00H MOV R3,A JC RST1 ;不够减转 INC 41H ;每分钟转数的百位十进制数存41H单元 SJMP C100 ;够减转,继续减100RST1: MOV A,R2 ;不够减,则加100恢复余数 ADD A,#64H MOV R2,AC10: CLR C ;计算每分钟转数的十位十进制数 MOV A,R2 :从余数中反复减10,计算十位数(单字节减算)SUBB A,#0AH MOV R2,A JC RST2 ;不能够减转 INC 42H ;每分钟转数的十位十进制数存42H单元 SJMP MOTS ;够减转,继续减10RST2: MOV A,R2 ;不够减,则加10恢复余数 ADD A,#0AH MOV 43H,A ;每分钟转数的个位十进制数存43H单元 MOV DPTR,#TAB ;显示器段码表首地址送DPTR MOV R0,#30H ;每分钟转数的段码表首地址送R0 MOV R1,#40H ;每分钟转数的十进制数首地址送R1 MOV R7,#04H ; 每分钟转数的十进制位数送R7STAB: MOV A,R1 ;每分钟转数的4位十进制数转显示段码区 MOVC A,DPTR+A ;从段码表中寻找与个位数所对应的显示段码 MOV R0,A ;将各位的段码送段码缓冲区 INC R0 ;段码缓冲区地址增1 INC R1 ;转速数据区地址增1 DJNZ R7,STAB ;4个段码的传送控制 MOV DPIR,#7FFEH ;8155芯片的A0位清0,准备写数据MOV R0,#30H MOV R7,#08HDISP: MOV A,R0 ;从段码缓冲区中取段码 MOVX DPTR,A INC R0 DJNZ R7,DISP MOV TH0,#00H MOV C,P1.1 JC CNTN CLR P1.1 LJMP MAINCNTN: SETB TR1 ;启动定时/计数器0 SETB TR0 CLR F0 ACALL CLR0 LJMP HERECLR0: MOV RO#40H ;清0转速数据的4位十进制单元(40H43H) MOV R7,#04HCLR2: MOV R0,#00H DJNZ R7,CLR2 RETCLR1: MOV R0,#30H ;清0转速数据的8位十进制单元(30H33H) MOV R7,#08HCLR3: MOV R0,#00H DJNZ R7,CLR3 RETSHSV: MOV DPTR,#7FFFH ;将8155芯片的Ao位置1,位发命令和读状态做准备 MOV A,#0D1H ;清0显示器WAIT: MOVX A,DPTR ;读显示器清0状态 JB ACC.7,WAIT MOV A,#34H MOVX DPTR,A MOV A,#90H MOCX DPTR,A RETTISV: MOV TMOD,#6H ;设定定时/计数器0和1的工作方式分别为方式1和2 MOV TL1,#00H MOV TH0,#0D8H MOV TL0,#0F0H MOV R1,#64H CLR F0 CLR P1.1 SETB ET0 SERTB EARETTSEV: MOV TH0,#0D8H MOV TL0,#0F0H DEC R1 ;中断次数减1 CJNE R1,#00H,END0 SETB F0 CLR TR0 CLR TR1 MOV R1,#64HEND0: RETI ;中断返回TAB: DB 3FH,06H,5BH,4FH,66H ;断码表,09的段码按字节顺序排列 DB 6DH,7DH,07H,7FH,6FH3.7控制程序说明在程序中,定时/计数器0定时10ms;定时/计数器1从0开始计数;单片机的时钟频率为12MHz。为了实现1s的定时目的R1寄存器中预置控制常数100。定时/计数器0每中断一次,中断服务程序将R1数据减1.当把它减到0的时候1s时间已到,于是把用户标志位置1,同时关停两个定时/计数器。返回主程序之后,定时/计数器1的当前计数值(每秒转数)乘以60,计算电机的每分钟转数,且把它暂存到R3(高位)和R2(低位)寄存器中。然后为了把每分钟转数的二进制数转换成4位十进制数,采用无符号数的双字节减发运算,对R2和R3寄存器的数据反复减1000,直至不够减时为止。而每次减1000,将40H单元加1,作为转换后的千位数。当R2和R3的余数不够减1000时,加上1000恢复余数。不够减的判断依据是看借位位是否为1。用同样的方法,对余数R2和R3继续减100,将够减次数计到41H单元,作为转换后的百位数。当余数不足100的时候采用单字节减法运算,对于余数R2继续减10,将够减次数计到42H单元,作为转换后的十位数。当余数R0不够减10是,加10恢复余数之后将其作为转换后的个位数送43H单元。至此每分钟转数的4位十进制数依次在40H43H单元之中。此后用查表指令,查询每位十进制数的显示段码,分别送30H33H单元予以保存。最后通过8155接口芯片把它们送到数码显示器进行显示。到此整个测试到此结束。然后检查系统启动开关是否断开。若已经断开,则把电机关停,使程序转到主程序的起始位置等待重新启动。若任仍然接通,那么重新启动两个定时器,并把用户标志位,定时/计数器1(TL1)和转速数据单元(40H43H)清0,继续下一轮的测试过程。结 论本系统主要以单片机(AT89S51)为主要控制、计算芯片。当系统启动开关S接通后,P1.0引脚输入高电平。此时,在程序的控制下P1.1引脚将输出高电平。于是两个晶体管导通使电机旋转。由于电机的旋
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全教育:家长会的责任与行动指南
- 生产部年终工作总结汇报
- 新型专利转让协议书(2篇)
- 安全生产培训大纲
- 2024年9月超长跨度T梁运输通道租赁安全评估
- 瑞吉欧的教育
- 法治教育:护航学法伴我成长
- 2024年5月墙体广告内容区块链存证技术条款
- 2024年三月移动式厨房蓄电池防火防爆标准
- 管理层提升培训课件
- GB/T 17879-1999齿轮磨削后表面回火的浸蚀检验
- GA 61-2010固定灭火系统驱动、控制装置通用技术条件
- 简明大学物理电子版
- 脊柱弯曲异常筛查结果记录表
- 公路工程结算表
- 举升机每日维护检查表
- 质量目标及计划分解表
- 《信息化教学评价》
- 蹲踞式跳远教案
- 三相异步电动机的速度控制
- 供电所线损的基本概念和管理
评论
0/150
提交评论