单片机报告.docx

上传人:b****1 文档编号:2441125 上传时间:2022-10-29 格式:DOCX 页数:12 大小:108.86KB
下载 相关 举报
单片机报告.docx_第1页
第1页 / 共12页
单片机报告.docx_第2页
第2页 / 共12页
单片机报告.docx_第3页
第3页 / 共12页
单片机报告.docx_第4页
第4页 / 共12页
单片机报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

单片机报告.docx

《单片机报告.docx》由会员分享,可在线阅读,更多相关《单片机报告.docx(12页珍藏版)》请在冰豆网上搜索。

单片机报告.docx

单片机报告

课程设计

题目:

单片机控制步进电机的设计

 

姓名:

专业:

学号:

2011年10月27日

1、设计题目的背景

1.步进电机的原理

步进电动机又称为脉冲电动机,是数字控制系统的一种执行元件,其功用是将脉冲信号变换为相应的角位移或直线位移,既给一个脉冲电信号,电动机就转动一个角度或前进一步,根据结构和工作原理,步进电动机分为:

永磁式、混合式、反应式。

步进电机的驱动原理是通过它每相线圈的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲来控制,所以调节脉冲的频率便可改变步进电机的转速,微控制器最适合控制步进电机。

另外,由于电机的转动惯量的存在,其转动速度还受驱动功率的影响,当脉冲的频率大于某一值(本实验为f.>100hz)时,电机便不再转动。

实验电机共有四个相位(A,B,C,D),按转动步骤可分单4拍(A->B->C->D->A),双4拍(AB->BC->CD->DA->AB)和单双8拍(A->AB->B->BC->C->CD->D->DA->A).

2.应用领域

(1)在数控钻床的应用

(2)在数控铣床的应用

(3)在计算机外部设备的应用

(4)在电火花切割机床中的应用

(5)在电子雕花机中的应用

二、设计原理

1、设计目的

(1)了解步进电机的基本原理,掌握步进电机的转动编程方法

(2)了解影响电机转速的因素有哪些

三、电路设计

1.单片机型号的选择

现在普遍的用的是80C31和80C51,80C51的EA加上高低电平,决定单片机访问内部或外部的程序存储器,EA高电平时,访问内部程序存储器,但当程序计数器(PC)值超过0FFH时单片机自动转向外部程序存储器。

当EA为低电平时,不管单片机有无内部存储器,只访问外部存储器。

80C31没有内部存储器,所以EA必须接地,这样单片机只能选择外部程序存储器。

所以选80C51性能比较好。

2、硬件电路图

 

 

四软件设计

1、程序框图

2、程序

MAIN_CODESEGMENTCODE

MAIN_BITSEGMENTBIT

MAIN_DATASEGMENTDATA

STACKSEGMENTIDATA

CMD_8279XDATA0bF01H

DATA_8279XDATA0bF00H

RSEGMAIN_DATA

StepControl:

DS1

buffer:

DS8

SpeedNo:

DS1

StepDelay:

DS1

StartStepDelay:

DS1

StartStepDelay1:

DS1

RSEGMAIN_BIT

bFirst:

DBIT1

bClockwise:

DBIT1

bNeedDisplay:

DBIT1

RSEGSTACK

DS20H

CSEGAT0000H

LJMPSTAR

CSEGAT000BH

LJMPTIMER0

RSEGMAIN_CODE

STAR:

MOVSP,#STACK-1

ACALLINIT8279

SETBbFirst

SETBbClockwise

MOVStepControl,#33H

MOVSpeedNo,#5

MOVTMOD,#02H

MOVTH0,#55

MOVTL0,#55

MOVIE,#82H

MOVBuffer+7,#0

MOVbuffer+6,#0

MOVbuffer+5,#0

MOVbuffer+4,#0

MOVbuffer+3,#10H

MOVbuffer+2,SpeedNo

MOVbuffer+1,#10H

MOVbuffer,#0

STAR2:

MOVR0,#buffer

acalldisplay8

STAR3:

ACALLScan_Key

JCSTAR5

JNBbNeedDisplay,STAR3

CLRbNeedDisplay

ACALLStep_SUB_1

SJMPSTAR2

STAR5:

CLRTR0

CJNEA,#10,$+3

JNCSTAR1

MOVbuffer+4,buffer+5

MOVbuffer+5,buffer+6

MOVbuffer+6,buffer+7

MOVBuffer+7,A

SJMPSTAR2

STAR1:

CJNEA,#14,$+3

JNCSTAR3

MOVDPTR,#DriverTab

CLRC

SUBBA,#10

RLA

JMP@A+DPTR

DriverTab:

SJMPDirection

SJMPSpeed_up

SJMPSpeed_Down

SJMPExec

Direction:

CPLbClockwise

JBbClockwise,Clockwise

MOVbuffer,#1

AntiClockwise:

JNBbFirst,AntiClockwise1

MOVStepControl,#91H

SJMPDirection1

AntiClockwise1:

MOVA,StepControl

RRA

RRA

MOVStepControl,A

SJMPDirection1

Clockwise:

MOVbuffer,#0

JNBbFirst,Clockwise1

MOVStepControl,#33H

SJMPDirection1

Clockwise1:

MOVA,StepControl

RLA

RLA

MOVStepControl,A

Direction1:

SJMPSTAR2

Speed_up:

MOVA,SpeedNo

CJNEA,#11,Speed_up1

SJMPspeed_up2

Speed_up1:

INCSpeedNo

MOVbuffer+2,SpeedNo

Speed_up2:

SJMPSTAR2

Speed_Down:

MOVA,SpeedNo

JZSpeed_Down1

DECSpeedNo

MOVbuffer+2,SpeedNo

Speed_Down1:

SJMPSTAR2

Exec:

CLRbFirst

ACALLTakeStepCount

MOVDPTR,#StepDelayTab

MOVA,SpeedNo

MOVCA,@A+DPTR

MOVStepDelay,A

CJNEA,#50,$+3

JNCExec1

MOVA,#50

Exec1:

MOVStartStepDelay,A

MOVStartStepDelay1,A

SETBTR0

AJMPSTAR2

StepDelayTab:

DB250,125,83,62,50,42,36,32,28,25,22,21

TIMER0:

PUSHACC

DJNZStartStepDelay,TIMER0_1

MOVA,StartStepDelay1

CJNEA,StepDelay,TIMER0_5

SJMPTIMER0_2

TIMER0_5:

DECA

MOVStartStepDelay1,A

TIMER0_2:

MOVStartStepDelay,A

MOVA,StepControl

CPLA

MOVP1,A

CPLA

JBbClockwise,TIMER0_3

RRA

SJMPTIMER0_4

TIMER0_3:

RLA

TIMER0_4:

MOVStepControl,A

MOVA,R6

ORLA,R7

JZTIMER0_1

SETBbNeedDisplay

DJNZR7,TIMER0_1

DJNZR6,TIMER0_1

CLRTR0

TIMER0_1:

POPACC

RETI

Step_SUB_1:

MOVR5,#4

MOVR0,#buffer+7

Step_SUB_1_1:

MOVA,@R0

DEC@R0

JNZStep_SUB_1_2

MOV@R0,#9

DECR0

DJNZR5,Step_SUB_1_1

Step_SUB_1_2:

RET

TakeStepCount:

MOVA,buffer+4

MOVB,#10

MULAB

ADDA,buffer+5

MOVB,#10

MULAB

ADDA,buffer+6

MOVR7,A

MOVA,B

ADDCA,#0

MOVB,#10

MULAB

XCHA,R7

MOVB,#10

MULAB

XCHA,B

ADDA,R7

XCHA,B

ADDA,buffer+7

MOVR7,A

MOVA,B

ADDCA,#0

MOVR6,A

CJNER7,#0,TakeStepCount1

RET

TakeStepCount1:

INCR6

RET

INIT8279:

MOVA,#34H

MOVX@DPTR,A

CLRA

MOVDPTR,#CMD_8279

MOVX@DPTR,A

INIT8279_1:

CALLCLEAR

MOVA,#90H

MOVX@DPTR,A

RET

CLEAR:

MOVA,#0DEH

MOVDPTR,#CMD_8279

MOVX@DPTR,A

WAIT1:

MOVXA,@DPTR

JBACC.7,WAIT1

RET

SCAN_KEY:

MOVDPTR,#CMD_8279

MOVXA,@DPTR

READ_FIFO:

ANLA,#7

JZNO_KEY

READ:

MOVA,#40H

MOVX@DPTR,A

MOVDPTR,#DATA_8279

MOVXA,@DPTR

ACALLKEY_NUM

SETBC

SCAN_KEY1:

RET

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1