您好,欢迎来到暴趣科技网。
搜索
您的当前位置:首页汽车防撞报警系统的设计程序

汽车防撞报警系统的设计程序

来源:暴趣科技网
 附录B:倒车防撞报警系统源程序

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;堆栈在4FH以上,20H用于标志

;显示缓冲单元在40H—43H,内存44H—46H用于计算距离

VOUT EQU P1.0 ;脉冲输出端口 * * * * * * * * * * * * * * *中断入口程序* * * * * * * * * * * * * * * ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH LJMP INTT0 ORG 0013H RETI

ORG 001BH LJMP INTT1 ORG 0023H RETI

ORG 002BH RETI

* * * * * * * * * * * * * * * *主程序* * * * * * * * * * * * * * * * * START: MOV SP,#4FH

MOV R0,#40H ;40H-43H为显示数据存放单元(40H为最

高位)

MOV R7,#0BH

CLEARDISP: MOV @R0,#00H INC R0

DJNZ R7,CLEARDISP MOV 20H,#00H

MOV TMOD,#21H;T1为8位自动重装模式,T0为16位定时器

MOV TH0,#00H ;65ms初值 MOV TL0,#00H

MOV TH1,#0F3H ;40Hz初值

MOV TL1,#0F3H MOV MOV MOV MOV MOV SETB SETB SETB SETB START1: LCALL JNB CLR LCALL SETB CLR SETB MOV LOOP: LCALL DJNZ MOV CJNE MOV CJNE CLR P0,#0FFH P1,#0FFH P2,#0FFH P3,#0FFH

R4,#04H ;超声波脉冲个数控制(为赋值的一半) PX0 ET0 EA

TR0 ;开启测距定时器

DISPLAY

00H,START1 ;收到反射信号时标志位为1 EA

WORK ;计算距离子程序 EA 00H TR0

R2,#H ;测量间隔控制(约4ms×100=400ms)

DISPLAY

R2,LOOP A,40H A,#0AH,SAFE A,41H A,#0AH,SAFE P2.6

CLR P2.7 SJMP DL SJMP LOOP1

SAFE: CLR P2.5 LOOP1: SJMP START1

* * * * * * * * * * * 延时程序* * * * * * * * * * * * * * * * * DL: MOV R4,#6

DJNZ R4,DEL

RET

DEL: MOV R5,#100 DEL0: MOV R6,#200 DEL1: MOV R7,#248 DEL2: DJNZ R7,DEL2 DEL3: DJNZ R6,DEL1 DEL4: DJNZ R5,DEL0

* * * * * * * * * * * 中断程序* * * * * * * * * * * * * * * * * ;T0中断,65ms中断一次 INTT0: CLR EA CLR TR0 MOV TH0,#00H MOV TL0,#00H SETB ET1 SETB EA

SETB TR0 ;启动计数器T0,用以计算超声波来回时间

SETB TR1 ;开启发超声波用定时器1 OUT: RETI ;T1中断,发超声波用 INTT1: CPL VOUT DJNZ R4,RETIOUT

CLR TR1 ;超声波发送完毕,关T1 CLR ET1 MOV R4,#04H

SETB EX0 ;开启接收回波中断 RETIOUT: RETI

;外中断0,收到回波时进入

PINT0: CLR TR0 ;关计数器 CLR TR1 CLR ET1 CLR EA CLR EX0

MOV 44H,TL0 ;将计数值移入处理单元 MOV 45H,TH0

SETB 00H ;接收成功标志 RETI

* * * * * * * * * * * * * * * 显示程序* * * * * * * * * * * * * * * * * ;40H为最高位,43H为最低位,先扫描高位 DISPLAY: MOV R1,#40H;G MOV R5,#0F7H;G PLAY: MOV A,R5 MOV P0,#0FFH MOV P2,A MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A LCALL DL1MS INC R1 MOV A,R5

JNB ACC.0,ENDOUT;G

RR A MOV R5,A AJMP PLAY ENDOUT: MOV P2,#0FFH MOV P0,#0FFH RET

TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, ;共阳段码表 “0”,“1”,“2”,“3”,“4”,“5”

TAB: DB 82H, 0F8H, 80H, 90H,0FFH, 88H, 0BFH ;共阳段码表 “6”“7”“8”“9”“不亮”“A”“ -”

* * * * * * * * * * * * * * * 延时程序* * * * * * * * * * * * * * * * * DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET

* * * * * * * * 距离计算程序(距离=计数值×17/1000cm)* * * * * * * * * WORK: PUSH ACC PUSH PSW PUSH B

MOV PSW,#18H MOV R3,45H MOV R2,44H MOV R1,#00D MOV R0,#17D LCALL MUL2BY2 MOV R3,#03H MOV R2,#0E8H LCALL DIV4BY2 LCALL DIV4BY2

MOV 40H,R4 MOV A,40H JNZ JJ0

MOV 40H,#0AH ;最高位为0,不点亮 JJ0: MOV A,R0 MOV R4,A MOV MOV MOV MOV LCALL MOV MOV JNZ MOV SUBB JNZ MOV JJ1: MOV MOV MOV MOV MOV MOV LCALL MOV MOV JNZ MOV A,R1 R5,A R3,#00D R2,#100D DIV4BY2 41H,R4 A,41H JJ1

A,40H A,#0AH JJ1

41H,#0AH A,R0 R4,A A,R1 R5,A R3,#00D R2,#10D DIV4BY2 42H,R4 A,42H JJ2

A,41H ;次高位为0,先看最高位是否为不亮 ;次次高位为0,先看次高位是否为不

;最高位不亮,次高位也不亮 亮

SUBB A,#0AH JNZ JJ2

MOV 42H,#0AH ;次高位不亮,次次高位也不亮 JJ2: MOV 43H,R0 POP B POP PSW POP ACC RET

* * * * * * * * * * * * 2字节无符号数乘法程序* * * * * * * * * * * * * ;R7R6R5R4≤R3R2×R1R0 MUL2BY2: CLR A MOV R7,A MOV R6,A MOV R5,A MOV R4,A MOV 46H,#10H MULLOOP1: CLR C MOV A,R4 RLC A MOV R4,A MOV A,R5 RLC A MOV R5,A MOV A,R6 RLC A MOV R6,A MOV A,R7 RLC A MOV R7,A

MOV A,R0 RLC A MOV R0,A MOV A,R1 RLC A MOV R1,A JNC MULLOOP2 MOV A,R4 ADD A,R2 MOV R4,A MOV A,R5 ADDC A,R3 MOV R5,A MOV A,R6 ADDC A,#00H MOV R6,A MOV A,R7 ADD A,#00H MOV R7,A

MULLOOP2: DJNZ 46H,MULLOOP1 RET

* * * * * * * * * * 4字节/2字节无符号数除法程序* * * * * * * * * * * * R7R6R5R4/R3R2=R7R6R5R4(商)…R1R0(余数) DIV4BY2: MOV 46H,#20H MOV R0,#00H MOV R1,#00H DIVLOOP1: MOV A,R4 RLC A MOV R4,A MOV A,R5

RLC A MOV R5,A MOV A,R6 RLC A MOV R6,A MOV A,R7 RLC MOV MOV RLC MOV MOV RLC MOV CLR MOV SUBB MOV MOV SUBB JC MOV MOV DIVLOOP2: CPL DJNZ MOV RLC MOV MOV RLC A R7,A A,R0 A R0,A A,R1 A R1,A C A,R0 A,R2 B,A A,R1 A,R3 DIVLOOP2 R0,B R1,A C

46H,DIVLOOP1 A,R4 A R4,A A,R5 A

MOV R5,A MOV A,R6 RLC A MOV R6,A MOV A,R7 RLC A MOV R7,A RET

END

;程序结束

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoquwan.com 版权所有 湘ICP备2024080961号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务