rezolvari probleme si tabby v2

22
Probleme: 1. Să se conecteze la un microcontroler 80C51 16 Ko memorie EPROM, 16 Ko memorie RAM şi încă 16 Ko memorie RAM din care se poate executa şi program. Se vor folosi circuite de 16 Ko. a) Cate lini de adresa folosim? 16 Ko= 2 4 2 10 =2 14 => 14 lini de adresa => 2 2 2 4 2 4 2 4 b) Spatiul de memorare pentru fiecare circuit? EPROM 0000H – 3FFFH RAM 4000H – 7FFFH RAMP 8000H – BFFFH c) Harta Memoriei A15 A14 A13 A12 A3 A2 A1 A0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 d) Schema 1

Upload: sergiu-culda

Post on 18-Dec-2015

248 views

Category:

Documents


7 download

DESCRIPTION

Rezolvari Probleme SI Tabby v2

TRANSCRIPT

Probleme:1. S se conecteze la un microcontroler 80C51 16 Ko memorie EPROM, 16 Ko memorie RAM i nc 16 Ko memorie RAM din care se poate executa i program. Se vor folosi circuite de 16 Ko.

a) Cate lini de adresa folosim?16 Ko= => 14 lini de adresa =>

b) Spatiul de memorare pentru fiecare circuit?EPROM 0000H 3FFFHRAM 4000H 7FFFHRAMP 8000H BFFFH

c) Harta Memoriei

A15A14A13A12A3A2A1A0

0000010101010101

0011010101010101

1100010101010101

d) Schema

1. S se conecteze la un microcontroler 80C51 32 Ko memorie EPROM, 32 Ko memorie RAM i nc 32 Ko memorie RAM din care se poate executa i program. Se vor folosi circuite de 32 Ko.

a) Cate lini de adresa folosim?32 Ko= => 15 lini de adresa =>

b) Spatiul de memorare pentru fiecare circuit?EPROM +RAM 0000H 7FFFHRAMP 8000H FFFFH

c) Harta Memoriei

A15A14A13A12A3A2A1A0

0001010101010101

1101010101010101

d) Schema

1. S se conecteze la un microcontroler 80C51 32 Ko memorie EPROM, 64 Ko memorie RAM i nc 32 Ko memorie RAM din care se poate executa i program. Se vor folosi circuite de 32 Ko. a) Cate lini de adresa folosim?32 Ko= => 15 lini de adresa =>

b) Spatiul de memorare pentru fiecare circuit?EPROM 0000H 7FFFHRAMP 8000H FFFFHRAM

c) Harta Memoriei

A15A14A13A12A3A2A1A0

0001010101010101

1101010101010101

d) Schema

1. S se conecteze la un microcontroler 80C51 64 Ko memorie EPROM, 32 Ko memorie RAM i nc 32 Ko memorie RAM din care se poate executa i program. Se vor folosi circuite de 32 Ko. a) Cate lini de adresa folosim?32 Ko= => 15 lini de adresa =>

b) Spatiul de memorare pentru fiecare circuit?EPROM 0000H 7FFFHRAMP+RAM 8000H FFFFH

c) Harta Memoriei

A15A14A13A12A3A2A1A0

0001010101010101

1101010101010101

d) Schema

1. S se conecteze la un microcontroler 80C51 32 Ko memorie EPROM, 64 Ko memorie RAM i nc 64 Ko memorie RAM din care se poate executa i program. Se vor folosi circuite de 32 Ko.

a) Cate lini de adresa folosim?32 Ko= => 15 lini de adresa =>

b) Spatiul de memorare pentru fiecare circuit?EPROM+RAM 0000H 7FFFH RAMP 8000H FFFFH

c) Harta Memoriei

A15A14A13A12A3A2A1A0

0001010101010101

1101010101010101

d) Schema

1. S se construiasc un program care s afieze pe LCD-ul LM016L, textul LCD. Cod:

18

org 0000MOV A,#38H ; initializare LCD 2 linii, matrice 5x7ACALL COMMAND ; apeleaza subrutina commandACALL DELAY ; apeleaza subrutina delayMOV A,#0EH ; comanda display on, cursor blinkingACALL COMMANDACALL DELAY

; secventa cod comanda Clear LCDMOV A,#01H ; comanda Clear LCDACALL COMMAND ; apel secventa COMMANDACALL DELAY ; apel secventa DELAY

; secventa cod comanda shift cursor rightMOV A,#06H ; comanda shift cursor rightACALL COMMAND ; apel secventa COMMANDACALL DELAY ; apel secventa DELAY

; secventa cod comanda cursorul la inceputul primei liniiMOV A,#80H ; comanda cursorul la inceputul primei liniiACALL COMMAND ; apel secventa COMMANDACALL DELAY ; apel secventa DELAY

MOV A,#'L' ;ACALL data1ACALL DELAY

MOV A,#'C' ;ACALL data1ACALL DELAY

MOV A,#'D' ;ACALL data1ACALL DELAY

HERE: JMP HERECOMMAND: MOV P3,A ; Trimite comanda la LCDCLR P2.4 ; RS=0 pentru comandaCLR P2.5 ; R/W=0 pentru scriereSETB P2.3; E=1 pentru puls HCLR P2.3 ; E=0 pentru puls H-to-LRET

data1: MOV P3,A ; Scrie data1 la LCDSETB P2.4 ; RS=1 pentru data1CLR P2.5 ; R/W=0 pentru scriereSETB P2.3 ; E=1 pentru puls HCLR P2.3 ; E=0 for H-to-L pulseRET

DELAY: MOV R2,#50D1: MOV R3,#0FFHD2: DJNZ R3,D2DJNZ R2,D1RETEND

1. S se construiasc un program care s afieze pe primul rnd al LCD-ului LM016L textul LCD, iar pe rndul urmtor LM016L.Desenul ca la problema 6. Cod:

org 0000

MOV A,#38H ; initializare LCD 2 linii, matrice 5x7ACALL COMMAND ; apeleaza subrutina commandACALL DELAY ; apeleaza subrutina delayMOV A,#0EH ; comanda display on, cursor blinkingACALL COMMANDACALL DELAY

; secventa cod comanda Clear LCDMOV A,#01H ; comanda Clear LCDACALL COMMAND ; apel secventa COMMANDACALL DELAY ; apel secventa DELAY

; secventa cod comanda shift cursor rightMOV A,#06H ; comanda shift cursor rightACALL COMMAND ; apel secventa COMMANDACALL DELAY ; apel secventa DELAY

; secventa cod comanda cursorul la inceputul primei liniiMOV A,#80H ; comanda cursorul la inceputul primei liniiACALL COMMAND ; apel secventa COMMANDACALL DELAY ; apel secventa DELAY

MOV A,#'L' ;ACALL data1ACALL DELAY

MOV A,#'C' ;ACALL data1ACALL DELAY

MOV A,#'D' ;ACALL data1ACALL DELAY

; secventa cod comanda cursorul la inceputul primei liniiMOV A,#0C0H ; comanda cursorul la inceputul primei liniiACALL COMMAND ; apel secventa COMMANDACALL DELAY ; apel secventa DELAY

MOV A,#'L' ;ACALL data1ACALL DELAY

MOV A,#'M' ;ACALL data1ACALL DELAY

MOV A,#'0' ;ACALL data1ACALL DELAY

MOV A,#'1' ;ACALL data1ACALL DELAY

MOV A,#'6' ;ACALL data1ACALL DELAY

MOV A,#'L' ;ACALL data1ACALL DELAY

HERE: JMP HERECOMMAND: MOV P3,A ; Trimite comanda la LCDCLR P2.4 ; RS=0 pentru comandaCLR P2.5 ; R/W=0 pentru scriereSETB P2.3 ; E=1 pentru puls HCLR P2.3 ; E=0 pentru puls H-to-LRET

data1: MOV P3,A ; Scrie data1 la LCDSETB P2.4 ; RS=1 pentru data1CLR P2.5 ; R/W=0 pentru scriereSETB P2.3 ; E=1 pentru puls HCLR P2.3 ; E=0 for H-to-L pulseRET

DELAY: MOV R2,#50D1: MOV R3,#0FFHD2: DJNZ R3,D2DJNZ R2,D1RET

END

1. S se realizeze comanda motorului pas cu pas unipolar n regim de semipas (schem + cod C + cod asamblare + comentarii) a) Schemab) Cod C

#include#define stepper P1void delay();void main(){while(1){stepper= 0x08;delay;stepper = 0x0C;delay();stepper=0x04;delay();stepper=0x06;delay();stepper=0x02;delay();stepper=0x03;delay();stepper=0x01;delay();stepper=0x09;delay();}}void delay(){unsigned char i,j,k,l;for(i=0;i