Menu English Ukrainian Russo Início

Biblioteca técnica gratuita para amadores e profissionais Biblioteca técnica gratuita


ENCICLOPÉDIA DE RÁDIO ELETRÔNICA E ENGENHARIA ELÉTRICA
Biblioteca gratuita / Esquemas de dispositivos radioeletrônicos e elétricos

O que é PIC? Enciclopédia de rádio eletrônica e engenharia elétrica. Enciclopédia de rádio eletrônica e engenharia elétrica

Biblioteca técnica gratuita

Enciclopédia de eletrônica de rádio e engenharia elétrica / Microcontroladores

Comentários do artigoComentários do artigo

Introdução. Os PIC16CXX são microcontroladores RISC de 8 bits fabricados pela Microchip Technology. Esta família de microcontroladores é caracterizada por baixo preço, baixo consumo de energia e alta velocidade.

Os microcontroladores possuem um programa integrado EEPROM, RAM de dados e estão disponíveis em pacotes de 18 e 28 saídas.

PIC OTP são controladores de uso único programáveis ​​pelo usuário, projetados para produtos totalmente testados e acabados que não sofrerão mais alterações de código. Esses controladores estão disponíveis em caixas de plástico baratas com um tipo predefinido de oscilador externo - quartzo ou RC.

Para programas de depuração e prototipagem, está disponível uma versão de controladores com apagamento ultravioleta. Esses controladores permitem um grande número de ciclos de gravação/apagamento e têm um tempo de apagamento muito curto - geralmente de 1 a 2 minutos.

No entanto, o preço desses controladores é significativamente maior do que os programados uma vez, portanto, não é lucrativo instalá-los na produção em série.

Para produtos cujo programa pode mudar ou contém quaisquer partes variáveis, tabelas, parâmetros de calibração, chaves, etc., está disponível um controlador PIC16C84 eletricamente apagável e reprogramável. Ele também contém uma ROM de dados com flash elétrico. É este controlador que usaremos para experimentos.

Para aproveitar ao máximo este artigo, você precisará de um computador pessoal compatível com IBM PC, um programador conectado à porta paralela do computador, um chip PIC16C84, uma breadboard, 8 LEDs com resistores, uma fonte de alimentação de +5V e um soquete para o chip.

Estaremos digitando pequenos pedaços de software PIC, montando-os, colocando-os no chip e observando os resultados nos LEDs. Usaremos os mnemônicos básicos do MICROCHIP neste artigo para que você possa usar mais facilmente os outros exemplos de aplicativos e listas fornecidas no Embedded Control Handbook.

FAMÍLIA PIC16CXX Iniciaremos uma descrição detalhada da família de microcircuitos PIC com aquelas características e vantagens que distinguem estes microcontroladores dos demais. Para aplicações de segurança de dados, cada PIC possui um bit de segurança que pode ser programado para desabilitar a leitura do código do programa e da ROM de dados. Ao programar, o código do programa é primeiro escrito, verificado quanto à escrita correta e, em seguida, o bit de segurança é definido. Se você tentar ler o chip com o bit de segurança definido, para o PIC16C5X os 8 bits superiores do código serão lidos como 0 e os 4 bits inferiores serão 12 bits embaralhados do comando. Para o PIC16C84, da mesma forma, os 7 bits mais significativos serão lidos como zeros e os 7 bits menos significativos representarão os 14 bits embaralhados da instrução. Os dados da EEPROM do PIC16C84 não podem ser lidos quando o bit de segurança é definido. A Figura 1 mostra todos os microcontroladores produzidos atualmente e fornece suas breves características. (Figura na página 2-1) A família PIC de microcontroladores possui um conjunto de instruções muito eficiente, composto por apenas 35 instruções. Todas as instruções são executadas em um ciclo, exceto saltos condicionais e instruções que alteram o contador de programa, que são executadas em 2 ciclos. Um ciclo de execução de instrução consiste em 4 ciclos de clock. Assim, na frequência de 4 MHz, o tempo de execução da instrução é de 1 µs. Cada instrução consiste em 14 bits, divisíveis pelo opcode e operando (possível manipulação com registradores, localizações de memória e dados imediatos). O conjunto de comandos dos microcontroladores PIC16CXX é mostrado na Figura 2. (Tabela 7.2 na página 2-569) A alta velocidade de execução de comandos no PIC é obtida usando uma arquitetura Harvard de dois barramentos em vez da tradicional Von Neumann de barramento único arquitetura. A arquitetura de Harvard é baseada em um conjunto de registradores com barramentos separados e um espaço de endereçamento para instruções e para dados. Um conjunto de registradores significa que todos os objetos de software, como portas de E/S, células de memória e um temporizador, são registradores de hardware fisicamente implementados.

A memória de dados (RAM) para o PIC16CXX é de 8 bits, a memória de programa (PROM) é de 12 bits para o PIC16C5X e 14 bits para o PIC16CXX. O uso da arquitetura Harvard permite alcançar uma alta velocidade de operações de bit, byte e registro. Além disso, a arquitetura de Harvard permite a execução de instruções em pipeline, quando a instrução atual é executada e a seguinte é lida ao mesmo tempo. Na arquitetura Von Neumann tradicional, os comandos e dados são transferidos por meio de um único barramento compartilhado ou multiplexado, limitando assim as possibilidades de pipelining. A Figura 3 mostra um diagrama de blocos da estrutura de barramento duplo do PIC16CXX. (Figura B na página 2-536) Como você pode ver, os componentes físicos e lógicos internos que compõem o PIC16CXX são semelhantes a qualquer outro microcontrolador com o qual você já tenha trabalhado. Portanto, escrever programas para o PIC não é mais difícil do que para qualquer outro processador. Lógica, e só lógica...

Obviamente, a arquitetura Harvard e o grande tamanho do comando tornam possível tornar o código PIC muito mais compacto do que para outros microcontroladores e aumentar significativamente a velocidade de execução do programa.

PIC REGISTER SET Todos os objetos de software com os quais o PIC pode trabalhar são registradores físicos. Para entender como o PIC funciona, você precisa entender quais registradores ele possui e como trabalhar com cada um deles. A Figura 4 mostra todos os registradores do PIC16C84. (foto 3.7.1 na pág.

2-541) Vamos começar com um conjunto de registros operacionais. Este conjunto consiste no registrador de endereço indireto (f0), registrador de timer/contador (f1), contador de programa (f2), registrador de status word (f3), registrador de seleção (f4) e registradores de entrada/saída ( f5, f6).

É imperativo que você entenda como usar esses registros, pois eles representam a maior parte dos objetos acessíveis por software do microcontrolador. Como precisamos entender principalmente "como gerenciar" e não "como é feito internamente", incluímos exemplos muito simples mostrando possíveis usos para cada registro.

f0...REGISTRO DE ENDEREÇO ​​INDIRETO IND0 O registro de endereço indireto f0 não existe fisicamente. Ele usa o registro de seleção f4 para selecionar indiretamente um dos 64 registros possíveis.

Qualquer instrução que usa f0 realmente acessa o registrador de dados apontado por f4.

f1... REGISTRO DE TEMPORIZADOR/CONTADOR TMR0 O registrador de cronômetro/contador TMR0 pode ser escrito e lido como qualquer outro registrador. TMR0 pode ser aumentado por um sinal externo aplicado ao pino RTCC, ou por uma frequência interna correspondente à frequência de comando.

A principal utilização do temporizador/contador é contar o número de eventos externos e medir o tempo. O sinal de uma fonte externa ou interna também pode ser pré-dividido usando o divisor programável integrado do PIC.

f2...PCL CONTADOR DE PROGRAMA O contador de programa (PC) é usado para gerar uma seqüência de endereços de célula ROM de programa contendo instruções de 14 bits. O PC tem capacidade de 13 bits, o que permite endereçar diretamente células ROM de 8Kx14. No entanto, para o PIC16C84, apenas células 1K estão fisicamente disponíveis. Os 8 bits inferiores do PC podem ser escritos e lidos através do registrador f2, os 5 bits superiores são carregados do registrador PCLATCH, que tem endereço 0Ah.

f3... STATUS REGISTER O registrador de status word é similar ao registrador PSW encontrado na maioria dos microprocessadores. Ele contém os bits de transporte, transporte decimal e zero, bem como bits de modo de habilitação e bits de paginação.

f4...FSR SELECT REGISTER Como já mencionado, o registro de seleção FSR é usado em conjunto com o registro de endereçamento indireto f0 para selecionar indiretamente um dos 64 registros possíveis. Fisicamente envolvidos estão 36 registradores de RAM de usuário localizados nos endereços 0Ch-2Fh e 15 registradores de serviço localizados em diferentes endereços.

f5, f6... REGISTROS DE E/S PORTA, PORTB Os registros f5 e f6 correspondem às duas portas de E/S disponíveis no PIC16C84. A porta A possui 5 bits PA4-PA0, que podem ser programados individualmente como entradas ou saídas usando o registrador TRISA no endereço 85h. A porta B tem 8 bits PB7-PB0 e é programada usando o registrador TRISB com endereço 86h. A configuração 1 no bit do registrador TRIS programa o bit da porta correspondente como uma entrada. Ao ler a porta, o estado imediato da saída é lido, ao escrever na porta, a gravação ocorre no registrador do buffer.

f8, f9...EEDATA, EEADR REGISTROS DE EEPROM O PIC16C84 possui uma EEPROM de 64 bytes embutida que pode ser lida e escrita usando o registrador de dados EEDATA e o registrador de endereço EEADR. Escrever um novo byte dura cerca de 10 ms e é controlado por um timer embutido. O controle de escrita e leitura é feito através do registrador EECON1, que possui o endereço 88h. Para controle adicional sobre a gravação, é utilizado o registrador EECON2, que possui o endereço 89h.

REGISTROS DE PROPÓSITO GERAL Os registradores de propósito geral são RAM estáticos localizados nos endereços 0Ch-2Fh. Um total de 16 células RAM podem ser usadas no PIC84C36.

SPECIAL REGISTERS W, INTCON, OPTION Finalmente, vamos olhar para os registradores PIC especiais. Estes incluem o registrador de trabalho W, usado como registrador do acumulador na maioria dos comandos, e os registradores INTCON e OPTION. O registrador de interrupção INTCON (endereço 0Bh) é usado para controlar os modos de interrupção e contém bits de habilitação de interrupção de várias fontes e sinalizadores de interrupção. O registro do modo OPTION (endereço 81h) é usado para definir as fontes de sinal para o prescaler e timer/counter, bem como para definir o fator de divisão do prescaler, a borda ativa do sinal para RTCC e a entrada de interrupção. Além disso, usando o registro OPTION, os resistores de terminação podem ser habilitados para os bits da porta B programados como entradas.

WDT WDT Watchdog O WDT watchdog é projetado para evitar consequências catastróficas de falhas acidentais do programa. Ele também pode ser usado em aplicações de temporização, como um detector de pulso perdido. A ideia de usar um cronômetro de vigilância é redefini-lo regularmente sob o controle de um programa ou de uma influência externa antes que seu atraso expire e o processador não seja redefinido. Se o programa estiver sendo executado normalmente, a instrução de redefinição do watchdog CLRWDT deve ser executada regularmente para evitar que o processador seja redefinido. Se o microprocessador acidentalmente ultrapassar os limites do programa (por exemplo, devido a uma forte interferência no circuito de energia) ou ficar preso em alguma parte do programa, o comando de reinicialização do watchdog provavelmente não será executado em tempo suficiente e ocorrerá uma reinicialização completa do processador, inicializando todos os registradores e colocando o sistema em condições de funcionamento.

O watchdog timer no PIC16C84 não requer nenhum componente externo e roda em um oscilador RC embutido, e a geração não para mesmo na ausência da frequência do clock do processador. O período típico de watchdog é de 18 ms. Você pode conectar um prescaler ao watchdog timer e aumentar seu período em até 2 segundos.

Outra função do watchdog timer é ligar o processador a partir do modo de baixo consumo de energia, no qual o processador é transferido pelo comando SLEEP. Neste modo, o PIC16C84 consome muito pouca corrente - cerca de 1 µA. Você pode alternar deste modo para o modo de trabalho por um evento externo de pressionar um botão, acionar um sensor ou por um cronômetro de vigilância.

GERADOR DE RELÓGIO Quatro tipos de gerador de relógio podem ser usados ​​para microcontroladores da família PIC: ressonador de quartzo XT ressonador de quartzo de alta frequência HS LP microconsumo RC cristal RC processo de programação do chip de circuito. Se as opções XT, HS e LP estiverem configuradas, um ressonador de quartzo ou cerâmica ou uma fonte externa de clock é conectado ao microcircuito, e se a opção RC estiver configurada, um resistor e um capacitor são conectados. Obviamente, um ressonador de cerâmica e, principalmente, de quartzo é muito mais preciso e estável, mas se não for necessária alta precisão de temporização, o uso de um gerador RC pode reduzir o custo e as dimensões do dispositivo.

CIRCUITO DE RESET A família PIC de microcontroladores usa um circuito interno de reinicialização em combinação com um temporizador de início do oscilador, eliminando a necessidade de um resistor e capacitor tradicionais na maioria das situações.

Basta conectar a entrada MCLR a uma fonte de energia. Se houver probabilidade de picos ou surtos quando a energia for ligada, é melhor usar um resistor de série de 100-300 ohms. Se o aumento de potência for muito lento (menos de 70 ms) ou se você estiver operando em velocidades de clock muito baixas, um circuito tradicional de redefinição de resistor e capacitor deve ser usado.

DA TEORIA À PRÁTICA...

Conhecemos brevemente os principais elementos que compõem os microcontroladores da família PIC. Agora vamos aos exercícios práticos.

Vamos escrever programas curtos, montá-los, escrevê-los em um microcircuito e ver o que acontece.

Para isso, precisamos do seguinte: - chip PIC16C84; - montador MPALC; - Programador PROPIC; - fonte de alimentação de corrente contínua ou alternada 18-36 V; - placa de prototipagem com dispositivo de exibição.

O diagrama esquemático do dispositivo de exibição, que usaremos para demonstrar o funcionamento dos comandos básicos do PIC16C84, é mostrado na Figura 5. (deve ser desenhado) Como você pode ver, o dispositivo consiste simplesmente em 8 LEDs com resistores limitadores de corrente e elementos de configuração de frequência. Cada saída dos microcontroladores da família PIC pode controlar diretamente o LED sem amplificadores adicionais.

O que é PIC?

Vamos começar descrevendo o código básico que será usado em nossos exemplos. Quando você começa a escrever código para seu projeto, a seção de cabeçalho (todo o código até a linha ORG 0) deve ser específica para seu aplicativo. A seção de cabeçalho define nomes lógicos para todos os recursos usados ​​no projeto - portas, variáveis ​​de bit e byte e registradores. Nosso cabeçalho também configura as portas de E/S para que todos os bits das portas A e B sejam configurados como saídas após a execução dos seguintes comandos: MOVLW INITA MOVWF TRISA MOVLW INITB MOVWF TRISB Quando a alimentação é ligada, o PIC16C84 configura todos os bits de portas A e B para entrada e começa a executar o programa a partir do endereço 000h. O código básico é mostrado na Figura 6. (precisa desenhar) Algo assim: ; Código base de exemplo para o programa de demonstração; LISTA P=16C84, E=2; ; Seção de cabeçalho; ; descrição dos registradores de operação TMR0 EQU 01h PC EQU 02h STATUS EQU 03h FSR EQU 04h ; registradores de E/S CNTRLPORT EQU 05h DATAPORT EQU 06h ; Localizações RAM SCRATCH EQU 0Ch DIGIT EQU 0Dh ; bits de registro STATUS C EQU 0h DC EQU 1h Z EQU 2h PD EQU 3h TO EQU 4h RP EQU 5h ; registradores de controle TRISA EQU 85h TRISB EQU 86h ; palavras de inicialização para portas de E/S INITA EQU B'00000000' INITB EQU B'00000000' ; ; Seção de trabalho; ; início do código executável ORG 0 GOTO BEGIN ; ORG 100h BEGIN MOVLW INITA MOVWF TRISA MOVLW INITB MOVWF TRISB ; ; Cole o código de exemplo aqui; FIM ; Consulte novamente a Figura 4, se necessário, enquanto discutimos o código básico. Primeiro, todas as linhas que começam com ";" são tratadas como comentários pelo montador. Passemos à expressão TMR0. Dissemos ao montador que toda vez que a palavra TMR0 for encontrada, ela deve substituir o valor 01h (01 hex). A palavra "EQU" significa igualdade. Assim, atribuímos a TMR0 o valor 1h. Como você pode ver na Figura 4, o registrador TMR0 realmente tem o endereço 1h. Você pode usar 01h toda vez que quiser endereçar o registrador TMR0, mas isso será muito mais difícil de depurar porque você deve lembrar que 01h significa RTCC o tempo todo. Você também pode ter dados iguais a 01h. O uso de nomes simbólicos elimina a ambigüidade e facilita a leitura do texto original. Você também pode ver as expressões para os registradores PC, STATUS e FSR. O nome PC corresponde ao endereço de registro 02h, o nome STATUS corresponde ao endereço de registro 03h, o nome FSR corresponde ao endereço de registro 04h e assim por diante. Também demos nomes para as portas de E/S, CNTRLPORT (05h) e DATAPORT (06h). As células RAM também podem ter nomes. Escolhemos os nomes "SCRATCH" para a célula em 0Ch e "DIGIT" para a célula em 0Dh. Se você ler este texto até o final, verá que não usamos o PC diretamente em nenhum lugar, embora este nome esteja definido. Não há erro nisso - você pode definir nomes e depois não usá-los, embora, é claro, não possa usar um nome se ele não tiver sido definido anteriormente. Não se preocupe muito com isso - o trabalho do montador é verificar o texto em relação a todas as regras e você receberá mensagens de erro se algo não corresponder. Você não apenas pode nomear registradores, mas também pode nomear bits individuais dentro de registradores. Preste atenção na seção que configura o registro STATUS. A Figura 7 mostra em que consiste o registrador STATUS. (Figura 3.9.1 na página 2-544) O símbolo C é definido como 0h porque C, ou CARRY, é o bit zero da palavra de status STATUS. Sempre que precisarmos verificar o bit CARRY (bit 0), usaremos o caractere pré-definido "C". Sempre que quisermos acessar o bit 2, ou o bit ZERO, usaremos o caractere "Z" ao invés de 02h. Você pode definir toda a estrutura de bits de um registrador, mesmo que não use todos eles posteriormente. Agora está claro para nós como os registradores são descritos e podemos passar para o código executável. Antes de iniciar o código executável, devemos definir a expressão ORG como 0. Este é um ponteiro para o montador que o código após esta expressão começa no endereço EEPROM zero. A expressão "ORG" é usada para alocar segmentos de código para diferentes endereços dentro do tamanho da EEPROM. Outra expressão ORG ocorre antes do rótulo BEGIN no endereço 100h, dado pela expressão ORG 100h. O código executável deve terminar com uma diretiva END, o que significa que não há comandos executáveis ​​seguindo esta diretiva. Ao ligar, o PIC16C84 salta para o endereço 000h. A primeira instrução a ser executada pelo processador é o comando GOTO BEGIN, que transferirá o controle para o endereço 100h e o trabalho adicional continuará a partir desse endereço. BEGIN é um nome de rótulo selecionável pelo usuário (rótulos sempre devem começar na posição da primeira linha) que o montador usa como referência. Durante a operação, o montador determina a localização do rótulo BEGIN e lembra que se esse nome for encontrado novamente, o endereço do rótulo será substituído por ele. Os comandos CALL e GOTO usam rótulos para links no texto de origem. Agora vamos ver os seguintes comandos executados pelo processador. A instrução MOVLW INITA carrega o valor atribuído ao nome INITA no registrador de trabalho W. Esse valor é especificado no cabeçalho e é igual a B'00000000', que é 00h. Os caracteres B' significam que os dados são fornecidos em formato binário. Pode-se escrever 0 (decimal) ou 0h (hexadecimal) no mesmo lugar e obter o mesmo resultado. A representação binária é mais conveniente de usar nos casos em que se espera uma operação com bits em um registrador. A seguinte instrução MOVWF TRISA carrega o valor do registro de trabalho W no registro de controle de configuração da porta A do TRISA. Definir um bit desse registrador como 0 especifica que o bit da porta A correspondente é uma saída. No nosso caso, todos os bits da porta A são definidos como saídas. Note que a porta A possui apenas 5 bits, e os 3 bits superiores do valor escrito no registrador TRISA, que também possui 5 bits, não são utilizados. Se quiséssemos, por exemplo, definir o bit inferior da porta A como uma entrada, definiríamos o valor de INITA como B'00000001' na seção de descrição do registrador. Se durante o programa precisarmos redefinir a atribuição de bits de porta individuais, por exemplo, durante a transmissão bidirecional, é mais conveniente especificar todas as palavras de configuração necessárias na seção de descrição, como fizemos para INITA e INITB. Os próximos dois comandos MOVLW INITB e MOVWF TRISB definem a configuração da porta B. Poderíamos economizar dinheiro não escrevendo o comando MOVLW INITB, porque em nosso caso INITB também é 0h. No entanto, não fizemos isso porque pode levar a erros difíceis de encontrar se posteriormente precisarmos alterar a atribuição de qualquer bit. Em vez de alterar apenas um bit em uma porta, serão alterados dois bits com o mesmo número em duas portas. Portanto, enquanto o programa não for concluído, não é desejável fazer tais economias, embora ao final, na etapa de otimização do código, tais repetições possam ser removidas. O que já fizemos? 1. Com as linhas EQU, informamos ao montador quais nomes de símbolos usaríamos. 2. Definimos o vetor de reset para o endereço 000h. 3. Definimos o endereço inicial da execução do programa do rótulo BEGIN para o endereço 100h. 4. Configuramos todos os bits das portas A e B como saídas. Agora podemos inserir o código de exemplo entre o cabeçalho e o final do nosso código base, em vez da linha comentada "Insira o código de exemplo aqui". Vamos substituir esta linha por comandos reais, montar o programa resultante, gravá-lo em um microcircuito, reorganizar o microcircuito em uma placa de prototipagem com um dispositivo de indicação e ver o que acontece. PRIMEIRO PROGRAMA Para o primeiro programa, precisamos apenas de três comandos: MOVLW k MOVWF f GOTO k Já usamos esses comandos no cabeçalho do nosso código básico. A instrução MOVLW carrega um byte literal ou constante no registrador de trabalho W. A seguinte instrução MOVWF move um byte do registrador de trabalho W para o registrador dado f. O comando GOTO transfere o controle para o endereço k. O programa a seguir grava o valor 01010101 no registrador de trabalho W e, em seguida, grava seu conteúdo na porta B. Depois de iniciar este programa, você verá o brilho de quatro LEDs. MOVLW B'01010101' ;carrega 01010101 no registrador W MOVWF DATAPORT ;escreve W na porta B (DATAPORT) GOTO $ ;loop infinito A diretiva do montador "$" significa o valor atual do contador de programa (PC). Portanto, o comando GOTO $ significa pular para onde estamos atualmente. Esse loop é infinito, pois não há outra maneira (além da interrupção) de sair dele. O comando GOTO $ geralmente é usado para interromper o código durante a depuração. MONTAGEM Utilizaremos o macro assembler MPALC, pois é distribuído gratuitamente pela MICROCHIP, e contém todas as funcionalidades de que necessitamos. Caso prefira utilizar outro montador, utilize sua descrição para montar nosso programa. A linha de comando para executar o montador de macro MPALC é muito simples: MPALC <source_text> [options] onde <source_text> é o nome do arquivo que contém o texto fonte a ser montado, e pode haver muitas opções. A descrição completa das opções é dada pelo montador na opção /? A princípio, não precisamos especificar nenhuma opção. A única coisa que ainda precisamos fazer é especificar o tipo de processador para o qual nosso programa foi escrito e o tipo de erro que o montador deve produzir. Isso é feito usando a diretiva montadora LIST (Fig. A extensão de arquivo de origem padrão é .ASM. Outra extensão deve ser especificada explicitamente. Então, pegue o arquivo EXAMPLE.ASM contendo o texto mostrado na Figura 6, e execute o montador: MPALC EXAMPLE Como resultado do assembler, são criados arquivos com as seguintes extensões: * Arquivo de objeto OBJ * Arquivo de listagem LST * Erro ERL e arquivo de aviso * arquivo de símbolo SYM O arquivo de objeto é criado em formato hexadecimal e contém código que deve ser gravado no chip. O arquivo de listagem contém a listagem completa do programa junto com o código de inicialização. O arquivo de erros e avisos registra todos os erros e avisos que ocorrem durante o processo de montagem. Eles também estão presentes no arquivo de listagem. A tabela de rótulos simbólicos, que é gravada em um arquivo simbólico, destina-se a trabalhos posteriores com o depurador. Após o processamento do nosso programa, o montador deveria ter emitido a mensagem "Nenhum erro foi encontrado pelo montador", significando que nenhum erro foi encontrado. O arquivo de erro não deveria ter sido criado. Se o seu montador gerou alguma mensagem de erro, ou os arquivos EXAMPLE.OBJ, EXAMPLE.LST e EXAMPLE.SYM não foram criados, verifique novamente se você fez tudo corretamente. PROGRAMAÇÃO Agora você tem um arquivo objeto, EXAMPLE.OBJ, que deve ser gravado no chip. A gravação é realizada com a ajuda do programador e do programa PROPIC. A linha de comando para executar o programa PROPIC é semelhante à linha para executar o montador: PROPIC <object_file> [options] onde <object_file> é o nome do arquivo objeto criado pelo montador e as opções determinam o modo de gravação para o chip. A lista de opções é dada pela opção /? Como no caso do assembler, inicialmente não precisamos especificar nenhuma opção. Pegue o programador, conecte seu cabo ao conector da porta da impressora (na primeira porta da impressora se sua máquina tiver 2 ou 3 portas da impressora).

O que é PIC? O que é PIC?

Pegue uma fonte de alimentação de 18...36 V CC ou CA capaz de fornecer até 100 mA e conecte-a ao programador. Prepare o chip PIC16C84, mas não o insira ainda no soquete do programador. Agora você pode iniciar o programador:

PROPIC EXEMPLO { deve ser inserido aqui sobre como funciona o programa do programador. } Agora você tem um chip programado e pode ver como ele vai funcionar. TESTE

Pegue uma breadboard e monte nela o circuito mostrado na Figura 5. Não há partes críticas neste circuito. Todos os resistores podem ter um desvio nominal de + -30%, LEDs - qualquer um com uma corrente nominal não superior a 10 mA. Para instalar o chip PIC16C84, use o soquete. Para alimentar nosso circuito, você pode usar a mesma fonte de alimentação que usou ao programar o microcircuito. Você também pode usar uma fonte de alimentação de laboratório de 5 V. Nesse caso, o estabilizador KR142EH5A, a ponte de diodos e o capacitor eletrolítico não são necessários e uma tensão de 5 V é fornecida ao ponto 2 do diagrama.

Após a montagem do circuito, verifique cuidadosamente se tudo está montado corretamente, os LEDs estão instalados na polaridade correta, a alimentação do microcircuito está chegando aos pinos corretos e na polaridade correta. Pegue o chip programado, insira-o no soquete da breadboard e ligue a energia. 4 LEDs devem acender (depois de um). Seu primeiro programa está funcionando! CONFIGURAÇÃO DE COMANDO PIC

Agora que você aprendeu a montar um programa, gravá-lo em um chip e testá-lo em uma breadboard, podemos passar a descrever todo o conjunto de instruções para os microcontroladores da família PIC. Continuaremos a focar no PIC16C84, embora quase tudo o que falaremos seja aplicável a outros microcontroladores da família PIC. No decorrer da descrição, faremos pequenos programas para entender melhor como funcionam determinados comandos. Você pode conectar esses programas ao código base, montá-los, colocá-los em um chip e conectar o chip a uma placa de ensaio e ver como funciona. Se tudo estiver absolutamente claro para você no próximo parágrafo, você não pode tentar, mas vá direto para o próximo parágrafo. NOP

Vamos começar nossa descrição com o comando NOP. É difícil ver a saída desse comando porque ele não faz nada. Esta instrução é geralmente usada em loops de atraso de tempo ou para ajustar o tempo de execução de uma seção específica do programa. CLRW

Este comando limpa o registrador de trabalho W. Vamos adicionar uma linha ao nosso exemplo e ver se todos os LEDs acendem.

MOVLW B'01010101' ;carrega 01010101 no registrador W

CLRW ;limpa registrador W

MOVWF DATAPORT ;escreve W na porta B (DATAPORT)

GOTO $ ;loop para sempre CLRF f

O CLRF faz para qualquer registro o que o CLRW faz para o registro de trabalho W. O comando a seguir definirá a porta B como 0h.

CLRF DATAPORT ;limpa porta B (DATAPORT) SUBWF f,d ADDWF f,d

Subtraia o registrador de trabalho W de qualquer registrador f. Este comando também define os sinalizadores CARRY, DIGIT CARRY e ZERO no registrador STATUS. Depois de executar o comando, você pode verificar esses sinais e determinar se o resultado é zero, positivo ou negativo. O caractere d após a vírgula significa o endereço onde será colocado o resultado do comando. Se d=0, então o resultado é colocado no registrador de trabalho W, e se d=1, então o resultado é escrito no registrador f usado no comando.

Em nosso exemplo, o valor 0FFh é carregado no registrador SCRATCH, e o valor 01h é carregado no registrador W. Em seguida, o comando SUBWF é executado e o resultado é exibido nos LEDs.

MOVLW 0FFh ;carrega 0FFh no registrador W

MOVWF SCRATCH ;carrega o conteúdo de W no registrador SCRATCH

MOVLW 01h ;carrega 01h no registrador W

SUBWF SCRATCH,0 ;os LEDs de subtração devem exibir 11111110 onde 1 está desligado e 0 está ligado.

O comando ADDWF funciona exatamente da mesma maneira, adicionando o registro de trabalho W a qualquer registro f e configurando os mesmos sinalizadores. O exemplo a seguir demonstra como o comando ADDWF funciona.

MOVLW 0h ;carrega 0 no registrador W

MOVWF SCRATCH ;carrega o conteúdo de W no registrador SCRATCH

MOVLW 1h ;carrega 01h no registrador W

ADDWF SCRATCH,0 ;os LEDs de adição devem exibir 00000001.

Observe que há um "0" na frente do valor FFh no exemplo de subtração. O símbolo "0" para montador significa que é um número, não um rótulo. Se não houvesse o símbolo 0, o montador começaria a procurar um rótulo com o nome FFh, que não existe neste programa e, portanto, ocorreria um erro. o caractere "h" após o valor 0FF significa que o valor é especificado no formato hexadecimal. SUBLW k ADDLW k

Esses dois comandos funcionam exatamente da mesma maneira descrita acima, exceto que a operação é executada entre o registrador de trabalho W e a constante de byte especificada no comando. O comando SUBLW subtrai o registro de trabalho W da constante k, e o comando ADDLW adiciona o registro de trabalho W à constante k. Esses comandos também definem os sinalizadores CARRY, DIGIT CARRY e ZERO. O resultado do comando é colocado no registrador de trabalho W. O exemplo a seguir decrementará SCRATCH em 5.

MOVLW 0FFh ;carrega 0FFh no registrador W

MOVWF SCRATCH ;carrega o conteúdo de W no registrador SCRATCH

SUBLW 05h ;subtrai 5 do registro de trabalho

MOVWF SCRATCH ;carrega novo conteúdo de SCRATCH LEDs devem exibir 11111010. DECF f,d INCF f,d

O comando DECF decrementa o registrador dado em 1, e o INCF incrementa o registrador dado em 1. O resultado pode ser colocado de volta no registrador dado (para d=1) ou no registrador de trabalho W (para d=0). Como resultado da execução desses comandos, o sinal ZERO pode ser definido no registrador STATUS. Aqui está um exemplo de uso desses comandos:

MOVLW 0FFh ;carrega 0FFh no registrador W

MOVWF SCRATCH ;carrega o conteúdo de W no registrador SCRATCH

DECF SCRATCH,0 ;decrementa SCRATCH em 1

Este exemplo incrementará SCRATCH de 0 a 1.

CLRF SCRATCH ;limpar SCRATCH

INCF SCRATCH,0 ;Incrementa SCRATCH em 1 IORWF f,d ANDWF f,d XORWF f,d

Esses três comandos executam operações lógicas OR, AND e EXCLUSIVE OR. A operação OR de adição lógica é usada com mais frequência para definir bits individuais em registradores. Esses bits são então redefinidos por uma operação lógica AND. Quando uma operação EXCLUSIVE OR é executada em bits idênticos, o resultado é 0. Portanto, a operação EXCLUSIVE OR é freqüentemente usada para verificar o status (definido ou limpo) de certos bits em um registro. O procedimento a seguir definirá o bit 1 na porta B usando o comando IORWF:

CLRF DATAPORT ;limpa porta B

MOVLW B'00000010' ;definir máscara no registrador W

IORWF DATAPORT,1 ;definir bits na porta B pela máscara W

GOTO $ ;loop forever Os LEDs devem mostrar 00000010. Agora limpe 2 bits com a instrução ANDWF:

MOVLW B'11111111' ;Carrega 0FFh no registrador W

MOVWF DATAPORT ;configura todos os bits na porta B

MOVLW B'00000101' ;definir máscara no registrador W

ANDWF DATAPORT,1 ; limpa bits na porta B pela máscara W

GOTO $ ;loop forever Os LEDs devem mostrar 00000101.

Digamos que usamos o registro SCRATCH e queremos saber se é igual a 04h. Este é um bom momento para usar o comando XORWF:

MOVLW 04h ;carrega 04h no registrador W

MOVWF SCRATCH ;carrega o registrador W em SCRATCH

XORWF SCRATCH,0 ; verifique se W e SCRATCH são iguais Como SCRATCH e W são iguais, o resultado da operação XORWF é zero (todos os LEDs estão acesos). O registrador STATUS definirá o bit ZERO, que o programa real poderá então verificar e processar. IORLW k ANDLW k XORLW k

Esses três comandos executam as mesmas ações que suas contrapartes descritas acima, exceto que a operação é executada entre o registro de trabalho W e a máscara especificada no comando. O resultado da execução do comando é colocado no registrador de trabalho W. Por exemplo:

MOVLW 0FFh ;carrega 0FFh no registrador W

ANDLW 040h ;sair do 6º bit Os LEDs mostrarão 01000000.

MOVLW 10h ;carrega 10h no registrador W

IORLW 09h ;definir bits 0 e 3 LEDs mostrarão 00011001.

MOVLW B'00100000' ;carrega 40h no registrador W

XORLW B'11111111' ;inverter W LEDs mostram 11011111. MOVF f,d

Este comando é usado principalmente para mover um registrador para o registrador de trabalho W (d=0). Se você definir d = 1, este comando carregará o registro em si mesmo, mas o bit ZERO no registro de STATUS será definido de acordo com o conteúdo do registro. Por exemplo, queremos carregar no registrador SCRATCH 0Fh e então carregar o registrador SCRATCH no registrador de trabalho W.

MOVLW 0Fh ;Carrega 0Fh no registrador de trabalho W

MOVWF SCRATCH ;carrega o registrador W em SCRATCH

CLRW ;limpar W

MOVF SCRATCH,0 ;carrega SCRATCH no registrador W

MOVF SCRATCH,1 O bit ZERO do registrador STATUS será definido se a condição for atendida (SCRATCH = 0h). COMF f,d

Este comando inverte qualquer registro dado. Quando d=0, o resultado é inserido no registrador de trabalho W, e quando d=1, o conteúdo do registrador especificado é invertido. Como exemplo, vamos inverter o valor 01010101:

MOVLW B'01010101' ;carrega 01010101 no registrador W

MOVWF SCRATCH ;carrega o registrador W em SCRATCH

COMF SCRATCH,0 ;os LEDs SCRATCH invertidos mostrarão 10101010. DECFSZ f,d INCFSZ f,d

À medida que você ganha alguma experiência com o montador PIC, você usará esses comandos com muita frequência. Com d=1, a instrução DECFSZ decrementa em um, e INCFZ incrementa o registrador especificado em um e pula a próxima instrução se o registrador se tornar zero. Com d=0, o resultado é escrito no registrador W e o próximo comando é ignorado se o registrador de trabalho W tornar-se zero. Esses comandos são usados ​​para gerar atrasos de tempo, contadores, loops, etc. Aqui está um exemplo típico de uso de um loop: START

MOVLW 0FFh ;carrega FFh no registrador W

MOVWF SCRATCH ;carrega o registrador W no SCRATCH LOOP

DECFSZ SCRATCH,1 ;decrementa SCRATCH em 1

GOTO LOOP ;e volta até = 0

MOVF DIGIT ;carrega o registrador DIGIT em W

MOVWF DATAPORT ;saída para LEDs

DECF DIGIT,1 ;decrementa o registrador DIGIT em 1

GOTO START ;vá para o início Como resultado, os LEDs piscarão em taxas diferentes. O LED de ordem inferior piscará com mais frequência e o LED de ordem superior piscará menos. Com uma frequência de clock de 4 MHz, a frequência de intermitência do LED de maior ordem será de aproximadamente 8 Hz, e cada próximo piscará duas vezes mais. Agora vamos descobrir como fizemos isso. O comando DECFSZ aqui funciona em um loop de atraso que consiste em dois comandos - DECFSZ e GOTO LOOP. Como pré-carregamos o registro SCRATCH com 0FFh, esse loop será executado 255 vezes até que SCRATCH se torne zero. Com uma frequência de clock de 4 MHz, isso dá um atraso de 1 µs/instrução * 2 instruções * 255 = 510 µs. No registrador DIGIT, não escrevemos nada antes, então pode haver qualquer valor que seja exibido nos LEDs na primeira passagem. Em seguida, o registrador DIGIT é decrementado em 1 e o loop se repete desde o início. Como resultado, o registrador DIGIT itera sobre todos os valores em 256 ciclos, ou seja, por aproximadamente 130 ms.

O mesmo código pode ser utilizado com a instrução INCFSZ alterando o valor carregado no registrador SCRATCH de FFh para 0h. Os LEDs piscarão da mesma forma se o comando DECF for substituído pelo comando INCF. SWAF f,d

Este comando troca nibbles em qualquer registrador. Como nos outros comandos, quando d=0 o resultado é escrito no registrador de trabalho W, e quando d=1 permanece no registrador. Aqui está um exemplo simples de uso deste comando:

MOVLW B'00001111' ;carrega 0Fh no registrador W

MOVWF SCRATCH ;carrega o registrador W em SCRATCH

SWAPF SCRATCH,0 ;os LEDs de troca de nibbles mostrarão 11110000. RRF f,d RLF f,d

Existem duas instruções de deslocamento no montador do PIC - um deslocamento à direita no bit CARRY de qualquer registrador RRF e um deslocamento à esquerda no bit CARRY de qualquer registrador RRF. Como nos outros comandos, quando d=0 o resultado do deslocamento é escrito no registrador W, e quando d=1 permanece no registrador. As instruções de deslocamento são usadas para realizar operações de multiplicação e divisão, para transferência de dados seriais e para outros fins. Em todos os casos, o bit deslocado do registrador de 8 bits é escrito no bit CARRY do registrador STATUS, e o bit CARRY é escrito na outra extremidade do registrador, dependendo da direção do deslocamento. O shift para a esquerda escreve RLF CARRY no bit menos significativo do registrador, e o shift para a direita escreve RRF CARRY no bit mais significativo do registrador.

CLRF STATUS ;limpa registro de STATUS

MOVLW 0FFh ;carrega 0FFh no registrador W

MOVWF SCRATCH ;carrega o registrador W em SCRATCH

RRF SCRATCH,0 ;deslocar para a direita Os LEDs devem mostrar 01111111 porque CARRY foi carregado no bit alto. Agora vamos para a esquerda:

CLRF STATUS ;limpa registro de STATUS

MOVLW 0FFH ;carrega 0FFh no registrador W

MOVWF SCRATCH ;carrega o registrador W em SCRATCH

RLF SCRATCH,1 ;deslocar para a esquerda os LEDs devem mostrar 11111110. BCF f,b BSF f,b

Os comandos Clear BCF Bit e Set BSF Bit são usados ​​para operar em bits individuais em registradores. O parâmetro b significa o número de bits com o qual a operação é realizada e pode assumir valores de 0 a 7. Vamos tentar acender o LED usando o comando BCF:

MOVLW 0FFh ;carrega 0FFh no registrador W

MOVWF DATAPORT ;desliga os LEDs

BCF DATAPORT,7 ;limpa bit 7 na porta B

GOTO $ ;loop forever Isso acenderá o LED correspondente ao bit 7. Lembre-se de que fizemos a mesma coisa com o uso de uma máscara e o comando ANDWF. A diferença é que as instruções ANDWF e IORWF exigem que a máscara seja pré-formada e armazenada em algum registrador, mas ao mesmo tempo são capazes de ativar ou desativar vários bits ao mesmo tempo. As instruções BCF e BSF operam em apenas um bit. Além disso, as instruções BCF e BSF não alteram o registrador de STATUS, portanto são frequentemente utilizadas nos casos em que uma verificação posterior do registrador de status não é necessária. BTFSC f,b BTFSS f,b

As instruções de salto condicional BTFSC e BTFSS verificam o status de um determinado bit em qualquer registrador e pulam a próxima instrução dependendo do resultado. O comando BTFSC ignora o comando se o bit especificado estiver limpo e o comando BTFSS se estiver definido. Aqui está um exemplo simples:

MOVLW 0FFh ;carrega 0FFh no registrador W

MOVWF DATAPORT ;desliga os LEDs

MOVLW B'00000001' ;carrega 01h no registrador W

MOVWF SCRATCH ;carrega o registrador W no SCRATCH LOOP

BTFSS CNTRLPORT,0 ;verifica bit 0 em CNTRLPORT

GOTO LOOP ;espera até que o bit 0 seja definido

BCF DATAPORT,7 ;liga o LED

GOTO $ ;loop forever Este exemplo verifica o bit 0 da porta A (pino 17 do chip) e, se este pino estiver definido como alto, liga o LED. Tente substituir BTFSS por BTFSC neste exemplo. O LED acenderá quando o bit 0 da porta A for baixo.

Anteriormente, mencionamos a possibilidade de verificar os bits de status no registrador STATUS. Isso também é feito com os comandos BTFSS e BTFSC:

;Verifica o bit CARRY

BTFSS STATUS,C ; se C estiver definido, pule GOTO

VÁ PARA ONDE_ SEMPRE ; O bit ZERO é verificado da mesma forma:

;Verificar bit ZERO

BTFSS STATUS,Z ; se Z estiver definido, pule GOTO

VÁ PARA ONDE_ SEMPRE ; É seguro dizer que você usará esses exemplos com muita frequência. LIGAR k RETORNAR

Estes dois comandos destinam-se a trabalhar com sub-rotinas. O comando CALL é usado para pular para a sub-rotina no endereço especificado no comando e o comando RETURN é usado para retornar da sub-rotina. Ambos os comandos são executados em 2 ciclos. O endereço no qual o comando CALL foi localizado é armazenado em registradores especialmente organizados chamados de pilha. Esses registradores não são acessíveis e são usados ​​apenas para chamadas e retornos de sub-rotina. Profundidade da pilha, ou seja o número de registradores especiais é 8. Portanto, não mais do que 8 chamadas de sub-rotinas aninhadas podem ser feitas a partir do programa principal. Após o retorno da sub-rotina, a execução continua com a próxima instrução após a CALL. O registro W e o registro STATUS não são salvos quando uma sub-rotina é chamada, portanto, se necessário, eles podem ser armazenados em locais de memória separados. Aqui está um exemplo simples de uso de uma sub-rotina: START

BSF DATAPORT,7 ; desliga o LED

CALL TURNON ;chamar sub-rotina

GOTO START ;ir para iniciar TURNON

BCF DATAPORT,7 ;liga o LED

RETURN ; retorno da sub-rotina Como resultado, o LED piscará em uma frequência de cerca de 150 kHz. RETLW para RETFIE

Existem mais dois comandos para retornar de sub-rotinas. O comando RETLW retorna no registrador de trabalho W a constante especificada neste comando, e o comando RETFIE habilita as interrupções. O comando RETLW é freqüentemente usado para criar tabelas de valores. Deixe o registro de trabalho W conter um deslocamento desde o início da tabela. Então você pode obter o elemento desejado pelo seguinte procedimento:

MOVLW 02h ;definir offset

CALL SHOWSYM ;chamar sub-rotina

MOVWF DATAPORT ;saída do elemento da tabela para a porta B

GOTO $ ;loop para sempre SHOWSYM

ADDWF PC ;calcula deslocamento da tabela

RETLW 0AAh ;1º elemento da tabela

RETLW 0BBh ;2º elemento da tabela

RETLW 0CCh ;3ª entrada na tabela Os LEDs devem exibir 10111011. COMANDOS ESPECIAIS

Resta mencionar dois comandos especiais - CLRWDT e SLEEP. O comando CLRWDT destina-se a redefinir o temporizador watchdog, cuja finalidade já discutimos. Esta instrução deve estar presente em tais seções do programa para que o tempo de execução do programa entre duas instruções CLRWDT adjacentes não exceda o timer do watchdog. O comando SLEEP destina-se a colocar o processador no modo de baixo consumo de energia. Depois de executar este comando, o gerador de clock do processador é desligado e o processador pode ser colocado de volta no modo de operação pela entrada de reinicialização, pelo watchdog timer ou por interrupção. CONCLUSÃO

Este artigo não pretende ser uma descrição completa das capacidades do microcontrolador PIC16C84. Para fazer isso, você deve ler sua descrição técnica. Além disso, para entender todas as possibilidades do montador MPALC, macros, opções, etc. Será útil para você ler o manual dele. Para definir corretamente todas as opções necessárias, você deve ler as instruções de uso do programador. Exemplos de aplicação de microcontroladores lhe darão uma base sólida para projetos independentes. Se você tiver alguma dúvida, entre em contato com o centro de suporte regional para produtos MICROCHIP no seguinte endereço: Moscow, Rubtsovskaya nab. 3 escritório 502, tel. (095)-263-9930 Aqui eles estarão sempre prontos para tirar todas as suas dúvidas. Você também pode obter novas versões de software, exemplos de aplicativos e informações de referência no BBS regional ligando para (095)-162-8405

AD micro BBS

Publicação: N. Bolshakov, rf.atnn.ru

Veja outros artigos seção Microcontroladores.

Leia e escreva útil comentários sobre este artigo.

<< Voltar

Últimas notícias de ciência e tecnologia, nova eletrônica:

Máquina para desbastar flores em jardins 02.05.2024

Na agricultura moderna, o progresso tecnológico está se desenvolvendo com o objetivo de aumentar a eficiência dos processos de cuidado das plantas. A inovadora máquina de desbaste de flores Florix foi apresentada na Itália, projetada para otimizar a etapa de colheita. Esta ferramenta está equipada com braços móveis, permitindo uma fácil adaptação às necessidades do jardim. O operador pode ajustar a velocidade dos fios finos controlando-os a partir da cabine do trator por meio de um joystick. Esta abordagem aumenta significativamente a eficiência do processo de desbaste das flores, proporcionando a possibilidade de adaptação individual às condições específicas do jardim, bem como à variedade e tipo de fruto nele cultivado. Depois de testar a máquina Florix durante dois anos em vários tipos de frutas, os resultados foram muito encorajadores. Agricultores como Filiberto Montanari, que utiliza uma máquina Florix há vários anos, relataram uma redução significativa no tempo e no trabalho necessários para desbastar flores. ... >>

Microscópio infravermelho avançado 02.05.2024

Os microscópios desempenham um papel importante na pesquisa científica, permitindo aos cientistas mergulhar em estruturas e processos invisíveis aos olhos. Porém, vários métodos de microscopia têm suas limitações, e entre elas estava a limitação de resolução ao utilizar a faixa infravermelha. Mas as últimas conquistas dos pesquisadores japoneses da Universidade de Tóquio abrem novas perspectivas para o estudo do micromundo. Cientistas da Universidade de Tóquio revelaram um novo microscópio que irá revolucionar as capacidades da microscopia infravermelha. Este instrumento avançado permite ver as estruturas internas das bactérias vivas com incrível clareza em escala nanométrica. Normalmente, os microscópios de infravermelho médio são limitados pela baixa resolução, mas o desenvolvimento mais recente dos pesquisadores japoneses supera essas limitações. Segundo os cientistas, o microscópio desenvolvido permite criar imagens com resolução de até 120 nanômetros, 30 vezes maior que a resolução dos microscópios tradicionais. ... >>

Armadilha de ar para insetos 01.05.2024

A agricultura é um dos sectores-chave da economia e o controlo de pragas é parte integrante deste processo. Uma equipe de cientistas do Conselho Indiano de Pesquisa Agrícola-Instituto Central de Pesquisa da Batata (ICAR-CPRI), em Shimla, apresentou uma solução inovadora para esse problema: uma armadilha de ar para insetos movida pelo vento. Este dispositivo aborda as deficiências dos métodos tradicionais de controle de pragas, fornecendo dados sobre a população de insetos em tempo real. A armadilha é alimentada inteiramente por energia eólica, o que a torna uma solução ecologicamente correta que não requer energia. Seu design exclusivo permite o monitoramento de insetos nocivos e benéficos, proporcionando uma visão completa da população em qualquer área agrícola. “Ao avaliar as pragas-alvo no momento certo, podemos tomar as medidas necessárias para controlar tanto as pragas como as doenças”, diz Kapil ... >>

Notícias aleatórias do Arquivo

Novo avião de combate Airbus 25.01.2019

A Dassault Aviation e a Airbus assinaram o primeiro contrato de pesquisa para o Future Air Combat System (SCAF), que se concentrará em aeronaves de combate de última geração, disseram as empresas em comunicado na quarta-feira.

O lançamento da pesquisa conjunta foi anunciado pela ministra francesa das Forças Armadas Florence Parly e sua colega da Alemanha Ursula von der Leyen. O trabalho de pesquisa de dois anos está previsto para começar em 20 de fevereiro de 2019 e custará € 65 milhões.

"Hoje, na presença de um colega da Alemanha, comunico a vocês sobre o primeiro contrato sobre o conceito e arquitetura do SCAF", disse Parley. Por sua vez, von der Leyen chamou a atenção para o fato de que França e Alemanha estão "aprofundando a cooperação em seus próprios interesses e no interesse da União Européia".

Como parte da pesquisa, está planejado determinar o tamanho e o design da futura aeronave militar, bem como a velocidade máxima, equipamentos técnicos etc.

Outras notícias interessantes:

▪ Controle o brilho sem um controle deslizante

▪ Sabor eterno de goma de mascar

▪ Exoesqueleto para forças especiais

▪ Recursos adicionais do sensor de toque B6TS

▪ Água purificada pode se tornar tóxica

Feed de notícias de ciência e tecnologia, nova eletrônica

 

Materiais interessantes da Biblioteca Técnica Gratuita:

▪ seção do site Fundamentos de primeiros socorros (OPMP). Seleção de artigos

▪ artigo Não tenha vergonha! Qual é o problema? Este é um caminho glorioso para muitos. expressão popular

▪ artigo Em que rio corre a água salgada? Resposta detalhada

▪ artigo Periscópio para visibilidade total. Laboratório de Ciências para Crianças

▪ artigo Sistema de controle de bordo com saída de voz de informações. Enciclopédia de rádio eletrônica e engenharia elétrica

▪ artigo Corrente de deslocamento e seu campo magnético. Enciclopédia de rádio eletrônica e engenharia elétrica

Deixe seu comentário neste artigo:

Имя:


E-mail opcional):


Comentário:





Todos os idiomas desta página

Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site

www.diagrama.com.ua

www.diagrama.com.ua
2000-2024