题45(实践型)
利用单片机驱动五线四相步进电机(依次给各相脉冲即可驱动)。
备注:驱动芯片ULN2003
ULN2003:
ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成,每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
步进电机实物图:
参考资料:
程序源码:
步进电机正转:(顺时针)
;驱动步进电机
ORG 0000H
LJMP START
ORG 000BH
LJMP TIMER0ADDR
ORG 0030H
START:
MOV SP,#60H
MOV P1,#00H
SETB ET0
SETB EA
MOV TMOD,#01H
MOV TL0,#77h
MOV TH0,#0ecH
;5 MS
MOV A,#08H
SETB TR0
SJMP $
TIMER0ADDR:
MOV TL0,#77h
MOV TH0,#0ecH
MOV P1,A
RR A
CJNE A,#00H,L1
MOV A,#01H
L1:
RETI
END
步进电机反转:(逆时针)
程序源码:
;驱动步进电机
ORG 0000H
LJMP START
ORG 000BH
LJMP TIMER0ADDR
ORG 0030H
START:
MOV SP,#60H
MOV P1,#00H
SETB ET0
SETB EA
MOV TMOD,#01H
MOV TL0,#2Fh
MOV TH0,#0F8H
;2 MS
MOV A,#01H
SETB TR0
SJMP $
TIMER0ADDR:
MOV TL0,#2Fh
MOV TH0,#0F8H
MOV P1,A
RL A
CJNE A,#00H,L1
MOV A,#01H
L1:
RETI
END
小知识点补充12:
AD转换器的主要技术指标:
1,转换时间和转换速率:是指AD转换器完成一次转换所需的时间,转换时间的倒数称为转换速率
2,分辨率:是衡量AD转换器能够分辨出模拟输入量最小变化程度的技术指标。
3,转换精度:定义为一个实际AD转换器与一个理想AD转换器在量化值上的差值,可用相对转换精度和绝对转换精度表示。
强化指令3:XRL异或指令
XRL指令:是指相同为0,不同为1,可用于对某些位取反,不关心的位保持不便。(实际应用中较为重要)
考题:
**已知( R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段后, ( 40H ) = **
;程序段: ;解析:
MOV @R0,#11H ;(20H)=11H
MOV A,R2 ;(A)=20H
ADD A,20H ;(A)=20H+11H
MOV PSW,#80H ;CY=1
SUBB A,P0 ;(A)=20H+11H-30H-1=0
XRL A,#45H ;(A)=(A)异或45H=45H
MOV 40H,A ;(40H)=(A)
答案:
45H
概念考题2:
解析:此题重点掌握。单片机内部资源需掌握,对后续学习有帮助。
题51
编写程序查表求两数的平方和。
程序源码:
ORG 0000H
START:
MOV A,#2 ;FOR TESTING
ACALL SQR
MOV R1,A
MOV A,#4 ;FOR TESTING
ACALL SQR
ADD A,R1
MOV 40H,A
SJMP $
SQR:
INC A
MOVC A,@A+PC
RET
TAB: DB 0,1,4,9,16,25,36,49,64,81
END