// Aufgabe 3 Schrittmotor mit Halbschritten -
Verzögerungszeit an AD-Wandler einlesen
#include <reg517.h>
#include <stdio.h>
void wait1ms(int anzms);
int main ()
{
float wert1,wert2,wert3;
ADEX = 0; // Interner Start
ADM = 0; //
Einmalige Wandlung
while (1)
{
ADCON1 = 0; // Kanal 0
DAPR
= 0; //
interne Referenz:0..5V; Start
while (BSY);
wert1=ADDAT*5.0/255;
ADCON1
= 1; // Kanal 0
DAPR = 0; // interne Referenz:0..5V; Start
while (BSY);
wert2=ADDAT*5.0/255;
ADCON1
= 2; // Kanal 0
DAPR
= 0; //
interne Referenz:0..5V; Start
while (BSY);
wert3=ADDAT*5.0/255;
printf ("\nKanal 0 : %f Kanal 1 : %f
Kanal 2 : %f",wert1,wert2,wert3);
wait1ms(1000);
}
}
void wait1ms (int anzms)
{
int b,k;
for(k=0;k<anzms;k++)
for(b=0;b<480;b++);
}
******************************************************************************************************
//Aufgabe 6 (Temperatursensor)
#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++);
}
*************************************************************************************************
// Aufgabe 1 Blatt2
#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=2;
// Kanal 2
while (1)
{
DAPR=0x0; //
*** Starte Wandlungsvorgang, Lupe aus ***
while (BSY); //
Warte, bis Wandlung abgeschlossen ist.
fSpannung=ADDAT/255.0*5.0;
printf ("\nKanal 2 : %.2f V ",fSpannung);
if (fSpannung<=1.0)
{
printf
("Grenzwert unterschritten !");
}
if (fSpannung>=2.0)
{
printf
("Grenzwert ueberschritten !");
}
wait1ms(500);
}
}
void wait1ms (int anzms)
{
int i,k;
for(k=0;k<anzms;k++)
for(i=0;i<480;i++);
}
*************************************************************************************************
// Aufgabe 2 Blatt 2
#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
while (1)
{
ADCON1=2; // Kanal 2
DAPR=0x0; // *** Starte
Wandlungsvorgang, Lupe aus ***
while (BSY); //
Warte, bis Wandlung abgeschlossen ist.
fSpannung=ADDAT/255.0*5.0;
printf
("\nK2 : %.2f V
",fSpannung);
if
(fSpannung<=1.0)
{
printf ("< 1.0 V ! ");
}
if (fSpannung>=2.0)
{
printf ("> 2.0 V ! ");
}
ADCON1=5; // Kanal 5
DAPR=0x0; // *** Starte
Wandlungsvorgang, Lupe aus ***
while (BSY); // Warte, bis Wandlung abgeschlossen
ist.
fSpannung=ADDAT/255.0*5.0;
printf
("\nK5 : %.2f V
",fSpannung);
if
(fSpannung<=2.5)
{
printf
("< 2.5 V !
");
}
if (fSpannung>=3.5)
{
printf
("> 3.5 V !
");
}
ADCON1=7; //
Kanal 7
DAPR=0x0; // *** Starte
Wandlungsvorgang, Lupe aus ***
while (BSY); // Warte, bis Wandlung abgeschlossen
ist.
fSpannung=ADDAT/255.0*5.0;
printf ("\nK7 : %.2f V ",fSpannung);
if (fSpannung<=0.75)
{
printf
("< 0.75 V !
");
}
if
(fSpannung>=1.25)
{
printf
("> 1.25 V !
");
}
wait1ms(500);
}
}
void wait1ms (int anzms)
{
int i,k;
for(k=0;k<anzms;k++)
for(i=0;i<480;i++);
}