Projet

Général

Profil

« Précédent | Suivant » 

Révision 585

Ajouté par jgsoleilla il y a presque 4 ans

SP4b3 : Modifications code TP12 + finalisation code clavier/afficheur.

Voir les différences:

SP4b1.c
#include "sfr32c87.h"
void main(void){
char t;
unsigned char touche;
pu31 =1;
pd10 = 0x0F;
void init_keyboard(void);
void tpo_50ms(void);
char clavier(void);
void main(void){
char touche = 0;
init_keyboard();
while(1){
p10 = 0x0E;
t = p10;
if (t == 0xBE){
touche = '1';
if (p10 != 0xf0 ){
while(1){
touche = clavier();
}
}
if (t == 0xDE){
touche = '2';
}
}
}
char clavier(void){
unsigned char touche;
unsigned char t;
if (t == 0x7E){
touche = '3';
}
p10 = 0x0D;
t = p10;
if (t == 0xBD){
touche = '4';
}
p10 = 0x0E;
t = p10;
if (t == 0xBE){
tpo_50ms();
touche = '1';
}
if (t == 0xDE){
tpo_50ms();
touche = '2';
}
if (t == 0xDD){
touche = '5';
}
if (t == 0x7E){
tpo_50ms();
touche = '3';
}
if (t == 0x7D){
touche = '6';
}
p10 = 0x0D;
t = p10;
if (t == 0xBD){
tpo_50ms();
touche = '4';
}
if (t == 0xDD){
tpo_50ms();
touche = '5';
}
p10 = 0x0B;
t = p10;
if (t == 0xEB){
touche = '7';
}
if (t == 0x7D){
tpo_50ms();
touche = '6';
}
if (t == 0xDB){
touche = '8';
}
p10 = 0x0B;
t = p10;
if (t == 0xEB){
tpo_50ms();
touche = '7';
}
if (t == 0x7B){
touche = '9';
}
if (t == 0xDB){
tpo_50ms();
touche = '8';
}
p10 = 0x07;
t = p10;
if (t == 0xE7){
touche = '*';
}
if (t == 0x7B){
tpo_50ms();
touche = '9';
}
p10 = 0x07;
t = p10;
if (t == 0xE7){
tpo_50ms();
touche = '*';
}
if (t == 0xD7){
touche = '0';
}
if (t == 0x77){
touche = '#';
}
if (t == 0xD7){
tpo_50ms();
touche = '0';
}
if (t == 0x77){
tpo_50ms();
touche = '#';
}
return touche;
}
/*
void init_keyboard(void);
void tpo_50ms(void);
unsigned char touche = 0;
void main(void){
init_keyboard();
while(1){
if ((p10 & 0xf0)!= 0xf0 ){
touche = p10;
tpo_50ms();
}
}
}
void init_keyboard(void){
pd10 = 0x0F ;p10=0 ;pu31 = 1;
}
void tpo_50ms(void){
tcspr = 0x8A;
ta0mr = 0x82;
......
ta0s = 1;
ta0os = 1;
ta0ic = 0x00;
while(ir_ta0ic != 1);
while(ir_ta0ic != 1){
ta0s = 0;
}
}
*/
void init_keyboard(void){
p10 = 0;
pu31 = 1;
pd10 = 0x0F;
}

Formats disponibles : Unified diff