⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a.c

📁 pic单片机定时器0的相关程序
💻 C
字号:

#include <pic1687x.h>

unsigned char  count;
unsigned char uSec=0,mSec=0,Sec_1=0,Sec_2=0;
const unsigned char Led_dot[11]={0X40,0x79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10,0X40}; //带小数点的数码段	
const unsigned char     Led[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0xc0}; //不带小数点的数码段



void  Init_timer()      //4M的晶体   T=(256-初值)*(4/f)* 分频比 
{
	
	PSA=0;			    //128分频后
    PS2=1;
    PS1=1;
    PS0=0;
	T0IF=0;			    //清除TMR0的中断标志
	T0IE=1;				//TMR0中断允许
    TMR0=217;             //定时1ms
	T0CS=0;				//TMR0工作于定时器方式
}
void delay(void)
{
    unsigned char i;
    for(i=100;i>0;i--);
}
void display (void)
{
     PORTA=0xFE;
     PORTC=Led[uSec];
     delay();
     
     PORTA=0xFD;
     PORTC=Led[mSec];
     delay();
     
	 PORTA=0xFB;
     PORTC=Led_dot[Sec_1];
     delay();
     
	 PORTA=0xF7;
     PORTC=Led[Sec_2];
     delay();
     

 }

void interrupt Update(void)
{
	if(T0IF)
	{
		count++;
        T0IF=0;
        TMR0=217;
        if( count==2 )
     	{
        	count=0;
            uSec++;
 			if( uSec==10)
			{
				uSec=0;
                mSec++;
				if( mSec==10 )
				{
					mSec=0;
               		Sec_1++;
					if( Sec_1==10)
					{
						Sec_1=0;
                		Sec_2++;
						if( Sec_2==10 )
						{
							Sec_2=0;
                        }
					}
				}	
			}
		}
    display();

	}
}




main()
{
	TRISA=0x00;
    ADCON1=0x07;
    TRISC=0x00;
    GIE=1;
	Init_timer();
    while(1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -