⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 超声波汽车倒车测距仪.txt

📁 基于AT89C51单片机汽车倒车防撞系统的设计
💻 TXT
字号:
ORG        0000H
            LJMP        MAIN                  ;复位转主程序
            ORG        0003H
            LJMP        INT0                   ;中断
            ORG        001BH 
            LJMP       IT1                      ;T1中断
            ORG        0100H                   
     MAIN:MOV        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*25ms=6.375s
          MOV          45H,#04H               ;置闪烁间隙时间
                                                      4*25ms=0.1s
          MOV          R2,#04H                ;置信号计数器初值
 TLOOP:MOV          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*20=60ms
          LCALL        WORK                    ;信息与数据处理
          SJMP       TLOOP                 ;循环
附录4  信号处理程序
     WORK:JBC         01H,WORK1      ;有回波信号,转存信号
             DJNZ         R3,GORET    ;无回波信号,判断连续无回波信号次数
             MOV          R3,#04H         ;连续无回波计数器恢复初值
             LCALL        FLASH             ;调用闪烁显示子程序
GORET:RET
WORK1:MOV        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            ;调用计算嘟声方波脉宽子程序
         RET
WORK2:JBC        11H,WORK21   ;1#信号标志,转存第1个信号
         JBC        12H,WORK22    ;2#信号标志,转存第2个信号
         JBC        13H,WORK23    ;3#信号标志,转存第3个信号
         RET
WORK21:MOV        50H,TL0         ;存第1个信号
           MOV        51H,TH0         
          RET
WORK22:MOV         52H,TL0           ;存第2个信号
           MOV        53H, TH0
           RET
WORK23:MOV        54H,TL0          ;存第3个信号
          MOV         55H,TH0
          RET
由于涉及篇幅,上述WORK中调用的几个子程序不在罗列。
附录5  内RAM分配:
30H:延迟子程序外循环数             31H:延迟子程序内循环数
 32H:扫描显示循环数                 40H:个位显示符寄存器
 41H:十位显示符寄存器               42H:百位显示符寄存器
 44H:嘟声方波脉宽值                 45H:闪烁显示间隙时间
 50H:1#信号低8位                   51H:1#信号高8位
 52H:2#信号低8位                   53H:3#信号高8位
 54H:3#信号低8位   	               55H:5#信号高8位
 56H:4#信号低8位                   57H:7#信号高8位
 R2:信号计数器                      R3:连续无回波计数器
标志位:
P3.4:40KHZ超声波发射控制位        P3.5:嘟声控制位
 P3.6:STOP灯控制位                 11H:1#信号存储标志
 12H:2#信号存储标志                  13H:3#信号存储标志
 01H:回波标志,01H=1有回波,01H=0无回波 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -