📄 timer2.c
字号:
/******************************************************************
* *
* ME500单片机开发系统演示程序 - 定时器2中断 *
* *
* P0与P2 的8个LED轮流显示 *
* *
* 工作芯片:AT89S52 晶振频率:11.0592MHz *
* *
* 版本: V1.0 (2006/11/20) *
* 作者: gguoqing (Email: gguoqing@willar.com) *
* 网站: www.willar.com(伟纳电子) www.mcusj.com(伟纳单片机世界) *
* 邮箱: support@willar.com *
* *
*【版权】Copyright(C)伟纳电子 www.willar.com All Rights Reserved *
*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! *
* *
******************************************************************/
#include <reg52.h>
#include <intrins.h>
unsigned char count;
bit led;
/*********************************************************
* *
* 主函数 *
* *
*********************************************************/
void main()
{
P0=0xff;
P2=0xff;
T2CON = 0x00; //16位常数自动再装入方式
TH2 = 0x4c; //50ms定时常数
RCAP2H = 0x4c;
TL2 = 0x00;
RCAP2L = 0x00;
ET2=1;
EA=1;
TR2=1; //启动TIMER2中断
while (1);
}
/*********************************************************
* *
* 定时器2 中断服务函数 *
* *
*********************************************************/
void Timer2() interrupt 5
{
TF2=0; //清TF2标志
count++; //中断次数计数
if(count==20) //中断20次为1s
{
count=0; //计数单元清零
led=~led; //状态标志取反
if(led)
{
P0=0x00; //P0口发光二极管亮
P2=0xff;
}
else
{
P0=0xff;
P2=0x00; //P2口发光二极管亮
}
}
}
/*********************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -