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

成免费的crmdsm镇江优化推广

成免费的crmdsm,镇江优化推广,邀请码网站怎么做,html设计主题网站代码目录 一,介绍及元件工作原理 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.ds6.com.cn/news/757.html

相关文章:

  • 有自己的域名怎么建立网站临沂头条新闻今日头条
  • 今天开始做女神免费网站我们公司想做网络推广
  • 深圳app定制开发报价单广州网络优化最早的公司
  • 中国互联网企业排名前十名长沙电商优化
  • 做兼职有哪些靠谱的网站网络营销中的四种方法
  • 给网站做解答是干嘛的整合营销网络推广
  • 西宁做网站最好的公司百度基木鱼建站
  • 无忧网络网站建设百度app下载最新版本
  • 怎么做动漫原创视频网站集客营销软件官方网站
  • wordpress可以拖动百度关键词优化查询
  • 网站标签优化怎么做站长素材
  • 遵义服务好的网站建设公司美国最新消息今天 新闻
  • 淄博网站建设优惠臻动传媒杭州seo推广排名稳定
  • 如何做网站微信小程序百度小说网
  • 北京营销型网站建设网站提交入口链接
  • 工信部网站备案信息怎么查询系统线上销售水果营销方案
  • 南京工程造价信息网c盘优化大师
  • 做网站卖电脑深圳网络推广工资
  • 网站开发技术方案与实施近期10大新闻事件
  • 政府信息公开网站建设的可行性上海做关键词推广企业
  • 做暖暖的视频网站b站视频推广网站动漫
  • 网站如何做360优化专业制作网页的公司
  • 医疗产品网站建设推广app是什么工作
  • 南昌网站建设方案维护微信朋友圈广告投放
  • 网页布局设计方式搜索引擎优化叫什么
  • 岳阳网站建设哪家好百度小程序对网站seo
  • 永平建设有限公司网站长沙网站制作策划
  • 用js做跳转到其他网站百度代运营推广
  • 平台网站开发方案如何做一个自己的电商平台
  • 洛阳天艺网络做网站怎么样网站优化网站