Erweitertes
Ampelprogramm (mit zweiter Fußgängerampel)
/*Prototyp 1ms
*/
#include
<stdio.h>
#include
<reg517.h>
void
wait1ms(unsigned int time); //Prototyp Wartezeit
void main() //Anfang Hauptprogramm
{
while(1)
{
P4=0xA4; //Alle Ampeln rot
P5=0x02; //Fussgänger
2 rot
wait1ms(5000);
P5=0x01; //Fussgänger
2 grün
wait1ms(2000);
P4=0xB4; //Ampel_1 rot/gelb
wait1ms(1000);
P4=0x8C; //Ampel_1 grün
wait1ms(5000);
P5=0x02; //Fussgänger
2 rot
wait1ms(1000);
P4=0x94; //Ampel_1 gelb
wait1ms(1500);
P4=0xA4; //Alle Ampeln rot
wait1ms(3000);
P4=0x64; //Fussgänger
grün
wait1ms(2000);
P4=0x66; //Fussgänger
grün Ampel_2 rot/gelb
wait1ms(1000);
P4=0x61; //Fussgänger
grün Ampel_2 grün
wait1ms(4000);
P4=0xA1; //Fussgänger rot Ampel_2 grün
wait1ms(1000);
P4=0xA2; //Fussgänger rot Ampel_2 gelb
wait1ms(1500);
}
}
void
wait1ms(unsigned int time) //Funktion Wartezeit
{
int k,i;
for(k=0;k<time;k++)
//Schleife Anzahl ms
{
for(i=0;i<480;i++); //Schleife
läuft 1ms
}
}
Portabfrage
(ist Port auf “1” oder auf “0”
/* Portabfrage P4.0,
*/
#include
<stdio.h>
#include
<reg517.h>
void
wait1ms(unsigned int time); //Prototyp Wartezeit
void main() //Anfang Hauptprogramm
{
while(1)
{
if(P40==0)
{
printf("\n p40 ist gedrueckt");
}
else
{
printf("\n p40 ist nicht gedrueckt");
}
wait1ms(1000);
}
}
void
wait1ms(unsigned int time) //Funktion Wartezeit
{
int k,i;
for(k=0;k<time;k++)
//Schleife Anzahl ms
{
for(i=0;i<480;i++); //Schleife
läuft 1ms
}
}