本帖最后由 KGbcak 于 2018-5-17 00:18 编辑
- #include "STC15F2K60S2.h"
- #include "SMG.h" //https://blog.csdn.net/qq_39815222/article/details/80256563
- void timer0_init();
- void Timer1Init();
- void all_init();
- unsigned int count1s;
- unsigned char temp,flag1s;
- unsigned int frequency;
- void main()
- {
- EA=1;
- ET1=1;
- ET0=1;
-
- timer0_init();
- Timer1Init();
- all_init();
-
- while(1)
- {
- if(flag1s)
- {
- flag1s=0;
- frequency=frequency+(TH0*256)+TL0;
-
- SMGBit[7]=frequency%10;
- SMGBit[6]=frequency/10%10;
- SMGBit[5]=frequency/100%10;
- SMGBit[4]=frequency/1000%10;
- SMGBit[3]=frequency/10000;
- SMGBit[2]=10;
-
- frequency=0;
- TH0=0;TL0=0;
- }
- SMGBit[1]=temp;
- SMGBit[0]=10;
-
- }
- }
- void timer0_config() interrupt 1
- {
- frequency=frequency+65536; //如果溢出
- }
- void timer1_config() interrupt 3
- {
- SMG_display();
- if(++count1s==500)
- {
- count1s=0;
- flag1s=1;
- temp++;
- if(temp==10)
- temp=0;
- }
- }
- void timer0_init()
- {
- TL0=0X00;
- TH0=0X00;
- TR0=1;
- }
- void Timer1Init(void) //2毫秒@11.0592MHz
- {
- AUXR |= 0x40; //定时器时钟1T模式
- TMOD = 0x05; //设置定时器模式
- TL1 = 0x9A; //设置定时初值
- TH1 = 0xA9; //设置定时初值
- TF1 = 0; //清除TF1标志
- TR1 = 1; //定时器1开始计时
- }
- void all_init()
- {
- P2=0xe0;P0=0XFF;
- P2=0XA0;P0=0X00;
- P2=0X80;P0=0XFF;
- P2=0XC0;P0=0XFF;
- }
复制代码
|