单片机课程设计报告完美版Word下载.docx
- 文档编号:21284934
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:14
- 大小:185.84KB
单片机课程设计报告完美版Word下载.docx
《单片机课程设计报告完美版Word下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告完美版Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
⑵、广泛应用于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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告 完美