欧美极品高清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ī)源程序如下:
  1.         //主循環(huán)
  2.         LOOP:
  3.              MOV ECHO_FLAG,#0     //將兩標(biāo)志位位初始化
  4.              MOV ECHO_FLAG1,#0
  5.                  MOV R7,ECHO_FLAG
  6.                  MOV R6,ECHO_FLAG1
  7.                  LJMP LOOP10
  8.                  
  9.         L1:LJMP LOOP20       //跳轉(zhuǎn)中轉(zhuǎn)站
  10.         L2:LJMP LOOP30
  11.         
  12.         LOOP10:
  13.         MOV R7,ECHO_FLAG
  14.         MOV R6,ECHO_FLAG1
  15.         CJNE R7,#0,L1  //判斷兩個(gè)標(biāo)志是否為‘00’,是則執(zhí)行LOOP10
  16.         CJNE R6,#0,L2
  17.         LCALL KEYBOARD     //調(diào)用按鍵        
  18.         
  19.         MOV A,#0
  20.         CJNE A,SET_FLAG,LOOP1
  21.         JNB ECHO1,LOOP10
  22.         LCALL DELAY2
  23.         ;LOOP17:
  24.         SETB TRI31
  25.         LCALL DELAY2
  26.         SETB TR0
  27.         CLR TRI31
  28.         ;LCALL DELAY2
  29.         LOOP17:
  30.         JB ECHO1,LOOP12          //位為1則跳轉(zhuǎn)
  31.         SETB START_FLAG
  32.         SJMP LOOP17
  33.         LOOP12:
  34.         JNB START_FLAG,LOOP13    //為0表示不正常的值 不更新
  35.         ;CLR START_FLAG
  36.         CLR TR0               //測(cè)試時(shí)關(guān)
  37.         ;JNB ECHO1,LOOP14        //為零則跳轉(zhuǎn),即接收到信號(hào)
  38.         ;LJMP LOOP17
  39.         LOOP16:
  40.         JNB ECHO1,LOOP14        //為零則跳轉(zhuǎn),即接收到信號(hào)
  41.         JB TIME_FULL,LOOP15     //超出范圍
  42.         SJMP LOOP16
  43.         LOOP14:
  44.         ;CLR TR0
  45.         LCALL COUNT
  46.         LCALL DISPLAY10     //顯示距離
  47.         LCALL FUNTION10      //判斷范圍
  48.         LCALL BUZZ_MOD     //蜂鳴器
  49.         MOV ECHO_FLAG,#1   //成功計(jì)算則ECHO_FLAG值加1
  50.         LJMP LOOP20
  51.         LOOP15:
  52.         CLR TIME_FULL
  53.         CLR TR0
  54.         MOV TH0,#0
  55.         MOV TL0,#0
  56.         MOV A,#81H
  57.         LCALL WRITE_1602COM
  58.         MOV DPTR,#CODE_PRINT3  
  59.         LCALL PRINT            //格式:"Err"
  60.         ;CLR BEE   //超時(shí)   僅報(bào)警
  61.         LOOP13:
  62.         SJMP LOOP10
  63.         LOOP1:
  64.         CLR TR1  //按鍵設(shè)置的時(shí)候禁止測(cè)量
  65.         CLR TR0
  66.         LCALL DISPLAY1         //有按鍵時(shí)在屏幕上更新上下限的值
  67.         LJMP LOOP10

  68.         FUNTION10:
  69.         CLR C
  70.         MOV A,S_H      //實(shí)際值減去下限
  71.         SUBB A,S_LH   
  72.         MOV B,A
  73.         JNC FUN0        //為0跳轉(zhuǎn)繼續(xù)判斷  為1說(shuō)明低于下限
  74.         FUN1:           //超出上,下限時(shí)顯示Err
  75.         ;CLR water_in   //注水 開(kāi)燈 報(bào)警
  76.         MOV A,#81H             //小于下限時(shí)顯示Err
  77.         LCALL WRITE_1602COM
  78.         MOV DPTR,#CODE_PRINT3  
  79.         LCALL PRINT            //格式:"Err"
  80.         MOV BUZZ_FLAG,#1              //報(bào)警器置零
  81.         SJMP FUN
  82.         FUN0:
  83.         MOV A,S_L
  84.         SUBB A,S_LL
  85.         JNC FUN2        //低8位是否有借位
  86.         MOV A,B
  87.         CJNE A,#1,FUN1   //有借位B為1說(shuō)明測(cè)量值大于下限  判斷上限
  88.         FUN2:          //實(shí)際值和上限相比較
  89.         CLR C
  90.         MOV A,S_HH
  91.         SUBB A,S_H
  92.         MOV B,A
  93.         JNC FUN3
  94.         FUN4:
  95.         MOV A,#81H             //大于上限時(shí)顯示Err
  96.         LCALL WRITE_1602COM
  97.         MOV DPTR,#CODE_PRINT3  
  98.         LCALL PRINT            //格式:"Err",并清零
  99.         MOV BUZZ_FLAG,#2
  100.         SJMP FUN
  101.         FUN3:
  102.         MOV A,S_HL
  103.         SUBB A,S_L
  104.         JNC FUN5        //
  105.         MOV A,B
  106.         CJNE A,#1,FUN4
  107.         FUN5:
  108.         MOV BUZZ_FLAG,#0
  109.         FUN:
  110.         RET
復(fù)制代碼

運(yùn)行之后‘A’在我沒(méi)有按下echo1的時(shí)候會(huì)自動(dòng)顯示err

實(shí)在是搞不清楚原因,請(qǐng)大佬們教一下!!!







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1