Microcontrolador 01 PDF
Microcontrolador 01 PDF
Microcontrolador 01 PDF
Capacidade de 64 KBytes de endereamento externo de RAM; Processador Booleano (opera com bits); Ciclos tpicos de instruo de 1 e 2 s a 12 MHz; Instruo direta de diviso e multiplicao; Entradas de interrupo externa;
Descrio Funcional
P1.0 P1.7 Esses Pinos so endereados como porta bidirecional de 8 bits podendo ter seus pinos individualmente endereveis. Podem alimentar ou drenar uma carga TTL, ou vrias cargas MOS diretamente sem pull-ups externos. Durante a verificao de programas, serve como entrada da parte menos significativa de endereos. RST/VPD Por esse pino podemos resetar o sistema pela aplicao de um nvel lgico 1 TTL, durante dois ou mais ciclos de mquina.
10 a17
P3.0 P3.7 Porta de I/O bidirecional de 8 bits, com resistores de pullup interno, servindo tambm s funes especiais. XTAL 2 Sada do amplificador inversor do oscilador e entrada para o gerador de clock interno. Se for usado clock externo, serve como entrada para ele. Entrada do amplificador inversor do oscilador, deve ser conectado a terra se usamos clock externo.
18
19
XTAL 1
20 21 a 28
Vss
Conexo de terra
P2.0 P 2.7 Porta bidirecional de 8 bits, usada como sada ou da (A8 A15) parte mais significativa do endereo de expanso de memria, ou verificao da programao respectivamente. Esses pinos podem suprir/drenar uma carga TTL ou entradas MOS sem pull-up externo. PSEN\ Sada para habilitao do programa externo. o strobe da memria de programa externa. Quando o sistema vai buscar instrues ou operandos na memria externa, esse pino vai a nvel zero. PSEN\ no ativado (permanece alto) durante busca de dados na memria interna de programa. Sada habilitadora do latch de endereos. Como no exemplo anteriormente dado, serve para separar a parte menos significativa do endereo que est multiplexada como os dados, no caso de usarmos memria externa. Entrada de seleo da memria de programa. Quando o nvel lgico 0, a CPU trabalha apenas com a memria de programa externa. Se em nvel lgico 1, a CPU executa instrues da memria de programa interna, desde que o PC seja menor que 4096. Esse pino recebe +21.0 volts durante a programao da ROM interna.
29
30
ALE
31
EA\
32 a 39
P0.0 P0.7 Porta 8 bits bidirecional com dreno aberto. Durante (AD0AD7) operaes com memria externa, fornece multiplexadas parte menos significativa de endereo e os dados, ativando pull-ups internos. Serve tambm como sada dos bytes de instruo, durante a verificao dos programas, sendo necessrias a colocao de pull-ups externos para esta operao. Cada pino dessa porta pode suprir/drenar duas cargas TTL. Vcc Pino para ligao de +5.0 volts durante a operao normal.
40
no mesmo endereo, mas no verdade, pois as instrues para RAM interna so diferentes das instrues para a RAM externa. Memria de Programa:
A memria de programa pode ser expandida atravs de barramentos externos. Aps o reset, o microcontrolador 8051 ir buscar a primeira instruo no endereo 0000H da memria de programa. O nvel lgico presente no terminal EA\ determina se o microcontrolador dever iniciar a busca das instrues na memria interna ou exclusivamente na memria externa, ignorando a memria interna, se a mesma existir. O sinal PSEN\ habilita o acesso memria de programa externa. Os 4 KBytes, 8 KBytes ou 16 KBytes da memria de programa, dependendo do membro da famlia, podem estar na ROM interna ou na ROM externa. Essa seleo feita ao se ligar o pino EA\ (External Access) no VCC ou no GND, respectivamente. Nos dispositivos com 4 KBytes de ROM, se EA\ for ligado ao VCC, a CPU buscar o programa no endereo de 0000h a 0FFFh na ROM interna e buscar o endereo de 1000h a FFFFh na ROM externa. Nos dispositivos com 8 KBytes de ROM, se EA\ for ligado ao VCC, a CPU buscar o programa do endereo 0000h a 1FFFh na ROM interna e buscar o endereo de 2000h a FFFFh na ROM externa. Nos dispositivos com 16 KBytes de ROM, se EA\ for ligado ao VCC, a CPU buscar o programa do endereo de 0000h a 3FFFh na ROM interna e buscar o endereo de 4000h a FFFFh na ROM externa. Se EA\ for ligado ao GND, a CPU far a busca na memria externa. Para os dispositivos da famlia MCS-51, sem ROM interna, esse pino deve ser sempre ligado ao GND, para que o programa seja buscado integralmente na memria ROM externa e, assim, funcione adequadamente. O sinal de controle de leitura da ROM externa o sinal PSEN\ que no ativo para a busca das instrues na memria de programa interna.
10
11
2.2.2 Registros (Bits Endereveis) Nos microcontroladores da famlia MCS51, a faixa que vai do endereo 20H ao endereo 2FH da memria de dados interna chamada de regio de registros bit-enderecveis. Estas posies da memria de dados interna possuem uma caracterstica especial que permite a alterao individual de cada bit atravs de instrues especialmente destinadas a este fim. Desta maneira, cada bit enderevel possui um endereo individual especfico, como mostra a tabela abaixo.
Observem que existem 128 endereos de bits nessa faixa de memria, que vo do endereo 00h at o 7Fh, ou em dcimas, 0 10 a 12710, que ocupam as posies de memria RAM interna de 20h a 2Fh. Pode-se enderear um bit de duas maneiras diferentes. Uma delas por meio do endereo do bit, que vai de 00h = 0 10 (bit 0 da posio de memria 20h) at o endereo 7Fh = 12810 (bit 7 da posio de memria 2Fh), como foi representado anteriormente. A outra maneira de represent-lo por meio do endereo de memria; por exemplo, o bit cujo endereo 00h tambm pode ser representado como 20h.0, ou seja, esse bit est localizado no contedo da posio de memria 20h e sua posio corresponde ao bit menos significativo ou ao bit 0. Da mesma maneira, o bit cujo endereo 6Ch tambm pode ser representado pelo endereo 2Dh.4. Caso se conhea uma das duas maneiras de endereamento, possvel obter a outra. A primeira converso, da representao ZWh para a representao 2Xh.Y (ZWh 2Xh.Y), pode ser feita de acordo com o seguinte procedimento: Como so 16 as posies de memria que vo do endereo 20h at 2Fh, e como cada posio de memria tem 8 bits, pode-se representar o endereo de um bit, cujo endereo vai de 00h at 7Fh, em funo do endereo de memria e de sua posio dentro desse endereo, transformando o endereo do bit (00h 7Fh) em decimal, dividindo-o por 8, obtendo-se o quociente (q) e o resto em hexadecimal e por fim, aplicando-se a frmula: [20h + qh]h.r = 2qh.r. Exemplo: Obter a outra representao do endereo do bit 5Dh? Soluo: Transformar o endereo do bit de hexadecimal para decimal: 5.16 1+13.160 = 9310.
12
Dividir o valor do endereo em decimal (9310) por 8: 93/8, obtendo o quociente q = 1110 e o resto r = 510. Transformar o quociente (q) e o resto em hexadecimal: q = 11 10 = Bh e r = 510 = 5h. Aplicar a frmula: 5Dh = [ 20h + Bh]h.5 = 2Bh.5, ou seja o endereo do bit 5Dh igual a 2Bh.5. Para transformar o endereo de um bit representao 2Xh.Y para ZWh (2Xh.YZWh), basta seguir o seguinte procedimento: Obter o quociente e o resto. O quociente (q) obtido subtraindo 2Xh de 20h e transformando-o em decimal, e o resto obtido atravs do nmero aps o ponto (.) de tal representao. Multiplicando o quociente em decimal por 8 e somando com o resto em decimal, obtm-se o endereo em decimal. O valor do endereo em decimal deve ser transformado para hexadecimal. Exemplo: Como obter a outra maneira de representar o endereo do bit 2Ah.3? Soluo: Obter o quociente (q) e o resto (r): q = 2Ah 20h = Ah e r= 3h. Transformar q e r de hexadecimal para decimal: q = Ah = 10 10 e r= 3h = 310. Multiplicar o quociente por 8 e somar o resultado com o resto em decimal: 10 * 8+3 =8310. Transformar o endereo de decimal para hexadecimal: 8310= 5 *161+ 3*160=53h. Essas posies de memria podem ser utilizadas como posies de memria de 8 bits, com propsito geral, ou podem ser empregadas principalmente como bits individuais ( 0 resetado, 1 setado). Elas podem ser testadas por instrues de testes de bits do tipo JB bit e JNB bit. Esses bits so muito utilizados para representar condies digitais, ou seja, como flags sinalizadores de condio (bits que sinalizam condies de controle), por exemplo, sistema de iluminao ligado ou desligado, chave acionada ou desacionada, resultado de uma operao maior que zero ou menor que zero, etc.). A terceira faixa de memria, que vai do endereo 30h at 7Fh para o microcontrolador 8051 e de 30h at FFh para os membros da famlia de microcontroladores MCS-51 da Intel, que tm 256 bytes de memria interna, s pode ser acessada de 8 em 8 bits, por endereamento direto at 7Fh e por endereamento indireto de 80h a FFh. Seu uso de propsito geral.
PSW (D0H) Program Status Word: Contm os sinalizadores (flags) que indicam as ocorrncias na execuo da ltima operao lgica ou aritmtica. Contm tambm os bits de controle para a seleo do banco de registros em uso. SP (81H) Stack Pointer (Ponteiro da Pilha): indica o topo da pilha (ltimo dado colocado). A (E0H) e B (F0H): Trata-se do acumulador (A), empregado nas operaes lgicas e aritmticas da CPU, e de um registro secundrio (B), empregado apenas nas operaes de multiplicao e diviso. So registros intimamente relacionados com a Unidade Lgica e Aritmtica da CPU. DPH (83H) e DPL (82H): Registros de 8 bits que compem respectivamente os bytes mais e menos significativos do ponteiro de dados de 16 bits chamado DPTR, utilizado para endereamento indireto da memria de programa e da memria externa de dados. P0 (80H), P1 (90H), P2(A0H) e P3(B0H): Registros que contm cpias dos estados dos quatro Ports de E/S. A escrita nesses registros altera automaticamente o contedo na sada do Port correspondente. A leitura carrega o estado de entrada presente nos terminais do Port no registro correspondente. IE (A8H) Interrupt Enable e IP (B8H) Interrupt Priority: Registros de habilitao / desabilitao das interrupes e de definio da prioridade de atendimento de cada uma delas. PCON (87H) Power Control: Presente apenas na verso CMOS, este registro permite colocar o 80C51 em modos de reduo de consumo de energia, preservando o contedo da memria interna. TCON (88H) Timer Control e TMOD (89H) Timer Mode: Registros de controle e modo de operao dos temporizadores / contadores de eventos. TH1 (8DH), TL1 (8BH), TH0 (8CH) e TL0 (8AH): Registros de dados dos temporizadores / contadores de eventos 1 e 0, respectivamente. Contm os valores das contagens realizadas (16 bits). SCON (98H) Serial Control e SBUF (99H) Serial Buffer: Registros de controle da interface serial e de armazenamento dos dados a serem transmitidos (escrita) ou recebidos (leitura).
14
3. Reset
O reset do 8051 ativado quando o terminal RST levado a nvel lgico 1(alto) por dois ou mais ciclos de mquina. Consiste basicamente na inicializao de alguns registros com valores predeterminados: Os registros A, B, PSW, DPTR, PC e todos os registros dos temporizadores / contadores de eventos so zerados. O registro SP carregado com o valor 07H. Os Ports P0, P1, P2 e P3 so carregados com FFH. Durante o reset o nvel lgico dos terminais indeterminado, assumindo valor 1 aps a execuo da seqncia de reset interna. O registro SCON zerado e o registro SBUF fica com valor indeterminado. O registro PCON tem apenas o seu bit mais significativo zerado. Os registros IE e IP so carregados com o valor XXX00000B, (X=indeterminado). A RAM interna no tem o seu contedo afetado pelo reset. Um circuito reset automtico ao ligar o sistema (power-on-reset) pode ser implementado com a conexo de um capacitor externo entre o potencial de alimentao e o terminal RST.
15
Ao energizar o sistema microcontrolado inicialmente o capacitor C1 est descarregado e a tenso sobre o resistor igual a VCC. Aps um tempo t = C*R = 0,1 segundo, a tenso do capacitor fica aproximadamente igual a VCC e a tenso no resistor fica igual a zero. Assim, logo aps a energizao do sistema, um sinal de reset gerado pelo circuito em nvel lgico 1 durante um perodo t e depois fica em zero lgico.
4. Clock
O 8051 possui um oscilador interno destinado a gerar o sinal de clock do sistema. Pode-se fazer uso de um cristal oscilador na freqncia de operao desejada, conectado-o aos terminais XTAL1 e XTAL2, juntamente com dois capacitores de realimentao conectados ao terra do circuito. Para fazer uso de um circuito de clock externo ao 8051, basta conectar o terminal XTAL1 ao potencial de terra do circuito (GND) e aplicar o sinal externo ao terminal XTAL2. Dessa maneira o sinal de clock externo ir diretamente ao circuito de temporizao e controle do microcontrolador. A freqncia de operao do 8051 pode chegar a um mximo de 8, 10 ou 12MHz conforme o modelo utilizado, embora existam atualmente tambm verses que operam em at 24MHz (89C51) e 33MHz (80C320). A freqncia de clock dividida internamente por 12 para a gerao dos ciclos de mquina necessrios execuo das instrues. Sendo assim, os ciclos de mquina do 8051 tm a durao de 12 ciclos de clock, embora em algumas verses otimizadas (80C320) os ciclos de mquina durem apenas 4 ciclos de clock, sendo portanto 3 vezes mais velozes que a verso original. Exemplos de ligaes de Clock:
16
Um ciclo de mquina se constitui de seis estados (S 1 a S6) que, por sua vez, correspondem a doze pulsos P do clock. Teremos um ciclo de mquina = 12 x (Perodo do Clock) = 12 x (1/12 x 106) = 1s.
17
O sinal ALE indica quando a parte menos significativa dos endereos est disponvel no Port 0. Este sinal serve para habilitar um latch de 8 bits externo, destinado a armazenar a parte menos significativa do barramento de endereos (A7A0). Aps o armazenamento dos sinais A7-A0, o Port 0 apresenta os sinais D7-D0. desta forma que ocorre a demultiplexao dos barramentos de dados e endereos. O sinal PSEN\ habilita a leitura da memria de programa externa, tornando-se ativo quando o 8051 busca instrues externamente. O terminal EA\ quando em nvel lgico 1 informa ao 8051 que os primeiros 4KB da memria de programa esto na memria de programa interna e o restante na memria externa, se estiver presente. Quando em nvel lgico 0, o terminal EA\ determina que o microcontrolador busque todas as instrues de programa na memria externa, ignorando completamente a memria interna, se esta existir. Os sinais RD\ e WR\ somente so ativados no caso de leitura ou escrita, respectivamente, na memria de dados externa (as instrues que acessam a memria de dados externa MOVX so distintas das que acessam a memria interna MOV). Os sinais RD\, WR\ e PSEN\ nunca so ativados simultaneamente, conforme mostra a tabela abaixo.
Os sinais de acesso s memrias externas possuem comportamentos bem definidos, apresentados nos diagramas de tempo a seguir.
18
19
6. Microcontrolador AT89S8252
Por ser um representante da famlia 8052, esse microcontrolador apresenta maior quantidade de memria RAM e mais um timer/counter de 16 bits que a famlia 8051 bsica. Um dos pontos que o torna compatvel com o 8051 a regio em que esto alojados os registradores especiais, trabalhando assim com palavras de 8 bits. Sua apresentao torna-se necessria, pelo fato que iremos trabalhar com ele nos nossos kits de laboratrio.
6.1 Caractersticas
Em seguida so abordadas suas principais caractersticas: 8 Kbytes de memria Flash reprogramvel pelo sistema serial de download de programas no formato binrio (SPI Serial Program Interface). 2 Kbytes EEPROM. Operao esttica: 0 Hz at 24 MHz. 382 x 8 bytes de Memria RAM Interna, sendo 256 x 8 bytes para os registradores especiais e as regies A, B e C, e mais 127 x 8 bytes de extenso, acessados de forma indireta. 32 I/O ports programveis. Trs 16 bits timer/counters. Port Serial programvel UART. SPI Interface Serial de Programao. Watch Dog Timer. Dois DPTRs Data Pointers.
Por meio da interface serial SPI, aps compilarmos o programa, podemos transferi-lo para a regio de memria CODE, que nesse microcontrolador composta por 8 Kbytes de memria Flash.
20
6.3 Pinagem
21
Na Fig. acima temos o Hardware Mnimo necessrio para gravao do microcontrolador AT89S8252. Este Sistema Microcontrolado constitudo de um Circuito de Reset, Circuito de Oscilao, Circuito de Gravao, o sistema est sendo gravado pela porta paralela do PC, o conector DB 9 utilizado somente para interface entre o sistema e a porta paralela do PC, o cabo de gravao composto de um conector DB 25 (Porta Paralela) do lado do PC e um conector DB 9 (lado do sistema) utilizaremos para edio e compilao do cdigo em Linguagem assembly o Win8051, e para a gravao no sistema utilizaremos o Ponyprog (Software para gravao de microcontroladores) todos disponveis em verso freeware e de fcil obteno pela Internet. Com os conhecimentos adquiridos podemos montar a nvel experimental nosso Sistema de Gravao do C AT89S8252, para projetos futuros e para aplicao em experimentos prticos nas aulas de laboratrio.
22
REFERNCIAS BIBLIOGRFICAS
Denys E. C. Nicolosi, Microcontrolador 8051 Detalhado, Ed: rica; 2 Edio Vidal Pereira Jr, Aplicaes Prticas do Microcontrolador 8051, Ed: rica; 12 Edio. Denys E. C. Nicolosi, Laboratrio de Microcontroladores Famlia 8051, Ed: rica; 2004 Salvador P. Gimenez, Microcontroladores 8051, Ed: Prentice Hall; 1 Edio 2002.
23