1. Giới thiệu
2. Các loại button.
Nút nhấn thường thì có kích thước 6 – 12mm tùy thuộc vào mục đích sử dụng các bạn có thể lựa chọn loại nút nhấn phù hợp với mục đích của mình.
Hiện nay trên thị trường có rất nhiều loại nút nhấn khác nhau và giá thành cũng khác nhau. Độ bền của nút nhấn cũng khá cao. Và hầu như nó được sử dụng hầu hết trên các board mạch điện tử nên các bạn cần phải nắm chắc được bài này !
3. Nút nhấn trong mô phỏng.
a. Tích cực mức thấp.
3. Nút nhấn trong mô phỏng.
a. Tích cực mức thấp.
b. Tích cực mức cao.
- Đây là ảnh mô phỏng protues.
- Đây là code chương trình.
- Đây là code chương trình.
#include <stdio.h>
#include <stdlib.h>
#define _XTAL_FREQ 8000000 // if 4Mhz is XT
#include <xc.h>
// CONFIG
#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 = OFF // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#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 // Flash Program Memory Code Protection bit (Code protection off)
void main(void)
{
TRISA = 0X01;
TRISB = 0X01;
TRISD = 0X00;
PORTD = 0X00;
ADCON1 = 0x07; // off ADC
while(1)
{
if(PORTAbits.RA0==0)
{
__delay_ms(100);
if(PORTAbits.RA0==0)
{
PORTDbits.RD0=1;
}
}
if(PORTBbits.RB0==1)
__delay_ms(100);
if(PORTBbits.RB0==1)
{
PORTDbits.RD0=0;
}
}
}
Chương trình trên khá đơn giản các bạn chỉ cần xét trạng thái của nút nhấn khi bị tác động sau đó cho nó thực hiện 1 đoạn chương trình mà các bạn mong muốn ! Chú ý nếu các bạn dùng PORTA dùng làm PORT I/O thì phải tắt chức năng ADC của con PIC đi nha ! Đây là lệnh tắt chức năng ADC của PIC16F877A ADCON1 = 0x07; Ai không hiểu chỗ nào comments bên dưới nha !
- Link download project Click here#include <stdlib.h>
#define _XTAL_FREQ 8000000 // if 4Mhz is XT
#include <xc.h>
// CONFIG
#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 = OFF // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#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 // Flash Program Memory Code Protection bit (Code protection off)
void main(void)
{
TRISA = 0X01;
TRISB = 0X01;
TRISD = 0X00;
PORTD = 0X00;
ADCON1 = 0x07; // off ADC
while(1)
{
if(PORTAbits.RA0==0)
{
__delay_ms(100);
if(PORTAbits.RA0==0)
{
PORTDbits.RD0=1;
}
}
if(PORTBbits.RB0==1)
__delay_ms(100);
if(PORTBbits.RB0==1)
{
PORTDbits.RD0=0;
}
}
}
Chương trình trên khá đơn giản các bạn chỉ cần xét trạng thái của nút nhấn khi bị tác động sau đó cho nó thực hiện 1 đoạn chương trình mà các bạn mong muốn ! Chú ý nếu các bạn dùng PORTA dùng làm PORT I/O thì phải tắt chức năng ADC của con PIC đi nha ! Đây là lệnh tắt chức năng ADC của PIC16F877A ADCON1 = 0x07; Ai không hiểu chỗ nào comments bên dưới nha !
0 nhận xét: