// BCD Einlesen 1
#include
<reg517.h>
#include <stdio.h>
void wait1ms(int anzms);
// Porterweiterung initialisieren
char xdata at 0xFF60
PPI1_A;
char xdata at 0xFF61
PPI1_B;
char xdata at 0xFF62
PPI1_C;
char xdata at 0xFF63
PPI1_STW;
char xdata at 0xFF80
PPI2_A;
char xdata at 0xFF81
PPI2_B;
char xdata at 0xFF82
PPI2_C;
char xdata at 0xFF83
PPI2_STW;
char xdata at 0xFFA0
PPI3_A;
char xdata at 0xFFA1
PPI3_B;
char xdata at 0xFFA2
PPI3_C;
char xdata at 0xFFA3
PPI3_STW;
int main ()
{
int i,hunderter,zehner,einer,zahl,h,z,e;
PPI1_STW=0x80; //mit PPI N15 alle Ports Ausgabe
Temperatur
PPI2_STW=0x80; //mit PPI N16 alle Ports Ausgabe
Regenmenge
PPI3_STW=0x80; //mit PPI N17 alle Ports Ausgabe
Luftdruck
while(1)
{
hunderter = (~P1)&0x0F; // BCD-Schalter
einlesen
zehner = ((~P5)&0xF0)/16; // BCD-Schalter einlesen
einer = (~P5)&0x0F; // BCD-Schalter
einlesen
zahl = hunderter*100+zehner*10+einer;
// Zahl ermitteln
zahl = zahl/2; // die halbe Zahl für die h
= zahl/100; //
Ausgabe vorbereiten
z = (zahl-(h*100))/10;
e = (zahl-(h*100+z*10));
PPI1_A = h*16+z; //Zahl ausgeben, hunderter, zehner
PPI2_A = e*16; //Zahl ausgeben, einer
}
}
void wait1ms (int anzms)
{
int i,k;
for(k=0;k<anzms;k++)
for(i=0;i<480;i++);
}