/*****************************************
名称:单红外线步进电机避障小车
内容:实现红外线躲避障碍的功能
时间:2013.9.28
******************************************/
#include<iom32v.h>
#include<macros.h>
/*********延时程序********/
void delay(unsigned int i)
{
while(i)
{i=i-1;
}
}
/*定时器1中断服务程序*/
#pragma interrupt_handler Timer1_ovf:10
void Timer1_ovf(void)
{
TCNT1H = 0xff;
TCNT1L = 0x23;
PORTC^=0x03;
delay(1000);
}
/*******初始化程序********/
void initial(void)
{
unsigned char sreg;
SREG=0X80; //使能全局中断
sreg=SREG;
DDRA=0x00;
PORTA=0x00;
DDRC=0xFF;
PORTC=0xFF;
DDRD=0xFF;
PORTD=0xFF;
TIMSK|=(1<<TOIE1); //使能定时溢出中断
TCCR1A=0x00; //配置定时器工作在普通模式
TCCR1B=0x01; //无分频
TCNT1H=0xff; //计数初值
TCNT1L=0x23;
SREG=sreg;
}
/************主程序********/
int main(void)
{
initial();
while(1)
{
if((PINA&0x20)==0) //PA5口判断障碍,无障碍为0,有障碍为1
{
PORTC=0x0b;
PORTD=0x70;
}
else
{
PORTC=0x0B;
delay(50);
PORTD=0xF0;
}
}
return (0);
}