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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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);
        
}



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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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