На семисегментном четырёх разрядном (4 цифры) индикаторе цифры меняются от 1 до 3, при нажатии на кнопку фиксируется одна из цифр в памяти, далее выбор переходит к следующему разряду, в конце стоит условие, которое будет сравнивать выпавшие цифры.
Соединил две предыдущие статьи между собой и получил казино:
Подключаем многоразрядный семисегментный индикатор к pic16f877
Добавляем кнопку к pic16f877 на языке С (MPLab X 5.35)
Кнопка на RC7, минуса для смены разрядов на семисегментном индикаторе на RA0,RA1,RA2,RA3 и сами цифры на PORTB с 0 пина по 6.
Если Вам выпало четыре одинаковые цифры, то в конце зажигаются – данные цифры, если же нет, то горит минус:
Видео:
Скачать hex и С файлы казино:
– скачать в zip формате
– скачать в tar.gz формате
Код казино на языке С в MPLab X 5.35:
#include <xc.h>
#define _XTAL_FREQ 20000000 //Specify the XTAL crystal FREQ
// Configuration Byte
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3/PGM pin has PGM function; low-voltage programming enabled)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF
void main() //The main function
{
TRISC = 0b10000000; //knopka na RC7
TRISA = 0b00000000; //Minusa na razradi
TRISB = 0b00000000; //cifri
PORTC = 0b10000000; //knopka na RC7
PORTA = 0b00000000; //Minusa na pozicii
PORTB = 0b00000000; //cifri vivod
int m = 0;
int p = 0; //pozicii cifr
int k = 0; //kakaya cifra
int k2 = 0; //kakaya cifra
int k3 = 0; //kakaya cifra
int k4 = 0; //kakaya cifra
while(p==0)
{
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b00001100; //1 na pozicii 4
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=1;
k=1;
__delay_ms(100);
goto label1;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01110110; //2 na pozicii 4
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=1;
k=2;
__delay_ms(100);
goto label1;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01011110; //3 na pozicii 4
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=1;
k=3;
__delay_ms(100);
goto label1;
break;
}
}
PORTCbits.RC7=1;
m = 0;
}
label1:
__delay_ms(100);
PORTCbits.RC7=1;
__delay_ms(100);
while(p==1)
{
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b00001100; //1 na pozicii 4
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=2;
k2=1;
__delay_ms(100);
goto label2;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01110110; //2 na pozicii 4
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=2;
k2=2;
__delay_ms(100);
goto label2;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01011110; //3 na pozicii 4
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=2;
k2=3;
__delay_ms(100);
goto label2;
break;
}
}
PORTCbits.RC7=1;
m = 0;
}
label2:
__delay_ms(100);
PORTCbits.RC7=1;
__delay_ms(100);
while(p==2)
{
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b00001100; //1 na pozicii 4
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=3;
k3=1;
__delay_ms(100);
goto label3;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01110110; //2 na pozicii 4
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=3;
k3=2;
__delay_ms(100);
goto label3;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01011110; //3 na pozicii 4
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=3;
k3=3;
__delay_ms(100);
goto label3;
break;
}
}
PORTCbits.RC7=1;
m = 0;
}
label3:
__delay_ms(100);
PORTCbits.RC7=1;
__delay_ms(100);
while(p==3)
{
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b00001100; //1 na pozicii 4
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=4;
k4=1;
__delay_ms(100);
goto label4;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01110110; //2 na pozicii 4
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=4;
k4=2;
__delay_ms(100);
goto label4;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 20; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01011110; //3 na pozicii 4
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=4;
k4=3;
__delay_ms(100);
goto label4;
break;
}
}
PORTCbits.RC7=1;
m = 0;
}
label4:
__delay_ms(100);
PORTCbits.RC7=1;
__delay_ms(100);
while(p==4)
{
if (k==1 && k2==1 && k3==1 && k4==1)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b00001100; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b00001100;; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b00001100; //1 na pozicii 3
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b00001100; //1 na pozicii 4
__delay_ms(4);
}
if (k==2 && k2==2 && k3==2 && k4==2)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01110110; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01110110; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01110110; //1 na pozicii 3
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01110110; //1 na pozicii 4
__delay_ms(4);
}
if (k==3 && k2==3 && k3==3 && k4==3)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01011110; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01011110; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01011110; //1 na pozicii 3
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01011110; //1 na pozicii 4
__delay_ms(4);
}
}
}
————————————-ГОТОВЫЙ КОД КАЗИНО———————————————
—————————————————
Добавил до 9 на каждом разряде семисегментного индикатора.
Скачать код на С и hex файл можно здесь:
– скачать в zip архиве
– скачать в tar.gz архиве.
break – можно удалить из кода.
Скачать С без breake:
– скачать zip архив.
——————————————-
#include <xc.h>
#define _XTAL_FREQ 20000000 //Specify the XTAL crystal FREQ
// Configuration Byte
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3/PGM pin has PGM function; low-voltage programming enabled)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF
void main() //The main function
{
TRISC = 0b10000000; //knopka na RC7
TRISA = 0b00000000; //Minusa na razradi
TRISB = 0b00000000; //cifri
PORTC = 0b10000000; //knopka na RC7
PORTA = 0b00000000; //Minusa na pozicii
PORTB = 0b00000000; //cifri vivod
int m = 0;
int p = 0; //pozicii cifr
int k = 0; //kakaya cifra
int k2 = 0; //kakaya cifra
int k3 = 0; //kakaya cifra
int k4 = 0; //kakaya cifra
while(p==0)
{
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b00001100; //1 na pozicii 4
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=1;
k=1;
__delay_ms(100);
goto label1;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01110110; //2 na pozicii 4
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=1;
k=2;
__delay_ms(100);
goto label1;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01011110; //3 na pozicii 4
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=1;
k=3;
__delay_ms(100);
goto label1;
break;
}
}
PORTCbits.RC7=1;
m = 0;
}
label1:
__delay_ms(100);
PORTCbits.RC7=1;
__delay_ms(100);
while(p==1)
{
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b00001100; //1 na pozicii 4
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=2;
k2=1;
__delay_ms(100);
goto label2;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01110110; //2 na pozicii 4
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=2;
k2=2;
__delay_ms(100);
goto label2;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01011110; //3 na pozicii 4
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=2;
k2=3;
__delay_ms(100);
goto label2;
break;
}
}
PORTCbits.RC7=1;
m = 0;
}
label2:
__delay_ms(100);
PORTCbits.RC7=1;
__delay_ms(100);
while(p==2)
{
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b00001100; //1 na pozicii 4
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=3;
k3=1;
__delay_ms(100);
goto label3;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01110110; //2 na pozicii 4
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=3;
k3=2;
__delay_ms(100);
goto label3;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01011110; //3 na pozicii 4
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=3;
k3=3;
__delay_ms(100);
goto label3;
break;
}
}
PORTCbits.RC7=1;
m = 0;
}
label3:
__delay_ms(100);
PORTCbits.RC7=1;
__delay_ms(100);
while(p==3)
{
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b00001100; //1 na pozicii 4
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=4;
k4=1;
__delay_ms(100);
goto label4;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01110110; //2 na pozicii 4
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=4;
k4=4;
__delay_ms(100);
goto label4;
break;
}
}
PORTCbits.RC7=1;
m = 0;
for (m = 0; m <= 125; ++m)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01011110; //3 na pozicii 4
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b01000000; //- na pozicii 3
__delay_ms(4);
if (PORTCbits.RC7==0)
{
p=4;
k4=4;
__delay_ms(100);
goto label4;
break;
}
}
PORTCbits.RC7=1;
m = 0;
}
label4:
__delay_ms(100);
PORTCbits.RC7=1;
__delay_ms(100);
while(p==4)
{
if (k==1)
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b00000110; //1 na pozicii 3
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b00000110; //1 na pozicii 4
__delay_ms(4);
}
else
{
PORTA = 0b00000001; //minus na pozicii 1
PORTB = 0b01000000; //- na pozicii 1
__delay_ms(4);
PORTA = 0b00000010; //minus na pozicii 2
PORTB = 0b01000000; //- na pozicii 2
__delay_ms(4);
PORTA = 0b00000100; //minus na pozicii 3
PORTB = 0b00000111; //1 na pozicii 3
__delay_ms(4);
PORTA = 0b00001000; //minus na pozicii 4
PORTB = 0b00000111; //1 na pozicii 4
__delay_ms(4);
}
}
}
Скачать файл hex и c:
– скачать в формате zip
– скачать в формате tar.gz








