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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
;********************************************************* ;<FUNÇÃO> ; mostra4digitos ;{ ; Exibe quatro dígitos <digito> nos 4 displays de 7 segmentos ; utilizando a função a 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 ;} ;*********************************************************
|