// Wetterstation1 100er und 10
Stellen hoch zählen, Temp
#include <reg517.h>
#include <stdio.h>
void wait1ms(int anzms);
char xdata at 0xFF60
PPI1_A; // initiliesieren
8255 N15
char xdata at 0xFF61
PPI1_B;
char xdata at 0xFF62
PPI1_C;
char xdata at 0xFF63
PPI1_STW;
char xdata at 0xFF80
PPI2_A; // initiliesieren
8255 N16
char xdata at 0xFF81
PPI2_B;
char xdata at 0xFF82
PPI2_C;
char xdata at 0xFF83
PPI2_STW;
char xdata at 0xFFA0
PPI3_A; // initiliesieren
8255 N17
char xdata at 0xFFA1
PPI3_B;
char xdata at 0xFFA2
PPI3_C;
char xdata at 0xFFA3
PPI3_STW;
int main ()
{
int i;
PPI1_STW=0x80; //mit PPI N15 alle Ports Ausgabe
while(1)
{
for (i=0;i<100;i++)
{
PPI1_B=(i/10)*16+(i%10); Ausgabe Hunderter, Zehner Temp
wait1ms(500);
}
}
}
void wait1ms (int anzms)
{
int i,k;
for(k=0;k<anzms;k++)
for(i=0;i<480;i++);
}
// Wetterstation2
100er, 10er und 1er Stellen hoch zählen, Temp
#include <reg517.h>
#include <stdio.h>
void wait1ms(int anzms);
char xdata at 0xFF60
PPI1_A; // initiliesieren
8255 N15
char xdata at 0xFF61
PPI1_B;
char xdata at 0xFF62
PPI1_C;
char xdata at 0xFF63
PPI1_STW;
char xdata at 0xFF80
PPI2_A; // initiliesieren
8255 N16
char xdata at 0xFF81
PPI2_B;
char xdata at 0xFF82
PPI2_C;
char xdata at 0xFF83
PPI2_STW;
char xdata at 0xFFA0
PPI3_A; // initiliesieren
8255 N17
char xdata at 0xFFA1
PPI3_B;
char xdata at 0xFFA2
PPI3_C;
char xdata at 0xFFA3
PPI3_STW;
int main ()
{
int i,tausender,hunderter,zehner,einer;
PPI1_STW=0x80; //mit PPI N15 alle Ports Ausgabe
Temperatur
while(1)
{
for (i=0;i<1000;i++)
{
hunderter=i/100;
zehner=(i-hunderter*100)/10;
einer=(i-(hunderter*100+zehner*10));
PPI1_B=hunderter*16+zehner; // Ausgabe Hunderter, Zehner Temp
PPI1_C=einer; //
Ausgabe, Einer Temp
wait1ms(10);
}
}
}
void wait1ms (int anzms)
{
int i,k;
for(k=0;k<anzms;k++)
for(i=0;i<480;i++);
}
// Wetterstation3
// 1000er, 100er, 10er und 1er Stellen hoch zählen, Temp, Luftdruck
#include <reg517.h>
#include <stdio.h>
void wait1ms(int anzms);
char xdata at 0xFF60
PPI1_A; // initiliesieren
8255 N15
char xdata at 0xFF61
PPI1_B;
char xdata at 0xFF62
PPI1_C;
char xdata at 0xFF63
PPI1_STW;
char xdata at 0xFF80
PPI2_A; // initiliesieren
8255 N16
char xdata at 0xFF81
PPI2_B;
char xdata at 0xFF82
PPI2_C;
char xdata at 0xFF83
PPI2_STW;
char xdata at 0xFFA0
PPI3_A; // initiliesieren
8255 N17
char xdata at 0xFFA1
PPI3_B;
char xdata at 0xFFA2
PPI3_C;
char xdata at 0xFFA3 PPI3_STW;
int main ()
{
int i,tausender,hunderter,zehner,einer;
PPI1_STW=0x80; //mit PPI N15 alle Ports Ausgabe
Temperatur
PPI3_STW=0x80; //mit PPI N17 alle Ports Ausgabe
Luftdruck
while(1)
{
for (i=0;i<10000;i++)
{
tausender=i/1000;
hunderter=(i-tausender*1000)/100;
zehner=(i-(tausender*1000+hunderter*100))/10;
einer=(i-(tausender*1000+hunderter*100+zehner*10));
PPI3_A=tausender*16+hunderter;
// Ausgabe Tausender,Hunderter, Luftdruck
PPI3_C=zehner*16+einer; // Ausgabe Zehner, Einer Luftdruck
PPI1_B=hunderter*16+zehner;
// Ausgabe Hunderter, Zehner Temp
PPI1_C=einer; // Ausgabe, Einer Temp
wait1ms(10);
}
}
}
void wait1ms (int anzms)
{
int i,k;
for(k=0;k<anzms;k++)
for(i=0;i<480;i++);
}
***************************************************************************
// Wetterstation4
// 1000er, 100er, 10er und 1er Stellen hoch zählen, Temp, Luftdruck
// und Windrad
#include <reg517.h>
#include <stdio.h>
void wait1ms(int anzms);
void wind();
char xdata at 0xFF60
PPI1_A; // initiliesieren
8255 N15
char xdata at 0xFF61
PPI1_B;
char xdata at 0xFF62
PPI1_C;
char xdata at 0xFF63
PPI1_STW;
char xdata at 0xFF80
PPI2_A; // initiliesieren
8255 N16
char xdata at 0xFF81
PPI2_B;
char xdata at 0xFF82
PPI2_C;
char xdata at 0xFF83
PPI2_STW;
char xdata at 0xFFA0
PPI3_A; // initiliesieren
8255 N17
char xdata at 0xFFA1
PPI3_B;
char xdata at 0xFFA2
PPI3_C;
char xdata at 0xFFA3
PPI3_STW;
int main ()
{
int i,tausender,hunderter,zehner,einer;
PPI1_STW=0x80; //mit PPI N15 alle Ports Ausgabe
Temperatur
PPI3_STW=0x80; //mit PPI N17 alle Ports Ausgabe
Luftdruck
while(1)
{
for (i=0;i<10000;i++)
{
tausender=i/1000;
hunderter=(i-tausender*1000)/100;
zehner=(i-(tausender*1000+hunderter*100))/10;
einer=(i-(tausender*1000+hunderter*100+zehner*10));
PPI3_A=tausender*16+hunderter;
; // Ausgabe Tausender,Hunderter, Luftdruck
PPI3_C=zehner*16+einer; // Ausgabe
Zehner, Einer Luftdruck PPI1_B=hunderter*16+zehner; // Ausgabe
Hunderter, Zehner Temp
PPI1_C=einer; // Ausgabe, Einer Temp
wind();
wait1ms(50); //
Funktionsaufruf Ansteuerung
Windrad
}
}
}
void wait1ms (int anzms)
{
int i,k;
for(k=0;k<anzms;k++)
for(i=0;i<480;i++);
}
void wind() //Funktion
Ansteuerung Windrad
// Achtung umgekehrte Logik,
Null = Ein und Eins ist Aus
{
PPI3_B=0x7F; //PB_7 Ein, 0111 1111
wait1ms(50);
PPI3_B=0xBF; //PB_6 Ein, 1011 1111
wait1ms(50);
PPI3_B=0xDF; //PB_5 Ein, 1101 1111
wait1ms(50);
PPI3_B=0xEF; //PB_4 Ein, 1110 1111
wait1ms(50);
PPI3_B=0xF7; //PB_3 Ein, 1111 0111
wait1ms(50);
PPI3_B=0xFB; //PB_2 Ein, 1111 1011
wait1ms(50);
PPI3_B=0xFD; //PB_1 Ein, 1111 1101
wait1ms(50);
PPI3_B=0xFE; //PB_0 Ein, 1111 1110
wait1ms(50);
}