


















































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Apostila de uProcessadores 8051 por Prof. Bertonha/2007
Tipologia: Notas de estudo
1 / 90
Esta página não é visível na pré-visualização
Não perca as partes importantes!



















































































Mi ro ontroladores 8051
Prof. Eduardo G. Bertonha (M.S .)
26 de junho de 2007
Departamento A adêmi o de Eletrni a - DAELN
Universidade Te nológi a Federal do Paraná - UTFPR
Corresp ondên ia
Prof. Eduardo Giometti Bertonha (MS )
Departamento de Eletrni a Universidade Te nológi a Federal do Paraná - UTFPR
Av. Sete de Setembro, 3.165 - Curitiba - PR - Cep: 80230- Página Web: p essoal. efetpr.br/eb ertogna
email: eb ertonhautfpr.edu.br
1 Intro dução
entes das p ortas de entrada, p or exemplo um te lado, ou então p o dem ser gerados através de op eraçõ es lógi as ou aritméti as om outros dados.
1.1.2 Mi ro ontroladores
Em um sistema mínimo, omo mostrado na gura 1.1, muitos ir uitos são ne essários, o que o torna de difí il implementação, om muitas inter onexõ es entre os vários blo os (representados p elos buses), pla as de ir uito impresso grandes e om muitas trilhas, o que resulta em ustos elevados. Quando se deseja implementar um sistema de omputação omplexo não há maneira de evitar estas di uldades, e o usto b enefí io é razoável. Porém, quando se deseja implementar um sistema simples, om a nalidade de ap enas ontrolar uma máquina, p or exemplo: uma máquina de lavar roupa, um sistema mínimo omo o mostrado a ima se mostra máximo, gerando pla as de ir uito impresso grandes e om muitos omp onentes, in ompatível om a apli ação destinada. Para solu ionar este problema existe uma outra lasse de disp ositivos que substitui o sistema mínimo anterior, hamam-se Mi ro ontroladores. Os mi ro ontroladores são sistemas mi ropro essados en apusulados na forma de um úni o ir uito integrado. Eles são pro duzidos de forma a ofere er uma variedade muito grande de disp ositivos, o que ara teriza uma família de disp ositivos, alguns deles sendo
1 Intro dução
de fato um sistema mínimo, om o mínimo ne essário em termos de memória, e p ortas de E/S, e p eriféri os, outros p orém, in orp oram p eriféri os sosti ados, e já não p o dem ser hamados de sistemas mínimos. Existem várias famílias de mi ro ontroladores omer iais, entre eles os mais imp ortantes são:
1.2 Sistemas Mi ro ontrolados
Os sistemas mi ro ontrolados tem omo prin ipal vantagem a fa ilidade que ofere e para a implementação de sistemas das mais variadas apli açõ es, omo sistemas de ontrole de disp ositivos e máquinas, sistemas de automação de pro essos, sistemas de aquisição e pro essamento de dados, só para itar algumas p ossíveis apli açõ es. Esta fa ilidade se baseia, omo já dissemos, no fato de muitos ir uitos ne essários para o fun ionamento de um sistema mi ropro essado já estar integrado dentro do mi ro on- trolador, simpli ando em muito a onstrução do sistema nal, e lib erando temp o para o pro jeto do rmware, que normalmente é a tarefa mais p esada, e demorada. Vamos estudar aqui os mi ro ontroladores da família 8051, p or ser o mais p opular, e p or ofere er mais re ursos em termos de desenvolvimento de protótip os, omo ambientes de desenvolvimento integrado (IDE), kits de desenvolvimento baratos, grande disp onibilidade de disp ositivos no mer ado na ional, e obviamente o usto atrativo. Além disto, existe uma grande profusão de informaçõ es a resp eito desta família na internet, e muitos títulos de livros publi ados.
2 A Família 8051 de Mi ro ontroladores
Mo delo Cara terísti as Prin ipais 8031 128B de RAM, 2 Timer/Counter, 1 Serial, 32 Pinos de E/S 8032 256B de RAM, 2 Timer/Counter, 1 Serial, 32 Pinos de E/S 8051 128B de RAM, 2 Timer/Counter, 1 Serial, 4 Kbytes de ROM, 32 Pinos de E/S 8052 256B de RAM, 3 Timer/Counter, 1 Serial, 8 Kbytes de ROM, 32 Pinos de E/S 87C51 128B de RAM, 2 Timer/Counter, 1 Serial, 4 Kbytes de EPROM, 32 Pinos de E/S 87C52 256B de RAM, 3 Timer/Counter, 1 Serial, 8 Kbytes de EPROM, 32 Pinos de E/S 89C51 128B de RAM, 2 Timer/Counter, 1 Serial, 4 Kbytes de Flash, 32 Pinos de E/S 89C52 256B de RAM, 3 Timer/Counter, 1 Serial, 8 Kbytes de Flash, 32 Pinos de E/S AT89S51 128B de RAM, 2 Timer/Counter, 1 Serial, 4KB de Flash ISP, 32 Pinos de E/S, Wat hdog, op eração estáti a de 0 a 33MHz AT89S52 256B de RAM, 3 Timer/Counter, 1 Serial, 8KB de Flash ISP, 32 Pinos de E/S, Wat hdog, op eração estáti a de 0 a 33MHz AT89S53 256B de RAM, 3Timer/Counter, 1Serial, 12KB Flash ISP, 32 Pinos de E/S, Wat hdog, SPI, op eração estáti a de 0 a 24MHz AT89S8252 256B de RAM, 3 Timer/Counter, 1 Serial, 8KB de Flash ISP, 2KB de EEPROM, 32 Pinos de E/S, Wat hdog, SPI, op era de 0-24MHz AT89C1051 128B de RAM, 2 Timer/Counter, 1 Serial, 1 Kbytes de Flash, 15 Pinos de E/S AT89C2051 128B de RAM, 2 Timer/Counter, 1 Serial, 2 Kbytes de Flash, 15 Pinos de E/S AT89C4051 128B de RAM, 2 Timer/Counter, 1 Serial, 4 Kbytes de Flash, 15 Pinos de E/S Tab ela 2.1: Família 8051 de Mi ro ontroladores
2.2 Arquitetura Interna
O diagrama em blo os da gura 2.1 abaixo apresenta a arquitetura interna da famí- lia 8051. Neste diagrama, que mostra uma arquitetura bastante simples, se observa os ir uitos prin ipais omo a ULA, as memórias de dados (SRAM) e de programa (ROM/EPROM/Flash), as 4 p ortas de 8 bits, os 2 temp orizadores/ ontadores, e o a- nal serial. Não apare em neste diagrama o os ilador interno, ir uito de Reset, e blo os adi ionais presentes em alguns mo delos mais sosti ados, omo memória EEPROM, SPI, Wat hdog, Conversores A/D, PWM, et.
2 A Família 8051 de Mi ro ontroladores
Figura 2.1: Arquitetura Interna 8051
2.3 Pinagem do 8051
A pinagem dos elemento da família 8051 de 40 e 20 pinos p o de ser vista na gura 2.2, a seguir.
Figura 2.2: Pinagem do 8051
2 A Família 8051 de Mi ro ontroladores
2.4 A esso à Memória Externa
Como mensionado antes, o 8051 é apaz de endereçar até 64 KB de memória RAM externa, além de até mais 64 KB de memória ROM externa. Quando o sistema mi ro ontrolado zer uso de alguma memória externa as p ortas P0 e P2 estarão exer endo a segunda função asso iada a elas, qual seja o interfa eamento om estas memórias RAM e ROM externas, onforme a gura 2.3 abaixo.
Figura 2.3: Memória Externa
Neste aso a p orta P0 será usada omo barramento de dados / endereços multiplexados, e seus pinos serão designados agora omo AD0-AD7, transferindo dados e forne endo, de forma multiplexada om estes, o byte inferior de endereço. A p orta P2, p or sua vez, forne erá o byte sup erior de endereços A8-A15, simultâneamente ao forne imento do byte inferior p ela p orta P0. Os sinais de ontrole de leitura e es rita RD\ e WR, são forne idos p or dois pinos da p orta P3, e o sinal que p ermite ao hardware sele ionar a memória ROM de programa em lugar da RAM é o sinal de ontrole hamado PSEN\ (Program Status Enable). Outro sinal do 8051 envolvido no a esso à memória externa é o sinal ALE (Address Lat h Enable) que é resp onsável p elo travamento do byte A0-A7 de endereço no lat h olo ado entre a p orta P0 e as linhas de endereços da memória, pro esso este que o orre quando da demultilp exação de dados e endereços através da p orta P0.
2 A Família 8051 de Mi ro ontroladores
2.5 Organização da Memória do 8051
Os elementos da família 8051 om memória de programa interna, que são a grande maioria, tem apa idades variadas de memória do tip o OTPROM, EPROM, ou Flash, que vão desde 4KB até 32KB em alguns elementos, mas na maioria dos disp ositivos esta será de 4KB do tip o Flash. Em termos de memória de dados, tipi amente, os elementos da família 8051 ontém 128B ou 256B de SRAM. Quanto à memória externa, p o dem endereçar até 64KB de memória de programa, e 64KB de memória de dados, omo expli ado no item 2.4.
2.5.1 Memória de Programa do 8051
Em relação à memória de programa, o primeiro aso a se onsiderar é aquele no qual o mi ro ontrolador da família 8051 ofere e o re urso de ROM/EPROM/Flash interna, om a apa idade de 4KB. Considerando a ondição a ima, esta memória será a essada aso o pino EA\ (External A ess) esteja em nível lógi o alto, ou seja desativado. Caso se deseje, além destes 4KB de memória de programa interna, p o de-se estender o espaço de endereçamento para até 64KB, os 60KB adi ionais serão a essados da memória de programa externa. A exe ução do programa p elo mi ro ontrolador ini iará na p osição zero da ROM interna.
Figura 2.4: Memória de Programa Interna do 8051
O segundo aso, é aquele em que o mi ro ontrolador não p ossui memória de programa interna, e esta é ex lusivamente externa. Neste aso deve-se olo ar o pino EA=0, ou seja ativado, indi ando que o a esso à memória de programa será sempre externo. Mesmo que o mi ro ontrolador p ossua memória de programa interna esta não será a essada, e
2 A Família 8051 de Mi ro ontroladores
Os a essos à SRAM interna e externa são efetuadas através de instruçõ es diferentes, sendo este o diferen ial entre os dois tip os de a essos. Por exemplo a instrução MOV é usada para leitura/es rita da SRAM interna, enquanto a instrução MOVX é a ontrapar- tida relativa a memória SRAM externa, maiores detalhes destas instruçõ es serão vistas no apítulo 3, no item 3.2.1.
Memória de Dados Interna
Os a essos à SRAM interna do 8051 p o dem ter diferentes ara terísti as dep endendo da região desta que está sendo a essada. Na região da SRAM interna ompreendida entre os endereços 0 e 127, está a área dos Registros de Uso Geral e Pilha, enquanto a área de 128 a 255 é onde estão lo alizados os Registros de Funçõ es Esp e iais, ver gura 2.7 a seguir.
Figura 2.7: Memória de Dados Interna do 8051
Registros de Uso Geral e Pilha
A área da SRAM interna denominada de Registros de Uso Geral e Pilha, uja função é de alo ar as variáveis do programa, e a pilha, está dividida em seis segmentos diferentes, identi ados na gura 2.8. Como p o de ser notado desta gura, as regiõ es ompreendem os quatro ban os de registros: ban o 0 a ban o 3, região bit e byte endereçável, e região somente byte endereçável. Cada uma destas regiõ es ofere em re ursos diferentes onforme dis utido adiante. Cada um dos 4 ban o de registro p ossui 8 registros denominados de R0 a R7, sendo que a seleção do ban o é feita através dos bits RS0 e RS1 do registro PSW (Program Status Word), onforme a tab ela mostrada na gura 2.8. O uso destes registros (R0...R7) nas instruçõ es provê uma instrução om um byte a menos já que um dos op erandos já está esp e i ado na instrução. Como exemplo a instrução: MOV R0, A; move para o registro R0 o onteúdo do a umulador.
2 A Família 8051 de Mi ro ontroladores
Além disto em algumas instruçõ es o registro p o derá onter o endereço do dado, daí resultando em um tip o de a esso indireto via registrador. Como exemplo a instrução: MOV R0, A; move para o endereço ap ontado p or R0 o onteúdo de A A outra faixa de endereços de 20H a 7FH (32 a 127) se ara teriza p or a esso via esp e i ação do endereço, ou seja sem o uso dos registros R0...R7, sendo que o endereço na SRAM é diretamente olo ado na instrução. Cab e ainda ressaltar que a região entre os endereços 20H e 2FH tem omo ara terísti a esp e ial a p ossibilidade de se endereçar um bit qualquer dentro deste espaço.
Figura 2.8: Registros de Uso Geral e Pilha
Registros de Funçõ es Esp e iais
Os a essos à RAM interna do 8051 na faixa de 128 a 255, a essam os registros de funçõ es esp e iais, que estão asso iados aos diversos registros asso iados aos vários re ursos do 8051 tais omo: p ortas de entrada e saída, ontadores/temp orizadores, interfa e serial, ontrole de interrup ção, et ., ver tab ela 2.2. O onhe imento da estrutura de ada um destes registro é de suma imp ortân ia, visto que p ermite programar os vários p eriféri os omo anal serial, temp orizadores/ ontadores, ontrolar ara terísti as da CPU omo mo dos de baixo onsumo, interrup çõ es, e a essar as
2 A Família 8051 de Mi ro ontroladores
2.6 Portas de Entrada e Saída do 8051
O esquema geral interno simpli ado dos bits de E/S das Portas do 8051 é apresentado a seguir:
Figura 2.9: Esquema Simpli ado de um Bit da Porta 1
Observa-se desta gura que os pinos das p ortas são onstituidos basi amente de um lat h (ip-op tip o D), dois buers tri-state, e um driver de saída. Para se levar um pino de saída de uma p orta a nível lógi o 1 ou 0, as instruçõ es exe utam uma es rita no lat h, que ontrola o fet do driver de saída através do sinal de saída Q omplementada, obviamente que quando o fet de saída está em ON o pino apresentará nível lógi o 0 na saída, e em OFF, nível lógi o 1. Constata-se da gura que a leitura de um bit de uma p orta de E/S apresenta um de- talhe adi ional: existem dois sinais de leitura. Um destes sinais omanda a leitura do estado do pino, através do buer inferior na gura, o outro omanda a leitura do lat h, através do buer sup erior da gura. Con lui-se então, que existem instruçõ es que não lêem o pino, mas ao invés disto lêem a saída do lat h, e um uidado adi ional deve ser tomado quando se usar tais instruçõ es. Como regra as instruçõ es que exe utam a sequên- ia Lê-Mo di a-Es reve, são aquelas que lêem o lat h ao invés do pino, exemplos de tais isntruçõ es são:
2 A Família 8051 de Mi ro ontroladores
ANL ; E lógi o, ex: ANL P1,A SETB Pn.i ; Seta Pn.i, ex: SETB P2. ORL ; OU lógi o, ex: ORL P1,A CLR Pn.i ; Reseta Pn.i, ex: CLR P3. XRL ; OU Ex l., ex: XRL P1,A MOV Pn.i,C ; Move ag C p/ Pn.i, JBC ; E lógi o, ex: ANL P1,A ; ex: MOV P2.0,C CPL ; Complemento, ex: CPL P1.0 DJNZ ; De r. e Desvia se 6 =0, INC ; In remento, ex: INC P1 ; ex: DJNZ P3,Lab el DEC ; De remento, ex: DEC P O onjunto ompleto das instruçõ es do 8051 será visto no apítulo 3, p ortanto o leitor não deve se preo upar em entender plenamente as instruçõ es a ima apresentadas.
A razão de existir instruçõ es que lêem o pino da p orta, enquanto outras lêem o lat h, é para que não ha ja uma falsa interpretação da tensão presente no pino. Como exemplo, se um pino de uma p orta estiver one tado à base de um transistor, ao se es rever 1 neste pino, o transistor é saturado, p orém, se efetuada uma leitura p osterior neste pino o mesmo apresentará a tensão de base do transistor saturado, o que será interpretado omo nível lógi o 0.
To das as 4 p ortas de 8 bits do 8051, P0, P1, P2, e P3, p o dem ter seus pinos individu- almente usados omo entrada ou saída, one tados, p or exemplo, à disp ositivos simples omo haves e leds, omo tamb ém p o dem ser usadas omo barramentos de 8 bits, e inter- fa ear disp ositivos p eriféri os omo displays inteligentes, onversores A/D, e D/A. Deve-se lembrar, p orém, que as p ortas P0 e P2 am destinadas a geração de endereços A0...A em P0, e A8...A15 em P2, quando a essando memória externa, e a p orta P3 apresenta seus pinos dotados de funçõ es alternativas, então ertos pinos p o derão estar indisp oníveis em alguma apli ação parti ular.
Uma parti ularidade que a p orta P0 apresenta é sua saída ongurada omo dreno ab erto, ao ontrário demais p ortas que apresentam o pull-up interno. Esta ara terísti a faz om que a p orta tenha seus pinos utuando quando em ab erto. Como onsequên ia deste fato, a p orta P0 p o derá drenar até 8 argas TTL, ao ontrário das demais p ortas que sup ortam uma arga máxima de 4 gates TTL.
Quando se deseja que os pinos das p ortas P1, P2, ou P3, atuem omo entradas, o estado do lat h interno deverá estar em 1, o que deixa o driver de saída em OFF, então o estado do pino ará em a1 p elo pull-up interno, p o dendo ser levado a 0 p or uma fonte externa.
Como visto antes ada uma das p ortas está map eada na região dos Registros de Funçõ es Esp e iais da memória SRAM interna, om endereços esp e í os que p o dem ser referidos nas instruçõ es (ver tab ela 2.2), p orém é mais onveniênte se referir ao nome da p orta nestas instruçõ es, o que assegura uma maior legibilidade ao ó digo fonte. Por exemplo a instrução:
MOV A, P1 ; Lê a p orta P1 e guarda o valor lido no a umulador. Cab e tamb ém lembrar, que os bits das p ortas tem endereços esp e í os, uma vez que estão em uma região de memória bit endereçável. Portanto, quando se deseja a essar um