论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
5.2.1 超声波倒车雷达的算法设计
计算超声波传播时间
在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0或INT1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。其部分源程序如下:
RECEIVE0:PUSH PSW
PUSH ACC
CLR EX0 ;关外部中断0
MOV R7, TH0 ;读取时间值
MOV R6, TL0?
CLR C
MOV A, R6
SUBB A, #0BBH;计算时间差
MOV 31H, A ;存储结果
MOV A, R7
SUBB A, #3CH
MOV 30H, A?
SETB EX0 ;开外部中断0
POP ACC?
POP PSW
RETI
5.2.2 主程序;
晶振采用6M,P1口为数码管段输出口,P3.0~P3.2为数码管位输出口,P3.5超声波发送输出,P3.7超声波接收。超声波测距中断入口程序ORG 0000Hljmp startORG 002BH
主程序START: MOV R0,#70H MOV R7,#0BH MOV 20H,#00H CLEARDISP: MOV @R0,#00H INC R0 DJNZ R7,CLEARDISP MOV TMOD,#99H CJZCX:MOV TL0,#00H MOV TH0,#00H MOV R0,#0bH MOV R1,#0bh MOV 16H,#03H MOV 15H,#54H MOV 17H,#90HPUZEL:MOV 14H,#32H ;超声波发射持续200msHERE:CPL P3.5 ;输出40kHz方波 NOP NOP OP DJNZ 14H,HERE ETB TR0 ETB P3.2MQ:DJNZ 15H,$ DJNZ 16H,MQ QBA:JNB P3.7,QBC DJNZ R1,QBA DJNZ R0,QBAQBC:djnz 17h,QBC CLR P3.2 CLR TR0 MOV 70h,TL0 MOV 71h,TH0 MOV R2,71h MOV R3,70h MOV R6,#22H MOV R7,#0H LCALL MULD MOV R6,#64H MOV R7,#0H LCALL DIVD MOV 73H,R2 MOV 74H,R3 CLR R3 CLR R4 CLR R5 MOV R6,73H MOV R7,74H LCALL HB2 MOV A,R4 MOV B,#10H DIV AB MOV 78H,A MOV 77H,B MOV A,R5 MOV B,#10H DIV AB MOV 76H,A MOV 75H,B MOV A,78H CJNE A,#0H,PDCX MOV A,77H CJNE A,#5H,PDCX MOV A,76H CJNE A,#0H,PDCX MOV 78H,#0BH MOV 77H,#0BH MOV 76H,#0BH AJMP XXCXPDCX:MOV A,78H CJNE A,#4H,XXCX MOV A,77H