LẬP TRÌNH NÚT NHẤN CHO PIC16F877A

Giới thiệu

Ở bài xích trước tôi đã hướng dẫn chúng ta lập trình nháy led cùng với MPLAB XC8. Bây giờ chúng ta sẽ thường xuyên lập trình một loại linh phụ kiện điện tử đến phép họ nhập tài liệu đó là nút nhấn. Bài viết này vẫn lập trình bật và tắt đèn led bằng một nút nhấn.

Bạn đang xem: Lập trình nút nhấn cho pic16f877a

Chúng ta đã hiểu được việc cài đặt một chân trên vi điều khiển và tinh chỉnh PIC là input hay output tiến hành bằng việc đặt bit tương ứng ở thành ghi TRIS là 1 (input) tốt 0 (output). Khi 1 chân là input (hoặc output) thì thanh ghi PORT vẫn đọc (hoặc ghi) tín hiệu logic ở chân tương ứng. Cùng với PIC16F877A, mức xúc tích và ngắn gọn 1 tương ứng với năng lượng điện áp bên trên chân là 5V, mức súc tích thấp là 0V ( các chúng ta cũng có thể xem datasheet của PIC16F877A để nắm vững hơn về với mức giá trị năng lượng điện áp làm sao PIC vẫn hiểu là mức xúc tích 1 hoặc 0).

Khi một chân là đầu vào thì nó đã ở tinh thần Hi-Impedance (Trở chống cao). Lúc set một bit vào thanh ghi PORT lên 1 thì chân tương xứng sẽ sinh sống xuất biểu đạt ở mức xúc tích cao – xúc tích và ngắn gọn high (VDD), còn giả dụ bit này được set xuống mức 0 thì chân tương ứng sẽ xuất tín hiệu ở mức ngắn gọn xúc tích thấp – xúc tích và ngắn gọn low (VSS). ở chính sách input thanh ghi PORT gọi mức điện áp nghỉ ngơi chân tương ứng, giả dụ chân gồm mức năng lượng điện áp gần với cái giá trị VDD thì thanh ghi PORT có mức giá trị là một trong những còn trường hợp chân input tất cả mức điện áp gần với mức giá trị VSS thì thanh ghi PORT có mức giá trị là 0.

Xem thêm: Tính Công Suất Nguồn Máy Tính Công Suất Tiêu Thụ Điện Của Máy Tính Bàn (Pc)

Ví dụ này sử dụng vi điều khiển và tinh chỉnh PIC16F877A, gồm một nút nhấn liên kết với một chân được thiết đặt ở chế độ input cùng một led nói với cùng 1 chân ở chế độ output. Lúc bấm nút nhấn, đèn LED đã sáng 3 giây rồi tắt.

Sơ vật mạch điện

*
so bởi mach

Chức năng các linh phụ kiện sử dụng:

Chân VDD được nối với mối cung cấp +5VDC và chân VSS nối khu đất GND.Thạch anh sử dụng có tần số 8MHzChân RD0 (PIN 19) là chân input nối cùng với nút ấn.Chân RB0 (PIN 33) là chân output đầu ra nối với đèn LED.Điện trở dàn ra (Pull up resistor) có mức giá trị 10KΩ. Lúc không nhấn nút ấn chân RD0 ngơi nghỉ mưc VDD, khi dấn nút ấn chân RD0 ở tầm mức VSSĐiện trở 470Ω mắc nối tiếp để hạn cái qua đèn LED

MPLAB XC8 Code

#define _XTAL_FREQ 8000000#include // BEGIN CONFIG#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)#pragma config WDTE = ON // Watchdog Timer Enable bit (WDT enabled)#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 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 lớn by EECON control)#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)//END CONFIGint main()TRISB0 = 0; //RB0 la output PINTRISD0 = 1; //RD0 la input PINRB0 = 0; //LED Offwhile(1)if(RD0 == 0) //Neu an buttonRB0 = 1; //LED ON__delay_ms(3000); //3 Second DelayRB0 = 0; //LED OFFreturn 0;Lưu ý:

Bạn đề nghị kiểm tra tinh thần của nút nhận sau một khoảng thời gian delay bé dại bởi vì: thời gian thời gian gửi trạng thái của nút bấm vào khoảng 100-300ms, vi điều khiển đang vận động ở tần số 8MHz. Nếu không có đoạn code delay thì một lần dấn vi tinh chỉnh và điều khiển có ráng hiểu là các lần ấn bởi tốc đọ tiến hành của vi tinh chỉnh và điều khiển là khôn cùng nhanh.