久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2524|回復: 1
收起左側

求助關于PCF8591和GP2Y1014傳感器,幫忙看看代碼哪里有問題,主要是AD轉換那塊

[復制鏈接]
回帖獎勵 50 黑幣 回復本帖可獲得 10 黑幣獎勵! 每人限 1 次
ID:295381 發表于 2018-4-10 15:19 | 顯示全部樓層 |閱讀模式
PCF8591:

#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define somenop() _nop_(),_nop_(),_nop_(),_nop_(),_nop_(),_nop_()

#define  WRITEADDR 0x90  
#define  READADDR  0x91   
//PCF89C51??
sbit SCL=P1^0;
sbit SDA=P1^1;
bit ack;
void Init_I2c()
{
SDA=1;
somenop();
SCL=1;
somenop();
}

void Start_I2c()
{
  SDA=1;      
  somenop();
  SCL=1;
  somenop();   
  SDA=0;   
  somenop();      
  SCL=0;      
  somenop();
}

void Stop_I2c()
{
  SDA=0;   
  somenop();  
  SCL=0;
  somenop();
  SCL=1;   
  somenop();
  SDA=1;     
  somenop();
}

void  SendByte(uchar  c)
{
uchar  i;

for(i=0;i<8;i++)
    {
     if((c<<i)&0x80)SDA=1;   
       else  SDA=0;               
     somenop();
     SCL=1;         
     somenop();         
     SCL=0;
    }
   
    somenop();
    SDA=1;         
    somenop();   
    SCL=1;
    somenop();

    if(SDA==1)ack=0;     
       else ack=1;  
    SCL=0;
   somenop();
}

uchar   RcvByte()
{
  uchar  retc;
  uchar  i;
  
  retc=0;
  SDA=1;                    
  for(i=0;i<8;i++)
      {
        somenop();         
        SCL=0;                 
        somenop();
        SCL=1;               
        somenop();
        retc=retc<<1;
        if(SDA==1)retc=retc+1;  
        somenop();
      }
  SCL=0;   
  somenop();
  return(retc);
}

void Ack_I2c(bit a)
{
  if(a==0)
{
  SDA=0;
  somenop();
  SCL=1;
  somenop();
  SCL=0;
  somenop();
  SDA=0;
  somenop();
  SDA=1;
  somenop();
}
  else
{
  SDA=1;
    somenop();     
    SCL=1;
    somenop();  
    SCL=0;                     
    somenop();
    SDA=0;
    somenop();  
}  
}

bit ISendByte(uchar add,uchar channel)
{
   Start_I2c();            
   SendByte(add);         
   if(ack==0)return(0);
   SendByte(0x40|channel);            
   if(ack==0)return(0);
   Stop_I2c();            
   return(1);
}

uchar IRcvByte(uchar add)
{  
   uchar dat;
   Start_I2c();         
   SendByte(add+1);   
   if(ack==0)return(0);
   dat=RcvByte();        
   Ack_I2c(1);           
   Stop_I2c();      
   return(dat);
}
sbit vled  = P3^2;
void Delay1us(uint t)  
{
while(t--)_nop_();
}
uint read_data()
{
uint val=0;
//Init_I2c();
vled=0;
Delay1us(20);
ISendByte(WRITEADDR,0);
//val=adc0832(N,M);
val=IRcvByte(WRITEADDR);
vled=1;
Delay1us(400);
return val;
}


主函數:
#include <reg52.h>
#include <lcd1602.h>
#include <math.h>
#include <pcf.h>
#define uchar unsigned char
#define uint  unsigned int
void main(void)
{
double PM,pm1,pm2;
int PMVAL=0,HPM=200,PM_count=0,pm1_count=0;
uchar disp[16]  ={"PM2.5:0000ug/m3 "};                        
LCD_Init();
  WriteChar(1,0,16,disp);
while(1)
{

  pm1+=read_data();//這里為把AD轉換后的值傳過來
  if(++PM_count>=20)
  {
     PM_count=0;
      pm1=pm1/20;
   pm2+=pm1;
   pm1=0;
   if(++pm1_count>=5)
   {
    pm1_count=0;
    PM=pm2/5;
    PM=PM*50/255;
    PM-=4;
       PM/=5;
    PM*=1000;
    PMVAL=PM;
    PMVAL+=235; PMVAL=PMVAL/9;
    if(PMVAL>=9999)PMVAL=9999;
    WriteCOMorDATA(0x86,0);
    if(PMVAL<0)//PMVAL=0;
    {WriteCOMorDATA(0+0x30,1);PMVAL=abs(PMVAL);}
    else WriteCOMorDATA(PMVAL/1000+0x30,1);
    WriteCOMorDATA(PMVAL/100%10+0x30,1);
    WriteCOMorDATA(PMVAL/10%10+0x30,1);
    WriteCOMorDATA(PMVAL%10+0x30,1);
    PM=pm1=pm2=0;
   }
  }
}
}

回復

使用道具 舉報

ID:307472 發表于 2018-7-5 14:49 | 顯示全部樓層
你好,現在你的程序好使了么???
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久亚洲精品 | 美女视频一区 | 国产精品高清在线 | 日韩在线欧美 | 欧美精品一区二区三区在线播放 | 亚洲精品99 | 在线欧美一区 | 麻豆久久久9性大片 | 99福利在线观看 | 91视频久久久久 | 伊人天堂网 | 欧美精品在线免费 | 色眯眯视频在线观看 | 人人cao| 久久久久国产精品免费免费搜索 | 7777在线视频免费播放 | 一级毛片网| 一本大道久久a久久精二百 国产成人免费在线 | 欧美成人一区二区三区 | 超黄毛片 | 暖暖日本在线视频 | 综合色播| 三级av在线| 国产小视频在线观看 | 久久亚洲一区二区三区四区 | 成人一区在线观看 | 精品久久不卡 | 伊人精品国产 | 成人精品一区二区三区中文字幕 | 日日夜夜天天 | 日本视频一区二区 | 国产精品久久在线观看 | 欧美一级在线视频 | 久久综合一区二区三区 | 欧美激情精品久久久久久变态 | 国产精品免费一区二区三区四区 | 国产乱码精品一区二区三区忘忧草 | 欧美精品在线免费观看 | 精品日韩一区二区三区 | 精品国产一区二区三区久久影院 | 精品一区二区av |