历史上的今天
返回首页

历史上的今天

今天是:2025年01月11日(星期六)

2020年01月11日 | 如何正确的使用PIC单片机内部的IIC通信

2020-01-11 来源:eefocus

#include

#define uchar unsigned char

#define uint unsigned int

#define add 0xaa

__CONFIG(0x3B31);

const uchar ee_data[]={1,2,3,4,5,6};

uchar read_data[6];

const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

如何正确的使用PIC单片机内部的IIC通信

void delay(uint x);

void init();

void didi(uchar num);

void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6);

void write();

void read();

void main()

{

init();

write();

delay(100);

read();

while(1)

{

disp(read_data[0],read_data[1],read_data[2],read_data[3],read_data[4],read_data[5]);

}

}

void delay(uint x)

{

uint a,b;

for(a=x;a》0;a--)

for(b=110;b》0;b--);

}

void init()

{

TRISD=0;

TRISA=0;

TRISE0=0;

//ADCON1=0x07;

RE0=0;

PORTD=0;

PORTA=0;

TRISC=0xff;

SSPSTAT=0x80;

SSPCON=0x38;

SSPCON2=0;

SSPADD=0x09;

}

void write()

{

uchar i;

SSPIF=0;

SEN=1;

while(!SSPIF);

SSPIF=0;

SSPBUF=0xA0;

while(!SSPIF);

SSPIF=0;

SSPBUF=add;

while(!SSPIF);

SSPIF=0;

for(i=0;i《6;i++)

{

SSPBUF=ee_data[i];

while(!SSPIF);

SSPIF=0;

}

PEN=1;

while(!SSPIF);

SSPIF=0;

}

void read()

{

uchar i;

SSPIF=0;

SEN=1;

while(!SSPIF);

SSPIF=0;

SSPBUF=0xA0;

while(!SSPIF);

SSPIF=0;

SSPBUF=add;

while(!SSPIF);

SSPIF=0;

SSPIF=0;

RSEN=1;

while(!SSPIF);

SSPIF=0;

SSPBUF=0xA1;

while(!SSPIF);

SSPIF=0;

for(i=0;i《6;i++)

{

RCEN=1;

while(!SSPIF);

read_data[i]=SSPBUF;

while(!SSPIF);

SSPIF=0;

if(i》=5)

{

ACKDT=1;

}

else

{

ACKDT=0;

}

ACKEN=1;

while(!SSPIF);

SSPIF=0;

}

PEN=1;

while(!SSPIF);

SSPIF=0;

}

void didi(uchar num)

{

uchar di_num;

for(di_num=num;di_num》0;di_num--)

{

RE0=1;

delay(50);

RE0=0;

delay(20);

}

}

本文引用地址: http://www.21ic.com/app/mcu/201812/786472.htm

void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6)

{

PORTD=table[num1];//显示第一个数码管

PORTA=0x20;//0010 0000

delay(2);

PORTD=table[num2];//显示第二个数码管

PORTA=0x10;//0001 0000

delay(2);

PORTD=table[num3];//显示第三个数码管

PORTA=0x08;//0000 1000

delay(2);

PORTD=table[num4];//显示第四个数码管

PORTA=0x04;//0000 0100

delay(2);

PORTD=table[num5];//显示第五个数码管

PORTA=0x02;//0000 0010

delay(2);

PORTD=table[num6];//显示第六个数码管

PORTA=0x01;//0000 0001

delay(2);

}

推荐阅读

史海拾趣

Alpha & Omega Semiconductor(万国半导体)公司的发展小趣事

Alpha & Omega Semiconductor(简称AOS)是一家全球领先的半导体公司,致力于设计、制造和销售高性能、高可靠性的功率半导体产品。以下是Alpha & Omega Semiconductor公司发展的相关故事:

  1. 公司成立和早期发展: Alpha & Omega Semiconductor公司于2000年成立于美国加利福尼亚州的Santa Clara市。公司成立之初,专注于研发和生产功率半导体器件,包括功率MOSFET、IGBT、功率IC和电源管理器件等。通过不断创新和技术突破,公司迅速在市场上建立了良好的声誉,并吸引了投资者的关注。

  2. 技术创新和产品发展: Alpha & Omega Semiconductor公司在功率半导体领域不断进行技术创新和产品研发。他们不断推出新的产品系列,包括低压、中压和高压功率MOSFET、IGBT和功率集成电路等,以满足不同应用领域的需求。公司还专注于提高产品性能、降低功耗,并不断优化产品结构和工艺流程。

  3. 全球化布局和生产基地: 随着业务的不断扩张,Alpha & Omega Semiconductor公司逐步建立了全球化的运营和生产体系。除了总部位于美国的研发中心外,公司还在亚洲地区建立了多个生产基地和销售办事处,包括中国、台湾、韩国和菲律宾等地。这些生产基地不仅提高了产品供应的灵活性和效率,还加强了与当地客户和合作伙伴的合作关系。

  4. 持续投入研发和创新: Alpha & Omega Semiconductor公司持续投入大量资源用于研发和创新,致力于提供行业领先的功率半导体解决方案。公司与全球顶尖的研究机构和合作伙伴合作,共同探索新的材料、工艺和器件结构,以应对不断变化的市场需求和技术挑战。通过持续的技术创新,公司不断拓展产品线,拓展业务领域,并保持了在市场上的竞争优势。

  5. 持续发展和业务拓展: Alpha & Omega Semiconductor公司持续保持业务的稳健增长和发展态势,不断拓展业务范围和市场份额。公司在汽车电子、工业控制、通信设备、消费电子和电源供应等领域取得了广泛的应用,成为了全球领先的功率半导体供应商之一。同时,公司还通过并购和合资等方式,加速业务拓展,拓展了在新兴领域的市场地位。

以上是Alpha & Omega Semiconductor公司发展的相关故事,展示了他们在功率半导体领域的持续创新和不断发展的势头。

Fujisoku Corporation公司的发展小趣事

“未来电子”深知人才是企业发展的第一资源。因此,公司高度重视人才培养和团队建设工作。通过建立完善的培训体系、激励机制和晋升通道,公司吸引并留住了一大批优秀的研发、生产和销售人才。这些人才在各自的岗位上发挥出色,为公司的快速发展提供了有力保障。同时,“未来电子”还注重团队合作和跨部门协作,通过组织丰富多彩的团队建设活动,增强了员工的归属感和凝聚力。

AAT [Advanced Analog Technology, Inc.]公司的发展小趣事

在电子废弃物处理成为全球关注焦点的背景下,“未来电子”积极倡导绿色生产和循环经济理念。公司投入大量资源研发环保型电子产品,并建立了完善的电子废弃物回收处理体系。通过技术创新和科学管理,“未来电子”实现了生产过程中的节能减排和废弃物的有效回收利用,赢得了社会各界的广泛赞誉。这一举措不仅提升了公司的社会形象,还为公司的可持续发展奠定了坚实基础。

C.K TOOLS公司的发展小趣事

进入21世纪,C.K TOOLS不满足于现有的技术成果,开始与冶金和设计工程师合作,探索新材料在工具制造中的应用。他们发现了一种新型合金材料,具有出色的硬度和耐磨性,非常适合用于制造电子制造中使用的切割和剥线工具。经过多次试验和改进,C.K TOOLS成功推出了这一系列新型工具,并在电子制造领域取得了显著的市场份额。

Advantech公司的发展小趣事

进入21世纪,C.K TOOLS不满足于现有的技术成果,开始与冶金和设计工程师合作,探索新材料在工具制造中的应用。他们发现了一种新型合金材料,具有出色的硬度和耐磨性,非常适合用于制造电子制造中使用的切割和剥线工具。经过多次试验和改进,C.K TOOLS成功推出了这一系列新型工具,并在电子制造领域取得了显著的市场份额。

Custom Electronics Inc公司的发展小趣事

在市场竞争日益激烈的背景下,CEI意识到品牌建设的重要性。公司加大了对品牌形象的宣传力度,通过广告、展览、研讨会等多种方式,提高了品牌知名度和美誉度。同时,CEI还注重产品质量的提升和售后服务的完善,赢得了广大客户的信赖和支持。

问答坊 | AI 解惑

移动视频监控在“数字城管”中的应用

移动式无线视频监控,指系统的视频采集前端是可移动的视频采集终端,对不同的临时监控需求点进行监控。可移动的视频采集终端由于监控点不固定,因此,它必须利用无线公网作为监控数据的传输网络。    移动视频监控系统原理   移动视 ...…

查看全部问答>

请问你们知道前边值和后面的值有什么关系吗?

在2440.h中这么写的 #define ADC_BASE      0xB1800000 // 0x58000000 而在map.a中是这样写的, DCD 0x91800000, 0x58000000,  1  ; A/D convert register 0x91800000: 虚拟地址 0x58000000: 物理地 ...…

查看全部问答>

大家用wince6.0, 在vs2005里是怎么找函数和变量定义的???

转到声明,转到定义都用不了,怎么回事?是不是非托管代码的原因?…

查看全部问答>

关于USB接口的serial驱动

serial驱动是将USB接口模拟成串口?那是怎样与外部设备进行通信的?难道就和普通的串口一样?…

查看全部问答>

八位二进制数转BCD码

怎样将八位的二进制数转换成一字节的BCD码?…

查看全部问答>

PPP协议

  cfanlwn  你那还有PPP协议的资料没,发我一份啊!…

查看全部问答>

WinCE 4.2下软重启的工具

谁有WinCE 4.2下软重启的工具啊。网上的都是用于Win Mobile版本的。不能用。…

查看全部问答>

【讨论】如何自建库并调用它?

在IAR下要如何自建库,又怎么去调用呢?可否举个最简单的例子?????…

查看全部问答>

安装了IAR5.2,破解失败,怎么回事啊,用5.2的朋友进来看看

Fatal Error[Cp001]: Copy protection check, No valid license found for this product对程序进行编译就会有这个错误,用软件破解了啊,也在网上查了,但是还是没有解决我卸载好几遍了希望高手帮助啊…

查看全部问答>