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.
Loại này tuy là 4 chân, nhưng thực chất cũng chỉ là 2 chân mà thôi, bạn xem hình dưới là rõ ngay.
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.
3. Nút nhấn trong mô phỏng.
a. Tích cực mức thấp.
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.
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;
}
}
}
- 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;
}
}
}
EmoticonEmoticon