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

Đ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: Điều khiển hiển thị từ 0 đến 9999

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

 

Ở phần 3 chúng ta đã làm bài điều khiển LED 7 thanh sáng một số x bất kỳ, khi đã hiểu và làm được phần 3 thì chuyển sang phần 4 điều khiển LED 7 thanh sáng từ 0 -  9999 rất dễ dàng. Chìa khóa của bài này chính là cho giá trị của x tự động tăng  từ 0 – 9999, sau mỗi lần tăng thì ta gọi chương trình con tính toán để tính lại các giá trị nghin, tram, chuc, đơn vị  để chương trình hiển thị được chính xác.

Như vậy bình thường chương trình luôn làm nhiệm vụ hiển thị, khi đạt thời gian thì tăng giá trị của x và tính toán lại, sau đó quay lại nhiệm vụ hiển thị:

Sơ đồ:

 

Chương trình:

 

# include <AT89x51.h>

unsigned char led[10]= {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; // Khai báo biến mảng chứa các giá trị hiển thị các số từ 0-9

unsigned char nghin,tram,chuc,dv;         // Khai báo biến nghin, tram, chuc, dv để sử dụng trong chương trình

unsigned int x=0;           // Khai báo biến x, x là số hiển thị và có giá trị ban đầu bằng 0

unsigned char k;            // Khai báo biến k để sử dụng trong chương trình

void TRE(unsigned int n)            // Chương trình con tạo trễ

            {

                        unsigned int i,j;

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

                        {

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

                        }

            }

void TT()           // Chương trình con tính toán phân tách số x thành phần nghìn, trăm, chục, đơn vị

{

            nghin=x/1000;

            tram=(x%1000)/100;

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

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

}

void main()

            {

            P3=0x00;                      // Tắt tất cả các đèn

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

                        while(1)                        

                                    {

                                                P3=0x01;                         //Bật đèn 1

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

                                                TRE(2);

                                                P3=0x02;                         //Bật đèn 2

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

                                                TRE(2);

                                                P3=0x04;                         //Bật đèn 3

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

                                                TRE(2);                                                              

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

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

                                                TRE(2);

                                                k++;                             // Mỗi lần kết thúc 1 vòng hiển thị tăng giá trị của k thêm 1

                                     if(k>40)                        // Nếu đoạn mã hiển thị được 40 vòng (khoảng 1s) thì tăng giá trị của x thêm 1 và xóa k về 0 cho lần đếm 40 vòng tiếp theo

                                                {                         

                                                            x++;

                                                            k=0;

                                                            TT();             // Gọi chương trình tính toán cho số x vì x vừa thay đổi giá trị (tăng thêm 1) nên phải gọi chương trình tính toán lại

                                                            if(x>9999)         // Nếu x>9999 tức là đếm xong thì xóa x về 0 để đếm lại từ đầu

                                                                        {

                                                                           x=0;

                                                                        }

                                                }

                                    }           // Ngoặc kết thúc vòng lặp While

            }           // Ngoặc kết thúc chương trình chính main

 

 

 

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 3: Điều khiển hiện thị số bất kỳ

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

: 01/01/1970
Điều khiển hiển thị số bất kỳ lên LED 7 thanh Read More