⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 12c887测试(已成功).c

📁 采用DS12C887做时钟
💻 C
字号:
 #include <AT89X52.H> 
 #include <INTRINS.h>
 unsigned char code Tab[]={0xff,0Xfd,0xff,0xfe,0xff,0xf7,0xff,0xfb,0xff,0xdf,0xff,0xef,0xff,0x7f,0xff,0xbf,
                           0Xfd,0xff,0xfe,0xff,0xf7,0xff,0xfb,0xff,0xdf,0xff,0xef,0xff,0x7f,0xff,0xbf,0xff};
 unsigned char code codedisplay[]={0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF,/*"0",0*/
                                   0xFF,0xFF,0xFF,0xEF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0xFF,0xFF,/*"1",1*/
                                   0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xFB,0xFB,0xF7,0xEF,0xDF,0xBD,0x81,0xFF,0xFF,/*"2",2*/
								   0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xFB,0xE7,0xFB,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF,/*"3",3*/
                                   0xFF,0xFF,0xFF,0xFB,0xF3,0xEB,0xDB,0xDB,0xBB,0xBB,0x81,0xFB,0xFB,0xE1,0xFF,0xFF,/*"4",4*/
                                   0xFF,0xFF,0xFF,0x81,0xBF,0xBF,0xBF,0xA7,0x9B,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF,/*"5",5*/
								   0xFF,0xFF,0xFF,0xE3,0xDB,0xBF,0xBF,0xA7,0x9B,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF,/*"6",6*/
								   0xFF,0xFF,0xFF,0x81,0xBB,0xBB,0xF7,0xF7,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF,/*"7",7*/
								   0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF,/*"8",8*/
								   0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xD9,0xE5,0xFD,0xFD,0xDB,0xC7,0xFF,0xFF,/*"9",9*/
								   0xFF,0xFF,0xFF,0xFF,0xE7,0xE7,0xFF,0xFF,0xFF,0xFF,0xE7,0xE7,0xFF,0xFF,0xFF,0xFF};//':'
unsigned char time_out[20]={0,7,0,2,0,5,0,2,0,7,1,2,3,0,0,0,0,0,0,0};
unsigned char  time_in[10]={7,11,23,5,7,12,30,36,0,0};//07年11月23日星期五7点30分0秒(闹铃时间)12点36分0秒
unsigned char m,warming,i,read; 
bit sign1=0,sign2=1;unsigned char  c;
unsigned int result,count=0;

 void delay(void)
{  unsigned char 	k,j;
   for(k=0;k<15;k++){	for(j=0;j<50;j++) ;	}
} 
unsigned char xdata *control;
unsigned char displaycount,x; 
unsigned char displaybuf[8]={0,0,0,0,0,0,0,0}; 
unsigned char timecount; 

//时钟芯片中断处理子程序
void intt0(void) interrupt 0 using 1
{ sign2=!sign2;
  control=0x7f00;
  for(i=9;i>0;i--)
     { read=*control;control++;
	   time_out[2*i+1]=read%10; time_out[2*i]=read/10;} 
  control=0x7f0c;
  warming=*control;if((warming&0x20)!=0) ; //闹铃处理
}            

void main(void)
  {	SCON=0; P1=0; IT0=0;EX0=1;EA=1;
        //时钟芯片初始化 
          control=0x7f0b; *control=0XBE;     //B寄存器中的SET位置1,禁止芯片内部的更新周期
          control=0x7f00;
          for(i=9;i>0;i--)
            { *control=time_in[i];control++; }
          control=0x7f0a;
          *control=0x2f; 
          control=0x7f0c;
          warming=*control; control--;
          *control=0x3E;            //初始化B寄存器,芯片开始正常工作	  	
   while(1)	   
    {         	
				  for(m=0;m<16;m++)
				   {   SBUF=codedisplay[time_out[10]*16+m];    while(!TI) ; TI=0;
		               SBUF=codedisplay[time_out[11]*16+m];    while(!TI) ; TI=0; 
			           SBUF=codedisplay[10*16+m];    while(!TI) ; TI=0; 
			           SBUF=codedisplay[time_out[14]*16+m];    while(!TI) ; TI=0;
					   SBUF=codedisplay[time_out[15]*16+m];    while(!TI) ; TI=0; 
			           SBUF=codedisplay[10*16+m];    while(!TI) ; TI=0; 
					   SBUF=codedisplay[time_out[18]*16+m];    while(!TI) ; TI=0; 
			           SBUF=codedisplay[time_out[19]*16+m];    while(!TI) ; TI=0;  
				       //P2_0=0;P2_1=0;P2_1=1;P2_1=0;P2_0=1;
					   SBUF=Tab[2*m]; while(!TI) ; TI=0;
					   SBUF=Tab[2*m+1];while(!TI) ; TI=0; 
				   	   
					   P3_4=0;P3_4=1;	P3_4=0;
	                   delay();count++;
					   if(count==350) 
					       {    count=0;
						        P1_5=!P1_5;P1_2=!P1_2;}
					    
  					   
	   }}	}





	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -