#include<iom48v.h>
#include<macros.h>
#pragma interrupt_handler TIMER0_COMPA:15
extern timer0_init(void);
extern hanzi_Init(void);
unsigned char second,minute,hour;
unsigned char COUNTER;
void TIMER0_COMPA(void)
{
TCNT0=0;
COUNTER++;
if(COUNTER==100)
second++;
}
void main()
{
COUNTER=0;
second=0;
minute=0;
hour=0;
timer0_init();
SPI_Init();
hanzi_Init();
SREG=(1<<7);
while(1)
{
if(second==60)
{
second=0;
minute++;
}
if(minute==60)
{
minute=0;
hour++;
}
if(hour==24)
{
hour=0;
}
}
}
时钟的初始化
#include<iom48v.h>
#include<macros.h>
void timer0_init()
{
TCCR0A=0;//决定了比较匹配发生时输出引脚OC0A 的电平
//OC0A 以比较匹配输出的方式进行工作
TCCR0B=0x05;//预分频101,为1024分频
OCR0A=0xc4;
//51.2*196=10035.2
TIMSK0|=(1<<OCIE0A);
}
谁可以帮忙分析一下,在COUNTER计数处存在问题,要++196时间加一次,下一次要++256再到196,时间存在问题,但是不知道怎么改正,同时希望把在LCD上面显示的程序加进来。谢谢!!! |