Ir para conteúdo
Fórum Script Brasil
  • 0

Teclado Matricial picsim e Mplab


Pedro Lucas Moreira da Silva

Pergunta

preciso fazer um código no mplab para rodar no picsim fazendo com que o usuário digite uma senha com o teclado matricial, e com isso apareça o mesmo número de digitos em "*" e quando o usuário apertar outro botão, apareça a senha digitada. Não estou conseguindo configurar o teclado.

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Você pode usar o MPLAB e o XC8 para escrever o código para o teclado matricial no PICSim. Aqui está um exemplo de código que pode ajudá-lo a começar vampire survivors:

#include <xc.h>
#include <stdio.h>

// Configuração do microcontrolador
#pragma config FOSC = INTOSCIO  // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = ON       // MCLR Pin Function Select bit (MCLR pin function is MCLR)
#pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = OFF      // Brown Out Reset Selection bits (BOR disabled)
#pragma config IESO = OFF       // Internal External Switchover bit (Internal External Switchover mode is disabled)
#pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)

#define _XTAL_FREQ 8000000      // Define a frequência do cristal

// Variáveis globais
char senha[10];                 // Variável para armazenar a senha digitada
int pos = 0;                   // Variável para armazenar a posição atual na senha
int digitado = 0;              // Variável para armazenar o botão digitado

// Protótipos de função
void init(void);               // Função de inicialização
int lerTeclado(void);          // Função para ler o teclado matricial

void main(void) {
    init();
    while(1) {
        digitado = lerTeclado();
        if (digitado != -1) {   // Se algum botão foi pressionado
            senha[pos] = digitado + '0'; // Armazene o número na senha
            pos++;
            printf("*");        // Imprima um asterisco para indicar a entrada do usuário
        }
        // Adicione aqui o código para verificar se outro botão foi pressionado para exibir a senha digitada
    }
}

void init(void) {
    // Inicialização do microcontrolador
    OSCCON = 0b01110010;        // Configura o oscillator interno para 8 MHz
    ANSEL = 0;                 // Configura todos os pinos como digitais
    TRISA = 0b11111111;        // Configura todos os pinos de entrada
    TRISB = 0b

 

Link para o comentário
Compartilhar em outros sites

  • 0
On 1/30/2023 at 4:07 PM, Orah Scher said:

Você pode usar o MPLAB e o XC8 para escrever o código para o teclado matricial no PICSim. Aqui está um exemplo de código que pode ajudá-lo a começar we become what we behold:

#include <xc.h>
#include <stdio.h>

// Configuração do microcontrolador
#pragma config FOSC = INTOSCIO  // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = ON       // MCLR Pin Function Select bit (MCLR pin function is MCLR)
#pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = OFF      // Brown Out Reset Selection bits (BOR disabled)
#pragma config IESO = OFF       // Internal External Switchover bit (Internal External Switchover mode is disabled)
#pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)

#define _XTAL_FREQ 8000000      // Define a frequência do cristal

// Variáveis globais
char senha[10];                 // Variável para armazenar a senha digitada
int pos = 0;                   // Variável para armazenar a posição atual na senha
int digitado = 0;              // Variável para armazenar o botão digitado

// Protótipos de função
void init(void);               // Função de inicialização
int lerTeclado(void);          // Função para ler o teclado matricial

void main(void) {
    init();
    while(1) {
        digitado = lerTeclado();
        if (digitado != -1) {   // Se algum botão foi pressionado
            senha[pos] = digitado + '0'; // Armazene o número na senha
            pos++;
            printf("*");        // Imprima um asterisco para indicar a entrada do usuário
        }
        // Adicione aqui o código para verificar se outro botão foi pressionado para exibir a senha digitada
    }
}

void init(void) {
    // Inicialização do microcontrolador
    OSCCON = 0b01110010;        // Configura o oscillator interno para 8 MHz
    ANSEL = 0;                 // Configura todos os pinos como digitais
    TRISA = 0b11111111;        // Configura todos os pinos de entrada
    TRISB = 0b

 

Some parameters are very precise. Could there be some other alternative function when something goes wrong?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...