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

counter1, đếm xung, điều chế xung, đồ gia dụng án năng lượng điện tử, vật dụng án iot, vật án nhúng, hiển thị lcd, lập trình, lập trình lm35, xây dựng pic, lập trình sẵn timer, xây dựng uart, lcd1602, led đon, mạch điện tử, ngắt timer0, nhận có tác dụng đồ án, nút nhấn, nút nhận đơn, pic16f877a, xây đắp mạch, timer0, timer1, tính timer0, truyền nhận, vi điều khiển

Lập trình nút nhấn được coi là một trong số bài tập về lập trình khó tính bởi có nhiều cách thức cũng như các trạng thái nhằm lập trình như: một chức năng, 2 chức năng, nhiều hơn 2 chức năng, một dạng đặt biết là một trong những nút nhấn có thể sử lý được nhiều công việc như: đếm số lần nhấn nhằm sử lý các bước hoặc thời hạn nhấn nút. Gồm hai loại chính là nhấn giữ hoặc nhận nhả, thông thường nút nhận nhả được thực hiện nhiều trong những đề tài. Nút nhấn có tương đối nhiều loại cùng có thời hạn dội phím khác biệt vì vậy khi lập trình phải lưu ý để bảo đảm an toàn tính ổn định lâu bền hơn cho hệ thống.

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

Mua linh phụ kiện điện tử tạiĐiện tử Nhật Tùng


Liên hệ làm cho mạch 

gmail.com

Chi tiết: Nhận làm cho mạch và đồ án Điện tử


Khóa học Vi điều khiển có phí

*


Mục lục

5 bài bác giải thiết kế Nút nhấn:6 phần mềm lập trình Nút nhấn:6.2 Chương trình con lập trình nút nhấn:

Tải File bài giải


Tải Xuống
Pass giải nén: Huynhnhattung.com

Hướng dẫn cài đặt và cài đặt phần mềm bung file Winrar


Video xây dựng nút nhấn,Điều khiển led đối chọi sáng 10s bởi Timer0

Blog thiết kế nút nhấn,Điều khiển led solo sáng 10s bởi Timer0


Đề bài lập trình Nút nhấn:

*

Bài giải lập trình sẵn Nút nhấn:

Phần cứng công tác lập trình Nút nhấn:

Yêu mong đề bài xích đưa ra chỉ việc đọc biểu hiện từ nút nhấn tiếp đến xuất ra mang đến Led đơn sáng sủa 10s theo thời hạn định thời tự Timer0.Sử dụng xê dịch ngoài thạch anh 12M đã tích hợp chân OSC1 OSC2. Đây là tế bào phỏng buộc phải mình lười không gắn vào.Sử dụng 4 Led đơn được điều khiển chủ quyền phụ nằm trong vào nút nhấn. Tính trở 330 tìm hiểu thêm tại giáo trình thầy Nguyễn Đình Phú.Các linh kiện chính buộc phải sử dụng tham khảo tại.
Thông số kỹ thuậtMua Linh kiện
Pic16F887Pic16F877
Led đơnLed đơn
Điện trởĐiện trở
Nút nhấnNút nhấn
Thạch anhThạch anh

*

Phần mềm lập trình sẵn Nút nhấn:

Khai báo thư viện lịch sử từ trước lý của lập trình Nút nhấn:

Vi tinh chỉnh hiện tại mình đan sử dụng là Pic16F887Hiện cần sử dụng thạch anh xung quanh và thạch anh ko kể khai báo 12M bởi lệnh #Fuses HS cùng #delay(clock=12M). Địa chỉ đổi mới cờ tràn của timer00x0b.2 tức là add 0x0b cùng vị trí 2. Tên thanh ghi TMR0IF vày vậy bài toán định nghĩa đúng tên hiểu rõ được tác dụng của biến hóa đan dùng, nếu chúng ta không lưu giữ tên rất có thể định nghĩa bất kể tên nhưng bạn muốn muốn chỉ cần tuân thủ những điều kiện đặt tên.Định nghĩa chân: tùy theo tác dụng của chân mà lại tên khái niệm được bám sát vào ngôn từ đan thực hiện. Thương hiệu khai báo biến phụ thuộc vào tính năng để khai báo cho phù hợp. Khi những biến không biết được giá trị cuối thì nên khai báo signed int32 tức khai báo phát triển thành có dấu 32bit, từ bây giờ giá trị rất lớn không sợ hãi bị thiếu. Khi chương trình tất cả trạng thái đối lập nhau thì nên cần khai báo trở thành 1bit để dễ lập trình.

*

Chương trình con lập trình nút nhấn:

Chương trình đánh giá nút nhấnChương trình soát sổ nút nhấn đơn giản và dễ dàng khi nhấn nút thì nút dìm trả về 0 theo phần cứng kết nối, thì trả về tt0=1 để có thể chấp nhận được sáng đèn, dem=0 bước đầu đếm thời gian quy định là 10s.Tương tự cho những nút nhấn còn lại nhưng lúc trả về là tt1 với dem1,….

*

Chương trình đếm thời hạn 10s sáng sủa đènKiểm tra nếu như tt0=1 tức bao gồm nhấn nút thì chương trình đếm bắt đầu đếm. Cứ sau 0.1ms thì cực hiếm dem0 tăng lên một đơn vị chức năng xem phần tính toán bên dưới chương trình chính. Khi giá bán trị nhỏ dại hơn 100000 tức chưa đủ 10s thì luôn luôn bật led vị trí RC0 sáng, lúc đạt ngưỡng 100000 tức đầy đủ 10s thì cho tt0=0 với tắt led địa điểm RC0, trái lại tt0=0 luôn luôn gán cực hiếm dem0=0 cùng tắt led chân RC0.Tương tự cho những chương trình đếm thời hạn còn lại,….

*

Chương trình chính triển khai toàn bộ hoạt động của vi tinh chỉnh và điều khiển dùng lập trình nút nhấn

Bắt đầu chương trình chính phải khởi tạo ngõ vào ra mang lại vi điều khiển. Một chân của vi tinh chỉnh và điều khiển thì làm nhiệm vụ I/O chính vì vậy phải ngoài tạo.Port C xuất dữ liệu cho led đơn bởi vì vậy xuất khởi sản xuất là 0x00.Port B kết nối với nút nhấn để đưa tín hiệu vào mang đến Vi tinh chỉnh và điều khiển nên khởi sinh sản là 0xff.Sử dụng timer0 để đếm thời gian 10s đề nghị khai báo t0_internal và sử dụng bộ chia timer02. Từ kia suy ra phương pháp tính:12M/4=3M sử dụng cỗ chia 4 là chia của phần cứng bởi nhà cung ứng quy định.3M/2=1.5M sử dụng bộ phân tách 2 của timer0, từ kia suy ra f = 1.5M => T = 2/3u
S
.Timer0 đếm 8bit => 2^8 = 256 xung => t0 max = 2/3u
S x 256 = 512/3ms ≈ 0.1706ms. Nên sử dụng số 512/3ms nhằm tính đừng quy thay đổi ra xấp xỉ sẽ dẫn mang lại sai số.Chọn thời gian tràn timer00.1ms => ban đầu đếm trường đoản cú 106.Kiểm tra nút nhấn đã có được nhấn không nếu gồm sẽ trả về kết quả tt với dem tương ứng.Kiểm tra nếu TMR0IF=1 timer0 đã đếm tràn tức timer0 vẫn đếm tới ngưỡng 255 thì triển khai xóa cờ tràn tức cho TMR0IF=0, tiếp đến khởi chế tác lại Timer0 về 106 để chu kỳ luân hồi sau được 0.1ms.Cuối cùng gọi những chương trình đếm thời hạn thực hiện, cứ sau 0.1ms thì sẽ tăng lên một quý giá theo đk đã được lập trình sẵn trong chương trình con.

*

Nói về nút dấn (button) thì bao gồm lẽ chúng ta đã thừa quen với nó rồi thậm chí bọn họ chúng ta chi tiết xúc cùng với nó mỗi ngày nữa, ví dụ như : bàn phím máy tính, những thiết bị điều khiển và tinh chỉnh tivi, sản phẩm điều hòa…..

Xem thêm: Cách Giúp Trẻ Ăn Ngon Miệng Hơn, Cách Giúp Trẻ Ăn Ngon Tăng Cân

2. Các loại button.

Nút nhấn thường thì có kích cỡ 6 – 12mm tùy trực thuộc vào mục tiêu sử dụng các bạn cũng có thể lựa chọn các loại nút nhấn cân xứng với mục đích của mình.

Loại này mặc dù là 4 chân, tuy nhiên thực chất cũng chỉ là 2 chân mà thôi, bạn coi hình dưới là rõ ngay.

Hiện ni trên thị trường có khá nhiều loại nút nhấn không giống nhau và ngân sách cũng khác nhau. Độ bền của nút nhấn cũng khá cao.3. Nút dìm trong tế bào phỏng.a.Tích rất mức thấp.

b. Tích cực mức cao.

- Đây là hình ảnh mô bỏng protues.

- Đây là code chương trình.

#include #include #define _XTAL_FREQ 8000000 // if 4Mhz is XT#include // 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 khổng lồ 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;

Code và mô phỏng được gia công trên
MPLAB X IDE cùng XC8 và
Protues 8.1


Tải tệp đính kèm:

2438-button_led_877a.rar (57.31K) ( giá tiền tải: Miễn giá thành )
Báo vi phạm phiên bản quyền Báo lỗi
Thành viên ko được phép share tài liệu, tài liệu gắn kèm bài viết (Có tầm giá hoặc có bản quyền tác giả) cho tất cả những người khác hoặc chia sẻ trên website khác.

*

Leave a Reply

Your email address will not be published. Required fields are marked *