论文基于单片机的智能摇头风扇控制系统的设计_第1页
论文基于单片机的智能摇头风扇控制系统的设计_第2页
论文基于单片机的智能摇头风扇控制系统的设计_第3页
论文基于单片机的智能摇头风扇控制系统的设计_第4页
论文基于单片机的智能摇头风扇控制系统的设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计报告课题:基于单片机的智能摇头风扇控制系统的设计系 部:机电工程系专 业:机电一体化班 级:机电062姓 名:马 元学 号:0602043129指导老师:汪倩倩2009424目 录摘要 1Abstract2第一章 序言 31.1 分析现状31.2 智能摇头风扇系统的简介31.3 本章小结3第二章 系统硬件设计 42.1 系统总框图42.2 单片机的选型4 STC89C52RC单片机内部构4 STC89C52RC的引脚明6 STC89C52原理图82.3 AD芯片的选型8 ADC0804简介 8 ADC0804原理图 102.4 E2PROM芯片的选型112.4.1 AT24C02简介

2、11 I2C总线工作理11 E2PROM原理图 132.5 液晶显示器的选型13 管脚功能13 操作控制 13 字符集14 指令集 14 控制器时序说明152.6 步进电机驱动芯片的选型 16 TA8435简介 16 TA8435细分工作原理 18 TA8435原理图 182.7 步进电机简介 192.8 本章小结 20第三章 系统软件设计213.1 系统总体的软件流程图 213.2 AD芯片程序 213.3 1602液晶程序 223.4 TA8435芯片程序 243.5 EEPROM芯片程序 243.6 本章小结 27第四章 系统的安装与调试284.1 系统硬件的安装与调试28系统硬件的安装

3、28 系统硬件的调试294.2 系统软件的调试29 编译软件keil uvision简介294.2.2 系统软件程序的调试304.3 本章小结 30结束语31谢辞32参考文献33附录1 原理图34附录2 PCB图35基于单片机的智能摇头控制系统风扇设计摘要:现在市场上的许多风扇都有摇头功能,但是摇头的角度是90度固定不变的,而有时候人们希望风扇摇头的角度可以调节,摇头的速度可以调节,这时候原来固定摇头角度的风扇就不能满足人们的需要。本次毕业设计针对这个问题,提出了设计一个可以调节电风扇摇头角度,并且可以调节电风扇的摇头速度的智能摇头风扇。这个装置做好之后还可以应用到比如太阳能采光板的跟踪采光系

4、统、园林的智能灌溉系统等其他应用领域中。本课题设计的思路是:先用AD芯片采集电位器的模拟量,通过AD芯片把模拟量转换为对应的数字量,即设定的风扇摇头角度,并在液晶上显示出来。然后STC89C52RC单片机通过这些数字量来控制步进电机驱动芯片TA8435,最后由TA8435来控制步进电机旋转角度,使风扇能够在设定的角度范围(0度到360度)内摇头,同时通过控制电机的频率,从而控制电机摇头的速度。本设计还使用了E2 PROM对预设角度值,摇头速度的断电保存。关键词:单片机 风扇 摇头 步进电机The design of fans intelligent control system based o

5、n MCUAbstract:Many fans on the market have a function of shaking heads,but the angle of shaking heads is fixed at 90 degrees.Sometimes,people hope that a fan can be ajusted its revolving angle range and revolving speed freely, now many fans on the market will not be able to meet the needs of the peo

6、ple. Addressed this issue, an intelligent fan which can be ajusted its revolving angle range and revovling speed is proposed.And this equipment also can be applied to lighting such as solar panels to track lighting systems,garden irrigation systems and other intelligent applications.The idea of the

7、design issues are : first,the analog signals from potentiometer input to AD chip, and then through AD chip, analog signal is converted to digital signal,and this digital signal is also the perspective revolving angle displayed on the LCD. Second, STC89C52RC controles stepping motor driver IC TA8435

8、through digital signal from AD,and then the fan shaking its head rotates at setted angle( 0 degree to 360 degree) under the control of TA8435 stepper motor driver,at the same time it rotates at setted speed under the control of frequency. At last, the design can preserve the revolving angle range an

9、d the revolving speed by E2 PROM if the power is off.Key words: MCU fan Shaking head Stepping Motor第一章 序 言1.1 分析现状随着社会的发展,人们的生活水平也逐渐提高。电扇是人们最常用的家电之一,虽然科技在日益发展,但是电扇的发展速度却显得十分的缓慢。虽然家电厂商们都推出了许多所谓的数字电扇,但是那些电扇也只加入了自然风和定时这一些功能,没有去改变摇头的功能。其实摇头对于风扇是十分重要的,单人扇风扇和多人扇风扇的角度需要改变,这样能更好的利用资源。1.2 智能摇头风扇系统的简介本系统使用步进电

10、机作为传动的主要部件,然后使用51单片机作为控制核心,从而来控制步进电机的旋转角度。在输入方面,本系统使用了一个8位的AD芯片,用于采集旋阻上面的电压变换值。在显示方面,本系统采用1602液晶,从而能更直接的看出旋转的角度和旋转频率。在步进电机的控制方面,本系统使用了东芝公司的TA8435步进电机驱动芯片,他是一款大功率驱动芯片,目前主要应用在雕刻机上面,因此能够足以提供步进电机所需要的功率。步进电机采用57型步进电机,它的步进角度是1.8度,能够精确的提供旋转角度。1.3 本章小结本章主要介绍了智能摇头风扇的工作原理以及摇头风扇的基本结构,并且对所使用的元器件也进了一些简单的说明。第二章 系

11、统硬件设计21 系统总框图AD芯片用于输入角度以及频率的数值E2PROM芯片用于断电后保存输入的角度和频率数值1602液晶用于显示角度值以及频率值TA8435步进电机芯片用于控制步进电机的旋转角度以及旋转频率图2-1 系统框架图本系统先用AD芯片采集电位器的模拟量作为输入角度值,然后使用STC89C52单片机处理AD芯片转换的数字量,最后来控制步进电机旋转角度,使风扇能够进行任意角度的摇头。1602液晶能显示两行共16个字符,用于显示输入角度以及频率的数值。EEPROM用于保存断电后的角度以及旋转频率的数值。1x4键盘用于切换各种运行状态。另外系统的原理图见附录1。22 单片机的选型 STC8

12、9C52RC单片机内部结构STC89C52RC是MCS-51系列单片机的加强版,我们以这一代表性的机型进行系统的讲解。8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址

13、的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图2-2 8051内部结构程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作

14、异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则

15、采用普林斯顿结构。下图是51系列单片机的内部结构示意图图2-3 51单片机结构框图 STC98C52的引脚说明STC98C52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:如图2-4图2-4 引脚功能图Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3

16、输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位,见下图2-5。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。 图2-5 复位电路图Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否

17、工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EEPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存

18、储器的8031,EA端必须接地。在编程时,EA/Vpp脚还需加上21V的编程电压。 STC89C52原理图图2-6 STC89C52原理图P0口内部由于没有上拉电阻,因此要在P0口加上10K的上拉电阻。使用12MHZ的晶振,外加2个30P的陶瓷电容协振。2.3 AD芯片的选型 ADC0804简介ADC0804是用CMOS集成工艺制成的逐次比较型摸数转换芯片。分辨率8位,转换时间100s,输入电压范围为05V,增加某些外部电路后,输入模拟电压可为 5V。该芯片内有输出数据锁存器,当与计算机连接时,转换电路的输出可以直接连接在CPU数据总线上,无须附加逻辑接口电路。ADC0804芯片外引脚图如图2

19、-7所示。引脚名称及意义如下: 图2-7 ADC0804芯片外引脚图ADC0804的两模拟信号输出端,用以接受单极性、双极性和差摸输入信号。 A/D转换器数据输出端,该输出端具有三态特性,能与微机总线相接。 AGND:模拟信号地DGND:数字信号地CLKIN:外电路提供时钟脉冲输入端。 CLKR:内部时钟发生器外接电阻端,与CLKIN端配合可由芯片自身产生时钟脉冲,其频率为1/1.1RC。 CS:片选信号输入端,低电平有效,一旦CS有效,表明A/D转换器被选中,可启动工作。WR:写信号输入,接受微机系统或其它数字系统控制芯片的启动输入端,低电平有效,当CS、WR同时为低电平时,启动转换。 RD

20、:读信号输入,低电平有效,当CS、RD同时为低电平时,可读取转换输出数据。 INTR:转换结束输出信号,低电平有效。输出低电平表示本次转换已完成。该信号常作为向微机系统发出的中断请求信号。 在使用时应注意以下几点: (1)转换时序 CSWR内部转换状态INTR上次资料已被读取上次资料未被读取转换完成准备转换TW=100nSTWI8/F内部转换时间TCLK/2300nS450nSCSWRINTRTW=100nSTWI8/FTCLK/2300nS450nSADC0804控制信号的时序图如图2-8所示,由图可见各控制信号时序关系为:当CS与WR同时为低电平A/D转换器被启动切在WR上升沿后100 模

21、数完成转换,转换结果存入数据锁存器,同时,INTR自动变为低电平,表示本次转换已结束。如CS、RD同时来低电平,则数据锁存器三态门打开,数字信号送出,而在RD高电平到来后三态门处于高阻状态。INTRCSRDDB7DB0TRI=300nS450nSTACC135nS200nSTIH,TOH=125nS200nS三态注INTRCSRDDB7DB0TRI=300nS450nSTACC135nS200nSTIH,TOH=125nS200nS图2-8 转换时序(2)零点和满刻度调节ADC0804的零点无须调整。满刻度调整时,先给输入端加入电压 ,使满刻度所对应的电压值是,其中是输入电压的最大值,是输入电

22、压的最小值。当输入电压与值相当时,调整端电压值使输出码为FEH或FFH。 (3)参考电压的调节 在使用A/D转换器时,为保证其转换精度,要求输入电压满量程使用。如输入电压动态范围较小,则可调节参考电压 ,以保证小信号输入时ADC0804芯片8位的转换精度。(4)接地 模数、数模转换电路中要特别注意到地线的正确连接,否则干扰很严重,以至影响转换结果的准确性。A/D、D/A及取样保持芯片上都提供了独立的模拟地(AGND)和数字地(DGND)的引脚。在线路设计中,必须将所有的器件的模拟地和数字地分别连接,然后将模拟地与数字地仅在一点上相连。 ADC0804原理图图2-9 ADC0804原理图C1与R

23、7组成RC震荡电路,给芯片提供动力。R8用于第六管脚的限流。R3与R4组成分压系统,为第九管脚提供内部对比电压。2.4 E2PROM芯片的选型 AT24C02简介AT24C02是由ATMEL公司提供的,I2C总线串行E2PROM,其容量为1KB,工作电压在1.8V5.5V之间,生产 工艺是CMOS工艺,其引脚如图2-10所示。图2-10 AT24C02引脚图各引脚功能如下:A2A0:这3个引脚是器件地址选择引脚。将这3个引脚配置成不同的编码值,在同一串行总线上最多可扩充8片同一容量或不同容量的24系列串行E2PROM芯片。SDA:串行数据输入输出口,是一个双向的漏极开路结构的引脚,容量扩展时可

24、以将多片24系列的SDA引脚直接相连,实际使用时该引脚必须接一个5.1k的上拉电阻。SCL:串行移位时钟控制端。写入时上升沿起作用,读出时下降沿起作用。TEST:硬件写保护控制引脚。当其为低电平时,正常写操作,高电平时,对E2PROM部分存储区域提供硬件写保护功能,即对被保护区域只能读不能写。GND:接地VCC:接+5V电压 I2C总线工作原理I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。图2-11 时序图起始和终止信号 :SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;S

25、CL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。数据传送格式(1)字节传送与应答。图2-12 字传送与应答图每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据。 AT24C02的芯片地址如下图,1010为固定,A0,A1,A2正好与芯片的1,2,3引角对应,为当前电路中的地址选择线,三根线可选择8个芯片同时连接在电路中,当要与哪个芯片通信时传送相应的地址即可与该芯片建立连接,。最后一位R/W为告诉从机下一字节数据是要读还是写,0为写入

26、,1为读出。图2-10 AT24C02的芯片地址(0xa0为写,0xa1为读)2.4.3 E2PROM原理图图2-13 E2PROM原理图图2-13 为E2PROM原理图,R1与R2为上拉电阻。2.5 液晶显示器的选型1602液晶介绍工业字符型液晶,能够同时显示16x02即32个字符。(16列2行) 管脚功能1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存

27、器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。 操作控制表2-1 操作控制表操作读状态写指令读数据写数据输入RS=0,RW=1,E=1RS=0,RW=0,D07=指令码,E=H脉冲RS=1,RW=1,E=1RS=1,RW=0,D07=数据,E=H脉冲 液晶显示芯片的操作控制表如表2-1所示。 字符集1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这

28、些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如“A”。 指令集1602通过D0D7的8位数据端传输数据和指令。显示模式设置:(初始化)00110000 0x38 设置16×2显示,5×7点阵,8位数据接口;显示开关及光标设置:(初始化)00001DCBD显示(1有效)、C光标显示(1

29、有效)、B光标闪烁(1有效)000001NSN=1(读或写一个字符后地址指针加1 &光标加1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1且N=1(当写一个字符后,整屏显示左移)s=0当写一个字符后,整屏显示不移动表2-2 16进制ASCII码表地址读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。 数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)。其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。2

30、.5.5 控制器时序说明(1)读操作时序图2-14 读操作时序图(2)写操作时序图2-15 写操作时序图(3)时序参数表2-3 时序参数表时序参数符号极限值单位测试条件最小值典型值最大值E信号周期tc400ns引脚EE脉冲宽度tpw150nsE上升沿/下降沿时间tR,tF25ns地址建立时间tSP130ns引脚E、RS、R/W地址保持时间tHD110ns数据建立时间(读操作)tD100ns引脚DB0DB7数据保持时间(读操作)tHD220ns数据建立时间(写操作)tSP240ns数据保持时间(谢操作)tHD210ns2.6 步进电机驱动芯片的选型 TA8435简介 TA8435是东芝公司生产的

31、单片正弦细分二相步进电机驱动专用芯片,该芯片具有以下特点:图2-16 TA8435内部结构图1、主要特点 TA8435是东芝公司生产的单片正弦细分二相步进电机驱动专用芯片,它可以驱动二相步进电机,且电路简单,工作可靠。该芯片还具有以下特点:工作电压范围宽(10V40V);输出电流可达1.5A平均和2.5A峰值;具有整步、半步、1/4细分、1/8细分运行方式可供选择;采用脉宽调制式斩波驱动方式;具有正/反转控制功能;带有复位和使能引脚;可选择使用单时钟输入或双时钟输入。 从图2-16中可以看出,TA8435主要由1个解码器,2个桥式驱动电路、2个输出电流控制电路、2个最大电流限制电路、1个斩波器

32、等功能模块组成。2、引脚功能 TA8435采用ZIP25封装形式,图2-17为其引脚排列图。各引脚功能如下: 脚1(S-GND):信号地; 脚2(RESET):复位端,低电平有效,当该端有效时,电路复位到起始状态,此时在任何激励方式下,输出各相都置于它们的原点; 引脚3(ENABLE):使能端,低电平有效;当该端为高电平时电路处于维持状态,此时各相输出被强制关闭; 引脚4(OSC):该脚外接电容的典型值可决定芯片内部驱动级的斩波频率(15KHZ80KHZ),计算公式为:FOSC1/5.15×COSC 式中,COSC的单位为F FOSC的单位为KHZ。 脚5(CW/CCW):正、反转控

33、制引脚; 脚6、7(CK2、CK1):时钟输入端,可选择单时钟输入;或双时钟输入,最大时钟输入频率为5KHZ; 脚8、9(M1 M2):选择激励方式,00表示步进电机工作在整步方式,10为半步方式,01为1/4细分方式,11为1/8细分方式; 脚10(REF IN):VNF输入控制,接高电平时VNF为0.8V,接低电平时VNF为0.5V; 脚11(MO):输出监视,用于监视输出电流峰值位置; 脚13(VCC):逻辑电路供电引脚,一般为5V; 图2-17 引脚排列图脚15、24(VMB、VMA):B相和A相负载电源端; 脚16、19( B、B-):B相输出引脚; 脚17、22(PG-B、PG-A

34、):B相和A相负载地; 脚18、21(NFB、NFA):相和相电流检测端,由该引脚外接电阻和REF-IN引脚控制的输出电流为:IOVNF/RNF; 脚20、23(A、A-):A相输出引脚。 TA8435细分工作原理 在图2-18中,第一个CK时钟周期时,解码器打开桥式驱动电路,电流从VMA流经电机的线圈后经RNFA后与地构成回路,由于线圈电感的作用,电流是逐渐增大的,所以RNFB上的电压也随之上升。当RNFB上的电压大于比较器正端的电压时,比较器使桥式驱动电路关闭,电机线圈上的电流开始衰减,RNFB上的电压也相应减小;当电压值小于比较器正向电压时,桥式驱动电路又重新导通,如此循环,电流不断的上

35、升和下降形成锯齿波,其波形如图3中IA波形的第1段,另外由于斩波器频率很高,一般在几十KHz,其频率大小与所选用电容有关,在OSC作用下,电流锯齿波纹是非常小的,可以近似认为输出电流是直流。在第2个时钟周期开始时,输出电流控制电路输出电压Ua达到第2阶段,比较器正向电压也相应为第2阶段的电压,因此,流经步进电机线圈的电流从第1阶段也升至第二阶段2,电流波形如图IA第2部分,第3时钟周期,第4时钟周期TA8435的工作原理与第1、2是一样的,只有又升高比较器正向电压而已,输出电流波形如图IA中第3、4部分。如此最终形成阶梯电流,加在线圈B上的电流,如图2-18中IB。在CK一个时钟周期内,流经线

36、圈A和线圈B的电流共同作用下,步进电机运转一个细分步。图2-18 细分工作原理图 TA8435原理图图2-19 TA8435驱动步进电机原理图图2-19为TA8435驱动步进电机原理图,R16与R17为2W大功率电阻。2.7 步进电机简介步进电动机是纯粹的数字控制电动机,它将电脉冲信号转变为角位移,即给一个脉冲,步进电机就转一个角度,因此非常合适单片机控制,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,电机则转过一个步距角,同时步进电机只有周期性的无累积误差,精度高。 步进电动机有如下特点: 1)步进电动机的角位移与输入脉冲数严格成正比。因此,当

37、它转一圈后,没有累计误差,具有良好的跟随性。 2)由步进电动机与驱动电路组成的开环数控系统,既简单、廉价,又非常可靠,同时,它也可以与角度反馈环节组成高性能的闭环数控系统。 3)步进电动机的动态响应快,易于启停、正反转及变速。 4)速度可在相当宽的范围内平稳调整,低速下仍能获得较大转距,因此一般可以不用减速器而直接驱动负载。 5)步进电机只能通过脉冲电源供电才能运行,不能直接使用交流电源和直流电源。 6)步进电机存在振荡和失步现象,必须对控制系统和机械负载采取相应措施。 步进电机具有和机械结构简单的优点, 图2-20是四相六线制步进电机原理图,这类步进电机既可作为四相电机使用,也可以做为两相电

38、机使用,使用灵活,因此应用广泛。 图2-20 步进电机原理图表2-4 表2-5时序ABAB1000120011300104011050100611007100081001时序AAAB11001200113011041100 步进电机有两种工作方式:整步方式和半步方式。以步进角1.8度四相混合式步进电机为例,在整步方式下,步进电机每接收一个脉冲,旋转1.8度,旋转一周,则需要200个脉冲,在半步方式下,步进电机每接收一个脉冲,旋转0.9度,旋转一周,则需要400个脉冲。控制步进电机旋转必须按一定时序对步进电机引线输入脉冲,以上述四相六线制步进电机为例,其半步工作方式和整步工作方式的控制时序如表2

39、-4和表2-5所列。步进电机在低频工作时,会有振动大、噪声大的缺点。如果使用细分方式,就能很好的解决这个问题,步进电机的细分控制,从本质上讲是通过对步进电机励磁绕组中电流的控制,使步进电机内部的合成磁场为均匀的圆形旋转磁场,从而实现步进电机步距角的细分,一般情况下,合成磁场矢量的幅值决定了步进电机旋转力矩的大小,相邻两合成磁场矢量之间的夹角大小决定了步距角的大小,步进电机半步工作方式就蕴涵了细分的工作原理。实现细分方式有多种方法,最常用的是脉宽调制式斩波驱动方式,大多数专用的步进电机驱动芯片都采用这种驱动方式,TA8435就是其中一种芯片。 2.8 本章小结本章介绍系统的硬件设计,其中硬件主要

40、由AD芯片、E2PROM、STC89C52RC单片机、TA8435芯片、1602液晶等组成。本系统的工作原理是:先用AD芯片采集电位器的模拟量作为输入角度值,然后使用STC89C52RC单片机处理AD芯片转换的数字量,接着用这些数字量来控制步进电机驱动芯片TA8435,最后由TA8435来控制步进电机旋转角度。第三章 系统软件设计3.1 系统总体的软件流程图如图3-1所示,本软件基本流程为:先执行初始化,然后进入按键选择区域,如果按下角度输入按钮就进行角度值的输入,如果按下频率输入按钮则进行频率值的输入,接着按下确认按钮就打开单片机定时器,随后把定时器初值装入则定时器开始工作,步进电机也随之运

41、作,最后如果按下关闭按钮则系统停止工作。图3-1 软件流程图3.2 AD芯片程序AD程序用于旋转角度的模拟量输入,首先AD片选信号锁存器的锁存端再向AD写入端写入数据启动AD转换,然后关闭AD片选信号锁存器的锁存端等待一段时间,接着再打开AD片选信号锁存器的锁存端来读取串口数据其,最后读完数据之后关闭AD片选信号锁存器的锁存端。主要程序部分如下所示:void main()/主程序 uchar a; init(); while(1) csad=0; /选通ADCSadwr=1;adwr=0; /AD写入(启动AD转换)adwr=1; csad=1; /关闭ADCSdelay(20); /关闭有A

42、D片选信号锁存器的锁存端以防止在操作数码管时使AD的片选发生变化for(a=20;a>0;a-) /需要注意的是ADC0804在写和读之间的时间间隔要足够长否则无法读出数据 /这里把显示部分放这里的原因也是为了增加写读之间的时间间隔 display(); /送去显示各位。 /重新打开有AD片选信号锁存器的锁存端P1=0xff; /读取P1口之前先给其写全1csad=0; /选通ADCSadrd=0; /AD读使能adval=P1; /AD数据读取赋给P1口adrd=1;csad=1; /关闭ADCSd1=0;d2=0;d3=0; 3.3 1602液晶程序液晶主要用于输入旋转角度的显示,根

43、据写命令时序图与写数据时序图写出写命令函数和写数据函数,然后写初始化程序,根据液晶的说明书写出自己所需要的初始化设置。其主要程序部分如下所示:void write_com(uchar com) /写命令函数 P0=com;rs=0;lcden=0;delay(10);lcden=1;delay(10);lcden=0;void write_date(uchar date) /写数据函数 P0=date;rs=1;lcden=0;delay(10);lcden=1;delay(10);lcden=0;void init() /程序初始化 write_com(0x38); /显示模式设置delay

44、(20);write_com(0x0f); /显示光标设计delay(20);write_com(0x06); /数据控制delay(20); write_com(0x01); /数据指针设置delay(20); void main() /主程序 uchar a;init();write_com(0x80+17); /显示字符位置delay(20);for(a=0;a<9;a+) write_date(table1a);delay(20); write_com(0xc0+17); /显示字符位置delay(50);for(a=0;a<13;a+) write_date(table2

45、a);delay(40); for(a=0;a<16;a+) write_com(0x18); /显示字符位置delay1(200); while(1); 3.4 TA8435芯片程序TA8435芯片主要用于步进电机的旋转角度控制,TA8435芯片的控制其实就是一个定时器中断的程序,计算出自己所需要的旋转频率,然后设置相应的定时器中断,进入定时器中断之后对CK端进行取反,步进电机就会按照当初所设定的频率进行转动。其主要程序部分如下所示:sbit en=P22;sbit cw=P21;sbit ck=P20;unsigned int j;void timer0() interrupt 1

46、/定时器中断0 TH0=(65536-50000)/256;TL0=(65536-50000)%256;ck=!ck;j+; void main() ck=0; /时钟输入端赋值cw=0; /设置为正传en=0; /打开使能j=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;while(1); 3.5 E2PROM芯片程序E2PROM主要用于输入角度值的断电保存,AT24C02是一款I2C总线的E2PROM。I2C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速

47、器件同步功能的高性能串行总线。它只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。其主要程序部分如下所示:void delay1(unsigned char x) unsigned int i; for(i=0;i<x;i+); ;void flash() ; ; void x24c08_init() /24c08初始化子程序 scl=1; flash(); sda=1; flash();void start() /启动I2C总线sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();void stop() /停止I2C总线sda=0; flash(); scl=1; flash(); sda=1; flash();void writex(unsigned char j) /写一个字节 unsigned char i,temp; temp=j; for (i=0;i<8;i+) temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash(); scl=0; flash(); sda=1; flash();unsigned char readx() /读一个字节 un

温馨提示

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

最新文档

评论

0/150

提交评论