Ở bài này sẽ hướng dẫn chúng ta lập trình tinh chỉnh và điều khiển Output cơ bạn dạng thực hành cùng với LED đơn. Các bạn thực hiện tại vẽ mạch sau trong Proteus.
Bạn đang xem: Chương trình led đơn sáng dần

I.Lập trình điều khiển và tinh chỉnh từng pin sạc của vi điều khiển.
8051 đến phép họ tác hễ tới từng chân IO của vi điều khiển. Để sử dụng kĩ năng này chúng ta có thể sử dụng khai báo sbit để khái niệm tên đến chân chúng ta muốn sử dụng. Khai báo sbit được tiến hành theo mẫu mã sau:
sbit LED = P1^0;
Ở đây, chân P1.0 được định nghĩa có tên là LED.
Khi chúng ta gán chân đó bởi giá trị 0 thì cổng đầu ra sẽ ở tại mức 0V còn khi các bạn gán mang đến chân đó ở tại mức 1 thì vẫn có mức điện áp ra là 5V.
Ví dụ ở chương trình sau họ sẽ thực hiện định nghĩa sbit để điều khiển và tinh chỉnh chân P1.0 của 8051 thực hiện công dụng nhấp nháy một bé LED. Chúng ta xem code theo mẫu sau.
#include sbit LED = P1^0; void Fn_Delay (unsigned int vrui_Time);int main() while(1) LED = 0; Fn_Delay(50000); LED = 1; Fn_Delay(50000); return 0;void Fn_Delay (unsigned int vrui_Time) while(vrui_Time --);
II.Lập trình điều khiển và tinh chỉnh theo Port của vi điều khiển.
Ngoài tinh chỉnh theo từng chân chúng ta cũng có thể xuất tài liệu ouput theo cả Port trên 8051. 8051 là một trong vi tinh chỉnh và điều khiển 8 bit và một Port với điều kiện các Pin đó tầm thường một Port. Để can thiệp mang lại một Port các bạn chỉ phải gán dữ liệu các bạn mong mong mỏi cho thương hiệu Port đó. Ví dụ như sau:P2 = 0x55;
Với câu lệnh trên các bạn đã xuất dữ liệu trên Port 2 như sau: 0-1-0-1-0-1-0-1 tương ứng với chiều trường đoản cú P2.7 cho tới P2.0.
Giới thiệu về toán tử | và &:
Toán tử | là toán tử OR bit còn toán tử và là toán tử và bit.
0 | 0 = 00 | 1 = 11 | 1 = 10 & 0 = 00 & 1 = 01 và 1=1
Đây là 2 toán tử rất hay sử dụng trong câu hỏi khi bạn có nhu cầu tác động mang đến một vài bit trong một Port mà lại các bạn có nhu cầu xuất dữ liệu.
2 toán tử >. Đây là 2 toán tử dùng để làm dịch bít. Chúng ta quan sát các ví dụ sau để hiểu rõ về 2 toán tử này:
0x01 00000010
0x10>>1 = 0x08; //00010000 -> 00001000
Sau đó là một ví dụ sinh sản hiệu ứng LED chạy từ trên xuống cùng lặp lại.
int main(){ unsigned char i; while(1) for (i = 0; i Sau đây là một ví dụ sản xuất hiệu ứng LED chạy từ dưới lên và lặp lại.
int main() unsigned char i; while(1) for (i = 0; i >i; Fn_Delay(5000); return 0;Sử dụng hàm con
Sau đấy là 1 hàm nhỏ làm 8 led sáng sủa dần, cần sử dụng mảng
void nhayDanPhai(){ int i; char sangDan<>=0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC,0xFE, 0xFF; for(i = 0; i
Hàm nhỏ sau làm sáng dần 8 led, sử dụng vòng lặp:
void nhayDanTrai(){ int i; P1 = 0x01; for(i = 0; i
Hàm con tiếp sau làm 8 Led sáng nhỏ giọt.
void sangNhoGiot(){ int i,j, K = 0x00; for(i = 7; i>=0; i--) { for(j =0; j
CẢM ƠN CÁC BẠN ĐÃ ĐỌC BÀI VIẾT CỦA MÌNH CÁC BẠN NHỚ like VÀ ĐĂNG KÝ KÊNH YOUTUBE CỦA MÌNH ĐỂ xem NHIỀU video HƯỚNG DẪN BỔ ÍCH