Documente Academic
Documente Profesional
Documente Cultură
Prapugicu Alex Task3 6 PDF
Prapugicu Alex Task3 6 PDF
#include <hidef.h>
#include “mc9s12dg256.h”
uint8_t lookUpTable[16] =
{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79
,0x71};//look-up table cu valorile in hexa ce trebuie afisate pe display
uint8_t i;//index pentru tabel
uint8_t mask = 0b00001111;
for(;;)
{
// Varianta in care valoarea primita de la switch-uri este folosita ca index pentru
selectarea valorii hexazecimale pentru 7segment din look-up table-ul declarat mai
sus.
i = PTH & mask;//ne asiguram ca folosim doar cele mai din dreapta 4
switch-uri, facand SI logic cu o masca.
PORTB = lookUpTable[i];
/*
Varianta cu switch si case-uri
*/
switch(i)
{
case 0x00: PORTB = 0x3F;break; // Afiseaza cifra 0 pe display ..
case 0x01: PORTB = 0x06;break;
case 0x02: PORTB = 0x5B;break;
case 0x03: PORTB = 0x4F;break;
case 0x04: PORTB = 0x66;break;
case 0x05: PORTB = 0x6D;break;
case 0x06: PORTB = 0x7D;break;
case 0x07: PORTB = 0x07;break;
case 0x08: PORTB = 0x7F;break;
case 0x09: PORTB = 0x6F;break;
case 0x0A: PORTB = 0x77;break;
case 0x0B: PORTB = 0x7C;break;
case 0x0C: PORTB = 0x39;break;
case 0x0D: PORTB = 0x5E;break;
case 0x0E: PORTB = 0x79;break;
case 0x0F: PORTB = 0x71;break; // .. Afiseaza litera F pe display
}
MSDelay(500);
}
}
void MSDelay(unsigned int itime)
{
unsigned int i; unsigned int j;
for(i=0;i<itime;i++)
for(j=0;j<4000;j++); //1 msec. tested using Scope
}