A seguinte função para a família de microcontroladores PIC16 controla a exibição de 4 dígitos decimais em 4 displays de 7 segmentos multiplexados através de transistores e um decodificador BCD para 7 segmentos. O número a ser exibido deve estar contindo em digitos_low (dois dígitos BCD) e digitos_high (dois dígitos BCD mais significativos). Esta função utiliza a função mostra1digito.
;********************************************************* ;<FUNÇÃO> ; mostra4digitos ;{ ; Exibe quatro dígitos <digito> nos 4 displays de 7 segmentos utilizando a função ; mostra1digito ;<HARDWARE> ; 4 displays de sete segmentos multiplexados ; através de 4 transistores e o dado codificado em BCD. ; <ARGUMENTOS> ; digitos_low (f) = dois dígitos BCD (0 a 9) menos significativos ; digitos_high (f) = dois dígitos BCD (0 a 9) mais significativos ;********************************************************* #ifdef DISPLAY_7SEGMENTOS banksel display_low ;1º digito - menos significativo: digito_1: movf posicao,f btfss STATUS,Z goto digito_2 movf display_low,w movwf mostra1_digito_7seg movlw 0x01 movwf mostra1_posicao_7seg call mostra1digito goto digito_fim ;2º digito digito_2: movlw 0x01 subwf posicao,w btfss STATUS,Z goto digito_3 swapf display_low,w movwf mostra1_digito_7seg movlw 0x02 movwf mostra1_posicao_7seg call mostra1digito goto digito_fim ;3º digito digito_3: movlw 0x02 subwf posicao,w btfss STATUS,Z goto digito_4 movf display_high,w movwf mostra1_digito_7seg movlw 0x03 movwf mostra1_posicao_7seg call mostra1digito goto digito_fim ;4º digito - mais significativo: digito_4: swapf display_high,w movwf mostra1_digito_7seg movlw 0x04 movwf mostra1_posicao_7seg call mostra1digito digito_fim: incf posicao,f movlw 0x04 subwf posicao,w btfsc STATUS,Z clrf posicao ; posicao = 0 até 3 #endif ;} ;*********************************************************
Post new comment