欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
關(guān)于單片機(jī)SRF-04超聲波程序調(diào)試問(wèn)題
[打印本頁(yè)]
作者:
aads635
時(shí)間:
2019-6-22 00:13
標(biāo)題:
關(guān)于單片機(jī)SRF-04超聲波程序調(diào)試問(wèn)題
第一次做單片機(jī)實(shí)訓(xùn),是關(guān)于4個(gè)超聲波測(cè)距的實(shí)訓(xùn)。在調(diào)試的時(shí)候遇到了一些解決不了的問(wèn)題。就是第一次上電之后,第一個(gè)超聲波的接收端(ECHO1)會(huì)有一個(gè)高電平?導(dǎo)致調(diào)試不成功。自己調(diào)試了兩天,實(shí)在調(diào)不出來(lái),球球各位大佬幫忙解答一下
單片機(jī)源程序如下:
//主循環(huán)
LOOP:
MOV ECHO_FLAG,#0 //將兩標(biāo)志位位初始化
MOV ECHO_FLAG1,#0
MOV R7,ECHO_FLAG
MOV R6,ECHO_FLAG1
LJMP LOOP10
L1:LJMP LOOP20 //跳轉(zhuǎn)中轉(zhuǎn)站
L2:LJMP LOOP30
LOOP10:
MOV R7,ECHO_FLAG
MOV R6,ECHO_FLAG1
CJNE R7,#0,L1 //判斷兩個(gè)標(biāo)志是否為‘00’,是則執(zhí)行LOOP10
CJNE R6,#0,L2
LCALL KEYBOARD //調(diào)用按鍵
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則跳轉(zhuǎn)
SETB START_FLAG
SJMP LOOP17
LOOP12:
JNB START_FLAG,LOOP13 //為0表示不正常的值 不更新
;CLR START_FLAG
CLR TR0 //測(cè)試時(shí)關(guān)
;JNB ECHO1,LOOP14 //為零則跳轉(zhuǎn),即接收到信號(hào)
;LJMP LOOP17
LOOP16:
JNB ECHO1,LOOP14 //為零則跳轉(zhuǎn),即接收到信號(hào)
JB TIME_FULL,LOOP15 //超出范圍
SJMP LOOP16
LOOP14:
;CLR TR0
LCALL COUNT
LCALL DISPLAY10 //顯示距離
LCALL FUNTION10 //判斷范圍
LCALL BUZZ_MOD //蜂鳴器
MOV ECHO_FLAG,#1 //成功計(jì)算則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 //超時(shí) 僅報(bào)警
LOOP13:
SJMP LOOP10
LOOP1:
CLR TR1 //按鍵設(shè)置的時(shí)候禁止測(cè)量
CLR TR0
LCALL DISPLAY1 //有按鍵時(shí)在屏幕上更新上下限的值
LJMP LOOP10
FUNTION10:
CLR C
MOV A,S_H //實(shí)際值減去下限
SUBB A,S_LH
MOV B,A
JNC FUN0 //為0跳轉(zhuǎn)繼續(xù)判斷 為1說(shuō)明低于下限
FUN1: //超出上,下限時(shí)顯示Err
;CLR water_in //注水 開(kāi)燈 報(bào)警
MOV A,#81H //小于下限時(shí)顯示Err
LCALL WRITE_1602COM
MOV DPTR,#CODE_PRINT3
LCALL PRINT //格式:"Err"
MOV BUZZ_FLAG,#1 //報(bào)警器置零
SJMP FUN
FUN0:
MOV A,S_L
SUBB A,S_LL
JNC FUN2 //低8位是否有借位
MOV A,B
CJNE A,#1,FUN1 //有借位B為1說(shuō)明測(cè)量值大于下限 判斷上限
FUN2: //實(shí)際值和上限相比較
CLR C
MOV A,S_HH
SUBB A,S_H
MOV B,A
JNC FUN3
FUN4:
MOV A,#81H //大于上限時(shí)顯示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
復(fù)制代碼
運(yùn)行之后‘A’在我沒(méi)有按下echo1的時(shí)候會(huì)自動(dòng)顯示err
捕獲err.PNG
(120.87 KB, 下載次數(shù): 50)
下載附件
上電自動(dòng)顯示err
2019-6-22 00:12 上傳
實(shí)在是搞不清楚原因,請(qǐng)大佬們教一下!!!
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1