单片机课程设计报告完美版Word下载.docx

上传人:b****5 文档编号:21284934 上传时间:2023-01-29 格式:DOCX 页数:14 大小:185.84KB
下载 相关 举报
单片机课程设计报告完美版Word下载.docx_第1页
第1页 / 共14页
单片机课程设计报告完美版Word下载.docx_第2页
第2页 / 共14页
单片机课程设计报告完美版Word下载.docx_第3页
第3页 / 共14页
单片机课程设计报告完美版Word下载.docx_第4页
第4页 / 共14页
单片机课程设计报告完美版Word下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机课程设计报告完美版Word下载.docx

《单片机课程设计报告完美版Word下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告完美版Word下载.docx(14页珍藏版)》请在冰豆网上搜索。

单片机课程设计报告完美版Word下载.docx

⑵、广泛应用于ATM机、喷绘机、刻字机、写真机、喷涂设备、医疗仪器及设备、计算机外设及海量存储设备、精密仪器、工业控制系统、办公自动化、机器人等领域。

特别适合要求运行平稳、低噪音、响应快、使用寿命长、高输出扭矩的应用场合。

3.步进电机在电脑绣花机等纺织机械设备中有着广泛的应用,这类步进电机的特点是保持转矩不高,频繁启动反应速度快、运转噪音低、运行平稳、控制性能好、整机成本低。

目前用于电脑绣花机的步进电机多数为五相混合式步进电机,目的是通过采用高相数的步进电机来减小步矩角和提高控制精度,但是采用该种方式获得的性能上的提高是有限的.而且成本也相对较高。

采用细分驱动技术可以大大改善步进电机的运行品质,减少转矩波动,抑制振荡,降低噪音,提高步矩分辨率。

若采用反应式步进电机,在性能明显提高的同时还能大大降低产品的成本。

⑶、凡需要对转角进行精确控制的情况下,使用步进电机最为理想。

2、设计原理

1.设计的目的

⑴、了解步进电机的基本原理,掌握步进电机的转动编程方法。

⑵、了结影响电机转速的因素有哪些。

三、电路设计

1.单片机型号的选择

8031片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外接的程序存储器多为EPROM的2764系列,用户若想对写入到EPROM的程序进行修改,必须使用一种特殊的紫外线灯将其照射擦除,之后再写入,写入到程序存储器的程序代码没有什么保密性可言。

51的优点是有乘法和除法指令,给变成带来了方便,其内部的硬件到软件有一套完整的布尔处理器,51系列在片内RAM区开辟了一个双重功能的地址区间16个字节,单元地址20H~2FH,即可做字节处理又可做位处理,使用极为灵活。

51单片机价格更便宜。

市场上51系列单片机种类较多。

综上,所以选择80C51单片机。

2.硬件电路设计

⑴、实验原理图如下:

⑵、8279键盘∕LED控制器

⑶键盘&

LED

⑷80C51单片机控制

4、软件设计

1.程序框图

改变方向子程序:

启动步进电机子程序:

增速子程序:

减速子程序:

定时中断程序

2.完整程序

;

EXTRNCODE(INIT8279,SCAN_KEY,Display8)

MAIN_CODESEGMENTCODE

MAIN_BITSEGMENTBIT

MAIN_DATASEGMENTDATA

STACKSEGMENTIDATA

PUBLICINIT8279,SCAN_KEY,Display8

CMD_8279XDATA0bF01H

DATA_8279XDATA0bF00H

RSEGMAIN_DATA

StepControl:

DS1

buffer:

DS8

SpeedNo:

StepDelay:

StartStepDelay:

StartStepDelay1:

DS1

RSEGMAIN_BIT

bFirst:

DBIT1

bClockwise:

DBIT1

bNeedDisplay:

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

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

MOVStepControl,A

Clockwise:

MOVbuffer,#0

JNBbFirst,Clockwise1

Clockwise1:

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

Speed_Down1:

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

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

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

XCHA,R7

XCHA,B

ADDA,R7

ADDA,buffer+7

ADDCA,#0

MOVR6,A

CJNER7,#0,TakeStepCount1

RET

TakeStepCount1:

INCR6

INIT8279:

MOVA,#34H

MOVX@DPTR,A

CLRA

MOVDPTR,#CMD_8279

INIT8279_1:

CALLCLEAR

MOVA,#90H

MOVX@DPTR,A

RET

CLEAR:

MOVA,#0DEH

WAIT1:

MOVXA,@DPTR

JBACC.7,WAIT1

SCAN_KEY:

MOVDPTR,#CMD_8279

READ_FIFO:

ANLA,#7

JZNO_KEY

READ:

MOVA,#40H

MOVDPTR,#DATA_8279

ACALLKEY_NUM

SETBC

SCAN_KEY1:

NO_KEY:

SJMPSCAN_KEY1

KEY_NUM:

ANLA,#3FH

WRITE_DATA:

MOVDPTR,#DATA_8279

LED_TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB080H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH

Display8:

PUSH07H

MOVDPTR,#LED_TAB

MOVP2,#HIGH(CMD_8279)

MOVR1,#LOW(CMD_8279)

MOVA,#90H

MOVX@R1,A;

第一位开始显示

MOVR1,#LOW(DATA_8279)

MOVR7,#8

Display81:

MOVA,@R0

MOVCA,@A+DPTR

MOVX@R1,A

INCR0

DJNZR7,Display81

POP07H

END

5、结语

1、运行情况:

首次运行时电机不会旋转,在加入子程序时,电机只能做单方向简单

旋转,当加入子程序(INIT8279:

到LED_TAB:

)电机才能做正反转方向的转动,且能加减速。

2、改进建议:

但运行时,键盘操作指示灯不亮,加入bNeedDisplay:

子程序,且能正常运转时,为单片机控制步进电机的最佳状态。

3、感想:

通过本次课程设计,让我进一步了解了单片机的实际应用,随着科技的发展,步进电机会运用的越来越多,掌握好单片机会实现我们的自身价值。

六、参考文献

[1]王君.单片机原理及控制技术机械工业出版社,北京,2010

[2]张永枫.单片机应用实训教程机械工业出版社,北京,2009

[3]林春景.单片机原理与应用机械工业出版社,北京,2009

[4]杨居义.单片机课程设计指导清华大学出版社,北京,2009

[5]张小林、崔洗.51单片机常用模块设计查询手册,清华大学出版社,2010

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

当前位置:首页 > 初中教育 > 中考

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

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