Documente Academic
Documente Profesional
Documente Cultură
72
Sadas
/PSEN controla a leitura da MPE /RD controla a leitura da MDE /WR controla a escrita na MDE ALE controla a desmultiplexagem de DBUS
Outros
XTAL1, XTAL2 para ligao do cristal Vcc, Gnd para ligao da alimentao
73
Circuito de reset do C
A entrada de reset da famlia 51 activa ao nvel lgico 1 Ao ligarmos VCC foramos o estado de reset (a tenso aos terminais do condensador C no pode variar bruscamente). R1 e C garantem um tempo de reset suficiente R1 e R2 devem permitir a aplicao de uma tenso prxima de VCC quando se fecha SW (O dodo permite a descarga rpida de C)
74
75
Sistema mnimo
Nmero de componentes reduzido
Microcontrolador (uC)
MP e MD internas Perifricos internos
P1 VCC 5V
P0
Circuito reset
5V
MP int.
RST
C
/EA ALE /PSEN
5V
Baixo custo
Componentes Montagem Testes
Circuito relgio
P3
Elevada fiabilidade
Poucas ligaes externas Poucos componentes
76
77
CPU INT
OSC
RST
TIMER 1 TIMER 0
Barramento interno
4k ROM
Bus CTR
I/O PORTS
UART
P0 P1 P2 P3
78
Pseudo-bidireccionais
Leitura: JNB P2.5,START Escrita: MOV P1,A Modificao: XRL P1,0Fh Instrues de leitura acedem ao pino Instrues de modificao acedem ao SFR
Vcc
Clk /Q
PINO
L pino
80
81
82
83
I/O
Entrada Sada Entrada Entrada Entrada Entrada Sada Sada
Funo alternativa
RxD (linha de recepo de dados da porta srie) TxD (linha de transmisso de dados da porta srie) INT0 (entrada de interrupo externa 0) INT1 (entrada de interrupo externa 1) T0 (entrada de relgio para o TIMER 0) T1 (entrada de relgio para o TIMER 1) WR (sinal de escrita na memria externa de dados) RD (sinal de leitura na memria externa de dados)
84
Bouncing do interruptor
85
cdigo da subrotina que s retorna quando o interruptor ligado a P1.0 estiver fechado
int_fech TECLA segment equ code P1.0 ; nome simblico P1.0
rseg int_fech salto: s0: jb TECLA, salto mov r0,#255 djnz r0,s0 ; d atraso jb TECLA, salto ret INT. FECHADO? Sim FIM No
86
Px
51
No se poderiam ligar desta forma os 4 LEDs na mesma porta Px, porque se ultrapassaria a capacidade em corrente da porta.
87
P1 51
P-N-P (activa em 0)
P1 51
N-P-N (activa em 1)
CIRCUITOS INTEGRADOS
Existem no mercado circuitos integrados que podem ser utilizados como LED drivers:
7407 - 4 por circuito 74244 8 por circuito ULN2803 8 por circuito
VCC
R
P1 51
LED driver (saida do driver activa em 0)
88
51
Problema
Visualizar nos LEDs o resultado da operao N+3, onde N representa o nmero definido pelos interruptores
P2
89
LEDs e interruptores...
Hardware
5 LEDS (P1.0 a P1.4) 4 Interruptores (P2.0 a P2.3) LEDS activos a zero
P1 VCC
51
Soluo
Repetir para sempre Ler os interruptores Limpar os 4 bits mais significativos Somar 3 Negar o resultado (porqu) Visualizar
P2
90
LEDs e interruptores...
LEDS TECS equ equ cseg mov mov anl add cpl mov sjmp end 91
MP06-07 asg, jca, jpsousa
; Nome simblico para P1 ; Nome simblico para P2 ; Porqu? ; Ler o nmero (teclas) ; Limpar os 4 MSBits ; Adicionar 3 ; Porqu? ; Visualizar o resultado ; Repetir
loop:
51
Problema
Visualizar nos LEDs uma contagem cclica entre 0 e 15 cujo sentido depende do estado de P1.0 P1.0 = 1 crescente P1.0 = 0 decrescente 92
P2
P1
Soluo
inicializar contador repetir (para sempre) visualizar durante 0.5s se tecla premida decrementar contador seno incrementar contador garantir que fica entre 0 e 15
51
P2
93
94
96
Exemplos:
Se fx=12MHz ento Tm=1S Se fx=11.0592MHz ento Tm=1.0851s Se fx=3.6864MHz ento Tm=3.2552s
3+10R6=2000;
R6=199.7
98
10 ciclos mquina
5 ciclos mquina
99
100
Visualizador de 7 segmentos
PINOUT
No Catodo Comum acende-se cada LED ligando o Comum ao GND e aplicando-se o valor lgico 1 em cada segmento que se quer acender, atravs de uma resistncia adequada. No nodo Comum acende-se cada LED ligando o Comum ao VCC e aplicando-se o valor lgico 0 em cada segmento que se quer acender, atravs de uma resistncia adequada.
101
VCC
Soluo
P1
inicializar contador 51 repetir (para sempre) converter para 7SEG e visualizar esperar 0.5s se P1.0=0 decrementar contador seno increment-lo garantir que fica entre 0 e 9
103
104
105
uok: done:
107
108
Teclado matricial
Hardware
Um teclado com 16 teclas (P1)
Problema
Detectar se uma tecla est premida e identificar essa tecla.
0 1 5 9 D 2 6 A E
Nota: No caso da porta P1, que possui resistncias de pull-up, as resistncias mostradas na figura podem ser dispensadas.
3 7 B F
4 P1 8 C 51
109
Teclado matricial...
Colunas (P1.0 a P1.3) so sadas Linhas (P1.4 a P1.7) so entradas
1 5 9 D
2 6 A E
3 7 B F
Soluo
4 P1 8 C 51
Para detectar se uma tecla est premida coloca-se sucessivamente cada um dos bits ligados s colunas do teclado em 0 e so lidos os valores dos bits ligados s linhas. Quando num dos bits ligados a uma linha lido um 0 significa que est premida a tecla situada no cruzamento dessa linha com a coluna que est em 0.
110
P1.7
0 4 P1 8 C
1 5 9 D
2 6 A E
3 7 B F
51
P1.0
111
112
113
114
115
116
117
Temporizaes do LCD
Ciclo de escrita
Ciclo de leitura
118
Ajuste do contraste
O esquema mais usado para ajustar o contraste do LCD o seguinte:
(Pino 3 do ligador)
Se pretendermos variar o contraste por software o potencimetro pode ser substitudo por uma ligao directa do pino Vo sada de uma porta do microcontrolador a funcionar como gerador PWM (Pulse Width Modulation). Se a frequncia do gerador for suficientemente elevada o tempo de reaco do LCD integra a onda rectangular no sendo necessrio filtr-la para obter a tenso de ajuste do contraste.
119
Comandos do LCD
Instruo
RS RW D7 D6 D5 D4 D3 D2 D1 D0 Descrio e tempo de execuo t
120
121
Para se posicionar o cursor na primeira coluna da 2 linha comando (80h + 40h) = C0h ( 80h comando para estabelecer o endereo da DDRAM +
40h 1 endereo da 2 linha )
122
123
124
125