Send_abyte(table[TCNT1%16]);
Prints(“Error”,1);
}
code_0=0;
code_1=0;
data_0=0;
data_1=0;
DelayXms(100);
Interrp_int0_init();
}
uint8 Data_dec(void)
{
uint8 i;
while(in_IR==0);//等待红外输入变高。
Timer1_init();//定时器计数开始。
while(in_IR);//等待红外输入变低。
Timer1_stop();//定时计数停止。
if((TCNT1《26980)|(TCNT1》34980))
return 0; //4.5ms红外起始接受检测,不对返回0.
for(i=0;i《8;i++)
{
while(in_IR==0);//等待红外输入高。
Timer1_init();//定时计数开始。
while(in_IR);//等待红外输入变低。
Timer1_stop();//定时计数停止。
/*Send_abyte(table[TCNT1/4096]);
Send_abyte(table[TCNT1%4096/256]);
Send_abyte(table[TCNT1%256/16]);
Send_abyte(table[TCNT1%16]);
Send_abyte(‘ ’);*/
if((TCNT1《4400)&&(TCNT1》3400))
;
else
code_0=(code_0+(1《} //地址码接受;
for(i=0;i《8;i++)
{
while(in_IR==0);
Timer1_init();
while(in_IR);
Timer1_stop();
if((TCNT1《4400)&&(TCNT1》3400))
;
else
code_1=(code_1+(1《} //地址码接受;
for(i=0;i《8;i++)
{
while(in_IR==0);
Timer1_init();
while(in_IR);
Timer1_stop();
if((TCNT1《4400)&&(TCNT1》3400))
;
else
data_0=(data_0+(1《} //数据码接受;
for(i=0;i《8;i++)
{
while(in_IR==0);
Timer1_init();
while(in_IR);
Timer1_stop();
if((TCNT1《4400)&&(TCNT1》3400))
;
else
data_1=(data_1+(1《} //数据反码接受;
Data_process();
}
void Data_process(void)//发送接受数据到串口。
{
Send_abyte(table[code_0/16]);
Send_abyte(table[code_0%16]);
Send_abyte(‘ ’);
Send_abyte(table[code_1/16]);
Send_abyte(table[code_1%16]);
Send_abyte(‘ ’);
Send_abyte(table[data_0/16]);
Send_abyte(table[data_0%16]);
Send_abyte(‘ ’);
Send_abyte(table[data_1/16]);
Send_abyte(table[data_1%16]);
Send_abyte(10);
Send_abyte(13);
}
void main(void)
{
DDR4&=~(1《Uart_init();
Prints(“System init.。.”,1);
Interrp_int0_init();
while(1);
}
责任编辑;zl
关于控制,MCU就介绍完了,您有什么想法可以联系小编。