Politechnika Lubelska w Lublinie
Laboratorium Układów Mikroprocesorowych
Wykonał:
Emil Leńczuk
Gr: ED 9.7
Data: 14.10.2008
Ocena:
Temat: Uklady przetworników A/C i C/A. Model: tester tranzystorów
Cel ćwiczenia:
Badanie tranzystorów za pomocą mikrokontrolera 8051
Rys.1 schemat modelu do badania tranzystorów.
1. Ręczne zdejmowanie charakterystyki za pomocą modelu testera tranzystorów.
hex
I Bazy ->
N0
N1
->
N0
N1
U
I
20
0
0
0
0
0
0
0,000
0,0000
11
12
6
17
18
6
0,118
0,0012
22
22
8
34
34
8
0,157
0,0025
33
33
9
51
51
9
0,176
0,0041
44
44 B
68
68
11
0,216
0,0056
55
55 D
85
85
13
0,255
0,0071
66
66
11
102
102
17
0,333
0,0083
77
78
15
119
120
21
0,412
0,0097
88
88 1F
136
136
31
0,608
0,0103
99 9A
2E
153
154
46
0,902
0,0106
AA
AA
3E
170
170
62
1,216
0,0106
BB
BB
4E
187
187
78
1,529
0,0107
CC
CC
5C
204
204
92
1,804
0,0110
DD
DD
6C
221
221
108
2,118
0,0111
EE
EE
7B
238
238
123
2,412
0,0113
FF
F9
84
255
249
132
2,588
0,0115
dec
hex
I Bazy ->
N0
N1
->
N0
N1
U
I
50
0
0
1
0
0
1
0,020
-0,0001
11
11
4
17
17
4
0,078
0,0013
22
22
6
34
34
6
0,118
0,0027
33
33
7
51
51
7
0,137
0,0043
44
44
8
68
68
8
0,157
0,0059
55
55
9
85
85
9
0,176
0,0075
66
66 A
102
102
10
0,196
0,0090
77
77 C
119
119
12
0,235
0,0105
88
88 E
136
136
14
0,275
0,0120
99
99
11
153
153
17
0,333
0,0133
AA
AA
13
170
170
19
0,373
0,0148
BB
BB
17
187
187
23
0,451
0,0161
CC
CC
1A
204
204
26
0,510
0,0175
DD
D1
1B
221
209
27
0,529
0,0178
EE
D1
1C
238
209
28
0,549
0,0177
FF
D0
1B
255
208
27
0,529
0,0177
80
0
0
1
0
0
1
0,020
-0,0001
11
11
4
17
17
4
0,078
0,0013
22
22
5
34
34
5
0,098
0,0028
33
33
7
51
51
7
0,137
0,0043
44
44
7
68
68
7
0,137
0,0060
55
55
8
85
85
8
0,157
0,0075
66
66
9
102
102
9
0,176
0,0091
77
77 A
119
119
10
0,196
0,0107
88
88 B
136
136
11
0,216
0,0123
99
98 C
153
152
12
0,235
0,0137
AA
A9
F
170
169
15
0,294
0,0151
BB
BB
11
187
187
17
0,333
0,0167
CC
CC
14
204
204
20
0,392
0,0180
DD
CE
14
221
206
20
0,392
0,0182
EE
CE
14
238
206
20
0,392
0,0182
FF
CE
14
255
206
20
0,392
0,0182
110
0
0
1
0
0
1
0,020
-0,0001
11
11
4
17
17
4
0,078
0,0013
22
22
4
34
34
4
0,078
0,0029
33
33
5
51
51
5
0,098
0,0045
44
44
5
68
68
5
0,098
0,0062
55
55
7
85
85
7
0,137
0,0076
66
66
7
102
102
7
0,137
0,0093
77
77
8
119
119
8
0,157
0,0109
88
88
9
136
136
9
0,176
0,0125
99
99 C
153
153
12
0,235
0,0138
AA
A9
B
170
169
11
0,216
0,0155
BB
BB
C
187
187
12
0,235
0,0172
CC
CC
F
204
204
15
0,294
0,0185
DD
DD
D
221
221
13
0,255
0,0204
EE
CC
E
238
204
14
0,275
0,0186
FF
CC
F
255
204
15
0,294
0,0185
dec
hex
I Bazy ->
N0
N1
->
N0
N1
U
I
140
0
0
0
0
0
0
0,000
0,0000
11
11
3
17
17
3
0,059
0,0014
22
22
4
34
34
4
0,078
0,0029
33
33
5
51
51
5
0,098
0,0045
44
44
5
68
68
5
0,098
0,0062
55
55
6
85
85
6
0,118
0,0077
66
66
7
102
102
7
0,137
0,0093
77
77
7
119
119
7
0,137
0,0110
88
88
8
136
136
8
0,157
0,0125
99
99
9
153
153
9
0,176
0,0141
AA
AA
A
170
170
10
0,196
0,0157
BB
BB
B
187
187
11
0,216
0,0173
CC
CB
C
204
203
12
0,235
0,0187
DD
CB
E
221
203
14
0,275
0,0185
EE
CB
C
238
203
12
0,235
0,0187
FF
CB
D
255
203
13
0,255
0,0186
dec
0,000
0,500
1,000
1,500
2,000
2,500
3,000
-0,0050
0,0000
0,0050
0,0100
0,0150
0,0200
0,0250
charakterystyka wyjściowa tranzystora
20
50
80
110
140
U, V
I,
A
2. Charakterystyki zdjęte za pomocą modely badania tranzystorów, programu tranzystor.exe i
tranzystor.asm.
3. Modyfikowanie programu tranzystor.asm w celu zmiany prądu bazy badanego tranzystora i
ilości ściąganych charakterystyk.
Kod programu
SET_8255
EQU 10001011B
1
LJMP START
S
ORG 13H
1
PUSH PSW
;przechowanie rejestru stanu
PUSH ACC
;i akumulatora na stosie
;
MOVX
A,@R1
;odczyt ze sterownika przerwań
ANL A,#03H
;numeru przerwania
MOVX
@R1,A
;skasowanie przerwania
;
JZ
INT_AD
;przerwanie z przetwornika A/C
;
POP
ACC
;inne przerwanie - faktycznie nie wystšpi
POP
PSW
RETI
R
;**************************************
ORG 23H
;przerwanie z portu szeregowego
;
JBC
TI,NAD
CLR RI
;odbior bajtu - faktycznie
RETI
;nic nie jest odbierane
;
;**************************************
;nadawanie zmierzonych danych
NAD:
;nadanie bajtu
MOV A,DPH
;czy nadane 256*16 bajtów
CJNE A,#20H,NADNEXT
MOV SBUF,R2
;tak - nadaj sumę i zakończ nadawanie
CLR ES
;zablokuj przerwania od RSa - nadany
;jest ostatni bajt, dodatkowo ES użyty
;jako wska nik końca nadawania
RETI
R
NADNEXT:
;nadaj kolejny bajt
MOVX
A,@DPTR
MOV SBUF,A
XRL A,R2
;obliczaj sumę bajtów - XOR
MOV R2,A
INC
DPTR
;zwiększ wska nik danych
RETI
R
;**************************************
;przerwanie z przetwornika A/C - koniec pomiaru
INT_AD:
MOV A,#10
;odczekanie czasu do zakończenia
DJNZ ACC,$
;wewnętrznego sygnału w przetw. A/C
;wywołujšcego przerwanie
;
MOVX
A,@R0
;odczyt wyniku z przetw. A/C
MOVX
@DPTR,A
;zapamiętaj wynik pomiaru
INC
DPTR
;zwiększ adres
;
CLR A
;skasowanie przerwania ze sterownika przerwań
MOVX
@R1,A
;trzeba to zrobić po odczycie z A/C
;
POP
PSW
;zdjęcie danej ze stosu
;ACC=0 jako znacznik końca pomiaru
POP
PSW
;odtworzenie rejestru stanu
RETI
R
;**************************************
ORG 100H
START:
MOV R0,#CS55D
;inicjalizacja 8255
MOV A,#SET_8255
MOVX
@R0,A
@
;**************************************
;ustawienie portu szeregowego
;
;mod 1 portu szeregowego:
;transmisja asynchroniczna
;1 bit startu, 8 bitów danych, 1 bit stopu
;prędko ć transmisji ustawiana przez timer T1
MOV SCON,#01010000B
S
;Timer T1 pracuje w modzie 2:
;8 bitów auto-reload
MOV TMOD,#00100000B
T
;przy F=11.059 MHz v=19200 bodów
;dla TL1=256-3, SMOD=1
ORL PCON,#80H ;SMOD=1
;
MOV TL1,#256-3 ;Timer 1 liczy do trzech
MOV TH1,#256-3 ;Warto ć automatycznie przeładowywana
SETB TR1
;start Timera 1
;
;**************************************
;zerowanie sterownika przerwań
MOV R1,#CSAD
;skasowanie ewentualnego przerwania
;
MOVX
A,@R1
;wystawianego przez przetwornik A/C
;
MOV R1,#CSIC
;skasowanie przerwania 0 (A/C)
CLR A
;w sterowniku przerwań
MOVX
@R1,A
@
;pozostałe przerwania zawieszone w sterowniku przerwań
;będš automatycznie skasowane w momencie zezwolenia na przerwania
;-przerwanie będzie wygenerowane i obsłużone - a więc skasowane
;
;**************************************
SETB EA
;zezwolenie na przerwania
;
;**************************************
;pomiar rodziny charakterystyk tranzystora
LOOP:
LCALL
LCD_CLR
LCALL
WAIT_ENTER
;oczekiwanie na rozkaz poczštku pomiarów
;
LCALL
LCD_CLR
MOV DPTR,#TEXT1
;wypisanie tekstu o rozpoczęciu pomiarów
LCALL
WRITE_TEXT
W
SETB EX1
;włšczenie przerwań z wej cia INT1
;- tj. sterownika przerwań
;
MOV DPTR,#1000H
;adres - miejsce w RAMie na wyniki pomiarów
;
MOV R5,#6 ;8 charakterystyk tranzystora
;dla różnych pršdów Bazy
;
;**************************************
;pomiar 1 charakterystyki
POM1:
MOV R0,#CS55A ;ustalenie pršdu Bazy
MOV A,#3
;R5=8 -> 0 ... R5=1 -> 7
CLR C
SUBB A,R5
MOVX
@R0,A
@
ADD A,#31H
;wypisanie numeru mierzonej charakterystyki
LCALL
WRITE_DATA
W
MOV R7,#0
;nr pomiaru - napięcie z przetwornika C/A
MOV R6,#0
;licznik pomiarów
POM:
ACALL
POMIAR
;wykonanie pomiarów dwóch napięć
;- napięcie z przetwornika C/A
;i napięcie na badanym elemencie
;
INC
R7
;kolejny numer pomiaru
DJNZ R6,POM
;wykonanie kolejnego pomiaru (do 256)
;jednej charakterystyki tranzystora
;
DJNZ R5,POM1
;wykonanie pomiaru kolejnej charakterystyki
;
CLR EX1
;wyłšczenie przerwań z wej cia INT1
;**************************************
LCALL
LCD_CLR
MOV DPTR,#TEXT2
;wypisanie tekstu o rozpoczęciu transmisji
LCALL
WRITE_TEXT
W
MOV SBUF,#55H ;wysłanie znacznika poczštku transmisji
MOV A,#2
;odczekanie czasu na 'obudzenie' IBMa
LCALL
DELAY_100MS
D
D
MOV DPTR,#1000H
;adres poczštku wyników
SETB ES
;zezwolenie na przerwania od RSa
;
;ponieważ był wysyłany znacznik więc natychniast będzie wygenerowane
;przerwanie i rozpocznie się transmisja danych
;
JB
ES,$
;oczekiwanie na koniec transmisji
;
AJMP LOOP
L
;**************************************
;wykonanie pomiarów dwóch napięć
;- napięcie z przetwornika C/A i napięcie na badanym elemencie
;
POMIAR:
MOV R0,#CSDA
;ustawienie napięcia na przetw. C/A
MOV A,R7
MOVX
@R0,A
@
MOV R0,#CSAD | 7 ;adres przetwornika A/C tak zmodyfikowany,
;aby po dodaniu 1 mieć adres multiplexera
MOV R2,#2
;dwa pomiary
;
AN1:
MOV A,R2
;pomiar w kanale 0 i 1
CLR ACC.1
A
INC
R0
;wpisanie numeru kanału do multiplexera
MOVX
@R0,A
DEC R0
R
MOV A,#5
;odczekanie czasu ok. 10 uS na ustabilizo-
DJNZ ACC,$
;wanie napięć na wej ciu przetwornika A/C
;
INC
A
;A=1 <>0 - jako znacznik braku przerwania
MOVX
@R0,A
;wpisanie dowolnej warto ci do przetwornika
;A/C - start przetwarzania
;
JNZ
$
;A=0 - ustawiane w przerwaniu od przetw. A/C
;jako zakończenie pomiaru
;
DJNZ R2,AN1
;wykonaj drugi pomiar
;
RET
R
;**************************************
TEXT1:
DB
'POMIAR ',0
TEXT2:
DB
'TRANSMISJA',0
;**************************************
;END
Charakterystyki po modyfikacjach:
Rys 2. Charakterystyki po zmodyfikowaniu programu.
Wnioski:
W niniejszym ćwiczeniu badaliśmy tranzystor. Ćwiczenie miało to na celu zademonstrowanie
jednej z wielu możliwości jakie daje nam mikrokontroler 8051. Niniejszy układ dzięki modułom
przetwarzania cyfrowo-analogowym i analogowo-cyfrowym jest bardzo przydatnym narzędziem do
strerowanie procesami i układami analagowymi.