历史上的今天
今天是:2024年11月27日(星期三)
2019年11月27日 | PIC单片机的i2c的程序
2019-11-27 来源:eefocus
#include const uchar ee_data[]={1,2,3,3,2,1}; while(1) SSPSTAT=0x80;
#define uchar unsigned char
#define uint unsigned int
#define add 0xaa
__CONFIG(0xc3e4);
__CONFIG(0xffff);
#define DS1302 RC2 //定义关掉DS1302时钟芯片,使RC4 RC3 IO口可以用于AT24C02控制。
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();
{
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
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);
}
史海拾趣
|
菜鸟,最近刚接触到quartus ii...有个问题不大明白 quartus的每次编译是不是只能编与顶层实体名相同的文件啊?如果想编译其他文件应该怎么办呢?… 查看全部问答> |
|
我现在要做一个16路数据采集,想用74150芯片,但我不知道74150这个芯片如何使用,下的pdf上也没有相关电路,哪位大侠能给我个电路看看,我的邮箱gengjia8512@sina.com。… 查看全部问答> |
|
WebProxy.GetProxy()没办法获取IE代理服务器地址 在WinCE下没办法得到,在WindowsXP上是没问题的。 WebProxy.GetProxy()有用于WINCE的版本,但是得不到地址。咋回事呢? 我在CEPC 和 DeviceEmulator上都试了,都不行。 请大侠指点迷津。谢谢。 … 查看全部问答> |
|
该驱动为HID驱动,类驱动为Windows固有类驱动!在该类驱动的基础上编客户驱动程序.需要打包成.dll文件给Java调用.该驱动具有读,写功能.提供API接口. 有兴趣的朋友可以详谈. 我们会支付您满意的报酬! 联系方式: MSN: aban740 ...… 查看全部问答> |
|
(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为时钟?… 查看全部问答> |




