Operácie

14-segmentový LED displej: Rozdiel medzi revíziami

Z SensorWiki

d
(9 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 1: Riadok 1:
 
Záverečný projekt predmetu MIPS / LS2024 - '''Lea Lenka Ondrejková'''
 
Záverečný projekt predmetu MIPS / LS2024 - '''Lea Lenka Ondrejková'''
 
  
 
== Zadanie ==
 
== Zadanie ==
  
Pripojenie 14-segmentového LED displeja k vývojovej doske ARDUINO UNO R3, vytvorenie knižnice pre 14-segmentový dislej. Ak sa stlačí tlačidlo tak sa zobrazí abeceda a číslice na 14-segmentovke.
+
Pripojenie 14-segmentového LED displeja k vývojovej doske ARDUINO UNO R3, vytvorenie knižnice pre 14-segmentový dislej. Našim cielom je prepojiť 14-segmentovku a seriálovú linku UART. Keď stlačíme tlačidlo ľubovolného písmena alebo číslice na klávesnici, tak sa zobrazí na segmentovke.
  
 
[[Obrázok:ARDUINO.png|400px|thumb|center|Vývojová doska ARDUINO-UNO-R3.]]
 
[[Obrázok:ARDUINO.png|400px|thumb|center|Vývojová doska ARDUINO-UNO-R3.]]
Riadok 10: Riadok 9:
 
'''Literatúra:'''  
 
'''Literatúra:'''  
 
* [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske ARDUINO UNO R3]
 
* [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske ARDUINO UNO R3]
* [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k ATMEGA328P]
+
* [https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf Dokumentácia k ATMEGA328P]
  
  
Riadok 17: Riadok 16:
 
== Analýza  a opis riešenia ==
 
== Analýza  a opis riešenia ==
  
Opíšte sem čo a ako ste spravili, ak treba, doplňte obrázkami...
+
Po prvé sme si vytvorili knižnicu k 14-segmentovke, museli sme si zadefinovať všetky znaky abecedy a cíšlice ako funkciu zapnutých a vypnutých segmentov. Napríklad pri znaku A vysvietime segmenty: A,B,C,E,F,P,K a ostatné segmenty, ktoré nesvetia musíme vypnúť kvôli tomu že segmentovka pracuje na zápornej logike.
 +
 
 +
Ďalej sme pracovali na programe, ktorý sa bude prepájať s terminálom pomocou AURT-u. Museli sme initializovať UART a našu segmentovku. V programe sme si uľahčili prácu vytvorením matíc, ktorím sme priradili naše vytvorené funkcie z knižnice. Potom sme už využívali len príkaz if na nájdenie znaku a vykovanie vysvetenia segmentov.
 +
 
  
[[Súbor:ledRGB.jpg|400px|thumb|center|RGB LED.]]
+
[[Súbor:Segmentovka14.png|400px|thumb|center|Segmenty a ich zapojenie Kingbright PDA54.]]  
  
Nezabudnite doplniť schému zapojenia!
 
  
[[Súbor:schd.png|400px|thumb|center|Schéma zapojenia LCD displeja.]]
+
'''Zapojenie'''
 +
Segmentovka sa skladá z 18 PINOV, pričom 15 z nich napája segmenty. Piny 11,16 slúžia ako napájanie celej segmentovky. Môžeme napájať každú segmentovku zvlášť, buď cez pin 11 - prvá segmentovka, alebo cez pin 16 - druhá segmentovka. Ak napojíme piny 11 a 16 súčasne, segmentovky sa budú zrkadliť. Každý segment sme museli napojiť na samostatný pin na ARDUINO UNO R3, zadefinovať si tieto piny a potom s nimi pracovať programe. 
 +
 
 +
[[Súbor:circuit.png|400px|thumb|center|Schéma zapojenia 14-Segmentovky.]]
  
  
 
=== Algoritmus a program ===
 
=== Algoritmus a program ===
  
Algoritmus programu je....
+
V programe sme si vytvorili matice, ktorim sme si priradili funkcie vysvetenia znaku. Takže pre písmena sme si vytvorili maticu s veľkosťou 26 znakov, ktorá obsahovala všetky funkcie vysvetenia písmen.
 +
 
 +
  
  
 
<tabs>
 
<tabs>
<tab name="AVR C-code"><source lang="c++" style="background: LightYellow;">
+
<tab name="Segmentovka.c"><source lang="c++" style="background: LightYellow;">
 +
 
 
#include <avr/io.h>
 
#include <avr/io.h>
 +
#include <util/delay.h>
 +
#include "Seg_lib.h"
 +
#include "uart.h"
 +
#include <stdio.h>
 +
 +
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);
 +
 +
#ifndef F_CPU
 +
#define F_CPU 16000000UL
 +
#endif
  
int main(void)
+
int main()  
 
{
 
{
  unsigned int measuredValue;
+
    segment_display_init();
 +
    uart_init(); // Inicializácia UARTU
 +
    stdout = &mystdout; // Nasmerovanie stdout
 +
 
 +
    char ReceivedChar;
  
  while (1)
+
    printf("Starting... You can now type your letter & numbers\r"); // Testovanie komunikácie
  {
 
    /*  relax  */
 
  }
 
  
  return(0);
+
// matica s funkciami písmen
 +
void (*abeceda[26])() = {
 +
    seg_A, seg_B, seg_C, seg_D, seg_E, seg_F, seg_G, seg_H, seg_I, seg_J, seg_K,
 +
seg_L, seg_M, seg_N, seg_O, seg_P, seg_Q, seg_R, seg_S, seg_T, seg_U, seg_V,
 +
seg_W, seg_X, seg_Y, seg_Z,
 +
};
 +
// matica s funkciami čísel
 +
void (*cislice[10])() = {
 +
seg_0, seg_1, seg_2, seg_3, seg_4, seg_5, seg_6, seg_7, seg_8, seg_9, 
 +
};
 +
 +
    while(1)
 +
    {
 +
        ReceivedChar = uart_getc( );   
 +
        if (ReceivedChar >= 'A' && ReceivedChar <= 'Z')
 +
{
 +
            uint8_t index = ReceivedChar - 'A'; //definícia indexu v matici
 +
            abeceda[index]();
 +
        }
 +
if (ReceivedChar >= 'a' && ReceivedChar <= 'z')
 +
{
 +
            uint8_t index = ReceivedChar - 'a'; //definícia indexu v matici
 +
            abeceda[index]();
 +
        }
 +
if (ReceivedChar >= '0' && ReceivedChar <= '9')
 +
{
 +
uint8_t index = ReceivedChar - '0'; //definícia indexu v matici
 +
cislice[index]();
 +
        }
 +
    }
 +
    return 0;
 
}
 
}
  
 
</source></tab>
 
</source></tab>
<tab name="filename.h"><source lang="c++" style="background: LightYellow;">
+
<tab name="seg_lib.c"><source lang="c++" style="background: LightYellow;">
 +
//SEG.LIB.C KNIZNICA PRE 14 SEGMENTOVKU KINGBRIGHT
 +
//ONDREJKOVA LEA LENKA
 +
 
 
#include <avr/io.h>
 
#include <avr/io.h>
 +
#include "Seg_lib.h"
 +
 +
#define SEG_OFF(reg, bit) ((reg) |= (1 << (bit))) //JEDNA
 +
#define SEG_ON(reg, bit) ((reg) &= ~(1 << (bit))) //NULA
 +
 +
#define SEG_1_E_PIN PD1
 +
#define SEG_2_N_PIN PD2
 +
#define SEG_4_M_PIN PD4
 +
#define SEG_5_L_PIN PD5
 +
#define SEG_6_K_PIN PD6
 +
#define SEG_7_D_PIN PD7
 +
#define SEG_9_C_PIN PB1
 +
#define SEG_10_B_PIN PB2
 +
#define SEG_12_A_PIN PB4
 +
#define SEG_13_P_PIN PB5
 +
#define SEG_14_J_PIN PC0
 +
#define SEG_15_H_PIN PC1
 +
#define SEG_17_G_PIN PC2                                           
 +
#define SEG_18_F_PIN PC3
 +
 +
#define SEG_1_E_PORT PORTD
 +
#define SEG_2_N_PORT PORTD
 +
#define SEG_4_M_PORT PORTD
 +
#define SEG_5_L_PORT PORTD
 +
#define SEG_6_K_PORT PORTD
 +
#define SEG_7_D_PORT PORTD
 +
#define SEG_9_C_PORT PORTB
 +
#define SEG_10_B_PORT PORTB
 +
#define SEG_12_A_PORT PORTB
 +
#define SEG_13_P_PORT PORTB
 +
#define SEG_14_J_PORT PORTC
 +
#define SEG_15_H_PORT PORTC
 +
#define SEG_17_G_PORT PORTC
 +
#define SEG_18_F_PORT PORTC
 +
 +
void segment_display_init()
 +
{
 +
    DDRD |= (1 << SEG_1_E_PIN) | (1 << SEG_2_N_PIN) | (1 << SEG_4_M_PIN) | (1 << SEG_5_L_PIN) | (1 << SEG_6_K_PIN) | (1 << SEG_7_D_PIN);
 +
DDRB |= (1 << SEG_9_C_PIN) | (1 << SEG_10_B_PIN) | (1 << SEG_12_A_PIN) | (1 << SEG_13_P_PIN);
 +
DDRC |= (1 << SEG_14_J_PIN) | (1 << SEG_15_H_PIN) | (1 << SEG_17_G_PIN) | (1 << SEG_18_F_PIN);
 +
}
 +
 +
void segment_display_on()
 +
{
 +
SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
SEG_ON(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
SEG_ON(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
SEG_ON(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
SEG_ON(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
}
 +
 +
void segment_display_off()
 +
{
 +
SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
}
 +
 +
void seg_A()
 +
{
 +
SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F                                                                                                                                                   
 +
SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
}
 +
void seg_B()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
}
 +
void seg_C()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
}
 +
 +
void seg_D()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
}
 +
 +
void seg_E()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
}
 +
 +
void seg_F()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
}
 +
 +
void seg_G()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
}
 +
void seg_H()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
}
 +
 +
void seg_I()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
    SEG_ON(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
    SEG_ON(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
}
 +
void seg_J()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
}
 +
 +
void seg_K()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); //A
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
 +
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN); //J
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
 +
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN); //L
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); //D
 +
}
 +
void seg_L()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); 
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN);
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); 
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
 +
void seg_M()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_ON(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_N()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_ON(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
 +
void seg_O()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
 +
void seg_P()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
 +
void seg_Q()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
 +
void seg_R()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
  
void adc_init(void);                                   // A/D converter initialization
+
void seg_S()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);  
 +
}
  
unsigned int adc_read(char a_pin);
+
void seg_T()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_ON(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_ON(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_U()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_V()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_ON(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_W()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_ON(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_ON(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_X()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_ON(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_ON(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_Y()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_ON(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_ON(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_Z()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_ON(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
//CISLICE
 +
void seg_1()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_2()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_3()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_4()
 +
{
 +
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_5()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_6()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_7()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_8()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_9()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); 
 +
}
 +
void seg_0()
 +
{
 +
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN);
 +
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); 
 +
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);   
 +
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
 +
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); 
 +
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);
 +
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
 +
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
 +
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
 +
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); 
 +
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); 
 +
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); 
 +
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); 
 +
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);  
 +
}
 
</source></tab>
 
</source></tab>
</tabs>
+
<tab name="seg_lib.h"><source lang="c++" style="background: LightYellow;">
 +
//SEG.LIB.H KNIZNICA PRE 14 SEGMENTOVKU KINGBRIGHT
 +
//ONDREJKOVA LEA LENKA
 +
 
 +
#ifndef SEGLIB_H_
 +
#define SEGLIB_H_
 +
 
 +
void segment_display_init();
 +
void segment_display_on();
 +
void segment_display_off();
  
Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x ''zdrojaky.zip'':
+
void seg_A();
 +
void seg_B();
 +
void seg_C();
 +
void seg_D();
 +
void seg_E();
 +
void seg_F();
 +
void seg_G();
 +
void seg_H();
 +
void seg_I();
 +
void seg_J();
 +
void seg_K();
 +
void seg_L();
 +
void seg_M();
 +
void seg_N();
 +
void seg_O();
 +
void seg_P();
 +
void seg_Q();
 +
void seg_R();
 +
void seg_S();
 +
void seg_T();
 +
void seg_U();
 +
void seg_V();
 +
void seg_W();
 +
void seg_X();
 +
void seg_Y();
 +
void seg_Z();
  
Zdrojový kód: [[Médiá:projektMenoPriezvisko.zip|zdrojaky.zip]]
+
void seg_0();
 +
void seg_1();
 +
void seg_2();
 +
void seg_3();
 +
void seg_4();
 +
void seg_5();
 +
void seg_6();
 +
void seg_7();
 +
void seg_8();
 +
void seg_9();
  
 +
#endif /* SEGLIB_H_ */
 +
</source></tab>
 +
</tabs>
  
=== Overenie ===
+
Zdrojový kód: [[Médiá:projektLeaLenkaOndrejkova.zip|zdrojaky.zip]]
  
Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia.
+
=== Overenie ===-
Na konci uvádzame fotku záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.
 
  
[[Súbor:fotka.jpg|400px|thumb|center|Aplikácia.]]
+
[[Súbor:OndrejkovaSegmentovka.jpeg|400px|thumb|center|Aplikácia.]]
  
 
'''Video:'''
 
'''Video:'''
<center><youtube>_l02MBu41n0</youtube></center>
+
<center><youtube>UTeH1ky8v9M</youtube></center>
  
 
[[Category:AVR]] [[Category:MIPS]]
 
[[Category:AVR]] [[Category:MIPS]]

Verzia zo dňa a času 18:42, 17. apríl 2024

Záverečný projekt predmetu MIPS / LS2024 - Lea Lenka Ondrejková

Zadanie

Pripojenie 14-segmentového LED displeja k vývojovej doske ARDUINO UNO R3, vytvorenie knižnice pre 14-segmentový dislej. Našim cielom je prepojiť 14-segmentovku a seriálovú linku UART. Keď stlačíme tlačidlo ľubovolného písmena alebo číslice na klávesnici, tak sa zobrazí na segmentovke.

Vývojová doska ARDUINO-UNO-R3.

Literatúra:


Analýza a opis riešenia

Po prvé sme si vytvorili knižnicu k 14-segmentovke, museli sme si zadefinovať všetky znaky abecedy a cíšlice ako funkciu zapnutých a vypnutých segmentov. Napríklad pri znaku A vysvietime segmenty: A,B,C,E,F,P,K a ostatné segmenty, ktoré nesvetia musíme vypnúť kvôli tomu že segmentovka pracuje na zápornej logike.

Ďalej sme pracovali na programe, ktorý sa bude prepájať s terminálom pomocou AURT-u. Museli sme initializovať UART a našu segmentovku. V programe sme si uľahčili prácu vytvorením matíc, ktorím sme priradili naše vytvorené funkcie z knižnice. Potom sme už využívali len príkaz if na nájdenie znaku a vykovanie vysvetenia segmentov.


Segmenty a ich zapojenie Kingbright PDA54.


Zapojenie Segmentovka sa skladá z 18 PINOV, pričom 15 z nich napája segmenty. Piny 11,16 slúžia ako napájanie celej segmentovky. Môžeme napájať každú segmentovku zvlášť, buď cez pin 11 - prvá segmentovka, alebo cez pin 16 - druhá segmentovka. Ak napojíme piny 11 a 16 súčasne, segmentovky sa budú zrkadliť. Každý segment sme museli napojiť na samostatný pin na ARDUINO UNO R3, zadefinovať si tieto piny a potom s nimi pracovať programe.

Schéma zapojenia 14-Segmentovky.


Algoritmus a program

V programe sme si vytvorili matice, ktorim sme si priradili funkcie vysvetenia znaku. Takže pre písmena sme si vytvorili maticu s veľkosťou 26 znakov, ktorá obsahovala všetky funkcie vysvetenia písmen.



#include <avr/io.h>
#include <util/delay.h>
#include "Seg_lib.h"
#include "uart.h"
#include <stdio.h>

FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);

#ifndef F_CPU
#define F_CPU 16000000UL
#endif

int main() 
{
    segment_display_init();
    uart_init(); // Inicializácia UARTU
    stdout = &mystdout; // Nasmerovanie stdout

    char ReceivedChar;

    printf("Starting... You can now type your letter & numbers\r"); // Testovanie komunikácie

	// matica s funkciami písmen
	void (*abeceda[26])() = {
    seg_A, seg_B, seg_C, seg_D, seg_E, seg_F, seg_G, seg_H, seg_I, seg_J, seg_K, 
	seg_L, seg_M, seg_N, seg_O, seg_P, seg_Q, seg_R, seg_S, seg_T, seg_U, seg_V, 
	seg_W, seg_X, seg_Y, seg_Z, 
	}; 
	// matica s funkciami čísel
	void (*cislice[10])() = {
	seg_0, seg_1, seg_2, seg_3, seg_4, seg_5, seg_6, seg_7, seg_8, seg_9,  
	}; 
	
    while(1) 
    {
        ReceivedChar = uart_getc( );    
        if (ReceivedChar >= 'A' && ReceivedChar <= 'Z') 
		{ 
            uint8_t index = ReceivedChar - 'A'; //definícia indexu v matici
            abeceda[index]();
        }
		if (ReceivedChar >= 'a' && ReceivedChar <= 'z') 
		{ 
            uint8_t index = ReceivedChar - 'a'; //definícia indexu v matici
            abeceda[index]();
        }
		if (ReceivedChar >= '0' && ReceivedChar <= '9') 
		{
			uint8_t index = ReceivedChar - '0'; //definícia indexu v matici
			cislice[index]();
        }
    }
    return 0;
}
//SEG.LIB.C KNIZNICA PRE 14 SEGMENTOVKU KINGBRIGHT 
//ONDREJKOVA LEA LENKA

#include <avr/io.h>
#include "Seg_lib.h"

#define SEG_OFF(reg, bit) ((reg) |= (1 << (bit))) //JEDNA	
#define SEG_ON(reg, bit) ((reg) &= ~(1 << (bit))) //NULA

#define SEG_1_E_PIN PD1
#define SEG_2_N_PIN PD2
#define SEG_4_M_PIN PD4
#define SEG_5_L_PIN PD5
#define SEG_6_K_PIN PD6
#define SEG_7_D_PIN PD7
#define SEG_9_C_PIN PB1
#define SEG_10_B_PIN PB2
#define SEG_12_A_PIN PB4
#define SEG_13_P_PIN PB5
#define SEG_14_J_PIN PC0
#define SEG_15_H_PIN PC1
#define SEG_17_G_PIN PC2                                            
#define SEG_18_F_PIN PC3

#define SEG_1_E_PORT PORTD
#define SEG_2_N_PORT PORTD
#define SEG_4_M_PORT PORTD
#define SEG_5_L_PORT PORTD
#define SEG_6_K_PORT PORTD
#define SEG_7_D_PORT PORTD
#define SEG_9_C_PORT PORTB
#define SEG_10_B_PORT PORTB
#define SEG_12_A_PORT PORTB
#define SEG_13_P_PORT PORTB
#define SEG_14_J_PORT PORTC
#define SEG_15_H_PORT PORTC
#define SEG_17_G_PORT PORTC
#define SEG_18_F_PORT PORTC

void segment_display_init() 
{
    DDRD |= (1 << SEG_1_E_PIN) | (1 << SEG_2_N_PIN) | (1 << SEG_4_M_PIN) | (1 << SEG_5_L_PIN) | (1 << SEG_6_K_PIN) | (1 << SEG_7_D_PIN);
	DDRB |= (1 << SEG_9_C_PIN) | (1 << SEG_10_B_PIN) | (1 << SEG_12_A_PIN) | (1 << SEG_13_P_PIN);
	DDRC |= (1 << SEG_14_J_PIN) | (1 << SEG_15_H_PIN) | (1 << SEG_17_G_PIN) | (1 << SEG_18_F_PIN);
}

void segment_display_on() 
{
	SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
	SEG_ON(SEG_2_N_PORT, SEG_2_N_PIN); //N
	SEG_ON(SEG_4_M_PORT, SEG_4_M_PIN); //M
	SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN); //L
	SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
	SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
	SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
	SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); //B
	SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
	SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
	SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN); //J
	SEG_ON(SEG_15_H_PORT, SEG_15_H_PIN); //H
	SEG_ON(SEG_17_G_PORT, SEG_17_G_PIN); //G
	SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
}

void segment_display_off() 
{
	SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); //E
	SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
	SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
	SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
	SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
	SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); //D
	SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
	SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
	SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); //A
	SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
	SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
	SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
	SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
	SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); //F
}

void seg_A()
{
	SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
	SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); //B
	SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
	SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
	SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
	SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F                                                                                                                                                     
	SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G
	SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
	SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
	SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
	SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
	SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
	SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
	SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); //D
} 
void seg_B()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G 
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN); //J
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN); //L
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
}
void seg_C()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G 
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
}

void seg_D()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); //B
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G 
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
}

void seg_E()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G 
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
}

void seg_F()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G 
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); //D
}

void seg_G()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G 
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
}
void seg_H()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); //A
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); //B
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G 
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN); //K
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); //D
}

void seg_I()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN); //E
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); //F
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G 
    SEG_ON(SEG_15_H_PORT, SEG_15_H_PIN); //H
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
    SEG_ON(SEG_4_M_PORT, SEG_4_M_PIN); //M
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
}
void seg_J()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); //A
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN); //B
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN); //C
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); //P
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); //F
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G 
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); //J
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN); //L
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN); //D
}

void seg_K()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); //A
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); //B
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN); //C
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN); //P
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN); //E
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); //F
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); //G 
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); //H
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN); //J
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN); //K
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN); //L
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN); //M
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN); //N
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN); //D
}
void seg_L()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN);  
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN); 
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);  
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN); 
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);    
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN);  
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN); 
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN); 
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN); 
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);   
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);  
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}

void seg_M()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_ON(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_N()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_ON(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}

void seg_O()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}

void seg_P()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}

void seg_Q()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}

void seg_R()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}

void seg_S()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}

void seg_T()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_ON(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_ON(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_U()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_V()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_ON(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_W()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_ON(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_ON(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_X()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_ON(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_ON(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_ON(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_Y()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_ON(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_ON(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_Z()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_ON(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_ON(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}
//CISLICE
void seg_1()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_2()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_OFF(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_3()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_4()
{
    SEG_OFF(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_5()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_6()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_OFF(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_7()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_OFF(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_OFF(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_8()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_9()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_ON(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_OFF(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_ON(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}
void seg_0()
{
    SEG_ON(SEG_12_A_PORT, SEG_12_A_PIN); 
    SEG_ON(SEG_10_B_PORT, SEG_10_B_PIN);  
    SEG_ON(SEG_9_C_PORT, SEG_9_C_PIN);    
    SEG_OFF(SEG_13_P_PORT, SEG_13_P_PIN);  
    SEG_ON(SEG_1_E_PORT, SEG_1_E_PIN);   
    SEG_ON(SEG_18_F_PORT, SEG_18_F_PIN); 
    SEG_OFF(SEG_17_G_PORT, SEG_17_G_PIN);  
    SEG_OFF(SEG_15_H_PORT, SEG_15_H_PIN);  
    SEG_OFF(SEG_14_J_PORT, SEG_14_J_PIN);  
    SEG_OFF(SEG_6_K_PORT, SEG_6_K_PIN);   
    SEG_OFF(SEG_5_L_PORT, SEG_5_L_PIN);  
    SEG_OFF(SEG_4_M_PORT, SEG_4_M_PIN);   
    SEG_OFF(SEG_2_N_PORT, SEG_2_N_PIN);   
    SEG_ON(SEG_7_D_PORT, SEG_7_D_PIN);   
}
//SEG.LIB.H KNIZNICA PRE 14 SEGMENTOVKU KINGBRIGHT 
//ONDREJKOVA LEA LENKA

#ifndef SEGLIB_H_
#define SEGLIB_H_

void segment_display_init();
void segment_display_on();
void segment_display_off();

void seg_A();
void seg_B();
void seg_C();
void seg_D();
void seg_E();
void seg_F();
void seg_G();
void seg_H();
void seg_I();
void seg_J();
void seg_K();
void seg_L();
void seg_M();
void seg_N();
void seg_O();
void seg_P();
void seg_Q();
void seg_R();
void seg_S();
void seg_T();
void seg_U();
void seg_V();
void seg_W();
void seg_X();
void seg_Y();
void seg_Z();

void seg_0();
void seg_1();
void seg_2();
void seg_3();
void seg_4();
void seg_5();
void seg_6();
void seg_7();
void seg_8();
void seg_9();

#endif /* SEGLIB_H_ */

Zdrojový kód: zdrojaky.zip

=== Overenie ===-

Aplikácia.

Video: