|
大佬們,請問如何將max7219芯片加到這張電路圖里面,用它來驅動數(shù)碼管。。。。。。
代碼部分如下
#include <reg52.h>
#define uchar unsigned char //宏定義
#define uint unsigned int
/*引腳定義*/
sbit START=P2^0; //開始、停止鍵 低電平有效
sbit RST=P2^1; //復位鍵
sbit wei1=P2^4; //定義位選
sbit wei2=P2^5;
sbit wei3=P2^6;
sbit wei4=P2^7;
/*定義全局變量*/
uint time; //時間變量
uchar tt;
/*數(shù)碼管字模,對應 0-9*/
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
uchar code tabledp[]={
0xbf,0x86,0xdb,0xcf,
0xe6,0xed,0xfd,0x87,
0xff,0xef,0xf7,0xfc,
0xb9,0xde,0xf9,0xf1}; //帶小數(shù)點共陰極數(shù)碼管編碼
/*延時函數(shù)*/
void Delay(uint ms) //毫秒級延時函數(shù)
{
uint i, j;
for(i =ms; i>0; i--)
for(j =110; j>0; j--);
}
/*中斷*/
void time0() interrupt 1
{
TH0 = 0xdc; //晶振11.0592Mhz
TL0 = 0x00;
tt++;
if(tt >= 100)
{
tt = 0;
time++;
if(time>99) //到99后在從00開始
time = 0;
}
}
/*顯示函數(shù)*/
void Display(uchar sum)
{
uchar shi, ge,shifen,baifen;
shifen=tt%100/10;
baifen=tt%10;
shi=sum%100/10;
ge=sum%10;
P0=table[shi]; //使用動態(tài)掃描的方法實現(xiàn)數(shù)碼管顯示
wei1=0;
Delay(1);
wei1=1;
P0=tabledp[ge];
wei2=0;
Delay(1);
wei2=1;
P0=table[shifen];//使用動態(tài)掃描的方法實現(xiàn)數(shù)碼管顯示
wei3=0;
Delay(1);
wei3=1;
P0=table[baifen];
wei4=0;
Delay(1);
wei4=1;
}
/*按鍵掃描*/
void keyscan()
{
if(START==0) //開始、停止
{
Delay(10); //消抖
if(START==0)
{
TR0 =!TR0;
while(!START) Display(time);
}
}
if(RST==0) //復位
{
Delay(10); //消抖
if(RST==0)
{
time=0;
tt=0;
TR0=0;
while(!RST)Display(time);
}
}
}
//主函數(shù)
void main()
{
EA = 1; //中斷開關
ET0 = 1;
TMOD = 0x01;
TH0 = 0xdc; //晶振11.0592Mhz
TL0 = 0x00;
TR0 = 0;
while(1)
{
keyscan();
Display(time);
}
}
有哪些地方要修改的。。求大家?guī)蛶兔!?br />
|
|