PIC16F84A – Làm việc với đầu vào
Chúng tôi hy vọng mọi người đọc bài viết về lập trình PIC16F84A sẽ hiểu cách tải chương trình vào bộ điều khiển, và cũng kiểm tra hoạt động của bộ điều khiển. Trong bài viết trước đó, chúng ta đã thảo luận về việc tạo ra một đầu ra (bật đèn LED) bằng PIC16F84A. Ở đây, tôi sẽ nói về cách làm việc với đầu vào - Làm thế nào bạn sẽ cung cấp đầu vào cho PIC của bạn và làm thế nào để phản ứng với nó. Như mọi người đã biết, bộ điều khiển có 13 chân I/O. 13 chân này có thể được cấu hình là đầu vào hoặc đầu ra. Việc tạo ra đầu ra trên một chân là khá dễ dàng như mọi người đã biết. Chỉ cần đánh dấu chân đó là đầu ra và gửi tín hiệu cao vào đó. Nhưng làm thế nào để PIC chấp nhận đầu vào?
Có hai cách mà một PIC (hoặc bất kỳ bộ điều khiển nào) có thể cảm nhận đầu vào kỹ thuật số - chuyển đổi từ mức thấp lên cao và từ mức cao xuống thấp.
Từ thấp đến cao:
Trong phương pháp này, chọn một chân, đánh dấu nó là đầu vào, kết nối đầu vào với mặt đất thông qua một trở lớn (ví dụ 10K) sau đó kiểm tra chân để xem có điện áp cao không. Trở liên kết giữa đầu vào và mặt đất được gọi là "trở kéo xuống" vì nó kéo xuống mức điện áp của chân kết nối khi không có đầu vào.
Từ cao đến thấp:
Trong phương pháp này, chọn một chân, đánh dấu nó là đầu vào, kết nối đầu vào với nguồn Vcc thông qua một trở lớn (ví dụ 10K) sau đó kiểm tra chân để xem có điện áp thấp không. Ở đây, trở liên kết giữa chân đầu vào và nguồn Vcc được gọi là "trở kéo lên" vì nó kéo lên mức điện áp của chân kết nối khi không có đầu vào.
Chương trình và mạch điện để nhận đầu vào và bật đèn LED:
BẮT ĐẦU BSF STATUS,05H - BẮT ĐẦU chỉ là một nhãn. Lệnh tiếp theo BSF STATUS,05H thiết lập bit thứ 5 của thanh ghi STATUS - để điều hướng đến ngân hàng 1.
MOVLW B’11110000‘ - chuyển giá trị 11110000 vào thanh ghi W.
MOVWF TRISB - di chuyển nội dung của thanh ghi W vào thanh ghi TRISB. (tức là) Thiết lập bốn chân đầu của PORTB thành đầu vào và bốn chân cuối của PORTB thành đầu ra.
BCF STATUS,05H - Xóa bit thứ 5 của thanh ghi STATUS. Điều này rõ ràng điều hướng trở lại ngân hàng 0.
VÒNG LẶP BTFSS PORTB,4 - VÒNG LẶP cũng là một nhãn. BTFSS là một lệnh mới (Kiểm tra bit trong tập tin, bỏ qua nếu được đặt) có nghĩa là, kiểm tra chân RB4 (trong trường hợp này), nếu nó được đặt, thì bỏ qua bước tiếp theo.
GOTO LOOP - Sự giải thích rõ ràng. Lệnh này báo cho bộ điều khiển để đi đến nhãn VÒNG LẶP. Vì vậy, điều gì xảy ra ở đây là, lệnh BTFSS kiểm tra chân RB4 cho một chuyển đổi từ thấp lên cao và nếu không tìm thấy bất kỳ thay đổi nào trong RB4, nó sẽ tiếp tục tuần tự và vì lệnh tiếp theo được chỉ định là đi tiếp tục đến BTFSS, chương trình lặp lại ở đây cho đến khi RB4 được đặt. Khi RB4 được đặt, lệnh BTFSS bỏ qua dòng tiếp theo. Do đó, GOTO LOOP được bỏ qua. Do đó, chương trình mất vòng lặp và tiếp tục một cách bình thường.
BSF PORTB,0 - Lệnh này thiết lập RB0. Vì vậy, việc kết nối một đèn LED vào RB0 sẽ đưa đèn LED lên cao.
GOTO START - Lần nữa bắt đầu chương trình từ đầu.
Sơ đồ mạch
Hotline: 0979 466 469