时钟二:定时器时钟

主文件函数:

#include <reg52.h>

#define PORTLEN P0

sbit bit_select = P2^0;
sbit seg_select = P2^1;

unsigned char src[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char qrc[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char second1[8];
unsigned char shi = 0;
unsigned char fen = 0;
unsigned char miao = 0;


void timer0_init(void)
{
	  EA = 1;
	  TMOD |= 0x01;
	  TH0 = (65536 - 20000) / 256;
	  TL0 = (65536 - 20000) % 256;  
	  ET0 = 1;   
	  TR0 = 1;   
} 


void timer1_init(void)
{
	  EA = 1;
	  TMOD |= 0x10;
	  TH1 = (65536 - 1000) / 256;
	  TL1 = (65536 - 1000) % 256;
	  ET1 = 1;
	  TR1 = 1;
}

void main()
{
  	   timer1_init();	 
       timer0_init();			  
		 	 while(1);
}

void display()
{
    static unsigned char i = 0;
	  PORTLEN = 0x0;  
	  seg_select = 1;
	  seg_select = 0;
	
	  PORTLEN = 0xff;
	  bit_select = 1;
	  bit_select = 0;
	
	  PORTLEN = second1[i];
	  seg_select = 1;
	  seg_select = 0;
	
	  PORTLEN = qrc[i];
	  bit_select = 1;
	  bit_select = 0;
	  
	  i++;
	  if(8 == i)
		{
			  i = 0;
		}
	
}
	

void timer0_isr() interrupt 1
{
	  static unsigned char i = 0;
    TH0 = (65536 - 20000) / 256;
	  TL0 = (65536 - 20000) % 256;   
	
	  i++;
	  if(50 == i)
		{
			  i = 0;
        miao++;
			  if(60 == miao)
				{   
					  miao = 0;
					  fen++;
					  if(60 == fen)
						{
							  fen = 0;
							  shi++;
							  if(24 == shi)
								{
									  shi = 0;
								}
						}
				}
    }
		second1[0] = src[shi / 10];
		second1[1] = src[shi % 10];
		second1[2] = 0x40;
		second1[3] = src[fen / 10];
		second1[4] = src[fen % 10];
		second1[5] = 0x40;
		second1[6] = src[miao / 10];
		second1[7] = src[miao % 10];
}


void timer1_isr() interrupt 3
{
    TH1 = (65536 - 1000) / 256;
	  TL1 = (65536 - 1000) % 256;
	  display();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值