Chào tháng 10
Cầu Long Biên
Slide 3
Hà Nội

Điều khiển LED 7 thanh phần 3: Điều khiển hiện thị số bất kỳ

Điều khiển hiển thị số bất kỳ lên LED 7 thanh

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:

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:

/ chia; % chia lấy phần dư.

Ví dụ ta có x=2017

Nghin = x/1000 = 2 dư 7

Tram=(x%1000)/100 = 0 dư 17    (x%1000 là 2017 chia cho 1000 lấy phần dư =017)

Chuc =( (x%1000)%100)/10  = 1 dư 7

Don_vi=((x%1000)%100)%10 = 7

Dựa vào các phép chia như trên ta có chương trình trong phần 2 được cải tiến như sau:

#include <AT89x51.h>

unsigned char led[10]= {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

unsigned char nghin,tram,chuc,dv;                     // khai báo biến nghin, chuc, tram,dv  để sử dụng

unsigned int x=2017;                                                     // Khai báo biến x, chỉ cần thay giá trị biến x, chương trình sẽ tự động tính toán, hiển thị

void TRE(unsigned int n)

          {

                   unsigned int i,j;

                   for(i=n;i>0;i--)

                   {

                             for(j=200;j>0;j--);

                   }

          }

void TT()                       // CHương trình con tách phần nghìn, trăm, chục, dv

{

          nghin=x/1000;

          tram=(x%1000)/100;

          chuc=((x%1000)%100)/10;

          dv =((x%1000)%100)%10;

}

void main()

          {

          TT();                                        // Gọi chương trình tính toán

                   while(1)

                             {

                                      P3=0x01;                //bat den 1

                                      P2=led[nghin];      // Hiển thị phần nghìn

                                      TRE(1);

                                      P3=0x02;                //bat den 2

                                      P2=led[tram];       Hiển thị phần trăm

                                      TRE(1);

                                      P3=0x04;                //bat den3

                                      P2=led[chuc];       // Hiển thị phần chục

                                      TRE(1);                                                       

                                      P3=0x08;             // Bật đèn 4

                                      P2=led[dv];           //Hiển thị phần đơn vị

                                      TRE(1);

                             }

          }

 

   

Hướng dẫn mô phỏng Vi điều khiển họ 8051 bằng phần mềm Proteus

Hướng dẫn mô phỏng Vi điều khiển họ 8051 bằng phần mềm Proteus

: 01/01/1970
Phần mềm Proteus là một phần mềm rất mạnh và được sử dụng phổ biến ở Việt Nam để mô phỏng mạch điện tử, trong đó có mạch vi điều khiển. Read More
Phần mềm lập trình Vi điều khiển Keil C 8051

Phần mềm lập trình Vi điều khiển Keil C 8051

: 01/01/1970
Phần mềm Lập trình cho họ Vi điều khiển 8051 sử dụng ngôn ngữ C Read More
Điều khiển LED 7 thanh phần 2: Phương pháp Quét LED

Điều khiển LED 7 thanh phần 2: Phương pháp Quét LED

: 01/01/1970
Phương pháp Quét LED tối ưu hóa việc hiển thị LED 7 thanh Read More
Điều khiển LED 7 thanh phần 4: Hiển thị từ 0 đến 9999

Điều khiển LED 7 thanh phần 4: Hiển thị từ 0 đến 9999

: 01/01/1970
Điều khiển LED 7 thanh phần 4: Điều khiển hiển thị từ 0 đến 9999 Read More