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.
Charakterystyki zdjęte za pomocą modely badania tranzystorów, programu tranzystor.exe i tranzystor.asm.
Modyfikowanie programu tranzystor.asm w celu zmiany prądu bazy badanego tranzystora i ilości ściąganych charakterystyk.
Kod programu
SET_8255 EQU 10001011B
LJMP START
ORG 13H
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
;************************************** 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 wskanik końca nadawania RETI
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 wskanik danych RETI
;************************************** ;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
;************************************** 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
;Timer T1 pracuje w modzie 2: ;8 bitów auto-reload MOV TMOD,#00100000B
;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
SETB EX1 ;włšczenie przerwań z wejcia 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
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 wejcia INT1 ;************************************** LCALL LCD_CLR MOV DPTR,#TEXT2 ;wypisanie tekstu o rozpoczęciu transmisji LCALL WRITE_TEXT
MOV SBUF,#55H ;wysłanie znacznika poczštku transmisji MOV A,#2 ;odczekanie czasu na 'obudzenie' IBMa LCALL DELAY_100MS
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
;************************************** ;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
INC R0 ;wpisanie numeru kanału do multiplexera MOVX @R0,A DEC R0
MOV A,#5 ;odczekanie czasu ok. 10 uS na ustabilizo- DJNZ ACC,$ ;wanie napięć na wejciu przetwornika A/C
INC A ;A=1 <>0 - jako znacznik braku przerwania MOVX @R0,A ;wpisanie dowolnej wartoci 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
;************************************** 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.