Bài tập về led 7 thanh trên keilc năm 2024

Uploaded by

trungnb22

0% found this document useful (0 votes)

11K views

7 pages

Copyright

© Attribution Non-Commercial (BY-NC)

Available Formats

DOC, PDF, TXT or read online from Scribd

Share this document

Did you find this document useful?

Is this content inappropriate?

0% found this document useful (0 votes)

11K views7 pages

Giải mã BCD sang led 7 đoạn

Uploaded by

trungnb22

Jump to Page

You are on page 1of 7

Search inside document

Reward Your Curiosity

Everything you want to read.

Anytime. Anywhere. Any device.

No Commitment. Cancel anytime.

Bài tập về led 7 thanh trên keilc năm 2024

Các bạn đã hiểu về phương pháp quét LED ở phần 2. Trong phần 2 ta hiển thị các số theo mong muốn nhưng thao tác đưa dữ liệu ra mang tính thủ công và không linh hoạt:

Bài tập về led 7 thanh trên keilc năm 2024

Xuất dữ liệu hiển thị số 2017.

Để hiển thị số 2017 ta phải lần lượt gõ lệnh đưa dữ liệu của từng số ra, khi muốn hiển thị số khác ta phải vào trực tiếp các dòng lệnh để sửa. Trong thực tế người ta dùng thuật toán để tách các số ra để hiển thị.

Như ta đã biết mỗi LED 7 thanh chỉ có thể hiện thị các số thập phân từ 0-9, và từ các số này có thể ghép để hiển thị tất cả các số khác. Ví dụ số 2017 là các số đơn lẻ 2-0-1-7. Vậy ta sẽ dùng thuật toán tách các số 2-0-1-7 từ số 2017 ra để hiển thị lên các đèn. Ta sẽ dùng 2 lệnh chử yếu:

I.Nguyên lý điều khiển LED 7 thanh

Bài trước chúng ta học lập trình giao tiếp để điều khiển Output (LED) theo Pin và theo Port. Ở bài này chúng ta sẽ áp dụng những kiến thức đó để thực hiện lập trình điều khiển hiển thị trên LED 7 thanh theo để hiển thị theo ý mình.

1.Sau đây là hình ảnh và chi tiết về 1 con LED 7 thanh.

Bài tập về led 7 thanh trên keilc năm 2024

2.Bảng dữ liệu mã hóa với các số từ 0-9 theo kiểu LED sử dụng Anot chung.

Bài tập về led 7 thanh trên keilc năm 2024

II.Các Bài code điều khiển LED 7 thanh

1.Điều khiển 1 LED 7 thanh.

Để thực hiện bài tập này, hãy vẽ mạch mô phỏng như hình. Linh kiện cần thêm cho bài này là Led 7 cạnh, Anode chung. Hãy search từ “7SEG-COM_ANODE”.như hình sau:

Bài tập về led 7 thanh trên keilc năm 2024

Hãy tạo 1 folder riêng trong đó chứa file mô phỏng của Proteus, chứa file Project mới của KeilC và chứa file main.c của project mới. Sau đây là chương trình điều khiển hiển thị lần lượt các số từ 0 đến 9 trên LED 7 thanh.

Code đoạn code sau vào trong file main.c

include

unsigned char LED7SEGCA[11] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; void Fn_Delay (unsigned int Time){ while(Time--); } void tangdananot() { unsigned char i; for(i = 0; i <10; i++){ P2 = LED7SEGCA[i]; Fn_Delay(50000); } } void giamdananot() { unsigned char i; for(i = 9; i >0; i--){ P2 = LED7SEGCA[i]; Fn_Delay(50000); } } int main (){ while(1){ tangdananot(); giamdananot(); } return 0; }

Ở đây chúng ta thực hiện lưu mảng dữ liệu LED 7 thanh ở bảng trên vào một mảng. Khi đó phần tử LED7SEG[i] chứa dữ liệu hiển thị của số i trên LED thanh ở trên mạch với điều kiện i nằm từ 0-9. Ở vòng lặp for, chúng ta thực hiện đẩy dữ liệu ra chân Port P2 lần lượt theo các mã của các số từ 0 đến 9 ra. Chạy mô phỏng chúng ta sẽ thấy các số này lần lượt hiển thị trên LED 7 thanh.

2.Điều khiển nhiều LED 7 thanh.

Ở bài toán điều khiển LED 7 thanh chúng ta có thể áp dụng theo bài toán bước 1 nối mỗi con LED 7 thanh vào 8 chân data độc lập. Tuy nhiên việc này sẽ gây lãng phí số chân điều khiển LED và limit số LED có thể điều khiển. Với số LED tăng lên đủ lớn số chân cần cũng tăng lên rất nhiều. Để giải quyết bài này có một kỹ thuật nêu ra là kỹ thuật “Quét LED”.

Kỹ thuật Quét LED thực hiện theo nguyên tắc một thời điểm chỉ bật một LED 7 thanh với dữ liệu nó cần hiển thị, các LED còn lại được tắt. Việc quét LED thực hiện luôn phiên sáng các LED với yêu cầu trên. Quá trình quét LED chuẩn được thực hiện theo các bước sau:

  • Xuất ra số muốn hiển thị.
  • Cấp nguồn cho L7S muốn hiển thị.
  • Trễ 1 khoảng thời gian ngắn để duy trì sáng
  • Cắt nguồn LED vừa hiển thị. Lặp lại quy trình 4 bước với đèn L7S tiếp theo

Sau đây là một đoạn chương trình hiển thị các số từ 00-99:

include

sbit L7S1 = P3^0; sbit L7S2 = P3^1; char LED7SEG[11] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; void Fn_Delay (unsigned int _vrui_Time){ while(_vrui_Time--); } void thanhtangdananot() { char i; int j; for(i = 0; i < 100; i++){ for (j = 0; j < 30; j++) { P2 = LED7SEG[i/10]; L7S1 = 0; Fn_Delay(600); L7S1 = 1; P2 = LED7SEG[i%10]; L7S2 = 0; Fn_Delay(600); L7S2 = 1; } } } void thanhgiamdananot() { char i; int j; for(i = 99; i >0; i--){ for (j = 0; j < 30; j++) { P2 = LED7SEG[i/10]; L7S1 = 0; Fn_Delay(600); L7S1 = 1; P2 = LED7SEG[i%10]; L7S2 = 0; Fn_Delay(600); L7S2 = 1; } } } int main () { L7S1 = 0; L7S2 = 0; while(1){ thanhtangdananot(); thanhgiamdananot(); } return 0; }

Các bạn vẽ mô phỏng trong proteus như hình : chúng ta dung tranzitor npn

Bài tập về led 7 thanh trên keilc năm 2024

3.Thực hiện hiển thị 4 LED 7 thanh hiển thị lần lượt các số từ 0000-9999.

Chọn LED 7 thanh, loại 4 số. Sử dụng đoạn code sau để mô phỏng.

include

sbit LED1 = P3^0; sbit LED2 = P3^1; sbit LED3 = P3^2; sbit LED4 = P3^3; unsigned char LED7SEG[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; void Delay (unsigned int Time) { while(Time--); } void main (void) { unsigned int i; unsigned int j; LED1 = 0; LED2 = 0; LED3 = 0; LED4 = 0; while(1) { for(i = 0; i < 10000; i++) { for (j = 0; j < 100; j++) { P2 = LED7SEG[i/1000]; LED1 = 0; Delay(100); LED1 = 1; P2 = LED7SEG[(i%1000)/100]; LED2 = 0; Delay(100); LED2 = 1; P2 = LED7SEG[(i%100)/10]; LED3 = 0; Delay(100); LED3 = 1; P2 = LED7SEG[i%10]; LED4 = 0; Delay(100); LED4 = 1; } } } }

Bài tập về led 7 thanh trên keilc năm 2024

Cảm ơn các bạn đã theo dõi bài viết, các bạn hãy đăng ký, like kênh youtube của mình để xem nhiều video hướng dẫn hơn nhớ.