1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3245|回復: 2
打印 上一主題 下一主題
收起左側

紅外線測距報警程序以及如何將其添加到測距程序中

[復制鏈接]
跳轉到指定樓層
樓主
200黑幣
#define INT8U unsigned char
#define INT16U unsigned int
#define INT32U unsigned long
#include <reg51.h>
#include <intrins.h>
#include <stdio.h>
#include <math.h>
#include <ADC0832.C>
sbit DS    =P3^5;
sbit SH_CP =P3^6;
sbit ST_CP =P3^7;
#define M_C   1388
#define B_C   -5
#define K_C   2
#define M_F   3085.7
#define M_P   -1.1962
code INT8U SEG_CODE[] =
{ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 };
INT8U Disp_Buff[] ={0,0,0};
extern INT8U GeT_CHx_AD_Value(INT8U ch);
void delay_ms(INT16U x){INT8U t;while(x--) for(t = 0; t<120; t++);}
void Serial_Input_595(INT8U dat)
{
    INT8U i;
    for(i = 0; i < 8; i++)
    {   if (dat & 0x80) DS = 1; else DS = 0;
        dat <<= 1;
        SH_CP = 0; _nop_();_nop_();
        SH_CP = 1; _nop_();_nop_();
    }
    SH_CP = 0;
}
void Parallel_output_595()
{
    ST_CP= 0; _nop_();
    ST_CP= 1; _nop_();
    ST_CP= 0; _nop_();
}
float Get_Distance()
{
    INT8U i; float AD_Sum = 0.0;
    for (i = 0; i < 10; i++) AD_Sum+= Get_CHx_AD_Value(0);
    return M_C / (AD_Sum / 10.0 + B_C) - K_C;
}
void DEC_TO_3DIGIT(INT16U d)
{
    Disp_Buff[0] = 0; Disp_Buff[1] = 0; Disp_Buff[2] = 0;
    while (d >= 100){ d -= 100;++Disp_Buff[2]; }
    while (d >= 10) { d -= 10; ++Disp_Buff[1]; }
    Disp_Buff[0] = d;
}
void main()
{
    float d;
    delay_ms(700);
    while (1)
    {   d = Get_Distance();
      
        DEC_TO_3DIGIT((INT16U)(d*10));
        Serial_Input_595(SEG_CODE[Disp_Buff[0]]);
        Serial_Input_595(SEG_CODE[Disp_Buff[1]] & 0x7F);
        Serial_Input_595(SEG_CODE[Disp_Buff[2]]);
        Parallel_Output_595();
    }
}


20200605182621.png (69.95 KB, 下載次數: 73)

20200605182621.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:767423 發表于 2020-6-6 10:34 | 只看該作者
這個不就是程序嗎。直接在KEIL開發環境編譯后下載到芯片中運行。float Get_Distance()這個就是測距的函數,測傳感器輸出電壓(10次求平均)然后換算成距離輸出。
回復

使用道具 舉報

板凳
ID:560467 發表于 2020-6-6 16:02 | 只看該作者
直接加到測距函數里面就好了,限制一下距離就好。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表