I2C总线的相关程序
2016-09-19 19:10
302 查看
sbit SCL = P2^0; sbit SDA = P2^1; sbit RS = P2^4; sbit RW = P2^5; sbit E = P2^6;void iic_start()//起始信号 { SDA = 1; SCL = 1; delay_us(1); SDA = 0; delay_us(1); SCL = 0;//钳住总线 } void iic_stop() //终止信号 { SDA = 0; SCL = 1; delay_us(1); SDA = 1; delay_us(1); SCL = 0;//钳住总线 }
//下面是发送字节和接受字节的程序:
bit iic_send_byte(unsigned char byte) { unsigned char i; for(i = 0; i < 8; i++) { SDA = byte & 0x80;//非0值,SDA=1,否则SDA=0 SCL = 1; delay_us(1); SCL = 0; byte <<= 1; } SCL = 1; SDA = 1; delay_us(1); if(0 == SDA) { ack = 1; } else { ack = 0; } SCL = 0; return 0; } unsigned char iic_rcv_byte() { unsigned char i; unsigned char temp = 0; unsigned char a; SDA = 1; for(i = 0; i < 8; i++) { SCL = 0; delay_us(1); SCL = 1; if(SDA) { a = 0x01; } else { a = 0; } temp |= (a << (7 - i)); delay_us(1); } SCL = 0; return temp; }下面是应答和非应答信号:
void iic_ack() { SDA = 0; SCL = 1; delay_us(1); SCL = 0; } void iic_noack() { SDA = 1; SCL = 1; delay_us(1); SCL = 1; }
相关文章推荐
- Linux下使用I2C总线读写 EEPROM(读写i2c从设备通用程序)
- I2C总线的软件程序模拟—基于Niso II处理器
- I2C总线高频头控制程序(PLL芯片为TSA5522系列)【转载】
- i2c总线测试程序
- I2C总线相关_2
- I2C总线相关_1
- I2C总线相关_6
- Linux下使用I2C总线读写 EEPROM(读写i2c从设备通用程序)
- I2C总线及单片机模拟I2C总线通信程序编写
- I2C总线相关_4
- Linux下使用I2C总线读写 EEPROM(读写i2c从设备通用程序)
- I2C总线相关_5
- Linux下使用IIC总线读写EEPROM(读写i2c从设备通用程序)
- BeagleBone Black I2C总线相关操作
- i2c驱动--裸板程序i2c总线接AT24cxx
- I2C总线相关_3
- I2C总线原理及应用实例
- 用asp实现的代码批量修改程序,fso相关
- 后台程序的相关注意事项
- I2C总线终于明白了