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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2504|回復: 5
收起左側

51單片機程序驅動PCF8574點亮一個發光二極管,二極管不亮

[復制鏈接]
ID:1090070 發表于 2023-7-30 14:20 | 顯示全部樓層 |閱讀模式
哪位大神幫我看一下程序
#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);
}


回復

使用道具 舉報

ID:262 發表于 2023-7-31 03:31 | 顯示全部樓層
會不會是電路接錯了?
回復

使用道具 舉報

ID:320306 發表于 2023-7-31 09:21 | 顯示全部樓層
建議把電路圖也放上來看看!!!
回復

使用道具 舉報

ID:161164 發表于 2023-7-31 10:27 | 顯示全部樓層
2023-07-31_102324.png 這延時函數太長了,delay(6)差不多3.5ms
應改為以下
  1. void delay(uchar z)
  2. {
  3.     while(z--);
  4. }
復制代碼


2023-07-31_102336.png



評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:1090070 發表于 2023-8-5 10:54 | 顯示全部樓層
是延時的問題,謝謝各位
回復

使用道具 舉報

ID:597405 發表于 2023-8-5 15:33 | 顯示全部樓層
使用I2C一定要注意時間。我以前使用同一個程序,在C52和15W上。C52能正常使用,在15上就不能了,檢查發現,由于15W系列單片機響應速度太快,端口的狀態還沒有變化,就收集完畢了。修改延時時間,等端口變化后在采集,一采一個準。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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