˜Ë(bi¨¡o)î}: [ÇóÖú] ÔÚProteusÏ·ÂÕæDS1302•r£¬žéʲôŸý²»ßMÈ¥”µ(sh¨´)“þ(j¨´)°¡£¿ [´òÓ¡±¾í“]

×÷Õß: kelvin    •rég: 2009-9-19 15:12
˜Ë(bi¨¡o)î}: [ÇóÖú] ÔÚProteusÏ·ÂÕæDS1302•r£¬žéʲôŸý²»ßMÈ¥”µ(sh¨´)“þ(j¨´)°¡£¿
´ú´aÈçÏ£º

#include<reg52.h>
#include"1602.h"
#define uchar unsigned char
sbit RST=P3^4;
sbit SCLK=P3^2;
sbit IO=P3^3;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
uchar year,month,day,hour,min,sec;
 void delay(unsigned int n)  
{ unsigned int x,y;
    for(x=n;x>0;x--)
 for(y=110;y>0;y--)
 ;  
}
void inputbyte(uchar uc)
{
   uchar i;
   ACC=uc;
   for(i=8;i>0;i++)
   {
 IO=ACC0;
 TCLK=0;
 TCLK=1;
    ACC=ACC>>1;
   }
}
uchar outputbyte(void)
{
 uchar i;
 for(i=8;i>0;i++)
 {
  ACC=ACC>>1;
  ACC7=IO;
  TCLK=1;
  TCLK=0;
 }
 return(ACC);
}
void w1302(uchar add,uchar uc)
{
 RST=0;
 TCLK=0;
 RST=1;
 inputbyte(add);
 inputbyte(uc);
 TCLK=1;
 RST=0;
}
uchar r1302(uchar add)
{
    uchar uc;
 RST=0;
 TCLK=0;
 RST=1;
 inputbyte(add);
 uc=outputbyte();
 TCLK=1;
 RST=0;
 return(uc);
}
void burstw1302(uchar *psec)
{
 uchar i;
 w1302(0x8e,0x00);
 RST=0;
 TCLK=0;
 RST=1;
 inputbyte(0xbe);
 for(i=8;i>0;i--)
 {
  inputbyte(*psec);
  psec++;
 }
 TCLK=1;
 RST=0;
}
void burstr1302(uchar *psec)
{
 uchar i;
 RST=0;
 SCLK=0;
 RST=1;
 inputbyte(0xbf);
 for(i=8;i>0;i--)
 {
  *psec=outputbyte();
  psec++;
 }
 TCLK=1;
 RST=0;
}
void init1302(void)
{
 w1302(0x8e,0x00);
 w1302(0x90,0xa5);
 w1302(0x80,0x32);
 w1302(0x82,0x13);
 w1302(0x84,0x18);
 w1302(0x86,0x01);
 w1302(0x88,0x01);
 w1302(0x8a,0x01);
 w1302(0x8c,0x06);
 w1302(0x82,0x15);
 w1302(0x8e,0x80);
 

}
void main()
{
uchar i;
//init1302(); 
RW=0;
init();

 

delay(0x1000);
i=r1302(0x81);
write_data(i/16+0x30);
write_data(i%16+0x30);

while(1);
 }






šgÓ­¹âÅR (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1