当前位置: 首页 > news >正文

泉州网站建设平台做网站哪家专业

泉州网站建设平台,做网站哪家专业,wd wordpress,ae模板素材网站目录 一,介绍及元件工作原理 7.时序结构(重要) 8.i2C总线数据帧(重要) 二,应用 一,介绍及元件工作原理 1.元件介绍 2.存储器 3.地址总线和数据总线 地址总线只能一次选中一行 4.引脚及应用…

目录

一,介绍及元件工作原理

7.时序结构(重要)

8.i2C总线数据帧(重要)

二,应用


一,介绍及元件工作原理

1.元件介绍

2.存储器

3.地址总线和数据总线

地址总线只能一次选中一行

4.引脚及应用电路

5.I2C总线

6.电路规范

7.时序结构(重要)

8.i2C总线数据帧(重要)

 9.AT24C02数据帧

二,应用

通过独立按键控制,独立按键K1使数值加一,

独立按键K2使数值减一,独立按键K3写入数据,独立按键K4读出数据

首先是要根据I2C的时序逻辑写对应的实现函数

#include <REGX52.H>sbit I2C_SCL=P2^1;
sbit I2C_SDA=P2^0;/*** @brief  I2C开始* @param  无* @retval 无*/
void I2C_Start(void)
{I2C_SDA=1;I2C_SCL=1;I2C_SDA=0;I2C_SCL=0;
}/*** @brief  I2C停止* @param  无* @retval 无*/
void I2C_Stop(void)
{I2C_SDA=0;I2C_SCL=1;I2C_SDA=1;
}/*** @brief  I2C发送一个字节* @param  Byte 要发送的字节* @retval 无*/
void I2C_SendByte(unsigned char Byte)
{unsigned char i;for(i=0;i<8;i++){I2C_SDA=Byte&(0x80>>i);I2C_SCL=1;I2C_SCL=0;}
}/*** @brief  I2C接收一个字节* @param  无* @retval 接收到的一个字节数据*/
unsigned char I2C_ReceiveByte(void)
{unsigned char i,Byte=0x00;I2C_SDA=1;for(i=0;i<8;i++){I2C_SCL=1;if(I2C_SDA){Byte|=(0x80>>i);}I2C_SCL=0;}return Byte;
}/*** @brief  I2C发送应答* @param  AckBit 应答位,0为应答,1为非应答* @retval 无*/
void I2C_SendAck(unsigned char AckBit)
{I2C_SDA=AckBit;I2C_SCL=1;I2C_SCL=0;
}/*** @brief  I2C接收应答位* @param  无* @retval 接收到的应答位,0为应答,1为非应答*/
unsigned char I2C_ReceiveAck(void)
{unsigned char AckBit;I2C_SDA=1;I2C_SCL=1;AckBit=I2C_SDA;I2C_SCL=0;return AckBit;
}

其次在AT24C02中调用I2C的函数,并结合AT24C02自己的时序结构写函数

#include <REGX52.H>
#include "I2C.h"#define AT24C02_ADDRESS		0xA0/*** @brief  AT24C02写入一个字节* @param  WordAddress 要写入字节的地址* @param  Data 要写入的数据* @retval 无*/
void AT24C02_WriteByte(unsigned char WordAddress,Data)
{I2C_Start();I2C_SendByte(AT24C02_ADDRESS);I2C_ReceiveAck();I2C_SendByte(WordAddress);I2C_ReceiveAck();I2C_SendByte(Data);I2C_ReceiveAck();I2C_Stop();
}/*** @brief  AT24C02读取一个字节* @param  WordAddress 要读出字节的地址* @retval 读出的数据*/
unsigned char AT24C02_ReadByte(unsigned char WordAddress)
{unsigned char Data;I2C_Start();I2C_SendByte(AT24C02_ADDRESS);I2C_ReceiveAck();I2C_SendByte(WordAddress);I2C_ReceiveAck();I2C_Start();I2C_SendByte(AT24C02_ADDRESS|0x01);I2C_ReceiveAck();Data=I2C_ReceiveByte();I2C_SendAck(1);I2C_Stop();return Data;
}

最后在main函数中实现按键与LCD1602显示的逻辑

#include <REGX52.H>
#include "LCD1602.h"
#include "Key.h"
#include "AT24C02.h"
#include "Delay.h"unsigned char KeyNum;
unsigned int Num;void main()
{LCD_Init();LCD_ShowNum(1,1,Num,5);while(1){KeyNum=Key();if(KeyNum==1)	//K1按键,Num自增{Num++;LCD_ShowNum(1,1,Num,5);}if(KeyNum==2)	//K2按键,Num自减{Num--;LCD_ShowNum(1,1,Num,5);}if(KeyNum==3)	//K3按键,向AT24C02写入数据{AT24C02_WriteByte(0,Num%256);Delay(5);AT24C02_WriteByte(1,Num/256);Delay(5);LCD_ShowString(2,1,"Write OK");Delay(1000);LCD_ShowString(2,1,"        ");}if(KeyNum==4)	//K4按键,从AT24C02读取数据{Num=AT24C02_ReadByte(0);Num|=AT24C02_ReadByte(1)<<8;LCD_ShowNum(1,1,Num,5);LCD_ShowString(2,1,"Read OK ");Delay(1000);LCD_ShowString(2,1,"        ");}}
}

效果展示

原理图

http://www.yayakq.cn/news/433248/

相关文章:

  • 家庭宽带怎么做网站wordpress做微商城
  • 织梦网站织梦做英文版的沈阳做网站的地方
  • 更改wordpress程序站点网址千山科技做网站好不好
  • 云南网站备案系统国际新闻最新消息今天新闻
  • 做网站用备案吗电脑上怎么建设网站
  • 锡盟网站建设设备管理系统下载
  • 个人建设门户网站 如何备案wordpress通过.htaccess实现缓存压缩
  • 会网站建设如何找工作wordpress免费媒体库管理
  • 网络营销电子版教材西安企业seo外包服务公司
  • 网站建设维护岗位职责网站运营维护工作内容
  • mui做浏览器网站跳转自己做网站切入地图
  • 如何提高网站点击量h5网站价格方案
  • 个人网站域名名字html代码自动生成
  • 最专业的做网站公司有哪些惠民网站建设
  • 来年做那个网站致富seo外包公司接单
  • 网站开发项目的里程碑谷歌排名查询
  • 酒水销售网站模板游戏网站免费入口
  • 网站建设上线流程烟台网站排名优化价格
  • 百度网站优化排名青岛胶南做网站的有多少
  • 鲜花网站数据库建设分析中信建设有限责任公司四川分公司
  • 电商网站设计培训家具营销策划方案
  • 金属材料网站建设艾艺公司团队定制
  • 公司做网站的招标书折页彩页设计
  • 网站代码500汾阳网架公司
  • 小挑可以做网站吗银川做网站最好的公司
  • 桃城区网站制作公司ppt超级市场
  • 祁阳网站建设123网络之家主页
  • 东莞网站建设熊掌号中国建筑第八工程局有限公司
  • 海口网站建设公司怎么用lofter做网站
  • 为网站网站做代理.net网站开发文档