Quiz com Microcontrolador
Por: Leandro Dantas Rocha • 23/2/2019 • Trabalho acadêmico • 849 Palavras (4 Páginas) • 182 Visualizações
Nome:
Atividades : Quiz e Motor de Passo.
- Quis:
Template Proteus:
[pic 1]
Código fonte:
/*
* File: QUIZ.c
* Author: 104834
*
* Created on 30 de Outubro de 2017, 15:31
*/
#include
#include "delays.h"
#include "lcd.h"
#pragma config WDT=OFF
#pragma config FOSC=HS
#pragma config LVP=OFF
int x;
int y;
void main(void) {
TRISD=0x00;
TRISB=0x00;
TRISC=0x11;
while (x==0){
boasvindas_();
Delay10KTCYx(30);
x=1;
y=0;
}
while (x==1){
pergunta1_();
if (PORTCbits.RC1==1){
respostacerta_();
x=2;
}
if (PORTCbits.RC0==1){
respostaerrada_();
}
}
while (x==2){
pergunta2_();
if(PORTCbits.RC0==1){
respostacerta_();
x=3;
}
if (PORTCbits.RC1==1){
respostaerrada_();
}
}
while (x==3){
pergunta3_();
if(PORTCbits.RC0==1){
respostacerta_();
Delay10KTCYx(10);
venceu_();
Delay10KTCYx(20);
x=0;
}
if (PORTCbits.RC1==1){
respostaerrada_();
}
}
}
int pergunta2_()
{
lcd_inicializa(0x28,0x0F,0x03);
lcd_limpa_tela();
lcd_posicao(1,1);
lcd_LD_cursor(0);
lcd_posicao(1,16);
imprime_string_lcd("O escorpiao e um ");
lcd_posicao(2,18);
imprime_string_lcd("artropode");
while (y<40&&PORTCbits.RC1==0&&PORTCbits.RC0==0){
lcd_desloca_mensagem(1);
y=y+1;
Delay10KTCYx(10);
if (y>=40){
y=0;
}
}
}
int pergunta3_()
{
lcd_inicializa(0x28,0x0F,0x03);
lcd_limpa_tela();
lcd_posicao(1,1);
lcd_LD_cursor(0);
lcd_posicao(1,16);
imprime_string_lcd("A paca e um ");
lcd_posicao(2,18);
imprime_string_lcd("roedor?");
while (y<40&&PORTCbits.RC1==0&&PORTCbits.RC0==0){
lcd_desloca_mensagem(1);
y=y+1;
Delay10KTCYx(10);
if (y>=40){
y=0;
}
}
}
int pergunta1_()
{
lcd_inicializa(0x28,0x0F,0x03);
lcd_limpa_tela();
lcd_posicao(1,1);
lcd_LD_cursor(0);
lcd_posicao(1,16);
imprime_string_lcd("O ornitorrinco e um ");
lcd_posicao(2,21);
imprime_string_lcd("marsupial?");
while (y<40&&PORTCbits.RC1==0&&PORTCbits.RC0==0){
lcd_desloca_mensagem(1);
y=y+1;
Delay10KTCYx(10);
if (y>=40){
y=0;
}
}
}
int respostaerrada_()
{
lcd_inicializa(0x28,0x0F,0x03);
lcd_limpa_tela();
lcd_posicao(1,1);
lcd_LD_cursor(0);
lcd_posicao(1,2);
imprime_string_lcd("tente de novo");
lcd_posicao(2,1);
imprime_string_lcd("resposta errada");
Delay10KTCYx(50);
PORTBbits.RB5=1;
PORTBbits.RB6=1;
PORTBbits.RB7=1;
Delay10KTCYx(30);
PORTBbits.RB5=0;
PORTBbits.RB6=0;
PORTBbits.RB7=0;
Delay10KTCYx(30);
PORTBbits.RB5=1;
PORTBbits.RB6=1;
PORTBbits.RB7=1;
Delay10KTCYx(30);
PORTBbits.RB5=0;
PORTBbits.RB6=0;
PORTBbits.RB7=0;
Delay10KTCYx(30);
}
int boasvindas_()
{
lcd_inicializa(0x28,0x0F,0x03);
lcd_limpa_tela();
lcd_posicao(1,1);
lcd_LD_cursor(0);
lcd_posicao(1,16);
imprime_string_lcd("QUIZ");
lcd_posicao(2,16);
imprime_string_lcd("UNIP");
while (y<8){
lcd_desloca_mensagem(1);
y=y+1;
Delay10KTCYx(50);
}
}
int venceu_()
{
lcd_inicializa(0x28,0x0F,0x03);
lcd_limpa_tela();
lcd_posicao(1,1);
...