Paweł Skrzypek ED 5.4
LABORATORIUM PODSTAW
SYSTEMÓW
MIKROPROCESOROWYCH
ĆWICZENIE NR 8:
PRZETWARZANIE A/C I C/A. MODEL TESTERA TRANZYSTORÓW.
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 |
2 |
2,33 |
2,66 |
3 |
3,33 |
3,66 |
4 |
4,33 |
4,66 |
5 |
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 |
FE |
FE |
FF |
FE |
FE |
FF |
FE |
FE |
Wartość napięcia [V] |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
Wykonane w tym punkcie pomiary powinny mieć inne wartości, gdyż układ 8 rezystorów był źle zlutowany. Przerwa pomiędzy nimi uniemożliwiła przepływ prądu, wiec mierzone napięcie miało wartość maksymalną równą 5V.
ZADANIE NR2
Uzupełnienie programu TESTER01.ASM. Pomiar charakterystyk wyjściowych tranzystora dla dwóch wartości prądu bazy.
Ustawienia wartości początkowych układu 8255:
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
Dalsza część programu bez zmian.
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
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
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