您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机pic单片机控制时钟芯片DS1302程序 正文
pic单片机控制时钟芯片DS1302程序

pic单片机控制时钟芯片DS1302程序

点击数:7231 次   录入时间:03-04 11:38:45   整理:http://www.55dianzi.com   PIC单片机
     {
        table1[i]=time_read_1();      //调用读取1个字节数据的函数
     }
    rst=0;                            //复位DS1302
 }

//--------------------------------------------
//写一个字节数据函数
void time_write_1(unsigned char time_tx)
 {
    int j;                            //设置循环变量
    for(j=0;j<8;j++)                  //连续写8bit
      {
        i_o=0;                        //先设置数据为0
        sclk=0;                       //时钟信号拉低
        if(time_tx&0x01)              //判断待发送的数据位是0或1
          {
            i_o=1;                    //待发送数据位是1
          }
        time_tx=time_tx>>1;           //待发送的数据右移1位
        sclk=1;                       //拉高时钟信号
       }
      sclk=0;                         //写完一个字节,拉低时钟信号
  }

//---------------------------------------------
//读一个字节函数
unsigned char time_read_1()
 {
   int j;                            //设置循环变量
   TRISB4=1;                         //设置数据口方向为输入
   for(j=0;j<8;j++)                  //连续读取8bit
      {
        sclk=0;                      //拉低时钟信号
        time_rx=time_rx>>1;          //接收寄存器右移1位
        time_rx7=i_o;                //把接收到的数据放到接收寄存器的最高位
       sclk=1;                       //拉高时钟信号
      }
    TRISB4=0;                        //恢复数据口方向为输出
    sclk=0;                          //拉低时钟信号
    return(time_rx);                 //返回读取到的数据
  }

//--------------------------------------------
//引脚定义函数
void port_init()
  {
    TRISA=0x00;                     //设置A口全输出
    TRISD=0X00;                     //设置D口全输出
    ADCON1=0X06;                    //设置A口为普通I/O口
    TRISB=0X02;                     //设置RB1为输入,其他为输出
    OPTION=0X00;                    //开启B口弱上拉
    PORTA=0XFF;               
    PORTD=0XFF;                     //先熄灭所有显示
   }

//-------------------------------------------
//显示函数
void display()
   {
     int i;                         //定义查表变量
     if(RB1==0)                     //判断RB1是否按下,如果按下的话显示日期,不按下显示时间
       {
          table1[0]=table1[3];     
          table1[1]=table1[4];
          table1[2]=table1[6];
       }
     i=table1[0]&0x0f;             //求秒的个位
     PORTD=table2[i];              //送D口显示
     PORTA=0x1f;                   //点亮秒的个位
     delay();                      //延长一段时间,保证亮度
     i=table1[0]&0xf0;             //求秒的十位

上一页  [1] [2] [3]  下一页


本文关键字:单片机  程序  PIC单片机单片机-工控设备 - PIC单片机