拜托了
进行仿真的时候是这样的
然后源程序如下
#include
#defineucharunsignedchar
#defineDECODE0X09
#defineINTENSITY0x0a
#defineSCANLIMIT0x0b
#defineSHUTDOWN0x0c
#defineDISPLAY0x0f
sbitstart=P1^0;//启动按钮
sbitreset=P1^1;//复位按钮
sbitplus=P1^2;//加号按钮
sbitminus=P1^3;//减号按钮
sbitDIN=P3^0;
sbitLOAD=P3^1;
sbitCLK=P3^2;//MAX7219芯片
uchari;uchara;//定义变量
ucharadd[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};
uchardat[]={0x00,0x01,0x02,0x03,0x04,0x04,0x05,0x05,0x06,0x07,0x08,0x09};//
voiddisplay(uchara);//显示子程序
voidInitTimer0();//定时器初始化程序
voiddelay(ucharn);//延时
voidmax7219(ucharadd,uchardat);//max7219指令函数
voidmax7219_init();//7219初始化
voidkeyscan();//键盘扫描函数
/*************主程序****************/
voidmain()
{
max7219_init();
InitTimer0();
display(a);
while(1)
{
keyscan();
}
}
/*****定时器初始化函数******/
voidInitTimer0()
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=0xd8;
TL0=0xef;
TR0=0;
i=0;//时间计数
a=0;//中断计数
}
/***********定时器T0中断*****************/
voidt0_func()interrupt1
{
TH0=0xd8;
TL0=0xef;
if(i==100)
{
i=0;
a++;
if(a>99)
{
a=0;
}
}
else
{
i++;
}
display(a);
}
/**************max7219指令函数****************/
voidmax7219(ucharadd,uchardat)
{
ucharADS,m,n;
LOAD=0;
m=0;
while(m=1;n--)
{
DIN=ADS&0x80;
ADS=ADS -->
|