#include<pic.h>
#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);
}

PIC单片机的i2c的程序的更多相关文章

  1. PIC单片机基础2

    PIC中档系列单片机,每条指令14位,共有35条汇编指令,根据操作对象不同,可将其分为三类: 字节操作类指令 位操作类指令 立即数与控制类操作指令 1.字节操作类指令,以MOVF指令为例: 指令:MO ...

  2. PIC单片机基础1

    1.PIC单片机总线结构——哈佛结构:即指令和数据空间是完全分开的,所以与常见的微控制器不同的一点是,程序和数据总线可以采用不同的宽度.以PIC16F684单片机为例,数据总线是8位的,但指令总线位数 ...

  3. 【PIC单片机】MPLAB X IDE快速入门指南

    引言:近期由于项目实践需要,开始动手学习相关硬件知识.从PIC单片机入手. 单片机学习核心要点:查数据手册 配置寄存器 一.基于MPLAB X IDE配置位设置 MPLAB X IDE和MPLAB I ...

  4. 理解一下单片机的I2C和SPI通信

    应某位网友要求,今天说一下单片机的I2C SPI通信,可能说不清楚,因为这毕竟要做实验才可完全理解. I2C和SPI是两种不同的通信协议. 听到协议,似乎高不可攀,其实协议就是人们定义的一个标准而已, ...

  5. PIC单片机状态寄存器中的C(进位/借位位标志)

    查阅PIC单片机芯片手册,关于进位/借位位的说明为: C:进位/借位位. 1 = 结果的最高位发生了进位 0 = 结果的最高位未发生进位 同时有一条标注:借位的极性是相反的. 通过以上说明,可以将C的 ...

  6. PIC单片机之时钟设置

    PIC单片机之时钟设置 http://blog.csdn.net/superanters/article/details/8541650 内部时钟和外部时钟? PIC单片机有许多型号可以设置成 用外部 ...

  7. PIC单片机的定时器

    PIC单片机的定时器有3个 timer0 timer1 timer2 定时器的计算方法 256*k*Tcy=定时时间 (256-Init-value)*k*Tcy=定时时间

  8. PIC单片机编译器自带的延时程序

    https://wenku.baidu.com/view/3c94e2934028915f814dc205.html

  9. EFM8单片机与I2C外设通信

    近期帮同学做一个项目,开发板是EFM8单片机,支持SPI和I2C协议(SMBus).非常久没搞过单片机了,并且条件限制,为了使单片机和外设成功通信.花了一个星期时间.刚開始使用SPI.发现代码逻辑都没 ...

随机推荐

  1. awk调用date命令

    创建文件date.awk: $ == { cmd = "\"" while (cmd | getline line) { print line } close(cmd) ...

  2. CSS设计超链接样式

    \(\color{Red}{首先设计一下静止的a标签}\) a{ margin-right:10px;/*右边距,其他边距同理*/ border-bottom:1px solid #eec/*分别是下 ...

  3. Eating Everything Efficiently(反向dp)

    传送门 取最大值即可.用拓扑,dfs都可以实现 #include <bits/stdc++.h> using namespace std; const int maxn=500009; i ...

  4. System类&StringBuilder类

    System类 1.currentTimeMillis()方法 作用:获取当前系统时间的毫秒值[注意:从现在到1970年1月1日 00:00:00] 2.arraycopy(...)方法 作用:复制数 ...

  5. matlab数值数据和变量名

    1.2MATLAB数值数据 l  数值数据类型的分类 l  数值数据的输出格式 l  常用数学函数内部函数 1.数值数据类型的分类 l  整型 l  浮点型 l  复数型 (1)整型 1.数值数据类型 ...

  6. 【Kafka】Kafka集群环境搭建

    目录 一.初始环境准备 二.下载安装包并上传解压 三.修改配置文件 四.启动ZooKeeper 五.启动Kafka集群 一.初始环境准备 必须安装了JDK和ZooKeeper,并保证Zookeeper ...

  7. SAP ME31K SUBOBJECT_NOT_FOUND

    SUBOBJECT_NOT_FOUND 在使用BAPI:BAPI_CONTRACT_CREATE创建协议时报错, 错误位置在此处,子对象没找到 GOOGLE到相关解决方案 事务代码:SLG0 新增对象 ...

  8. 安装stanfordcorenlp成功,import stanfordcorenlp失败,出现错误:importerror-no-module-named-psutil

    1.问题描述 安装stanfordcorenlp成功,import stanfordcorenlp失败,pycharm中输入import stanfordcorenlp,然后运行,出现错误:impor ...

  9. 一看就懂的Ubuntu系统下samba服务器安装配置教程

    文章目录 前言 环境搭建 安装 配置 Examples 1 创建共享(任何人都可以访问) 2 单用户权限(需要密码访问) 添加samba用户 配置参数 3 支持游客访问(单用户拥有管理员权限) 前言 ...

  10. Fibonacci数列的性质

    Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, .... F[0] = 0; 1: gcd(Fn, Fm) = F[gcd(n, m)]; 当n - m = 1 或 2时满足, ...