Conheça o fórum, democrático e de qualidade.

PIC16: mostra4digitos - exibe quatro dígitos em displays multiplexados

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

;}
;*********************************************************

English Arabic Chinese (Simplified) Chinese (Traditional) Dutch French German Japanese Spanish

Receber informativos




Informática

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Sistemas Elétricos

  • 1
  • 2
  • 3

Eletrônica

  • 1
  • 2
  • 3
  • 4
  • 5

Comunidade Livre

Conheça nosso fórum, livre e de qualidade, clicando aqui.

Telecomunicações

  • Decibel (dB) O decibel (dB) consiste na mensuração da razão de duas potências na base logarítmica 10. Como...
  • Equação de Shannon A relação de Shannon determina a capacidade do canal C, em bits por segundo, considerando-se a existência...
  • Modulação em amplitude (AM) De acordo com outros artigos disponibilizados, a modulação consiste no deslocamento do conteúdo...
  • 1
  • 2

Contacte-nos

Encontrou um erro no site ou deseja expressar a sua opinião? Por favor, entre em contato clicando aqui.

Conhecimento Livre

Todos os códigos-fonte estão licenciados pela LGPL e todo o conteúdo pela Creative Commons License. Copyleft©2009. Nenhum direito reservado.

Fórum

Cadastre-se gratuitamente no nosso fórum, conheça nossos membros e participe da nossa comunidade.