标题:
关于单片机SRF-04超声波程序调试问题
[打印本页]
作者:
aads635
时间:
2019-6-22 00:13
标题:
关于单片机SRF-04超声波程序调试问题
第一次做单片机实训,是关于4个超声波测距的实训。在调试的时候遇到了一些解决不了的问题。就是第一次上电之后,第一个超声波的接收端(ECHO1)会有一个高电平?导致调试不成功。自己调试了两天,实在调不出来,球球各位大佬帮忙解答一下
单片机源程序如下:
//主循环
LOOP:
MOV ECHO_FLAG,#0 //将两标志位位初始化
MOV ECHO_FLAG1,#0
MOV R7,ECHO_FLAG
MOV R6,ECHO_FLAG1
LJMP LOOP10
L1:LJMP LOOP20 //跳转中转站
L2:LJMP LOOP30
LOOP10:
MOV R7,ECHO_FLAG
MOV R6,ECHO_FLAG1
CJNE R7,#0,L1 //判断两个标志是否为‘00’,是则执行LOOP10
CJNE R6,#0,L2
LCALL KEYBOARD //调用按键
MOV A,#0
CJNE A,SET_FLAG,LOOP1
JNB ECHO1,LOOP10
LCALL DELAY2
;LOOP17:
SETB TRI31
LCALL DELAY2
SETB TR0
CLR TRI31
;LCALL DELAY2
LOOP17:
JB ECHO1,LOOP12 //位为1则跳转
SETB START_FLAG
SJMP LOOP17
LOOP12:
JNB START_FLAG,LOOP13 //为0表示不正常的值 不更新
;CLR START_FLAG
CLR TR0 //测试时关
;JNB ECHO1,LOOP14 //为零则跳转,即接收到信号
;LJMP LOOP17
LOOP16:
JNB ECHO1,LOOP14 //为零则跳转,即接收到信号
JB TIME_FULL,LOOP15 //超出范围
SJMP LOOP16
LOOP14:
;CLR TR0
LCALL COUNT
LCALL DISPLAY10 //显示距离
LCALL FUNTION10 //判断范围
LCALL BUZZ_MOD //蜂鸣器
MOV ECHO_FLAG,#1 //成功计算则ECHO_FLAG值加1
LJMP LOOP20
LOOP15:
CLR TIME_FULL
CLR TR0
MOV TH0,#0
MOV TL0,#0
MOV A,#81H
LCALL WRITE_1602COM
MOV DPTR,#CODE_PRINT3
LCALL PRINT //格式:"Err"
;CLR BEE //超时 仅报警
LOOP13:
SJMP LOOP10
LOOP1:
CLR TR1 //按键设置的时候禁止测量
CLR TR0
LCALL DISPLAY1 //有按键时在屏幕上更新上下限的值
LJMP LOOP10
FUNTION10:
CLR C
MOV A,S_H //实际值减去下限
SUBB A,S_LH
MOV B,A
JNC FUN0 //为0跳转继续判断 为1说明低于下限
FUN1: //超出上,下限时显示Err
;CLR water_in //注水 开灯 报警
MOV A,#81H //小于下限时显示Err
LCALL WRITE_1602COM
MOV DPTR,#CODE_PRINT3
LCALL PRINT //格式:"Err"
MOV BUZZ_FLAG,#1 //报警器置零
SJMP FUN
FUN0:
MOV A,S_L
SUBB A,S_LL
JNC FUN2 //低8位是否有借位
MOV A,B
CJNE A,#1,FUN1 //有借位B为1说明测量值大于下限 判断上限
FUN2: //实际值和上限相比较
CLR C
MOV A,S_HH
SUBB A,S_H
MOV B,A
JNC FUN3
FUN4:
MOV A,#81H //大于上限时显示Err
LCALL WRITE_1602COM
MOV DPTR,#CODE_PRINT3
LCALL PRINT //格式:"Err",并清零
MOV BUZZ_FLAG,#2
SJMP FUN
FUN3:
MOV A,S_HL
SUBB A,S_L
JNC FUN5 //
MOV A,B
CJNE A,#1,FUN4
FUN5:
MOV BUZZ_FLAG,#0
FUN:
RET
复制代码
运行之后‘A’在我没有按下echo1的时候会自动显示err
捕获err.PNG
(120.87 KB, 下载次数: 50)
下载附件
上电自动显示err
2019-6-22 00:12 上传
实在是搞不清楚原因,请大佬们教一下!!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1