Ir ao conteúdo
  • Cadastre-se

rafa.dss

Membro Júnior
  • Posts

    11
  • Cadastrado em

  • Última visita

Reputação

0
  1. #include <p18f4550.h> #include <usart.h> #include "biblioteca_lcd_2x16.h" #include <delays.h> #include <adc.h> #pragma config FOSC = HS #pragma config CPUDIV = OSC1_PLL2 #pragma config PLLDIV = 5//Para cristal de 20MHz divide por 5, sempre tem que dar 4MHz #pragma config WDT = OFF //Desabilita o Watchdog Timer (WDT). #pragma config PWRT = OFF //Habilita o Power-up Timer (PWRT). #pragma config BOR = OFF //Brown-out Reset (BOR) habilitado somente no hardware. #pragma config BORV = 3 //tensão do BOR é 2,0V. #pragma config PBADEN = OFF //RB0,1,2,3 e 4 configurado como I/O digital. #pragma config LVP = OFF //Desabilita o Low Voltage Program. #pragma config MCLRE = OFF//Desabilita o RESET void ISR_alta_prioridade(void); unsigned char status_rele = 0,status_led=0; #define Rele PORTEbits.RE2 #define led PORTEbits.RE0 #pragma code int_alta=0x08 void int_alta (void) { _asm GOTO ISR_alta_prioridade _endasm } #pragma code #pragma interrupt ISR_alta_prioridade void ISR_alta_prioridade (void) { switch(getcUSART()) { case 'a': status_led = 1; break; case 'b': status_led = 0; break; case 'c': status_rele = 1; break; case 'd': status_rele = 0; break; } Rele = status_rele; led = status_led; } void main (void) { TRISA = 0b00011111; TRISB = 0b11100111; TRISC = 0b10111111; TRISD = 0b00000000; TRISE = 0b00000000; OpenADC(0x00,0x00,ADC_0ANA); CloseADC(); PORTD = 0x00; PORTE = 0x00; OpenUSART(USART_TX_INT_OFF //desabilita interrupção de transmissão &USART_RX_INT_ON //habilita interrupção de recepção &USART_ASYNCH_MODE //modo assincrono &USART_EIGHT_BIT //transmissão e recepção de 8 bits &USART_BRGH_HIGH //Baud de rede em alta velocidade ,129); /* BAUDCONbits.BRG16 = 0; BAUDCONbits.ABDEN = 0; BAUDCONbits.WUE = 0;*/ baudUSART(BAUD_8_BIT_RATE &BAUD_AUTO_OFF &BAUD_WAKEUP_OFF); lcd_inicia(0x28,0x0F,0x06); lcd_LD_cursor(0); IPR1bits.RCIP = 1; PIE1bits.RCIE = 1; RCONbits.IPEN =1; INTCONbits.GIEH =0; INTCONbits.GIEL =1; while(1) { lcd_posicao(1,1); if(status_led == 0) { imprime_string_lcd("led Desligado");} else { imprime_string_lcd("led Ligado");} lcd_posicao(2,1); if(status_rele == 0) { imprime_string_lcd("rele Desligado");} else { imprime_string_lcd("rele Ligado");} Delay10TCYx(100); } } estou tentando seguir esse programa como exemplo, ele se encontra no livro Microcontroladores PIC18 aprenda e programe em linguagem c, o objetivo deste pelo que entendi seria acionar ou desligar um led e um rele atraves de alguma interface utilizando o PC, no entando não estou tendo muito sucesso, sei que a principio é algo básico até, mas como sou iniciante está me dando muito trabalho :/ , caso alguém possa me dar alguma orientação de apenas como estabelecer a comunicação eu ficaria muito grato kk...
  2. bom, no momento não tenho como postar um desenho do circuito pois se encontra em uma placa didatica de um curso que faço, porém ele é constituido basicamente pelo microcontrolador PIC18F4550, no qual em seu PORTE se encontra um LED, o qual eu gostaria de pelo menos ser capaz de acionar atraves da serial, mesmo que meu objetivo seja o envio e recebimento de strings. Para a comunicação há um CI MAX232 ligado ao PIC e ao conector DB9, no qual utilizarei um cabo conversor serial - USB para conectar ao PC. Quanto ao programa, ainda não tenho muita noção de como estabelecer a comunicação....
  3. Olá, gostaria de saber se alguém entende a respeito de comunicação serial utilizando o microcontrolador PIC18f4550 e o compilador C18, precisava realizar o envio de strings para uma interface em um PC elaborada em C#, no entanto não estou tendo muito sucesso em aprender a realizar o envio através do microcontrolador, se alguém puder me ajudar agradeço muito desde já.
  4. muito obrigado, mas realmente não estou tendo muito sucesso em relação a isso kk, bom agradeço mesmo assim, acredito que vou precisar utilizar outro meio de realizar a comunicação entre o PC e o PIC, pois a USB acredito que não vou conseguir aprender tão já
  5. Olá, gostaria de saber se alguem ja trabalhou com a comunicação USB de um PIC da familia 18, e se possivel poderia apresentar informações de como utilizar, preciso realizar a leitura do valor de algumas variáveis do PIC através de uma interface no PC, no entanto estou com dificuldade para entender como utilizar a comunicação atraves da USB deste PIC, preciso utilizar o compilador C18 na programação. O conteudo que consegui obter é do livro Microcontroladores PIC18 aprenda e programe em linguagem C.
  6. muito obrigado, ele passou a gravar valores acima de 255, no entanto único problema que houve foi quando carrego o programa e o valor inicial não aparece no display, ele apresenta alguns caracteres aleatórios até que eu realize o incremento da variável, após isso ele funciona perfeitamente. adicionado 3 minutos depois for (i=0;i<128;i+=2) grava16bits(i,i*256); me desculpe mas não entendi a função desta linha para o programa adicionado 31 minutos depois OBS: poderiam me esclarecer uma duvida ? como o programa tera de reescrever a informação na EEPROM varias vezes, pois o projeto consiste em um "contador de entrada e saída de pessoas" resumindo, não há nenhum limite para quantas vezes é possível alterar o valor presente na memoria EEPROM há ?
  7. hmmm interessante, você teria algum exemplo de como realizar esse processo para guardar o valor de uma variavel, estou com um pouco de dificuldade nisso adicionado 43 minutos depois Ouvi dizer que utilizando uma forma de concatenar os bytes é possível armazenar uma quantidade maior, mas não faço a menor ideia de como fazer isso...
  8. obrigado ae pessoal, ajudou bastante, mas acho que me deparei com outro problema devido a não ser possível gravar valores acima de 255, terei de encontrar outra forma ou aprender a usar a EEPROM externa também, pois meu projeto consiste em um contador o qual sera necessário guardar valores grandes. mas ja ajudou muito, agradeço a todos.
  9. obg, vou continuar procurando para ver se acho alguma coisa, o que achei no datasheet se encontra apenas em linguagem assembly infelizmente kk
  10. preciso realizar a escrita e a leitura de dados na memoria EEPROM interna de um pic18f4550, no entanto como estou aprendendo linguagem C ainda, não tenho muito conhecimento a respeito e não consigo adquirir alguma biblioteca para o C18 da Microchip. Tentei procurar pelas bibliotecas descritas no livro Microcontroladores PIC18 aprenda e programe em linguagem C, do autor Alberto Noboru Miyadaira, no entanto não obtive resultados, caso alguém possa me dar alguma dica agradeço desde já.
  11. Olá, faço curso técnico de eletrônica e preciso fazer um projeto para conclui-lo, no entanto me encontro completamente sem ideias, gostaria de saber se alguém poderia compartilhar alguma, mesmo que básica, seja para propiciar facilidade ou conforto nas atividades cotidianas ou aperfeiçoamento de algum equipamento. O projeto pode conter o uso de microcontrolador PIC, pode ser algo relacionado a comunicação por radiofrequência ou envolver IOT... bom desde ja agradeço e se alguém puder pelo menos dar alguma dica, será muito bem vinda.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...