89C51单片机定时器控制的流水灯

时间:2020-12-26 22:21:24

/***************************************************
Copyright: 2014-02-11.version1.0
File name: timer.c
Description: 定时中断控制的流水灯
Author: lxl
Version: version1.0
Date: 2014.02.11
History: 无
****************************************************/
#include <reg51.h>
char a=0xff;
int num=0;
/*************************************************
Function: init()
Description: 定时中断初始化功能
Calls: 无
Called By: main()
Table Accessed: 无
Table Updated: 无
Input: void
Output: 无
Return: void
Others: 无
*************************************************/
void init(void)
{
 TMOD=0x01;
 EA=1;
 ET0=1; 
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 TR0=1;
}
/*************************************************
Function: main()
Description: 程序的主函数
Calls: init()
Called By: 无
Table Accessed: 无
Table Updated: 无
Input: void
Output: 无
Return: void
Others: 无
*************************************************/
void main(void)
{
 init();
 while(1)
 {
  P1=a;
 }
}
void tr() interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 num++;
 if(num==20)
 {
  num=0;
  a--;
  if(a==0x00)
   a=0xff;
 } 
}