89c52汇编语言,89c52基于超声波倒车测距仪汇编语言程序.doc

89c52基于超声波倒车测距仪汇编语言程序.doc

ORG 0000H LJMP MAIN ;复位转主程序 ORG 0003H LJMP INT0 ;中断 ORG 001BH LJMP IT1 ;T1中断 ORG 0100H MAINMOV SP,60H ;置堆栈指针 MOV P1,0FFH ;停显示 CLR P3.4 ;不发射 SET P3.6 ;灯亮 SET P3.5 ;发嘟声 MOV 40H,7EH ;显示符号“ ”单元 MOV 41H,7EH MOV 42H,7EH MOV 32H,160 ;置显示循环数 LCALL DIR ;调用显示子程序 MOV IP,00000001B ;置为高优先级 MOV TMOD,00010001B ;置T0、T1定时器方式1 MOV TH1,9EH ;置T1时间常数25ms。用于 控制嘟声方波脉宽 MOV TL1,58H SETB TR1 ;T1运行 MOV IE,10001001B ;T1开中 MOV 20H,00H ;各标志位清零 MOV 21H,00H MOV 22H,00H MOV 23H,00H MOV 44H,FFH ;置嘟声方波初值255*25ms6.375s MOV 45H,04H ;置闪烁间隙时间 4*25ms0.1s MOV R2,04H ;置信号计数器初值 TLOOPMOV TH0,00H ;T0值清零 MOV TL0,00H SETB P3.4 ;开始发射40KHZ超声波 SETB TR0 ;启动T0,开始计时 LCALL DELAY ;延时1ms。即发射1ms CLR P3.4 ;停发射 MOV 32H,20 ;置显示环数 LCALL DIR ;显示3ms*2060ms LCALL WORK ;信息与数据处理 SJMP TLOOP ;循环附录4 信号处理程序 WORKJBC 01H,WORK1 ;有回波信号,转存信号 DJNZ R3,GORET ;无回波信号,判断连续无回波信号次数 MOV R3,04H ;连续无回波计数器恢复初值 LCALL FLASH ;调用闪烁显示子程序GORETRETWORK1MOV R3,04H ;有回波,连续无回波计数器恢复初值 DJNZ R2,WORK2 ;未存满4个信号,转存信号 MOV R2,04H ;存满4个信号,信号计数器恢复初值 MOV 56H,TL0 ;存第4个信号 MOV 57H,TH0 LCALL SORT ;调用信号排序子程序 LCALL RIGHT ;调用筛选正确信号子程序 LCALL TRAS ;调用更换显示子程序 LCALL TONE ;调用计算嘟声方波脉宽子程序 RETWORK2JBC 11H,WORK21 ;1信号标志,转存第1个信号 JBC 12H,WORK22 ;2信号标志,转存第2个信号 JBC 13H,WORK23 ;3信号标志,转存第3个信号 RETWORK21MOV 50H,TL0 ;存第1个信号 MOV 51H,TH0 RETWORK22MOV 52H,TL0 ;存第2个信号 MOV 53H, TH0 RETWORK23MOV 54H,TL0 ;存第3个信号 MOV 55H,TH0 RET由于涉及篇幅,上述WORK中调用的几个子程序不在罗列。附录5 内RAM分配30H延迟子程序外循环数 31H延迟子程序内循环数 32H扫描显示循环数 40H个位显示符寄存器 41H十位显示符寄存器 42H百位显示符寄存器 44H嘟声方波脉宽值 45H闪烁显示间隙时间 50H1信号低8位 51H1信号高8位 52H2信号低8位 53H3信号高8位 54H3信号低8位 55H5信号高8位 56H4信号低8位 57H7信号高8位 R2信号计数器 R3连续无回波计数器标志位P3.440KHZ超声波发射控制位 P3.5嘟声控制位 P3.6STOP灯控制位 11H1信号存储标志 12H2信号存储标志 13H3信号存储标志 01H回波标志,01H1有回波,01H0无回波

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值