亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 基于單片機(jī)超聲波測(cè)距資料 [打印本頁(yè)]

作者: 18313855332    時(shí)間: 2016-10-31 21:09
標(biāo)題: 基于單片機(jī)超聲波測(cè)距資料
自己動(dòng)手下載吧:
超聲波測(cè)距 main.rar (1.11 KB, 下載次數(shù): 22)

  1. /*
  2. 超聲波測(cè)距
  3. 8-29 HC-SR04模塊用有-2cm的誤差,
  4.                                         但是US-015模塊是正確的

  5. 編程思路
  6.         測(cè)距動(dòng)作
  7.                 開(kāi)20us的Trig
  8.                 等待Echo上升
  9.                 一旦上升開(kāi)定時(shí)器
  10.                 Echo下降時(shí)關(guān)定時(shí)器
  11.                 輸出定時(shí)器的值
  12.         主程序
  13.                 循環(huán)測(cè)距動(dòng)作
  14.                 間隔1s
  15.         定時(shí)器中斷
  16.                 復(fù)位

  17. 準(zhǔn)確性
  18.         與計(jì)算公式有關(guān)
  19.         與被測(cè)物體的表面積大小有關(guān)
  20.         與角度有關(guān)
  21. */
  22. #include <stdio.h>
  23. #include <intrins.h>
  24. #include <math.h>
  25. #include <STC12C5A60S2.H>

  26. sbit hcsr04_trig = P2^0;//發(fā)
  27. sbit hcsr04_echo = P3^2;//收 INT0
  28. sbit hcsr04_test = P2^1;//測(cè)試

  29. unsigned char data hcsr04_tl        = 0;
  30. unsigned char data hcsr04_th        = 0;
  31. unsigned int        data hcsr04_s        = 0;

  32. void Delay20us()                //@11.0592MHz
  33. {
  34.         unsigned char i;

  35.         _nop_();
  36.         i = 52;
  37.         while (--i);
  38. }

  39. void Delay1000ms()                //@11.0592MHz
  40. {
  41.         unsigned char i, j, k;

  42.         i = 43;
  43.         j = 6;
  44.         k = 203;
  45.         do
  46.         {
  47.                 do
  48.                 {
  49.                         while (--k);
  50.                 } while (--j);
  51.         } while (--i);
  52. }

  53. void UART_init()
  54. {
  55.         PCON        = 0x00;
  56.         SCON        = 0x50;//0101 0000
  57.         TMOD        |= 0x20 ;
  58.         TH1                = 0xFD;//9600bps
  59.         TL1                = 0xFD;
  60.         ET1                = 0;
  61.         ES                = 0;//1時(shí)開(kāi)串口中斷
  62.         TR1                = 1;

  63.         TI                 = 1;
  64.         puts("HC-SR04 \t--------");
  65.         Delay20us();        
  66.         puts("UART_init \t-");
  67.         Delay20us();        
  68. }

  69. void t0_init()
  70. {
  71.         TMOD         |= 0x01;//T0工作方式1------16位
  72.         TH0         = 0x00;
  73.         TL0         = 0x00;        
  74.         ET0         = 1;//T0中斷
  75.         EA                 = 1;        
  76.         
  77.         puts("t0_init \t-");
  78.         Delay20us();        
  79. }

  80. void t0ser() interrupt 1
  81. {
  82.         TH0 = 0;
  83.         TL0 = 0;
  84. }

  85. /*
  86. HC-SR04 模塊工作原理
  87. 1.Trig觸發(fā)測(cè)距 >=10us 高電平
  88. 2.模塊自動(dòng)發(fā)送8個(gè)40kHz方波
  89.         自動(dòng)檢測(cè)是否有信號(hào)返回
  90. 3.當(dāng)有信號(hào)返回時(shí),
  91. */
  92. void hcsr04()
  93. {        
  94.         TR0 = 0;
  95.         TH0        = 0;
  96.         TL0 = 0;
  97.         
  98.         hcsr04_trig = 1;
  99.         Delay20us();
  100.         hcsr04_trig = 0;
  101.         Delay20us();
  102.         while(!hcsr04_echo);        
  103.         TR0 = 1;
  104.         while(hcsr04_echo);
  105.         TR0 = 0;
  106.         
  107.         // hcsr04_s = (TH0*256+TL0)/58;        
  108.         hcsr04_s =(TH0*256+TL0+59)*0.0172;
  109. }

  110. void main(void)
  111. {        
  112.         UART_init();        
  113.         t0_init();        

  114.         while(1)
  115.         {        
  116.                 hcsr04();
  117.                 printf("MAIN \thcsr04_s = %d\n",
  118.                         hcsr04_s);        
  119.                 Delay1000ms();                                
  120.         }        
  121. }
復(fù)制代碼







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