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

📄 main.c

📁 AT89C51跑马灯设计C程序例程_中断实现
💻 C
字号:
//**********************************************************
//*跑马灯测试程序,利用P0口使LED循环点亮
//*采用定时器0中断实现50ms定时
//*2007.8.2 by Ericson
//***********************************************************
#include <REG51.h>

#define uchar unsigned char
uchar counter = 96;
uchar flag = 1; 

void init(void);

void main(void)
{
	init();
	while(1){
	}
}

void init(void)
{
	TMOD = 0x01;
	TH0  = 0x4C;
	TL0  = 0x00;
	EA   = 1;
	ET0  = 1;
	TR0  = 1;
	P0   = 0x00;
}

void timer0(void) interrupt 1 using 1
{
	TH0  = 0x4C;
	TL0  = 0x00;
	counter--;
	if(counter==255)   { counter = 96;P0=0x00;}
	else if(counter>64){
			  if((counter&0x03)==0)      P0 = ~P0;
		 }     
		 else if(counter==64)	       P0 = ~flag;
		 	  else if((counter&0x01)==0){
		 	  	   if((counter&0x0F)==0)	{ P0 = ~flag;flag = 1; }
			  	   else	      				{ P0 = ~flag;flag <<= 1; }
				   }
}


⌨️ 快捷键说明

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