单片机循迹小车课程设计
AJMP EXIT
LL2:CLR YQ
JNB P3.1,HOU
KK2:JNB P3.0,KK2
SETB YQ
AJMP EXIT
HOU:MOV P1,#00H
SETB ZH
SETB YH
CLR EX0
SETB EX1
AJMP EXIT
INTT1:PUSH ACC
PUSH PSW
JNB P3.4,LL8
TT6:NOP
NOP
NOP
NOP
INC DPTR
JB SED,TT6
MOV A,DPH
CLR C
SUBB A,KEY
CLR C
RRC A
MOV KEY,A
AJMP TT3
TT7:MOV A,KEY
SETB C
RRC A
MOV KEY,A
AJMP TT3
EXIT1: MOV A,KEY
SWAP A
ANL A,#0FH
MOV SL,#00H
INC SH
MOV A,SH
CJNE A,#6,EXT
MOV SH,#00H
INC SH
MOV A,SH
CJNE A,#6,EXT
MOV SH,#00H
INC ML
MOV A,ML
CJNE A,#10,EXT
MOV ML,#00H
EXT:MOV TL0,#0AFH
MOV TH0,#3CH
采用L293D芯片,L293D通过内部逻辑生成使能信号,H桥电路的输入量可以用来设置马达的转向,使能信号可以用于脉宽的调整(pwm)
电机驱动电路
5电源模块的设计:
LM7805开关电压调节器是降压型电源管理单片机集成电路,能够输出3A的驱动电流同时具有良好的线性和负载调节特性.
四 软件系统的设计:
1系统程序流程图:
三系统模块方案的确定:
1 光电传感器进行循迹
2 采用AT89C52单片机作为主控制器
3 L293D作为电机驱动芯片
4 LED作动态显示
四 硬件系统的设计
1单片机最小系统的设计:
2 检测电路的设计:
检测电路用红外发光管和高敏光电二极管将光信号转换成电信号.
3 LED显示电路的设计:
LED显示电路
4 电机驱动电路的设计:
一设计要求:
(1)循迹:按预先设定的轨迹自动行驶.
(2)完成单片机最小系统的设计.
(3)完成外围应用电路的设计和实现.
(4)完成软件对硬件的检测和调试.
小车行驶路线图:
发车区
二循迹原理:
循迹是小车在黑色地板上演着白线行走,采用光电探测器,系统电路发光二极管发出可见光照射到黑带时,光线被吸收,呈现高阻态,输出为低电平.当照射到白线时,光线被反射回来被光敏二极管检测到,其阻抗会减小,输出高电平.
DJNZ R3,$
DJNZ R2,LL5
RET
DEL1:MOV R4,#10
KK:MOV R5,#100
LCALL DEL
DJNZ R5,$
DJNZ R4,KK
RET
TT0:PUSH ACC
PUSH PSW
DJNZ R7,EXT
MOV R7,#20
INC SL
MOV A,SL
CJNE A,#10,EXT
循迹小车
介绍:AT89C52单片机为循迹小车的检测和控制中心,实习小车的自动检测路径,正确循迹.系统通过I0口控制小车的前进及转向.循迹是小车在黑色地板上沿着白色线行驶,采用光电二极管进行信号采集,若光敏二极管检测到黑线时输出低电平,当有光时产生高电平,信号传送给单片机,来控制小车的转向,从而达到自动循迹的功能.
CJNE A,#02H,DD2
SETB ZQ
LACALL DELAY
CLRZQ
AJMP INT
DD4: CJNE A,#04H,INT
SETபைடு நூலகம் ZH
SETB YH
LACALL DELAY
CLR ZH
CLR YH
AJMP INT
DELAY:MOV R7,#70
LL:MOV R6,#50
DJNZR6,$
N
Y
NY
图3.1系统程序流程图
2 光电检测子程序:
图3.2检测子程序流程图
3 驱动电机子程序:
N
Y
4 LED显示子程序:
六 系统程序清单:
ORG 0H
ENY EQU P1.3
ENZ EQU P1.6
YQ EQU P1.7
ZH EQU P1.5
ZQ EQU P1.4
YH EQU P1.2
SL EQU 30H
SH EQU 31H
ML EQU 32H
KEY EQU 33H
SED EQU P2.7
AJMP MAIN
ORG 03H
AJMP INTT0
ORG 0BH
AJMP TT0
ORG 13H
AJMP INTT1
MAIN:MOV SP,#67H
JNB P0.4,DD1
AJMP YAO
DD1:AJMP DD
YAO:MOV KEY,00H
JNB P3.5,LL9
AJMP EXIT
LL8:CLR ZH
KK3:JNB P3.4,$
SETB ZH
AJMP EXIT
LL9:CLR YH
KK4:JNB,P3.5,$
SETB YH
AJMP EXIT
EXIT:POP PSW
POP ACC
RETI
DEL:MOV R2,#5
LL5:MOV R3,#80
SETB ENZ
SETB ENY
SETB ZQ
SETB YQ
SETB TR0
PP:LCALL DIS
AJMP PP
INTT0:PUSH ACC
PUSH PSW
JNB P3.1,LL1
JNB P3.0,LL2
AJMP EXIT
LL1:CLR ZQ
KK1:JNB P3.0,HOU
JNB P3.0,LL2
MOV P1,00H
SETB ENZ
SETB ENY
MOV P0,00H
CLR P2.0
INT:JB SED,$
LCALL DELAY
JB SED,INT
MOV R5,#05H
TT3:DJNZ R5,TT5
AJMP EXIT1
TT5:MOV DPL,#00H
MOV DPH,#00H
JNB SED,$
POP PSW
POP ACC
RETI
DIS:MOV DPTR,#TAB
MOV A,SL
MOVC A,@A+DPTR
MOV P2,A
CLR P0.2
MOV A,SH
MOVC A,@A+DPTR
MOV P2,A
CLR P0.1
LCALL DEL
SETB P0.1
MOV A,ML
MOVC A,@A+DPTR
DJNZ R7,LL
RET
DD: CLR A
MOV SL,A
MOV SH,A
MOV ML,A
MOV P1,#00H
MOV TMOD,#01H
MOV TL0,#0AFH
MOV TH0,#03CH
MOV R7,#20
SETB ET0
SETB EX0
CLR EX1
SETB IT0
SETB IT1
SETB EA