单片机步进电机Word格式.docx
- 文档编号:19616569
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:19
- 大小:78.09KB
单片机步进电机Word格式.docx
《单片机步进电机Word格式.docx》由会员分享,可在线阅读,更多相关《单片机步进电机Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
变量名称
RAM单元/寄存器
功能
DATA1
30H
显示缓冲区首地址
20H
相序首地址
28H
A/D转换数据滤波求和中的高八位
29H
A/D转换数据滤波求和中的低八位
2AH-2DH
读出的ZLG7290de00H-03H数据存放地址
2EH
相序循环次数8
FX
2FH
控制转向标志
3CH
相序列表中最后一个相序地址
3DH
相序列表中第一个相序地址
3EH
滤波结果存放地址
3FH
A/D转换结果存放地址
六、系统软件中各个子程序的功能描述
子程序名称
入口参数
出口参数
功能描述
CF
R3、R4
将数据拆分为两位16进制数查表得对应字形码
INT_7290
R0、R7、R2、R3、R4
显示电机转动方向
T1_INT
A
控制电机转动速度
ADZH
无
模拟信号转换为数字信号
BCD_CONT
16进制数转换为10进制数
DELAY
R0、R1
延时子程序使显示稳定
RDADD
R0,R2,R3,R4,R7
@R0到@R0+7
多字节读操作
WRNBYT
R0,R2,R3,R7
多字节写操作
STA
I²
C启动信号
STOP
C停止信号
MACK
发送I²
C应答信号
MNACK
C非应答信号
CACK
F0
C应答检测
WRBYT
C发送一个字节
RDBYT
R2
C接收一个字节
七、主程序程序流程图
T1_INT中断服务子程序
八、程序清单
;
###############ADC模块连线###############
DATBITP3.3
CLKBITP3.4
CSBITP3.5
############键盘控制模块连线#############
SDABITP1.4
SCLBITP1.5
WSLAEQU070H
RSLAEQU071H
FXEQU2FH;
将控制转向标志放在2FH单元
DATA1EQU30H;
变量缓冲区的首地址
********************************************************
ORG8000H
LJMP8100H
ORG8003H
LJMPINT_7290;
控制转向的中断服务程序
ORG801BH
LJMPT1_INT;
控制转速的中断服务程序
初始化部分
ORG8100H
START:
MOVSP,#60H
CLRP1.7;
7290复位
LCALLDELAY
SETBP1.7
SETBEA;
开INT0中断
SETBEX0
SETBIT0;
触发极性为下降沿
SETBET1;
开T1中断
SETBTR1
MOVTMOD,#10H;
设定定时器T1工作方式及初值
MOVTH1,#00H
MOVTL1,#00H
MOV3DH,#20H
MOV3CH,#27H
MOV2EH,#08H
MOVFX,#00H
MOV20H,#0F8H;
相序放在20H~27H中
MOV21H,#0FCH
MOV22H,#0F4H
MOV23H,#0F6H
MOV24H,#0F2H
MOV25H,#0F3H
MOV26H,#0F1H
MOV27H,#0F9H
MOV34H,#0DAH
MOV35H,#0FCH;
用34H、35H显示FLAG;
用30H~31H显示ADC转换结果
MOVDATA1+7,#00H;
熄灭
MOVDATA1+6,#00H;
MOVDATA1+3,#00H;
MOVDATA1+2,#00H
向7290B写入数据
LOOP:
LCALLADZH;
数据滤波
LCALLBCD_CONT;
转换成十进制
MOVR7,#08H
MOVR2,#10H
MOVR3,#WSLA
MOVR0,#DATA1
LCALLWRNBYT;
调显示子程序
LCALLDELAY;
使显示稳定
SJMPLOOP
******************************************************************
LEDSEG:
DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H;
0-7的字形码
DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH;
8-F的字形码
DB0FAH,1EH,12H,00H;
a,t,=和熄灭码
拆分程序(将A中的数据拆分为两个四位16进制数并查表)
(结果在R4、R3中)
CF:
PUSH02H;
将A中的数据拆分为两个四位16进制数并查表
PUSHDPH
PUSHDPL
MOVDPTR,#LEDSEG
MOVR2,A
ANLA,#0FH
MOVCA,@A+DPTR
MOVR3,A
MOVA,R2
SWAPA
MOVR4,A
POPDPL
POPDPH
POP02H
RET
*******************************************************************
中断服务程序INT_7290:
(INT0),显示FLAG值
*******************************************************************
INT_7290:
PUSH00H
PUSH02H
PUSH03H
PUSH04H
PUSH07H
PUSHACC
PUSHPSW
MOVR0,#2AH;
状态数据区首址
MOVR7,#04H;
取状态数据个数
MOVR2,#00H;
内部数据首地址
MOVR3,#WSLA;
取器件地址(写)
MOVR4,#RSLA;
取器件地址(读)
LCALLRDADD;
读出7290的00H-03H数据存于2AH-2DH
NOP;
设定一个断点,以观察读出的4个数据
MOVFX,2BH;
取健值,存放在2BH内
MOVA,FX;
显示FLAG
LCALLCF;
拆分、查表
MOVDATA1+4,R3
MOVDATA1+5,R4
POPPSW
POPACC
POP07H
POP04H
POP03H
POP00H
RETI
中断服务程序改变转向
T1_INT:
PUSH00H
PUSH01H
MOVR0,3DH
MOVR1,3CH
MOVA,3FH
ANLA,#0F0H
MOVTH1,A
LOOP1:
MOVA,FX
CJNEA,#01H,LOOP11;
若FLAG=02H则跳转到LOOP11,左循环,逆时针
MOVA,@R0
MOVP1,A
INC3DH
SJMPLOOP12
LOOP11:
CJNEA,#02H,DO
MOVA,@R1
DEC3CH
LOOP12:
DJNZ2EH,DO;
一个相序周期完成
MOV2EH,#08H
DO:
POP01H
POP00H
####################ADC的相关子程序######################
ADZH:
LOOP2:
MOVR2,#0FFH
LCALLTLC549_ADC
MOV29H,A
MOV28H,#00H;
放累加和高八位的内存单元28H清0
LOOP20:
LCALLTLC549_ADC
CLRC
ADDA,29H
MOV29H,A;
29H放低位
MOVA,#00H
ADDCA,28H
MOV28H,A;
28H放高位
DJNZR2,LOOP20
MOV3EH,A;
将数据滤波的结果放在3EH中
RET
TLC549_ADC:
CLRA
CLRCLK
CLRCS
LOOP3:
SETBCLK
MOVC,DAT
RLCA
DJNZR7,LOOP3
MOV3FH,A;
将ADC转换的结果放在3FH中
SETBCS
**********************************************************************
BCD_CONT:
PUSH07H
PUSH06H
PUSH05H
MOVA,3EH
ANLA,#0F0H
SWAPA
MOVB,#0AH;
B中放入10
DIVAB
MOVR6,A;
R6中得十位数
MOVR5,B;
R5中得个位数
MOVA,R6
调拆分子程序(入口A出口R4,R3-字形码)
MOVDATA1+1,R3
MOVA,R5
MOVDATA1+0,R3
POP05H
POP06H
DELAY:
PUSH00H
MOVR0,#00H
DELAY1:
MOVR1,#00H
DJNZR1,$
DJNZR0,DELAY1
POP01H
通用的I2C通讯子程序
相关子程序WRBYT、STOP、CACK、STA
WRNBYT:
PUSHPSW
PUSHACC
WRADD:
MOVA,R3;
取外围器件地地址(包含r/w=0)
LCALLSTA;
发送起始信号S
LCALLWRBYT;
发送外围地址
LCALLCACK;
检测外围器件的应答信号
JBF0,WRADD;
如果应
发送内部寄存器首地址
如果应答不正确返回重来
WRDA:
MOVA,@R0
如果应答不正确返回重来
INCR0
DJNZR7,WRDA
LCALLSTOP
RET
通用的I2C通讯子程序(多字节读操作)
入口参数R7字节数;
R0目标数据块首地址;
R2从器件内部子地址;
R3器件地址(写);
R4器件地址(读)
相关子程序WRBYT、STOP、CACK、STA、MNACK
RDADD:
PUSHPSW;
从PCF8563的02H单元读入7个参数
PUSHACC;
存放于20H-26H单元
RDADD1:
LCALLSTA
MOVA,R3;
JBF0,RDADD1;
MOVA,R2;
取内部地址
如果应答不正确返回重来
LCALLSTA
MOVA,R4;
RDN:
LCALLRDBYT
MOV@R0,A
DJNZR7,ACK
LCALLMNACK
LCALLSTOP
ACK:
LCALLMACK
SJMPRDN
(3)I2C各个信号子程序
启动信号子程序S
STA:
SETBSDA;
启动信号S
SETBSCL
NOP;
产生4.7US延时
NOP
NOP
CLRSDA
NOP
CLRSCL
停止信号子程序P
STOP:
CLRSDA;
停止信号P
SETBSDA
应答信号子程序MACK
MACK:
发送应答信号ACK
非应答法信号子程序MNACK
MNACK:
发送非应答信号NACK
应答检测子程序CACK
*****************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 步进 电机