?? main.c
字號:
#define MAIN_C
#include "includes.h"
/*************************************************************/
/*T0工作在定時方式*/
/*定時器采用1MHz系統(tǒng)時鐘的64分頻作為定時時鐘*/
/*即每64 us計一個數(shù),每計125個數(shù)(8ms)溢出一次*/
/*中斷復(fù)位程序統(tǒng)計計數(shù)次數(shù),計數(shù)125次時,秒鐘加1*/
/*************************************************************/
//數(shù)碼管字形表
//數(shù)碼管為公陰極
unsigned char table[10] =
{
0x3f, //0
0x06, //1
0x5b, //2
0x4f, //3
0x66, //4
0x6d, //5
0x7d, //6
0x07, //7
0x7f, //8
0x6f //9
};
void display(unsigned char *p)
{
unsigned char i;
unsigned sel = 0x08;
for(i=0;i<4;i++)
{
ConPort = ~sel;
OutPort = table[p[i]];
delay_nms(1);
sel = sel>>1;
}
}
void main(void)
{
// unsigned char load;
InitIo();
PORTA = 0xff; //點亮測試所有數(shù)碼管
PORTC = 0x00;
delay_nms(20);
PORTC = 0xff; //熄滅所有數(shù)碼管
TCCR0|=0x03;//T/C0工作于定時方式,系統(tǒng)時鐘256分頻
TCNT0 = 131; //計數(shù)初值
TIMSK |= (1<<TOIE0); //使能T0溢出中斷
SREG |= (1<<7); //使能全局中斷
while(1)
{
process(timer,data);
display(data);
}
}
#pragma vector = TIMER0_OVF_vect
__interrupt void TOver0_isr( void )
{
CNT++;
if(CNT==TIMES)
{
CNT = 0;
timer[1]++;
if(timer[1]==60)
{
timer[1] = 0;
timer[0]++;
}
if(timer[0]==60)
{
timer[0] = 0;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -