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无回波

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值