Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Zadání 5

DOC
Stáhnout kompletní materiál zdarma (60 kB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu DOC.

Zadání č. 5:

  1. Navrhněte zapojení modulu čtyřmístného displeje s LED sedmisegmentovkami. Data budou na displej přenášena postupně sériově po jednotlivých číslicích v kódu sedmisegmentovky (převod BCD čísla na kód bude realizován programově).

  2. Nakreslete vývojový diagram a napište program (včetně komentáře), který bude opakovaně číst čtyřmístné BCD číslo uložené v DPTR a zobrazovat je na displeji.

Schéma zapojení:

Popis zapojení:

Ve schématu je k mikrořadičí 8051 připojen krystal 12MHz. Na vstup EA je připojena log. 1, aby byl program čten z vnitřní paměti. Jako převodník sériové informace na paralelní (pro 4 sedmisegmentovky) jsme použili inteligentní řadič, který má v sobě posuvný registr. Tyto řadiče vyrábí řada firem, s použitím pro 34, 35, 14 a 15 segmentů. Zvláštností tohoto zapojení, je že se segmenty rozsvítí při log. 1. Pokud bychom v budoucnu použili, třeba jiný typ řadiče (u kterého by se segmenty rozsvěcovali log. 0), pak by nám stačilo změnit tabulku znaků.

Použité součástky:

Krystal X 12MHz

Mikrořadič 8051

Řadič M5451 35 segmentů

Kondenzátor C1 50uF

Kondenzátor C2 1nF

Kondenzátory C3, C4 30pF

Rezistor R1 10k

Rezistor R2 12k

Zdrojový kód:

org 0

zac:

mov r7,dph

mov r6,dpl ;uložení obsahu dptr

mov dptr,#tab

mov a,r6 ;přesun nižších 8b do a

anl a,#00001111b ;nulování horních čtyřech bitů -> získání indexu ;do tabulky

movc a,@a+dptr ;získání znaku

mov r0,a ;přesun znaku do r0

mov a,r6 ;přesun nižších 8b do a

anl a,#11110000b ;nulování dolních čtyřech bitů

swap a ;výměna čtveřice bitů v a -> získání indexu

movc a,@a+dptr ;získání znaku

mov r1,a ;přesun znaku na r1

;stejné operace akorát s dph a výsledky na r2 r3

mov a,r7 ;přesun vyšších 8b do a

anl a,#00001111b ;nulování dolních čtyřech bitů -> získání indexu

movc a,@a+dptr ;získání znaku

mov r2,a ;přesun znaku do r2

mov a,r7 ;přesun vyšších 8b do a

anl a,#11110000b ;nulování dolních čtyřech bitů

swap a ;výměna čtveřice bitů v a -> získání indexu

movc a,@a+dptr ;získání znaku

mov r3,a ;přesun znaku na r1

mov dph,r7

mov dpl,r6 ;vložení opětovné hodnoty co byla v dptr

mov r4,#3 ;první tři nevyužité vývody

nevyuz: setb p2.1 ;generování clk

clr p2.0

clr p2.1 ;generování clk

djnz r4,nevyuz

mov a,r0 ;uložení hodnoty do a pro sedmisegmentovku

acall vysli ;vysílání hodnoty do obvodu

mov a,r1

acall vysli

mov a,r2

acall vysli

mov a,r3

acall vysli

sjmp zac

vysli: mov r5,#8

cykl: rlc a ;rotování přes cy - do leva

setb p2.1 ;generování clk

mov p2.0,c ;vysílání hodnoty do obvodu

clr p2.1 ;generování clk

djnz r5,cykl

ret

tab: db 00111111b ;"0"

db 00000110b ;"1"

db 01011011b ;"2"

db 01001111b ;"3"

db 01100110b ;"4"

db 01101101b ;"5"

db 01111101b ;"6"

db 00000111b ;"7"

db 01111111b ;"8"

db 01101111b ;"9"

Témata, do kterých materiál patří