2、ax7219.h>#include#includesbitBUZZ=P1^3;/*********************************************************************名称:Main()*功能:主函数***********************************************************************/voidMain(){init_7219();//对max7219初始化init_ds
3、12887();//对ds12887初始化//set_time();set_alarm();while(1){P2=0xf0;if((P2&0xf0)!=0xf0){keyscan();if(key==0){if((DS_C&0x10)!=0)//显示时间{crt_timenyr();8}}}else{if((DS_C&0x10)!=0)//显示时间{crt_timesfm();}}delay1ms(100);}}#defineDECODE0X09//译码控制寄存器#defineINTENSITY0X0A//亮度控制寄
4、存器#defineSCANLIMIT0X0B//扫描界限寄存器#defineFLASHCON0X0C//关断模式寄存器#defineDISPLAY0X0F//测试控制寄存器sbitLOAD=P1^0;sbitDIN=P1^1;sbitCLK=P1^2;/*********************************************************************名称:write_7219(ucharadd,uchardat)*功能:地址,数据发送子程序********************
5、***************************************************/voidwrite_7219(ucharadd,uchardat){uchari;LOAD=0;//拉低片选,选中器件for(i=0;i<8;i++)//发送地址{CLK=0;//清零时钟总线DIN=(bit)(add&0x80);//每次取高字节add<<=1;//左移一位CLK=1;//时钟上升沿,发送地址}for(i=0;i<8;i++)//发送数据{8CLK=0;DIN=(bit)(dat&0x80);dat
6、<<=1;CLK=1;//时钟上升沿,发送数据}LOAD=1;//发送结束,上升沿锁住数据}/*********************************************************************名称:init_7219()*功能:max7219的初始化,设置max7219内部的控制寄存器***********************************************************************/voidinit_7219(){write_7219(
7、FLASHCON,0x01);//开启正常模式write_7219(DISPLAY,0x00);//选择工作模式write_7219(DECODE,0xff);//选用不译码模式write_7219(SCANLIMIT,0x07);//8只led全用write_7219(INTENSITY,0x04);//设置初始亮度}ucharkey;ucharcodedisp_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,
8、0x86,0x8e,0xbf};ucharcodekey_code[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};/***********************************************