Microcontrolador 8051

June 19, 2017 | Autor: Alan Vieira Giavera | Categoría: Microcontrollers, PIC microcontroller, Engenharia Elétrica, Assembly Programming 8051
Share Embed


Descripción

Esteira com 8051

Alan Vieira Giávera | RA 19160-1 Carlos Eduardo Buffo | RA 19173-4 Gustavo Sartori Martins | RA 19266-6 Haroldo Thales de Lima | RA 19268-2 Helton Possidonio Viola | RA 19501-6 Jander Rogero Policani | RA 18356-6 Wagner Fraga Lameu | RA 19366-4

São João da Boa Vista 06/2015

Sumário 1

INTRODUÇÃO ................................................................................................................... 3

2

OBJETIVO GERAL E ESPECÍFICO.................................................................................. 3

3

REFERENCIAL TEÓRICO ................................................................................................ 4 3.1

ESTEIRA TRANSPORTADORA ............................................................................... 4

3.2

MOTOR / REDUTOR .................................................................................................. 5

3.3

CHAVE FIM DE CURSO ............................................................................................ 5

3.4

FAMÍLIA 8051 ............................................................................................................. 6

3.4.1

ARQUITETURA ................................................................................................... 6

3.4.2

PINAGEM ............................................................................................................. 7

4

DIAGRAMA ........................................................................................................................ 9

5

LINGUAGEM DE PROGRAMAÇÃO ............................................................................. 10 5.1

ASSEMBLY ............................................................................................................... 10

5.2

CÓDIGO FONTE ....................................................................................................... 10

6

CIRCUITO ELÉTRICO ..................................................................................................... 13

7

BIBLIOGRAFIA ................................................................................................................ 14

2

1

INTRODUÇÃO

O projeto visa à otimização do tempo gasto no processo geral da produção industrial, especificamente nas indústrias do ramo de embalagem de materiais como economia de tempo gasto no processo além de ser uma questão econômica, pois procura incluir a tecnologia para facilitar os processos na área. A temática da realização da esteira também pensa em questões econômicas, pois um processo automatizado oferece mais eficiência, reduz mão de obra e o tempo gasto assim aumentando o lucro obtido no final da produção. O projeto facilita o empacotamento de produtos em sua embalagem de forma automatizada, então a esteira foi pensada para tornar os processos mais eficientes, seguros, rápidos e econômicos, pois o tempo gasto em um sistema automatizado é bem menor do que aquele que é realizado por manufatura. A ideia da realização da esteira também surgiu pensando na segurança do operador, pois durante a realização do processo automatizado o operador fica livre de acidentes, pois o mesmo praticamente não terá contato com o produto, impossibilitando o risco de cair algo sobre ele e também o movimento repetitivo, que é um dos principais fatores de afastamento de trabalho. A realização desta esteira também nos permitiu aprender como montar e realizar a automatização de determinado processo, além dos elementos necessários para o controle deste processo como microprocessador 8051, linguagem de programação Assembly, sensores, componentes elétricos e uma ideia básica em projetos mecânicos.

2

OBJETIVO GERAL E ESPECÍFICO

O principal objetivo deste projeto foi desenvolver e automatizar uma esteira transportadora utilizada para a contagem de embalagem de produtos. Para isso, será utilizado um microcontrolador da Família 8051, um motor monofásico, uma chave fim de curso, duas

3

switchs e um display de sete segmentos. Foi utilizada para a programação do microcontrolador a linguagem Assembly. O objetivo específico foi montar um circuito no qual faça um controle da contagem embalagens de produto, aumentando a produtividade e

diminuir o esforço humano,

desenvolvendo um programa de controle utilizando a linguagem Assembly e Projetando um sistema de controle através de uma esteira transportadora, no qual possui um motor elétrico que movimenta a esteira a partir de um comando do operador, que utiliza um fim de curso para a contagem de cinco produtos, após essa contagem a esteira para por cinco segundos e reinicia sua lógica novamente.

3

REFERENCIAL TEÓRICO

3.1

ESTEIRA TRANSPORTADORA

Geralmente uma esteira transportadora consiste em duas ou mais polias que movimentam uma superfície em que determinados materiais ou objetos são transportados. É muito utilizada no ramo industrial. Cada componente tem um desempenho importante no funcionamento do transportador. Os sistemas de esteiras transportadoras existem desde 1919, e servem para redução de tempo e custos nas indústrias, eles podem ser automatizados ou não, dependendo da aplicação que cada projeto necessita. A composição da esteira utilizada no projeto: 1. Estrutura física de sustentação foi fabricada em aço carbono e pintura em esmalte sintético azul. 2. Duas polias sincronizadas com rolamento, sendo uma fixa (mancal e fixação do eixo de rotação) e a outra móvel (para ajuste de tensionamento da correia). 3. Correia sincronizada (utilizada como meio de transporte dos objetos).

4

3.2

MOTOR / REDUTOR

Os motores de corrente contínua (CC) ou motores DC (Direct Current), como também são chamados, são dispositivos que operam aproveitando as forças de atração e repulsão geradas por eletroímãs e imãs permanentes. Microredutor com motor de 24V. O eixo de saída pode ser fornecido no comprimento que desejar. Pode ser fixado através dos prisioneiros ou dos ressaltos roscados. O motor utilizado no projeto possui tensão nominal de 24V e corrente média de 0,1 A, equipado com um redutor da marca Merkle-Korff Industries Mod. KF.

3.3

CHAVE FIM DE CURSO

A Chave fim de curso é um termo genérico usado para referir-se a um comutador elétrico que é capaz de ser atuado por uma força física muito pequena. Ela é muito comum devido ao seu pequeno custo e extrema durabilidade, normalmente maior que um milhão de ciclos e acima de dez milhões de ciclos para modelos destinados a aplicações pesadas. Possui um contanto normal fechado, que quando a extremidade e tocada, comuta o contato, evitando a passagem da corrente ou permitindo a passagem da corrente variando de acordo com sua conexão. Foi escolhida para nosso projeto uma chave fim-de-curso da marca KAP modelo MV5, este dispositivo possui 2 contatos, COM (Comum), NO (Normalmente aberto) e NC (Normalmente fechado). O mesmo suporta uma corrente máxima de 10 A e uma tensão máxima de 250V ~.

5

3.4

FAMÍLIA 8051

O microcontrolador 8051 é um componente que possui, num único chip, além de uma CPU, elementos tais como memórias ROM e RAM, temporizadores/contadores, PWM, conversor AD, canais de comunicação e conversores analógico-digitais. Esta característica diferencia

os

sistemas

baseados

em

microcontroladores

daqueles

baseados

em

microprocessadores, onde normalmente se utilizam vários componentes para implementar essas funções. Com isso, os microcontroladores permitem a implementação de sistemas mais compactos e baratos do que aqueles baseados em microprocessadores.

3.4.1 ARQUITETURA

A arquitetura do 8051 é disposta da seguinte maneira:  Memória de programa e memória de dados;  Portas de I/O;  Comunicação Serial;  Contadores/ “Timers”;  Lógica para Controle de Interrupção;  Conversores A/D e D/A  CPU de 8 bits otimizado para aplicações de controle  Capacidade de processamento booleano (lógica de um único bit)  64 Kbytes de espaço de memória de programa  64 Kbytes de espaço de memória de dados  Kbytes de espaço de memória de programa “on chip”

6

3.4.2 PINAGEM

O aspecto externo do 8051 é o da figura 0.4. Os pinos com nomes da forma P0.0, P0.1, P0.2 e P0.3, correspondem às quatro portas de E/S (P0 a P3). Note a dupla utilidade das portas P0 e P2, que ficam comprometidas com o uso de memória externa, assim como os pinos P3.6 e P3.7. O sinal ALE (Address Latch Enable) permite fazer descriptografia dos dados e endereços na porta P0, conforme mostra o esquema da figura 1.4. Através do sinal PSEN (program storage enable), o controlador informa o mundo externo se a operação em andamento é uma leitura de instrução (acesso à memória de programa) ou um acesso à memória de dados. Este sinal permite que o processador tenha duas regiões distintas de memória externa, uma para armazenar código e outra para dados. Ambas ocupam os endereços de 0 a FFFFH (64 kB), num total de 128 kB. P3.0 - RxD/data - recepção serial assíncrona ou E/S de dados síncronos;

7

O pino EA é um sinal de entrada, através do qual o usuário escolhe se será utilizada a memória ROM interna ou se todo o programa será armazenado externamente. Os pinos da porta P3 também são utilizados para realizar certas funções especiais:  P3.1 - TxD/clock - transmissão porta serial assíncrona ou saída de clock p/ dados síncronos;  P3.2 - INT0 - entrada da interrupção 0 ou bit de controle para otemporizador/contador 0;  P3.3 - INT1 - entrada da interrupção 1 ou bit de controle para temporizador/contador ;  P3.4 - T0 - entrada de clock externo para o temporizador/contador 0;  P3.5 - T1 - entrada de clock externo para o temporizador/contador 1;  P3.6 - WR - sinal de escrita na memória de dados externa;  P3.7 - RD - sinal de leitura na memória de dados externa. A alimentação (5V) é feita pelo pino 40 e o GND é o pino 20; o cristal para o oscilador interno é conectado aos pinos 18 e 19. Finalmente, o pino 9, RST/VPD, é a entrada de reset;

8

4

DIAGRAMA

Podemos visualizar no diagrama a lógica utilizada para o funcionamento do projeto.

9

5

LINGUAGEM DE PROGRAMAÇÃO

5.1

ASSEMBLY

Assembly ou linguagem de montagem é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica usa. A linguagem de máquina, que é um mero padrão de bits, torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemônicos. É utilizada em geral para programação em baixo nível de máquina (mais próxima do nível do hardware), sendo que cada família de processadores (Ex. X86, ARM, SPARC, MIPS) possui sua própria linguagem assembly, já que cada processador possui seu próprio conjunto de instruções embutidas. Muitos dispositivos programáveis (como microcontroladores) ainda são programados diretamente em assembly apesar de que a partir da década de 1970 muitos dispositivos passaram a ser programados em C.

5.2

CÓDIGO FONTE

Abaixo podemos visualizar o código criado para nosso projeto: SJMP INICIANDO ;--------------------------------------------------------------------------------------; FUNCAO INTERRUPCAO EXTERNA EMERGENCIA ;--------------------------------------------------------------------------------------ORG 013H ; posição da memória da interrupção de memória CLR P1.1 ;desliga o rele do motor CLR P1.2 ;desliga o led MOV P2, #11111001b ; exibe o valor E no display EMERGENCIA: JNB P3.3, EMERGENCIA ; while=1 loop eterno JB P1.0, NAOLIGA ; if(p1.0)=0 não liga o rele e o led SETB P1.1 ; liga o rele do motor 10

SETB P1.2 ; liga o led NAOLIGA: ; função que pula o acionamento após a interrupção ter sido chamada MOV P2, #00000000b ; inicia com display apagado RETI ; função retorna especial da interrupção.. volta de onde foi chamada INICIANDO: ; função criada para pular a parte da interrupção ORG 048H ;inicia o programa na posição de memória 48 CLR P1.1 ;desliga portas p1.1, por padrão o 8051 liga c/ todas em alto CLR P1.2 ;desliga portas p1.2 MOV P2, #00111111b ; inicia o display com o numero 0 SETB EA ; habilita todas as interrupções SETB EX1 ; habilita interrupção externa 1, que possui inicio na posição de memória 013h MAIN: ; cria a função principal que vai ficar em loop infinito JB P1.0, DESLIGATUDO ; if(p1.0)=0 , chama a função DESLIGATUDO SWITCH: JB P1.0, SWITCH ; while(p1.0)=0 loop infinito SETB P1.1 ; liga o rele do motor SETB P1.2 ; liga o led SJMP CHAVEFIMDECURSO ; chama função CHAVEFIMDECURSO ;após rodar todas as funções retorna aqui, e faz o main novamente com a função abaixo SJMP MAIN ;loop infinito do main ;--------------------------------------------------------------------------------------; FUNCAO CHAVEFIMDECURSO - DEPOIS DE CHAMADA 5 VEZES CHAMA DELAY ;--------------------------------------------------------------------------------------CHAVEFIMDECURSO: ; esperando caixa numero 1 CONTACAIXA: JNB P3.4, CONTACAIXA ; while(p3.4)=0 loop infinito VOLTACHAVE: JB P3.4, VOLTACHAVE ; while(p3.4)=1 loop infinito MOV P2, #00000110b ; exibe no display o valor 1 ; esperando caixa numero 2 CONTACAIXA1: JNB P3.4, CONTACAIXA1 VOLTACHAVE1: JB P3.4, VOLTACHAVE1 MOV P2, #01011011b ; valor 2 ; esperando caixa numero 3 CONTACAIXA2: JNB P3.4, CONTACAIXA2 VOLTACHAVE2: JB P3.4, VOLTACHAVE2 MOV P2, #01001111b ; valor 3 11

; esperando caixa numero 4 CONTACAIXA3: JNB P3.4, CONTACAIXA3 VOLTACHAVE3: JB P3.4, VOLTACHAVE3 MOV P2, #01100110b ; valor 4 ; esperando caixa numero 5 CONTACAIXA4: JNB P3.4, CONTACAIXA4 VOLTACHAVE4: JB P3.4, VOLTACHAVE4 MOV P2, #01101101b ; valor 5 CLR P1.1 ; desliga a esteira JB P1.0, DESLIGATUDO ; if(p1.0)=0 , chama a função DESLIGATUDO SJMP DELAY ; chama o delay de 5 segundos RET ; Retorna para onde foi chamada

;--------------------------------------------------------------------------------------; FUNCAO DELAY - 5 SEGUNDOS ;--------------------------------------------------------------------------------------DELAY: MOV R0, #04Eh ; repete o tempo 78 vezes = 5000041 ciclos SJMP TEMPO ; chama a função tempo RET

;--------------------------------------------------------------------------------------; FUNCAO TEMPO - GERA DELAYS DE 64 ms 105us CADA VEZ QUE RODAR O R0 ;--------------------------------------------------------------------------------------TEMPO: ; Função que realmente da o delay MOV TMOD,#00000001b ; Liga o timer 0 no modo 1 (16 bits) MOV TH0,#005h ; joga p o mais significativo o valor 05h = 5d MOV TL0,#0A5h ; joga p o menos significativo o valor A5h = 165d SETB TR0 ; inicia o contador TR0 PARA: JNB TF0, PARA ; quando o contador chegar aos 64105 ciclos gera overflow e sai do loop CLR TR0 ; Para o timer 0 CLR TF0 ; limpa o TF0 DJNZ R0, TEMPO ; while(R0!=0) repete a função tempo e joga R0-1 RET ; Retorna para onde foi chamada 12

;--------------------------------------------------------------------------------------; FUNCAO DESLIGA PORTAS ;--------------------------------------------------------------------------------------DESLIGATUDO: ; Função que desliga as portas do rele e led CLR P1.1 ; desliga o rele do motor CLR P1.2 ; desliga o led RET

6

CIRCUITO ELÉTRICO

Software utilizado: ISIS Proteus 8

13

7

BIBLIOGRAFIA



Chave fim de curso. Disponível em:

http://www.newadu.com.br/#!fim-de-curso/c1wrc. Acessado em 29 de maio de 2015 

Esteira transportadora. Disponível em:

http://pt.wikipedia.org/wiki/Esteira_transportadora. Acessado em 29 de maio de 2015 

Como funciona o motor de corrente contínua. Disponível em:

http://www.newtoncbraga.com.br/index.php/como-funciona/3414-art476a. Acessado em 29 de maio de 2015 

Apostila HARI Microcontrolador 8051. Disponível em:

http://user.das.ufsc.br/~werner/eel7030/8051/Apostila8051Hari.pdf Acessado em 29 de maio de 2015 

Introdução às Linguagens de Programação/Assembly. Disponível em:

http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_%C3%A0s_Linguagens_de_Pr ograma%C3%A7%C3%A3o/Assembly Acessado em 02 de junho de 2015

14

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.