Добавляем кнопку к pic16f877 на языке С (MPLab X 5.35)

Добавляем кнопку к pic16f877 на языке С (MPLab X 5.35)

Код кнопка на RA7, при замыкании её на минус, зажигаются светодиоды RA0 и RA1 и RC1:

#include <xc.h>
  
#define _XTAL_FREQ 20000000 //Specify the XTAL crystal FREQ 
  
// Configuration Byte
#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = ON       // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF         // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3/PGM pin has PGM function; low-voltage programming enabled)
#pragma config CPD = OFF        // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF        // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF   
 
 
void main() //The main function
{
TRISC = 0b10000000; //knopka na RA7
TRISA = 0b00000000; //Make all output 
PORTC = 0b10000000; //
PORTA = 0b00000000; //


    while(1) {

        if (PORTCbits.RC7==0)
        { 
        PORTA = 0b00000011;  //если на RС7 - минус, то зажигаем RA0 и RA1
        PORTCbits.RC1 = 1;   //если на RС7 - минус, то зажигаем RC1
        }
        else {
        PORTA = 0b00000000;  //иначе гаснем RA0 и RA1
        PORTCbits.RC1 = 0;   //иначе гаснем RС1
        }
            }
}

Скачать hex и c файл:
– скачать в zip архиве.
– скачать в tar.gz архиве.

———————————————-
Ещё один код, теперь – кнопка на RA7, при замыкании её на минус, зажигаются все светодиоды порта B (PORTB = 0b11111111):

————————————————

#include <xc.h>
   
#define _XTAL_FREQ 20000000 //Specify the XTAL crystal FREQ 
   
// Configuration Byte
#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = ON       // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF         // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3/PGM pin has PGM function; low-voltage programming enabled)
#pragma config CPD = OFF        // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF        // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF   
  
  
void main() //The main function
{
TRISC = 0b10000000; //knopka na RC7
TRISB = 0b00000000; //Make all output 
PORTC = 0b10000000; //
PORTB = 0b00000000; //
 
 
    while(1) {
 
        if (PORTCbits.RC7==0)
        { 
        PORTB = 0b11111111;  
        
        }
        else {
        PORTB = 0b00000000;  
        
        }
            }
}

Скачать hex и c файл:
– скачать в zip архиве.
– скачать в tar.gz архиве.

Добавить комментарий