单片机课程设计.docx
- 文档编号:30237564
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:24
- 大小:80.30KB
单片机课程设计.docx
《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(24页珍藏版)》请在冰豆网上搜索。
单片机课程设计
考试序列号18
课程设计
论文题目:
步进电机角度控制
(2)
课程名称:
计算机控制技术
学院自动化学院
专业班级
学号8
姓名
指导教师
2013年06月25日
一、目的:
1.巩固和加深对《计算机控制技术》课程内容的认识和理解,提高应用水平。
2.熟悉键盘控制和七段数码管的使用。
3.掌握直流电机的速度控制和测试方法。
二、课程设计内容
1.在显示器上显示任意四位十进制数。
2.将8个键定义键值为0~7,按任意键在显示器上显示对应键值。
3.实现:
(1)定义键盘按键:
5个数字键;3个功能键:
设置SET、清零CLR、开始START;
(2)显示器上第一位显示次数,后三位显示每次行走的角度;
(3)通过键盘的按键,设置步进电机各次的角度值;按动SET键后,开始设置:
第一位设置次数,后三位设置角度值,再按动SET置入;可连续置入的角度。
(4)按START键启动步进电机开始转动,到位后停止;按CLR键清零步进电机回原位。
4.电路框图(参见任务书)。
三、任务要求
1.设置键盘为下图所示:
2
4
5
7
CLR
SET
START
0
2.要求实现以下功能:
(1)键入4(次数)270(角度值)键入SET设置完毕,键入START步进电机转动270度4次;停止后键入CLR返回零位;每个过程都必须有相关的显示。
(2)键入7(次数)45(角度值)键入SET设置完毕,键入START步进电机转动45度7次;停止后键入CLR返回零位;每个过程都必须有相关的显示。
四、程序代码
实验一:
按键设置为0178
EFAB
程序:
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOV50H,#00H
MOV51H,#00H
MOV52H,#00H
MOV53H,#00H
MOVR5,#53H
;-------------------------------------------
BEGIN:
MOVDPTR,#7F03H
MOVA,#81H
MOVX@DPTR,A
;-------------------------------------------
MOVDPTR,#7F00H
MOVA,#00H
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVA,@DPTR
ANLA,#03H
CJNEA,#03H,INK1
ACALLDIS
AJMPBEGIN
INK1:
ACALLDL1MS
MOVDPTR,#7F02H
MOVXA,@DPTR
ANLA,#03H
CJNEA,#03H,INK2
INK2:
MOVDPTR,#7F00H
MOVA,#0FEH
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVXA,@DPTR
JNBACC.1,KEY0
JNBACC.0,KEYD
AJMPBEGIN
;-------------------------------------------
MOVDPTR,#7F00H
MOVA,#0FDH
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVA,@DPTR
JNBACC.1,KEY1
JNBACC.0,KEYF
MOVDPTR,#7F00H
MOVA,#0FBH
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVA,@DPTR
JNBACC.1,KEY7
JNBACC.0,KEYA
MOVDPTR,#7F00H
MOVA,#0FBH
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVXA,@DPTR
JNBACC.1,KEY8
JNBACC.0,KEYB
;-------------------------------------------
KEY0:
MOVDPTR,#7F00H
MOVA,#00H
MOVX@DPTR,A
ACALLPUTBUF
ACALLDIS
AJMPSTTK
KEY1:
MOVDPTR,#7F01H
MOVA,#00H
MOVX@DPTR,A
ACALLPUTBUF
ACALLDIS
AJMPSTTK
KEY7:
MOVDPTR,#7F07H
MOVA,#00H
MOVX@DPTR,A
ACALLPUTBUF
ACALLDIS
AJMPSTTK
KEY8:
MOVDPTR,#7F08H
MOVA,#00H
MOVX@DPTR,A
ACALLPUTBUF
ACALLDIS
AJMPSTTK
KEYA:
MOVDPTR,#7F0AH
MOVA,#00H
MOVX@DPTR,A
ACALLPUTBUF
ACALLDIS
AJMPSTTK
KEYB:
MOVDPTR,#7F0BH
MOVA,#00H
MOVX@DPTR,A
ACALLPUTBUF
ACALLDIS
AJMPSTTK
KEYE:
MOVDPTR,#7F0EH
MOVA,#00H
MOVX@DPTR,A
ACALLPUTBUF
ACALLDIS
AJMPSTTK
KEYF:
MOVDPTR,#7F0FH
MOVA,#00H
MOVX@DPTR,A
ACALLPUTBUF
ACALLDIS
AJMPSTTK
;-------------------------------------------
PUTBUF:
PUSH00H
PUSHACC
MOVA,R5
MOVR0,A
POPACC
MOV@R0,A
DECR5
CJNER5,#4FH,GOBACK
MOVR5,#53H
GOBACK:
POP00H
RET
DIS:
PUSHACC
PUSH00H
PUSH03H
PUSHDPH
PUSHDPL
MOVR0,#50H
MOVR3,#F7H
AA2:
MOVA,@R0
MOVDPTR,#AA1
MOVCA,@A+DPTR
MOVDPTR,#7F01H
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVX@DPTR,R3
ACALLDL1MS
MOVA,R3
JNBACC.0,AA3
RRA
MOVR3,A
INCR0
AJMPAA2
AA3:
POPDPL
POPDPH
POP03H
POP00H
POPACC
RET
AA1:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
;-------------------------------------------
DL1MS:
MOVR7,#01H
DL0:
MOVR6,#0FFH
DL1:
DJNZR6,DL1
DJNZR7,DL0
RET
;-------------------------------------------
STTK:
ACALLDIS
MOVDPTR,#7F00H
MOVA,#00H
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVA,@DPTR
ANLA,#03H
CJNEA,#03H,STTK
AJMPBEGIN
END
;-----------------------------------------------------------------------------------------------------------------------------------------
实验二:
程序:
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOV50H,#00H;角度个位
MOV51H,#00H;角度十位
MOV52H,#00H;角度百位
MOV53H,#00H;转次数
MOV54H,#00H;START标志位
MOV55H,#00H;CLR标志位
MOV56H,#00H
MOV57H,#00H;正反转标志位
MOV58H,#01H;前后4拍标志位
MOV59H,#00H;存放转的步数
MOV60H,#00H;角度个位
MOV61H,#00H;角度十位
MOV62H,#00H;角度百位
MOV63H,#00H;转次数
MOVDPTR,#7F03H
MOVA,#81H
MOVX@DPTR,A
BEGIN:
MOVDPTR,#7F00H;键盘检测
MOVA,#00H
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVXA,@DPTR
ANLA,#03H
CJNEA,#03H,INK1
MOVA,54H;电机运动及正反转判断
CJNEA,#01H,TEST1;START=0跳
MOVA,55H
CJNEA,#01H,ZHENG;CLR=0跳
AJMPNT;跳去显示
TEST1:
MOVA,55H;START=0
CJNEA,#01H,NT;START=0,CLR=0跳去显示
FAN:
MOV57H,#00H;给个反转标志
LCALLBJF
AJMPBEGIN
ZHENG:
MOV57H,#01H;给个正传标志
ACALLBJZ
NT:
ACALLDIS
AJMPBEGIN
INK1:
ACALLDL1MS
MOVDPTR,#7F02H
MOVXA,@DPTR
ANLA,#03H
CJNEA,#03H,INK2
AJMPBEGIN
INK2:
MOVDPTR,#7F00H
MOVA,#0FEH
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVXA,@DPTR
JNBACC.1,KEY2
JNBACC.0,KEYCLR
MOVDPTR,#7F00H
MOVA,#0FDH
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVXA,@DPTR
JNBACC.1,KEY4
JNBACC.0,KEYSET
MOVDPTR,#7F00H
MOVA,#0FBH
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVXA,@DPTR
JNBACC.1,KEY5
JNBACC.0,KEYSTART
MOVDPTR,#7F00H
MOVA,#0F7H
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVXA,@DPTR
JNBACC.1,KEY7
JNBACC.0,KEY0
LJMPSTTK
KEYCLR:
MOV54H,#00H
LJMPSTTK
KEYSTART:
MOV54H,#01H
LJMPSTTK
KEYSET:
MOV60H,50H
MOV61H,51H
MOV62H,52H
MOV63H,53H
MOV50H,#00H
MOV51H,#00H
MOV52H,#00H
MOV53H,#00H
LJMPSTTK
KEY0:
MOVA,#00H
ACALLPUTBUF
ACALLDIS
LJMPSTTK
KEY2:
MOVA,#02H
ACALLPUTBUF
ACALLDIS
LJMPSTTK
KEY4:
MOVA,#04H
ACALLPUTBUF
ACALLDIS
LJMPSTTK
KEY5:
MOVA,#05H
ACALLPUTBUF
ACALLDIS
LJMPSTTK
KEY7:
MOVA,#07H
ACALLPUTBUF
ACALLDIS
LJMPSTTK
PUTBUF:
PUSH00H
PUSHACC
MOVR1,#3
MOVR0,#52H
PUTBUF0:
MOVA,@R0
INCR0
MOV@R0,A
DECR0
DECR0
DJNZR1,PUTBUF0
POPACC
MOV50H,A
POP00H
RET
DIS:
PUSHACC
PUSH00H
PUSH03H
MOVR0,#50H
MOVR3,#0F7H
AA2:
MOVA,@R0
MOVDPTR,#A1
MOVCA,@A+DPTR
MOVDPTR,#7F01H
MOVX@DPTR,A
MOVDPTR,#7F00H
MOVA,R3
MOVX@DPTR,A
ACALLDL1MS
MOVA,R3
JNBACC.0,AA3
RRA
MOVR3,A
INCR0
AJMPAA2
AA3:
POP03H
POP00H
POPACC
RET
STTK:
ACALLDIS
MOVDPTR,#7F00H
MOVA,#00H
MOVX@DPTR,A
MOVDPTR,#7F02H
MOVXA,@DPTR
ANLA,#03H
CJNEA,#03H,STTK
AJMPBEGIN
A1:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
DL1MS:
MOVR7,#02H
DL0:
MOVR6,#0FFH
DL1:
DJNZR6,DL1
DJNZR7,DL0
RET
BJZ:
MOV57H,#01H;正转标志
ACALLBJ1
MOV40H,50H
MOV41H,51H
MOV42H,52H
MOV43H,53H
MOV50H,60H
MOV51H,61H
MOV52H,62H
MOV53H,63H
MOV57H,#01H;正转标志
ACALLBJ1
MOV54H,#01H
MOV55H,#01H
RET
BJF:
MOV57H,#00H;反转标志
ACALLBJ1
MOV60H,#00H
MOV61H,#00H
MOV62H,#00H
MOV63H,#00H
MOV50H,40H
MOV51H,41H
MOV52H,42H
MOV53H,43H
MOV57H,#00H;反转标志
ACALLBJ1
MOV50H,#00H
MOV51H,#00H
MOV52H,#00H
MOV53H,#00H
MOV54H,#00H
MOV55H,#00H
RET
BJ1:
PUSH03H;转动角数据处理
MOVR0,#52H;百位
MOVA,@R0
MOVB,#6H;100=15*6+10
CLRC
MULAB
MOVR1,A;n次15的一个分量
MOVR0,#51H;十位
MOVA,@R0
ADDA,52H
MOVB,#0AH
CLRC
MULAB
MOVR0,#50H;个位
ADDA,@R0;将个位和十位和陈一个数
MOVB,#0FH
CLRC
DIVAB
ADDA,R1;要转A次15
MOV59H,A
MOVR0,53H
MOV56H,53H
MOVA,R0
CJNEA,#00H,AAA4
MOV54H,#00H
MOV55H,#00H
AJMPBACK
AAA4:
MOVR5,53H
AAA3:
MOVR1,59H;转R1次*15
AAA2:
MOVR0,#04H;步距4拍
MOVA,57H
CJNEA,#01H,FZ
MOVA,58H
CJNEA,#01H,ZX;看标志位是走前4拍还是后4拍58=1,走ZS
MOVDPTR,#L1;前4拍
CPLA
MOV58H,A;标志位区反
AJMPAAA1
ZX:
MOVDPTR,#L2;后4拍
CPLA
MOV58H,A
AJMPAAA1
FZ:
MOVA,58H
CJNEA,#01H,FX;看标志位是走前4拍还是后4拍58=1,走ZS
MOVDPTR,#L3;前4拍
CPLA
MOV58H,A;标志位区反
AJMPAAA1
FX:
MOVDPTR,#L4;后4拍
CPLA
MOV58H,A
AAA1:
MOVA,#00H
MOVCA,@A+DPTR
MOVP1,A
ACALLDL1M
INCDPTR
PUSHDPH
PUSHDPL
DECR5
MOV53H,R5
ACALLDIS
INCR5
POPDPL
POPDPH
DJNZR0,AAA1
DJNZR1,AAA2
ACALLDL2MS
DJNZR5,AAA3
MOV53H,56H
BACK:
POP03H
RET
L1:
DB01H,03H,02H,06H
L2:
DB04H,0CH,08H,09H
L3:
DB09H,08H,0CH,04H
L4:
DB06H,02H,03H,01H
DL1M:
MOVR7,#05H
DL2:
MOVR6,#0FFH
DL3:
DJNZR6,DL3
DJNZR7,DL2
RET
DL2MS:
MOVR7,#0FFH
DL4:
MOVR6,#0FFH
DL5:
DJNZR6,DL5
DJNZR7,DL4
RET
END
设计流程图
开始
8255初始化
检测是否有N
按键按下
Y
检测是否有转动电位
SET键按下Y器调角度
N
检测STARTY根据保存的N检测C键
键是否按下数据依次转是否按下
动步进电机
NY
检测CLRN保存所调的
键是否按下角度数据
Y
根据保存的
数据依次反
转步进电机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计