Politechnika |
LABORATORIUM PODSTAW SYSTEMÓW MIKROPROCESOROWYCH |
|||
Lubelska |
Ćwiczenie Nr 8 |
|||
Imię i nazwisko: Piotr Jurek Tadeusz Klukowski |
Semestr 5 |
Grupa ED 5.1 |
Rok akad. 1998/99 |
|
Temat ćwiczenia: PRZETWARZANIE A/C I C/A. MODEL TESTERA TRANZYSTORÓW. |
Data wykonania 21.12.98 |
Ocena
|
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,67 |
0,99 |
1,34 |
1,68 |
2 |
2,34 |
2,65 |
3 |
3,32 |
3,65 |
4 |
4,33 |
4,66 |
5 |
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 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Wartość zmierzona |
54 |
7F |
AA |
D2 |
DB |
E3 |
EC |
F5 |
Wartość napięcia [V] |
1.65 |
2.49 |
3.33 |
4.12 |
4.29 |
4.45 |
4.63 |
4.80 |
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 8-ro bitowy. Kody klawisza zawierają się w granicach od 0 do 15 ,a bajt sterujący może przyjmować wartości do 255 i dla tej wartości otrzymujemy 5 V, gdybyśmy nie powielali wartości to regulowalibyśmy napięcie tylko do wartości 1/15 z 5 V czyli od 0 do 0.33 V przez powielenie kodu klawisza na cały bajt uzyskujemy regulacje w całym zakresie 0 - 5V co 1/15 z 5V czyli co 0.33 V
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,R5 ;obliczenie beta
DIV AB
SWAP A
ADD A,B
MOV B,#100
MUL AB
XCH A,B
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