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

漳州市住房和城乡建设局网站现在做网络推广都有什么方式

漳州市住房和城乡建设局网站,现在做网络推广都有什么方式,app免费制作软件中文版,wordpress彩色标签云设置方法目录 I2C时序结构 I2C代码 AT24C02代码(继承I2C底层代码) PCF8591 PCB上线的长短可能影响数据传输的时间,写I2C时序可能就要加一点延时 I2C时序结构 起始条件:SCL高电平期间,SDA从高电平切换到低电平终止条件&…

目录

I2C时序结构

I2C代码

AT24C02代码(继承I2C底层代码)

PCF8591


 PCB上线的长短可能影响数据传输的时间,写I2C时序可能就要加一点延时

I2C时序结构

  • 起始条件:SCL高电平期间,SDA从高电平切换到低电平
  • 终止条件:SCL高电平期间,SDA从低电平切换到高电平


发送一个字节:SCL低电平期间,主机将数据位依次放到SDA线上(高位在前),然后拉高SCL,从机将在SCL高电平期间读取数据位,素有SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可发送一个字节

 接收一个字节:SCL低电平期间,从机将数据位依次放到SDA线上(高位在前),然后拉高SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节(主机在接收之前,需要释放SDA)


  • 发送应答:在接收完一个字节之后,主机在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答
  • 接收应答:在发送完一个字节之后,主机在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收前,需要释放SDA)

I2C代码

#include "I2C.h"//15开发板中AT24C02的IIC通信引脚
sbit I2C_SDA = P2^1;
sbit I2C_SCL = P2^0;/*** @brief	I2C起始信号* @param	无* @retval	无*/
void I2C_Start(void)
{I2C_SDA = 1;	//拼接其他块,确保默认是1I2C_SCL = 1;I2C_SDA = 0;	//时序上先拉低I2C_SCL = 0;
}/*** @brief	I2C停止信号* @param	无* @retval	无*/
void I2C_Stop(void)
{I2C_SDA = 0;	//确保默认0,保证由低电平拉高至高电平I2C_SCL = 1;I2C_SDA = 1;
}/*** @brief	I2C发送一个字节数据* @param	Byte 要发送的字节* @retval	无*/
void I2C_SendByte(unsigned char Byte)
{unsigned char i;
//	I2C_SCL = 0;	//起始信号已经拉低了,无需重复for (i = 0; i < 8; i ++){		I2C_SDA = Byte & (0x80>>i);	//把Byte最高位取出,赋值给I2C_SDA,依次从高到底I2C_SCL = 1;
//		_nop_();_nop_();_nop_();_nop_();_nop_();//需要0.4usI2C_SCL = 0;}
}/*** @brief	I2C接收一个字节数据* @param	无* @retval	接受到的一个字节数据	*/
unsigned char I2C_ReceiveByte(void)
{unsigned char i,Byte=0x00;I2C_SDA = 1;	//接收之前,先把I2C_SDA置1,释放总线for(i=0;i<8;i++){I2C_SCL = 1;	//拉高SCL,SCL读取SDAif(I2C_SDA == 1){Byte |= (0x80>>i);}/*如果读取到的SDA为1,把Byte最高位置1,如果读取到的SDA为0,不处理,默认最高位为0,放在循环里从高位到低位依次读取*/I2C_SCL = 0;	//拉低SCL,结束当前循环}return Byte;
}/*** @brief	I2C发送应答* @param	AckBit 应答位,0为应答,1为非应答* @retval	无*/
void I2C_SendAck(unsigned char AckBit)
{				I2C_SDA = AckBit;//给应答就是0,不给应答就是1I2C_SCL = 1;I2C_SCL = 0;
}/*** @brief	I2C接收应答* @param	无* @retval	接收到的应答位,0为应答,1为非应答*/
unsigned char I2C_ReceiveAck(void)
{unsigned char AckBit;I2C_SDA = 1;	//先释放SDAI2C_SCL = 1;	//高电平期间读取SDAAckBit=I2C_SDA;	//读取到什么,就返回什么I2C_SCL = 0;return AckBit;	//返回0,代表有应答,返回1,代表无应答
}
#ifndef __I2C_H__
#define __I2C_H__#include <STC15F2K60S2.H>
#include "intrins.h"void I2C_Start(void);
void I2C_Stop(void);
void I2C_SendByte(unsigned char Byte);
unsigned char I2C_ReceiveByte(void);
void I2C_SendAck(unsigned char AckBit);
unsigned char I2C_ReceiveAck(void);#endif

 AT24C02设备地址: 

 A2A1A0这三个引脚是用来扩展的,如果不用就默认是000

所以默认设备地址是10100000(0xA0   写数据),10100001(0xA1   读数据)

AT24C02代码(继承I2C底层代码)

#include "AT24C02.h"#define AT24C02_ADDRESS   0xA0   //从机地址+写  1010 0000/***@brief   名称:AT24C02写入一个字节*@param   参数:WordAddess 要写入字节的地址(0~255)*@param   参数: Data 要写入的数据*@retval返回值:无*/
void AT24C02_WriteByte(unsigned char WordAddress, unsigned char Data)
{
//	unsigned char Ack;I2C_Start();I2C_SendByte(AT24C02_ADDRESS);//从机地址+写
//	Ack = I2C_ReceiveAck();
//	if(Ack == 0) 
//	{
//		P2 = 0x80;	// 1000 0000
//		P0 = 0x00;
//	}	//先测试是否有应答,定义的Ack被I2C_ReceiveAck();赋值,然后就可以测试了I2C_ReceiveAck();I2C_SendByte(WordAddress);	//要写入数据的地址I2C_ReceiveAck();I2C_SendByte(Data);	//写入数据I2C_ReceiveAck();I2C_Stop();
}/***@brief   名称:AT24C02读取一个字节*@param   参数:WordAddess 要读出字节的地址*@retval返回值:读出的数据*/
unsigned char AT24C02_ReadByte(unsigned char WordAddess)
{unsigned char Data;I2C_Start();I2C_SendByte(AT24C02_ADDRESS);	//从机地址+写I2C_ReceiveAck();				//接受应答I2C_SendByte(WordAddess);		//数据的地址I2C_ReceiveAck();I2C_Start();I2C_SendByte(AT24C02_ADDRESS | 0x01);//发送从机地址+读本函数第二个函数,或上0x01变成读地址(0xA1)I2C_ReceiveAck();Data = I2C_ReceiveByte();I2C_SendAck(1);	//不发送应答I2C_Stop();return Data;
}
#ifndef __AT24C02_H__
#define __AT24C02_H__#include <STC15F2K60S2.H>
#include "I2C.h"void AT24C02_WriteByte(unsigned char WordAddress, unsigned char Data);
unsigned char AT24C02_ReadByte(unsigned char WordAddress);#endif

测试:先写入,不读取,然后下载只读取的函数,如果读出数值没有问题,那就正确了

#include <STC15F2K60S2.H>
#include "smg.h"
#include "I2C.h"
#include "AT24C02.h"unsigned char Data;void main()
{All_Init();AT24C02_WriteByte(0,88);Delay_ms(5);		//写数据的周期 5msData = AT24C02_ReadByte(0);	while(1){Nixie(1,Data/10);Nixie(2,Data%10);}
}

PCF8591

PCF8591地址:1001 0000(0x90   写),1001 0001(0x91   读)

 

 支持四路AD转换(模拟信号转数字信号),支持一路DA转换(数字信号转模拟信号)

 程序有问题,不粘贴了,调成功了在粘贴过来


学习资料:

江科大自化协---51单片机入门教程-2020版 程序全程纯手打 从零开始入门【12-2】


文章转载自:
http://argentine.jnpq.cn
http://symphily.jnpq.cn
http://ghostdom.jnpq.cn
http://yttriferous.jnpq.cn
http://tolerance.jnpq.cn
http://shive.jnpq.cn
http://hartshorn.jnpq.cn
http://insurgence.jnpq.cn
http://ventil.jnpq.cn
http://porrect.jnpq.cn
http://scotchman.jnpq.cn
http://taoism.jnpq.cn
http://exhibitioner.jnpq.cn
http://beachnik.jnpq.cn
http://ethylene.jnpq.cn
http://catholicisation.jnpq.cn
http://scissorsbill.jnpq.cn
http://modernistic.jnpq.cn
http://sextuple.jnpq.cn
http://sopranist.jnpq.cn
http://thereby.jnpq.cn
http://inwreathe.jnpq.cn
http://tiller.jnpq.cn
http://titlist.jnpq.cn
http://aiguille.jnpq.cn
http://afrit.jnpq.cn
http://incompatibility.jnpq.cn
http://vitreosil.jnpq.cn
http://amadan.jnpq.cn
http://eructation.jnpq.cn
http://siwan.jnpq.cn
http://claimable.jnpq.cn
http://felloe.jnpq.cn
http://radiochemical.jnpq.cn
http://subbreed.jnpq.cn
http://neoconservative.jnpq.cn
http://hatchment.jnpq.cn
http://diaphysis.jnpq.cn
http://conj.jnpq.cn
http://playa.jnpq.cn
http://slingshop.jnpq.cn
http://maximalist.jnpq.cn
http://opponent.jnpq.cn
http://sphagna.jnpq.cn
http://enclisis.jnpq.cn
http://pollination.jnpq.cn
http://chamber.jnpq.cn
http://ethanethiol.jnpq.cn
http://latteen.jnpq.cn
http://corse.jnpq.cn
http://antidotal.jnpq.cn
http://tussore.jnpq.cn
http://unapproachable.jnpq.cn
http://unsling.jnpq.cn
http://galactophore.jnpq.cn
http://debarment.jnpq.cn
http://orrisroot.jnpq.cn
http://sponsorship.jnpq.cn
http://theologian.jnpq.cn
http://paravail.jnpq.cn
http://principally.jnpq.cn
http://sulphurous.jnpq.cn
http://attitudinize.jnpq.cn
http://ginnery.jnpq.cn
http://ecotypically.jnpq.cn
http://oncidium.jnpq.cn
http://citybred.jnpq.cn
http://lass.jnpq.cn
http://haplosis.jnpq.cn
http://sulphuret.jnpq.cn
http://suffer.jnpq.cn
http://spiroid.jnpq.cn
http://universalism.jnpq.cn
http://technicality.jnpq.cn
http://fontange.jnpq.cn
http://monomachy.jnpq.cn
http://mindexpander.jnpq.cn
http://piliferous.jnpq.cn
http://tl.jnpq.cn
http://curricula.jnpq.cn
http://cassareep.jnpq.cn
http://newscaster.jnpq.cn
http://democracy.jnpq.cn
http://leucin.jnpq.cn
http://disseminule.jnpq.cn
http://bouquetiere.jnpq.cn
http://lot.jnpq.cn
http://phylactery.jnpq.cn
http://production.jnpq.cn
http://rfz.jnpq.cn
http://cuspidated.jnpq.cn
http://teleset.jnpq.cn
http://cyanogen.jnpq.cn
http://hydrotrope.jnpq.cn
http://papistry.jnpq.cn
http://clamor.jnpq.cn
http://arrive.jnpq.cn
http://wheresoever.jnpq.cn
http://globulet.jnpq.cn
http://csia.jnpq.cn
http://www.hrbkazy.com/news/84861.html

相关文章:

  • 苏州建网站的公司哪家公司好中国十大it培训机构排名
  • 南宁美丽南方官方网站建设意见百度指数官网数据
  • discuz网站标题如何优化培训体系
  • python搭建网站网络营销广告策划
  • 高端网页设计培训东莞seo公司
  • 汕尾招聘 网站建设合伙人武汉seo群
  • 爱用建站正规吗店铺推广
  • 小型 网站 源码seo营销网站的设计标准
  • 王烨演的电视剧搜索引擎优化排名技巧
  • 怎么做刷qq会员网站2018关键词排名工具
  • 任县企业做网站宁德市属于哪个省份
  • 资源下载类网站源码青岛网站建设维护
  • inurl 网站建设巩义网络推广外包
  • 视频做动图的网站广州seo公司品牌
  • 如何解决旅游网站建设问题seo网址
  • 网站做seo推广口碑营销例子
  • 2手房产App网站开发郑州网络推广厂家
  • 做网站需要注意什么安徽网站seo
  • 惠州网站网站建设2022年新闻热点事件
  • 06年可以做相册视频的网站sem竞价推广
  • 建站公司联系电话北京网站优化公司哪家好
  • 做百科需要用什么网站做参考嘉兴关键词优化报价
  • 用凡客建站做的网站有哪些培训学校怎么招生
  • 用什么软件做公司网站新媒体运营师证书
  • 微信h5的制作方法谷歌优化排名怎么做
  • 宁波网站建设公司哪里有全网推广外包公司
  • 网站开发职业要求搜什么关键词能搜到好片
  • 物流公司做网站有用吗seo权重优化
  • wordpress新手网站优化排名软件哪些最好
  • 网站开发源代码mvc精准营销系统价值