Tuesday 12 September 2017

Moving Average Pic18f


Nesta publicação, eu tento dar uma breve visão geral do microcontrolador PIC18F4550, suas instruções e a implementação da linguagem de montagem. Consulte a seção 26.1 na folha de dados 18F4550 para obter uma lista completa e uma explicação das instruções. Um microcontrolador (também MCU ou C) é um computador em um chip. É um tipo de microprocessador que enfatiza a auto-suficiência e a relação custo-eficácia, em contraste com um microprocessador de uso geral (o tipo usado em um PC). Além de todos os elementos aritméticos e lógicos de um microprocessador de propósito geral, o microcontrolador geralmente também integra elementos adicionais, como somente leitura e memória de leitura e gravação, e interfaces de saída de entrada. Não poderia ter dito melhor isso. O microcontrolador PIC18F4550 realmente tem somente leitura e memória de leitura e gravação. O primeiro, flash ROM. Pode ser realmente apagado e reprogramado durante o desenvolvimento. No entanto, durante a execução do código, esta memória é usada somente de leitura. O último inclui registros (e provavelmente outras coisas, as sugestões 8211 são bem-vindas). O microcontrolador tem pinos de 35 () IO. Esses pinos são dispostos nas portas A. B. C. D e E. Esses pinos são utilizáveis ​​para uma combinação de entradas, saídas, conversão analógico-digital ou digital para analógico e PWM. Além disso, você pode usar esses pinos para comunicação serial, comunicação USB ou para disparar interrupções. Mas o campo de vendas termina aqui. Agora você precisa considerar que você é responsável por garantir que tudo sobre esse chip funcione exatamente como você deseja. Os microcontroladores não cometem erros. Pessoas fazem. É uma boa ideia visualizar o processo de programação de um microcontrolador PIC: estou confiante de que depois de colocar seus olhos nesta festa visual, você está completamente pronto para assumir o monstro da montagem PIC. Mas, no caso de você não estar completamente preparado, descreverei os conceitos usando palavras. A analogia é que a programação de um PIC é semelhante a ter que mover objetos dentro e fora de um espaço de armazenamento com muitos compartimentos usando apenas uma mão. Em tal cenário, você pode fazer uma das várias coisas: pegue um objeto com a mão Coloque um objeto na mão em um poço de cuba Pegue um objeto de um cubículo com sua mão Solte o objeto da sua mão De forma semelhante, um PIC consiste em Um único registro de trabalho W. um arquivo de registro com vários registros legíveis (o termo geral para um desses registros de arquivos é F) e vários dados que você pode ler e escrever. Os registros no arquivo de registro alteram a operação do microcontrolador8217s, dependendo dos valores armazenados neles. Você pode fazer uma das várias coisas: 1) Escreva um número para W 2) Coloque o número que você tem em W em algum registro em F 3) Recupere um número de algum registro em F e coloque-o em W 4) Limpe o número de W Infelizmente, é aqui que o exemplo do compartimento começa a tornar-se um pouco inútil. Por exemplo, você também pode trapacear e simplesmente mover o valor de um registro para outro sem usar seu registro de trabalho (diretamente de um cubículo para outro sem usar sua mão). E as instruções do tipo 8217s, 70 para ir. Adição, subtração, etc. É importante ter em mente que enquanto o 18F4550 é um dispositivo de 16 bits (as instruções são 16 bits, lt l o n g gt), os registros consistem apenas em 8 bits. Sim, sua mão tem apenas 8 dedos. Existem três tipos de instruções (folha de dados 18F4550 usada como referência). Orientado a bytes: estas instruções envolvem operações em todos os 8 bits de um registro. Estes incluem mover W (o registro de trabalho) para um registro diferente, adicionando W e um registro diferente e incrementando um registro. Por exemplo, uma instrução orientada por bytes pode ser usada para ajustar todos os pinos em PORT D para HIGH ao mesmo tempo. Orientado a bit: existem 5 dessas instruções. Eles executam operações em bits únicos dentro de um registro. Isso geralmente é útil com IO, como quando uma saída desejada precisa ser definida alta, baixa ou alternada em um único pino. Controle: estas instruções não influenciam diretamente os registros, mas executam outras ações para direcionar o fluxo do programa. Estes incluem ramos (condicionais), operações de pilha, um comando de reinicialização e NOP, uma instrução que não faz nada. Por favor, consulte a folha de dados (novamente) e veja as instruções. A maioria deles é bastante simples de entender. Por exemplo, vou explicar a instrução Add ADDWF. A folha de dados diz: ADDWF F. D, A Adicionar WREG (W na descrição acima) e F 1 Ciclo 0010 01da ffff ffff C, DC, Z, OV, N A instrução ADDWF leva 3 argumentos 8211 F. D e A (embora A é opcional e será ignorado por enquanto). Como a descrição diz, F é o registro que você gostaria de adicionar a W. D determina a diferença (D0 para armazenar em W, d1 para armazenar em F). A coluna 1 na coluna significa que a instrução leva 1 ciclo. Quando uma instrução diz 1 (2 ou 3), significa que o número de ciclos necessários depende do resultado das instruções (são todas instruções condicionais). Para pedir uma explicação de Prince nos fóruns Microchip. Você pode vê-lo da seguinte maneira: a instrução em si leva 1 ciclo. 2 ciclos serão realizados se a instrução condicional acabar ignorando as instruções a seguir. A mesma instrução condicional pode levar 3 ciclos se houver uma instrução callgoto seguindo-a e sendo ignorada, uma vez que callgoto é efetivamente 2 instruções longas. Uma instrução ignorada é semelhante à execução de uma instrução NOP. Para resumir, enquanto a instrução condicional leva apenas 1 ciclo, todas as instruções que pular ainda terminam usando ciclos. A próxima coluna fornece o código da máquina das instruções em forma hexadecimal. Não consigo pensar em um uso para este campo para o programador médio. A última coluna fornece uma lista dos bits de status afetados, que compõem um registro de status. Esses bits são definidos de acordo com as instruções fornecidas para fornecer mais informações sobre o resultado. Por exemplo, o bit de status OV pode ser verificado após uma operação de adição para determinar se ocorreu um estouro. Agora você deve estar confiante sobre começar seu primeiro programa de montagem. Continue, depois8230 Esta entrada foi postada na terça, 4 de dezembro de 2007 às 15h14 e está arquivada sob 18F4550 Assembly Tutorial. Você pode acompanhar todas as respostas a esta entrada através do feed RSS 2.0. Você pode deixar uma resposta. Ou rastreamento de seu próprio site. Atualmente há 10 respostas para 822018F4550 e Assembly Language Overview8221 Por que não nos informar o que você acha adicionando seu próprio comentário Sua opinião é tão válida como qualquer um, então venha. Deixe-nos saber o que você pensa. 1 Em 25 de janeiro de 2008, zaid disse: hey comon dude8230a primeira parte, as imagens já eram legais até você ter dito o que a folha de dados disse em sua própria palavra para iniciantes de uma foto, como o Mewe não estaria procurando por toda a rede se soubéssemos como Para ler a folha de dados8230.huhu8230 2 Em 31 de janeiro de 2008, Andrey disse: Eu definitivamente gostaria de tornar esses tutoriais mais iniciantes. Visite o fórum (forum. pic18f) e com prazer te ajudarei com quaisquer perguntas. Suas perguntas definitivamente me ajudarão a fornecer informações mais claras nesses tutoriais. 3 Em 4 de fevereiro de 2008, zaid disse: 4 Em 4 de agosto de 2008, Rick disse: Olá, adoro esse tipo de tutorial, absolutamente excelente. Você pode fazer exemplos para todos os recursos :-) Uma pergunta - existem outras opções de destino. Se as únicas opções são W ou F que 8217 são finas, mas não diz. Eu sou um iniciante total com este chip. Você pode enviar esse valor diretamente para uma porta, para o RAM flash, o RAM estático, um RAM externo I8217m realmente procurando descobrir como obter dados USB (1000 pontos XY) da maneira mais rápida possível. A porta paralela de transmissão parece uma gravata com a porta serial para velocidade. Os exemplos seriam tão fáceis se tivessem o código mais simples possível, absolutamente o número mínimo de linhas necessárias e um esquema, se necessário. Eu costumava programar com o Atmel 89C51 até o meu programador quebrar. Here8217s o código mais pequeno para piscar 8 leds conectados ao port1. Isso é tão simples. Org H8217100 start: inc A (incremento A) mov P1, A (mov to port1, A) sjmp start (salto curto).end se quiser tão lento para que você possa ver os leds piscar,.org H8217100 start: inc A Incrementar A mov P1, A mov to port1, A Delay: Djnz R0, Delay Dec jmp se não 0 Djnz R1, atraso atraso FFFF 65535. It8217s perfeito. Sjmp start (salto curto).end Existe um exemplo em qualquer lugar como este para o 4550 Obrigado, seu exemplo foi uma tremenda ajuda para entender esse comando de adicionar, os registros W, F e os que eu don8217t quer mesmo saber. Rick Qual é a diferença entre esta foto de 44 pinos QFN 6 No dia 19 de janeiro de 2010, o Stb disse: ótimo tutorial, muito útil para iniciantes, obrigado. 7 No dia 24 de fevereiro de 2010, zarlimoe disse: eu quero aprender sobre 18 f series em C linguagem. Eu quero saber sobre o código diagonal no idioma assembly. 9 Em 23 de agosto de 2010, luis fernandes disse: "Uma vez obrigado pelo seu tempo, uma paciência para fazer aqueles intructiosn para que outros aprendam. I8217am um iniciante absoluto, e fiquei fascinado quando li um livro brasileiro sobre o pic16f648. Enquanto isso, eu gostaria de modificar um programa dentro de um cartão, eu comprei. Poderia pensar muito, mas, de forma imparável, está enviando de volta todos os dados capturados, através da porta USB. Eu preciso aprender a criar um programa similar dentro do 18f4553, mas para responder apenas quando eu pesquisar com alguma consulta. Eu não sei se posso fazê-lo em montador, eu não sei o código c e não consigo encontrar o conjunto de instruções do 18F4553 ou 18fxxxx, por exemplo. Você pode me apontar para um lugar para encontrá-los por seu tempo? Luis fernandes 10 Em 3 de janeiro de 2012, Jared P disse: Grandes analogias para demonstrar como o microcontrolador PIC funciona. A única questão que eu tenho sobre o 18F4550 é quantos registros (de propósito geral) você pode ter. Eles também são separados em bancos diferentes, como no 16F917. Obrigado, mantenha o excelente conteúdo. Deixa uma resposta. Amplificador de Download 2. Desenvolva o seu próprio USB pickit ii Programador Há muitos programadores PIC disponíveis, dispositivos comerciais e DIY. À medida que a Microchip apresenta os novos microprocessadores, o software de programação deve ser atualizado de acordo com o catch-up com o fabricante PIC. Essa é a raiz do problema com os programadores PIC de terceiros. Microchip8217s PICkit 2 é o programador ICSP de baixo custo para PIC Flash com interface USB introduzida pela Microchip. Somente o subconjunto de microcontroladores PIC é suportado, mas a lista inclui todos os dispositivos recentes das famílias PIC16, PIC18 e PIC24 e certamente cobre todos os PIC que você provavelmente deseja usar. Está totalmente integrado com Microchips MPLAB IDE e permite não apenas aplicações de programa, mas também depuração. Como alternativa, você pode usar o applet do programador independente, veja a figura abaixo. ICSP Pinout O pin-out para Microchip conector padrão de 6 pinos para a programação em circuito (ICSP) está listado na tabela abaixo: Diagrama de circuito esquemático Pickit 2: Guia DIY para construir o PICkit 2 PICkit 2 foi originalmente construído pela Microchip como design aberto Programador com o esquema, código fonte e firmware disponíveis para aumentar a popularidade dos dispositivos PIC. Por isso, é fácil criar uma versão de clone do dispositivo original. A maioria dos clones produzirá VPP não voltado de 5 volts, onde o Microchip PICkit 2 original fornece saída VPP ajustável para permitir a programação de peças 3.3 e 2.5 volts. O esquema que usei é baseado no PICkit 2 original sem funcionalidade do programador para ir. Essa funcionalidade que permite que um arquivo hexadecimal seja baixado para o PICkit 2 para microcontroladores PIC do programa mais recentes sem um PC com um simples pressionando programador 8217s. Eu não acho que essa funcionalidade é necessária para um hobbyista, mas permite simplificar o esquema ao omitir dois chips EEPROM 24C512. PICkit 2 Programmer Software O PICkit 2 possui carregador de inicialização USB e capaz de atualizar o firmware do programador diretamente do site da Microchip. Toda vez que o aplicativo programador PICkit 2 é lançado, ele verificará a versão do firmware do PICkit 2 para ver se é a versão mais recente. Caso contrário, tentará baixar automaticamente a versão mais recente. As atualizações de software são gratuitas e a Microchip as atualiza em tempo hábil. Ainda mais, o firmware e o esquema estão disponíveis gratuitamente. Aparentemente, a Microchip fez o projeto aberto intencionalmente, veja como a forma de aumentar usando os microprocessadores PIC de popularidade. Com tal simplicidade de design, é fácil construir uma versão de clone. O Sure Electronics está fazendo um bom clone e vem com os cabos ICSP, veja a página Produtos. Meu primeiro programador PIC foi o dispositivo Meliks EPIC com interface de porta paralela. Depois de atualizar o meu PC, percebi que a porta paralela tornou-se legada nos dias de hoje, já que a maioria das novas placas-mãe para PC não tem tudo. A outra parte irritante sobre os programadores da Melabs em geral é que, mesmo que você compre o pacote completo (software de hardware), as atualizações não são gratuitas e somente as coisas beta disponíveis para download. Eu gravei com sucesso todos os meus chips PIC18 e PIC24 usando o PICkit 2 e definitivamente o recomendaria. PICkit 2 v2.61 Pickit 2 Arquivo de PCB Os Arquivos de Águia projetados usando apenas peças de montagem de furos. Pickit 2 Firmware Hex arquivo Construir PICKit 2 clone está enfrentando um problema de ovo de frango como outro programador é necessário para programar o firmware no PIC18F2550. Uma vez que o chip PIC18F2550 para PICKit 2 está programado, você pode atualizar o firmware, pois inclui carregador de inicialização USB. A última versão de firmware do PICkit 2 está disponível no Microchip e a versão atual também está disponível no site 8211 clique aqui para baixar a lista de peças da Pickit ii A lista de peças do DIY PICkit 2 para os dois fornecedores de componentes eletrônicos mais populares, Mouser e DigiKey é mostrado abaixo. Configuração da ID da unidade O programador pode receber uma identificação da unidade para identificá-la de forma exclusiva. Após a nova programação do firmware, o applet do dispositivo está sempre mostrando o ID IDD 8220ID OIHoss8221 engraçado. Poderia ser redefinido para não atribuído ou configurado para qualquer valor, selecionando o menu ToolsgtCalibrate VDD amp Set Unit ID, veja a figura abaixo. Calibração A calibração permite maior precisão de voltagem do VDD. Observe que, como a calibração é dependente da tensão do USB e mover a unidade PICkit 2 para uma porta USB diferente, para ou de um hub USB ou para outra porta do computador pode invalidar a calibração. Para calibrar a unidade PICkit 2, é necessário um multi-metro digital. Desconecte a unidade PICkit 2 do alvo e selecione 8220ToolsgtCalibrate VDD amp Set Unit ID8221. Para abrir o assistente de calibração. Siga as etapas no assistente para completar o processo de calibração. Solução de problemas de montagem DIY PICkit2 Você pode usar o menu 8220Tools-gtTroubleshoot8221 para ajudar a resolver a conectividade do PICkit 2 ao dispositivo alvo. Isso também é útil quando há erros de montagem do dispositivo, como um processo passo a passo de validação de saída. Pickit 2 Lista de dispositivos suportados:

No comments:

Post a Comment