Jump to content
Fórum Script Brasil
  • 0

Teclado Matricial picsim e Mplab


Pedro Lucas Moreira da Silva

Question

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...