// Aufgabe 3 Blatt 2
#include
<reg517.h>
#include <stdio.h>
void wait1ms(int anzms);
int main ()
{
float fTemperaturSoll,fTemperaturIst;
int i;
P5=0x00;
ADEX=0;
// Interner Start
ADM=0;
// Einmalige Wandlung
while (1)
{
//Einlesen der Führungsgröße (Sollwert w)
ADCON1=1; //
Kanal 1
DAPR=0x0; //
*** Starte Wandlungsvorgang, Lupe aus ***
while(BSY); // Warte, bis Wandlung
abgeschlossen ist.
fTemperaturSoll=ADDAT/255.0*50.0;
//Einlesen der Regelgröße
(Istwert x)
ADCON1=0; // Kanal 0
DAPR=0x0; // *** Starte Wandlungsvorgang,
Lupe aus ***
while (BSY); // Warte, bis Wandlung abgeschlossen ist.
fTemperaturIst=ADDAT/255.0*50.0;
if (fTemperaturIst<=fTemperaturSoll)
{
printf
("\nSollwert : %.2f °C Istwert
: %.2f °C Heizung an !",fTemperaturSoll,fTemperaturIst);
P50=1;
}
if (fTemperaturIst>fTemperaturSoll)
{
printf ("\nSollwert : %.2f °C Istwert
: %.2f °C Heizung aus !%i",fTemperaturSoll,fTemperaturIst);
P50=0;
}
wait1ms(250);
}
}
void wait1ms (int anzms)
{
int i,k;
for(k=0;k<anzms;k++)
for(i=0;i<480;i++);
}
*************************************************************************************************
// Aufgabe 4 Blatt 2
#include <reg517.h>
#include <stdio.h>
void wait1ms(int anzms);
int main ()
{
float fTemperaturSoll,fTemperaturIst;
int i;
P5=0x00;
ADEX=0; //
Interner Start
ADM=0; // Einmalige Wandlung
while (1)
{
//Einlesen der Führungsgröße (Sollwert w)
ADCON1=1; //
Kanal 1
DAPR=0x0; //
*** Starte Wandlungsvorgang, Lupe aus ***
while(BSY); // Warte, bis Wandlung
abgeschlossen ist.
fTemperaturSoll=ADDAT/255.0*50.0;
//Einlesen
der Regelgröße (Istwert x)
ADCON1=0; // Kanal 0
DAPR=0x0; //
*** Starte Wandlungsvorgang, Lupe aus ***
while (BSY); // Warte, bis Wandlung abgeschlossen ist.
fTemperaturIst=ADDAT/255.0*50.0;
if
(fTemperaturIst<=fTemperaturSoll-0.25)
{
printf
("\nSollwert : %.2f °C Istwert
: %.2f °C Heizung an !",fTemperaturSoll,fTemperaturIst);
P50=1;
}
if (fTemperaturIst>fTemperaturSoll+0.25)
{
printf
("\nSollwert : %.2f °C Istwert
: %.2f °C Heizung aus !",fTemperaturSoll,fTemperaturIst);
P50=0;
}
wait1ms(250);
}
}
void wait1ms (int anzms)
{
int i,k;
for(k=0;k<anzms;k++)
for(i=0;i<480;i++);
}
// Aufgabe 6 Termometer 0°
- 100°
#include
<reg517.h>
#include <stdio.h>
void wait1ms(int anzms);
int main ()
{
float fSpannung,fTemperatur;
int i;
ADEX=0; // Interner Start
ADM=0;
// Einmalige Wandlung
ADCON1=0;
// Kanal 0
while (1)
{
DAPR=0xC8; // Bereich 373 K - 273 K ~ 3730mV - 2730mV
// Oberer Grenzwert : 3,7500 V ~
1100 = C
// Unterer Grenzwert : 2,500 V ~
1000 = 8
// *** Starte
Wandlungsvorgang ***
while (BSY); // Warte, bis Wandlung abgeschlossen ist.
fSpannung =
(ADDAT * 1.2500/255) + 2.5000;
fTemperatur=(fSpannung-2.73)*100;
printf("\rTemperatur :
%f ",fTemperatur);
wait1ms(1000);
}
}
void wait1ms (int anzms)
{
int i,k;
for(k=0;k<anzms;k++)
for(i=0;i<480;i++);
}