ENCICLOPÉDIA DE RÁDIO ELETRÔNICA E ENGENHARIA ELÉTRICA Despertador simples em PIC16F84. Enciclopédia de rádio eletrônica e engenharia elétrica Enciclopédia de eletrônica de rádio e engenharia elétrica / Relógios, temporizadores, relés, interruptores de carga Não muito tempo atrás, os relógios eletrônicos eram construídos nos chamados chips de relógio da série K176 e chips especializados das séries K145 (K145IK1901) e KR1016 (KR1016VI1). Sua principal desvantagem são as possibilidades limitadas de melhoria (qualquer alteração exigia refinamento de hardware). Os relógios montados com base em um microcontrolador se destacam favoravelmente. O circuito é bastante simplificado e o "upgrade" pode ser realizado sem nenhuma alteração no hardware. Até mesmo definir a taxa de clock pode ser puramente software. São esses relógios descritos no artigo publicado abaixo. O despertador proposto com indicador LED de quatro dígitos é feito com base em um microcontrolador (MC) e mostra a hora no formato de 24 horas com um insignificante apagamento de zero na descarga de dezenas de horas. Existe um modo de exibição de minutos e segundos, um bipe curto (com duração de 1 s) no início de cada hora (se necessário, esta função pode ser desligada), dois alarmes que podem ser desligados e uma configuração de software do fator de correção de tempo, do qual depende a precisão do relógio. O valor dos ajustes de coeficiente e alarme são registrados na memória não volátil (EEPROM) do MK. O status dos despertadores e o sinal "Toda hora" são indicados por LEDs. O diagrama esquemático do dispositivo é mostrado na fig. 1. Sua base é o microcontrolador PIC16F84 (DD1), cuja frequência operacional é definida por um oscilador com um ressonador externo ZQ1 a 4 MHz. A entrada de reinicialização do MC (MCLR) está diretamente conectada ao barramento de alimentação de +5V. A porta A de cinco bits, todas as linhas configuradas para saída, controla o LED HL1 e alterna os dígitos do indicador HG1. Os quatro bits mais significativos da porta B (RB4-RB7) são configurados para entrada e recebimento de sinais de controle dos botões SB1-SB4, que são conectados a pinos sem resistores "pull-up", pois existem no MK. Os bits RB0 e RB1 da porta B são usados para carregar o código de sete elementos correspondente ao dígito exibido no registrador DD2. A descarga RB2 é a saída de um sinal 3H ou um alarme (dependendo da versão do programa), que pode ser conectado diretamente a um emissor piezo (ZP-1, ZP-3 e similares), à entrada de um amplificador 3H ou a um atuador, por exemplo, um relé que na hora do alarme liga o rádio, TV ou outro aparelho. Os LEDs HL1 e HL2 indicam o status do sinal "Toda hora" e dos despertadores, respectivamente: HL1 acende se o sinal "Toda hora" estiver ligado e HL2 - se pelo menos um dos despertadores estiver ligado ou se ambos estão ativados. O dispositivo usa um indicador LED de relógio especializado da Kingbright, contendo quatro dígitos de sete elementos com um ânodo comum e dois pontos indicando segundos entre os dígitos do meio. Como as conclusões dos elementos ag são comuns a todos os dígitos, o indicador só pode ser controlado no modo dinâmico. Para este projeto, o indicador se encaixou perfeitamente: o número de linhas de I / O de uso geral no P1C16F84 MK não permite uma indicação estática, e com uma dinâmica, com outro indicador, seria necessário combinar as saídas de os mesmos elementos de diferentes dígitos no tabuleiro. Os resistores R3-R10 limitam a corrente através dos LEDs indicadores. O registrador de deslocamento DD2 foi introduzido para salvar as saídas MK - ele converte o código serial em paralelo durante a indicação dinâmica. O capacitor C4 filtra a ondulação no circuito de potência MK. Não há lugar para ele na placa, ele é soldado diretamente aos terminais do soquete MK na lateral dos condutores impressos. O programa de controle para o MK é escrito no assembler padrão MPASM da Microchip e compilado no ambiente MPLAB da mesma empresa. Das 1024 memórias do programa MK, cerca de oitocentas já foram utilizadas, portanto há recursos para melhorias. Imediatamente após a alimentação ser ligada, o programa de controle é inicializado: os bits da porta são configurados para entrada e saída, o modo de operação do temporizador é definido como 0, as configurações de alarme e o fator de correção de tempo são lidos da memória não volátil. A principal tarefa do programa - a formação de intervalos de tempo precisos com duração de 1 s - é resolvida usando interrupções do cronômetro 0. Seu pré-curador é conectado ao oscilador de cristal MK e ajustado para um fator de divisão de 16. Um número de 0h a OFh é escrito no registro do timer 00 durante cada processamento de interrupção (isso e há um fator de correção de tempo, no código-fonte do programa é chamado de TIME_SET), então o timer estoura não para 256, mas por exemplo, para 250 ciclos de clock (com TIME_SET=5). Neste caso, ao usar um cristal de 4 MHz, as interrupções do timer 0 ocorrem na frequência de 1 Hz / 000/000 = 250 Hz. Após a inicialização, o programa entra em loop esperando por essas interrupções e as conta. Quando o número de interrupções atinge 16, o tempo atual é aumentado em um segundo. As interrupções do Timer 0 também fornecem indicação dinâmica. Durante o processamento, o MK define o nível zero nos pinos RA0-RA3 e, assim, apaga o indicador. Além disso, um código de sete elementos correspondente ao caractere a ser exibido é carregado no registrador DD2 por meio dos pinos MK RB0 e RB1. Em seguida, um nível lógico alto é definido em um dos pinos RAO-RA3, devido ao qual um dos espaços familiares é aceso. Tudo isso acontece 250 vezes por segundo e, devido à inércia da visão, o usuário vê todas as descargas ligadas de uma só vez. O bit alto do código carregado no registro DD2 é usado para controlar os segundos pontos do indicador, que piscam na frequência de 1 Hz. Assim, com a ajuda de interrupções do cronômetro 0, duas tarefas são resolvidas ao mesmo tempo. Além disso, na rotina de tratamento de interrupção, o MK verifica se o dígito de saída é um zero não significativo no dígito esquerdo e, em caso afirmativo, em vez do código de sete elementos do dígito O, o MK carrega o número binário 11111111 no registro (um indicador com um ânodo comum, então um corresponde a um segmento em branco). O teclado é pesquisado cerca de 10 vezes por segundo, mas após o primeiro pressionamento de alguns botões e suas combinações, o programa não responde a pressionamentos repetidos por 1 s (por exemplo, se os botões forem pressionados). Isso é necessário para a conveniência de gerenciar o relógio. Quando o alarme dispara, um sinal 2H intermitente aparece na saída RB1 por 3 minuto ou, dependendo da versão do programa, um nível alto (mais precisamente, pulsos com taxa de repetição de 1 Hz). Os LEDs HL1 e HL2 piscam. Após um minuto, uma sub-rotina especial é chamada, o que restaura o brilho correto dos LEDs. O dispositivo é controlado pelos botões SB1-SB4, cada um dos quais combina várias funções (consulte o diagrama mnemônico mostrado na Fig. 2). O relógio opera em três modos: básico (indicação da hora atual), com fator de correção de tempo e modo de configuração de alarmes. No modo principal, o indicador HG1 exibe horas e minutos, enquanto os segundos pontos piscam na frequência de 1 Hz. A hora atual é definida com os botões SB1 (horas) e SB2 (minutos): cada toque deles aumenta as leituras em um, e se isso for feito enquanto pressiona SB4, diminui. Quando os dígitos dos minutos chegam a zero, não ocorre a transferência para o dígito das horas. Se você segurar o botão SB4 por três segundos, o indicador exibirá minutos e segundos da hora atual em vez de horas e minutos. O sinal "Toda hora" é ligado e desligado com o botão SB3 enquanto segura SB4 (o LED HL1 acende ou apaga, respectivamente). Para mudar para o modo de configuração do alarme, pressione o botão SB3. As indicações do primeiro alarme aparecem no indicador, os pontos do segundo brilham continuamente. Horas e minutos são definidos pelos mesmos botões SB1 e SB2 (neste caso, apenas um aumento nas leituras). Pressionar o botão SB4 desliga o alarme, e apenas traços permanecem no indicador (elementos G estão acesos). Na próxima vez que o alarme for ligado, o mesmo botão aparecerá no indicador e os zeros (e não os valores anteriores) serão gravados nos registros de alarme. Se você pressionar o botão SB3 novamente, as indicações do segundo alarme aparecerão no indicador, mas os segundos pontos se apagarão. Ambos os alarmes são configurados da mesma maneira. A terceira pressão do botão SB3 coloca o relógio no modo de operação com um coeficiente de correção de tempo: os símbolos "EE X" são exibidos no indicador, onde EE significa EEPROM e X é o valor atual do coeficiente em forma hexadecimal; os segundos pontos continuam a piscar. Com o botão SB1 você pode aumentar, e com o botão SB2 você pode diminuir o valor do coeficiente na faixa de Oh a Fh. O número definido será gravado no timer 0 na rotina de estouro do timer. Quando o botão SB3 é pressionado pela quarta vez, as configurações de alarme e o valor do coeficiente são gravados na EEPROM: o primeiro despertador - nos endereços 02h-05h (minutos, dezenas de minutos, horas e dezenas de horas, respectivamente), o segundo - nos endereços 06h-09h (na mesma ordem), coeficiente - às 01h. O dispositivo é montado em uma placa de circuito impresso feita de acordo com o desenho mostrado na fig. 3 (as linhas tracejadas mostram os jumpers conectando os condutores impressos no lado oposto da placa). Sem nenhuma alteração no circuito e no programa MK, você pode usar o PIC16C84 - um análogo programável único do PIC16F84. O indicador indicado no diagrama pode ser substituído por qualquer outro de quatro dígitos com um ânodo comum (é desejável que as conclusões dos mesmos elementos das descargas sejam conectadas dentro do indicador). É permitido o uso de quatro indicadores de um dígito, neste caso, dois LEDs separados podem ser usados \u10b\uXNUMXbcomo segundos pontos, conectados por cátodos ao terminal direito (conforme o diagrama) do resistor RXNUMX (se necessário, por meio de uma tecla em o transistor). Resistores, capacitores, LEDs, botões - qualquer um de tamanho pequeno. Três versões do programa de controle foram desenvolvidas para o relógio. A versão 1.10 é a principal (seu arquivo HEX é fornecido na tabela). Quando os alarmes disparam, um sinal (meandro) com frequência de 2 Hz aparece na saída RB1. Ele pode ser usado para controlar vários atuadores e geradores de sinal 3H: desde o mais simples em dois ou três elementos lógicos até sistemas complexos de síntese de som digital [1, 2]. A indicação dinâmica nesta versão funciona o tempo todo. Na versão 1.11, a indicação também funciona continuamente, mas quando os alarmes disparam e no momento em que o sinal "Toda hora" é gerado, surgem na saída RB2 rajadas de pulsos com taxa de repetição de 1 Hz (a frequência de preenchimento das oscilações as rajadas correspondem à frequência de interrupção do temporizador 0 - 250 Hz). Este sinal pode ser aplicado diretamente no emissor ou na entrada do amplificador 3H. A versão 1.20 difere da 1.11 apenas porque a indicação dinâmica é desativada por padrão (enquanto todas as outras funções do relógio funcionam no modo normal). Ele começa a funcionar se você pressionar o botão SB4 e desliga automaticamente após 10 segundos. Quando você pressiona os botões e o alarme dispara, a contagem regressiva desse intervalo começa novamente. Se o alarme disparou quando a indicação está desligada, ele não liga: você precisa pressionar o botão SB4 duas vezes para desligar o alarme e ligar a indicação. É aconselhável usar este programa se o relógio for alimentado por uma bateria composta por células galvânicas ou acumuladores: desligar o visor economiza energia da bateria. Ao programar o MK, o tipo de gerador é indicado na palavra de configuração - XT, Timer de energização - ligado, timer de watchdog e código de proteção - desligado. Além disso, deve-se informar um número de Oh a Fh (fator de correção de tempo) na célula 01 h da memória de dados não voláteis e configurações de alarme nos endereços 02h-09h. Se a configuração do software da precisão do relógio for irregular (o que é bastante provável), você deve instalar o capacitor de ajuste C3 mostrado no diagrama em linhas tracejadas (há um lugar para ele na placa de circuito impresso). Arquivos HEX das versões do programa 1.11 e 1.20, bem como os textos de origem de todas as versões Literatura
Autor: A. Vakulenko, Tyumen Veja outros artigos seção Relógios, temporizadores, relés, interruptores de carga. Leia e escreva útil comentários sobre este artigo. Últimas notícias de ciência e tecnologia, nova eletrônica: Máquina para desbastar flores em jardins
02.05.2024 Microscópio infravermelho avançado
02.05.2024 Armadilha de ar para insetos
01.05.2024
Outras notícias interessantes: ▪ Mudanças climáticas afetam a produção de vinho ▪ Contração relativística do campo elétrico ▪ Alto-falante de nanotubo macio ▪ A foto subaquática ficará clara Feed de notícias de ciência e tecnologia, nova eletrônica
Materiais interessantes da Biblioteca Técnica Gratuita: ▪ seção do site Grande Enciclopédia para crianças e adultos. Seleção de artigos ▪ artigo Como olhar para a água. expressão popular ▪ artigo Que conselho Karl Marx deu às gerações futuras em seu leito de morte? Resposta detalhada ▪ artigo Packer. Descrição do trabalho
Deixe seu comentário neste artigo: Todos os idiomas desta página Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site www.diagrama.com.ua |