![]() |
發(fā)布時間: 2018-12-10 15:21
正文摘要:本帖最后由 zhengaohui 于 2018-12-10 15:38 編輯 在書上看到這樣的程序,這個好像是8位的地址尋址程序,咋寫16位的地址尋址呢復制代碼 |
為何不看它的手冊呢? |
wang2 發(fā)表于 2018-12-10 17:05 你這是干什么?? |
#include "iic.h" void delay() { ;; } void delay10ms() { int a,b; for(a=50;a>0;a--) for(b=200;b>0;b--); } void nack() { scl=1; delay(); sda=1; scl=0; delay(); } void start() { sda=1; scl=1; delay(); sda=0; delay(); } void stop() { sda=0; scl=1; delay(); sda=1; delay(); } void ack() { uchar i; scl=1; delay(); while((sda==1)&&i<520) i++; scl=0; delay(); } void write_byte(uchar date) { uchar i,temp; temp=date; for(i=0;i<8;i++) { temp=temp<<1; sda=CY; delay(); scl=1; delay(); } scl=0; delay(); sda=1; } uchar read_byte() { uchar i,j,k; scl=0; delay(); for(i=0;i<8;i++) { scl=1; delay(); j=sda; k=(k<<1)|j; scl=0; delay(); } return k; } void write_at24c32(uchar address,uchar date) { start(); write_byte(0x57); ack(); write_byte(address); ack(); write_byte(date); ack(); stop(); } uchar read_at24c32(uchar address) { uchar date; write_byte(0x56); ack(); write_byte(address); ack(); start(); write_byte(0x57); ack(); date=read_byte(); nack(); stop(); return date; } |
|
Powered by 單片機教程網(wǎng)