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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3109|回復: 13
收起左側

51單片機普通io口如何模擬轉換為iic接口?

  [復制鏈接]
ID:839796 發表于 2020-12-14 01:12 來自觸屏版 | 顯示全部樓層 |閱讀模式
大佬們,幫幫忙,需要將兩個普通io接口模擬成兩個iic接口,用來進行1602液晶屏的讀寫操作
回復

使用道具 舉報

ID:716656 發表于 2020-12-14 07:40 來自觸屏版 | 顯示全部樓層
百度一份,改下sbit
回復

使用道具 舉報

ID:592807 發表于 2020-12-14 09:11 | 顯示全部樓層
現在網上搜IIC程序基本都是普通IO口模擬的。

stm32任意引腳模擬IIC.rar

2.6 KB, 下載次數: 11

評分

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

查看全部評分

回復

使用道具 舉報

ID:673961 發表于 2020-12-14 09:49 來自觸屏版 | 顯示全部樓層
之前百度上看到過
回復

使用道具 舉報

ID:277550 發表于 2020-12-14 09:54 | 顯示全部樓層
向買iic屏的商家要一份
回復

使用道具 舉報

ID:860010 發表于 2020-12-14 11:06 | 顯示全部樓層
上網隨便抄一個I2C單片機驅動就可以了
回復

使用道具 舉報

ID:307020 發表于 2020-12-14 12:09 | 顯示全部樓層
請在論壇中找PCF8547模塊的相關內容。

評分

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

查看全部評分

回復

使用道具 舉報

ID:517951 發表于 2020-12-14 19:49 | 顯示全部樓層
用51單片機的IO腳模擬I2C的例程可以可以在51黑論壇里找電子萬年歷的例程:用DS1302等串口的時鐘芯片

void write_byte(uchar dat)
{
        ACC=dat;
        RST=1;
        for(a=8;a>0;a--)
        {
                IO=ACC0;
                SCLK=0;
                SCLK=1;
                ACC=ACC>>1;
        }
}
uchar read_byte()
{
        RST=1;
        for(a=8;a>0;a--)
        {
                ACC7=IO;
                SCLK=1;
                SCLK=0;
                ACC=ACC>>1;

        }
        return (ACC);
}
----------------------------------------
void write_1302(uchar add,uchar dat)
{

        RST=0;
        SCLK=0;
        RST=1;
        write_byte(add);
        write_byte(dat);
        SCLK=1;
        RST=0;
}
uchar read_1302(uchar add)
{
        uchar temp;
        RST=0;
        SCLK=0;
        RST=1;
        write_byte(add);
        temp=read_byte();
        SCLK=1;
        RST=0;
        return(temp);
}

void ds1302_init()
{
RST=0;
SCLK=0;

write_1302(0x8e,0x00);
//write_1302(0x80,0x00);
//write_1302(0x82,0x00);
//write_1302(0x84,0x12);
//write_1302(0x8a,0x04);
//write_1302(0x86,0x07);
//write_1302(0x88,0x01);
//write_1302(0x8c,0x10);
write_1302(0x8e,0x80);
}

評分

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

查看全部評分

回復

使用道具 舉報

ID:401564 發表于 2020-12-14 21:54 | 顯示全部樓層
現在STC出的很多系列的單片機都是自帶IIC端口的,如果你不會IIC就直接用IIC端口就可以了
不然就去百度一下IIC協議看一下,或者是參考一下24C01的程序
IIC是相對簡單的一個協議的,看個兩三天就差不多了

評分

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

查看全部評分

回復

使用道具 舉報

ID:839796 發表于 2020-12-16 01:39 來自觸屏版 | 顯示全部樓層
黃youhui 發表于 2020-12-14 09:11
現在網上搜IIC程序基本都是普通IO口模擬的。

好的,謝謝
回復

使用道具 舉報

ID:839796 發表于 2020-12-16 01:39 來自觸屏版 | 顯示全部樓層
rayin 發表于 2020-12-14 19:49
用51單片機的IO腳模擬I2C的例程可以可以在51黑論壇里找電子萬年歷的例程:用DS1302等串口的時鐘芯片

voi ...

好的,謝謝
回復

使用道具 舉報

ID:839796 發表于 2020-12-16 01:40 來自觸屏版 | 顯示全部樓層
Y_G_G 發表于 2020-12-14 21:54
現在STC出的很多系列的單片機都是自帶IIC端口的,如果你不會IIC就直接用IIC端口就可以了
不然就去百度一下I ...

好的,謝謝
回復

使用道具 舉報

ID:280000 發表于 2020-12-31 14:58 | 顯示全部樓層
需要在程序中設置的軟IIC接口
回復

使用道具 舉報

ID:390416 發表于 2020-12-31 15:02 | 顯示全部樓層
void IIC_Delay()
{
        _nop_();_nop_();_nop_();_nop_();_nop_();
}

void IIC_Init()
{
        P2M0&=0x3f;
        P2M1&=0x3f;
        SDA_GPIO=1;
        SCL_GPIO=1;
}

void IIC_Start()//IIC啟動信號
{
        SDA_GPIO=1;
        SCL_GPIO=1;
        IIC_Delay();
        SDA_GPIO=0;
        IIC_Delay();
        SCL_GPIO=0;
        IIC_Delay();
}

void IIC_Stop()//IIC停止信號
{
        SDA_GPIO=0;
        SCL_GPIO=1;
        

        SDA_GPIO=1;
        IIC_Delay();
}

void IIC_Write_Byte(u8 IIC_Byte)//向總線發送一個字節
{
        u8 i;
        SCL_GPIO=0;
        SDA_GPIO=1;
        for(i=0;i<8;i++)
        {
                SDA_GPIO=(bit)(IIC_Byte&0x80);
                IIC_Byte<<=1;
                IIC_Delay();
                SCL_GPIO=1;
                IIC_Delay();
                SCL_GPIO=0;
                IIC_Delay();
        }
}

u8 IIC_Read_Byte()
{
        u8 i,Value;
        SCL_GPIO=0;
        SDA_GPIO=1;
        for(i=0;i<8;i++)
        {
                Value=(Value<<1)|SDA_GPIO;
                IIC_Delay();
                SCL_GPIO=1;
                IIC_Delay();
                SCL_GPIO=0;
                IIC_Delay();
        }
        return Value;
}

u8 IIC_Read_Ack()//單片機檢測IIC從機發來的應答信號
{
        u8 ack=1,i=0;
        SCL_GPIO=1;
        IIC_Delay();
        while((ack)&&(i<5))
        {
                ack=SDA_GPIO;
                i++;
        }
        SCL_GPIO=0;
        return ack;
}

void IIC_Write_Ack(bit ack)//單片機發送應答給從機
{
        SDA_GPIO=ack;
        IIC_Delay();
        SCL_GPIO=1;
        IIC_Delay();
        SCL_GPIO=0;
        IIC_Delay();
        SDA_GPIO=1;
        IIC_Delay();
}

IIC代碼 用我這個
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产女人18毛片水18精品 | 国产手机在线视频 | 精品国产一区二区三区久久久蜜月 | 国产一区二区福利 | 99久久精品一区二区成人 | 成年人网站在线免费观看 | 亚洲欧美国产高清va在线播放 | 中文字幕av一区二区三区 | 日韩一级av毛片 | 国产又粗又猛又黄又爽的视频 | 欧美一区在线视频 | 成人性生活免费视频 | 麻豆一区二区三区 | 97国产精品人人爽人人做 | 天天插天天 | 成人一区在线观看 | 最新av在线播放 | 亚洲成人天堂 | 国产精品一区在线播放 | 在线不欧美 | 亚洲视频免费在线观看 | 亚洲天堂国产 | 久久久久九九九 | 免费国产一区 | 伊人999| 草草免费视频 | 免费一区 | 黄色av一区 | 欧美狠狠操 | 欧美日韩精品一区 | 国产日韩欧美视频 | 国产欧美日韩综合精品 | 久久艳片www.17c.com | 免费成人黄色网址 | 欧美在线视频免费观看 | 日韩精品视频在线免费观看 | 永久免费看片在线播放 | 91成人国产 | 日韩在线视频免费观看 | 精品国产成人 | 亚洲精品免费在线观看 |