if (time <= 0)ä½ çtime æ¯å
¨å±åéï¼charåï¼-128~127ï¼ï¼ï¼é£ä¹timeå¯ä»¥ä¸ºè´äºï¼åºè¯¥æ¯if (time == 0)表示å计æ¶ç»æï¼ä¸ºäºå¯å¾ªç¯ï¼å¯ä»¥å以ä¸è°æ´if (time <= 0)ï½
TIMSK &= ~BIT(2); time=99;//éæ°èµå¼
} ä¸ä¸ä¸ªæåç代ç #include<iom16v.h>
#include"MacroAndConst.h"//èªå®ä¹å½æ°
#include<Macros.h>
int8 count;
int8 ge;
int8 shi;
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0X7d,0X07,0x7f,0x6f};
/*软件延æ¶å½æ°å®ä¹*/
void delay(uint ms) //误差 -0.651041666667us
{
int8 a,b,i;
for(i=0;i<ms;i++)
for(b=102;b>0;b--)
for(a=3;a>0;a--);
}
/*T/C1å®æ¶åå§å设置*/
void Timer1_init(void)
{
TCCR1B=0X04;//256åé¢
TCNT1H=0X85;//1s
TCNT1L=0Xee;
TIMSK|=BIT(2);//T/C1 interrupt
SREG|=BIT(7);
}
/*端å£åå§å设置*/
void Port_Init(void)
{
DDRA=0XFF;
PORTA=0XFF;
DDRB=0XFF;
PORTB=0XFF;
DDRC=0XFF;
PORTC=0XFF;
DDRD=0XFF;
PORTD=0XFF;
}
/*æ°ç 管æ¾ç¤ºç¨åº*/
void display(int8 wela,int8 dula)
{
PORTB=table[dula];//send dula
PORTC&=~BIT(wela);//å¼å¯æ¾ç¤ºçä½
delay(10);
PORTC|=BIT(wela);//å¼å¯æ¾ç¤ºçä½
}
/******************************************
ä½è
ï¼ prodigalåè½ä»ç»:ç¨T/C1æ®é模å¼å®ç°ç§è¡¨ç¨åºï¼å¹¶ç¨
æ°ç 管æ¾ç¤ºåºæ¥ã
åä½æ¥æï¼20110809
çæ¬�0.01
******************************************/
void main()
{
Port_Init();
Timer1_init();
while(1)
{
display(1,shi);
display(2,ge);
}
}
/*ä¸ææå¡ç¨åº*/
#pragma interrupt_handler timer1_isr:9
void timer1_isr(void)
{
count++;
if(count==60)count=0;
shi=count/10;
ge =count%10;
TCNT1H=0X85;
TCNT1L=0Xee;
} ç´å¥âåµå
¥å¼å¢åä¸ºä½ è§£çï¼å¸æè½å¸®å©å°ä½
温馨提示:答案为网友推荐,仅供参考