yourhighness
Lt. Junior Grade
- Registriert
- Feb. 2006
- Beiträge
- 297
hallo!
ich stehe gerade vor einen blöden problem. also auf P0 hängt eine 7-segment-anzeigen und gesteuert wird das ganze über P3 mittels den 8 schaltern, die betätigt werden können.
das ganze soll so funktionieren: binärcode der zahlen mit den schaltern bilden und die zahl soll dann ausgegeben werden (auf der 7-segment-anzeige). zbsp: letzte und vorletzte schalter gekippt (0000 0011) für die zahl 3 usw...
die abbruchbedingung is das kippen des erstesn schalters (1000 0000)
kann jemand einen fehler entdecken? es funktioniert nämlich nicht, also beim umlegen eines schalters passiert nichts...
bitte helft mir!
danke & grüße!
ich stehe gerade vor einen blöden problem. also auf P0 hängt eine 7-segment-anzeigen und gesteuert wird das ganze über P3 mittels den 8 schaltern, die betätigt werden können.
das ganze soll so funktionieren: binärcode der zahlen mit den schaltern bilden und die zahl soll dann ausgegeben werden (auf der 7-segment-anzeige). zbsp: letzte und vorletzte schalter gekippt (0000 0011) für die zahl 3 usw...
die abbruchbedingung is das kippen des erstesn schalters (1000 0000)
kann jemand einen fehler entdecken? es funktioniert nämlich nicht, also beim umlegen eines schalters passiert nichts...
bitte helft mir!
PHP:
#include <REG51F.H>
#define OFF 0x00
#define ON 0xFF
int a,x,dummy,i,d=10000,b=0;
unsigned char count;
void delay(int k); /* Prototyp der Unterprogramms delay */
void init(void);
/*******************************************************************************************/
void main(void)
{
init();
i=0;
do
{
switch(P3) {
case 0x00:P0=~0x3F;break;
case 0x01:P0=~0x06;break;
case 0x02:P0=~0x5B;break;
case 0x03:P0=~0x4F;break;
case 0x04:P0=~0x66;break;
case 0x05:P0=~0x6D;break;
case 0x06:P0=~0x7D;break;
case 0x07:P0=~0x70;break;
case 0x08:P0=~0x7F;break;
case 0x09:P0=~0x6F;break;
default: P0=~0x3F;break;
}
delay(1000);
}
while(((P3&0x80)==0x80)); /* Programm - Ende */
EA = 0; // Intr aus, stilles warten
while(1); // zum Auffangen
}
/*******************************************************************************************/
void delay(int k)
{
int j,x;
for(j=0;j<k;j++)
{
for(x=0;x<20;x++)
dummy++;
}
}
void init(void)
{
P1 = 0x00;
count = 0;
P2 = OFF;
// P3 = 0x00;
}
danke & grüße!