Download pdf - 8051 Teoria

Transcript

8051 Teoria010101010101001010101010100101010101010010101010101001010101010100101010101010010101010101001010101010100101010101010010101010101001010101010100101010101010010101010101001010101010100101010101010010101010101001010101010100101010101010010101010101001010101010100101010101010010101010101001010101010100101010101010010101010101001Ver.0.301PROGRAMAOLINGUAGEM CparaMICROCONTROLADORES 8051Com base na IDE JFE Editor e SDCC Compiler

Elementos da Linguagem CArquitetura Interna do 8051Ports de entrada e sadaTimersComunicao SerialDisplay 7-segmentosDisplay LCDDiretivas e funesExerccios resolvidos

www.u8051.com.br

PrefcioEste livro explica os assuntos de forma clara e objetiva, para que se possa aprender a programar microcontroladores da famlia 8051, utilizando a linguagem C.Com a linguagem C possvel programar microcontroladores de forma rpida e sem dificuldades, pois os comandos desta linguagem so de fcil assimilao e entendimento.Para facilitar ainda mais a compreenso do contedo apresentado, foi utilizado uma kit de desenvolvimento para editar e compilar programas em C para os microcontroladores da famlia 8051.Os assuntos esto estruturados em quatro tpicos fundamentais: Arquitetura Interna do Microcontrolador 8051: aborda as principais caractersticas fsicas do 8051. Elementos da Linguagem C: estuda os elementos da linguagem, entre definies de variveis, funes, diretivas da linguagem, entre outros.

Perifricos de desenvolvimento: tpicos abordados de forma clara e objetiva que enfatizam as principais ferramentas do 8051, tais como: portas paralelas, interrupo, timers e comunicao serial.

Exemplos de programa: apresenta exemplos prticos com teclados, leds, displays 7-segmentos, comunicao serial e display LCD grficos.

Para o total aproveitamento do livro, recomendvel que o leitor tenha noes bsicas de eletrnica digital e resolva todos os exerccios tericos e prticos propostos do livro complementar 8051 Prtica disponvel no site de estudos.O contedo foi planejado para o slido aprendizado inicial, mas tambm poder servir de material de referncia no dia-dia do programador.

ndice AnalticoCaptulo 1 Introduo................................................................................071.1. A Linguagem C........................................................................................081.2. A Famlia 8051..........................................................................................081.3. Ferramentas Recomendadas..................................................................081.3.1. Primeiros passos...............................................................................091.3.2. Uma Viso Geral...............................................................................091.3.3. Etapas de Gravao..........................................................................10 Captulo 2 Caractersticas do AT89S52...................................................122. 2.1. O AT89S52................................................................................................122.2. Memria do AT89S52..............................................................................142.2.1. Memria de dados Interna e Externa............................................152.3. Registradores de funes Especiais......................................................152.4. Pinagem do Microcontrolador AT89S52..............................................182.5. O Clock......................................................................................................202.6. Ciclos de Mquina...................................................................................212.7. Reset.........................................................................................................22

Captulo 3 JFE EDITOR..............................................................................233. 3.1. Conhecendo o JFE EDITOR...................................................................233.1.1. Principais Caractersticas................................................................233.2. Instalao do JFE EDITOR.....................................................................233.2.1. Localizao do JFE EDITOR...........................................................243.3. Painel de Controle...................................................................................243.4. Barra de Ferramentas e Menus..............................................................253.4.1. Menu File...........................................................................................253.4.2. Menu Edit..........................................................................................253.5. Como Compilar e Editar um Programa no JFE EDITOR..................253.5.1. Edio.................................................................................................253.5.2. Compilao........................................................................................263.5.3. Erros de Compilao........................................................................263.5.4. Nome dos Arquivos Gerados na Compilao..............................27

Captulo 4 Elementos da Linguagem C..................................................284. 4.1. Introduo Linguagem C....................................................................284.2. A Linguagem C Case Sensitive..........................................................294.3. Palavras Reservadas................................................................................304.4. Comentrios.............................................................................................314.5. Tipos de Dados........................................................................................324.5.1. Constantes.........................................................................................334.5.2. Definies..........................................................................................334.6. Funes.....................................................................................................344.6.1. Estrutura das Funes.....................................................................344.6.2. O Tipo void.........................................................................................354.7. O comando include...................................................................................354.7.1. Como Incluir um header no Programa...........................................38Captulo 5 Operadores...............................................................................395. 5.1. Tipos de Operadores...............................................................................395.1.1. Operadores Aritmticos..................................................................395.1.2. Operadores Relacionais...................................................................415.1.3. Operadores Lgicos e Booleanos...................................................425.1.4. O Operando NOT.............................................................................43Captulo 6 Estrutura de Controle e Leitura de Teclas..........................446. 6.1. Tipos de Estruturas de Controle..........................................................446.2. A Estrutura if (se)....................................................................................446.2.1. Uma Observao Importante..........................................................466.3. A Estrutura if else................................................................................466.4. A Estrutura if else if........486.5. A Estrutura switch...............496.6. Estruturas de Loops............506.6.1. Tipos de Loops..................................................................................506.6.2. O Comando for................................................................................506.2.2.1. Comando break...........................................................................526.2.2.2. Comando continue.....................................................................536.6.3. O Comando while..........................................................................536.6.3.1. Estrutura de repetio Infinita..................................................54Captulo 7 Portas Paralelas.......................................................................557. 7.1. Perifricos Internos do 8051...................................................................557.2. Portas Paralelas........................................................................................557.2.1. Port P0..............................................................................................567.2.1. Port P1..............................................................................................577.2.1. Port P2..............................................................................................577.2.1. Port P3..............................................................................................577.3. Exerccio Resolvido.................................................................................57Captulo 8 Interrupes.............................................................................628.1. Tipos de Interrupo...............................................................................628.2. Prioridade das Interrupes..................................................................658.3. Interrupes Externas.............................................................................668.3.1. Tipos de Disparo das Interrupes Externas..............................668.4. Exerccio Resolvido.................................................................................68Captulo 9 Timers/Counters.....................................................................719.1. Estrutura do Timer0................................................................................729.2. Modos de Operao do Timer0.............................................................739.2.1. Modo 1 (16 bits)..............................................................................759.3. Exerccio Resolvido.................................................................................74Captulo 10 Comunicao Serial..............................................................7710.1. Registrador de Controle da Porta Serial - SCON.............................7810.2. Transmisso e Recepo de Dados.....................................................8010.2.1. Funo _getkey ( ).......................................................................8210.2.2. Funo putchar ( ).......................................................................8310.3. Hardware para Comunicao Serial...................................................83 10.4 Baudrate e Freqncia do Cristal........................................................83Captulo 11 Display de LCD.....................................................................8511.1 . Os Displays de LCD..............................................................................8511.2. Descrio dos Pinos dos LCDs...........................................................8511.3. Funcionamento no Modo 8 bits..........................................................8611.4. Funcionamento no Modo 4 bits..........................................................8611.5. Instrues e Funes de Controle para o LCD..................................8811.5.1. Funo LCD_init( ).....................................................................8811.5.2. Funo LCD_row1( )..................................................................8811.5.3. Funo LCD_row2( )..................................................................8811.5.4. Funo LCD_putc( )...................................................................8911.5.5. Funo LCD_puts( )...................................................................9111.6. Exerccio Resolvido...............................................................................91

Apndice A Tabela ASCII Standard e Extended..................................93Apndice B Gravador via porta paralela com o software AEC_ISP.EXE..................................................................................................98

CAPTULO1

Introduo

1.1. A Linguagem CA maioria das literaturas sobre os microcontroladores 8051 utiliza como linguagem de programao o Assembly (linguagem de mquina) que pode ser considerada, de uma forma geral, de difcil compreenso. Devido ao grau de dificuldade oferecido pelo Assembly, recomenda-se o uso desta linguagem quando h necessidade de tornar o cdigo mais rpido e eficiente.Com programas extensos e com muitas rotinas, a utilizao somente da linguagem Assembly dificulta muito a vida do programador. J a linguagem C, foi criada para ser to pequena quanto possvel. Seu conjunto de comandos bastante reduzido, mas, apesar disso, a linguagem bastante flexvel poderosa. O C muito difundido no mundo e este um dos motivos pelo qual a linguagem C tem se tornado cada vez mais utilizada na programao dos microcontroladores.Com o C possvel desenvolver programas com rapidez sem conhecer profundamente os microcontroladores, utilizando poucos comandos desta linguagem de programao.A linguagem C para computadores comeou a ser difundida em 1983, no exato ano em que formulou-se um padro para a criao de programas, denominado C-ANSI (American National Standard Institute). A popularidade e aceitao da linguagem C pela comunidade de usurios impulsionaram os grandes fabricantes de microcontroladores e hoje temos programao de microcontroladores nesta linguagem.Para divulgar mais a linguagem C para microcontroladores 8051, o livro difunde os seus recursos utilizando um kit didtico, que possibilita desenvolver atividades de forma organizada e padronizada.

1.2. A Famlia 8051Na dcada de 80, a empresa norte-americana Intel Corporation criou um Microcontrolador de 8 bits, o qual se tornaria o mais popular de todos os existentes no mercado, o 8051.Para reduzir o tamanho e o custo do hardware de um sistema baseado em um microcontrolador, a Intel embutiu alguns recursos a mais nesse microcontrolador, como por exemplo, um canal de comunicao serial e temporizadores, recursos que alguns de seus antecessores dispunham, no entanto eram difceis de programar.Hoje, depois de mais de 30 anos de melhoria, o 8051 fabricado por mais de 60 empresas no mundo. Denominamos esses novos microcontroladores de famlia 8051, pois possuem arquitetura comum, mesmo conjunto de instrues (cdigos e instrues de programas) e so programados de forma similar ao tradicional e velho MCS-51 da Intel. Ao longo desses anos, diversos fabricantes modificaram seus microcontroladores, acrescentando outros recursos como: conversores A/D. mdulos de PWM incorporado, memria E2PROM, comunicao Ethernet, etc. Atualmente existem mais de 700 variaes deste chip.O componente que vamos estudar o AT89S52, uma variao do MCS-51 da Intel, e pertence famlia 8051, assemelhando-se em quase todos os aspectos do 8051. 1.3. Ferramentas RecomendadasO kit de desenvolvimento, apesar de no ser obrigatrio, uma ferramenta que tornar o seu aprendizado muito mais produtivo. O kit tem por objetivo, ajud-lo a compreender as informaes apresentadas, tendo em vista que voc no precisar preocupar-se com eventuais problemas de montagem, podendo assim, dedicar-se totalmente ao aprendizado da programao do microcontrolador.

Visite o site de estudos www.u8051.com.br para obter informaes sobre como adquirir o KIT de desenvolvimento para acompanhar este livro.

1.3.1. Primeiros Passos1 ) Adquira o kit para microcontrolador 8051 encomendando-o juntamente com o grupo de estudantes da sua turma.

2 ) No site de estudos faa o download do pacote de programas necessrios para edio, compilao e gravao das atividades propostas.

Todos os programas utilizados neste aprendizado so gratuitos e no requerem taxa de licena.

Temos tudo o que precisamos para prosseguir os estudos.

1.3.2. Uma Viso GeralAcompanhe o exemplo de programa escrito na linguagem C em seguida:

Este um exemplo de programa em C que mantm o pino P0.0 do microcontrolador por aproximadamente dois segundos ligado (nvel 1) e depois desliga-o (nvel 0).

O programa de exemplo precisa ser editado em um programa de editorao. Veremos mais adiante como editar os programas utilizando os recursos da linguagem C no software JFE Editor. Para gravar um programa no microcontrolador AT89S52, necessrio primeiramente, criar o programa e compil-lo.

O que significa compilar o programa?Para criar o programa, utilizamos os comandos da linguagem C, os quais sero estudados neste livro. Futuramente esse programa criado ser compilado por um compilador, ou seja, tudo o que digitamos no programa ser convertido em comandos binrios que a nica linguagem que o microcontrolador entende. Existem diversos compiladores no mercado para as mais variadas linguagens de programao. Entretanto, utilizaremos um compilador freeware, que no exige licena para uso.

O Keil-C um exemplo de compilador para a famlia 8051 que requer licena de uso e oferece muitos recursos que tornam o desenvolvimento de projetos mais fcil e rpido. Voc pode obter uma cpia de avaliao do Keil C no site www.4shared.com

Nota

Depois que o programa foi criado e compilado corretamente, o compilador cria um arquivo com a extenso .HEX (utilizado na maioria dos gravadores e simuladores), que obedece ao padro de formatao hexadecimal da Intel e portanto, o arquivo que dever ser gravado na memria do microcontrolador.

1.3.3. Etapas de GravaoAps a compilao do programa, podemos enviar o arquivo criado pelo compilador (arquivo a extenso .HEX) para o microcontrolador AT89S52. Para gravarmos o chip, necessrio ter em mos um computador PC e um gravador de microcontroladores (ou o kit de desenvolvimento).

Com um programa de gravao especfico do gravador AT89S52 utilizado, possvel transferir o arquivo gerado pelo compilador (extenso .HEX ou .BIN) para o chip, atravs de um cabo de gravao conectado s portas de comunicao do computador, podendo ser:

1 ) Atravs da porta paralela do computador com o software AEC_ISP.EXE.

Figura 1.1 - porta paralela2 ) Atravs da porta serial do computador com o software GRAVA SERIAL.EXE.

Figura 1.1 - porta paralela

Acompanhe o resumo das etapas de gravao:

1) Criar o programa em um editor (ex.: JFE Editor).2) Compilar o programa.3) Verificar se o compilador gerou o arquivo para a gravao do chip (arquivo .HEX).

4) Conectar o gravador ao PC.5) Transferir o arquivo gerado pelo compilador (.HEX ou .BIN) para o chip atravs do programa de gravao (AEC_ISP.EXE ou GRAVA SERIAL.EXE).

importante que at este ponto voc tenha compreendido, de uma forma geral, o processo de gravao dos microcontroladores. Este processo vlido e pode ser aplicado para qualquer tipo de microcontroladores, inclusive de outras famlias: PIC, AVR, FreeScale, etc; Variando apenas, os programas.

Vamos estudar a estrutura do microcontrolador AT89S52 da Intel.

CAPTULO2

Caractersticas do AT89S52

2.1. O AT89S52Os microcontroladores 8051 apresentam diversos recursos que ajudam o programador a elaborar programas para interagir com o mundo exterior conectado ao chip. Esses recursos, criados por seus fabricantes, tm como hardware bsico o antigo 8051 (tecnolgica CMOS) fabricado pela Intel.

Estrutura Interna do Microcontrolador AT89S52 CPU de 8 bits otimizada para aplicaes de controle 8Kbytes de memria de programa on-chip 256Bytes de RAM de dados (espao para variveis de programa) 32 pinos de entrada e sada (I/O) programveis Modo de programao serial ISP (In-System Programmable) Trs timers/counters para gerao de tempos e contagens Comunicao serial Programvel Watch Dog Timer Estrutura de interrupo com dois nveis de prioridade Oscilador de relgio on-chip Operao de 0Hz a 33MHz Proteo contra cpias (lock bit) Alimentao de 4 a 5,5V

O microcontrolador AT89S52 possui internamente diversos dispositivos que permitem mais atividades com um nico chip, eliminando consideravelmente a necessidade de componentes externos.Estrutura Interna do Microcontrolador AT89S52A seguir observe a arquitetura interna do AT89S52 em um diagrama de blocos simplificado:

P0.0 a P0.7 P2.0 a P2.7

Controlador do PORT 2Controlador do PORT 0

RAMFLASH

P3.0 a P3.7 P1.0 a P1.7

Canal ISPCabo de gravao

Controlador do PORT 3Controlador do PORT 1

Figura 2.1 diagrama de blocos do AT89S52.

Portas paralelas: na famlia 8051, existem 32 I/Os que tm como funo fazer a comunicao entre o mundo interno e externo do chip. So divididos em quatro ports: P0, P1, P2, P3 de forma que cada port composto de oito pinos fsicos e esto ligados internamente ao chip em um barramento de 8 bits.Timers/Counters: nos microprocessadores em geral, os temporizadores so utilizados para gerar contagem de tempo, medir largura de pulsos externos, troca de tarefa e muitas outras funes. O microcontrolador AT89S52 possui internamente trs contadores/temporizadores denominados timer 0, timer 1 e timer 2. Ambos podem ser configurados para operar individualmente e podem ser habilitados por software ou hardware.Na funo de contador, a contagem ser incrementada em resposta a uma transio de 1 para 0 (borda de descida) do seu correspondente pino de acionamento, T0 (P3.4) e T1 (P3.5). Nesta funo, os pinos externos (T0 e T1) so monitorados a 1/24 da velocidade do oscilador.Interrupes: a interrupo um pedido para parar o processamento corrente e efetuar outro, referente a interrupo solicitada, desde que ela esteja habilitada e possa ser aceita. A vantagem da interrupo est na simplificao do hardware, pois no preciso fazer com que o sistema fique monitorando o funcionamento de certos dispositivos e perifricos, eles que chamam a ateno do sistema. H sete fontes de interrupo: por software, interrupo solicitada por perifrico externo e interrupo solicitada indiretamente (por tempo, por comunicao serial, etc.). A interrupo uma das mais importantes ferramentas dos sistemas de controle microprocessados e consiste em interromper um programa de acordo com as necessidades de eventos externos e internos.Porta serial: porta de comunicao de dados full duplex que pode enviar e receber informaes serialmente. Podemos facilmente conectar a essas portas seriais componentes que codificam dados de entrada em protocolos RS232, RS485, RS422, etc. Alguns exemplos de dispositivos que utilizam este protocolo so computadores, mdulo GPS, impressora fiscal, leitores de cdigo de barras, leitores de cartes magnticos, etc.Memria flash: espao de memria destinado a armazenar o programa.HEX enviado pelo gravador durante o processo de gravao. Uma vez gravado, o microcontrolador passa a funciona de forma independente das ferramentas de desenvolvimento tais como: PC, gravador e kit de desenvolvimento e manter ntegros os dados em sua memria ROM (read-only memory) por mais de 50 anos.

2.2. A Memria do AT89S52Na famlia 8051, temos 8Kbytes de memria de programa ROM e 256 Bytes de memria RAM e que esto remanejados da seguinte maneira:1) 128 Bytes de uso geral.2) 128 Bytes reservados para registro de funes especiais (SFRs Special Register Funcion), tais como portas de entrada e sada, timers, comunicao serial, etc.

2.2.1. Memria de dados Interna e ExternaA memria de dados (RAM Random Access Memory) do 8051 dividida em memria interna e memria externa. A interna apresenta uma baixa capacidade de 128 Bytes destinada ao usurio para implementao de programas, e outra parte, tambm com 128 Bytes, reservada aos registradores de funes especiais (SFRs) que permitem, entre outras coisas, a configurao do sistema.

Este livro prope apenas atividades que utilizam a memria interna do AT89S52, tendo em vista que o acesso memria externa est atualmente, em desuso nos microcontroladores modernos.

Nota

2.3. Registradores de funes especiais

So posies fsicas absolutas da memria RAM, que recebem um apelido, que tem funes especficas dentro do microcontrolador. Com eles possvel programar o microcontrolador para efetuar determinadas funes desejadas, tais como: uma comunicao serial, enviar um dado pela porta paralela do microcontrolador. Estes registradores so a parte mais importante do chip.Estes registradores de funes especiais so na verdade, posies da memria RAM, ou seja, um nmero em notao hexadecimal. Entretanto, alguns deles possuem um nome, ou seja, um apelido que facilita o desenvolvimento e o entendimento do programa. A figura 2.2 mostra alguns registradores presentes na famlia 8051 atravs dos seus apelidos de Bit e Byte, assim como seus endereos fsicos absolutos.

Figura 2.2 Mapa dos registradores especiais SFR do 8051.Podemos trabalhar com os registradores especiais utilizando seus apelidos ou seu endereo fsico absoluto da memria RAM.Em seguida veja os SFRs que fazem referncias s portas paralelas do 8051, com seus apelidos seguidos pelos seus endereos fsicos absolutos em hexadecimal. PORTS P0, P1, P2 e P3 P0 (80H) P1 (90H) P2 (A0H) P3 (B0H)

P0, P1, P2 e P3 so posies na memria RAM que contm os dados das portas paralelas do microcontrolador. Qualquer escrita realizada em um desses registros automaticamente altera todo o contedo presente na sada do chip.

STACK POINTER SP (81H)

um registrador utilizado como pilha de endereos de retorno de sub-rotinas, que informa para o microcontrolador o ponto de retorno no programa principal depois de executada uma sub-rotina ou trmino de uma interrupo. Ele acessado pelas instrues PUSH e POP e indiretamente manipulado pelas instrues CALL/RETURN que so utilizadas em sub-rotinas na linguagem Assembly. Na linguagem C este registrador manipulado automaticamente pelo compilador e no necessita da interveno do programador.

TIMER 0 e TIMER 1 TH1 (8DH) TL1 (8BH) TH0 (8CH) TL0 (8AH)

O AT89S52 possui 3 timers que podem ser programados para trabalharem como geradores de tempo (timers) ou como contadores de pulsos (contadores). O conjunto de dois registradores de 8 bits, TH e TL, formam um nico registrador de 16 bits. Neste livro os timers/counters sero apresentados no modo de 16 bits. TIMER CONTROL REGISTER TCON (88H) TL1 (8BH) TH0 (8CH) TL0 (8AH)

TIMER MODE REGISTER TMOD (89H)Permite programar os modos de atuao de cada timer existente no microcontrolador.

POWER CONTROL REGISTER PCON (87H) um registrador usado para controlar os modos de funcionamento do microcontrolador com relao ao consumo de energia e detentor tambm do registrador SMOD utilizado na configurao do modo da comunicao serial.

SERIAL BUFFER SBUF (99H)A transmisso de dados no 8051 realizada pelo registrador especial SBUF (serial buffer). Fisicamente dentro do chip temos dois SBUF, um para transmisso e outro para recepo, mas para o software s existe um SBUF.

IP e IE (Interrupt Priority e Interrupt Enable) IE (A8H) IP (B8H)So registradores de funes especiais responsveis pelas interrupes do microcontrolador. O registrador IP (Interrupts Priority) define a prioridade no atendimento das interrupes pelo processador. O registrador IE (Interrupts Enable) habilita ou desabilita todas as interrupes do microcontrolador. Seu funcionamento parecido com o de uma chave geral. Veremos mais adiante quando chegarmos ao captulo que trata das interrupes.

2.4. Pinagem do Microcontrolador AT89S52

(encapsulamento SMD)

Figura 2.3 Tipos de encapsulamento.

VCC Alimentao de +5V GND ou VSS - TerraPort P0: composto por oito pinos. utilizado para comunicao de entrada e sada (I/Os) de dados. o Port que fornece mais corrente em relao aos demais. Suas sadas so em coletor aberto, e apenas fornecem nvel 0 e flutuante (aberto). Para produzir nvel alto na sada deste Port necessrio conectar resistores de 4,7K nos respectivos pinos em relao ao +VCC. Esta caracterstica (sadas em coletor aberto) permite ao microcontrolador manipular tenses maiores que +5V.

Port P1: barramento composto por oito pinos. utilizado para comunicao de entrada e sada (I/Os) de dados. Durante o processo de gravao atravs de 4 pinos deste Port que o arquivo . HEX gravado na memria do chip. Por este motivo, o Port P1 ultimo a ser utilizado tendo em vista que durante o processo de gravao, este Port parcialmente ocupado pelo cabo de gravao.

Port P2: barramento composto por oito pinos. utilizado para comunicao de entrada e sada (I/Os) de dados e por no possuir funes especiais, preferivelmente utilizado para sada de dados.

Port P3: possui funes especiais em seu barramento, pois nele esto ligados o canal de comunicao serial, as interrupes, os timers e os contadores (veja abaixo as funo especial de cada pino). Pode ser utilizado tambm como port de escrita e leitura de dados (I/O). Tipicamente neste port so conectados dispositivos de entrada, tais como: teclas e sensores.

P3.0 RxD, entrada serial P3.1 TxD, sada serial P3.2 INT0, interrupo externa 0 P3.3 INT1, interrupo externa 1 P3.4 T0, entrada para o timer 0 P3.5 T1, entrada para o timer 1

P3.6 e P3.7, so utilizados para escrita e leitura na memria de dados externa, atualmente em desuso, e portanto, e foge do escopo deste livro.

RST: assim como seu no seu computador, nos microcontroladores existe um pino de RESET, cuja funo reiniciar o programa.

EA/VPP: External Access Enable. Informa a CPU se o programa .HEX est dentro do microcontrolador (ROM), ou se est numa memria externa.Se utilizarmos memria de programa interna, fixamos este pino fsico em 1, j se formos trabalhar com memria de programa externa (no caso de programas muito extensos), esse pino deve ser fixado em 0. Lembrando que, de acordo com o modelo de microcontrolador usado, o tamanho da memria interna varia.

XTAL1 e XTAL2: pinos atravs dos quais ser conectado o cristal que gera o clock externo para o componente. O AT89S52 possui um oscilador interno ligado a esses pinos e todo o sincronismo de execuo das tarefas ser baseado na freqncia de pulsos desse oscilador. Podemos utilizar cristais como geradores de clock externo, respeitando as freqncias mxima e mnima de trabalho de cada componente da famlia 8051.

2.5. O ClocKInternamente ao microcontrolador existe um circuito oscilador (clock), o qual depende apenas da ligao de um cristal e de dois capacitores para funcionar. O Cristal energizado, comea a oscilar e gera um sinal senoidal peridico, a freqncia de oscilao fixa e corresponde a freqncia nominal do cristal utilizado. Esse sinal que vem do cristal entra no oscilador interno que o transforma numa onda quadrada, a qual servir como um relgio para o microcontrolador. Desta forma sincroniza a execuo de qualquer atividade interna da mquina, ou seja, o tempo exigido para a execuo de cada instruo do programa est diretamente ligado freqncia de trabalho desse conjunto: oscilador interno e cristal.

Forma dentro do microcontroladorForma de onda gerada pelo Cristal

Figura 2.4.

Ligao do cristal:

Os capacitores ligados aos pinos XTAL1 e XTAL2 produzem a oscilao, enquanto que o Cristal tem a funo de estabilizar esta freqncia.

Nota

Figura 2.5.Aspecto do cristal:

A seguir observe alguns modelos cristal:

(a) (b) (c)

Figura 2.5 Tamanhos de cristal: normal (a), compacto (b) e SMD (c).

2.6. Ciclos de MquinaComo citado no item anterior, o conjunto oscilador interno e cristal que gera e controla os ciclos de trabalho da mquina, porm a contagem de tempo no medida pela freqncia de oscilao do cristal e sim atravs do que chamamos de CICLO DE MQUINA. Cada ciclo de oscilao do cristal gera um pulso (P) e cada dois pulsos caracterizam um estado S (state). Uma seqncia de seis estados (S1 a S6) corresponde a um CICLO DE MQUINA. Todas as atividades do microcontrolador so comandadas por esses pulsos e seus seis estados.

Assim, um CICLO DE MQUINA constitudo de seis estados (S1 a S6) que correspondem a doze pulsos ou ciclos do cristal. A freqncia real de trabalho do 8051 (medida em ciclos de mquina) pode ser calculada da seguinte forma:

Ciclo de mquina = f[Hz] do cristal /12

Representao de um CICLO DE MQUINA:

1 ciclo de mquina

ciclo de mquina

Figura 2.6 Representao dos Ciclos de Mquina do 8051.2.7. ResetAo energizarmos um microcontrolador, o estado de seus registradores internos imprevisvel. Para que isto no ocorra, foi necessria a insero de um sinal de RESET, o qual inicializa o sistema de forma padronizada. Esse sinal ligado a um pino fsico do chip chamado RST, e para que ele seja ativado, devemos manter nvel lgico 1 nesse pino por mais de dois ciclos de mquina.

Sempre que ligamos ou energizamos o circuito microcontrolado, interessante que o chip seja resetado. Para isso necessria a insero de um circuito eletrnico bem simples, mas capaz de realizar esse procedimento que costumamos chamar de POWER ON RESET.

Alm disso, interessante que exista um boto para que o usurio possa reiniciar o sistema sempre que for necessrio (reset manual). Em seguida apresentamos um exemplo de circuito para os dois modos de reset.

No reset, vrios registradores so forados a estados predefinidos. O programa retorna para o incio da ROM. Durante o reset, todos os pinos de entrada e sada vo a nvel alto (apenas nesse instante).

Figura 2.7 Circuito de reset.

CAPTULO33. 4. 5.

JFE EDITOR

3.1. Conhecendo o JFE EDITORO JFE Editor uma interface de desenvolvimento de programas para microcontroladores. No entanto, esta interface apenas de um editor de textos com realce colorido dos comandos (SINTAXE HIGHLIGHT) da linguagem C. A compilao do programa que criamos e a gerao do arquivo .HEX realizada pelo SDCC (Small Device C Compiler), amplamente utilizado por desenvolvedores de softwares para o sistema operacional LINUX, bem como para a criao do prprio LINUX.

3.1.1. Principais Caractersticas Linguagem C estruturada com funes Cdigo de mquina rpido e otimizado pelo SDCC Os programas so facilmente adaptados para outros microcontroladores da famlia 8051. Programao estruturada com instrues: IF ELSE, FOR, WHILE, SWITCH CASE. Variveis como bit, char, int e long Realce colorido dos comandos (sintaxe highlight) da linguagem C

3.2. Instalao do JFE EditorNo site de estudos possvel baixar a verso completa do JFE Editor juntamente com o SDCC Compiler, que permite criar programas para microcontroladores 8051.Aps baixar o JFE Editor, instale o programa, rode-o com um clique duplo em seu cone sem alterar as opes de instalao.

O JFE Editor est configurado para ser instalado automaticamente na pasta (diretrio) C:\8051 e SOMENTE funcionar neste diretrio.Nota

3.2.1. Localizao do JFE EditorAps a instalao, rode o JFE Editor com um clique duplo sobre o seu cone localizado em C:\8051. O nome do arquivo executvel jfe.exe

Figura 3.1 cone do programa JFE Editor.

3.3. Painel de ControleO JFE Editor (Jeans File Editor) um editor de textos com reconhecimento dos comandos da linguagem C para microcontroladores. No entanto, toda inteligncia deste editor est no compilador SDCC, que em conjunto com o JFE Editor, resulta num excelente ambiente de desenvolvimento freeware. O JFE possui um painel de controle muito simplificado, permitido desenvolver seus programas com muita facilidade.

Figura 3.1 JFE Editor.3.4. Barra de Ferramentas e MenusNa barra de ferramentas encontramos diversos recursos que ajudam na edio dos programas. Vamos conhecer as ferramentas mais importantes e sua descrio.

3.4.1. Menu FileFile NewGera uma nova janela para edio do programa

File OpenAbre um arquivo criado anteriormente

File CloseFecha o arquivo que voc est editando

File SaveSalva as modificaes do seu programa

File Save As...Salva o arquivo, podendo salvar com outro nome

File ExitSai do programa JFE Editor

3.4.2. Menu EditUndoDesfaz a alterao do texto

RedoRefaz a modificao do comando Undo

CutRecorta o texto selecionado

PasteCola o texto numa parte selecionada do programa

FindPermite realizar a busca de palavras no programa

ReplaceSubstitui um texto no seu programa

3.5. Como Editar e Compilar um Programa no JFE Editor

3.5.1. EdioEditar um programa no JFE Editor muito simples:

1) Abra o JFE Editor (localizado em C:\8051\jfe.exe).2) Atravs do menu File New gere um novo arquivo.3) Salve seu novo programa atravs do menu File Save.4) Digite o nome do arquivo (SEM ESPAOS, sem acentos, sem cedilhas), acrescente a extenso .C e depois clique no boto salvar (veja o exemplo ilustrado a seguir).

Figura 3.2 Salvando um programa no JFE Editor.

Para compilar o seu programa, o arquivo .C deve necessariamente estar armazenado em alguma pasta do computador. O SDCC ir gerar um erro ao tentar compilar arquivos a partir de Pendrives, logins de usurios ou qualquer unidade diferente da unidade C.Nota

3.5.2. CompilaoDepois que seu programa for editado, preciso compil-lo para ser gerado o arquivo necessrio para a gravao do chip (arquivo com extenso .hex). Para isso, basta pressionarmos o boto compilar com o mouse ou pressionar as teclas Ctrl e F9 juntas. Na mesma pasta em que o programa .C est salvo aparecem os arquivos criados na compilao (arquivo . hex).

3.5.3. Erros de CompilaoO SDCC Compiler no pode compilar o programa caso o programador tenha cometido algum dos seguintes erros: Erro de edio do programa (muito freqente). Tenha nomeado o arquivo com ESPAOS, acentos o CEDILHAS. Esteja compilando o programa a partir de Pendrivres ou qualquer outra unidade diferente de disco local C:\8051. Caso o programa tenha erros de edio de programa (tambm chamados de erros de sintaxe), ao compil-lo, surge uma mensagem na caixa inferior de mensagens o erro cometido pelo programador e a linha de programa onde o erro ocorreu.A linha de programa com erros de sintaxe e/ou edio ser indicada na caixa inferior do JFE Editor. O programa a seguir contm um erro de sintaxe (syntax error).

Linha em que o erro foi cometido

Figura 3.3 Exemplo de erro na compilao.

3.5.4. Nome dos arquivos gerados na CompilaoQuando uma compilao executada sem erros pelo programador, O SDCC Compiler gera dentro da pasta do Arquivo.C os seguintes arquivos:

Arquivo.HEX Compatvel com o software de gravao AEC_ISP.EXE via cabo paralelo e software GRAVA SERIAL.EXE via cabo serial.

Arquivo.BIN Compatvel apenas com o software de gravao GRAVA SERIAL.EXE via cabo serial.

CAPTULO4

Elementos da Linguagem C

4.1. Introduo Linguagem CNeste captulo vamos estudar detalhadamente a linguagem C com nfase nos microcontroladores 8051.

A partir deste ponto do livro, todos os programas devem ser editados no JFE Editor e no so compatveis com outros Compiladores como Turbo C, Dev C++, etc (pois estes so compiladores para computadores e no para microcontroladores).Nota

O emprego da linguagem C na programao dos microcontroladores no complicado, mas exige o conhecimento mnimo da estrutura de programao e conhecimento sobre as estruturas internas do 8051, para fazer programas eficientes e compactos, tendo como resultado economia de memria e maior rapidez no processamento do programa pelo chip.Vejamos um exemplo do programa exemplo1.C:

#include //contm as definies do chip void main(){ //declara incio do programa P2_0=1; //liga o pino P2.0} //declara fim do programa

Com o uso inteligente dos comentrios e funes, o programa se torna mais compreensvel. Programas extensos podem ser divididos em sub-rotinas (funes) que ocasionalmente consumiro menos memria do microcontrolador e tornaro o seu processamento mais rpido.O programa exemplo1.C descrito anteriormente, tem como funo ativar o pino P2.0 do microcontrolador.Conforme comentado nos captulos anteriores, para o programa exemplo1.C ser gravado no microcontrolador, precisamos primeiramente compil-lo, ou seja, transformar os comandos digitados na linguagem C em linhas de comandos de mquina que obedecem o padro hexadecimal da Intel.Contedo do arquivo exemplo1.hex gerado no JFE Editor::040000000200383290:01000B0032C2:0100130032BA:01001B0032B2:0100230032AA:01002B0032A2:100038007581CF120034E582600302002C7900E953:100048004400601B7A00900080780075A000E4935B:10005800F2A308B8000205A0D9F4DAF275A0FF7877:1000680000E84400600C7900900000E4F0A3D8FC9C:08007800D9FAF6D8FD02002CB4:0C002C0012003180FED28022758200227A:00000001FF

No se preocupe caso no tenha entendido o programa1c. Ao longo deste livro os programas sero abordados de forma mais detalhada.Nota

4.2. A Linguagem C Case Sensitive Isto significa dizer que C diferencia letras minsculas de maisculas. Os identificadores: CONTADOR, contador, Contador so diferentes entre si e especial ateno deve ser dada a esse fato, pois ao criarmos uma varivel de uma maneira e escrev-la de outro, gera-se um erro na compilao. Essa regra aplica-se tambm a todos os comandos da linguagem C. Os comandos devem ser escritos com letras minsculas, ex.: while, for, if.

4.3. Palavras Reservadas A linguagem C possui um conjunto de palavras reservadas que no podem ser usadas como variveis de programa ou para outros fins. As palavras reservadas da linguagem C (padro ANSI) so:autobreakcasecharconst

continuedefaultdodoubleelse

enumexternfloatforgoto

ifintlongregisterreturn

shortsignedsizeofstaticstruct

switchtypedefunionunsignedvoid

volatilewhilemain

Tabela 4.1 - Palavras reservadas do padro ANSI-C.

As palavras realadas com a cor cinza so as mais freqentemente utilizadas para o aprendizado da Programao C para microcontroladores 8051.

Para facilitar o uso de algumas caractersticas da famlia 8051, o SDCC Compiler adiciona novas palavras ao conjunto-padro de palavras reservadas do C:bitinterruptusingsfr

Tabela 4.2 - Conjunto adicionado ao padro ANSI-C.

Uma palavra reservada da linguagem C no pode ser utilizada pelo programador como uma varivel do programa. A seguir temos um exemplo de erro no emprego destas palavras: while = 1;int = 200;

Assim como as palavras reservadas, temos um conjunto de registradores que tambm no devem ser utilizados para outros fins. So eles:TCONTimer/counter control

SCONSerial port control

IEInterrupt Enable

IPInterrupt priority control

PSWProgram status word

ACCAccumulador

BB

SPStack pointer

DPLData pointer Low Word

DPHData pointer High Word

PCONPower control

TMODTimer/counter mode control

TL0Timer/counter 0 low Byte

TL1Timer/counter 1 low Byte

TH0Timer/counter 0 high Byte

TH1Timer/counter 1 high Byte

SBUFSerial data port

P0Port P0

P1Port P1

P2Port P2

P3Port P3

Tabela 4.3 - Conjunto de registradores do 8051.

A seguir temos um exemplo de erro no emprego destas palavras: int B = 10;int SBUF = 3;

No podemos declarar variveis com o nome de SBUF, pois SBUF uma palavra reservada da linguagem.

4.4. ComentriosOs comentrios recebem o nome de documentao do programa e de vital importncia para entendermos futuramente o programa. O compilador SDCC Compiler aceita dois tipos de marcadores de comentrios: os comentrios de mltiplas linhas e os comentrios de linha.Os comentrios de mltiplas linhas devem iniciar com /* (barra-astersco) e terminar com */ (asterisco-barra), exemplo:/* TUDO OQUE ESTIVER ENTRE OS MARCADORES DE COMENTRIO IGNORADO PELO COMPILADOR */

#include //contm as definies do chip void main(){ //declara incio do programa P2_0=1; //liga o pino P2.0} //declara fim do programaOs comentrios de linha iniciam com // (dupla barra) e o que estiver depois dele na mesma linha ignorado pelo compilador, exemplo:

4.5. Tipos de DadosToda varivel usada em um programa deve ser declarada como de um determinado tipo, ou seja, assume um certo nmero de Bits (tamanho) que define suas caractersticas. As variveis podem ser definidas como:

Tipo de dadobitsBytesAlcance

bit10 a 1

signed char81-128 a +127

unsigned char810 a 255

signed int162-32768 a + 32767

unsigned int1620 a 65535

signed long324-2147483648 a +2147483648

unsigned long3240 a 4294967295

float3241,175494E-38 a 3,402823E+38

Tabela 4.4: - Tipos de dados4.5.1. Constantes - constPodemos definir a um smbolo valores constantes pela funo const, utilizada quando definimos um valor numrico ou uma string para um smbolo. No momento da compilao, o compilador encarrega-se de trocar todos os smbolos criados pelo seu respectivo valor. Exemplo:const LIGADO=1;const DESLIGADO=0;const TEMPO_MAXIMO=100;

Aps a definio dessas constantes, possvel utilizar as palavras como tendo mesmo significado do valor numrico igualado.

4.5.2. Definies - #defineNo tpico anterior vimos a utilizao de constantes. As definies servem para criar novos smbolos que sejam equivalentes a outros j existentes. No momento da compilao, o compilador encarrega-se de trocar todos os smbolos criados pelo seu respectivo valor. Exemplo:

#define MOTOR P2_0#define LAMPADA P2_1

Na linguagem C, os comandos iniciados pelo caractere # so os nicos que no recebem ponto-e-vrgula no final da sintaxe.Nota

Os comandos de definio #define e const servem para tornar o programa mais compreensvel e podem ser utilizados sempre que forem teis e por tendo em vista que so eliminados durante a compilao, acabam por no consumir memria extra do microcontrolador.

A seguir temos dois programas iguais. Veja como os comandos de definio auxiliam na compreenso do programa.

Exemplo de um programa utilizando os comandos de definio:

#include //contm as definies do chip#define LAMPADA P0_0const LIGADO=1;void main(){ //declara incio do programa P0=0; //desliga todos os pinos LAMPADA=LIGADO; //liga o pino P0.0} //declara fim do programa

Exemplo de um programa sem os comandos de definio:

#include //contm as definies do chip void main(){ //declara incio do programa P0=0; //desliga todos os pinosP0_0=1; //liga o pino P0.0} //declara fim do programa

4.6. FunesQuando temos no programa comandos que so repetidos vrias vezes, podemos utilizar o recurso da funo. As funes so blocos modulares de comandos que podem ser chamados de diferentes pontos do programa, para que no sejamos forados a reescrev-los todas as vezes necessrias.

Neste livro as funes da linguagem C so abordadas com nfase em microcontroladores, o que reduz a diversidade de comandos estudados sobre a linguagem C.Nota

4.6.1. Estruturas das FunesAs funes devem ser declaradas antes de serem chamadas.As funes podem conter parmetros que carregam informaes para o bloco de comandos da funo.Para chamar uma funo inserimos seu respectivo nome no trecho do programa em que a mesma deva ser executada (chamada ou CALL em Assembly).Finalizada a funo, o programa retorna na linha seguinte ao comando que a chamou.

#include //contm as definies do chip#include //contm as definies do chip void piscaLED(){ //declara incio da funo piscaLED P2_0=1; //liga o pino P2.0 delay_ms(1000); //aguarda 1 segundo P2_0=0; //desliga o pino P2.0 delay_ms(1000); //aguarda 1 segundo} //declara fim da funo piscaLEDvoid main(){ //declara incio do programapiscaLED(); //chama a funo pisca led} //declara fim do programa

importante observar que todas as novas funes do programa devem ser declaradas antes da funo principal (main).

4.6.2. O Tipo voidO void, que traduzido para o portugus quer dizer vazio, um tipo de dado utilizado em funes que no retornam nada e tambm em funes que no possuem nenhum parmetro declarado. A funo main para o 8051 um exemplo de funo que no retorna nada e no recebe nenhum parmetro. Devido o direcionamento dado Linguagem C para microcontroladores 8051, as funes abordadas neste livro no retornaro valores e por isso sempre utilizaro o identificador void para preceder o nome da funo.

4.7. O Comando #includeOs arquivos cabealho (ou header em ingls) contm definies para que o arquivo na linguagem C possa ser compilado.Na compilao, baseado nesse arquivo header, o compilador gera o cdigo correto para a utilizao das funes. Algumas dessas funes j esto compiladas e embutidas no prprio compilador, gerando ento, o cdigo correto no momento da sua linkagem (unio do arquivo header com o arquivo em C e outros arquivos do compilador).Todos os programas em C para microcontroladores tem pelo menos, um arquivo de cabealho. O nome deste arquivo depende do microcontrolador utilizado. Todos os microcontroladores da famlia 8051 possuem uma variao na srie do mesmo modelo, observe as letras S e C:

AT89C51 ou AT89S51 AT89C52 ou AT89S52

Figura 4.1. Diferenas entre a srie S e C.

Ambos chips so compatveis (exceto no mtodo de gravao). No caso dos microcontroladores da srie C, estes podem ser programados apenas uma nica vez, ou seja, a sua memria ROM (Read-Only Memory), onde gravado o programa .HEX no poder ser reprogramada. Por este motivo, os microcontroladores da srie C esto cada vez mais caindo em desuso.Os microcontroladores da srie S so classificados como In-System Programmable e podem ser reprogramados (regravados) mais de mil vezes.Em funo da variao entre srie C e S, o arquivo cabealho (header), o qual contm as definies dos registradores e palavras reservadas do chip nomeado de AT89X52.H. A letra X presente no nome deste arquivo deve ser entendida como letra curinga, tornando esse header compatvel com os microcontroladores das duas sries (C e S).

Os microcontroladores da srie C51 e S51 so 100% compatveis no funcionamento e na programao. Entretanto, o mtodo de gravao do chip diferente. As principais diferenas encontram-se nos protocolos de gravao e na tenso de gravao (Vpp).Por isso, no possvel gravar um AT89C52 com o gravador do AT89S52.Nota

Contedo parcial do arquivo AT89X52.H contido no SDCC Compiler:

1 sfr at 0x80 P0 sfr at 0x81 SP sfr at 0x82 DPL sfr at 0x83 DPH sfr at 0x87 PCON sfr at 0x88 TCON sfr at 0x89 TMOD sfr at 0x8A TL0 sfr at 0x8B TL1 sfr at 0x8C TH0 sfr at 0x8D TH1 sfr at 0x90 P1 sfr at 0x98 SCON sfr at 0x99 SBUF sfr at 0xA0 P2 sfr at 0xA8 IE sfr at 0xB0 P3 sfr at 0xB8 IP sfr at 0xC8 T2CON sfr at 0xC9 T2MOD sfr at 0xCC TL2 sfr at 0xCD TH2 sfr at 0xD0 PSW sfr at 0xE0 ACC sfr at 0xE0 A sfr at 0xF0 B

/* P0 */sbit at 0x80 P0_0 sbit at 0x81 P0_1 sbit at 0x82 P0_2 sbit at 0x83 P0_3 sbit at 0x84 P0_4 sbit at 0x85 P0_5 sbit at 0x86 P0_6 sbit at 0x87 P0_7

/* TCON */sbit at 0x88 IT0 sbit at 0x89 IE0 sbit at 0x8A IT1 sbit at 0x8B IE1 sbit at 0x8C TR0 sbit at 0x8D TF0 sbit at 0x8E TR1 sbit at 0x8F TF1

/* P1 */sbit at 0x90 P1_0 sbit at 0x91 P1_1 sbit at 0x92 P1_2 sbit at 0x93 P1_3 sbit at 0x94 P1_4 sbit at 0x95 P1_5 sbit at 0x96 P1_6 sbit at 0x97 P1_7

/* P2 */sbit at 0xA0 P2_0 sbit at 0xA1 P2_1 sbit at 0xA2 P2_2 sbit at 0xA3 P2_3 sbit at 0xA4 P2_4 sbit at 0xA5 P2_5 sbit at 0xA6 P2_6 sbit at 0xA7 P2_7

O arquivo AT89X52.H nomeia todos os registradores do microcontrolador com um apelido que visa facilitar a vida do programador. Sem o uso deste header o programador precisaria trabalhar diretamente com os endereos de memria onde encontram-se os registradores especiais (SRFs). O primeiro item dos registradores da lista acima apelida o endereo 0x80 (em hexadecimal) como sendo o PORT P0. sfr at 0x80 P0 Special function register at 0x80 P0 define o registrador que est na posio de memria 0x80 com o apelido de P0. somente aps esta definio que o compilador entende que o significado do smbolo P0 e esta associao ocorre com todos os registradores especiais do microcontrolador.Devido a importncia de criar apelidos para os registradores do microcontrolador, o comando #include deve ser a primeira instruo de qualquer programa escrito para microcontroladores 8051 na linguagem C.

4.7.1. Como Incluir um header no ProgramaPara incluir um cabealho no programa em C, utilizamos a seguinte sintaxe:#include

Assim temos:#include ou#include

No ambiente Windows, os nomes de arquivo no tem distino entre letras minsculas e maisculas. No entanto, a linguagem C sugere o uso predominante de letras minsculas. Nota

CAPTULO5

Operadores

5.1. Tipos de OperadoresA linguagem C possui operadores para atribuir, comparar ou modificar um ou mais dados ou variveis. Os objetos manipulados por essa finalidade so chamados de operadores (que podem ser variveis, constantes ou outros elementos, como os registradores de funes especiais). Os operadores devem ter ao menos, dois operandos.Podemos dividir os operadores em quatro categorias: Aritmtica: para clculos. Relacional: para comparar valores numricos. Logical: para testar condies ou manipular bits individuais. Booleana: como suplemento de operaes simples.

5.1.1. Operadores AritmticosSo utilizados para a realizao de operaes matemticas os seguintes operadores aritmticos:OperaoSmbolo

Soma+

Subtrao-

Multiplicao*

Diviso/

Resto da diviso (inteiro)%

Incremento em um++

Decremento em um--

Os operadores aritmticos so utilizados quando precisamos realizar operaes matemticas. Na linguagem C, os operadores usam duas variveis e retornam um terceiro valor mantendo inalteradas as variveis originais.

Soma: int y=10;int z=5;

Soma o contedo da varivel y com a varivel z e armazena o resultado na varivel x.int x=0;

x=(y+z);

Subtrao int a=10;int b=5;

Subtrai da varivel b o contedo da varivel a e armazena o resultado na varivel c.int c=0;

c=(b-a);

Multiplicao int a=1;int b=20;

Multiplica o contedo da varivel b pelo da varivel c e armazena o resultado na varivel a.int c=2;

a=(b*c);

Diviso int a=0;int b=20;

Divide o contedo da varivel b pelo da varivel c e armazena o resultado na varivel a.int c=2;

a=(b/c);

Resto da diviso (inteiro) int a=1;int b=25;

Divide o contedo da varivel b pelo da varivel c e armazena o resto da diviso na varivel a.int c=2;

a=(b%c);

Incremento em um

Incrementa a varivel contagem em uma unidade.int contagem=0;

contagem++;

Decremento em um

Decrementa a varivel contagem em uma unidade.int contagem=10;

contagem--;

5.1.2. Operadores RelacionaisOs operadores relacionais realizam operaes de comparao, retornando o valor dessa comparao com valores falsos (0) ou verdadeiros (1). Esses operadores no afetam o contedo das variveis aps a sua concluso.OperadorDescrioSmbolo

==Igual a+

!=Deferente de-

Maior que/

=Maior ou igual a++

Todos os operadores e operandos envolvidos na comparao devem ser colocados entre parnteses. Exemplo:A=0;B=10;C=1;

if(A>B) C=1; se A for maior do que B, ento C recebe 1.if(A0)&(A