Спойлер
#include <mega328p.h>#include <delay.h>
#define VERH PORTC.2
#define VNIZ PORTC.3
#define VLEVO PORTC.4
#define PRAVO PORTC.5
#define DATCHIK_VERH PIND.3
#define DATCHIK_VNIZ PIND.4
#define DATCHIK_GORIZONT_2 PIND.0
#define DATCHIK_GORIZONT_1 PINC.6
unsigned char poziciya=0;
int n=0; //Переменная, отслеживающая нажатия. 0 - нет нажатия, 1 - происходит нажатие, 2-произошло отжатие кнопки
void main(void)
{
PORTB=0b11011110; //0xCF;-из двоичной в шеснадцатеричную систему исчисления
DDRB=0b00000000; //0x00;-из двоичной в шеснадцатеричную систему исчисления
PORTC=0b00000000; //0x00;-из двоичной в шеснадцатеричную систему исчисления
DDRC=0b11111110; //0xCF;-из двоичной в шеснадцатеричную систему исчисления
PORTD=0b11011111; //0xDF;-из двоичной в шеснадцатеричную систему исчисления
DDRD=0b00000000; //0x00;-из двоичной в шеснадцатеричную систему исчисления
//_________________Датчики(горизонт)_______
PORTD.0=1; //диалект CodeVision
DDRD.0=0; //диалект CodeVision
PORTD.1=1; //диалект CodeVision
DDRD.1=0; //диалект CodeVision
//_________________Датчики(концевые)_______
PORTC.6=1; //диалект CodeVision
DDRC.6=0; //диалект CodeVision
PORTD.4=1; //диалект CodeVision
DDRD.4=0; //диалект CodeVision
//________Выключатель(разрешение на ручной режим)_________
PORTD.2=1; //диалект CodeVision
DDRD.2=0; //диалект CodeVision
//_________________Датчики(вертикаль)______
PORTD.2=1; //диалект CodeVision
DDRD.2=0; //диалект CodeVision
PORTD.3=1; //диалект CodeVision
DDRD.3=0; //диалект CodeVision
//_______Тумблер____________
PORTB.5=1; //диалект CodeVision
DDRB.5=0; //диалект CodeVision
while(1){
switch(poziciya)
{
case 0:{PORTC=0b00000000; break; }
case 1:{VERH=1; break;} //1
case 2:{VLEVO=1; break;} //2
case 3:{VLEVO=1; break;} //3
case 4:{VNIZ=1; break;} //4
case 5:{PORTC=0b00000000; break;} //5
case 6:{PORTC=0b00000000; break;} //6
case 7:{PORTC=0b00000000; break;} //7
};
//if (DATCHIK_VERH==0){VERH=0;VLEVO=1;}
//if (DATCHIK_VNIZ==0){VNIZ=0;VLEVO=1;}
if((PIND.0==1)&&(n==0)){n=1;};
if((PIND.0==0)&&(n==1))
{poziciya++;
if (poziciya>8){poziciya=0;}
n=0;
};
};
};


