📄 timer.c
字号:
/*****************************************************************************
MCS8051-III学习板演示程序
(c) Copyright 2007-2007,广州恒芯电子
All Rights Reserved
*****************************************************************************/
/*****************************************************************************
程序说明
名称: MCS8051-III学习板演示程序(发光管显示)
功能: 检测外部计数器,当按下T0按键2次,改变L1发光管状态;当按下T1按键6次,改变L8发光管状态
版本:2007-07-01
*****************************************************************************/
/*****************************************************************************
硬件说明
单片机:兼容MCS-51单片机/STC89C51
晶振频率:12MHz
*****************************************************************************/
#include "regx52.h"
/****************************************************************************
说明: 程序预定义
*****************************************************************************/
#define LED_CTRL P1_3/*发光管控制引脚(0:有效,1:无效)*/
#define LED1 P0_0/*L1发光管状态*/
#define LED8 P0_7/*L8发光管状态*/
/****************************************************************************
名称:Delay
说明:程序延时
参数:无
返回:无
*****************************************************************************/
void Delay();
/*****************************************************************************
程序开始
*****************************************************************************/
void main()
{
LED_CTRL=0;/*发光管显示有效*/
LED1=0;
LED8=0;
TMOD=0x55;/*设置计数器参数*/
TL0=0xfe;/*设置计数器初值,当加1时就滥出*/
TH0=0xff;
TL1=0xfa;
TH1=0xff;
TR0=1;/*计数器开始*/
TR1=1;
ET0=1;/*计数器中断允许*/
ET1=1;
EA=1;/*开总中断*/
while(1);/*等待*/
}
/*****************************************************************************
名称: Interrupt1Handler
说明: T0中断入口
参数: 无
返回 :无
*****************************************************************************/
void Interrupt1Handler() interrupt 1
{
EA=0;
TL0=0xfe;/*重设计数器初值*/
TH0=0xff;
LED1=1-(unsigned char)LED1;/*改变L1显示状态*/
Delay();
EA=1;
}
/*****************************************************************************
名称: Interrupt3Handler
说明: T1中断入口
参数: 无
返回 :无
*****************************************************************************/
void Interrupt3Handler() interrupt 3
{
EA=0;
TL1=0xfa;/*重设计数器初值*/
TH1=0xff;
LED8=1-(unsigned char)LED8;/*改变L8显示状态*/
Delay();
EA=1;
}
/****************************************************************************
名称: Delay
说明: 程序延时
参数: 无
返回: 无
*****************************************************************************/
void Delay()
{
unsigned char a,b;
for(a=0;a<255;a++)
for(b=0;b<255;b++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -