Termômetro com PIC16C74 Circuito

quarta-feira, 28 de julho de 2010 0 comentários


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
Share this article :

Postar um comentário

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. kvolts - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger