历史上的今天
返回首页

历史上的今天

今天是:2024年11月27日(星期三)

正在发生

2019年11月27日 | PIC单片机的i2c的程序

2019-11-27 来源:eefocus

#include
#define uchar unsigned char
#define uint unsigned int
#define add 0xaa
__CONFIG(0xc3e4);
__CONFIG(0xffff);
#define DS1302 RC2 //定义关掉DS1302时钟芯片,使RC4 RC3 IO口可以用于AT24C02控制。

const uchar ee_data[]={1,2,3,3,2,1};
uchar read_data[6];
const uchar table[]={0x3f, 0x6, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x7, 0x7f, 0x6f};
void delay(uint x);
void init();
void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6);
void write();
void read();
void main()
{
init();
DS1302=0;// 关掉DS1302
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;
//TRISC=0;
TRISE0=1;
// ADCON1=0x07;
//RE0=1;
PORTD=0x3f;
PORTA=0x00;
TRISC=0x18;//用到RC3 RC4 输入 1

SSPSTAT=0x80;
SSPCON=0x38;
SSPCON2=0;
SSPADD=0x09;
//PORTE=1;
}
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 disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6)
{
PORTD=table[num1];//显示第一个数码管
PORTA=0x01;//0010 0000
delay(2);
PORTD=table[num2];//显示第二个数码管
PORTA=0x02;//0001 0000
delay(2);
PORTD=table[num3];//显示第三个数码管
PORTA=0x04;//0000 1000
delay(2);
PORTD=table[num4];//显示第四个数码管
PORTA=0x08;//0000 0100
delay(2);
PORTD=table[num5];//显示第五个数码管
PORTA=0x10;//0000 0010
delay(2);
PORTD=table[num6];//显示第六个数码管
PORTA=0x20;//0000 0001
delay(2);
}


推荐阅读

史海拾趣

Chips And Technologies Inc公司的发展小趣事

随着公司规模的扩大和市场份额的提升,C&T开始积极拓展海外市场。通过设立分支机构、参加国际展会等方式,C&T的产品逐渐打入国际市场,赢得了全球客户的认可。同时,C&T还积极与海外企业开展合作,共同推动半导体技术的发展和应用。

Dicon Fiberoptics Inc公司的发展小趣事

作为一家具有高度责任感的企业,DiCon长期以来一直致力于为国防工业提供高质量的光纤通信产品。公司的首批产品之一FDDI交换机在许多海军舰艇上部署了30多年,为国家的安全稳定做出了重要贡献。这一里程碑事件不仅彰显了DiCon在光纤通信技术领域的实力,也进一步提升了公司的品牌形象和市场地位。

Electronic Concepts Inc公司的发展小趣事

随着市场的竞争加剧,ECI意识到只有不断创新才能在行业中立足。在总经理张女士的领导下,公司投入大量资源进行研发,成功推出了一系列具有竞争力的新产品。其中,一款集成了先进算法的智能传感器,因其高精度和低功耗特性,在市场上大受欢迎。这一创新不仅提升了ECI的品牌形象,也为公司带来了丰厚的利润。

ETAL公司的发展小趣事

随着电子行业的快速发展,ETAL意识到只有不断创新才能在竞争中立于不败之地。因此,公司加大了对研发的投入,积极引进高素质的技术人才和先进的生产设备。经过多年的努力,ETAL成功研发出了具有自主知识产权的一系列高性能电子产品,如高精度传感器、智能控制模块等。这些产品不仅满足了市场的需求,还为公司带来了可观的利润。

Embedded Planet公司的发展小趣事

Embedded Planet公司深知人才是企业发展的核心驱动力。因此,公司一直致力于培养和吸引优秀人才,建立了一支高效、专业的团队。公司为员工提供丰富的培训和发展机会,鼓励员工不断学习和创新。同时,公司还注重团队建设和文化塑造,营造了一个积极向上、团结协作的工作氛围。这些努力使得Embedded Planet公司成为了一个充满活力和创造力的企业。

bb-smartworx公司的发展小趣事

作为一家负责任的企业,Embedded Planet公司一直将绿色环保理念融入产品设计和生产过程中。公司积极采用环保材料和技术,努力降低产品对环境的负面影响。同时,公司还倡导员工参与环保活动,共同为地球的可持续发展贡献力量。这些环保实践不仅提升了公司的社会形象,也为公司赢得了更多客户的信任和支持。

问答坊 | AI 解惑

关于Quartus的一个问题,请高手帮忙指点指点

菜鸟,最近刚接触到quartus ii...有个问题不大明白 quartus的每次编译是不是只能编与顶层实体名相同的文件啊?如果想编译其他文件应该怎么办呢?…

查看全部问答>

74150数据选择芯片的使用问题

    我现在要做一个16路数据采集,想用74150芯片,但我不知道74150这个芯片如何使用,下的pdf上也没有相关电路,哪位大侠能给我个电路看看,我的邮箱gengjia8512@sina.com。…

查看全部问答>

WebProxy.GetProxy()没办法获取IE代理服务器地址

在WinCE下没办法得到,在WindowsXP上是没问题的。 WebProxy.GetProxy()有用于WINCE的版本,但是得不到地址。咋回事呢? 我在CEPC 和 DeviceEmulator上都试了,都不行。 请大侠指点迷津。谢谢。 …

查看全部问答>

(RMB求助)usb驱动外包

该驱动为HID驱动,类驱动为Windows固有类驱动!在该类驱动的基础上编客户驱动程序.需要打包成.dll文件给Java调用.该驱动具有读,写功能.提供API接口. 有兴趣的朋友可以详谈. 我们会支付您满意的报酬! 联系方式: MSN:  aban740 ...…

查看全部问答>

发现手机的字库很多都用ARM哦。

今天拆了太F11,汽车模型的手机,发现了ARM芯片,嘻嘻,我是学生新手,大家别笑哦。…

查看全部问答>

AVR 单片机proteus仿真

仿真时一直出现不能下载源文件(c文件),求指教…

查看全部问答>

关于FPGA产生FSK调制信号的理解求助

(5)两路均可产生FSK调制波,内调制信号的频率不大于10Hz,上边频为12kHz,下边频8kHz; (6)两路均可产生ASK调制波,内调制信号的频率不大于10Hz,载波频率为10kHz,调制率为100%;   内调制信号的频率不大于10Hz,上边频为12kHz,下边 ...…

查看全部问答>

ADI实验电路CN0197基于AD7280A的电池管理系统第二阶段汇报

    距离上次汇报工作进展又过去了一周多的时间,在这一周的时间里,第一个惊喜是样片的送到,由于我申请的样片AD7280A,小批量在国内很难买到,所以选择了申请样片,在此还要感谢一下那位不知道名字的好心哥们儿,替我申请来样片, ...…

查看全部问答>

为什么Quartus II 10.1 综合出来结果使用0个单元?

为什么Quartus II 10.1 综合出来结果使用0个单元?没有报错,能看到RTL的视图看到综合出来的网络器件也已经选择了的有提示说没有设置时钟     请问该如何设置clk为时钟?…

查看全部问答>

NIOS的一小段程序

在《NIOS那些事》上看的程序,串行通信一节,有点小疑问SOP.H中的typedef struct{    //接收寄存器    union{        struct{         ...…

查看全部问答>