标题: 51单片机定时器T0应用编程 [打印本页]

作者: qi459989125    时间: 2021-11-9 23:52
标题: 51单片机定时器T0应用编程
#include "reg52.h"

typedef unsigned int u16;        //对系统默认数据类型进行重定义
typedef unsigned char u8;

//定义LED1管脚
sbit LED1=P2^0;



/*******************************************************************************
* 函 数 名       : delay_10us
* 函数功能                 : 延时函数,ten_us=1时,大约延时10us
* 输    入       : ten_us
* 输    出             : 无
*******************************************************************************/
void delay_10us(u16 ten_us)
{
        while(ten_us--);        
}

/*******************************************************************************
* 函 数 名       : time0_init
* 函数功能                 : 定时器0中断配置函数,通过设置TH和TL即可确定定时时间
* 输    入       : 无
* 输    出             : 无
*******************************************************************************/
void time0_init(void)
{
        TMOD|=0X01;//选择为定时器0模式,工作方式1
        TH0=0XFC;        //给定时器赋初值,定时1ms
        TL0=0X18;        
        ET0=1;//打开定时器0中断允许
        EA=1;//打开总中断
        TR0=1;//打开定时器               
}

/*******************************************************************************
* 函 数 名       : main
* 函数功能                 : 主函数
* 输    入       : 无
* 输    出             : 无
*******************************************************************************/
void main()
{        
        time0_init();//定时器0中断配置

        while(1)
        {                        
                                                        
        }               
}

void time0() interrupt 1 //定时器0中断函数
{
        static u16 i;//定义静态变量i
        TH0=0XFC;        //给定时器赋初值,定时1ms
        TL0=0X18;
        i++;
        if(i==1000)
        {
                i=0;
                LED1=!LED1;        
        }                                                
}


作者: qi459989125    时间: 2021-11-9 23:53
自学51单片机,可以试一试,运行正常的




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1