⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 MEGA16单片机程序包2
💻 C
字号:
#include "main.h"

unsigned char ReadPin(void)
{
 unsigned char i; 
 PORTC = 0XFF;           //定义上拉电阻和设置高电平输出 
 DDRC = 0X00;            //为端口引脚定义方向
 _NOP();                 // 为了同步插入nop 指令
 i = PINC;               // 读取端口引脚
}

void  car_turn(unsigned char mes)
{
  switch(mes)
       {
/**************************以下为检测障碍物时的执行函数************************************/	   
	   
	    case 0x00:  forward();                      break;
		
		case 0x01:  {
					  back_left();
					  delay(1000);
					  for_right(); 
					  delay(1000);
					 
					};                              break;
					
		case 0x02:  {
		              backward();
		              delay(1000);
					  for_left();
					  delay(1000);
					};                              break;
					
					                             
		case 0x03:  {
		              back_left(); 
					  delay(1000);
					  for_right();
					  delay(1000);
					  
					};                              break;
					
		case 0x04:  {
		              back_right();
					  delay(1000);
					  for_left();
					  delay(1000);
					 
				    };                              break;
					
		case 0x05:    forward();                    break;
		
		case 0x06:  {
		              back_right();
					  delay(1000);
					  for_left();
					  delay(1000);
					  
					};                              break;
					
		case 0x07:  {
		              backward(); 
		              delay(1000);
					  for_left();
					  delay(1000);
					};                              break;
					
/**************************以下为检测黑线时的执行函数************************************/
										 
		case 0x30:  for_left();                     break;
		
		case 0x28:  forward();                      break;
					
		case 0x18:  for_right();                    break;
		            
		case 0x20:  for_left();                     break;
		              
		case 0x08:  for_right();                    break;
		
		case 0x38:  backward();                     break;
		
		default:    forward();                      break; 			
					
		
		}
}


void main()
{
 unsigned char mesg,mesc;
 unsigned char pin;
 init_lcd();                         //初始化液晶
 LCD_write_string(0,0,"auto car");   //显示信息
 LCD_write_string(0,1,"ATMega 16");

 while(1)
   { 
    pin = 0x00;              //初始化引脚信息
    mesg = 0x00;            
	mesc = 0x00;
    pin = ReadPin();         //读取引脚信息
	mesc|= pin&0x07;         //屏蔽光电传感器干扰,检测障碍物
	mesg|= pin&0x38;         //屏蔽超声波干扰,检测黑线
	if(mesc)
        car_turn(mesc);  
	else
	    car_turn(mesg);
   }
}   
  	
 		
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -