⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.c

📁 功能: 检测外部计数器,当按下T0按键2次,改变L1发光管状态 当按下T1按键6次,改变L8发光管状态
💻 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 + -