Um circuito simples exibição metros termo-para mostrar a temperatura valores utilizados para a detecção de NTC 10k saída de relé é também reforçada pelo transistor é muito menos material pode ser realizado com o tempo de retransmissão
diagrama de circuito
Clique na imagem p/ Ampliar
software Assembléia
lista p = PIC16C74
__config h'3ffa '; HS cristal, 20Mhz
incluir
; temperatura EQU 0x20 alvo equ 0x21; temperatura alvo de valor para o relé de disparo targdly equ 0x22; usado para pausar a exibição ao definir a meta bandeira equ 0x23 Cntr equ 0x24 ;
org 0, o vetor de reset
Ir à partida; ir para início do programa em redefinir ;
org 4
btfsc PIR1, TMR1IF; timer 1 transbordou?
Ir à Timer1
retfie ; começar movlw 0xbf; '-' segmento de valor
movwf PORTB; saída definida
movwf PORTD; travas para valor inicial
CLRF PORTA; uma porta clara travas
bsf STATUS, RP0; selecionar registrar um banco
CLRF PIE1; Desativar todas as interrupções de periféricos
bsf TRISC, 0; RC0 precisa ser entrada para a função de osc
bsf PIE1, TMR1IE; permitir TMR1 int
movlw b'00000011 '; RA0 = A / D de entrada, RA1 = A / D de entrada, saída de relé, RA2 =
movwf TRISA; porto, todas as entradas / analógico
CLRF TRISB; PORTB / PORTD saída para 7 segmentos LEDs
CLRF TRISD
movlw 0x04; RA0 e RA1 analógico, RA2 Digital, Vref = Vdd
movwf ADCON1; set
bcf STATUS, RP0; seleccione Registo banco 0
bcf T1CON, TMR1ON; temporizador nota 1 em
movlw 0x80; TIM1H: TIM1L = 0x8000 = 1seg
movwf TMR1H
CLRF TMR1L
CLRF INTCON; desabilitar todas as interrupções
CLRF PIR1; limpar todas as falgs
movlw 0x0E; T1CKPS1 (pré-escala) = 1, T1OSCEN (desligamento osc) = habilitado
movwf T1CON; T1SYNC (ext clk entrada) = sem sincronia, TMR1CS = externo
bsf INTCON, PEIE; habilitar interrupções periféricas
bsf INTCON, GIE; permitir ints mundial
getAD1 chamada, obter o valor de temperatura alvo
movwf alvo, excepto para comparar
CLRF targdly; contra exibição clara alvo
CLRF bandeira; para dizer que a / d para executar, ou RA1 RA0
BSF T1CON, TMR1ON, gire o temporizador
sono
Ir -1 $ ; Timer1 bcf PIR1, TMR1IF; bandeira clara
bcf INTCON, GIE; desativar todos os ints
movlw 0x01; valor halfadd
XORWF bandeira, 1; calcular operação para executar
MOVF bandeira, 0
ADDWF PCL, 1; ir para a rotina adequada
Ir à trgsamp
Ir à temsamp getAD1 chamada trgsamp, obter o valor-alvo
movwf temperatura
subwf alvo, 0; verificá-lo
btfsc STATUS, Z; se definido igual a meta, zero mesmo
Ir à timerx
MOVF temp, 0; obter o valor novo alvo
movwf alvo
0x01 movlw
movwf bandeira; fazer disparar próxima amostra também ir ao redor
Ir à dispit getAD0 chamada temsamp, obter o valor termistor RA0
movwf temperatura
subwf alvo, 0
btfss STATUS, C
BSF PORTA, 2; relé de disparo, temp atingiu meta dispit movlw 0,186
subwf temp, 0; fim de os valores da tabela
btfsc STATUS, C
Ir à valerr; erro, fora da faixa de valor
movlw 0,98; base os valores da tabela
subwf temp, 0
btfss STATUS, C; se realizar claro, então,
Ir à valerr; erro, fora da faixa de valor
temptab chamada; converter temperatura setleds movwf temperatura
ANDLW 0x0F
chamada ledtab
movwf PORTB
swapf temp, 0
ANDLW 0x0F
chamada ledtab
movwf PORTD timerx bcf PIR1, TMR1IF; bandeira clara
movlw 0x80
movwf TMR1H
CLRF TMR1L
retfie; permitir ints e voltar a dormir valerr movlw 0xAA; ledtab 0x0a de valor fora da faixa especial de disp é
Ir à setleds
getAD0 movlw b'10000001 '; fosc/32, chan0 (RA0), Adone movwf ADCON0 adconv
CLRF Cntr
DECFSZ Cntr, 1
Ir -1 $
CLRF Cntr
DECFSZ Cntr, 1
Ir -1 $
BSF ADCON0, GO
btfsc ADCON0, NOT_DONE; verificar se o A / D completo
Ir -1 $
MOVF ENDEREÇO, 0
CLRF ADCON0; reg a clara e lógica de desligamento AD
retorno getAD1 movlw b'10001101 '; fosc/32, chan1 (RA1), GO, Adone
Ir à adconv ; , A conversão de 7 segmentos ; ledtab ADDWF PCL, 1
retlw 0xC0, 0
retlw 0xFC, 1
retlw 0x92, 2
retlw 0x98, 3
retlw 0xac, 4
retlw 0x89, 5
retlw 0x81, 6
retlw 0xdc; 7
retlw 0x80, 8
retlw 0x8c, 9
retlw 0xbf; - ; ; Tabela Tempature ; temptab ADDWF PCL, 1
retlw 0x99, 98
retlw 0x98, 99
retlw 0x98; 100
retlw 0x97; 101
retlw 0x96; 102
retlw 0x95; 103
retlw 0x94; 104
retlw 0x93; 105
retlw 0x93; 106
retlw 0x92 com 107
retlw 0x91; 108
retlw 0x90; 109
retlw 0x89, 110
retlw 0x89; 111
retlw 0x88; 112
retlw 0x87; 113
retlw 0x86; 114
retlw 0x86; 115
retlw 0x85; 116
retlw 0x85; 117
retlw anterior 0x84; 118
retlw 0x83; 119
retlw 0x82; 120
retlw 0x81; 121
retlw 0x80; 122
retlw 0x80, 123
retlw 0x79; 124
retlw 0x78; 125
retlw 0x78, 126
retlw 0x77; 127
retlw 0x76, 128
retlw 0x76; 129
retlw 0x75; 130
retlw 0x74; 131
retlw 0x73; 132
retlw 0x72; 133
retlw 0x71; 134
retlw 0x70; 135
retlw 0x70; 136
retlw 0x69; 137
retlw 0x69; 138
retlw 0x68; 139
retlw 0x67; 140
retlw 0x67; 141
retlw 0x66; 142
retlw 0x65; 143
retlw 0x64; 144
retlw 0x63; 145
retlw 0x62; 146
retlw 0x62; 147
retlw 0x61; 148
retlw 0x60; 149
retlw 0x59; 150
retlw 0x59; 151
retlw 0x58; 152
retlw 0x58; 153
retlw 0x57, 154
retlw 0x56; 155
retlw 0x55; 156
retlw 0x54; 157
retlw 0x53; 158
retlw 0x53; 159
retlw 0x52; 160
retlw 0x51; 161
retlw 0x51; 162
retlw 0x50; 163
retlw 0x49; 164
retlw 0x49; 165
retlw 0x48; 166
retlw 0x47; 167
retlw 0x46; 168
retlw 0x45; 169
retlw 0x44; 170
retlw 0x44; 171
retlw 0x43; 172
retlw 0x42; 173
retlw 0x41; 174
retlw 0x40: 175
retlw 0x39; 176
retlw 0x39; 177
retlw 0x38; 178
retlw 0x37; 179
retlw 0x37; 180
retlw 0x36; 181
retlw 0x35; 182
retlw 0x34; 183
retlw 0x33; 184
retlw 0x32; 185
retlw 0x32; 186
final
__config h'3ffa '; HS cristal, 20Mhz
incluir
; temperatura EQU 0x20 alvo equ 0x21; temperatura alvo de valor para o relé de disparo targdly equ 0x22; usado para pausar a exibição ao definir a meta bandeira equ 0x23 Cntr equ 0x24 ;
org 0, o vetor de reset
Ir à partida; ir para início do programa em redefinir ;
org 4
btfsc PIR1, TMR1IF; timer 1 transbordou?
Ir à Timer1
retfie ; começar movlw 0xbf; '-' segmento de valor
movwf PORTB; saída definida
movwf PORTD; travas para valor inicial
CLRF PORTA; uma porta clara travas
bsf STATUS, RP0; selecionar registrar um banco
CLRF PIE1; Desativar todas as interrupções de periféricos
bsf TRISC, 0; RC0 precisa ser entrada para a função de osc
bsf PIE1, TMR1IE; permitir TMR1 int
movlw b'00000011 '; RA0 = A / D de entrada, RA1 = A / D de entrada, saída de relé, RA2 =
movwf TRISA; porto, todas as entradas / analógico
CLRF TRISB; PORTB / PORTD saída para 7 segmentos LEDs
CLRF TRISD
movlw 0x04; RA0 e RA1 analógico, RA2 Digital, Vref = Vdd
movwf ADCON1; set
bcf STATUS, RP0; seleccione Registo banco 0
bcf T1CON, TMR1ON; temporizador nota 1 em
movlw 0x80; TIM1H: TIM1L = 0x8000 = 1seg
movwf TMR1H
CLRF TMR1L
CLRF INTCON; desabilitar todas as interrupções
CLRF PIR1; limpar todas as falgs
movlw 0x0E; T1CKPS1 (pré-escala) = 1, T1OSCEN (desligamento osc) = habilitado
movwf T1CON; T1SYNC (ext clk entrada) = sem sincronia, TMR1CS = externo
bsf INTCON, PEIE; habilitar interrupções periféricas
bsf INTCON, GIE; permitir ints mundial
getAD1 chamada, obter o valor de temperatura alvo
movwf alvo, excepto para comparar
CLRF targdly; contra exibição clara alvo
CLRF bandeira; para dizer que a / d para executar, ou RA1 RA0
BSF T1CON, TMR1ON, gire o temporizador
sono
Ir -1 $ ; Timer1 bcf PIR1, TMR1IF; bandeira clara
bcf INTCON, GIE; desativar todos os ints
movlw 0x01; valor halfadd
XORWF bandeira, 1; calcular operação para executar
MOVF bandeira, 0
ADDWF PCL, 1; ir para a rotina adequada
Ir à trgsamp
Ir à temsamp getAD1 chamada trgsamp, obter o valor-alvo
movwf temperatura
subwf alvo, 0; verificá-lo
btfsc STATUS, Z; se definido igual a meta, zero mesmo
Ir à timerx
MOVF temp, 0; obter o valor novo alvo
movwf alvo
0x01 movlw
movwf bandeira; fazer disparar próxima amostra também ir ao redor
Ir à dispit getAD0 chamada temsamp, obter o valor termistor RA0
movwf temperatura
subwf alvo, 0
btfss STATUS, C
BSF PORTA, 2; relé de disparo, temp atingiu meta dispit movlw 0,186
subwf temp, 0; fim de os valores da tabela
btfsc STATUS, C
Ir à valerr; erro, fora da faixa de valor
movlw 0,98; base os valores da tabela
subwf temp, 0
btfss STATUS, C; se realizar claro, então,
Ir à valerr; erro, fora da faixa de valor
temptab chamada; converter temperatura setleds movwf temperatura
ANDLW 0x0F
chamada ledtab
movwf PORTB
swapf temp, 0
ANDLW 0x0F
chamada ledtab
movwf PORTD timerx bcf PIR1, TMR1IF; bandeira clara
movlw 0x80
movwf TMR1H
CLRF TMR1L
retfie; permitir ints e voltar a dormir valerr movlw 0xAA; ledtab 0x0a de valor fora da faixa especial de disp é
Ir à setleds
getAD0 movlw b'10000001 '; fosc/32, chan0 (RA0), Adone movwf ADCON0 adconv
CLRF Cntr
DECFSZ Cntr, 1
Ir -1 $
CLRF Cntr
DECFSZ Cntr, 1
Ir -1 $
BSF ADCON0, GO
btfsc ADCON0, NOT_DONE; verificar se o A / D completo
Ir -1 $
MOVF ENDEREÇO, 0
CLRF ADCON0; reg a clara e lógica de desligamento AD
retorno getAD1 movlw b'10001101 '; fosc/32, chan1 (RA1), GO, Adone
Ir à adconv ; , A conversão de 7 segmentos ; ledtab ADDWF PCL, 1
retlw 0xC0, 0
retlw 0xFC, 1
retlw 0x92, 2
retlw 0x98, 3
retlw 0xac, 4
retlw 0x89, 5
retlw 0x81, 6
retlw 0xdc; 7
retlw 0x80, 8
retlw 0x8c, 9
retlw 0xbf; - ; ; Tabela Tempature ; temptab ADDWF PCL, 1
retlw 0x99, 98
retlw 0x98, 99
retlw 0x98; 100
retlw 0x97; 101
retlw 0x96; 102
retlw 0x95; 103
retlw 0x94; 104
retlw 0x93; 105
retlw 0x93; 106
retlw 0x92 com 107
retlw 0x91; 108
retlw 0x90; 109
retlw 0x89, 110
retlw 0x89; 111
retlw 0x88; 112
retlw 0x87; 113
retlw 0x86; 114
retlw 0x86; 115
retlw 0x85; 116
retlw 0x85; 117
retlw anterior 0x84; 118
retlw 0x83; 119
retlw 0x82; 120
retlw 0x81; 121
retlw 0x80; 122
retlw 0x80, 123
retlw 0x79; 124
retlw 0x78; 125
retlw 0x78, 126
retlw 0x77; 127
retlw 0x76, 128
retlw 0x76; 129
retlw 0x75; 130
retlw 0x74; 131
retlw 0x73; 132
retlw 0x72; 133
retlw 0x71; 134
retlw 0x70; 135
retlw 0x70; 136
retlw 0x69; 137
retlw 0x69; 138
retlw 0x68; 139
retlw 0x67; 140
retlw 0x67; 141
retlw 0x66; 142
retlw 0x65; 143
retlw 0x64; 144
retlw 0x63; 145
retlw 0x62; 146
retlw 0x62; 147
retlw 0x61; 148
retlw 0x60; 149
retlw 0x59; 150
retlw 0x59; 151
retlw 0x58; 152
retlw 0x58; 153
retlw 0x57, 154
retlw 0x56; 155
retlw 0x55; 156
retlw 0x54; 157
retlw 0x53; 158
retlw 0x53; 159
retlw 0x52; 160
retlw 0x51; 161
retlw 0x51; 162
retlw 0x50; 163
retlw 0x49; 164
retlw 0x49; 165
retlw 0x48; 166
retlw 0x47; 167
retlw 0x46; 168
retlw 0x45; 169
retlw 0x44; 170
retlw 0x44; 171
retlw 0x43; 172
retlw 0x42; 173
retlw 0x41; 174
retlw 0x40: 175
retlw 0x39; 176
retlw 0x39; 177
retlw 0x38; 178
retlw 0x37; 179
retlw 0x37; 180
retlw 0x36; 181
retlw 0x35; 182
retlw 0x34; 183
retlw 0x33; 184
retlw 0x32; 185
retlw 0x32; 186
final
Postar um comentário