代碼如下:
#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); } |