close

Anmelden

Neues Passwort anfordern?

Anmeldung mit OpenID

- SEITE 1 - ***********************************************************

EinbettenHerunterladen
- SEITE 1 -
***************************************************************************
***************************************************************************
***************************************************************************
****
****
****
PROJEKTARBEIT:
LOGDAC
****
****
****
***************************************************************************
***************************************************************************
***************************************************************************
BY
O. LAMPMANN
- SEITE 2 -
I N H A L T S V E R Z E I C H N I S:
1.
Einführung
3
2.
Das R- 2R Netzwerk
4
3.
Der AD7111 von ANALOG DEVICES
5
4.
Die Entwicklung der DA- Karte
6
5.
5.1
Der Mikrokontroller PIC16F84
Der Mikrokontroller PIC16F84
7
8
6.
Abgleich und Inbetriebnahme der DA- Karte
9
7.
Messdiagramm g= f (f)
8.
Datenbusplan µController/ Attenuator
11
9.
Bedienungsanleitung
12
10.
10.1
Mechanische Zeichnung Frontplatte
Mechanische Zeichnung Netzbuchse
13
14
11.
11.1
Schaltplan Netzteil
Bestückungsplan Netzteil
15
16
12.
12.1
Schaltplan µController
Bestückungsplan µController
17
18
13.
13.1
Schaltplan Attenuator
Bestückungsplan Attenuator
19
20
14.
14.1
14.2
14.3
Flussdiagramm
Assemblerprogramm
Assemblerprogramm
Hexfile
21
22
23
24
Anhang:
A…………………………………………………………………Datenblatt LF411
B…………………………………………………………………Datenblatt AD7111
C…………………………………………………………………Layout’s
D…………………………………………………………………Literaturnachweis
- SEITE 3 1. Einführung
Der Einsatz von hochintegrierten Schaltungen nimmt immer mehr zu. Besonders
davon betroffen sind die “klassischen“ Gebiete der Nachrichtentechnik, speziell der
Übertragungstechnik. So ist ISDN (Integrated Service Digital Network) in aller
Munde. Dieses System bietet die Möglichkeit Sprache, Daten Text und Bilder in
Digitalisierter Form über ein einziges Fernsprechnetz zu übertragen. Möglich wird
dies nur durch den konsequenten Einsatz der µP- Technik. Dabei steht der Gedanke
im Vordergrund mit Hilfe dieser Technik sowohl die Digitalisierung analoger Signale
und deren nachrichtentechnische Übertragung, als auch eine Steigerung der
Leistungsdaten in Bezug auf Geschwindigkeit und Nutzungskomfort gegenüber
konventioneller Übertragungstechnik zu realisieren. Dabei gelten die Bemühungen
der Forschungs- und Entwicklungsabteilungen insbesondere den Schnittstellen
zwischen analoger und digitaler Technik.
Meine Arbeit greift hier ein solches - sehr bescheidenes - Teilstück einer analogdigital Verknüpfung heraus: Das LOGDAC Projekt.
- SEITE4 -
2. Das R- 2R Netzwerk
Wie schon eingangs erwähnt besteht das Hauptproblem der Nutzung von µPSystemen in nachrichtentechnischen Anwendungen darin, eine Schnittstelle
zwischen den analogen und den digitalen Signalen wie sie ein Prozessor versteht, zu
schaffen.
Eine Lösungsmöglichkeit wie sie in diversen IC realisiert wird ist ein sogenanntes R2R Netzwerk. Ein solches Netzwerk ist auch im AD7111 der Firma ANALOG
DEVICES integriert. Bild 1 stellt das Prinzip eines solchen Netzwerkes in seiner
einfachsten Form dar:
R
A
Ue
2R
2R
S1
S2
2R
I
Rk
+
Bild1
Beim Betrachten des Netzwerkes (Bild1) vom Punkt A ergibt sich unabhängig von
den Schalterstellungen der Widerstand 2R (Grund: Der gegengekoppelte
Operationsverstärker wirkt als “virtueller Nullpunkt“). Der Gesamtwiderstand vom
Eingang der Spannungsquelle ergibt sich zu R. Der von der Spannungsquelle
fließende Strom wird an jedem Knotenpunkt gleich geteilt. Abhängig von der Stellung
der Schalter wird der Strom gegen Masse abgeleitet oder aufsummiert. Das Ergebnis
ist eine binäre Gewichtung des Stromes. Der Ausgangsstrom von Bild1 errechnet
sich allgemein mit:
I = (Uref/R) * (½ + ¼ …+n)
Daraus ergibt sich, dass am Summationspunkt alle I’s aufaddiert werden und wir
einen Strom- Spannungswandler erhalten.
- SEITE 5 Neben der Stabilität und der absoluten Genauigkeit der Referenzspannungsquelle
Uref stellen die Widerstände im vorliegenden Fall das schwächste Glied in der Kette
dar, deren mit zunehmendem Absolutwert wachsende Wertetoleranzen einerseits
wie deren Temperaturverhalten andererseits weitgehend die Qualitätseigenschaften
des DAU bestimmen. Ein großer Vorteil unseres Leitungsnetzwerkes gegenüber
anderen Verfahren besteht darin, dass sich absolute Fehler, hervorgerufen durch
Fertigungstoleranzen nicht gravierend auswirken. Außerdem ist die
Eingangsimpedanz des Leiternetzwerkes unhabhängig vom Schaltzustand, also
ausgangsspannungsunabhängig konstant. Temperatureinflüsse sind nicht so
gravierend, weil nur zwei Typen von Widerstandswerten implementiert werden
müssen, die so ausgewählt werden können, dass sich ihr Temperaturverhalten
gegenseitig kompensiert.
3. Der AD7111 von ANALOG DEVICES
Der AD7111 der Firma Analog Devices ist ein multiplizierender DA- Wandler, oder
auch schlicht logarithmischer Dämpfungsregler. Er kann ein analoges Eingangssignal
in einem Bereich von 0 bis -88,5 dB in 0,375 dB Schritten abdämpfen. Dabei ist der
Dämpfungswert über ein 8 Bit Datenwort einzustellen, das in einen Zwischenspeicher
mit mikroprozessorkompatiblen Steuersignalen geschrieben werden kann. Ein High
Pegel muss mindestens 2,4V und ein Low Pegel darf maximal 0,8V betragen.
Die Eingangsspannung am Analogeingang darf maximal +/- 35V groß sein.
Prinzip:
Das 8 Bit Datenwort wird über die Eingänge D0 bis D7 in einen
Zwischenspeicher eingelesen. Nach dem Anlegen des Datenwortes
wird über die Steuersignale CS/ und WR/ das Datenwort in den
Zwischenspeicher geschrieben. Die Daten werden mit der steigenden
Flanke des WR/ Signals übernommen. Nach dem Zwischenspeicher
wird das eingelesene Datenwort über eine interne Logik zu einem 17
Bit Datenwort gewandelt und anschließend dem R- 2R Netzwerk
zugeführt.
Um den AD7111 an einem µP- System anzuschließen, muss das Timing der
Steuersignale und des anzulegenden Datenwortes mit dem Timing des µP- Systems
verglichen werden. Die Minimalschaltzeiten müssen dabei unbedingt vom Prozessor
eingehalten weden.
- SEITE 6 -
4. Die Entwicklung der DA- Karte
Die wichtigste Grundlage beim Design solcher Anwendungen stellt das Studium der
Hersteller- Datenblätter dar. Wie schon erwähnt, muss sichergestellt sein, dass der
Prozessor entsprechend seiner Taktfrequenz Steuersignale liefert, die für die
Peripherie ausreichend lang sind.
Der Prozessor PIC16F84 von MICROCHIP wird mit ¼ seiner Oszillatorfrequenz von
4MHz getaktet. Die Taktfrequenz beträgt somit 1MHz, T=1µs. Die minimale
Impulsdauer für das WR/ Signal beträgt 500ns. Die Periodendauer T von 1µs ist
somit ausreichend lang um das Steuersignal WR/ anzusprechen. Es ist daher
möglich gewesen, den AD7111 direkt an den Mikrokontroller anzuschließen. Der
Vorteil dabei ist, dass der Programmieraufwand für das Timing gering ausfällt.
Ein weiterer wichtiger Punkt sind Angaben des Herstellerdatenblatts, die sich auf die
Anordnung einzelner Bauelemente auf der Platine beziehen. Um parasitäre
Störstrahlungen, übersprechen von Leitungen und Noise zu begegnen, muss ein
Layout die Vorgaben des Herstellers einbeziehen.
Allgemein kann ich meine gewonnenen Erkenntnisse bei der Layouterstellung und
Schaltungsinbetriebnahme wie folgt darstellen:
- Herstellerdatenblatt in Bezug auf Anordnung beachten
- Konsequente Masseführung sternförmig (!) auf einen (!) Punkt.
- So kurze Leitungen wie möglich (zusätzliche Induktivität !)
- Um CMOS Latch Up zu vermeiden:
Power vs Ground Abblockung mittels Kondensatoren.
Die Anschlussleitungen der Kondensatoren müssen dabei so
kurz wie möglich gehalten werden.
Möglichst große “Masseflächen“ auf der Platine.
Die Erfahrungswerte für eine „“Fünf- Punkt- Abblockung“ sind 750pF, 0,01µF,
1µF, 22µF. Dabei sollte mit dem kleinsten Wert begonnen werden.
Alle Versorgungsleitungen am Ursprung mit großen C’s abblocken (≥ 100µF).
- Auf reflektionsfreie Abschlüsse achten.
Eine Hauptforderung an den LOGDAC sollte die Möglichkeit sein, unterschiedliche
Signalquellen anzuschließen. Diese können sehr verschieden sein und fallweise
Gleichspannungsanteile enthalten. Um diese Gleichspannungsanteile
auszuschließen ist unmittelbar hinter dem Analogeingang ein Hochpass eingebaut.
Dieser führt auf den invertierenden Eingang eines Operationsverstärkers mit einem
eingestellten Verstärkungsfaktor V= 1. Dieser OP dient als Impedanzwandler um
- SEITE 7 Signalquellen belastungsunabhängig zu betreiben Allerdings ist das Signal das jetzt
an den LOGDAC gelangt, um 180º phasenverschoben. Um das Orginalsignal
wiederzugewinnen wird daher am Ausgang des LOGDAC wiederum ein OP
angebracht, als invertierender Summierverstärker mit V= 1 geschaltet. Der
verwendete OP (Typ: LF 411 von NSC) muss einen geringen Offset haben, um die
Gleichspannungsfehler gering zu halten. Selbstverständlich ist ein OP- Typ mit einem
geringen Temperatur- und Langzeitdrift zu wählen. Außerdem war eine schnelle
Anstiegsgeschwindigkeit (Slew Rate) erforderlich. Der LF 411 erfüllt alle diese
Forderungen und besitzt darüber hinaus FET Eingänge, die den OP besonders
hochohmig am Eingang machen.
Im Herstellerdatenblatt des AD7111 findet sich auch ein Layoutvorschlag wie und wo
der OP anzubringen ist, um ein Übersprechen vom Eingang zum Ausgang zu
vermeiden. Gleichzeitig wird auch darauf hingewiesen, dass die optimale Leistung
des AD7111 nur mit einem guten Layout zu erzielen ist. Schaltungsprobleme
ergeben sich in erster Linie durch ein schlechtes Platinenlayout, fehlerhafte Ground
Beschaltungen oder auch durch einen ungeeigneten OP Typ. Zur zusätzlichen
Phasenkompensation der Ausgangskapazität wird ein Kondensator am Ausgangs
OP vorgeschlagen.
5. Der Mikrokontroller PIC16F84
Die Mikrokontroller der Firma Microchip (PIC) sind besonders einfache und
preiswerte Mikrokontroller. Mit nur wenig Hardware können mit ihnen komplexe
Aufgaben gelöst werden. Aber auch sehr einfache Anwendungen, die mit wenigen
klassischen Digitalbausteinen realisiert werden könnten, lassen sich oft schneller mit
einem einfachen PIC- Mikrokontroller verwirklichen. Die PIC’s sind CMOS- Controller
mit geringem Leistungsbedarf, die einen internen Programm und Datenspeicher mit
Harvard Architektur besitzen.
Die I/O- Ports des PIC16F84: Für die Ansteuerung von externer Hardware, wie sie
auch der AD7111 darstellt, besitzt der PIC16F84 zwei Ports. PORTA mit 5 Bit und
PORTB mit 8 Bit. Einige Pins haben Doppelfunktionen, d. h. sie können entweder als
Port- Pin oder z. B. als Timer- Eingang verwendet werden. In diesem
Zusammenhang soll aber nur auf die Portpin Funktionen als Eingang oder Ausgang
eingegangen werden. Die Port Pins RA0- RA3 haben alle vier Input Buffer sind TTL
kompatibel und die Ausgangstreiber sind in CMOS- Technologie ausgeführt. Port Pin
RA4 hat einen Schmitt- Trigger- Eingang und einen offenen Drain Ausgang. RA3 und
RA4 verwende ich als Eingang und realisiere über sie die Tastaturabfrage. Wobei die
gegenseitige Verriegelung Hardwaremäßig ausgeführt ist. Der PORTB ist ein
bidirektionaler 8 Bit Port. An RB0- RB7 sind die 8 Bit Dateneingänge vom AD7111
angeschlossen. Die Ausgangstreiber können im Low- Zustand 25mA und im High
Zustand 20mA treiben. RA0 ist mit CS/ belegt und RA1 mit WR/.
Entscheidend für die richtige Arbeitsweise ist das Programm. Ein Programm ist eine
Folge von Befehlen (Anweisungen), die im Programmspeicher (ROM) im
Maschinencode (0-, 1- Folgen) abgelegt sind. Der Adressbereich des
- SEITE 8 Programmspeichers geht von 000H bis 03FFH. Bei einem Reset (z. Bsp. Beim
einschalten der Spannungsversorgung ) wird der Befehlszähler auf 000H gesetzt.
An dieser Adresse muss also beim PIC16F84 das Programm beginnen. Mit der
Steueranweisung ORG<adresse> wird dem Assembler mitgeteilt ab welcher Adresse
der nachfolgende Code im Programmspeicher abgelegt werden soll.
Jedem Portpin ist ein I/O Steuerregister zugeordnet, das TRIS Latch, in dem die
Richtung von jedem Pin (Eingang/Ausgang) festgelegt wird. Um die Ports zu
Initialisieren braucht man Zugang zu diesen Registern. Das TRISA und TRISB
Register befindet sich jedoch in der Registerbank 1 (80H-FFH). Es muss also
zunächst auf diese Bank umgeschaltet werden, dies geschieht über das StatusRegister bit5 (RP0). Wird in ein TRIS Register eine “1“ eingeschrieben, so ist der
zugehörige Portpin als Eingang programmiert und der Ausgangstreiber im
hochohmigen Zustand. Anschließend wird wieder auf die Registerbank 0 (00H- 7FH)
zurückgeschaltet.
Im Einschaltzustand stellt sich das Datenwort 1011010B am PORTB ein. Die beiden
Taster T3 und T4 werden abwechselnd abgefragt, durch betätigen eines Tasters
kommt es zur Auslösung eines Sprungbefehls und das Bitmuster von Register PB
wird an PORTB ausgegeben. Je nach Taster verringert oder erhöht sich der Wert
von PB um eins. Wobei beide Mal auf Überlauf geachtet werden muss. Beim
betätigen von T4 (RA4) ist es das Zero- Flag das abgefragt wird. Wenn es nicht
gesetzt ist springt das Programm zur Marke ANF0 zurück, fragt den Taster 88,5dB
(T4) erneut ab und gibt den Inhalt von PB an PORTB aus.
Wird die 0dB (T3) Taste gedrückt steht eine “1“ an es kommt zum überspringen vom
nächsten Befehl, das Programm arbeitet beim über nächsten weiter. Wird beim
verringern der Speicherzelle f um 1 das Ergebnis 0, dann wird der nachfolgende
Befehl ignoriert. Das Programm kehrt wieder zum Programmanfang zurück.
Zwischendurch wird jeweils das Unterprogramm ZEIT aufgerufen und über einen
Bitmanipulations Befehl (BCF/BSF) das Timing für das Steuersignal WR/ erzeugt.
- SEITE 9 -
Seite 10 zeigt ein Messdiagramm g = f (f)
6. Abgleich und Inbetriebnahme der DA- Karte
1)Zu Seite 10 Übertragungsfunktion:
1.1)Mit Hilfe eines Funktionsgenerators (TG550) und einem Oszilloskop wurde
die Übertragungsfunktion in Einfachlogarithmischer Darstellung aufgenommen.
An den Dateneingang von AD7111 wurde das Datenwort D0…D7= 1000 0000
angelegt, was einer Dämpfung von −0,375dB entspricht. Da die DA- Karte für den
NF- Bereich dimensioniert ist, war das Bandpassverhalten zu Überprüfen. Der
untere −3dB Punkt stellte sich bei f 2 Hz ein. Die obere Grenzfrequenz betrug
100kHz. Somit war ein Linearer Amplituden- und Phasengang im Arbeitsbereich
von 15Hz…20kHz gegeben.
1.2)Nun wurde das Datenwort D0…D3= 1111 und D4…D7= 0000 eingestellt. Dies
entspricht einer idealen Abschwächung von −5,625dB. Die Eingangsspannung
betrug 20Vss, die Messfrequenz 1kHz. Mit dem Oszilloskop gemessen stellte sich
eine Ausgangsspannung von 10,4Vss ein. Dies entsprach einem Wert von
−5,68dB, die Differenz wurde mit einem Spindeltrimmer auf der DA- Karte
ausgeglichen. Dieser Abgleich wiederholte sich bei dem 2. Kanal.
1.3)Zur Linearitätsüberprüfung wurde nun noch ein Abschwächungswert von
−40,125dB eingestellt (D0…D3= 1101 D4…D7= 0110). Am Ausgang stellten sich
195mVss ein. Der Abgleich wurde nun wiederholt und das Gerät wurde mit
diesem eingestellten Wert Probe laufen gelassen.
g = 20 log(Ua/Ue) [dB]
-3,5
-3
-2,5
-2
-1,5
-1
-0,5
0
1
10
100
1000
f [Hz]
g (f )
10000
100000
SEITE 10
- S E I T E1 15F
LJ
g.
o
0)
o
(5
=
c)
-
a
L
ul
dl
ul
ul
ul
rl
ul
!l
-l
;l
trtr+ftr
L-a{-Gj
I
tqa#
!l
rl
gl
'fjl
c)
o
!l
ul
rtrfirfir4,,
t-qdv
IEE-
l;l':
l=
-l-lnlFl
^
c
oa
l;lr: l=
sl;TTT
;13
.\lsl@l@l
-l
Iina
@
o
o
o
u
o
l+l
J
F
irirridr ?=l;ll:ll.ll"l"r,*
i
F
lSl*:;='=ii*ffi
lI r+
llhr,fu*__l ll
{k
+,ar_l
ll
tlGt.,f* 'p
ti--
II ii
ll
ll
rl--,=ll I
4*
ll
rl__.ell
*?F
li
i
E
li
r--r ,
ll
tf.=
**#
l.=
I
L,= ll
'[=
:
rrlll
;l
I
ll
ll
|
E
ll
llffill
llll=s-ll
Illall
II
:'ll
ll,#+*
!?j
ll
3
))))))))#
ldiJ;ilJlm
Il
Il
il
ll
1Z
ro
ltnr:-t?t-t-t- t.^t -t^.t-t@tr
ffi'
{lH
,l; *ri
+ffi
- l+
iei=----r+#
f r l
o
j
=L_.--=_x
F
4
';+sfr'.,
r^,
"*
:o-_q--11r5"
'1 'l
rafn|-{';i
!{::l
?€F'*l
l
]NO
,T
#?
c
J
z.
c
o
co
^
I .r llJ;Ji;J,
?3=|1;;-r;;-r-Dg "f
|
(')
o
O
qlqq
3!d!-L-E
',d
ry' , a
1))1
))))
ol
sl
C
$
3l;TTT
;F
(\
I
qq[q' elPl:l:l
Hqq'
-l-l-l-l
|
s{
s{
g
-
N
s
o
c1
N
q
o
c
U
0J
o
o
- S E I T E1 2-
Bedienungsanleitung
O
O
@
Reset
e
@oo
@or
@oz
wird
MitderOdBTaste
vom
dieLautstdrke
Ausgangssignal
derbeiden
Audiokandle
in0,375dB
Schritten
angehoben.
0dB
@
Durch
betdtigen
der88,5dB
TastewirdderWertder
Audiosignale
in
beiden
verringert.
0,375dBSchritten
HatD4-D7dasBitmuster
1111
erreicht
wirddasAusgangssign
Stummgeschaltet,
unabheing
ig
vonD0-D3.
o
@D3
@D4 88,5d
oD5
@D6
gedrUckt
WenndieResettaste
wirdstelltdiesedenLautstdrkepegel
vomEinschaltzustand
wieder
her.
@oz
ooo
ooo
O
O
- S E I T E1 3-
D
C
B
t-
I
L
DIN7168
feln
nlttel,
€ret
Doturn
0berftilche MoB stob0
Venkstoff
Posltlon
1
lmenge1
Alu
Nane
Benennung
B e o n k r2,06,07 Lononqnn
JEDT,
Nonm
Fnontplotte
Zelchnungs-Nn.
1
l u s i tindenung
Dqtum \ome
Dotehqnc relOted,dwg
Itott
Bt
- S E I T E1 4.
J)
Schutzf olie
.
[ilil[[[[[I
C
B
A
I
0berftiiche MoBstqb0
Verkstoff
DIN7T58
f€'ln
lon
nlttet
nl.
€F€t
Doturn None
40.05,07 LoFrptrronn
JeOf,
!ornn
Benennung
Netzbuchse
?
Dotun \ane
Dotelnolrerueckpl,0T,dwg
l M e n g e1
AIu
Zelchnungs-Nr,
.us'l {ndenung
Posltlonl
Itott
BI
- S E I T E1 5N
N
{N
tl
a
s
\o
\o
s
N
Fl
N
o
-l
N
a a
v
6;
0.,
d
A) \r
C N
a
o
E
U'
lf)
r
I
+
J
lrJ
F
N
F
tU
z
o
O
-c
a
-c
C)
@.
(o
o
N
o
c
E
c
t-
o
-o
I
O
Q
J
o
|'rl
/-
o
O)
9
(o
lo
c.i
r
N
o
o
q
(o
q
r
. S E I T E1 6.
c tuJolneg
zlgtt Nlo
vr n
'
oooo
lF-6+5Tl
ry
1EEI"-l
- S E I T E1 7-
(o U)
l-
q)
o
l#t
c
o
(.)
--)<
a. F-_
0av
I
(r) N^
M
s
'*
b
3 3 S 3 S 6 3 {( titex -Et ?
t-t-v-t-t t x.t
/)<\
0Nc | 0N9
TI
13
I
o53=-q)
O!><DO</)
rq
'l
N
-JL
X
:N
&
x
q
-c
I
IT
tl
tl
,S0Gt lO
.,lE
9t5
I
o
(/)
I
tr). (O
NilN
X-X
c0
cN9
_@i
|l|s l,A\& -
HH
--T- ^-F--r
Utll _ l i: i l o l I t'rP
cNg aNSNg
0Nc
o
z
an
r
|,.\
r
Up
rz
l-ll
cHo
l + -
!
o)
c)
ct)
|
c
:(:
z
s
s
N
F
=
s
N
tR?i
z
v
s
v9!i
I
v
g
q
{tQ&
N
F
I
i9i;
f.-
v
io-+*0"-?,13
@
(o
.9
o_
N
o
O
N
L
t-
' od
L
o-
o
)LU
t
N
N
o
LU
J
o
t r l
o
O
a
(t
3 LU
)
-J
//
I
v
t/,
t
tt -\
J
t
tU
cN90Ne0NsN9
o
0NSNSN0CN9
cr)
f
IY
:JHz
r
+
I
O)
O
fO
O
N
lt-
q
O
N
- S E I T E1 8-
c rllJolne$
z L g LN
t lc
I' 'n
FNgFFFtr
[---_lfETF
P P JF! xEf-lfls
m
lasau
a
co
tA
AA^
l ; l l =l u
^ffi
offi
l - lq/
ll
q/
z-E\
\q
o c l
rl-....<
O.-
is
+
<"tZX
r
m
o
()
co
@
@
E{fol
EL
e
v
@
(o
3;333xFE
@' @i@;@;@;@;@i@;
.9
oFO
O
N
_:u
o
'o'
L
o-
O
a
-J
CI
|.U
o
c)
q?
r
crJ)
f-
o
O
c\l
t\
q
@
r
- S E I T E1 9
\o
K)
c
c
(o
rO
+
N
N
N
N
E
o_
v
E
o \o u
(I'
O N
o
J
o
-C
o_
a
!-
o
$
c
c)
N
N
z
z
Y
Y
It-
|t.
o
U
ro=
t
s
f.-
LL
J
j-;
-
O-:z
0)
o
c
t
ct)
-c
o
@
J
l<
C\t
c.i
oNc
CNC
T
TI
ll
o
Nl
(JT
5TI
l
;
o
(r)
o
O
rO
+
q)
ct)
c)
o
to
o
N
Y
o
.o-
Y
c\l
c.i
r-
o_
o
N
u
rr)
s
i
t
\tV
u
t
J
N.
v.
-l
:l
o
z
t'
',LU
s
LL
(9
t
-
E
o
z
O
(f)
J
o
uJ
(o
t
o
@
(o
(o
O,
r.*I|
tl
o
t-
S
LO
@
:
-
l'-
o
o
c!
(o
q
f-
. SEITE20 -
c uuornPs
i r,r
z19ttNlo
ro
6rl
zlod
ro
6rl
]C
L
e
€)
o)
c)
ol-
o
o
N
l<
o
'ot-
oT
O
a
o
u
o
- SEITE21 -
Lampx.asm
A NF O
o+
w -+
Por.B
( P B + 1 )+
1+RA1
W-#TAST
O .+
RA1
TAST
PB
(PB-1) +
PB
- SEITE22 .
****************************************************rr******************
*
*Tastenabfrage
PB am
Inkrement
oder Dekrement Register
* Name lampx.AsM, I0.2.06
P O R T Ba u s g e b e n f u e r R - 2 R N e t z w e r k A D 7 1 1 1
*
********lrJ.************JrJrtr*****************lr*rr*****trtr**************rr****
# I N C L U D E ' 'P 1 6 F 8 4 . I N C ' '
;
&
_coNFrG
_cP_oFF
_WDT_OFF & *PWRTE_ON & _XT_OSC
TAST
PB
Kl
R2
K3
F1
F2
F3
EQU
OCH
EQU
ODH
EQU
D | 128'
EQU Dr60r
EQU D'1'
EQU
OEH
EQU
OFH
EQU
10H
ORG
O
BSF
STATUS,RPO
MOVLW1BH
MOWF TRISA
MOVLW O
MOVWFTRISB
BCF
STATUS,RP0
M O V L W5 A H
ANF0
;
;LEDO-7
; Konstante K1
; Konstante K2
; Konstante K3
; ZAhlvariable
; Zdhlvariabl-e
; Ziihlvariable
l-96
150
5
F1
F2
F3
l- umschal-ten
; Auf Registerbank
; RA3 - RA4 Eingang der Rest Ausgang
;
;
;
;
;
Port B als Ausgabeport
schalten
Auf Registerbank
0 schalten
LEDO - LEDT seLzen Bitmuster
im Einschaltzustand
w-Register
PB
Vom w-Register
in Speicherzelfe
ins
M O V I I I FP B
MOVF PB,W
''
M O V W FP O R T B
fur R-2R Hetzwerk
; Bitmuster
BCF
PORTA,0
freigeben
; Chipselect
i
BCF
PORTA,L
WRE
NICHT
fur
ku::ze Zeit aktivieren
;
' CALL ZE'IT
; Unterprogramm ZEIT aufrufen
ANF
MOVF PORTA,w
ubergeben
und zum w-Register
,' Taster einlesen
M O W , I FT.n r S T : ' . ' . ' r ' - . ; , w - R e g i s t e r
i n d i e A d r e s s e O C Hm i t d e m B e z e i c h n e r T A S T
''t i., I
' : . ; . , ; ; k o p { b r . e n , .:
r , r . , l : : . . ; , . ' . .: , . : , '
ZEIT
CALL
Zeitschl-eife
; Unterprogrammaufruf
'l''.::
l E g F r P O R T A ,t
P O R T A ( W R EN I C H T ) w i e d e r s p e r r e n
; Bit des Registers
,'.
:.,:r
,ti;.i
wieder freigeben
,. Erst nach TasterbetAtigung
.,
BTFSC TAST,:4
Befehl wenn Bit=0
,' Ibergehe nachfolgenden
(Am Taster
GO-tO INTI.
Betatigt.
liegt
,' Rucksprung wenn TAST4 nicht
'
.':
; in RuhesLellung eine 1)
'.1
CLR,F TASIT
; Ldsche
die
TAST
Speicherzeffe
il
MOVF PB,w
i : ir , i '
::
; PB nach W
r. .:: .i
MOVWF'PORTB
PORTA,!
"gpr'ri
CALT,', ZEtrT.
BSF
FORTa,,'1:i ,
': :
INCF PB,f
; und nach PORTB
; Losche Bit l- des Registers
MOV,bWOFEI{
AI$DWFPBlf ,',
,' Lade KonsLante
; UND Verknupfung
'.
. I
I
'!:,:::
,().
,,.,.
INT1
PORTA
j
i Unterprogrammaufruf
; S'etze Bit L des Registers
; Erhohe den Wert aus der
PORTA
Speicherzeffe
FF in das w-Register
mit der KonstanLen
PB um L.
FF und
Flags
PB
,',,ri
Z (Zeto)
B{FSC STATIIIS;Z
,' Teste
GOTO .AlIFO.i.'
:
i Wenn es nicht
; Befehl
': .
,'
MOVF PORTA,w
Mache beim ubernAchsten
; sc - skip if clear.
speichern
und im w-Register
; Taster einlesen
das Bit
gesetzt
im Register
ist
STATUS
ignorl-ere,den
nAchsten
weiter
Z
- S E I T E2 3 .
MOVWFTAST
,. w- Register
BTFSS TAST,3
,'
;
;
;
;
GOTO INT3
CLRF TAST
;
; tbernAchster
MOVF PB,w
; Registerinhalt
MOVhIFPORTB
BCF
PORTA,1,
; An PORTB ausgeben
; Bit 1 des Registers
CALL
BSF
ZEIT
PORTA,L
DECFSZ
INT3
PB,f
GOTO ANF
,'
;
;
;
ZEIT
M1
M2
M3
Befeht:
'1.;\
!i i , l
MOVLWK1
MOwlF F1
MOVLWK2
MOWF F2
MOVLWK3
,MOIIWFFB'i'J
DEieFSZi'ir:j" F3,f
GOTO M3
D E C F S Z T ' : ; , i . .F; 2 , f
GOTO M2
,'i-f';r F1 ,f
UElCS'lSZr1
GOTO Mf-j',,,
Registe-rinhalt
END
J. l:
von TAST loschen
nach w- Kopieren
P O R T Aa u f
0 seLzen
f um 1-.
den Wert aus der Speicherzelle
; verringere
dann ignoriere
den nachfolgenden
; Falls das 0 ergibt,
Es wird mit dem ubernAchsten weitergemacht.
; Befehl.
I
,, ,'
; wieder
:
zur
Marke ANF
, .,
,
I .
zum Programmanfang
,
; 'FL mit.. Kl- laden
i
; F2 mit. K2 L'aden
; F3 mit
:
:
K3 ]aden
; F3 -
1-, Sprung,
; F2 -'t,
wenn F3 = 0
Sprung,, wenn F2 = 0
,-r Ff. - ,1, Sprung,
wenn FL = 0
R E T U R N : , : 'rI'
t;
r-1 1.'
TAST ubertragen
ZEIT
Unterprogrammaufruf
PORTA setzen
Bit l- der Speicherzelle
Wird kein Taster betAtigt
WRE NICHT PB ubernahme
gesperrt
Storungsunabh&ngiger
; Sprungbefehl
GOTO ANFO
Fileregister
Befehf wenn Bit=1 und mache
Ubergehe nachfolgenden
beim ubernAchsten weiter.
TAST3 in Ruhestellung
eine 0 es wird
mit dem nAchsten Befehl Sprung zu Al$F weitergemacht
(Abfrage ist TAST4 BetAtigt?)
i " ; , :\ , / ' / , r i ; : : . . a : l : : '
1l'l' 1j':::,..i
in
l'i ' ,
; Frogrammende
:'
- SEITE24 -
WinHex 14.2 lunregisteredl
(page1)
D:\asmx\bsp06\lampx.HEX
A
00000000
00000010
00000020
00000030
00000040
00000050
00000060
00000070
00000080
00000090
000000A0
00000080
000000c0
000000D0
000000E0
000000F0
00000100
00000110
00000120
00000130
00000140
00000150
0 0 0 0 0 ' r5 0
3A
0A
33
31
30
35
43
32
38
32
30
35
30
31
30
OD
44
43
31
33
32
30
30
30
3A
30
32
30
3'1
30
30
43
42
3B
30
45
44
30
OA
32
33
30
31
44
30
30
32
31
3B
35
30
30
30
30
30
32
35
33
42
32
38
3A
38
30
30
32
32
45
30
30
30
35
41
31
38
32
30
31
30
31
31
0D
39
35
31
30
38
30
38
38
30
30
30
30
30
33
30
35
42
38
30
43
34
39
0A
32
31
30
31
46
36
38
30
30
30
30
30
30
30
30
31
32
35
44
33
38
30
3A
38
30
30
32
30
30
46
38
46
31
30
30
30
38
30
30
30
31
30
0D
44
31
31
38
32
30
38
30
30
30
30
31
46
30
30
30
44
30
32
35
34
38
0A
30
32
30
43
42
3s
38
30
30
42
30
33
46
34
30
33
30
44
42
43
30
3B
3A
41
3B
30
30
32
30
30
31
39
32
32
46
OD
30
30
30
30
30
32
0D
43
35
31
46
30
30
31
30
30
33
33
30
46
35
38
OA
30
38
38
32
38
30
0A
31
30
30
46
3s
34
30
38
30
30
30
30
32
0D
30
C
30 30
33 31
36 30
38 OD
38 36
30 35
3.A31
41 31
30 38
30 30
33 30
30 38
30 30
44 30
- J
a a
J
38
38
33
30
38
0A
0D
J
45
36
30
OA
30
30
30
45
3s
33
38
38
30
38
-
I
44
45
41
39
38
3A
0A
F
D
J =
A
41
31
38
3A
30
38
30
32
31
30
44
43
38
38
1 4
J
I
30 42
30 30
0D 0A
30 30
45 30
30 32
3,A 30
OD
3B
33
- a
JI
30
3B
30
3B
30
30
30
30
43
36
35
30
33
3A
42
42
34
30
-.020000040000FA.
. :10000000831618
308s000030860083
125A30BD0028..:,1
0 0 0 10 0 0 0 D 0 8 8 6 0 0 0
5 10 8 5 1 0 2 8 2 0 0 5 0 8 8
C 0 0 2 8 2 0 6 C .. : ' 10 0 0
2 0 0 0 8 5 14 0 C 1 A 1 E 2 B
B C 0 10 D 0 8 8 6 0 0 8 5 1
0
2 8 2 0 C 3 .. : 1 0 0 0 3 0 0
O B 5 14 B D O A F F 3 O B D O
5 0 3 19 A 7 2 8 0 5 0 B B C 0
O E B .. : 1 0 0 0 4 0 0 0 8 C
1 D 2 9 2 8 8 C 0 01 D 0 8 8 6
0085102820851415
- .:100050008D080
D 2 8 0 12 8 8 0 3 0 8 E 0 0 3
c 3 0 8 F 0 0 0 ' i3 0 3 , A . :
1000500090009008
3 12 B B F O B 2 F 2 S B E O B
2 D 2 8 0 8 0 0 2 5 .. : 0 2 4
0 0 E 0 0 F 13 F 8 0 . . : 0 0
0 0 0 0 0 ' lF F . .
-D-
LITERATURNACHWEIS:
AnalogDevices,DatenbuchLinearProducts1990/9'1
DieterKohtz,Messen,Steuernund Regelnmit PIC-Mikrokontroller,
FranzisV.
Kdnig,A, Das PlCmicroProfi-Buch, FranzisVerlag
E. Heilmayer,
AD- DA Wandler,Marktund TechnikVerlag
K. Block,H.- J. H6lzel,L. Wolfing,P, Zachert,Kontaktlose
Signalverarb.
H. StammV.
TietzeSchenk,Halbleiterschaltungstechnik,
SpringerVerlag
Referenz-Handbuch,EAGLE4.0,CadSoftVerlag
RudolfBurkhardt,
Mikrokontroller
VHS- KursNr. 9692
PlC16F84,Kursskriptum,
Document
Kategorie
Technik
Seitenansichten
8
Dateigröße
2 112 KB
Tags
1/--Seiten
melden