资源描述
/*重要程序*/
#include<reg51.h>
#include<spi.h>
#include<max7219.h>
unsigned char sec=0,num=0;
unsigned int k=0;
void stimer0()
{
TMOD=0X01;
ﻩTH0=(-0)/256;
TL0=(-0)%256;
TR0=1;ET0=1;EA=1;
}
void sexint0()
{
IT0=1;EX0=1;EA=1;
}
main()
{
max7219();
ﻩsexint0();
ﻩstimer0();
ﻩwhile(1)
ﻩ{
;
}
}
void exint0() interrupt 0
{ﻩ
k++;ﻩﻩ
}
void timer0() interrupt 1
{
ﻩTH0=(-0)/256;
TL0=(-0)%256;ﻩﻩ
num++;
ﻩif(num==50)
{ﻩ
ﻩnum=0;
ﻩ sec++;
ﻩspiwrite(0x06,sec%10);
spiwrite(0x05,sec/10);
ﻩﻩif(sec==5)
{
ﻩspiwrite(0x04,k%10);
spiwrite(0x03,k%100/10);
spiwrite(0x02,k%1000/100);
ﻩspiwrite(0x01,k/1000);
ﻩsec=0;
ﻩ}
ﻩ}
}
/*SPI旳初始化程序*/
#include<reg51.h>
#define clrcs P2&=0Xfe
#define setcs P2|=0X01
#defineﻩclrclk P2&=0xfd
#defineﻩsetclk P2|=0x02
#define clrdate P2&=0xfb
#defineﻩsetdate P2|=0x04
/*void dely(unsigned int ms)
{ﻩ
unsigned int i,j;
for(i=0;i<ms;i++)
ﻩ for(j=0;j<110;j++);
}*/
void spiwrite(unsigned char dt1,unsigned char dt2)
{
ﻩunsigned i=0,num=0;
ﻩclrcs;
for(i=0;i<8;i++)
{
clrclk;
ﻩnum=dt1;
ﻩﻩnum&=0x80;
ﻩif(num==0)
ﻩ{
ﻩclrdate;
ﻩ}
ﻩelse
ﻩ setdate;
ﻩsetclk;
ﻩdt1*=2;
ﻩ}ﻩﻩ
ﻩfor(i=0;i<8;i++)
{
clrclk;
ﻩnum=dt2;
ﻩnum&=0x80;
ﻩﻩif(num==0)
ﻩ {
ﻩ clrdate;
}
ﻩﻩelse
setdate;
ﻩ setclk;
ﻩ dt2*=2;
}
setcs;
}
/*MAX7219旳初始化*/
#include<reg51.h>
void dely(unsigned int ms)
{
ﻩunsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<110;j++);
}
void max7219()
{
ﻩspiwrite(0x0c,0x00);
ﻩdely(1000);
ﻩspiwrite(0x0c,0x01);
spiwrite(0x09,0xff);
ﻩspiwrite(0x0A,0x0f);
ﻩspiwrite(0x0B,0x05);
ﻩspiwrite(0x0F,0x01);
ﻩdely(1000);
ﻩspiwrite(0x0f,0x00);
}
展开阅读全文