📄 irshou2.c
字号:
#include<AT89x55.H>
#include <stdio.h>
#include <INTRINS.H>
//#include "Uart.h"
#define uint unsigned int
#define uchar unsigned char
sbit ir=P1^6;
sbit out=P1^7;
uchar irdata[4];
uchar irdat;
uint count;
uchar count1,count2;
uchar t;
bit flag,flag1,flag0;
//*********************************
//t*2us 4.5ms equ 561 9ms equ 1124 0.56ms equ 69
//*********************************
void delay(uint t)
{ while(--t);
}
//*********************************
//
//*********************************
uchar irshou()
{ //uchar data1,BitCnt,i;
while(ir==0)
{ count++;
if(count>250)
{flag=1;
}
if(flag==1)
{
// out=0;
flag=0;
t=33;
while(t--)
{ //1
while(ir==1)
{count1++;
if(count1<50)
{flag1=1;
}
if(flag1==1)
{
//out=0;
flag1=0;
}
}
//0
while(ir==0)
{count2++;
if(count2<50)
{flag0=1;
}
if(flag0==1)
{
out=0;
flag0=0;
}
}
count1=0;
count2=0;
out=1;
//return(0);
}
}
}
return 0;
}
void uart_init()
{
SCON = 0xDA; // SCON: mode 1, 8-bit UART, enable rcvr */
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 0xFD; // TH1: reload value for 1200 baud @ 12MHz */
TR1 = 1; // TR1: timer 1 run */
TI = 1; // TI: set TI to send first char of UART */
}
void send(unsigned char ch)
{SBUF=ch;
while(TI==0);
TI=0;
}
void main()
{ // uint count;
// uchar count1=0,count2=0;
//irdat=0x01;
uart_init();
// flag=1;
//send('0'+count);
while(1)
{
/// out=0;
count=0;
irshou();
// count1=count/10;
//count2=count%10;
// send('0'+count1);
// send('0'+count2);
// send('\n');
count=0;
// out=1;
// delay(10000);
//if(count1
//P2=count1;
//ComOutChar(count1);
//irf(irdat);
//data2<<1;
//P2=data2;
//out=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -