单片机
返回首页

51单片机学习:定时器1实验

2023-02-03 来源:zhihu

实验名称:定时器1实验
接线说明:
实验现象:下载程序后,D1指示灯间隔1s闪烁
注意事项:
***************************************************************************************/
#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--);
}

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

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

while(1)
{

}
}

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



进入单片机查看更多内容>>
相关视频
  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 新唐 8051单片机教程

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

    相关电子头条文章