欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: GP2Y02A21傳感器在單片機開發板測距顯示程序如何修改才能使用? [打印本頁]

作者: 蕭薰兒的小迷弟    時間: 2021-5-7 18:23
標題: GP2Y02A21傳感器在單片機開發板測距顯示程序如何修改才能使用?

剛開始學單片機,簡單的程序還能看看,復雜的就看不太懂。
現在需要紅外測距通過這個開發板顯示在1602屏幕上,在網上也搜了好多例程,都用不了,求大佬指點一下程序怎么改改才能使用。
謝謝

單片機源程序如下:
#include"reg52.h"
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char

sbit cs = P3^2;
long int read=0;
sbit wela = P2^7;
sbit dula = P2^6;
sbit lcden=P3^4;
sbit lcdrs=P3^5;

uchar bai,shi,ge,num;

uchar table[] ="123456789";

void delayms(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y-- );
}

void write_com(uchar com)
{        
        lcdrs=0;
        P0=com;
        delayms(5);
        lcden=1;
        delayms(5);
        lcden=0;
}

void write_data(uchar date)
{
        lcdrs=1;
        P0=date;
        delayms(5);
        lcden=1;
        delayms(5);
        lcden=0;
}

void init()
{
        dula=0;
        wela=0;
        lcden=0;
        write_com(0x38);
        write_com(0x0c);
        write_com(0x06);
        write_com(0x01);
}
void delay(uint a)           //  a 個1us延時
{
        for(;a > 0;a --)
        _nop_();_nop_();
}

void T0_time() interrupt 1
{
        cs = 0;
        RD = 0;
        read = P1;
        INT0 = 1;
}
uint adc0804()
{
TMOD=0X01;
TH0=(65536-45872)/256;
TL0=(65536-45872)/256;
EA=1;
ET0=1;
TR0=1;

        INT0 = 1;
        cs = 0;
        WR = 0;
        delay(255);
        cs = 1;
        WR = 1;
        delay(200);               
        read = read * 196 /100;
        return read;
        
}

void math(uint x)
{
        bai = x / 100;
        shi = x /10 % 10;
        ge = x % 10;
}
void display()
{         
         
        math(adc0804());
        
        dula=1;
        P0 = table[bai+10];
        dula=0;
        P0=0xff;

        wela = 1;
        P0 = 0xfe;
        wela=0;
        delay(7000000);

               
        dula=1;
        P0 = table[shi];
        dula=0;
        P0=0xff;

        wela = 1;
        P0 = 0xfd;
        wela=0;
        delay(7000000);

               
        dula=1;
        P0 = table[ge];
        dula=0;
        P0=0xff;

        wela = 1;
        P0 = 0xfb;
        wela=0;
        delay(7000000);
        
}








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