标题:
stc12c5608ad I2c学习笔记 含程序
[打印本页]
作者:
51黑mcu
时间:
2016-6-18 01:47
标题:
stc12c5608ad I2c学习笔记 含程序
开场白------本人年过五十二了年迈的父母已经离去。孩子也已经工作三年也不用我多余操心 。小生意也清淡这下算有时间来捣鼓捣鼓我的业余爱好,本人愚笨没有棋牌类的大众爱好,驾车技术也不好自然自驾游就没兴趣了。想来想去还是做一个老宅男在家里做一些小电路实验。这也算满足自己的好奇心吧。动手动脑远离老年痴呆症哈哈哈哈。。。。 由于从小就爱好自然电子垃圾很多于是开始了。。。。。
言归正传,想来想去还是从单片机I2c开始吧。找到吃灰的stc12c5608ad ,洞洞板,于是乎搭建最小系统,下载软件就开始I2c 之旅。选stc主要是下载方便,一个usb转串口就可以下载了。
先是看I2c的协议,开始不太明白,看了几天有了些理解,时序很重要弄清楚了。对今后的实验有好处。语言就用c51,编译器用keil
编了几段程序试了一下基本按照我的思路运行。注意的事项是,启动器件,器件地址,读写命令。
//***********I2C********* //
#include <STC12C56.H>
int k,i,j,n; //定义全局变量
void yanshi() ; // 延时程序
void qidong(); //启动程序
void pz(); //器件地址
void songshu(); // 送器件地址
sbit sda=P2^4;
sbit scl=P2^5; void songshu() //送器件地址
{ int b, a=0x80,c=0xa0 ,d=0xff;
scl=0; //这一定要
yanshi() ;
for(b=0;b<8;b++) //要送数据长度为8位/
{ if((c<<b)&0x80) //判断发送位/
sda=1;
else sda=0;
yanshi( );
P20=0;//送一个数闪一次
scl=1 ;
yanshi();
scl=0;
P20=1;
}
yanshi();
sda=1;
yanshi();
scl=1;
P20=0;
yanshi();
if(P24==0)
P20=0; //方便观察应答
else P20=1;
}
void pz() //基础实验,死办法一个个的送,在第9个上会收到应答
{ scl=0; //1
yanshi();
sda=1;
P20=0;
yanshi();
P20=1;
scl=1;
yanshi();
scl=0; //2
yanshi();
sda=0;
P20=0;
yanshi();
P20=1;
scl=1;
yanshi();
scl=0;
yanshi(); //3
sda=1;
P20=0;
yanshi();
P20=1;
scl=1;
yanshi();
scl=0;
yanshi();
sda=0; //4
P20=0;
yanshi();
P20=1;
scl=1;
yanshi();
scl=0;
yanshi();
sda=0; //5
P20=0;
yanshi();
P20=1;
scl=1;
yanshi();
scl=0;
yanshi();
sda=0; //6
P20=0;
yanshi();
P20=1;
scl=1;
yanshi();
scl=0;
yanshi();
sda=0;
P20=0; //7
yanshi();
P20=1;
scl=1;
yanshi();
scl=0;
yanshi();
sda=1;
P20=0; //8
yanshi();
P20=1;
scl=1;
yanshi();
scl=0;
yanshi();
sda=1;
yanshi();
scl=1;
if(P24==0)
P20=0; //9
else P20=1;
}
void yanshi()//延时程序
{ for(n=1;n<=1000;n++)
{ P21=0;
for(j=1;j<=10;j++)
P21=1;
}
}
void qidong() //启动程序
{ scl=1;
sda=1;
yanshi() ; // 调用延时程序
sda=0;
yanshi();
}
void main(void)
{ qidong(); //调用启动
songshu();
while(1);
}
程序中用了大量的延时是为了方便调试,在P20口接了一个发光管观察,嘿嘿程序灌进去运行一下看见了。。。。。。明天继续学习
作者:
lb688
时间:
2016-6-18 12:53
学习学习
作者:
1678
时间:
2016-12-3 20:51
请问有stc12c5608ad的引脚图吗?
作者:
1678
时间:
2016-12-3 20:51
请问有stc12c5608ad的引脚图吗?
作者:
1678
时间:
2016-12-3 20:52
有的话可以发我一份吗?
作者:
银河系外的我
时间:
2018-11-12 11:39
我的uVison3 没有12c5608ad的头文件怎么办?
作者:
大雨
时间:
2019-2-21 11:26
现在学习的怎么样了?在吗不见下文呀
作者:
3花木城
时间:
2022-1-8 22:34
有心人
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1