直线电机的控制_第1页
直线电机的控制_第2页
直线电机的控制_第3页
直线电机的控制_第4页
直线电机的控制_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上直线电机的控制  摘要:直线电机是一种将电能直接转换成直线运动机械能,而不需要任何中间转换机构的传动装置。它可以看成是一台旋转电机按径向剖开,并展成平面而成。直线电动机的工作原理与旋转电动机相似。以直线感应电动机为例:当初级绕组通入交流电源时,便在气隙中产生行波磁场,次级在行波磁场切割下,将感应出电动势并产生电流,该电流与气隙中的磁场相作用就产生电磁推力。在本设计中用单片机的IO输出端口来控制两个电机工作模式(正转、反转),而每一个电机由两个继电器和LED来反映设计结果。 关键字:直线电机,旋转电机,单片机,正转,反转Abstract:The el

2、ectrical machinery of straight line is that one kind changes electric energy into the mechanical energy of rectilinear motion directly, And does not need to change the transmission device of the organization in the middle of any. It can regard as one and rotate the electrical machinery to cut open a

3、ccording to the radial, and the exhibition became the level. The operation principle of the straight line motor is similar with the rotating motor. Take reaction motor of straight line as an example: Originally when one grade of windings was led to alternating current source, the wave magnetic field

4、 of the conduct emerged in the angry crack, secondary to expert at, under wave magnetic field cut , respond to EMF of producing and produce the electric current, electric current and the looks function of magnetic field in this electric current and angry crack produces electromagnetic thrust. Contro

5、ls two electrical machinery working pattern in this design with single chip micrcomputes IO output port (Rotating,Overturn), but each electrical machinery reflects the design result by two relays and LED. Keywords: Electrical machinery of straight line , Rotate the electrical machinery,SCM(Single Ch

6、ip Micromputer), Rotating,Overturn 目录 1、前言12、总体方案设计23、单元模块设计33.1 各单元模块功能介绍及电路设计33.1.1 单片机最小系统模块及显示33.1.2电机传感器电压放大部分43.1.3 RS232串行通信接口部分43.1.4 继电器控制电路53.3 器件介绍53.3.1 MAX23253.3.2 OP0763.3.3 ADC0832CCN73.3.4 AT89S5283.4各单元模块的连接104、软件设计114.1 程序设计原理及设计所用工具114.1.1 设计原理114.1.2 软件硬件设计工具介绍114.2 画出

7、软件设计结构图、说明其功能114.3 画出主要软件设计流程框图125、系统调试135.1 硬件调试135.1.1 各个功能模块分开调试135.1.2 系统调试155.2 软件调试155.2.1编译程序的流程155.2.2程序调试过程156、结论197、总结与体会208、参考文献21附录一:程序代码附录二:图1,图21、前言 直线电机最初由英国人惠斯登1840年提出、实验,但不成功。随后,人们对它进行了深入研究,从理论到实践做了大量工作。1945年美国西屋公司首先研究成功以直线电机作为动力的飞机弹射器,但由于成本太高而未能推广。总体来说,当时由于自身理论上的不完善,加上其它相关技术的局限,同时,

8、需求不是很迫切,直线电机技术发展缓慢。随着自动控制技术和微型计算机的高速发展,对各类自动控制系统的定位精度提出了更高的要求。在这种情况下,传统的旋转电机再加上一套变换机构组成的直线运动驱动装置,已经远不能满足现代控制系统的要求。为此,从上世纪60年代开始,由于控制技术、材料技术的发展,基础研究的进步与突破,直线电机进入全面开发阶段。世界上许多国家下大力气在研究、发展和应用直线电机,使得直线电机的应用领域越来越广。英国莱斯韦特教授1966年出版了比较系统地介绍直线电机的专著Induction Machines for Spesial Purposes,为直线电机的发展做出了突出贡献。一般电动机工

9、作时都是转动的。但是用旋转的电机驱动的交通工具(比如电动机车和城市中的电车等)需要做直线运动,用旋转的电机驱动的机器的一些部件也要做直线运动。这就需要增加把旋转运动变为直线运动的一套装置。能不能直接运用直线运动的电机来驱动,从而省去这套装呢?几十年前人们就提出了这个问题现在已制成了直线运动的电动机,即直线电机。 直线电机是一种新型电机,近年来应用日益广泛。磁悬浮列车就是用直线电机来驱动的。直线电机除了用于磁悬浮列车外,还广泛地用于其他方面,例如用于传送系统、电气锤、电磁搅拌器等在我国,直线电机也逐步得到推广和应用。直线电机的原理虽不复杂,但在设计、制造方面有它自己的特点,产品尚不如旋转电机那样

10、成熟,有待进一步研究和改进。       2、总体方案设计直线电机是一种通过将封闭式磁场展开为开放式磁场,将电能直接转化为直线运动的机械能,而不需要任何中间转换机构的传动装置。在本次设计中使用单片机来控制电机工作。单片机选用AT89S52系列,由于设计中没有提供电机,则用的是LED灯来观察电机的工作模式,在这次设计中电机共有两个,每一个电机分别由两个继电器来控制,而每个电机的工作方式有正转、反转。具体的设计思路:用AT89S52单片机P1口与按键相连,这8个按键用的IO口是P1_0到P1_7,数码管的显示部分是用的P2口,设计中面包板

11、的接口用P0口。P0_0和P0_1控制电机1工作,P0_2和P0_3控制电机2。通过改变P0_0和P0_1的输出电平来控制电机1的正转反转,通过改变P0_2和P0_3的输出电平来控制电机2的正转反转。如当按下按键KEY0(与P1_0相接)时,P0_0=1,P0_1=0,电机1正转;按下按键KEY1时,p0_2=1,p0_3=0,电机2正转;按下按键KEY2时,P0_0=0,P0_1=1,电机1反转;按下按键KEY3时,P2_0=0,P3_1=1,电机1反转;如此下去,就可以显示电机的工作模式了。设计框图如下图2.1所示,其原理图参见附录二图1。   单片机AT89

12、S52 LED指示灯数码管显示系统外扩部分AD转换电源部分RS232串行通信接口电路 图2.1 总体设计框图3、单元模块设计3.1 各单元模块功能介绍及电路设计3.1.1 单片机最小系统模块及显示 单片机的最小系统,一般包括单片机芯片,复位电路,时钟电路及数码管显示电路。在本次设计中,P0口的P0_0,P0_1,P0_2,P0_3为控制电机工作的接口,最小系统上的8个按键用的是P1口的P1_0P1_7,上接上拉电阻和8个发光二极管和5V电压,当选择相应的按键时其所对应的发光二极管亮,而P2_0P2_7作为输出接到LED数码管显示上。当程序下载到单片机最小系统图上后就可以通过按键来控制系统的功能

13、,并显示出结果。如下图3.1所示:图3.1单片机最小系统模块及显示3.1.2电机传感器电压放大部分 在实际的牵引电机中通过传感器感知其牵引力的大小转换成电压信号,由于其电压信号很微弱为了便于控制要进行放大,所以我们将通过OP07电压放大器对腰牵引电机传感器电压进行放大。电压从2、3口输入,W2为变阻器,可通过调节来调节力与电压的比,R16为反馈电路中的电阻,提高电路的灵敏性,降低误差。如下图3.2所示:图3.2电机传感器电压放大部分3.1.3 RS232串行通信接口部分 在电脑中运行的程序要下载到单片机上进行运行,则要通过串行口,用到的是RS232的通信接口,在图3. 3中用到了一个发光二极管

14、D3用来对电路中是否通电进行显示,以指示芯片是否正常供电,便于程序的调试与分析。 图3.3 RS232串行通信接口部分电路图3.1.4 继电器控制电路 本次设计中四个继电器分两组控制两个电机,两个继电器控制一个电机,电机的正传和反转可以由电压的正和负来决定正转工作模式和反转工作模式。程序下载到单片机之中,程序运行中通过检测按键闭合情况来控制继电器的吸合和断开,吸合的时候表示电机正在运行,断开的时候表示电机已经停止运行。正转吸合的时候表示电机正在伸出去,闭合时电机伸出将停止。反转吸和的时候表示电机正在收回,断开表示收回的动作停止。继电器工作的时候指示灯发光二极管亮,表示正在工作,两组继电器相当于

15、是两个并行的电机,互不影响。如图3.4所示:图3.4继电器控制电路3.3 器件介绍3.3.1 MAX232 MAX232CPE是在一个RS - 232驱动器/接收器适用于所有EIA/TIA-232E和V 28 /24通信接口,尤其是对那些申请凡+12 V是无法使用。 该MAX232CPE特别有用电池供电的系统,因为其低功耗的停机模式,降低功耗小于5uW 。应用于便携式计算机、低功耗调制解调器、电池供电的RS - 232接口系统、多点RS - 232接口系统。具有特征有从+5 V 单电源供电、满足所有EIA/TIA-232E和五.28规格、两个驱动器和两个接收器、态输出驱动器和接收器、数据传输率

16、120 ( kbps)。引脚配置如图3.5所示:        MAX23212493111013151412168675C1+V+V-C2-R2OUTC2+R2INT1INC1-R1INR1OUTT1OUTR2INGNDT2OUTVCC图3.5 MAX232引脚配置3.3.2 OP07OP07在非常低的输入失调电压( 75 V最大值为OP07E )即获得了微调在晶圆阶段。这些低失调电压一般消除任何需要外部调零。该OP07还具有低输入偏置电流( ± 4名词的OP07E )和高开环增益( 200第V /毫伏的OP07

17、E )。低偏移和高开环增益使OP07在高增益仪表的应用。 管脚配置如图3.6所示: 87654321OP07VO STRIMV+OUTNCV-+IN-INVOS TRIM图3.6 OP07管脚配置NC= NO CONNECT3.3.3 ADC0832CCN ADC0832是美国国家半导体公司生产的一种8为分辨率、双通道A/D转换芯片。由于他体积小兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经占有很高的普及率。学习并使用ADC0832可是我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。(1)    ADC0832的特点八位分辨率;双

18、通道A/D转换; 输入/输出电平与TTL/MOS相兼容;单电源5V电压供电时电压范围0V -5V之间;工作频率为250KHZ,转换时间为32us;一般功耗仅为15Mv;8P、14P-DIP(双列直插),PICC多种封装;商用级芯片温宽为0-70,工业级芯片温宽为-40-85.管脚配置如图3.7所示:  12643578VCCCLKD0D1GNDCH1CH0CS图3.7 ADC0832管脚配置图 芯片接口说明:CS 片选使能,低电平芯片使能CHO 模拟输入通道0,或作为IN+/-使用CH1 模拟输入通道1,或作为IN+/-使用GND 芯片参考零点位(地)DI 数据信

19、号输入,选择通道控制。DO数据信号输出,转换数据输出CLK 芯片时钟输出Vcc/REF 电源输入及参考电压输入(复用)(2)单片机对ADC0832 的控制原理正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CL

20、K 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。3.3.4 是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。   AT89S52具有如下特点:40个引脚,8k Bytes Flash片内

21、程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。同步串行口可用于对温湿度信号的串行接收,异步发送/接收串口用于向上位机等进行串行通信。管脚配置如图3.8所示:图3.8 AT89S52管脚配置图 此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或

22、硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。  3.4各单元模块的连接本实验即为用单片机控制直线电机的思路,即分为信号采集、信号输入、信号处理、信号的输出显示四个模块。信号采集部分电压信号输入进行电压放大后由ADC0832转换进行模数转换信号输入到单片机的内部,单片机的外围电路包括晶振,复位,和程序下载所用到的RS232串行通信接口部分(接单片机RXT,TXT引脚),信号处理由单片机中程序进行处理,输出的信号在继电器模块进行显示,(由P0P4管脚输入),按键输入由P0接入。连接图如图3.9所示: 图3.9 个单元模块的链接总图

23、 4、软件设计4.1 程序设计原理及设计所用工具4.1.1 设计原理由系统图可知最小系统上有8个按键用的IO口是P1_0到P1_7,数码管的显示部分是用的P2口,设计中面包板的接口用P0口。P0_0和P0_1控制电机1工作,P0_2和P0_3控制电机2。通过改变P0_0和P0_1的输出电平来控制电机1的正转反转,通过改变P0_2和P0_3的输出电平来控制电机2的正转反转,若要改变正转反转的时间可以用一个for循环,或者一个时延delay函数。为便以控制P0电平的改变用最小系统板上的8个按键控制。在程序中对按键不同的定义写了两种程序,一种是按键扫描,第二种是直接通过按键判断。4.1.2

24、 软件硬件设计工具介绍(1)软件设计工具使用的软件是keil uVision2, Keil uVision2是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。(2)硬件设计工具在设计过程中我们主要使用了Protel 99SE软件。Protel 99SE是ProklTechnology公司开发的基于Windows环境下的电路

25、板设计软件。该软件功能强大,人机界面友好,易学易用,仍然是大中院校电学专业必学课程,同时也是业界人士首选的电路板设计工具。Protel 99SE 由两大部分组成:电路原理图设计(Advanced Schematic)和多层印刷电路板设 计(Advanced PCB)。其中Advanced Schematic由两部分组成;电路图编辑器(Schematic)和元件库编辑器(Schematic Library)。4.2 画出软件设计结构图、说明其功能 如下图所示:宏定义包含文件函数声明 管脚定义 主函数 按键扫描子程序或按键判断子程序 延时子程序 预

26、编译处理函数申明定义管脚执行块按键扫描或判断延时图4.1 软件设计结构图 图4.2 功能说明图4.3 画出主要软件设计流程框图宏定义包含文件函数声明管脚定义主函数按键扫描子程序延时子程序图4.3按键扫描程序流程图 图4.4 按键判断控制程序流程图宏定义包含文件函数声明 管脚定义 主函数 按键判断子程序延时子程序 其程序见附录一: 5、系统调试5.1 硬件调试5.1.1 各个功能模块分开调试 (1)最小系统模块的上电源模块和按键模块的检测 首先,给最小系统板加上5V的电源,观察发光二极管D5是否发光,若发光则确定最小系统板电源模块没问题,若有没发光则用万用

27、表检测电源是否有输出5V,若有,则检测最小系统板的电源模块的电路是否有短路,断路的问题。 其次,确定电源没有问题之后,调试按键模块。按下按键,观察P1口的发光二极管是否对映发光,以确认按键没有问题。若不发光则对对映的模块进行检测。 (2)串行口的调试 将编译好的HEX文件用ISP下载软件通过RS232串行口下载到单片机中,此时观察D3是否发光,发光,确定串行口没有问题,若不发光则对对应模块的芯片MAX232,电容进行检测,判断是否损坏,判断电路是否有连接出错之类的。确定串行口没有错之后,看程序是否能成功下载到单片机中,若不能,检测单片机是否损坏。(3)数码管的调试通过了以上调试,将编译好的按键

28、扫描程序载到单片机之中,判断按键扫描无误,再将编译好的数码管显示程序下载到单片机中,观察数码管的显示情况,看是否能按程序要求的功能显示。(4)单片机最小系统调试 将编译好的最小系统检测程序下载到单片机中,观察发光二极管和数码管的显示情况,具体程序如下:#include<reg52.h>#define uint unsigned int#define uchar unsigned charvoid delay(uint z);uchar numwe,numdu;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,

29、0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code tablewei=0xfe,0xfd,0xfb,0xf7;void delay(uint z);void main() P1=0;numwe=0;numdu=0;while(1)numdu+;if(numdu=4)numdu=1;P2=tablenumdu;P0=tableweinumwe;numwe+;if(numwe=4)numwe=0;delay(600);void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-); 程序下载

30、成功后,可以再数码管上显示数字0、1、2,按下按键时,对应的发光二极管亮,这样就能够确认最小系统板无误。5.1.2 系统调试 将电机的模块接在最小系统的P0端口,电源供电的部位接好电源,将编译好的电机控制程序下载到单片机中,根据程序中所定义的按键功能,按下按键控制继电器的吸合情况,可以听见继电器吸合的声响,为了观察方便可以观察每个继电器对应的发光二极管的发光情况见附录二图2。其程序参见附录一中的按键扫描方式控制程序。 5.2 软件调试5.2.1编译程序的流程 编译软件是用的keil uVision2,打开keil新建一个工程文件cx,设置好器件选用的是atmel中AT89C52.ou

31、tput中将生成hex文件选上。新建一个文件text,写好程序代码以cx.c为名保存,在source group里面添加cx.c文件,再点击build all taget files编译生成.hex文件,若不能生成,调试程序,看错误报告,确定程序的出错类型,修正程序,直到无误的无警告的生成HEX文件,将出现下载到单片机中,观察程序的运行情况,若是不能实现按预定的功能则修改程序直到能实现程序功能。5.2.2程序调试过程 在文本中输入如下程序:#include <reg52.h>(1)#include <intrins.h>#define uchar unsigned ch

32、ar#define TURE 1#define FALSE 0int del;(4)void Tkey(void);sbit p0_0=P00; (6) sbit p0_1=P01;sbit p0_2=P02;sbit p0_3=P03;sbit p0_4=P04;sbit key0=P10; sbit key1=P11;sbit key2=P12;sbit key3=P13;sbit key4=P14;sbit key5=P15;sbit key6=P16;sbit key7=P17;void main(void) /主 程序 void tkey(void); void delay(int)

33、; SCON=0x00; TI=0; while(TURE) Tkey(); delay(2000); void Tkey(void) (2) uchar readkey; uchar x_temp,y_temp; P1=0x0f; x_temp=P1&0x0f; if(x_temp=0x0f) goto keyout; P1=0xf0; y_temp=P1&0xf0; readkey=x_temp|y_temp; readkey=readkey;switch(readkey) case 0x11:key0=P10; int i; p0_0=1;p0_1=0;for(i=0;i

34、<10000;i+)p0_0=1;p0_1=0;break;/启动电机1正转 case 0x21:key1=P11; p0_2=1;p0_3=0; break;/启动电机2正转 case 0x41:key2=P12; p0_0=0;p0_1=1; break; /启动电机1反转 case 0x81:key3=P13; p0_2=0;p0_3=1; break; /启动电机2反转 case 0x12:key4=P14; p0_0=0;p0_1=0;break;/电机1停止 case 0x22:key5=P15; p0_2=0;p0_3=0; break;/电机2停止 case 0x42:k

35、ey6=P16; int i; p0_0=1;p0_1=0;for(i=0;i<10000;i+)p0_0=1;p0_1=0;break; case 0x82:key7=P17; int i; p0_2=1;p0_3=0;for(i=0;i<10000;i+)p0_2=1;p0_3=0; break; keyout:_nop_(); (3)void delay(del) /*延时程序*(5) for(del;del>0;del-);  在编写程序过程出现如下一些错误:1)在程序中的(1)处曾出现过错误,那是因为在word中编写好复制到keil中,编译时不通过,再在k

36、eil中英文半角状态重新输入,此错误得以更正。2)编写程序时,首先在(2)处输入了一个“”与之对应的“”在(3)处,(2)和(3)相距很远,编译过程中提示missing“,但是找了很久才找与之对应的大括弧。3)在程序(5)处,延时函数是一个有返回参数的,对变量del的定义要注意是在(4)处定义。4)在程序(6)处,是对单片机端口的定义,软件keil中选用的52系列,而52系列得单片机对自己的端口有自己规定。由于没有参考52系列的端口管脚的定义而表达错误。所以说程序设计过程中,在程序书写的环节比较关键,软件认可的是英文半角状态下的输入,在确定输入程序无误的情况下,注意程序中容易犯的语法错误,比如

37、说大括弧()小括弧一定要对应,为了在调试程序中避免这些难以查找的错误在书写程序的时候是应该注意成对的输入。程序书写的顺序一般是包含文件、宏定义、函数声明,变量定义、管脚定义、主程序、各个子程序。函数注意先声明再用,变量先定义再用。遵循编织程序的一般规则,减少语法错误。 6、结论本设计综合了目前相关领域的多篇文献,对直线电机的工作原理和单片机的运用进行了介绍。详细介绍了设计的具体功能模块,如单片机的最小系统、继电器电路、LED指示灯、AD转换电路等;软硬件设计。在设计中,由于没有提供电机,只能用LED指示灯来显示电机的工作。耦合电路是用来隔离单片机和继电器之间的干扰,具体做电路板的时候

38、没有耦合芯片TPL521_4。因为实验室为我们提供的继电器是5V电压的器件,单片机也是工作在5V电源中,5V的继电器不会对单片机造成多大的干扰所以中间的光耦部分可以节约下来。在软硬件的调试过程中,首先进行的是硬件调试,调试的方法有很多,一般我们所用的是观察法和排除法。硬件的调试过程中,需要检测电源供电是否能正常,可以看发光二极管可以判断,检测串行口也可以观察发光二极管可以确定。最小系统上的按键的检测是观察与P1接的上拉电阻和发光二极管来确定。将无误的出现下载到单片中,可以观察数码管的显示情况,以确定数码管模块的无误。单片机是最核心的模块,硬件电路都是以单片机为核心,单片机的损坏没有被察觉其他模

39、块不能正常工作是很难调试的,所以调试其他的时候一定要保证单片没有被损坏。软件的测试就是一定要遵循书写程序的一般习惯,逻辑要有条理,思维清晰。在不断的检查、调试和修正下,最终LED指示灯正确的显示了两个电机工作的方式。在设计中我们还可以再扩展一部分外围,比如:接上液晶显示部分,在液晶屏上显示每个电机的工作模式,正转、反转的时间等参数。接上传感器部分,直线电机的运转情况通过传感器的检测反馈到单片中进行参数计算。电机的工作情况便可以更智能化。由于时间和外设的关系,这部分是做考虑。7、总结与体会这次智能化电子设计历时近一个月的时间,在这段时间里,从最初的了解并认识智能化电子技术以及我们的课题内容直线电

40、机,到一步步地设计方案,确定电路,焊接实验板,调试程序等,终于完成了本设计。在这个过程我们从相关领域的文献中学到了更多知识,并且运用了我们所学的单片机以及外部接口的知识,而且整个团队都积极的参与到设计中,并进行了具体的分工,使得在设计过程中了解到团队精神的重要性。最小系统板的焊接在老师的指导下比较顺利的完成了,之后的扩展板部分由我们自己独立设计完成,在与主板的连接上采用了导线连接,因此外观上并不十分美观,但条理布局还是很清晰。在设计过程中,我们遇到很多问题,比如:在焊接完成最小系统板和外接板时候,程序不能下载到单片机上,经过多次排查,发现问题出在单片机芯片已经烧坏了;而在程序正常下载到单片机上

41、后,LED指示灯不能正常显示,经过仔细检查程序和板子,最后发现外扩板子上的发光二极管接到单片机的P1口。这次设计的要求相当严格,需要通过翻阅各种文献才确立了实验总体设计方案。我觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的实践动手能力,所以,在以后的学习生活中,我需要更努力地读书和实践,做能分析问题和解决问题的高素质人才,为以后的顺利就业作好准备。使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。 感谢学校给我们这次机会,提供良好的实验环境及我们所需的设备,以及图书馆丰富的藏书,不仅锻炼了我们的动手能力,并且更加深刻地了解智能

42、化电子技术正逐渐成为不可缺少的一项先进技术和重要工具。再次感谢老师的辅导和同学帮助。 8、参考文献1 龙驹. 永磁直流电动机转速控制系统的优化设计. 成都:西南交通大学出版社,2006.122 朱大奇、李念强. 单片机原理·接口及应用. 南京:南京大学出版社,2003.63 余永权、汪明慧. 单片机在控制系统中的应用. 北京:电子工业出版社,2003.104 郑瑜平. 可编程序控制器. 北京:北京航空航天大学出版社,1995.125 杨超宇、赵光明等. C程序语言设计. 上海:华东理工大学出版社,2006.86 谭建成. 新编电机控制专用集成电路与应用. 北京:机械工业出版

43、社,2005.4  附录一:程序1:用按键扫描方式,编程如下: /*-按键扫描方式控制-*/#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define TURE 1#define FALSE 0int del;void Tkey(void);/*针脚定义*/sbit p0_0=P00; sbit p0_1=P01;sbit p0_2=P02;sbit p0_3=P03;sbit p0_4=P04;sbit key0=P10; sbit key1=P11;sbit k

44、ey2=P12;sbit key3=P13;sbit key4=P14;sbit key5=P15;sbit key6=P16;sbit key7=P17;/*主 程序*/void main(void) void tkey(void); void delay(int); SCON=0x00; TI=0; while(TURE) Tkey(); delay(2000);  /按键扫描子程序void Tkey(void) uchar readkey; uchar x_temp,y_temp; P0=0x0f; x_temp=P0&0x0f; if(x_temp=0x0f) got

45、o keyout; P0=0xf0; y_temp=P0&0xf0; readkey=x_temp|y_temp; readkey=readkey;switch(readkey) case 0x11:key0=P10; int i; p0_0=1;p0_1=0;for(i=0;i<10000;i+)p0_0=1;p0_1=0;break;/启动电机1正转 case 0x21:key1=P11; p0_2=1;p0_3=0; break;/启动电机2正转 case 0x41:key2=P12; p0_0=0;p0_1=1; break; /启动电机1反转 case 0x81:key

46、3=P13; p0_2=0;p0_3=1; break; /启动电机2反转 case 0x12:key4=P14; p0_0=0;p0_1=0;break;/电机1停止 case 0x22:key5=P15; p0_2=0;p0_3=0; break;/电机2停止 case 0x42:key6=P16; int i; p0_0=1;p0_1=0;for(i=0;i<10000;i+)p0_0=1;p0_1=0;break; case 0x82:key7=P17; int i; p0_2=1;p0_3=0;for(i=0;i<10000;i+)p0_2=1;p0_3=0; break

47、; keyout:_nop_();/*延时程序*/void delay(del) for(del;del>0;del-);  程序2:按键判断控制/*-按键控制-*/#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define TURE 1#define FALSE 0int del;void Tkey(void);/*针脚定义*/sbit p0_0=P00; sbit p0_1=P01;sbit p0_2=P02;sbit p0_3=P03;sbit p0_4=P04;

48、sbit key0=P10; sbit key1=P11;sbit key2=P12;sbit key3=P13;sbit key4=P14;sbit key5=P15;sbit key6=P16;sbit key7=P17;/*主程序*/void main(void) void tkey(void); void delay(int); SCON=0x00; TI=0; while(TURE) Tkey(); delay(2000); /*按键程序*/void Tkey(void) if( key0=0)/mode1 int i; p0_0=1;p0_1=0;for(i=0;i<1000

49、0;i+)p0_0=1;p0_1=0; /S0启动电机1正转,有一定的延时 else if( key1=0) /mode2 p0_2=1;p0_3=0; /S1启动电机2正转 else if( key2=0)/mode3 p0_0=0; p0_1=1; /S3启动电机1反转 else if( key3=0) /mode4 p0_2=0; p0_3=1; /S4启动电机2反转 else if( key4=0)/mode5 p0_0=0; p0_1=0; /S5电机1停止 else if( key5=0) /mode6 p0_2=0; p0_3=0; /S6电机2停止 else if( key6=

50、0)/mode7 int i; p0_0=0;p0_1=1;for(i=0;i<10000;i+)p0_0=0;p0_1=1;/S7电机1反转定时为计数10000的时间else if( key7=0)/mode8 int i; p0_2=1;p0_3=0;for(i=0;i<10000;i+)p0_2=1;p0_3=0;程序三:#include<reg52.h>#define uchar unsigned char#define uint unsigned int sbit dianji1_l=P00;sbit dianji1_r=P01;sbit dianj

51、i2_l=P02;sbit dianji2_r=P03; sbit mode1 = P10;sbit mode2 = P11;sbit mode3 = P12;sbit qianjin = P13;sbit houtui = P14; sbit jiam = P15; /每按一次前进时间加1Ssbit jian = P16;/每按一次后退时间加1S  uchar time_cnt;bit motor1,motor2,motor3,push,pull;int m=2,n=2; keyscan();void delay(uint cnt);/*主函数*/void main() uint i; P0 = 0x00; /关闭所有电机  /*初

温馨提示

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

评论

0/150

提交评论