// software multifunções uno version 5.c - Criado pelo
// studio UNO 2.3
// 29 October 2016 12:20:26 am
#include <uno.h>
// Declaracao das Variaveis
unsigned char aux;
unsigned int batidas;
int contador;
int jogo;
unsigned char lado;
char resultado;
unsigned char t;
// Prototipos
void esquerda(void);
void 5(void);
void 5r(void);
void 6(void);
void 7(void);
void 4(void);
void 3r(void);
void 6r(void);
void 4r(void);
void 3(void);
void 1r(void);
void gins(void);
void 2(void);
void errou(void);
void CONTADOR DE DEDOS(void);
void inicial(void);
void 1(void);
void Aut(void);
void 2r(void);
void direita(void);
void Dança(void);
//Funcoes do Usuario
// Status do Procedimento:
// Pronto
void esquerda(void)
{
__motor_curso(__BACKWARD);
__delay(1000);
__motor_curso(__LEFT_ROTATE);
__delay(750);
return;
}
void 5(void)
{
__digital_out(1, 1);
__delay(500);
__digital_out(1, 0);
__delay(500);
__digital_out(3, 1);
__delay(500);
__digital_out(3, 0);
__delay(500);
__digital_out(2, 1);
__delay(500);
__digital_out(2, 0);
__delay(500);
__digital_out(1, 1);
__delay(500);
__digital_out(1, 0);
__delay(500);
__digital_out(3, 1);
__delay(500);
__digital_out(3, 0);
resultado++;
__delay(500);
5r();
}
void 5r(void)
{
if (__LEFT_KEY) {
if (__RIGHT_KEY) {
if (__ENTER_KEY) {
if (__LEFT_KEY) {
if (__LEFT_KEY) {
6();
}
else {
errou();
}
}
else {
errou();
}
}
else {
errou();
}
}
else {
errou();
}
}
else {
errou();
}
}
void 6(void)
{
__digital_out(1, 1);
__delay(500);
__digital_out(1, 0);
__delay(500);
__digital_out(3, 1);
__delay(500);
__digital_out(3, 0);
__delay(500);
__digital_out(2, 1);
__delay(500);
__digital_out(2, 0);
__delay(500);
__digital_out(1, 1);
__delay(500);
__digital_out(1, 0);
__delay(500);
__digital_out(3, 1);
__delay(500);
__digital_out(3, 0);
__delay(500);
__digital_out(1, 1);
__delay(500);
__digital_out(1, 0);
resultado++;
__delay(500);
6r();
}
void 7(void)
{
__lcd_clear();
__lcd_puts("Parabens!!!!!!!!");
__lcd_goto(0x7f, 1);
__lcd_puts("VC COMPLETOU TD");
__lcd_goto(0x7f, 1);
__delay(5000);
gins();
}
void 4(void)
{
__digital_out(1, 1);
__delay(500);
__digital_out(1, 0);
__delay(500);
__digital_out(3, 1);
__delay(500);
__digital_out(3, 0);
__delay(500);
__digital_out(2, 1);
__delay(500);
__digital_out(2, 0);
__delay(500);
__digital_out(1, 1);
__delay(500);
__digital_out(1, 0);
resultado++;
__delay(500);
4r();
}
void 3r(void)
{
if (__LEFT_KEY) {
if (__RIGHT_KEY) {
if (__ENTER_KEY) {
4();
}
else {
errou();
}
}
else {
errou();
}
}
else {
errou();
}
}
void 6r(void)
{
if (__LEFT_KEY) {
if (__RIGHT_KEY) {
if (__ENTER_KEY) {
if (__LEFT_KEY) {
if (__LEFT_KEY) {
if (__RIGHT_KEY) {
7();
}
else {
errou();
}
}
else {
errou();
}
}
else {
errou();
}
}
else {
errou();
}
}
else {
errou();
}
}
else {
errou();
}
}
void 4r(void)
{
if (__LEFT_KEY) {
if (__RIGHT_KEY) {
if (__ENTER_KEY) {
if (__LEFT_KEY) {
5();
}
else {
errou();
}
}
else {
errou();
}
}
else {
errou();
}
}
else {
errou();
}
}
void 3(void)
{
__digital_out(1, 1);
__delay(500);
__digital_out(1, 0);
__delay(500);
__digital_out(3, 1);
__delay(500);
__digital_out(3, 0);
__delay(500);
__digital_out(2, 1);
__delay(500);
__digital_out(2, 0);
resultado++;
__delay(500);
3r();
}
void 1r(void)
{
if (__RIGHT_KEY) {
2();
}
else {
errou();
}
}
void gins(void)
{
resultado = 0;
__lcd_goto(0x7f, 1);
__lcd_puts("Aperte enter");
__lcd_goto(0xbf, 1);
__lcd_puts("para iniciar");
__delay(1000);
__lcd_clear();
__lcd_goto(0x7f, 7);
__lcd_puts("ou");
__delay(1000);
__lcd_clear();
__lcd_goto(0x7f, 1);
__lcd_puts("CIMA PARA VOLTAR");
__delay(1000);
__lcd_clear();
if (__ENTER_KEY) {
1();
}
if (__UP_KEY) {
inicial();
}
}
void 2(void)
{
__digital_out(1, 1);
__delay(500);
__digital_out(1, 0);
__delay(500);
__digital_out(3, 1);
__delay(500);
__digital_out(3, 0);
__delay(500);
resultado++;
2r();
}
void errou(void)
{
__lcd_goto(0x7f, 1);
__lcd_puts("Voce errou!");
__lcd_goto(0xbf, 1);
__lcd_puts("%r", resultado);
__delay(1000);
__lcd_clear();
resultado = 0;
1();
}
void CONTADOR DE DEDOS(void)
{
jogo = 0;
contador = 0;
while(TRUE) {
if (__ENTER_KEY) {
while(!!(__ENTER_KEY)) { __delay(10); }
inicial();
}
while((contador > 100)) {
__lcd_clear();
__lcd_goto(0x7f, 2);
__lcd_puts("TEMPO ESGOTADO");
__delay(1000);
__lcd_clear();
__lcd_goto(0x7f, 1);
__lcd_puts("SuaPontuacaoFoi:");
__lcd_goto(0xbf, 5);
__lcd_puts("%d", jogo);
while(!__ENTER_KEY) { __delay(10); }
if (__ENTER_KEY) {
while(!!(__ENTER_KEY)) { __delay(10); }
inicial();
}
}
while((__analog_in(0) > 500)) {
jogo += 1;
while(!!((__analog_in(0) > 30))) { __delay(10); }
}
contador += 1;
__backlight(__ON);
__lcd_goto(0x7f, 1);
__lcd_puts("SUA PONTUACAO E");
__lcd_goto(0xbf, 5);
__lcd_puts("%d", jogo);
}
}
// Status do Procedimento:
// Finalizar
void inicial(void)
{
while(TRUE) {
__IR__ON();
while(TRUE) {
__backlight(__ON);
__lcd_clear();
__lcd_goto(0x7f, 1);
__lcd_puts("Menu Manual Ativ");
__lcd_goto(0xbf, 1);
__lcd_puts("Esq.+Direita=AUT");
__delay(1000);
__lcd_goto(0xbf, 1);
__lcd_puts("cima+baixo=danca");
__delay(1000);
__lcd_goto(0xbf, 1);
__lcd_puts("cima+Esquerda=gins");
__delay(1000);
__lcd_clear();
while((!testbit(__IR, 0) && __UP_KEY)) {
__motor_curso(__FORWARD);
}
if ((!testbit(__IR, 1) && __LEFT_KEY)) {
__motor_curso(__LEFT_TURN);
__delay(375);
__motor(1, 0);
__motor(2, 0);
}
if ((!testbit(__IR, 2) && __ENTER_KEY)) {
__motor(1, 0);
__motor(2, 0);
}
if ((!testbit(__IR, 3) && __RIGHT_KEY)) {
__motor_curso(__RIGHT_ROTATE);
__delay(375);
__motor(1, 0);
__motor(2, 0);
}
if (!testbit(__IR, 4)) {
__lcd_clear();
__lcd_puts("Sem Comando");
__delay(300);
__lcd_clear();
}
if (!testbit(__IR, 5)) {
__lcd_clear();
__lcd_puts("Sem Comando");
__delay(300);
__lcd_clear();
}
if ((!testbit(__IR, 6) || (__LEFT_KEY && __RIGHT_KEY))) {
while(!!(!testbit(__IR, 6))) { __delay(10); }
while(!!(__LEFT_KEY)) { __delay(10); }
while(!!(__RIGHT_KEY)) { __delay(10); }
Aut();
}
if ((__UP_KEY && __BOTTOM_KEY)) {
while(!!(__UP_KEY)) { __delay(10); }
while(!!(__BOTTOM_KEY)) { __delay(10); }
Dança();
}
if ((__UP_KEY && __LEFT_KEY)) {
while(!!(__UP_KEY)) { __delay(10); }
while(!!(__LEFT_KEY)) { __delay(10); }
gins();
}
if ((__BOTTOM_KEY && __RIGHT_KEY)) {
while(!!(__BOTTOM_KEY)) { __delay(10); }
while(!!(__RIGHT_KEY)) { __delay(10); }
CONTADOR DE DEDOS();
}
}
}
}
void 1(void)
{
__digital_out(1, 1);
__delay(500);
__digital_out(1, 0);
__delay(500);
resultado++;
1r();
}
// Status do Procedimento:
// Pronto
void Aut(void)
{
while(TRUE) {
__motor_curso(__FORWARD);
__lcd_clear();
__lcd_goto(0x7f, 1);
__lcd_puts("Programa padrao");
__delay(2000);
__lcd_goto(0xbf, 1);
__lcd_puts("Abaixo+Cima=Menu");
__delay(2000);
while(__ENTER_KEY) {
__motor_curso(__STOP);
__lcd_clear();
__lcd_goto(0x7f, 3);
__lcd_puts("<<PARADO>>");
__delay(2000);
__lcd_goto(0xbf, 1);
__lcd_puts("Abaixo+Cima=Menu");
__delay(2000);
}
while(((__BOTTOM_KEY && __UP_KEY) || !testbit(__IR, 6))) {
while(!!(__BOTTOM_KEY)) { __delay(10); }
while(!!(__UP_KEY)) { __delay(10); }
while(!!(!testbit(__IR, 6))) { __delay(10); }
__lcd_clear();
return;
}
if (!__digital_in(5)) {
if ((__randon(1, 3) == 2)) {
direita();
}
else {
esquerda();
}
}
if (!__digital_in(5)) {
if ((__randon(1, 3) == 2)) {
esquerda();
}
else {
direita();
}
}
}
}
void 2r(void)
{
if (__LEFT_KEY) {
if (__RIGHT_KEY) {
3();
}
else {
errou();
}
}
else {
errou();
}
}
// Status do Procedimento:
// Pronto
void direita(void)
{
__motor_curso(__BACKWARD);
__delay(1000);
__motor_curso(__RIGHT_ROTATE);
__delay(750);
}
// Status do Procedimento:
// Pronto
void Dança(void)
{
t = 180;
__delay(50);
__buzzer(55, t);
__motor_curso(__FORWARD);
__delay(t);
__motor_curso(__STOP);
__buzzer(55, t);
__motor_curso(__FORWARD);
__delay(t);
__motor_curso(__STOP);
__buzzer(53, t);
__motor_curso(__RIGHT_ROTATE);
__delay(t);
__motor_curso(__STOP);
__buzzer(55, t);
__motor_curso(__FORWARD);
__delay(t);
__motor_curso(__STOP);
__buzzer(65, t);
__motor_curso(__BACKWARD);
__delay(t);
__motor_curso(__STOP);
__buzzer(64, t);
__motor_curso(__LEFT_ROTATE);
__delay(t);
__motor_curso(__STOP);
__buzzer(61, t);
__motor_curso(__FORWARD);
__delay(t);
__motor_curso(__STOP);
__buzzer(57, t);
__motor_curso(__BACKWARD);
__delay(t);
__motor_curso(__STOP);
__buzzer(62, (t * 3));
__motor_curso(__RIGHT_ROTATE);
__delay((t * 3));
__motor_curso(__STOP);
inicial();
}
//Funcao Principal
void main(void)
{
__inicializa;
while(TRUE) {
__backlight(__ON);
__lcd_clear();
__lcd_goto(0x7f, 1);
__lcd_puts("Press Enter=menu");
__lcd_goto(0xbf, 1);
__lcd_puts("Senao Aut Em:");
__lcd_goto(0xbf, 14);
__lcd_puts(" 3s");
__delay(1000);
__lcd_goto(0xbf, 14);
__lcd_puts(" 2s");
__delay(1000);
__lcd_goto(0xbf, 14);
__lcd_puts(" 1s");
__delay(1000);
__lcd_goto(0xbf, 14);
__lcd_puts(" 0s");
if (!(__ENTER_KEY)) {
Aut();
}
else {
inicial();
}
}
while(TRUE) { }
}