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

小型企业网站设计与制作上海百度推广开户

小型企业网站设计与制作,上海百度推广开户,南通网站建设要多少钱,番禺网络公司目录 一,介绍及元件工作原理 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.dt0577.cn/news/650.html

相关文章:

  • 新网站制作市场热门搜索
  • 贵州企业网站建设设计培训课程名称大全
  • 深圳门户网站建设可以引流推广的app
  • 哪里可以学做网站百度云搜索引擎官网
  • 广州的做淘宝女鞋货源下载数据包的网站网址是多少?电子商务网站建设与维护
  • 做新闻网站百度站长工具怎么查排名
  • 一个做flash的网站今天国际新闻
  • 北京 企业建网站搜索引擎优化seo怎么做
  • 现货交易十大平台百度seo怎么把关键词优化上去
  • 推广网站怎样阻止百度网址名称是什么
  • 昆明手机网站开发刷粉网站推广
  • 手机上做网站的软件太原seo推广外包
  • 用wix做外贸网站seo学习论坛
  • php mysql网站开发项目式教程文军seo
  • 企业网站分为哪三种类型兰州seo
  • wordpress怎么做伪静态页面seo网站课程
  • 北京市网站建设百度seo关键词优化排行
  • 在线客服网站源码怎么提升关键词的质量度
  • 东莞的网站建设网络推广价格
  • 天津营销网站建设商业软文案例
  • asp网站自动识别手机个人免费自助建站网站
  • 织梦医院网站模板优化大师电脑版官网
  • magento 做商城网站注册google账号
  • 企业品牌宣传重庆网站seo服务
  • 单机游戏网页版windows优化
  • 绍兴网站关键词优化seo排名啥意思
  • 阿里巴巴是搭建的网站吗网站内链优化
  • 如何把自己做的网站挂网上北京百度seo排名点击软件
  • 合肥网上商城网站建设百度指数官网
  • 手机开发网站怎么做seo资源网站 排名