自学单片机,做的一个由PMW信号控制电机的小东东,希望能与初学的同道共享 控制摄像头用的。PMW遥控器的接收机有多余的通道,所以干脆自己DIY一个控制摄像头左右转的电路。但是合肥没卖到电机控制芯片,所以就自己搞了个H电桥来控制。 刚开始我把对角两个可控硅的门级用导线连到一起,由一个信号控制,表测通过,可是接到单片机上就不动,后来把各可控硅用不同的线路控制就搞定了,实验通过。 代码部分:
ORG 0000H AJMP MAIN org 0003h ajmp s_1 ORG 0050H MAIN: MOV SP,#60H mov p0,#0ffh mov p2,#00h mov p3,#00h MOV R5,#03H
S0: clr p1.2 acall delay setb p1.2 clr p1.1 acall delay setb p1.1 clr p1.0 ACALL DELAY setb P1.0 DJNZ R5,S0
SS: mov TH0,#00H MOV TL0,#00H SETB IT0 setb px0 MOV TMOD,#00001001B MOV IE,#10000001B ajmp $
S_1: S_1B:JB P3.2,S_1 SETB TR0 S_2: JNB P3.2,S_2 s_3: JB P3.2,s_3
CLR TR0 MOV A,TH0 CLR C subb A,#01h jc ERROR CLR C
mov A,TH0 SUBB A,#02H JC LIFT CLR C
MOV A,Th0 SUBB A,#03H JC ERROR CLR C
MOV A,Th0 SUBB A,#05H JC RIGHT AJMP ERROR
ERROR: clr P1.1 setb p1.0 setb p1.2 setb p0.0 setb p0.1 setb p0.6 clr p0.7 setb p0.2 CLR IE0 acall delay ajmp out
LIFT: clr P1.0 setb p1.1 setb p1.2
clr p0.0 clr p0.1 setb p0.5 setb p0.6
setb p0.7 clr p0.2
CLR IE0 acall delay ajmp out
RIGHT: CLR P1.2 setb p1.0 setb p1.1
clr p0.5 clr p0.6 setb p0.0 setb p0.1
setb p0.7 clr p0.2
CLR IE0 acall delay ajmp out out: MOV TH0,#00H MOV TL0,#00H reti
DELAY: mov R0,#0AFh MOV R2,#03H w_1: mov R1,#090h w_2: djnz R1,w_2 djnz R0,w_1 DJNZ R2,W_1 RET
|