I2c串行总线组成及其工作原理
2013-09-30 11:53
183 查看
采用串行总线技术可以使系统的硬件设计大大简化,系统的体积减小,可靠性提高,同时系统更容易更改和扩充
常用的串行扩展总线有:I2c总线,单总线,SPI总线,以及microwire、Plus等等
I2c总线只有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL
View Code
版权所以转载请注明链接地址:/article/5266366.html
常用的串行扩展总线有:I2c总线,单总线,SPI总线,以及microwire、Plus等等
I2c总线只有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL
#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit sda = P2^3; sbit scl = P2^2; sbit wp = P2^1; void delay()//微妙级别的延时函数 {;;} void start()//开始信号 { sda = 1; delay(); scl = 1; delay(); sda = 0; delay(); } void stop()//停止信号 { sda = 0; delay(); scl = 1; delay(); sda = 1; delay(); } void respons()//应答信号 { uchar i; scl = 1; delay(); while((sda ==1)&&(i<250))//等到第九个时钟周期的时候,还没有变为0, //那么scl将自动的变为0,表示收到信号 { i++; } scl = 0; } void init() { sda = 1; scl = 1;//把线全部释放 } void write_byte(uchar date) { uchar i,temp; temp = date; scl = 0; delay(); for(i = 0;i<8;i++)//写8次 { temp = temp<<1;//表示将temp左移1位,将最高位移入psw寄存器中的cy位, //然后将最高位赋值给sda,送走数据 scl = 1;//数据稳定了 delay(); sda = CY; delay(); scl = 0;//读走数据 delay(); } sda = 1;//注意养成释放总线的习惯 delay(); } uchar read_byte() { uchar i,j,k; scl = 0; delay(); sda = 1;//释放数据总线 delay(); for(i=0;i<8;i++) { scl = 1; delay(); j = sda ;//读取数据 k =(k<<1)|j; scl = 0; delay(); } return k; } uchar read_add(uchar address) { uchar date; start(); write_byte(0xa0);//表示写入器件的地址 respons(); write_byte(address); respons(); start(); write_byte(0xa1); respons(); date=read_byte(); stop(); return date; } void write_add(uchar address,uchar date) { init();//初始化信号总线和地址总线 start();//启动信号 write_byte(0xa0);//表示写入器件的地址 respons(); write_byte(address);//表示往这个器件内部的第三个地址处写入地址 respons(); write_byte(date);//表示器件内部的数据 respons(); stop(); } void delay1(uint z) { uint x,y; for(x= z;x>0;x--) for(y=110;y>0;y--); } void main() { init(); write_add(23,125); delay1(100); P1=read_add(23); while(1); }
View Code
版权所以转载请注明链接地址:/article/5266366.html
相关文章推荐
- I2C串行总线的组成据工作原理
- SPI、I2C、UART三种串行总线的原理、区别及应用
- SPI、I2C、UART三种串行总线的原理、区别及应用
- SPI、I2C、UART三种串行总线的原理、区别及应用
- SPI、I2C、UART三种串行总线的原理、区别及应用
- I2C串行总线的组成及工作原理
- SPI、I2C、UART三种串行总线通信的原理以及区别
- SPI、I2C、UART三种串行总线的原理、区别及应用
- LoadRunner组成及其工作原理简介
- LoadRunner组成及其工作原理简介
- iSCSI网络存储服务器的组成及其工作原理
- SPI、I2C、UART三种串行总线的原理、区别及应用
- SPI、I2C、UART三种串行总线的原理、区别及应用
- LoadRunner组成及其工作原理简介
- I2C总线原理及应用实例
- 代理服务器的概念及其工作原理
- SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)
- AJAX工作原理及其优缺点
- SPI、I2C、UART三种串行总线协议的区别
- GPRS DTU及其工作原理