SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 1
Uma Introdução às práticas mais
comuns com microControlador
IFCE
CARTILHA DE PROGRAMAS PARA
MICROCONTROLADOR 80C51
Pedro R. C. Vasconcelos
2012
Cartilha de Programas para Microcontrolador 80C51
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 2
Pedro Raphael Carneiro Vasconcelos
pedrorcv@gmail.com
Cartilha de Programas para
Microcontrolador 80C51
Ano: 2012
Edição: 1ª
Cartilha de Programas para Microcontrolador 80C51
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 3
Oferecimento
Ofereço essa cartilha a todos os amigos e amigas que junto comigo trilharam os
caminhos da programação em busca do desenvolvimento e melhoria dos nossos
conhecimentos e a todos os amigos do curso de mecatrônica Industrial do Instituto Federal de
Educação Ciência e Tecnologia do Ceará.
Revisão:
Cartilha de Programas para Microcontrolador 80C51
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 4
Sumário
Introdução ..........................................................................................................................................................5
Piscar LED.........................................................................................................................................................6
Contador 0 a 9 usando Display de 7 seguimentos .............................................................................................6
Controlando LED por interrupção .....................................................................................................................6
Multiplexação – 2 Displays 7 seguimentos .......................................................................................................7
Extra – Jogo de Auditorio..................................................................................................................................7
Teclado – Barramento de LED ..........................................................................................................................8
Motor de Passo...................................................................................................................................................9
Display - LCD..................................................................................................................................................10
PWM – Motor CC............................................................................................................................................11
Cartilha de Programas para Microcontrolador 80C51
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 5
Introdução
Esta cartilha compreende programas simples que são considerados básicos para o
aprendizado da programação de microcontroladores da família 8051 utilizando a linguagem
ASSEMBLY. Juntamente com os códigos será possível visualizar a imagem dos programas
simulados no software de simulação de circuitos eletrônicos, PROTEUS. A linguagem
assembly faz uso do programa assembler, que quer dizer montador. Sua maior vantagem
está no tempo de execução das linhas de instruções, além de serem menores em tamanho.
A programação em microcontroladores é uma prática muito comum na automação de
máquinas e equipamentos simplificando processos e operações. Podem ser usados em
máquinas diversas como em terminais de bancos, luzes de natal, impressoras, relógios,
encoders, etc.
Os microcontroladores da família 8051 possuem versões que contam com ROM e
EPROM interna ou sem ROM interna. Suas principais características são: operações com
controle de bits, CPU otimizada para aplicações de controle de 8 bits e controle minucioso
de tempo. Características como essas fizeram desses microcontroladores serem os mais
utilizados durante muitos anos. Atualmente outros equipamentos dominam o mercado,
porém não fizeram com que a família 8051 fosse esquecida.
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 6
Piscar LED
LED EQU P1.0
INICIO: CLR LED
ACALL TEMPO
SETB LED
ACALL TEMPO
AJMP INICIO
;***********************
TEMPO: MOV R0,#255
VOLTA: MOV R1,#255
AQUI: DJNZ R1,AQUI
DJNZ R0,VOLTA
RET
;**********************
END
Contador 0 a 9 usando Display de 7
seguimentos
INI: MOV DPTR, #TABELA
INICIO: MOV A, #00H
MOVC A,@A + DPTR
JZ INI
MOV P0,A
ACALL TEMPO
ACALL TEMPO
ACALL TEMPO
ACALL TEMPO
ACALL TEMPO
INC DPTR
AJMP INICIO
TEMPO: MOV R2,#255
VOLTA: MOV R3,#255
AQUI: DJNZ R3,AQUI
DJNZ R2,VOLTA
RET
;***************************************
TABELA: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H,
DB 92H, 83H, 0F8H, 080H, 98H,00H
;***************************************
END
Controlando LED por interrupção
ORG 00H ; endereço do reset
AJMP INICIO
ORG 03H ;endereço da externa 0
AJMP LED
INICIO: SETB P1.0
MOV IE, #81H
MOV IP, #01H
SETB IT0
AQUI: AJMP AQUI
LED: CPL P1.0
RETI
Cartilha de Programas para Microcontrolador 80C51
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 7
END
Multiplexação – 2 Displays 7
seguimentos
ORG 00H
AJMP INICIO
ORG 0BH
AJMP TIM_0
F_DISP EQU 00H
INICIO: MOV IP, #2FH
MOV IE, #82H
MOV TMOD,#01H
MOV TH0,#HIGH (65535-10000)
MOV TL0,#LOW (65535-10000)
SETB TR0
MOV R0,#0
MOV R1,#0
MOV R2,#100
MOV DPTR,#TABELA
AQUI: AJMP AQUI
TIM_0: DJNZ R2, MUX
MOV R2, #100
INC R0
CJNE R0, #10, FIM
MOV R0, #0
INC R1
CJNE R1, #06, FIM
MOV R1, #0
MUX: CPL F_DISP
JB F_DISP, D_DEZ
D_UNI: MOV A, R0
MOVC A, @A + DPTR
MOV P0, A
CLR P2.0
SETB P2.1
ACALL TEMPO
AJMP FIM
D_DEZ: MOV A, R1
MOVC A, @A+DPTR
MOV P0, A
SETB P2.0
CLR P2.1
ACALL TEMPO
FIM: MOV TH0, #0B8H
MOV TL0, #0F0H
RETI
TEMPO: MOV R7,#100
AQUI2: DJNZ R7,AQUI2
RET
TABELA: DB 0C0H, 0F9H, 0A4H, 0B0H,
99H, 92H, 83H, 0F8H, 080H, 098H,00H
END
Extra – Jogo de Auditorio
LED3 EQU P1.0
LED2 EQU P1.1
LED1 EQU P1.2
CH0 EQU P2.0
Cartilha de Programas para Microcontrolador 80C51
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 8
CH1 EQU P2.1
CH2 EQU P2.2
INICIO: SETB LED1
SETB LED2
SETB LED3
LE_CH0: JB CH0, LE_CH1
CLR LED1
ACALL TEMPO
SETB LED1
LE_CH1: JB CH1, LE_CH2
CLR LED2
ACALL TEMPO
SETB LED2
LE_CH2: JB CH2, LE_CH0
CLR LED3
ACALL TEMPO
SETB LED3
AJMP LE_CH0
TEMPO: MOV R0, #32
VOLTA: MOV R1, #255
PROX:MOV R2, #255
AQUI: DJNZ R2, AQUI
DJNZ R1, PROX
DJNZ R0, VOLTA
RET
END
Teclado – Barramento de LED
ORG 00H
AJMP INICIO
ORG 03H
AJMP EXT_0
ORG 0BH
AJMP TIM_0
;****************************************
F_TECEQU 00H
;****************************************
INICIO: MOV SP,#2FH
MOV IP,#01H
MOV IE,#83H
MOV TMOD,#01H
MOV TH0,#HIGH (65535-10000)
MOV TL0,#LOW (65535-10000)
SETB TR0
MOV R2,#0
;****************************************
AQUI: JNB F_TEC,AQUI
CLR F_TEC
MOV DPTR,#TAB_1
MOV A,R3
MOVC A,@A+DPTR ;ler tabela
display
MOV P1,A
AJMP AQUI
;****************************************
TIM_0: INC R2
CJNE R2,#1,T_2
CLR P2.0
SETB P2.1
SETB P2.2
AJMP FIM_T0
T_2: CJNE R2,#2,T_3
SETB P2.0
Nesse programa o número digitado no teclado
ascende a quantidade de LEDs correspondente
no barramento
Cartilha de Programas para Microcontrolador 80C51
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 9
CLR P2.1
SETB P2.2
AJMP FIM_T0
T_3: CJNE R2,#3,FIM_T0
SETB P2.0
SETB P2.1
CLR P2.2
MOV R2,#0
FIM_T0: MOV TH0,#HIGH (65535-10000)
MOV TL0,#LOW (65535-10000)
RETI
EXT_0: MOV A, P2
SETB P0.0
SETB P0.1
CJNE A, #0BBH, T2
MOV R3, #1
SETB F_TEC
RETI
T2: CJNE A, #0BDH, T3
MOV R3, #2
SETB F_TEC
RETI
T3: CJNE A, #0BEH, T4
MOV R3, #3
SETB F_TEC
RETI
T4: CJNE A, #0DBH, T5
MOV R3, #4
SETB F_TEC
RETI
T5: CJNE A, #0DDH, T6
MOV R3, #5
SETB F_TEC
RETI
T6: CJNE A, #0DEH, T7
MOV R3, #6
SETB F_TEC
RETI
T7: CJNE A, #0EBH, T8
MOV R3, #7
SETB F_TEC
RETI
T8: CJNE A, #0EDH, T9
MOV R3, #8
CLR P0.0
SETB F_TEC
RETI
T9: CJNE A, #0EEH, T00
MOV R3, #9
CLR P0.0
CLR P0.1
;MOV P0, 11111100B
SETB F_TEC
RETI
T00: CJNE A, #0F5H,FIM_E0
MOV R3, #0
SETB P0.0
SETB P0.1
SETB F_TEC
RETI
;T89: CJNE R3,#8,CP1
; MOV P0, 11111110B
;CP1: CJNE R3,#9,FIM_E0
; MOV P0, 11111100B
FIM_E0: RETI
TAB_1: DB 0FFH, 0FEH, 0FCH, 0F8H,
0F0H, 0E0H, 0C0H, 080H, 080H, 080H
END
Motor de Passo
Cartilha de Programas para Microcontrolador 80C51
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 10
ORG 00H
AJMP INICIO
ORG 03H
AJMP INIMOT
INICIO: SETB P1.0
CLR P1.1
MOV IE, #81H
MOV IP, #01H
SETB IT0
AQUI1: AJMP AQUI
VELOC1: SETB P0.0
ACALL TEMPO
ACALL TEMPO
CLR P0.0
SETB P0.1
ACALL TEMPO
ACALL TEMPO
CLR P0.1
SETB P0.2
ACALL TEMPO
ACALL TEMPO
CLR P0.2
SETB P0.3
ACALL TEMPO
ACALL TEMPO
CLR P0.3
RETI
;*****************
INIMOT: CLR P1.0
SETB P1.1
SETB P0.0
ACALL TEMPO
CLR P0.0
SETB P0.1
ACALL TEMPO
CLR P0.1
SETB P0.2
ACALL TEMPO
CLR P0.2
SETB P0.3
ACALL TEMPO
CLR P0.3
AJMP INIMOT
RETI
TEMPO: MOV R1, #255
VOLTA: MOV R2, #255
AQUI: DJNZ R2, AQUI
DJNZ R1, VOLTA
RET
END
Display - LCD
ORG 00H
AJMP INICIO
RS EQU P3.7
E EQU P3.6
INICIO: ACALL CONF
MOV A, #01B
ACALL INST
MOV DPTR,#TAB1
ACALL MSG
ACALL T_1S
MOV A,#0C0H
ACALL INST
MOV DPTR,#TAB2
ACALL MSG
ACALL T_1S
ACALL T_1S
Cartilha de Programas para Microcontrolador 80C51
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 11
MOV A, #01B
ACALL INST
MOV DPTR, #TAB3
ACALL MSG
MOV A,#0C0H
ACALL INST
MOV DPTR, #TAB4
ACALL MSG
ACALL T_1S
MOV A, #01B
ACALL INST
AQUI: ACALL T_1S
AJMP INICIO
;------------MENSSAGENS-----------------
MSG: MOV R4,#00H
VOLTA1: MOV A,R4
MOVC A,@A+DPTR
JZ FIM1
ACALL DADO
INC R4
AJMP VOLTA1
FIM1: RET
;----------------------------------------
;-------------INSTRUÇÃO------------------
INST: MOV P1,A
CLR RS
SETB E
ACALL TEMPO
CLR E
RET
;--------------DADO---------------------
DADO: MOV P1,A
SETB RS
SETB E
ACALL TEMPOT
CLR E
RET
;----------CONFIG LCD-------------------
CONF:MOV A,#38H
ACALL INST
ACALL INST
ACALL INST
MOV A,#06H
ACALL INST
MOV A,#0FH
ACALL INST
MOV A,#01H
ACALL INST
RET
;------------TEMPO1----------------------
TEMPO: MOV R0,#255
DJNZ R0,$
RET
;----------TEMPO2------------------------
TEMPOT: MOV R1, #250
VOLTA: MOV R2, #200
DJNZ R2, $
DJNZ R1, VOLTA
RET
T_1S: MOV R3, #10
MAIS: ACALL TEMPOT
DJNZ R3, MAIS
RET
;-----------TABELA-----------------------
TAB1: DB ' Cartilha',0
TAB2: DB ' para ',0
TAB3: DB ' mControlador', 0
TAB4: DB ' 80c51', 0
END
PWM – Motor CC
ORG 00H
Cartilha de Programas para Microcontrolador 80C51
Cartilha 80C51 – Pedro R. C. Vasconcelos Página 12
AJMP INICIO
ORG 03H
AJMP EXT_0 ;tempo alto do PWM
ORG 13H
AJMP EXT_1 ;tempo baixo do PWM
;****************************************
SAIDA EQU P2.0
DISP EQU P1
BOTAO EQU P3.1
;****************************************
INICIO: MOV SP, #2FH
MOV IE, #85H
SETB IT0
SETB IT1
MOV R0, #0
MOV A,R0
MOV R1,A
MOV R2, #15
MOV A,R2
MOV R3,A
DENOVO:
ACALL ENVIA_ALTO
ACALL ENVIA_BAIXO
JNB BOTAO, VAI_LED
AJMP DENOVO
;****************************************
TEMPO: MOV R5, #25
VOLTA: MOV R4, #10
DJNZ R4, $
DJNZ R5, VOLTA
RET
;****************************************
TEMPO2: MOV R5, #255
VOLTA4: MOV R4, #255
DJNZ R4, $
DJNZ R5, VOLTA4
RET
;****************************************
ENVIA_ALTO:
MOV A,R0
MOV R1,A
CJNE R1,#0,AQUI
AJMP RETORNA1
AQUI: SETB SAIDA
ALI: ACALL TEMPO
DJNZ R1,ALI
RETORNA1: RET
;****************************************
ENVIA_BAIXO:
MOV A,R2
MOV R3,A
CJNE R3,#0,AQUI2
AJMP RETORNA3
AQUI2: CLR SAIDA
ALI2: ACALL TEMPO
DJNZ R3,ALI2
RETORNA3: RET
;****************************************
EXT_0:
CJNE R2,#0,INCR1
AJMP RET_EXT0
INCR1: INC R0
DEC R2
RET_EXT0: RETI
;****************************************
EXT_1:
CJNE R0,#0,INCR2
AJMP RET_EXT1
INCR2: INC R2
DEC R0
RET_EXT1: RETI
;****************************************
VAI_LED: MOV DISP, #0FEH
ACALL TEMPO2
MOV R6,#7H
RETORNA: MOV A,DISP
RL A
MOV DISP,A
ACALL TEMPO2
DJNZ R6,RETORNA
MOV R6,#7H
RETORNA2: MOV A,DISP;
RR A
MOV DISP,A
ACALL TEMPO2
DJNZ R6,RETORNA2
MOV DISP,#0FFH
AJMP DENOVO
END

Mais conteúdo relacionado

Destaque

presentacion del correo electronico
presentacion del correo electronicopresentacion del correo electronico
presentacion del correo electronicozambranogusqui
 
Sarahi amorocho
Sarahi amorochoSarahi amorocho
Sarahi amorochoAmor827
 
Cts individual proposal
Cts individual proposalCts individual proposal
Cts individual proposalShermaineojm
 
APRESENTAÇÃO OFICIAL DO GRUPO UNIFORTE
APRESENTAÇÃO OFICIAL DO GRUPO UNIFORTEAPRESENTAÇÃO OFICIAL DO GRUPO UNIFORTE
APRESENTAÇÃO OFICIAL DO GRUPO UNIFORTEDouglas Santos
 
EL AGUA VALE MÁS QUE EL ORO.
EL AGUA VALE MÁS QUE EL ORO.EL AGUA VALE MÁS QUE EL ORO.
EL AGUA VALE MÁS QUE EL ORO.Barbyduja
 
Manual sica fweb_fornecedor
Manual sica fweb_fornecedorManual sica fweb_fornecedor
Manual sica fweb_fornecedorJosé Ferreira
 
Propuesta v.01
Propuesta v.01Propuesta v.01
Propuesta v.01aolivanu
 
Guião transmontuna - onde a utad ganha vida!
Guião   transmontuna - onde a utad ganha vida!Guião   transmontuna - onde a utad ganha vida!
Guião transmontuna - onde a utad ganha vida!rutedbsantos
 
Midia kit - Conteúdo Masculino
Midia kit - Conteúdo MasculinoMidia kit - Conteúdo Masculino
Midia kit - Conteúdo MasculinoKaio Joan
 
La información en una campaña exitosa
La información en una campaña exitosaLa información en una campaña exitosa
La información en una campaña exitosaICP iberoamérica
 
Jacob A Schroeder Visual Resume' 08.18.14
Jacob A Schroeder Visual Resume' 08.18.14Jacob A Schroeder Visual Resume' 08.18.14
Jacob A Schroeder Visual Resume' 08.18.14Jacob Schroeder
 
Trabajo de informatica
 Trabajo de informatica Trabajo de informatica
Trabajo de informaticateamokatty
 
Análise Harmónica e Complexa
Análise Harmónica e ComplexaAnálise Harmónica e Complexa
Análise Harmónica e Complexawilkerfilipel
 
0.0 eim-porfirias class....diag.lab (1)
0.0  eim-porfirias class....diag.lab (1)0.0  eim-porfirias class....diag.lab (1)
0.0 eim-porfirias class....diag.lab (1)Thiago Pereira
 
Herramienta tecnologica
Herramienta tecnologicaHerramienta tecnologica
Herramienta tecnologicamildrella12
 
Alfabetización Informática.
Alfabetización Informática.Alfabetización Informática.
Alfabetización Informática.PitiTomi
 

Destaque (20)

presentacion del correo electronico
presentacion del correo electronicopresentacion del correo electronico
presentacion del correo electronico
 
Sarahi amorocho
Sarahi amorochoSarahi amorocho
Sarahi amorocho
 
Cts individual proposal
Cts individual proposalCts individual proposal
Cts individual proposal
 
APRESENTAÇÃO OFICIAL DO GRUPO UNIFORTE
APRESENTAÇÃO OFICIAL DO GRUPO UNIFORTEAPRESENTAÇÃO OFICIAL DO GRUPO UNIFORTE
APRESENTAÇÃO OFICIAL DO GRUPO UNIFORTE
 
EL AGUA VALE MÁS QUE EL ORO.
EL AGUA VALE MÁS QUE EL ORO.EL AGUA VALE MÁS QUE EL ORO.
EL AGUA VALE MÁS QUE EL ORO.
 
Manual sica fweb_fornecedor
Manual sica fweb_fornecedorManual sica fweb_fornecedor
Manual sica fweb_fornecedor
 
Propuesta v.01
Propuesta v.01Propuesta v.01
Propuesta v.01
 
Guião transmontuna - onde a utad ganha vida!
Guião   transmontuna - onde a utad ganha vida!Guião   transmontuna - onde a utad ganha vida!
Guião transmontuna - onde a utad ganha vida!
 
Midia kit - Conteúdo Masculino
Midia kit - Conteúdo MasculinoMidia kit - Conteúdo Masculino
Midia kit - Conteúdo Masculino
 
La información en una campaña exitosa
La información en una campaña exitosaLa información en una campaña exitosa
La información en una campaña exitosa
 
Jacob A Schroeder Visual Resume' 08.18.14
Jacob A Schroeder Visual Resume' 08.18.14Jacob A Schroeder Visual Resume' 08.18.14
Jacob A Schroeder Visual Resume' 08.18.14
 
Trabajo de informatica
 Trabajo de informatica Trabajo de informatica
Trabajo de informatica
 
Análise Harmónica e Complexa
Análise Harmónica e ComplexaAnálise Harmónica e Complexa
Análise Harmónica e Complexa
 
Tipologia textual.unidad 2
Tipologia textual.unidad 2Tipologia textual.unidad 2
Tipologia textual.unidad 2
 
Vsak prevoznik ima svoje zahteve
Vsak prevoznik ima svoje zahteveVsak prevoznik ima svoje zahteve
Vsak prevoznik ima svoje zahteve
 
Construção vilmar 2
Construção vilmar 2Construção vilmar 2
Construção vilmar 2
 
0.0 eim-porfirias class....diag.lab (1)
0.0  eim-porfirias class....diag.lab (1)0.0  eim-porfirias class....diag.lab (1)
0.0 eim-porfirias class....diag.lab (1)
 
Herramienta tecnologica
Herramienta tecnologicaHerramienta tecnologica
Herramienta tecnologica
 
Alfabetización Informática.
Alfabetización Informática.Alfabetización Informática.
Alfabetización Informática.
 
SOCIOLOGIA
SOCIOLOGIASOCIOLOGIA
SOCIOLOGIA
 

Semelhante a Cartilha Micro-Controlador 80c51 - Assembly

Automação de Processos Industriais
Automação de Processos IndustriaisAutomação de Processos Industriais
Automação de Processos IndustriaisRicardo Akerman
 
Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051 Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051 SANTIAGO PABLO ALBERTO
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladoresDanilo Morais Pagano
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Cláudio Alves
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 
Os produtos para o autoconsumo FV en portugal
Os produtos para o autoconsumo FV en portugalOs produtos para o autoconsumo FV en portugal
Os produtos para o autoconsumo FV en portugalKrannich Solar Portugal
 
Apostila de curso sobre reparo de centrais de injeção de combustível de autom...
Apostila de curso sobre reparo de centrais de injeção de combustível de autom...Apostila de curso sobre reparo de centrais de injeção de combustível de autom...
Apostila de curso sobre reparo de centrais de injeção de combustível de autom...GilvanFranqueta1
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
Material Auxiliar Para Curso BáSico Msp430 55 A 98
Material Auxiliar Para Curso BáSico Msp430   55 A 98Material Auxiliar Para Curso BáSico Msp430   55 A 98
Material Auxiliar Para Curso BáSico Msp430 55 A 98Texas Instruments
 

Semelhante a Cartilha Micro-Controlador 80c51 - Assembly (20)

Automação de Processos Industriais
Automação de Processos IndustriaisAutomação de Processos Industriais
Automação de Processos Industriais
 
Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051 Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051
 
Boletim contato dx nº 91
Boletim contato dx  nº 91Boletim contato dx  nº 91
Boletim contato dx nº 91
 
U3 exercicios resolvidos
U3 exercicios resolvidosU3 exercicios resolvidos
U3 exercicios resolvidos
 
Aula1 30-07-120922184742-phpapp02
Aula1 30-07-120922184742-phpapp02Aula1 30-07-120922184742-phpapp02
Aula1 30-07-120922184742-phpapp02
 
newholland.pdf
newholland.pdfnewholland.pdf
newholland.pdf
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladores
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
Manual logo ago_13
Manual logo ago_13 Manual logo ago_13
Manual logo ago_13
 
Clp ab avancado
Clp ab avancadoClp ab avancado
Clp ab avancado
 
Os produtos para o autoconsumo FV en portugal
Os produtos para o autoconsumo FV en portugalOs produtos para o autoconsumo FV en portugal
Os produtos para o autoconsumo FV en portugal
 
Apostila1 clp logo
Apostila1 clp logoApostila1 clp logo
Apostila1 clp logo
 
8085 2
8085 28085 2
8085 2
 
Pro2 02p
Pro2 02pPro2 02p
Pro2 02p
 
Apostila de curso sobre reparo de centrais de injeção de combustível de autom...
Apostila de curso sobre reparo de centrais de injeção de combustível de autom...Apostila de curso sobre reparo de centrais de injeção de combustível de autom...
Apostila de curso sobre reparo de centrais de injeção de combustível de autom...
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
Material Auxiliar Para Curso BáSico Msp430 55 A 98
Material Auxiliar Para Curso BáSico Msp430   55 A 98Material Auxiliar Para Curso BáSico Msp430   55 A 98
Material Auxiliar Para Curso BáSico Msp430 55 A 98
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
DSPic
DSPicDSPic
DSPic
 

Cartilha Micro-Controlador 80c51 - Assembly

  • 1. Cartilha 80C51 – Pedro R. C. Vasconcelos Página 1 Uma Introdução às práticas mais comuns com microControlador IFCE CARTILHA DE PROGRAMAS PARA MICROCONTROLADOR 80C51 Pedro R. C. Vasconcelos 2012
  • 2. Cartilha de Programas para Microcontrolador 80C51 Cartilha 80C51 – Pedro R. C. Vasconcelos Página 2 Pedro Raphael Carneiro Vasconcelos pedrorcv@gmail.com Cartilha de Programas para Microcontrolador 80C51 Ano: 2012 Edição: 1ª
  • 3. Cartilha de Programas para Microcontrolador 80C51 Cartilha 80C51 – Pedro R. C. Vasconcelos Página 3 Oferecimento Ofereço essa cartilha a todos os amigos e amigas que junto comigo trilharam os caminhos da programação em busca do desenvolvimento e melhoria dos nossos conhecimentos e a todos os amigos do curso de mecatrônica Industrial do Instituto Federal de Educação Ciência e Tecnologia do Ceará. Revisão:
  • 4. Cartilha de Programas para Microcontrolador 80C51 Cartilha 80C51 – Pedro R. C. Vasconcelos Página 4 Sumário Introdução ..........................................................................................................................................................5 Piscar LED.........................................................................................................................................................6 Contador 0 a 9 usando Display de 7 seguimentos .............................................................................................6 Controlando LED por interrupção .....................................................................................................................6 Multiplexação – 2 Displays 7 seguimentos .......................................................................................................7 Extra – Jogo de Auditorio..................................................................................................................................7 Teclado – Barramento de LED ..........................................................................................................................8 Motor de Passo...................................................................................................................................................9 Display - LCD..................................................................................................................................................10 PWM – Motor CC............................................................................................................................................11
  • 5. Cartilha de Programas para Microcontrolador 80C51 Cartilha 80C51 – Pedro R. C. Vasconcelos Página 5 Introdução Esta cartilha compreende programas simples que são considerados básicos para o aprendizado da programação de microcontroladores da família 8051 utilizando a linguagem ASSEMBLY. Juntamente com os códigos será possível visualizar a imagem dos programas simulados no software de simulação de circuitos eletrônicos, PROTEUS. A linguagem assembly faz uso do programa assembler, que quer dizer montador. Sua maior vantagem está no tempo de execução das linhas de instruções, além de serem menores em tamanho. A programação em microcontroladores é uma prática muito comum na automação de máquinas e equipamentos simplificando processos e operações. Podem ser usados em máquinas diversas como em terminais de bancos, luzes de natal, impressoras, relógios, encoders, etc. Os microcontroladores da família 8051 possuem versões que contam com ROM e EPROM interna ou sem ROM interna. Suas principais características são: operações com controle de bits, CPU otimizada para aplicações de controle de 8 bits e controle minucioso de tempo. Características como essas fizeram desses microcontroladores serem os mais utilizados durante muitos anos. Atualmente outros equipamentos dominam o mercado, porém não fizeram com que a família 8051 fosse esquecida.
  • 6. Cartilha 80C51 – Pedro R. C. Vasconcelos Página 6 Piscar LED LED EQU P1.0 INICIO: CLR LED ACALL TEMPO SETB LED ACALL TEMPO AJMP INICIO ;*********************** TEMPO: MOV R0,#255 VOLTA: MOV R1,#255 AQUI: DJNZ R1,AQUI DJNZ R0,VOLTA RET ;********************** END Contador 0 a 9 usando Display de 7 seguimentos INI: MOV DPTR, #TABELA INICIO: MOV A, #00H MOVC A,@A + DPTR JZ INI MOV P0,A ACALL TEMPO ACALL TEMPO ACALL TEMPO ACALL TEMPO ACALL TEMPO INC DPTR AJMP INICIO TEMPO: MOV R2,#255 VOLTA: MOV R3,#255 AQUI: DJNZ R3,AQUI DJNZ R2,VOLTA RET ;*************************************** TABELA: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, DB 92H, 83H, 0F8H, 080H, 98H,00H ;*************************************** END Controlando LED por interrupção ORG 00H ; endereço do reset AJMP INICIO ORG 03H ;endereço da externa 0 AJMP LED INICIO: SETB P1.0 MOV IE, #81H MOV IP, #01H SETB IT0 AQUI: AJMP AQUI LED: CPL P1.0 RETI
  • 7. Cartilha de Programas para Microcontrolador 80C51 Cartilha 80C51 – Pedro R. C. Vasconcelos Página 7 END Multiplexação – 2 Displays 7 seguimentos ORG 00H AJMP INICIO ORG 0BH AJMP TIM_0 F_DISP EQU 00H INICIO: MOV IP, #2FH MOV IE, #82H MOV TMOD,#01H MOV TH0,#HIGH (65535-10000) MOV TL0,#LOW (65535-10000) SETB TR0 MOV R0,#0 MOV R1,#0 MOV R2,#100 MOV DPTR,#TABELA AQUI: AJMP AQUI TIM_0: DJNZ R2, MUX MOV R2, #100 INC R0 CJNE R0, #10, FIM MOV R0, #0 INC R1 CJNE R1, #06, FIM MOV R1, #0 MUX: CPL F_DISP JB F_DISP, D_DEZ D_UNI: MOV A, R0 MOVC A, @A + DPTR MOV P0, A CLR P2.0 SETB P2.1 ACALL TEMPO AJMP FIM D_DEZ: MOV A, R1 MOVC A, @A+DPTR MOV P0, A SETB P2.0 CLR P2.1 ACALL TEMPO FIM: MOV TH0, #0B8H MOV TL0, #0F0H RETI TEMPO: MOV R7,#100 AQUI2: DJNZ R7,AQUI2 RET TABELA: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 83H, 0F8H, 080H, 098H,00H END Extra – Jogo de Auditorio LED3 EQU P1.0 LED2 EQU P1.1 LED1 EQU P1.2 CH0 EQU P2.0
  • 8. Cartilha de Programas para Microcontrolador 80C51 Cartilha 80C51 – Pedro R. C. Vasconcelos Página 8 CH1 EQU P2.1 CH2 EQU P2.2 INICIO: SETB LED1 SETB LED2 SETB LED3 LE_CH0: JB CH0, LE_CH1 CLR LED1 ACALL TEMPO SETB LED1 LE_CH1: JB CH1, LE_CH2 CLR LED2 ACALL TEMPO SETB LED2 LE_CH2: JB CH2, LE_CH0 CLR LED3 ACALL TEMPO SETB LED3 AJMP LE_CH0 TEMPO: MOV R0, #32 VOLTA: MOV R1, #255 PROX:MOV R2, #255 AQUI: DJNZ R2, AQUI DJNZ R1, PROX DJNZ R0, VOLTA RET END Teclado – Barramento de LED ORG 00H AJMP INICIO ORG 03H AJMP EXT_0 ORG 0BH AJMP TIM_0 ;**************************************** F_TECEQU 00H ;**************************************** INICIO: MOV SP,#2FH MOV IP,#01H MOV IE,#83H MOV TMOD,#01H MOV TH0,#HIGH (65535-10000) MOV TL0,#LOW (65535-10000) SETB TR0 MOV R2,#0 ;**************************************** AQUI: JNB F_TEC,AQUI CLR F_TEC MOV DPTR,#TAB_1 MOV A,R3 MOVC A,@A+DPTR ;ler tabela display MOV P1,A AJMP AQUI ;**************************************** TIM_0: INC R2 CJNE R2,#1,T_2 CLR P2.0 SETB P2.1 SETB P2.2 AJMP FIM_T0 T_2: CJNE R2,#2,T_3 SETB P2.0 Nesse programa o número digitado no teclado ascende a quantidade de LEDs correspondente no barramento
  • 9. Cartilha de Programas para Microcontrolador 80C51 Cartilha 80C51 – Pedro R. C. Vasconcelos Página 9 CLR P2.1 SETB P2.2 AJMP FIM_T0 T_3: CJNE R2,#3,FIM_T0 SETB P2.0 SETB P2.1 CLR P2.2 MOV R2,#0 FIM_T0: MOV TH0,#HIGH (65535-10000) MOV TL0,#LOW (65535-10000) RETI EXT_0: MOV A, P2 SETB P0.0 SETB P0.1 CJNE A, #0BBH, T2 MOV R3, #1 SETB F_TEC RETI T2: CJNE A, #0BDH, T3 MOV R3, #2 SETB F_TEC RETI T3: CJNE A, #0BEH, T4 MOV R3, #3 SETB F_TEC RETI T4: CJNE A, #0DBH, T5 MOV R3, #4 SETB F_TEC RETI T5: CJNE A, #0DDH, T6 MOV R3, #5 SETB F_TEC RETI T6: CJNE A, #0DEH, T7 MOV R3, #6 SETB F_TEC RETI T7: CJNE A, #0EBH, T8 MOV R3, #7 SETB F_TEC RETI T8: CJNE A, #0EDH, T9 MOV R3, #8 CLR P0.0 SETB F_TEC RETI T9: CJNE A, #0EEH, T00 MOV R3, #9 CLR P0.0 CLR P0.1 ;MOV P0, 11111100B SETB F_TEC RETI T00: CJNE A, #0F5H,FIM_E0 MOV R3, #0 SETB P0.0 SETB P0.1 SETB F_TEC RETI ;T89: CJNE R3,#8,CP1 ; MOV P0, 11111110B ;CP1: CJNE R3,#9,FIM_E0 ; MOV P0, 11111100B FIM_E0: RETI TAB_1: DB 0FFH, 0FEH, 0FCH, 0F8H, 0F0H, 0E0H, 0C0H, 080H, 080H, 080H END Motor de Passo
  • 10. Cartilha de Programas para Microcontrolador 80C51 Cartilha 80C51 – Pedro R. C. Vasconcelos Página 10 ORG 00H AJMP INICIO ORG 03H AJMP INIMOT INICIO: SETB P1.0 CLR P1.1 MOV IE, #81H MOV IP, #01H SETB IT0 AQUI1: AJMP AQUI VELOC1: SETB P0.0 ACALL TEMPO ACALL TEMPO CLR P0.0 SETB P0.1 ACALL TEMPO ACALL TEMPO CLR P0.1 SETB P0.2 ACALL TEMPO ACALL TEMPO CLR P0.2 SETB P0.3 ACALL TEMPO ACALL TEMPO CLR P0.3 RETI ;***************** INIMOT: CLR P1.0 SETB P1.1 SETB P0.0 ACALL TEMPO CLR P0.0 SETB P0.1 ACALL TEMPO CLR P0.1 SETB P0.2 ACALL TEMPO CLR P0.2 SETB P0.3 ACALL TEMPO CLR P0.3 AJMP INIMOT RETI TEMPO: MOV R1, #255 VOLTA: MOV R2, #255 AQUI: DJNZ R2, AQUI DJNZ R1, VOLTA RET END Display - LCD ORG 00H AJMP INICIO RS EQU P3.7 E EQU P3.6 INICIO: ACALL CONF MOV A, #01B ACALL INST MOV DPTR,#TAB1 ACALL MSG ACALL T_1S MOV A,#0C0H ACALL INST MOV DPTR,#TAB2 ACALL MSG ACALL T_1S ACALL T_1S
  • 11. Cartilha de Programas para Microcontrolador 80C51 Cartilha 80C51 – Pedro R. C. Vasconcelos Página 11 MOV A, #01B ACALL INST MOV DPTR, #TAB3 ACALL MSG MOV A,#0C0H ACALL INST MOV DPTR, #TAB4 ACALL MSG ACALL T_1S MOV A, #01B ACALL INST AQUI: ACALL T_1S AJMP INICIO ;------------MENSSAGENS----------------- MSG: MOV R4,#00H VOLTA1: MOV A,R4 MOVC A,@A+DPTR JZ FIM1 ACALL DADO INC R4 AJMP VOLTA1 FIM1: RET ;---------------------------------------- ;-------------INSTRUÇÃO------------------ INST: MOV P1,A CLR RS SETB E ACALL TEMPO CLR E RET ;--------------DADO--------------------- DADO: MOV P1,A SETB RS SETB E ACALL TEMPOT CLR E RET ;----------CONFIG LCD------------------- CONF:MOV A,#38H ACALL INST ACALL INST ACALL INST MOV A,#06H ACALL INST MOV A,#0FH ACALL INST MOV A,#01H ACALL INST RET ;------------TEMPO1---------------------- TEMPO: MOV R0,#255 DJNZ R0,$ RET ;----------TEMPO2------------------------ TEMPOT: MOV R1, #250 VOLTA: MOV R2, #200 DJNZ R2, $ DJNZ R1, VOLTA RET T_1S: MOV R3, #10 MAIS: ACALL TEMPOT DJNZ R3, MAIS RET ;-----------TABELA----------------------- TAB1: DB ' Cartilha',0 TAB2: DB ' para ',0 TAB3: DB ' mControlador', 0 TAB4: DB ' 80c51', 0 END PWM – Motor CC ORG 00H
  • 12. Cartilha de Programas para Microcontrolador 80C51 Cartilha 80C51 – Pedro R. C. Vasconcelos Página 12 AJMP INICIO ORG 03H AJMP EXT_0 ;tempo alto do PWM ORG 13H AJMP EXT_1 ;tempo baixo do PWM ;**************************************** SAIDA EQU P2.0 DISP EQU P1 BOTAO EQU P3.1 ;**************************************** INICIO: MOV SP, #2FH MOV IE, #85H SETB IT0 SETB IT1 MOV R0, #0 MOV A,R0 MOV R1,A MOV R2, #15 MOV A,R2 MOV R3,A DENOVO: ACALL ENVIA_ALTO ACALL ENVIA_BAIXO JNB BOTAO, VAI_LED AJMP DENOVO ;**************************************** TEMPO: MOV R5, #25 VOLTA: MOV R4, #10 DJNZ R4, $ DJNZ R5, VOLTA RET ;**************************************** TEMPO2: MOV R5, #255 VOLTA4: MOV R4, #255 DJNZ R4, $ DJNZ R5, VOLTA4 RET ;**************************************** ENVIA_ALTO: MOV A,R0 MOV R1,A CJNE R1,#0,AQUI AJMP RETORNA1 AQUI: SETB SAIDA ALI: ACALL TEMPO DJNZ R1,ALI RETORNA1: RET ;**************************************** ENVIA_BAIXO: MOV A,R2 MOV R3,A CJNE R3,#0,AQUI2 AJMP RETORNA3 AQUI2: CLR SAIDA ALI2: ACALL TEMPO DJNZ R3,ALI2 RETORNA3: RET ;**************************************** EXT_0: CJNE R2,#0,INCR1 AJMP RET_EXT0 INCR1: INC R0 DEC R2 RET_EXT0: RETI ;**************************************** EXT_1: CJNE R0,#0,INCR2 AJMP RET_EXT1 INCR2: INC R2 DEC R0 RET_EXT1: RETI ;**************************************** VAI_LED: MOV DISP, #0FEH ACALL TEMPO2 MOV R6,#7H RETORNA: MOV A,DISP RL A MOV DISP,A ACALL TEMPO2 DJNZ R6,RETORNA MOV R6,#7H RETORNA2: MOV A,DISP; RR A MOV DISP,A ACALL TEMPO2 DJNZ R6,RETORNA2 MOV DISP,#0FFH AJMP DENOVO END