C8051F320红外发射接收程序

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "c8051F320.h"

#include "string.h"

#include "stdio.h"

#include "stdlib.h"

#include "INTRINS.H"

bit SPI_FH ; //主机SPI 是否结束中断程序

bit Buff_Flag; //缓存页(0或1)

bit Flag ;

sbit fashe = P1^0; //发射红外

sbit jieshou= P1^1; //接受红外

sbit zhishideng= P1^2; //LED灯

//unsigned int k;

void Delay01ms(unsigned int);

void Init(void);

void Timer_Init(void);

void main()

{

unsigned char i,j,k;

Init();

Timer_Init();

while(1)

{

zhishideng=jieshou; //读取一体化接收头数值//低电平亮if(Flag)

{

for(k=0;k<27;k++)

{

for(i=0;i<7;i++)

for(j=0;j<3;j++);

fashe=!fashe; //发射管输出

}

}

}

}

void Init(void)

{

CLKSEL = 0x10;

OSCXCN = 0x00;

OSCICN = 0xc3; //系统时钟不分频12M

CLKMUL = 0x00;

PCA0MD = 0x00; //看门狗禁止

P0MDIN = 0xff; //数字输入

P0MDOUT= 0xff; //推挽

P1MDIN = 0xff;

P1MDOUT= 0xff;

P2MDOUT= 0xff; //推挽

XBR0 |= 0x02; //连接SPI

XBR1 =0x40; //交叉开关使能

EA =1;

ESPI0 =1; //允许SPI中断

}

void Delay01ms(unsigned int t)

{

unsigned int i;

unsigned int j;

for (i=0;i

for(j=0;j<1;j++);

}

void Timer_Init(void)

{

TMOD|=0x01;

TH0=0xf0;

TL0=0x00;

CKCON=0x00; //定时器均使用系统时钟12分频

EA=1; /* interupt enable */

ET0=1; /* enable timer0 interrupt */ TR0=1;

}

void Timer0_isr(void) interrupt 1

{

TF0=0;

TH0=0x0f; /* Init value */

TL0=0x00;

Flag=!Flag;

}

相关文档
最新文档