main.c.bak

来自「利用8051单片机实现简单的红外控制以及中断控制的源码,编译环境为KEIL」· BAK 代码 · 共 69 行

BAK
69
字号
#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 + =
减小字号Ctrl + -
显示快捷键?