C51进行I²C通信
来源:互联网 发布:俞兆林内裤怎么样知乎 编辑:程序博客网 时间:2024/06/10 08:05
I²C(Inter IC Bus)是由 Philips 推出的数据总线协议。
#include <reg52.h>void display(unsigned int n){unsigned char i;char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};P2 = 0 << 2;P0 = table[n%10];for (i=0;i<25;i++);P0 = 0;P2 = 1 << 2;P0 = table[n/10%10];for (i=0;i<25;i++);P0 = 0;P2 = 2 << 2;P0 = table[n/100%10];for (i=0;i<25;i++);P0 = 0;P2 = 3 << 2;P0 = table[n/1000%10];for (i=0;i<25;i++);P0 = 0;}// IIC bussbit SCL=P2^1;sbit SDA=P2^0;// 4 keyssbit k1=P3^1;sbit k2=P3^0;sbit k3=P3^2;sbit k4=P3^3;void delay(unsigned int i){while(i--);}void I2cStart(){SDA = 1;delay(5);SCL = 1;delay(5);SDA = 0;delay(5);}void I2cStop(){SDA = 0;delay(5);SCL = 1;delay(5);SDA = 1;}void I2cSendByte(unsigned char n){signed char i;for (i=7;i>=0;i--){SCL = 0;delay(5);SDA = 0x01 & (n>>i);delay(5);SCL = 1;delay(5);}SCL = 0;delay(5);SDA = 1;delay(5);SCL = 1;delay(5);while((SDA==1)&&(i++<255));SCL = 0;delay(5);}unsigned char I2cReadByte(){unsigned char i,k;SCL = 0;delay(5);SDA = 1;delay(5);for (i = 0; i < 8; ++i){SCL = 1;delay(5);k <<= 1;k|= SDA;SCL = 0;delay(5);}delay(5);return k;}int main(){unsigned char num=0;while (1){if(k1==0){delay(1000);if(k1==0){I2cStart();I2cSendByte(0xa0);// set chipI2cSendByte(1);// set address 1I2cSendByte(num);// set valueI2cStop();}while(!k1);} else if(k2==0) {delay(1000);if(k2==0){I2cStart();I2cSendByte(0xa0);// set chip 0xa0I2cSendByte(1);// set address 1I2cStart();I2cSendByte(0xa1);// set chip 0xa1num=I2cReadByte();// read byteI2cStop();}while(!k2);} else if(k3==0) {delay(1000);if(k3==0)num++;// add 1while(!k3);} else if(k4==0) {delay(1000);if(k4==0)num=0;// set 0while(!k4);}display(num);}return 0;}
aaa
阅读全文
0 0
- C51进行I²C通信
- 两个80c51单片机之间怎样进行串行通信
- 80C51串口以方式3进行串行通信
- C51多机通信
- C51 UART 串口通信
- C51---串口通信---接收---发送
- C PK C51
- php和c通过socket进行通信
- java与c/c++进行socket通信
- php和c通过socket进行通信
- c 和 java 通过 socket 进行通信
- java与C进行socket通信中的通信异常问题
- 80c51单片机通用I/O口
- C51:串口通信接收与发送
- C51---串口通信---虚拟终端模仿
- 单片机与RS232串口通信C51程序
- Keil C51 vs 标准C
- Keil C51 vs 标准C
- UVA 10026
- MapReduce II
- with check option
- E
- LeetCode算法问题3 —— Median of Two Sorted Arrays
- C51进行I²C通信
- poj3195 Generalized Matrioshkas(栈)
- Ubuntu上离线安装包的制作与安装
- Camera Calibration calibrateCamera()
- 解决dubbo的vc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for
- 如何将python3.6软件的py文件打包成exe程序
- 15算法课程 226. Invert Binary Tree
- C#简单依赖注入解析类
- C语言之unsigned char和uint8_t