begin process at 2012 05 28 02:28:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP / ASP3

 > 

Web 2.0

 > 

CSS

 > 

MICROCONTROLEUR 16F877A


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

MICROCONTROLEUR 16F877A

dimanche 1 mai 2011 à 16:58:11 | MICROCONTROLEUR 16F877A

azzoumm

s'ils vous plait qui peux m'aider pour comprendre ce programme merci d'avance :)petite remarque j'ai pas étudié sur le microcontroleur et mon projet fin d’étude est basé sur le pic 16F877A

#include "16f877A.h"
#include <lcd.c>
#include <stdlib.h>
#use i2c (scl=PIN_C3, sda=PIN_C4)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
#use delay(clock=20M)
#byte PORTA=0x05
#byte TRISA=0x85
#byte PORTB=0x06
#byte TRISB=0x86
#byte PORTC=0x07
#byte TRISC=0x87
#byte PORTD=0x08
#byte TRISD=0x88
#bit RB0=PORTB.0
#bit RB1=PORTB.1
#bit RB2=PORTB.2
#bit RA0=PORTA.0
#bit RA1=PORTA.1
#bit RA2=PORTA.2
#bit RA3=PORTA.3
#bit RC0=PORTC.0
#bit RC1=PORTC.1
#bit RC2=PORTC.2
#bit RC5=PORTC.5
#bit scl=PORTC.3
#bit sda=PORTC.4
char touche=' ';
int nbc=0;
int tabclt[5]="1925";
int tabadm[5]="1425";
char tab='*';
int tabsaisie[4];
int tabsaisie1[4];
char tentative_restante='2';
int k=0,i=0,compteur=0;
int j=0,var;
int address;
int pos;
byte x0,min,jour,annee,x7,x9,heure,mois,x6,x8;
char y0,y1,y2,y3,y4;
byte date[7];
char modif_date[10];
int sec=0;

void clavier()
{
touche=' ';
PORTB=0x10;
if(RB0==1) {touche='1'; while(RB0==1);}
if(RB1==1) {touche='2'; while(RB1==1);}
if(RB2==1) {touche='3'; while(RB2==1);}
PORTB=0x20;
if(RB0==1) {touche='4'; while(RB0==1);}
if(RB1==1) {touche='5'; while(RB1==1);}
if(RB2==1) {touche='6'; while(RB2==1);}
PORTB=0x40;
if(RB0==1) {touche='7'; while(RB0==1);}
if(RB1==1) {touche='8'; while(RB1==1);}
if(RB2==1) {touche='9'; while(RB2==1);}
PORTB=0x80;
if(RB0==1) {touche='*'; while(RB0==1);}
if(RB1==1) {touche='0'; while(RB1==1);}
if(RB2==1) {touche='#'; while(RB2==1);}
}

void modification_date(byte min,byte heure,byte jour,byte mois,byte annee)
{
i2c_start();
i2c_write(0xD0);
i2c_write(0x00);
i2c_write(0x00);
i2c_write(min);
i2c_write(heure);
i2c_write(0x01);
i2c_write(jour);
i2c_write(mois);
i2c_write(annee);
i2c_write(0x80);
i2c_stop();
}
void lecture_date()
{

i2c_start();
i2c_write(0xD0);
i2c_write(0x00);
i2c_start();
i2c_write(0xD1);
for(i=0;i<7;i++)
{
date[i]=i2c_read();

}
i2c_write(0x80);
i2c_stop();


}
void main(void)
{
PORTA=0;
PORTD=0;
PORTC=0;
TRISA=0;
TRISB=0x0F;
TRISC=0x97;
TRISD=0;
debut:
sec=0;
tentative_restante='2';
PORTA=0;
pos=0;
j=0;
RC0=0;
k=0;
compteur=0;
lecture_date();
lcd_init();
lcd_putc("TAPEZ '#'ou'*'");
lcd_putc("\n");

printf(LCD_PUTC,"%x",date[2]);
lcd_putc(":");
printf(LCD_PUTC, "%x",date[1]);
lcd_putc(" ");
printf(LCD_PUTC, "%x",date[4]);
lcd_putc("/");
printf(LCD_PUTC, "%x",date[5]);
lcd_putc("/");
printf(LCD_PUTC, "%x",date[6]);


if(read_eeprom(0)==0xff)
{
for(i=0;i<4;i++) write_eeprom(i,tabclt[i]);
}


while(true)
{

PORTC=0;
delay_ms(100);
clavier();

if(touche=='*')
{
lcd_init();
lcd_putc("CHANGEMENT MP:1\n");
lcd_putc("REGLAGE DATE:2\n");

do
{
clavier();

if((touche=='1')&(touche!=' ')&(touche!='*')&(touche!='#'))
{
lcd_init();
lcd_putc("CHANGEMENT MP:\n");
delay_ms(1000);
change_rmp: lcd_init();
lcd_putc("SVP ANCIEN MP:\n");

do
{
clavier();

if((touche!='#')&(touche!=' ')&(touche!='*'))
{
tabsaisie[k]=touche;
lcd_putc(tab);
k++;
}



}
while(k<4);

k=0;
for(i=0;i<4;i++)
{ var = read_EEPROM (i);
if(tabsaisie[i]!=var)
{
compteur++;
if(compteur==3)
{
goto blo;
}
else
{

lcd_init();
lcd_putc("MP INCORRECT");
delay_ms(1000);
lcd_init();
lcd_putc("RESTE: ");
lcd_putc(tentative_restante);
tentative_restante--;
delay_ms(1000);
goto change_rmp;
}
}

}
compteur=0;
if(i==4)
{
nouveau: lcd_init();
lcd_putc("NOUVEAU MP\n");
do
{
clavier();
if((touche!='#')&(touche!=' ')&(touche!='*'))
{
tabsaisie[k]=touche;
lcd_putc(tab);
k++;
}


}
while(k<4);
k=0;
lcd_init();
lcd_putc("SVP REPETER\n");
do
{
clavier();
if((touche!='#')&(touche!=' ')&(touche!='*'))
{
tabsaisie1[k]=touche;
lcd_putc(tab);
k++;
}


}
while(k<4);
k=0;
for(i=0;i<4;i++)
{
if(tabsaisie[i]!=tabsaisie1[i])
{
lcd_init();
lcd_putc("REESSAYER");
delay_ms(1000);
goto nouveau;
}
}
if(i==4)
{
for(i=0;i<4;i++)
{
write_eeprom(i,tabsaisie[i]);

}
address=0;
lcd_init();
lcd_putc("MP MODIFIE");
delay_ms(2000);
goto debut;
}
}
}


if((touche=='2')&(touche!=' ')&(touche!='*')&(touche!='#'))
{

lcd_init();
lcd_putc("SET HEURE:xx:xx\n");
lcd_putc("SET DATE:xx/xx/xx");

j=11;
i=0;
k=0;
do
{

clavier();
if((touche!=' ')&(touche!='*')&(touche!='#'))
{

if(j==13) j=14;

lcd_gotoxy(j,1);
lcd_putc(touche);
modif_date[pos]=touche;
j++;
pos++;
k++;
}

}
while(k<4);
k=0;
j=10;
do
{

clavier();
if((touche!=' ')&(touche!='*')&(touche!='#'))
{

if(j==12) j=13;
if(j==15) j=16;

lcd_gotoxy(j,0);
lcd_putc(touche);
modif_date[pos]=touche;
pos++;
j++;
k++;
}
}
while(k<6);
x0=(toupper(modif_date[0]));
min=(toupper(modif_date[1]));
heure=(toupper(modif_date[2]));
jour=(toupper(modif_date[3]));
mois=(toupper(modif_date[4]));
annee=(toupper(modif_date[5]));
x6=(toupper(modif_date[6]));
x7=(toupper(modif_date[7]));
x8=(toupper(modif_date[8]));
x9=(toupper(modif_date[9]));
x0=x0-'0';
min=min-'0';
heure=heure-'0';
jour=jour-'0';
mois=mois-'0';
annee=annee-'0';
x6=x6-'0';
x7=x7-'0';
x8=x8-'0';
x9=x9-'0';
y0=x0*16+min;

y1=heure*16+jour;
y2=mois*16+annee;
y3=x6*16+x7;
y4=x8*16+x9;
modification_date(y1,y0,y2,y3,y4);
i=0;
j=13;
goto debut;
}

}
while(true);


}
if(touche=='#')
{
i=0;compteur=0;
saisie: sec=0;
lcd_init();
lcd_putc("ENTRER MP:\n");

do
{
clavier();

if((touche!=' ')&(touche!='#')&(touche!='*'))
{
tabsaisie[k]=touche;

lcd_putc(tab);
k++;

}
if (sec==5000){goto debut;}
sec++;
delay_ms(50);
}
while(k<4);

k=0;

for(i=0;i<4;i++)
{
var = read_EEPROM (i);

if(tabsaisie[i]!=var)
{ compteur++;
goto ttabadm;

}
}
ttabadm: for(j=0;j<4;j++)
{
if(tabsaisie[j]!=tabadm[j])
{
goto LED;
}
}
LED:
if((i==4))
{

lcd_init();
lcd_putc("ACCES AUTORISE");
delay_ms(200);

lecture_date();
printf("client %d Acces a: ",nbc);
nbc++;
printf("%x:%x ",date[2],date[1]);
printf("%x/%x/%x\n\r",date[4],date[5],date[6]);
RA0=1;
RA1=1;
delay_ms(2000);
goto debut;
}
if((j==4))
{

lcd_init();
lcd_putc("ACCES AUTORISE");
delay_ms(200);
lecture_date();
printf("adminitrateur a: ");
printf("%x:%x ",date[2],date[1]);
printf("%x/%x/%x\n\r",date[4],date[5],date[6]);
PORTC=0;
RA0=1;
RA1=1;
RA0=1;
RA1=1;

delay_ms(2000);
goto debut;
}
else if(compteur==3)
{


blo: lcd_init();
lcd_putc("DSL BLOQUAGE");
RA2=1;
RA3=1;
delay_ms(5000);
goto debut;
}
else
{
RC0=0;

lcd_init();
lcd_putc("MP INCORRECT");
delay_ms(2000);
lcd_init();
lcd_putc("RESTE: ");
lcd_putc(tentative_restante);
tentative_restante--;
RA2=1;
delay_ms(2000);
sec=0;
goto saisie;

}
}

}
}


Cette discussion est classée dans : date, touche, lcd, putc, if


Répondre à ce message

Sujets en rapport avec ce message

ASP Saisie type Excel de nouveaux enregistrements [ par les2as ] Serveur IISBase de données ACCESS, SQL ServeurTable Traitement centralisant les traitements (date, type, commentaires, dose) effectués sur une culture asp en php [ par lunixman ] bonjourvoici un code en asp :"ok" THEN   cd = Request.querystring("cd")   cd_date = day(date)&month(date)&year(date)   cd_controle = ((cd_date+10)*78) insertion de la date dans un champs texte ds une page jsp [ par reseau210 ] Salut tout le monde ,je travaille sur une page jsp et je veux inserer la date système dans un champs texte en cliquant sur un bouton, comment faire? Récupérer le Format d'une date pour un pays [ par sspizer ] Bonjour, J'aimerais récupérer le format de la date de type "dd/MM/yyyy" en fonction du pays et ou de la machine. J'arrive à avoir le format actuelle d upload une image d'un répertoire [ par rusar ] Bonjour à tous, je vous écris car j'ai rencontré un pb pour charger une image de mon répetoire ou j'ai stocké toutes mes images. Lorsque je veux sélec accessdatasource insert qui ne fonctionne pas [ par vandedan ] Bonjour,j'ai deux petits soucis avec un accessdatasource.insert.Sur une page aspx, j'ai un dropdownlist (populate par le contenu d'un champ "inspecteu mettre la date du jour dans un label [ par atino ] bonjour à tous,j'ai créé une page aspx ou il y a un label ,ce que je voudrais c'est quand je clique sur le lien qui m'ammene à cette page ,quand la pa WSH WMI et plein d'ordinateurs ... [ par Lexounet ] salut à tous !Voila un bon moment que je n avais pas poster de message !voila mon probleme : j'ai une liste d'ordinateur WINDOWS dans un fichier excel date time picker [ par varchar ] salut!svp je veux ajouter une date time picker à un site  web mais je ne sais pas comment faire moi je travail avec asp.net Mise à jour avec sqldatasource [ par TheMiagiste ] Bonjour, je voudrais donner la main a l'utilisateur pour sélectionner les champs à afficher à l'aide d'un checkBox,pour le moment ca marche en utilsan


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,513 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales