?? 三管.c
字號:
/***************************************************************************************/
/* 廣州雙龍電子
WWW.SL.COM.CN
PC.7,PC.6,PC.5分別檢測左中右三個光電管
功能:
三個紅光電對管尋跡
LED4~5是前進指示燈;LED1~3是左轉指示燈;LED6~8右轉指示燈
Chip type : ATMEGA16
Clock frequency : 8MHz
*/
/***************************************************************************************/
#include <iom16v.h>
#include <macros.h>
#define xtal 8
void delay_1ms(void) //1ms延時
{
unsigned int i;
for(i=1;i<(unsigned int)(xtal*143-2);i++)
;
}
void delay(unsigned int n)
{
unsigned int i;
for(i=0;i<n;i++)
delay_1ms();
}
void main(void)
{
DDRA=0xff; //初始化端口
PORTA=0xff;
DDRD=0xf0;
PORTD=0x0f;
DDRC=0x00;
PORTC=0xff;
for(;;)
{
switch(PINC&0xe0)
{
case 0x00:PORTD=0x5F ;PORTA=0xff; delay(1);break; //出界,后退探測,熄滅全部LED
case 0x20:PORTD=0x90 ;PORTA=0xf8; delay(1);break; //轉右,點亮右轉指示燈
case 0x40:PORTD=0xaf ;PORTA=0xe7; delay(1);break; // 前進,點亮前進指示燈
case 0x60:PORTD=0xaf ;PORTA=0xe7; delay(1);break; //前進,點亮前進指示燈
case 0x80:PORTD=0x60 ;PORTA=0x1f; delay(1);break; //轉左,點亮左轉指示燈
case 0xa0:PORTD=0xaf ;PORTA=0xe7; delay(1);break; //直行,點亮前進指示燈
case 0xc0:PORTD=0xaf ;PORTA=0x0e7; delay(1);break; //前進,點亮前進指示燈
case 0xe0:PORTD=0x90 ;PORTA=0x1f; delay(1);break; //十字線或終點,轉左探測,點亮左轉指示燈
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -