|
- /****-----請(qǐng)閱讀ReadMe.txt進(jìn)行實(shí)驗(yàn)-----***********/
- #define MAIN_Fosc 11059200L //定義主時(shí)鐘
- #include "15W4KxxS4.H"
- #include "tm1637.h"
- //tm1637.c 中數(shù)碼管數(shù)組移到這里,TM1637_NixieTubeDisplayChar(u8 ch,u8 p)函數(shù)的形參ch直接傳遞段碼
- u8 NumDis[24]={//0123456789ABCDEF一二三HLJRS
- 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
- 0x7F,0X6F,0x77,0x7C,0x39,0x5E,0x79,0x71,
- 0x08,0x48,0x49,0x76,0x38,0x0E,0x50,0x37};
- u8 min=59;sec=50;
- u8 count=0;
- void Timer0Init(void) //20??@11.0592MHz
- {
- AUXR &= 0x7F; //?????12T??
- TMOD &= 0xF0; //???????
- TL0 = 0x00; //???????
- TH0 = 0xB8; //???????
- TF0 = 0; //??TF0??
- TR0 = 1; //???0????
- }
- /***********************
- 功能描述:主函數(shù)
- 入口參數(shù):無
- 返回值:無
- ************************/
- int main()
- {
- u8 ch=0, p=0;
- P0M1 = 0; P0M0 = 0; //設(shè)置P0.0~P0.7為準(zhǔn)雙向口
- P1M1 = 0; P1M0 = 0; //設(shè)置P1.0~P1.7為準(zhǔn)雙向口
- P2M0 = 0; P2M1 = 0; //設(shè)置P2.0~P2.7為準(zhǔn)雙向口
- P3M1 = 0; P3M0 = 0; //設(shè)置P3.0~P3.7為準(zhǔn)雙向口
- P4M1 = 0; P4M0 = 0; //設(shè)置P4.0~P4.7為準(zhǔn)雙向口
- P5M1 = 0; P5M0 = 0; //設(shè)置P5.0~P5.7為準(zhǔn)雙向口
- Timer0Init();
- EA=1;ET0=1;
- TM1637_NixieTubeDisplay();
- TM1637_NixieTubeDisplayChar(NumDis[min/10],0);
- TM1637_NixieTubeDisplayChar(NumDis[min%10]|0x80,1);//加冒號(hào)
- TM1637_NixieTubeDisplayChar(NumDis[sec/10],2);
- TM1637_NixieTubeDisplayChar(NumDis[sec%10],3);
- while(1)
- {
- // if(fls==2)
- // {
- // maohao1();
- // fls=0;
- //}
-
- }
- }
- void timer0_ISR() interrupt 1
- {
- count++;
- if(count==50)
- {
- count=0;
- sec++;
- if(sec==60)
- {
- sec=0;
- min++;
- if(min==60)
- {
- min=0;
- }
- }
- }
- TM1637_NixieTubeDisplayChar(NumDis[min/10],0);
- if(count<25) TM1637_NixieTubeDisplayChar(NumDis[min%10]|0x80,1);//加冒號(hào)
- else TM1637_NixieTubeDisplayChar(NumDis[min%10],1);//不加冒號(hào)
- TM1637_NixieTubeDisplayChar(NumDis[sec/10],2);
- TM1637_NixieTubeDisplayChar(NumDis[sec%10],3);
- }
- /*
- void TM1637_NixieTubeDisplayChar(u8 ch,u8 p)
- {
- if(ch>23) ch=0;//防止數(shù)組越界
- TM1637_Start();
- TM1637_WriteByte(0x44);//0x44固定模式有利于控制顯示位,0x40則采用顯示地址自加模式這里不使用
- TM1637_Ack();
- TM1637_Stop();
- TM1637_Start();
-
- TM1637_WriteByte(0xC0+p);//0X00地址開始顯示
- TM1637_Ack();
-
- // TM1637_WriteByte(NumDis[ch]);//顯示
- TM1637_WriteByte(ch);//顯示
- TM1637_Ack();
- TM1637_Stop(); //V1.1
- }*/
復(fù)制代碼 |
|