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

標(biāo)題: 51單片機(jī)程序驅(qū)動(dòng)PCF8574點(diǎn)亮一個(gè)發(fā)光二極管,二極管不亮 [打印本頁(yè)]

作者: 佑達(dá)    時(shí)間: 2023-7-30 14:20
標(biāo)題: 51單片機(jī)程序驅(qū)動(dòng)PCF8574點(diǎn)亮一個(gè)發(fā)光二極管,二極管不亮
哪位大神幫我看一下程序
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit scl=P0^0;
sbit sda=P0^1;

void delay(uint z)
{
  uint a,b;
  for(a=z;a>0;a--)
  for(b=200;b>0;b--);
}
void start()
{
  sda=1;
  delay(6);
  scl=1;
  delay(6);
  sda=0;
  delay(6);
}

void stop()
{
  sda=0;
  delay(6);
  scl=1;
  delay(6);
  sda=1;
  delay(6);
}

void ack()
{
  uchar i;
  scl=1;
  delay(6);
  while((sda==1)&(i<250))i++;
  delay(6);
  scl=0;
  delay(6);
}

void write_i2c_byte(uchar date)
{
  uchar temp,u;
  temp=date;
  for(u=0;u<8;u++)
  {
        temp=temp<<1;
        scl=0;
    delay(6);
        sda=CY;
        delay(6);
    scl=1;
        delay(6);
  }
    scl=0;
    delay(6);
    sda=1;
    delay(6);
}

void writer_PCF8574()
{
  start();
  write_i2c_byte(0x4e);
  ack();
  write_i2c_byte(0x00);
  ack();
  stop();
}

void main()
{
  sda=1;
  delay(6);
  scl=1;
  delay(6);
  writer_PCF8574();
  while(1);
}



作者: heicad    時(shí)間: 2023-7-31 03:31
會(huì)不會(huì)是電路接錯(cuò)了?
作者: zsyzdx    時(shí)間: 2023-7-31 09:21
建議把電路圖也放上來(lái)看看!!!
作者: lkc8210    時(shí)間: 2023-7-31 10:27
這延時(shí)函數(shù)太長(zhǎng)了,delay(6)差不多3.5ms
應(yīng)改為以下
  1. void delay(uchar z)
  2. {
  3.     while(z--);
  4. }
復(fù)制代碼







作者: 佑達(dá)    時(shí)間: 2023-8-5 10:54
是延時(shí)的問(wèn)題,謝謝各位
作者: 單片機(jī)初學(xué)者174    時(shí)間: 2023-8-5 15:33
使用I2C一定要注意時(shí)間。我以前使用同一個(gè)程序,在C52和15W上。C52能正常使用,在15上就不能了,檢查發(fā)現(xiàn),由于15W系列單片機(jī)響應(yīng)速度太快,端口的狀態(tài)還沒(méi)有變化,就收集完畢了。修改延時(shí)時(shí)間,等端口變化后在采集,一采一個(gè)準(zhǔn)。




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