用定时器T0的中断控制8位LED闪烁

2014-11-23 23:12:00 · 作者: · 浏览: 5

#include   
#define uchar unsigned char   
#define uint unsigned int   
uint i;  
void main()  
{  
    i=0;  
    EA=1;                                 //打开总中断   
    TMOD=0x01;                            //使用定时器T0的工作方式1   
    ET0=1;                                //定时器T0中断允许   
    TH0=(65536-50000)/256;                //给定时器T0的高8位赋值   
    TL0=(65536-50000)%256;                //给定时器T0的低8位赋值   
    TR0=1;                                //启动定时器T0   
    P0=0xff;  
    while(1);                             //无限循环等待中断   
}  
void Time0(void) interrupt 1                  //"interrupt"声明函数为中断服务函数,1表示定时器T0的中断编号   
{  
      
    i++;  
    if(i==40)  
    {  
        P0=~P0;                         
        i=0;  
    }  
    TH0=(65536-50000)/256;  
    TL0=(65536-50000)%256;  
}  

#include
#define uchar unsigned char #define uint unsigned int uint i; void main() { i=0; EA=1; //打开总中断 TMOD=0x01; //使用定时器T0的工作方式1 ET0=1; //定时器T0中断允许 TH0=(65536-50000)/256; //给定时器T0的高8位赋值 TL0=(65536-50000)%256; //给定时器T0的低8位赋值 TR0=1; //启动定时器T0 P0=0xff; while(1); //无限循环等待中断 } void Time0(void) interrupt 1 //"interrupt"声明函数为中断服务函数,1表示定时器T0的中断编号 { i++; if(i==40) { P0=~P0; i=0; } TH0=(65536-50000)/256; TL0=(65536-50000)%256; }