单片机课程设计报告.docx
- 文档编号:29878272
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:17
- 大小:83.04KB
单片机课程设计报告.docx
《单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
单片机课程设计报告
哈尔滨理工大学荣成学院
单片机原理及应用
课程设计报告
班级:
姓名:
学号:
日期:
步进电机实验
一、实验内容
编写程序:
使用G5区的键盘控制步进电机的正反转、调节转速,连续转动或转动指定步数,将相应的数据显示在G5区的数码管上。
二、原理图
1、原理图
2、原理
步进电机的驱动原理是通过它每相线圈的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲来控制,所以调节脉冲的频率便可改变步进电机的转速,微控制器最适合控制步进电机。
另外,由于电机的转动惯量的存在,其转动速度还受驱动功率的影响,当脉冲的频率大于某一值(本实验为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)。
三、程序流程图
4、实验步骤及现象
1、模块结构功能介绍
(1)A3区:
CPU总线、I/O接口、片选区
STARES598PCI:
JP45:
地址线A0..A7;
JP51、JP55:
CPU的P1口;
STARES59PA:
JP37,JP45:
地址线A0..A7;
JP51、JP55:
CPU的P1口;
片选区:
片选
地址范围
片选
地址范围
CS1
0F000H~0FFFFH
CS5
0B000H~0BFFFH
CS2
0E000H~0EFFFH
CS6
0A000H~0AFFFH
CS3
0D000H~0DFFFH
CS7
09000H~09FFFH
CS4
0C000H~0CFFFH
CS8
08000H~08FFFH
(2)B2区:
逻辑笔、单脉冲、频率发生器
频率发生器电路原理图
2M:
输出2MHz频率信号
(3)E1区:
步进电机
(4)E5区:
8279键盘/LED控制器
CS:
片选信号,低电平有效
A0:
地址信号
CLK:
时钟
A:
接按键的列线
B:
接数码管段码
C:
接数码管选择脚
D:
接按键的行线
(5)G5区:
键盘&LED
A:
按键的列线
B:
数码管段码
C:
数码管选择脚
D:
按键的行线
2、主机连线说明
E1区:
A、B、C、D
——
A3区:
P1.0、P1.1、P1.2、P1.3
E5区:
CLK
——
B2区:
2M
E5区:
CS、A0
——
A3区:
CS5、A0
E5区:
A、B、C、D
——
G5区:
A、B、C、D
3、硬件连接实物图
4、演示程序
NAME
MAIN
;定义模块名
EXTRNCODE(INIT8279,SCAN_KEY,Display8)
;8279.ASM中定义的子程序。
MAIN_CODE
SEGMENT
CODE
MAIN_BIT
SEGMENT
BIT
MAIN_DATA
SEGMENT
DATA
STACK
SEGMENT
IDATA
RSEG
MAIN_DATA
StepControl:
DS
1
;下次送给步进电机的值
buffer:
DS
8
;显示缓冲区,8个字节
SpeedNo:
DS
1
;选择哪一级速度
StepDelay:
DS
1
;转动一步后,延时常数
;如果选择的速度快于启动速度,延时由长到短,最终使用对应的延时常数
StartStepDelay:
DS
1
StartStepDelay1:
DS
1
;StartStepDelay
RSEG
MAIN_BIT
bFirst:
DBIT
1
;有没有转动过步进电机
bClockwise:
DBIT
1
;=1顺时针方向=0逆时针方向转动
bNeedDisplay:
DBIT
1
;已转动一步,需要显示新步数
RSEG
STACK
DS
20H
;32BytesStack
CSEG
AT
0000H
;定位0
LJMP
STAR
CSEG
AT
000BH
LJMP
TIMER0
RSEG
MAIN_CODE
STAR:
MOV
SP,#STACK-1
ACALL
INIT8279
SETB
bFirst
SETB
bClockwise
MOV
StepControl,#33H;下一次送给步进电机的值
MOV
SpeedNo,#5
MOV
TMOD,#02H
MOV
TH0,#55
MOV
TL0,#55
;200us延时
MOV
IE,#82H
MOV
Buffer+7,#0
MOV
buffer+6,#0
MOV
buffer+5,#0
MOV
buffer+4,#0
MOV
buffer+3,#10H
MOV
buffer+2,SpeedNo
MOV
buffer+1,#10H
MOV
buffer,#0
STAR2:
MOV
R0,#buffer
ACALL
Display8
STAR3:
ACALL
Scan_Key
JC
STAR5
JNB
bNeedDisplay,STAR3
CLR
bNeedDisplay
ACALL
Step_SUB_1
SJMP
STAR2
STAR5:
CLR
TR0
;终止步进电机转动
CJNE
A,#10,$+3
JNC
STAR1
MOV
buffer+4,buffer+5
MOV
buffer+5,buffer+6
MOV
buffer+6,buffer+7
MOV
Buffer+7,A
SJMP
STAR2
STAR1:
CJNE
A,#14,$+3
JNC
STAR3
MOV
DPTR,#DriverTab
CLR
C
SUBB
A,#10
RL
A
JMP
@A+DPTR
DriverTab:
SJMP
Direction
;转动方向
SJMP
Speed_up
;提高转速
SJMP
Speed_Down
;降低转速
SJMP
Exec;步进电机根据方向、转速、步数开始转动
Direction:
CPL
bClockwise
JB
bClockwise,Clockwise
MOV
buffer,#1
AntiClockwise:
JNB
bFirst,AntiClockwise1
MOV
StepControl,#91H
SJMP
Direction1
AntiClockwise1:
MOV
A,StepControl
RR
A
RR
A
MOV
StepControl,A
SJMP
Direction1
Clockwise:
MOV
buffer,#0
JNB
bFirst,Clockwise1
MOV
StepControl,#33H
SJMP
Direction1
Clockwise1:
MOV
A,StepControl
RL
A
RL
A
MOV
StepControl,A
Direction1:
SJMP
STAR2
Speed_up:
MOV
A,SpeedNo
CJNE
A,#11,Speed_up1
SJMP
Speed_up2
Speed_up1:
INC
SpeedNo
MOV
buffer+2,SpeedNo
Speed_up2:
SJMP
STAR2
Speed_Down:
MOV
A,SpeedNo
JZ
Speed_Down1
DEC
SpeedNo
MOV
buffer+2,SpeedNo
Speed_Down1:
SJMP
STAR2
Exec:
CLR
bFirst
ACALL
TakeStepCount
MOV
DPTR,#StepDelayTab
MOV
A,SpeedNo
MOVC
A,@A+DPTR
MOV
StepDelay,A
CJNE
A,#50,$+3
JNC
Exec1
MOV
A,#50
Exec1:
MOV
StartStepDelay,A
MOV
StartStepDelay1,A
SETB
TR0
AJMP
STAR2
StepDelayTab:
DB
250,125,83,62,50,42,36,32,28,25,22,21
TIMER0:
PUSH
ACC
DJNZ
StartStepDelay,TIMER0_1
MOV
A,StartStepDelay1
CJNE
A,StepDelay,TIMER0_5
SJMP
TIMER0_2
TIMER0_5:
DEC
A
MOV
StartStepDelay1,A
TIMER0_2:
MOV
StartStepDelay,A
MOV
A,StepControl
CPL
A
MOV
P1,A
CPL
A
JB
bClockwise,TIMER0_3
RR
A
SJMP
TIMER0_4
TIMER0_3:
RL
A
TIMER0_4:
MOV
StepControl,A
MOV
A,R6
ORL
A,R7
JZ
TIMER0_1
SETB
bNeedDisplay
DJNZ
R7,TIMER0_1
DJNZ
R6,TIMER0_1
CLR
TR0
TIMER0_1:
POP
ACC
RETI
Step_SUB_1:
MOV
R5,#4
MOV
R0,#buffer+7
Step_SUB_1_1:
MOV
A,@R0
DEC
@R0
JNZ
Step_SUB_1_2
MOV
@R0,#9
DEC
R0
DJNZ
R5,Step_SUB_1_1
Step_SUB_1_2:
RET
TakeStepCount:
MOV
A,buffer+4
;转动步数送入R6R7
MOV
B,#10
MUL
AB
ADD
A,buffer+5
MOV
B,#10
MUL
AB
ADD
A,buffer+6
MOV
R7,A
MOV
A,B
ADDC
A,#0
MOV
B,#10
MUL
AB
XCH
A,R7
MOV
B,#10
MUL
AB
XCH
A,B
ADD
A,R7
XCH
A,B
ADD
A,buffer+7
MOV
R7,A
MOV
A,B
ADDC
A,#0
MOV
R6,A
CJNE
R7,#0,TakeStepCount1
RET
TakeStepCount1:
INC
R6;低位不为0,则高位加一,因循环时,会多减一
RET
END
5、实验现象
G5区的数码管上显示步进电机相应信息,通过G5区的键盘可以控制步进电机的正反转、调节转速,连续转动或转动指定步数。
五、结论与心得
通过本次为期一周的课程设计,我受益匪浅。
这不仅锻炼了我查找资料的能力,更考察了本学期所学的汇编语言和单片机原理的知识。
本次课程设计不仅使自己的动手能力有了大大的提高,而且使查找问题、解决问题的能力有了相应的进步。
虽然最后实验获得了成功,但是在实验的过程中还是遇到了许多困难。
比如,第一次调试程序的时候,得不到应有的结果。
我们以为是实验仪有问题,就换了电脑调试,但是都得不出结果。
那时候真的很苦恼,后来在老师的提示下,找了别组的同学帮忙找到了应该添加的子程序,期待已久的实验结果终于出来了,那一刻真的很开心,所有的努力都没有白费,累积的阴霾也消失了。
不管怎样,感谢学校为我们提供这些亲自动手的机会,让我们不至于变成理论的奴隶。
只有在实践的过程中发现自己的不足,才能更好地提高。
而且这次课程设计还让我还意识到,在做这些设计的时候一定要有足够的勇气和毅力去克服各种困难和挫折,同时也要熟练地掌握基本的理论知识,这样才能更快更好地对设计过程中出现的问题进行分析和解决。
6、参考文献
1、李全利.单片机原理及接口技术.北京:
高等教育出版社,2009.
2、梅晓榕,柏桂珍,张卯瑞.自动控制元件及线路.北京:
科学出版社,2007.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告