LABORATORIUM PODSTAW
SYSTEMÓW
MIKROPROCESOROWYCH
∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇
SPRAWOZDANIE Z ĆWICZENIA NR 8.
TEMAT: Przetwarzanie A/C i C/A; Model testera tranzystorów.
Sprawozdanie sporządził: ROBERT SIWIEC
Grupa dziekańska: ED 5.1
Rok akademicki: 96/97
∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇
KATEDRA ELEKTRONIKI
POLITECHNIKA LUBELSKA
ZADANIE NR 1
a) Obserwacja pracy programu VOLT1.HEX.
Tabela kodów określająca odpowiadające im napięcia
Numer klawisza |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
||||||||||||||||
Napięcie [V] |
0,33 |
0,66 |
0,99 |
1,33 |
1,66 |
1,99 |
2,33 |
2,66 |
2,99 |
3,33 |
3,66 |
4 |
4,33 |
4,66 |
4,99 |
Powyższe wartości zostały zmierzone woltomierzem, ale można je było uzyskać ze wzoru:
U=(x/15)*5V gdzie x- numer klawisza.
b) Obsługa programu VOLT2.HEX; pomiar napięcia podanego na wejście przetwornika A/C z drabinki 8 rezystorów zasilanych napięciem 5V.
Tabela pomiarowa
Wejście multipleksera |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Wartość zmierzona |
7F |
A8 |
FF |
D2 |
DA |
E4 |
EC |
F4 |
Wartość napięcia [V] |
2,97 |
2,97 |
2,97 |
2,97 |
2,97 |
2,97 |
2,97 |
2,97 |
Wykonane w tym punkcie pomiary powinny mieć inne wartości, gdyż układ 8 rezystorów był źle zlutowany. Miernik wskazywał stała wartość napięcia równą 2,97V.
ZADANIE NR2
Uzupełnienie programu TESTER01.ASM. Pomiar charakterystyk wyjściowych tranzystora dla dwóch wartości prądu bazy. Poniżej jest przedstawiony listing tego programu:
;************************************************
;PLIK: TESTER01.ASM
;OPIS: TESTER TRANZYSTORÓW wersja 0.1
;************************************************
;********** Ustawienie wartosci poczatkowych dla 8255 ***********
;W programie wykorzystywany bedzie PORT A ukladu 8255 do sterowania
;4 bitowym przetwornikiem C/A
;Nalezy poprawnie uzupelnic wszystkiee linie programu zawierajce znak ?
PA_M EQU 0 ;TRYB 0
PA_D EQU 0 ;OUT->0, IN->1
PCA_D EQU 0 ;OUT->0, IN->1
PB_M EQU 0 ;TRYB 0
PB_D EQU 0 ;OUT->0, IN->1
PCB_D EQU 0 ;OUT->0, IN->1
PA EQU PA_M*4+PA_D*2+PCA_D
PB EQU PB_M*4+PB_D*2+PCB_D
SET_8255 EQU 80H+PA*8+PB
;**************************************
LJMP START
ORG 100H
START:
MOV R0,#CS55D ;ustawienie ukladu 8255
MOV A,#SET_8255
MOVX @R0,A
LCALL LCD_CLR
LCALL WAIT_KEY ;numer klawisza jako prąd
MOV R0,#CS55A ;bazy tranzystora
MOVX @R0,A
PUSH ACC ;wpisz prąd bazy na LCD
MOV DPTR,#TEXT3
LCALL WRITE_TEXT
POP ACC
LCALL WRITE_HEX
MOV A,#8H+4H
LCALL WRITE_INSTR
MOV R0,#CSDA ;adres przetwornika C/A
MOV R1,#CSMX ;adres multipleksera
LOOP:
LCALL WAIT_KEY ;wybrany klawisz (0..15)
MOV R2,A
MOV A,#80H+40H ;LCD na początek drugiej
LCALL WRITE_INSTR ;linii
MOV A,R2 ;powielenie numeru na
SWAP A ;cały bajt
ADD A,R2
MOVX @R0,A ;wpis do przetwornika C/A
LCALL WRITE_HEX ;i wpis na LCD wartości
;podawanej na wyjście
CLR A ;podłączenie wejścia 0
MOVX @R1,A ;do przetwornika A/C
MOV DPTR,#TEXT1
LCALL WRITE_TEXT
DEC R1 ;inicjowanie pracy
MOVX @R1,A ;przetwornika A/C
MOV A,#1
LCALL DELAY_MS
MOVX A,@R1 ;wynik pomiaru wejścia 0
INC R1
LCALL WRITE_HEX
MOV A,#1 ;podłączenie wejścia 1
MOVX @R1,A ;do przetwornika A/C
MOV DPTR,#TEXT2
LCALL WRITE_TEXT
DEC R1 ;inicjowanie pracy
MOVX @R1,A ;przetwornika A/C
MOV A,#1
LCALL DELAY_MS
MOVX A,@R1 ;wynik pomiaru wejścia 1
INC R1
LCALL WRITE_HEX
SJMP LOOP
TEXT1:
DB '-> N0=',0
TEXT2:
DB ' N1=',0
TEXT3:
DB 'Prad Bazy = ',0
Tabela pomiarowa
Numer pomiaru |
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
Prąd bazy = 50μA |
N0 |
01 |
11 |
21 |
31 |
41 |
54 |
65 |
76 |
87 |
97 |
AB |
B9 |
CC |
D3 |
D4 |
D4 |
Kod klawisza = 05 |
N1 |
00 |
04 |
05 |
06 |
08 |
08 |
09 |
09 |
0A |
0C |
0D |
10 |
10 |
10 |
10 |
10 |
Napięcie Uce [mV] |
|
0 |
80 |
100 |
120 |
160 |
160 |
180 |
180 |
200 |
240 |
240 |
260 |
320 |
320 |
320 |
320 |
Prąd Ic [mA] |
|
0,1 |
0,7 |
1,6 |
2,5 |
3,3 |
4,6 |
5,6 |
6,7 |
7,7 |
8,5 |
15,6 |
17,2 |
18,8 |
19,5 |
19,6 |
19,6 |
Prąd bazy = 100μA |
N0 |
00 |
11 |
21 |
32 |
43 |
54 |
65 |
76 |
86 |
98 |
A9 |
BA |
CB |
D1 |
D1 |
D1 |
Kod klawisza = 0A |
N1 |
00 |
03 |
04 |
05 |
06 |
07 |
07 |
08 |
08 |
09 |
09 |
0A |
0B |
0B |
0B |
0B |
Napięcie Uce [mV] |
|
0 |
60 |
80 |
100 |
120 |
140 |
140 |
140 |
160 |
160 |
180 |
180 |
200 |
220 |
220 |
220 |
Prąd Ic [mA] |
|
0 |
0,8 |
1,7 |
2,7 |
3,7 |
4,7 |
5,8 |
6,9 |
7,8 |
9 |
16 |
17,7 |
19,3 |
19,8 |
19,8 |
19,8 |
Przykładowe obliczenia:
N0=54; N1=08;
Uce=N1*20mV=8*20=160mV
Ic=(N0-N1)*100μA=(54-8)*100=4,6mA
Wpisywany kod klawisza jest przez program powielany na cały bajt, gdyż przetwornik C/A jest 4-ro bitowy. Ponadto zwiększa to dokładność pomiaru
Wykres zależności Ic=f(Uce)
ZADANIE NR 3
Modyfikacja pliku TESTER01.ASM w celu obliczenia współczynnika wzmocnienia β=Ic/Ib i wyświetlenia go na wyświetlaczu LCD.
Listing programu
PA_M EQU 0 ;TRYB 0
PA_D EQU 0 ;OUT->0, IN->1
PCA_D EQU 0 ;OUT->0, IN->1
PB_M EQU 0 ;TRYB 0
PB_D EQU 0 ;OUT->0, IN->1
PCB_D EQU 0 ;OUT->0, IN->1
PA EQU PA_M*4+PA_D*2+PCA_D
PB EQU PB_M*4+PB_D*2+PCB_D
SET_8255 EQU 80H+PA*8+PB
LJMP START
ORG 100H
START:
MOV R0,#CS55D ;ustawienie układu 8255
MOV A,#SET_8255
MOVX @R0,A
LCALL LCD_CLR
LCALL WAIT_KEY ;numer klawisza jako prąd
MOV R0,#CS55A ;bazy tranzystora
MOVX @R0,A
MOV R5,A ;wpisanie do R5 prądu bazy
PUSH ACC ;wpisz prąd bazy na LCD
MOV DPTR,#TEXT3
LCALL WRITE_TEXT
POP ACC
LCALL WRITE_HEX
MOV A,#8H+4H
LCALL WRITE_INSTR
MOV R0,#CSDA ;adres przetwornika C/A
MOV R1,#CSMX ;adres multipleksera
LOOP:
LCALL WAIT_KEY ;wybrany klawisz (0..15)
MOV R2,A
MOV A,#80H+40H ;LCD na początek drugiej
LCALL WRITE_INSTR ;linii
MOV A,R2 ;powielenie numeru na
SWAP A ;cały bajt
ADD A,R2
MOVX @R0,A ;wpis do przetwornika C/A
LCALL WRITE_HEX ;i wpis na LCD wartości
;podawanej na wyjście
CLR A ;podłączenie wejścia 0
MOVX @R1,A ;do przetwornika A/C
MOV DPTR,#TEXT1
LCALL WRITE_TEXT
DEC R1 ;inicjowanie pracy
MOVX @R1,A ;przetwornika A/C
MOV A,#1
LCALL DELAY_MS
MOVX A,@R1 ;wynik pomiaru wejścia 0
MOV R3,A
INC R1
LCALL WRITE_HEX
MOV A,#1 ;podłączenie wejścia 1
MOVX @R1,A ;do przetwornika A/C
MOV DPTR,#TEXT2
LCALL WRITE_TEXT
DEC R1 ;inicjowanie pracy
MOVX @R1,A ;przetwornika A/C
MOV A,#1
LCALL DELAY_MS
MOVX A,@R1 ;wynik pomiaru wejścia 1
MOV R4,A
INC R1
LCALL WRITE_HEX
LCALL LICZ
PUSH ACC
MOV DPTR,#TEXT4
LCALL WRITE_TEXT
POP ACC
LCALL WRITE_HEX
SJMP LOOP
TEXT1:
DB '-> N0=',0
TEXT2:
DB ' N1=',0
TEXT3:
DB 'Prąd Bazy = ',0
TEXT4:
DB 'Wsp. Beta = ',0
licz: MOV A,R5 ;obliczenie prądu bazy
MOV B,#10
MUL AB
XCH A,B
ADD A,B
MOV R5,A
MOV A,R3 ;obliczenie prądu kolektora
CLR C
SUBB A,R4
MOV B,#100
MUL AB
XCH A,B
ADD A,B
MOV B,R5 ;obliczenie beta
DIV AB
SWAP A
ADD A,B
RET