基于DS1302的时钟显示,需要学习的同学,可以参考啊
单片机源程序如下:
- #include<reg51.h>
- sbit io=P1^0;
- sbit sclk=P1^1;
- sbit ce=P1^2;
- sbit acc7=ACC^7;
- unsigned char led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- unsigned char wei[]={0xfe,0xfd,0xfb,0xf7};
- unsigned char d[4];
- void writebyte(unsigned char dat)
- {
- unsigned char i,temp;
- for(i=8;i>0;i--)
- {
- sclk=0;
- temp=dat;
- io=(bit)(temp & 0x01);
- dat=dat>>1;
- sclk=1;
- }
- }
- unsigned char read1302(unsigned char addr)
- {
- unsigned char i,dat=0;
- ce=0;
- sclk=0;
- ce=1;
- writebyte(addr);
- for(i=8;i>0;i--)
- {
- acc7=io;
- sclk=1;
- ACC>>=1;
- sclk=0;
- }
- ce=0;
- dat=ACC;
- dat=(dat/16)*10+dat%16;
- return(dat);
-
- }
- void delay(unsigned char time)
- {
- unsigned char i;
- for(i=0;i<time;i++);
- }
- void display()
- {
- unsigned char j;
- for(j=0;j<4;j++)
- {
- P0=led[d[j]];
- if(j==1) P0=led[d[1]]|0x80;
- P2=wei[j];
- delay(10);
- P0=0;
- }
- }
- void main()
- {
- unsigned char minute,hour;
- while(1){
- minute=read1302(0x83);
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
1302.rar
(57.3 KB, 下载次数: 10)
|