Leonardo_1709
-
Posts
6 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Leonardo_1709
-
-
Galera, eu necessito que alguém saiba montar esse exercício, por que tipo, eu não estou conseguindo, mas necessito entregar isso na faculdade se alguém conseguir resolver o enunciado, joga o código aqui no post que vai ajuda muito. E pessoal, eu necessito pra até quinta de manhã (19/04/2018) Valeu!!!
É utilizando o PIC18F4550
ENUNCIADO:
O projeto O projeto deve possuir quatro botões de entrada normal (sem interrupção) e um ligado a uma das interrupções externas. Os quatro botões devem indicar ao programa as seguintes orientações (para cima, para baixo, para a direita e para a esquerda) referente ao acionamento de dois motores CC (de uma CNC). O botão ligado a interrupção deve gerar uma parada total do sistema (emergência).
Cada botão deve acionar um sentido de movimento de um motor hipotético por um tempo determinado. Dessa forma cada acionamento/botão pressionado deve iniciar a contagem de um tempo, com um Timer, e o movimento do motor. Assim que a contagem do Timer acabar o motor deve parar de girar.
Todos as informações/ações devem aparecer no display LCD. Exemplo: • Iniciando movimento do motor par a direita.
• Iniciando movimento do motor par cima.
• Parada do movimento do motor da direita.
• Parada total por emergência.
• Etc ...
O motor hipotético deve girar por “X” segundos e a cada meio segundo dois LEDs devem piscar intercaladamente indicando o movimento de qualquer um dos motores.
O display de 7 segmentos também pode ser usado para indicar qual botão foi pressionado. O display de LCD, ao ser inicializado, deve mostrar por 5 segundo o nome do Grupo (A)
Os valores de X são:
• Grupo A: 7.5 segundos
-
Dae galera, aqui não é bem o lugar certo pra esse post. Mas estou com dúvida na escolha de um monitor para um PC.
Queria saber a opinião de vocês em relação a esses dois monitores e qual o melhor:
MONITOR GAMER ASUS 27 POL. LED 1920X1080 1MS FLICKER FREE, VP278H-P
MONITOR GAMER BENQ ZOWIE 24 POL. LED 1MS WIDESCREEN, RL2455
OBS: Se souberem algum melhor na faixa de preço desses dois, deixa aí que vai ajudar bastante também!!!
valeu -
@Noodle Até uns 4.000,00 reais
-
Fala galera, sou novo aqui, então não sei se estou postando no lugar certo, peço desculpas se estou no lugar errado haha.
Mas é o seguinte, eu necessito de uma configuração de PC que rode jogos e alguns programas 3D, tipo SolidWorks, AutoCAD. E, pedi pra uma empresa de Curitiba, montar um PC para mim e gostaria de saber se vale a pena ou se é melhor trocar algumas peças.
Aí está a configuração que me enviaram:
placa-mãe: Asus H110M-A/M.2
PROCESSADOR: Intel Core I5-7400
MEMÓRIA: Memória Crucial 8GB DDR4
HARD DISK: (1TB) SATA III 7200 RPM 64MB SeaGate
PLACA DE VÍDEO: GigaByte GeForce GTX 1050 TI 4GB
GABINETE: Gamer AeroCool MID TOWER GT
FONTE: CX Series CX450
Desde já agradeço!!!
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
programando no pic18f4550 - timer
em Microcontroladores
Postado
Então pessoal, fiz uma postagem ontem sobre um exercício de um código de PIC18F4550, que necessitava utilizar botões e um tempo específico, criei um código e agora necessito encaixar um TMR0 no lugar dos delays, alguém sabe como fazer isso??
Valeu!!!
Código:
// PIC18F4550 Configuration Bit Settings
#define _XTAL_FREQ 20000000UL
#include <p18f4550.h>
#include <xc.h>
bit b_right, b_left, b_up, b_down, b_emerg = 0;
int x = 0;
void lcd_ini();
void lcd_cmd(char cmd);
void lcd_envia_byte(char nivel, char dado);
void main(void) {
ADCON1 = 0x0f;
lcd_ini();
lcd_envia_byte(0, 0x84);
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'Q');
lcd_envia_byte(1, 'U');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'P');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'A');
lcd_envia_byte(0, 0xC4);
lcd_envia_byte(1, 'M');
lcd_envia_byte(1, 'C');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, '3');
__delay_ms(5000);
while (1) {
b_right = TRISBbits.RB0; // b0
b_left = TRISBbits.RB1; // b1
b_up = TRISBbits.RB2; // b2
b_down = TRISBbits.RB3; // b3
b_emerg = TRISBbits.RB4; // b4
inicio:
lcd_envia_byte(0, 0x80);
lcd_envia_byte(1, 'M');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'T');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'S');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'S');
lcd_envia_byte(1, 'L');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'G');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ':');
lcd_envia_byte(0, 0xC0);
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'G');
lcd_envia_byte(1, 'U');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'N');
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'N');
lcd_envia_byte(1, 'S');
lcd_envia_byte(1, 'T');
lcd_envia_byte(1, ':');
if (b_right == 1 && b_emerg == 0) {
PORTBbits.RB6 = 1;
__delay_ms(8000);
PORTBbits.RB6 = 0;
lcd_envia_byte(0, 0x80);
lcd_envia_byte(1, 'M');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'T');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'L');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'G');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ':');
lcd_envia_byte(1, ' ');
lcd_envia_byte(0, 0xC0);
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'C');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'T');
lcd_envia_byte(1, 'A');
}
if (b_left == 1 && b_emerg == 0) {
PORTBbits.RB6 = 1;
__delay_ms(8000);
PORTBbits.RB6 = 0;
lcd_envia_byte(0, 0x80);
lcd_envia_byte(1, 'M');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'T');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'L');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'G');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ':');
lcd_envia_byte(1, ' ');
lcd_envia_byte(0, 0xC0);
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'C');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'S');
lcd_envia_byte(1, 'Q');
lcd_envia_byte(1, 'U');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'A');
}
if (b_up == 1 && b_emerg == 0) {
PORTBbits.RB6 = 1;
__delay_ms(8000);
PORTBbits.RB6 = 0;
lcd_envia_byte(0, 0x80);
lcd_envia_byte(1, 'M');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'T');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'L');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'G');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ':');
lcd_envia_byte(1, ' ');
lcd_envia_byte(0, 0xC0);
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'C');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'C');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'M');
lcd_envia_byte(1, 'A');
}
if (b_down == 1 && b_emerg == 0) {
PORTBbits.RB6 = 1;
__delay_ms(8000);
PORTBbits.RB6 = 0;
lcd_envia_byte(0, 0x80);
lcd_envia_byte(1, 'M');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'T');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'L');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'G');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ':');
lcd_envia_byte(1, ' ');
lcd_envia_byte(0, 0xC0);
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'C');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'B');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'X');
lcd_envia_byte(1, 'O');
}
if (b_emerg == 1) {
PORTBbits.RB5 = 1;
__delay_ms(4000);
PORTBbits.RB5 = 0;
lcd_envia_byte(0, 0x80);
lcd_envia_byte(1, 'M');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'T');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, 'P');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, 'D');
lcd_envia_byte(1, 'O');
lcd_envia_byte(1, ' ');
lcd_envia_byte(1, ':');
lcd_envia_byte(1, ' ');
lcd_envia_byte(0, 0xC0);
lcd_envia_byte(1, '!');
lcd_envia_byte(1, '!');
lcd_envia_byte(1, '!');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'M');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'R');
lcd_envia_byte(1, 'G');
lcd_envia_byte(1, 'E');
lcd_envia_byte(1, 'N');
lcd_envia_byte(1, 'C');
lcd_envia_byte(1, 'I');
lcd_envia_byte(1, 'A');
lcd_envia_byte(1, '!');
lcd_envia_byte(1, '!');
lcd_envia_byte(1, '!');
__delay_ms(5000);
goto inicio;
}
}
}
void lcd_ini() {
char i;
TRISD = 0b00000000;
TRISEbits.TRISE0 = 0;
TRISEbits.TRISE1 = 0;
PORTD = 0b00000000;
PORTEbits.RE0 = 0;
PORTEbits.RE1 = 0;
__delay_ms(15);
for (i = 0; i < 3; i++) {
lcd_cmd(0x30);
__delay_ms(5);
}
lcd_cmd(0x38);
__delay_us(40);
lcd_cmd(0x01);
__delay_ms(2);
lcd_cmd(0x0C);
__delay_us(40);
lcd_cmd(0x06);
__delay_us(40);
}
void lcd_cmd(char cmd) {
PORTD = cmd;
PORTEbits.RE1 = 1;
PORTEbits.RE1 = 0;
}
void lcd_envia_byte(char nivel, char dado) {
PORTEbits.RE0 = nivel;
__delay_us(100);
PORTEbits.RE1 = 0;
lcd_cmd(dado);
}