Escolar Documentos
Profissional Documentos
Cultura Documentos
Projeto Microcontroladores
Projeto Microcontroladores
RELATÓRIO DO PROJETO DE UM
RELÓGIO DIGITAL COM ATMEGA328 EM
ASSEMBLY
inicio:
sei // habilita interrupões
ldi Uniseg, 0b00000011 // carrega com o valor 0x03
out EIMSK, Uniseg // habilita INT0 e INT1
ldi Uniseg, 0b00000000 // carrega Uniseg cm o valor 0
sts EICRA, Uniseg // confgura o tipo de interrupçao para ser acoionado
ldi Dezseg,0x00 // carrega Dezseg cm o valor 0
ldi Unimin,0x00 // carrega Unimin cm o valor 0
ldi Dezmin,0x00 // carrega Dezmin cm o valor 0
ldi Unihor,0x00 // carrega Unihor cm o valor 0
ldi Dezhor,0x00 // carrega Dezhor cm o valor 0
ldi flag01,0x00 // carrega flag01 cm o valor 0
ldi flag02,0x00 // carrega flag02 cm o valor 0
ldi Uniseg, 0b11110011
out DDRD, Uniseg // confg entradas e saidas portD
ldi Uniseg, 0xFF
out PORTD, Uniseg // habilita o pull-up
out DDRB, Uniseg //PORTB saida
out DDRC, Uniseg //PORTC saida
out PORTB, Uniseg // Inicia Com Display Apagado
ldi Uniseg, 0x00
incr_h1:
inc Unihor //incrementa
sbrc flag02, 0 // se o bit 0 de flag for 0, pula a linha
rjmp Decod02
rjmp Decod
incr_m1:
inc Unimin //incrementa
sbrc flag02, 0 // se o bit 0 de flag for 0, pula a linha
rjmp Decod02
rjmp Decod
incr_m2:
inc Dezmin //incrementa
sbrc flag02, 0 // se o bit 0 de flag for 0, pula a linha
rjmp Decod02
rjmp Decod
incr_s1:
inc Uniseg //incrementa
sbrc flag02, 0 // se o bit 0 de flag for 0, pula a linha
rjmp Decod02
rjmp Decod
incr_s2:
inc Dezseg //incrementa
sbrc flag02, 0 // se o bit 0 de flag for 0, pula a linha
rjmp Decod02
rjmp Decod
dec_h1:
dec Unihor //incrementa
sbrc flag02, 0 // se o bit 0 de flag for 0, pula a linha
rjmp Decod02
rjmp Decod
dec_m1:
dec Unimin //incrementa
sbrc flag02, 0 // se o bit 0 de flag for 0, pula a linha
rjmp Decod02
rjmp Decod
dec_m2:
dec Dezmin //incrementa
sbrc flag02, 0 // se o bit 0 de flag for 0, pula a linha
rjmp Decod02
rjmp Decod
dec_s1:
dec Uniseg //incrementa
sbrc flag02, 0 // se o bit 0 de flag for 0, pula a linha
rjmp Decod02
rjmp Decod
dec_s2:
dec Dezseg //incrementa
sbrc flag02, 0 // se o bit 0 de flag for 0, pula a linha
rjmp Decod02
rjmp Decod
//--------------------------------------------------------------------------------------------------
-------------------
inc_flag01:
inc flag01
reti
inc_flag02:
inc flag02
reti
volta:
dec R27
brne volta
dec R28
brne volta
dec R26
brne volta
ret
IMAGENS DO FUNCIONAMENTO
DECREMENTO
INCREMENTO