Obsługa wyświetlacza siedmiosegmentowego. Ćwiczenie nr 3 Te

advertisement
Pracownia elektryczno-elektroniczna klasa IV
Cwiczenie_3
Ćwiczenie nr 3
Temat: Obsługa wyświetlacza siedmiosegmentowego.
Cel ćwiczenia:
Celem ćwiczenia jest zapoznanie z obsługą wyświetlacza segmentowego w systemie
DSM-51 oraz ze sposobem sterowaniem sekwencyjnego.
Wiadomości wstępne:
Wyświetlacz 7-segnentowy sterowany jest przez dwa bufory – porty wyjściowe
podłączone do szyny systemowej:
• bufor wyboru wskaźnika (adres 30H w zewnętrznej pamięci danych) – dane wpisywane
do tego bufora określają, który wskaźnik w danym momencie ma być aktywny.
• bufor danych wskaźnika (adres 38H w zewnętrznej pamięci danych)– bajt umieszczony
w tym buforze określa, które segmenty wyświetlacza będą zapalone w wybranym
wskaźniku.
Jedynka
umieszczona
na
konkretnym
bicie
powoduje
świecenie
odpowiedniego segmentu.
Należy również wyzerować bit nr 6 rejestru P1 (P1.6), aby uruchomić działanie
wyświetlaczy LED.
Rys 1. Sposób podłączenia wyświetlacza 7-segmentowego w systemie DSM-51.
Przykład_1
Program zapala jedynkę na pierwszych trzech wyświetlaczach siedmiosegmentowych
(sterowanie statyczne).
LJMP
ORG
START
100H
MOV
MOV
MOV
MOVX
MOV
MOVX
CLR
SJMP
R0,#30H
;adres bufora wyboru wskaźnika
R1,#38H
;adres bufora danych wskaźnika
A,#00000111B
@R0,A
;wpisz wybrane wskaźniki
A,#00000110B
@R1,A
;wpisz wybrane segmenty
P1.6
;włącz wyświetlacz 7-segm
$
START:
Zadanie_1
Napisz program, który wyświetla liczbę 5 na sześciu wyświetlaczach.
Temat: Obsługa wyświetlacza siedmiosegmentowego.
Opracował: mgr inż. Józef Wójcik
1
Pracownia elektryczno-elektroniczna klasa IV
Cwiczenie_3
Przykład_2
Program wyświetla cyfrę jeden na sześciu wyświetlaczach, jeżeli zostanie wciśnięty
klawisz „1” z klawiatury matrycowej. Wciśnięcie każdego innego klawisza powoduje
zapalenie zera na wszystkich wyświetlaczach.
LJMP
ORG
START
100H
MOV
MOV
LCALL
CJNE
SETB
MOV
MOVX
MOV
MOVX
CLR
SJMP
R0,#30H
R1,#38H
WAIT_KEY
A,#1,NIE
P1.6
A,#00111111B
@R0,A
A,#00000110B
@R1,A
P1.6
DALEJ
SETB
MOV
MOVX
MOV
MOVX
CLR
P1.6
A,#00111111B
@R0,A
A,#00111111B
@R1,A
P1.6
SJMP
START
START:
NIE:
DALEJ:
Zadanie_2
Napisz program, który w zależności od wciśniętego klawisza (od 0 - do 9)
klawiatury matrycowej wyświetli jego numer na wszystkich sześciu wyświetlaczach LED.
z
Przykład_3
Program wczytuje do pamięci RAM mikrokontrolera od adresu 40H kody liczb od zera
do dziewięciu następnie w pętli wyświetla je w kolejności rosnącej na wszystkich
wyświetlaczach LED.
LJMP
ORG
START
100H
START:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
PETLA1:
MOV
MOV
PETLA2:
MOV
MOV
MOVX
MOV
MOV
MOVX
CLR
INC
MOV
LCALL
DJNZ
40H,#3FH
41H,#06H
42H,#5BH
43H,#4FH
44H,#66H
45H,#6DH
46H,#7DH
47H,#07H
48H,#7FH
49H,#6FH
;kod liczby zero
;kod liczby jeden
;kod liczby dziewięć
R0,#40H
R2,#10
R1,#30H
A,#00111111B
@R1,A
R1,#38H
A,@R0
@R1,A
P1.6
R0
A,#10
DELAY_100MS
R2,PETLA2
Temat: Obsługa wyświetlacza siedmiosegmentowego.
Opracował: mgr inż. Józef Wójcik
2
Pracownia elektryczno-elektroniczna klasa IV
SJMP
Cwiczenie_3
PETLA1
Zadanie_3
Napisz program, który będzie w pętli odliczał liczby
Kolejne liczby należy wyświetlić co drugim wyświetlaczu LED.
od
dziewięciu
do
zera.
Zadanie_3a
Napisz program, który w pętli równolegle będzie załączał poszczególne segmenty od
a do g na wszystkich sześciu wyświetlaczach z odstępem jednej sekundy(tak jak procedura
testująca system DSM-51). Użyj rozkazu RL A.
Przykład_4
Program wyświetla na każdym wyświetlaczu inną liczbę. Na wyświetlaczu pierwszym
wyświetlana jest liczba pięć na drugim liczba cztery, na szóstym liczba zero. (sterowanie
sekwencyjne pracą kilku wyświetlaczy LED)
LJMP
ORG
START
100H
START:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
PETLA1:
MOV
MOV
MOV
PETLA2:
SETB
MOV
MOV
MOVX
40H,#3FH
41H,#06H
42H,#5BH
43H,#4FH
44H,#66H
45H,#6DH
46H,#7DH
47H,#07H
48H,#7FH
49H,#6FH
;kod liczby zero
;kod liczby jeden
;kod liczby dziewięć
R0,#40H
R2,#6
R3,#00000001B
P1.6
R1,#30H
A,R3
@R1,A
RL
MOV
A
R3,A
MOV
MOV
MOVX
CLR
INC
MOV
LCALL
DJNZ
SJMP
R1,#38H
A,@R0
@R1,A
P1.6
R0
A,#1
DELAY_MS
R2,PETLA2
PETLA1
Zadanie_4
Napisz program, który wyświetla na każdym wyświetlaczu inną liczbę. Na
wyświetlaczu pierwszym wyświetlana jest liczba jeden na drugim liczbę dwa, na szóstym
liczba sześć. Kody liczb należy wpisać w tej samej kolejności do pamięci RAM, tak jak w
przykładzie 3.
Zadanie_5
Napisz program, który wyświetla kolejne cyfry od "0" do "5" na wyświetlaczu 7segmentowym. Wszystkie cyfry mają się zapalać i gasić jednocześnie co 1 sekundę.
Zadanie_6
Temat: Obsługa wyświetlacza siedmiosegmentowego.
Opracował: mgr inż. Józef Wójcik
3
Pracownia elektryczno-elektroniczna klasa IV
Cwiczenie_3
Napisz program, który przewija napis OLA na wyświetlaczu 7-segmentowym od lewej do
prawej strony.
Temat: Obsługa wyświetlacza siedmiosegmentowego.
Opracował: mgr inż. Józef Wójcik
4
Download