用串行口传送数据控制三相步进电机并动态显示步数实验说明书_第1页
用串行口传送数据控制三相步进电机并动态显示步数实验说明书_第2页
用串行口传送数据控制三相步进电机并动态显示步数实验说明书_第3页
用串行口传送数据控制三相步进电机并动态显示步数实验说明书_第4页
用串行口传送数据控制三相步进电机并动态显示步数实验说明书_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、用串行口传送数据控制三相步进电机实验说明书0、前言单片机的基础知识与应用单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个范畴:1)在智能仪器仪表的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智

2、能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。2)在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。3)在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。4)在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备

3、基本上都实现了单片机智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5)单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 此外,单片机在工商、金融、科研、教育、国防航空等领域都有着十分广泛的用途。1、课程设计的目的和要求1.1课程设计的目的 1掌握串行口工作方式的程序设计,掌握单片机通讯程序的编制。 2掌握实现串行通讯的硬件环境,数据格式、数据交换的协议。 3掌握读取键盘信息的方法。 4了解步进电机的工作原理和控制方法

4、。1.2 课程设计的要求 利用8031串行口,实现双机通讯。编写程序让甲机负责发送,乙机负责接收,甲机接两个键表示电机正反转。再连接两个键表示电机转动的步数(初值自定),传送给乙机。由乙机连接LED显示接收正反转的状态及步数。状态用一位LED显示,E表示正转,F表示反转。步数用三位LED显示。乙机接收从甲机传来的方向及步数信息后,驱动步进电机按相应的方向前进相应的步数。2、总体设计2.1 基本工作原理步进电机原理:一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。每输入一个脉冲信号,该电动机就转过一定的角度(有的步进电动机可以直接输出线位移,称为直线电动机)。因此步进电动机

5、是一种把脉冲变为角度位移(或直线位移)的执行元件。步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。由于输入的是脉冲信号,输出的角位移是断续的,所以又称为脉冲电动机。随着数字控制系统的发展,步进电动机的应用将逐渐扩大。步进电动机的种类很多,按结构可分为反应式和激励式两种;按相数分则可分为单相、两相和多相三种。图1 反应式步进电动机的结构示意图图1是反应式步进电动机结构示意图,它的定子具有均匀分布的六个磁极,磁极上绕有绕组。两个相对的磁极组成一组,联法如图所示。模块中用到的45BC340型步进电机为三相反应式步

6、进电机,下面介绍它单三拍、六拍及双三拍通电方式的基本原理。1)单三拍通电方式的基本原理设A相首先通电(B、C两相不通电),产生A-A轴线方向的磁通,并通过转子形成闭合回路。这时A、A极就成为电磁铁的N、S极。在磁场的作用下,转子总是力图转到磁阻最小的位置,也就是要转到转子的齿对齐A、A极的位置(图2a);接着B相通电(A、C两相不通电),转了便顺时针方向转过30°,它的齿和C、C极对齐(图2c)。不难理解,当脉冲信号一个一个发来时,如果按ACBA的顺序通电,则电机转子便逆时针方向转动。这种通电方式称为单三拍方式。图2 单三拍通电方式时转子的位置2)六拍通电方式的基本原理设A相首先通电

7、,转子齿与定子A、A对齐(图3a)。然后在A相继续通电的情况下接通B相。这时定子B、B极对转子齿2、4产生磁拉力,使转子顺时针方向转动,但是A、A极继续拉住齿1、3,因此,转子转到两个磁拉力平衡为止。这时转子的位置如图3b所示,即转子从图(a)位置顺时针转过了15°。接着A相断电,B相继续通电。这时转子齿2、4和定子B、B极对齐(图3c),转子从图(b)的位置又转过了15°。其位置如图3d所示。这样,如果按AA、BBB、CCC、AA的顺序轮流通电,则转子便顺时针方向一步一步地转动,步距角15°。电流换接六次,磁场旋转一周,转子前进了一个齿距角。如果按AA、CCC、

8、BBB、AA的顺序通电,则电机转子逆时针方向转动。这种通电方式称为六拍方式。a.A相通电 b.A、B相通电 c.B相通电 d.B、C相通电图3 六拍通电时转子位置3)双三拍通电方式的基本原理如果每次都是两相通电,即按A、BB、CC、AA、B的顺序通电,则称为双三拍方式,从图3b,和图3d可见,步距角也是30°。因此,采用单三拍和双三拍方式时转子走三步前进了一个齿距角,每走一步前进了三分之一齿距角;采用六拍方式时,转子走六步前进了一个齿距角,每走一步前进了六分之一齿距角。因此步距角可用下式计算:360°/Zr×m式中Zr是转子齿数;m是运行拍数。一般步进电动机最常见

9、的步距角是3°或15°。由上式可知,转子上不只4个齿(齿距角90°),45BC340C有40个齿(齿距角为9°)。为了使转子齿与定子齿对齐,两者的齿宽和齿距必须相等。因此,定子上除了6个极以外,在每个极面上还有5个和转子齿一样的小齿。步进电动机的结构图如图4所示。图4 三相反应式步进电动机的结构图由上面介绍可知,步进电动机具有结构简单、维护方便、精确度高、起动灵敏、停车准确等性能。此外,步进电动机的转速决定于电脉冲频率,并与频率同步。2.1.2 8051串行口通讯原理:MCS-51单片机内串行口的SBUF有两个:接收SBUF和发送SBUF,二者在物理结构

10、上是独立的,单片机用它们来接收和发送数据。专用寄存器SCON和PCON控制串行口的工作方式和波特率。定时器1作为波特率发生器。数据传送方式有两种:查询方式和中断方式。本实验中甲机采用查询方式,乙机采用中断方式。为确保通讯成功,甲机和乙机必须有一个一致的通讯协议,本实验的通讯协议如下:通讯双方均采用2400波特的速率传送,甲机发送数据,乙机接收数据。双机开始通讯时,甲机发送一个呼叫信号“06”,询问乙机是否可以接收数据;乙机收到呼叫信号后,若同意接收数据则发回“00”作为应答,否则发“15”表示暂不能接收数据;甲机只有收到乙机的应答信号“00”后才可把要发送的数据发送给乙机,否则继续向乙机呼叫,

11、直到乙机同意接收。2.2 硬件总体设计2.2.1 系统的组成方案本实验中选用两片8031芯片,分别作为甲机(通过按键发送控制信号)、乙机(接收信号,从而实现显示和对步进电机的控制)。甲机接四个按键,乙机接4位7段LED数码管和一个三相步进电机。2.2.2 键盘与显示功能的定义甲机有四个按键,SW1接P1.4,控制电机正转;SW2接P1.5,控制电机反转;SW3接P1.6,实现电机转动100步;SW4接P1.7,实现电机转动200步。乙机接有四个7段共阴极LED数码管和一个三相步进电机。数码管的段选位接P0口,位选位分别接P3.2,P3.3,P3.4,P3.5,其中哪一位是低电平,则相应的数码管

12、被选中。其中第一个数码管显示的为电机的正反转,E表示正转,F表示反转。后三个数码管分别显示步数的百位、十位和个位。2.3 软件总体设计2.3.1 存储单元的分配与标志位的定义乙机中60H作为当前步数的存储单元,61H存当前百位数,62H存当前十位数,63H存当前个位数。定时器方式控制寄存器TMOD为#20H,表示定时器T1为方式2。定时器T1作为波特率发生器,波特率为2400,查表可得,TH1与TL1初值为F4H。串行口控制位PCON为#80H,是令波特率选择为SMOD=1,目的是使波特率加倍。串行口控制位SCON为#50H,定义串行口方式为1,接收使能。TR1=0,停T1计数;TR1=1,启

13、T1计数。EA=0,关所有中断;EA=1,开所有中断。ES=0,关T1中断;ES=1,开T1中断。TI为发送中断标志,RI为接收中断标志。2.3.2 主程序框图与清单主程序流程图程序清单:甲机:ORG 0000H AJMP MAIN1ORG 0100HMAIN1: MOV TMOD,#20H ;定时器T1为方式2 MOV TL1, #0F4H ;波特率为2400 MOV TH1,#0F4H MOV PCON,#80H ;令SMOD=1 SETB TR1 ;启动T1 MOV SCON,#50H ;串行口为方式1,接收使能 DIAL: MOV SBUF,#06H ;发送呼叫信号06HCHECK_0

14、6: JBC TI, WAIT_RESPONSE ;判断是否发送完毕,完毕跳转 JMP CHECK_06WAIT_RESPONSE: JBC RI, CHECK_00 ;串行口接收到数据则跳转到判断应答号 JMP WAIT_RESPONSECHECK_00: MOV A,SBUF ;将接收到的数据载入A CJNE A,#00H,DIAL ;判断接收到的数据是否为应答号00HSEND_NUM: MOV P1,#0FFHS1:JNBP1.4,S1OK ;判断S1是否按下JMPS2 ;未按下,跳转到S2S1OK: ;S1按下,则发送数据MOVSBUF, #0EFHCHECK_0EF:JBCTI,S2

15、 ;判断是否发送完,完毕跳转,未完毕继续JMPCHECK_0EF S2:JNBP1.5,S2OK ;判断S2是否按下JMPS3 ;未按下,跳转到S3S2OK: ;S2按下,则发送数据MOVSBUF,#0DFHCHECK_0DF:JBCTI,S3 ;判断是否发送完毕,完毕跳转,未完毕继续JMPCHECK_0DFS3:JNBP1.6,S3OK ;判断S3是否按下JMPS4 ;未按下,跳转到S4S3OK: ;S3按下,则发送数据MOVSBUF,#0BFHCHECK_0BF:JBCTI,S4 ;判断是否发送完毕,完毕跳转,未完毕继续JMPCHECK_0BFS4:JNBP1.7,S4OK ;判断S4是否

16、按下JMPS1 ;未按下,跳转到S1继续扫描S4OK: ;S4按下,则发送数据MOVSBUF,#7FHCHECK_7FH:JBCTI,S1 ;判断是否发送完毕,完毕跳转,未完毕继续JMPCHECK_7FHJMPS1 ;返回到S1重新扫描END 乙机: ORG 00H AJMP MAIN3 ORG 0023H ;中断入口AJMP RECEIVE ORG 0100H MAIN3: MOV TMOD,#20H ;定时器T1为方式2 MOV TL1, #0F4H ;波特率为2400 MOV TH1,#0F4H MOV PCON,#80H ;令SMOD=1 SETB TR1 ;启动T1 SETB EA

17、;开中断 CLR ES ;关闭串行口中断 MOV SCON,#50H ;串行口为方式1,接收使能 WAIT_DIAL: JBC RI,CHECK_06 ;判断是否接收到呼叫 JMP WAIT_DIALCHECK_06: MOV A,SBUF ;接收到的数据载入A CJNE A,#06H,WAIT_DIAL SEND_RESPONSE: MOV SBUF, #00H ;发送应答信号00HCHECK_00:JBCTI ,RECEIVE_NUM ;判断应答号是否发送完毕 JMP CHECK_00 RECEIVE_NUM: JBC RI,RECEIVE ;等待接收数据 JMP RECEIVE_NUM

18、RECEIVE: SETB ES ;开串行口中断MOVA,SBUF ;开始接收数据 CHECK_S1: CJNE A,#0EFH,CHECK_S2 ;判断是否为S1闭合,未闭合跳转 CLRP3.2 ;选通第一位数码管 MOV P1,#79H ;使显示E,表示正转 ACALL DELAY SETBP3.2 ;关闭第一位数码管 CLRES ;关串行口中断 CLRTR1 ;关闭T1 JMP RECEIVE ;重新接收数据CHECK_S2: CJNE A,#0DFH,CHECK_S3 ;判断是否为S2闭合,未闭合跳转 CLRP3.2 ;选通第一位数码管 MOV P1,#71H ;使显示F,表示反转 A

19、CALL DELAY SETBP3.2 ;关闭第一位数码管 CLRES ;关闭串行口中断 CLRTR1 ;关闭T1 JMP RECEIVE CHECK_S3:CJNEA,#0BFH,CHECK_S4 ;判断是否为S3闭合,未闭合跳转MOV60H,#0 ;60H作为步数存储单元,起始步数送60HMOVR0,60HSTART1:MOVA,R0MOVB,#100DIVAB ;步数除以100MOV61H,A ;百位存入61HMOVA,B ;余数送入AMOVB,#10DIVAB MOV62H,A ;十位存入62HMOVA,BMOV63H,A ;个位存入63HCLRP3.3 ;选通百位MOVA,61H ;

20、通过查表,将百位数送入显示MOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,AACALLDELAYSETBP3.3 ;关闭百位CLRP3.4 ;选通十位MOVA,62H ;通过查表,将十位数送入显示MOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,AACALLDELAYSETBP3.4 ;关闭十位CLRP3.5 ;选通个位MOVA,63H ;通过查表,将个位数送入显示MOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,AACALLDELAYSETBP3.5 ;关闭个位INCR0 ;步数加一START2:MOVR2,#03H ;三相步进电机MOVDPTR,

21、#TABLE1 ;通过查表使步进电机旋转LOOP1:CLRAMOVCA,A+DPTRMOVP2,AINCDPTRACALLDELAYDJNZR2,LOOP1CJNER0,#101,START1 ;步进电机到100圈跳转 CLRES CLRTR1 LJMP RECEIVECHECK_S4:CJNEA,#7FH,JSH ;判断S4是否按下,未按下则跳转MOV60H,#0 ;60H作为步数存储单元,起始步数送60HMOVR0,60HSTART3:MOVA,R0MOVB,#100DIVABMOV61H,AMOVA,BMOVB,#10DIVABMOV62H,AMOVA,BMOV63H,ACLRP3.3MOVA,61HMOVDPTR,

温馨提示

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

评论

0/150

提交评论