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

📄 main.c

📁 利用8051单片机实现简单的红外控制以及中断控制的源码,编译环境为KEIL
💻 C
字号:
#include "reg52.h"
#include "stdio.h"

sbit int0 = P3^0;
sbit int1 = P3^1;
sbit ira_set = P3^7;
sbit ira_get = P3^6;

unsigned char Delay(unsigned char  no);

void ld_int0 (void) interrupt 0 using 1		//外部中断0响应
{
	Delay(10);
	{
		ira_set = 0;			//使能红外
		printf("enable");
	}
}

void ld_int1 (void) interrupt 2 using 1		//外部中断1响应
{
	Delay(10);
	{
		ira_set = 1;			//禁用红外
		printf("disable");
	}
}

void  main()
{
    unsigned char cou;
	
	/*定义发送缓冲区*/
  	SCON  = 0x50;		        //8位;模式1;允许接收
    TMOD |= 0x20;               //设定定时器工作方式
    TH1   = 0xfd;               //设定波特率9600@11.0592M    
    TR1   = 1;                  //启动定时器1 
    TI    = 1;                  //设置TI     
	IE    = 0x85;     	 	

	P1 = 0xAA;

	printf("Start");

	for(;;)
	{
		if(ira_get == 0)//扫描红外状态
		{
			Delay(10);//去抖
			if(ira_get == 0)
			{
				P1 = ~P1;
				SBUF = cou++;//在串口打印次数
			}
		}
	}
}

unsigned char Delay(unsigned char  no)
{ 
	unsigned char  i,j;					//延时参数

  	for(; no>0; no--)
  	{ 
		for(i=0; i<100; i++)
     		for(j=0; j<100; j++);
  	}
  	return 0; 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -