Thông báo

Collapse
No announcement yet.

xin hỏi về kĩ thuật quét led 7 đoạn !!!

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • xin hỏi về kĩ thuật quét led 7 đoạn !!!

    e mới tìm hiểu về cách quét led, bắt đầu từ bài toán đơn giản này
    #include <REGX51.H>
    unsigned char led,g;

    void display()
    { // 0 1 2 3 4 5 6 7 8 9 A B C D E F
    unsigned char male7[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 ,0x88,0x83,0xC6,0xA1,0x86,0x8E};
    switch (led)
    {
    case 0 :
    P1=male7[0];
    break;
    case 1 :
    P1=male7[1];
    break;
    case 2 :
    P1=male7[2];
    break;
    case 3 :
    P1=male7[3];
    break;
    case 4 :
    P1=male7[4];
    break;
    case 5 :
    P1=male7[5];
    break;
    case 6 :
    P1=male7[6];
    break;
    case 7 :
    P1=male7[7];
    break;

    case 8 :
    P1=male7[8];
    break;

    case 9 :
    P1=male7[9];
    break;
    }
    }


    void delay_100us()
    {
    TH0=0xFF; // FF9C= -100
    TL0=0x9C;
    TR0=1;
    while(1)
    {
    if(TF0==1) break;
    }
    TR0=0;
    TF0=0;
    }
    void delay(unsigned char t)
    {
    int i;
    for(i=0;i<t;i++)
    delay_100us();
    }



    void main()
    {
    unsigned char count=9;
    TMOD=0x01;

    count=9;


    while(1)

    {


    {
    P3=0;
    led=count;
    P3_0=1;
    display();
    delay(33);

    P3=0;
    led=count-1;
    P3_1=1;
    display();
    delay(33);


    P3=0;
    led=count-2;
    P3_2=1;
    display();
    delay(33);

    P3=0;
    led=count-3;
    P3_3=1;
    display();
    delay(33);

    }
    }
    }
    thực ra đoạn chương trình trên chỉ là hiển thị 4 chữ số 9 8 7 6 trên 4 led 7 đoạn. Như hình dưới các bác à

    nhưng giả dụ bây h em muốn đếm ngược, tức là mõi led sẽ giảm đi 1 sau 1 giây ( các led cứ đôc lập với nhau ) thì làm thế nào ạ

    thực ra là e đang muốn cải tiền cái mạch đếm ngược của e.. ko dùng con IC giải mã 7447 nữa ý mà mong các bác giúp e
    Attached Files
    |

  • #2
    Vi sao chân số 31 lại nối với Vcc thế, không phải là chân này để dùng giao tiếp với máy tính à, nối vào làm j

    Comment


    • #3
      nối như thế là do thực thi chương trình trong RAM nội mà bạn

      Nguyên văn bởi machithanh Xem bài viết
      e mới tìm hiểu về cách quét led, bắt đầu từ bài toán đơn giản này


      thực ra đoạn chương trình trên chỉ là hiển thị 4 chữ số 9 8 7 6 trên 4 led 7 đoạn. Như hình dưới các bác à

      nhưng giả dụ bây h em muốn đếm ngược, tức là mõi led sẽ giảm đi 1 sau 1 giây ( các led cứ đôc lập với nhau ) thì làm thế nào ạ

      thực ra là e đang muốn cải tiền cái mạch đếm ngược của e.. ko dùng con IC giải mã 7447 nữa ý mà mong các bác giúp e
      |

      Comment


      • #4
        Giao tiếp với LED 7 thanh

        Việc giao tiếp giữa Vi điều khiển và led 7 thanh nói chung là có nhiều phương pháp. Tôi có thể đưa ra một vài phương pháp như sau:
        1. Nối trực tiếp
        Nối trực tiếp các port của vi điều khiển với led (Tất nhiên là phải thêm cả điện trở hạn dòng nếu không thì led cháy hết)
        Ưu điểm: Lập trình đơn giản, dễ hiểu
        Nhược điểm: Cực kỳ tốn port
        nên chỉ ứng dụng trong những mạch đơn giản sử dụng it port
        2. Sử dụng mạch chốt 74373
        Cách này cũng đơn giản. Chỉ cẩn sử dụng một port của VDK có thể điều khiển được rất nhiều led 7 thanh
        Nhược điểm là rất tốn IC 74373 đồng thơi làm cho mạch kồng kềnh.
        3. Truyền nối tiếp
        Sử dụng chức năng truyền dữ liệu nối tiếp của vdk và các thanh ghi dịch ( chuyển từ nối tiếp ra song song, IC 4094 ) điều khiển được rất nhiều led
        Cách này khá phức tạp, và cũng khá tốn IC 4094, lập trình cũng khá phức tạp
        4. Quét led
        Sử dụng 1 port đièu khiển rất nhiều led
        truyền dữ liệu đến led nào thì bất led đó trong khi các led các đang tắt,
        nói chung là các led bật tắt liên tục, nhưng do đặc tính sinh học của mắt (lưu anh trong võng mạc ) cho nên ta vẫn thấy các led sáng cùng lúc
        5. Sử dụng 7447, cách này đơn giản
        1 port có thể điều khiển được 2 led trực tiếp
        ...
        ngoài ra còn có rất nhiều cách khác nữa pác nào muồn tìm hiều thì có thể liên lạc với tôi

        HOÀNG THẾ MẠNH
        LỚP 47K ĐTVT - KHOA CÔNG NGHỆ - ĐH.VINH
        JCMANH@GMAIL.COM

        JCMẠNH
        - Mua bán, sữa chữa thiết bị công nghiệp.
        - Cung cấp LKĐT, vật tư thiết bị quảng cáo!

        Comment


        • #5
          không, e muốn hỏi một bài toán đơn giản như là : quét led và đếm lùi
          như các bác nhìn tròn hình và code nhé:
          e nghĩ dùng ngắt Timer0 chẳng hạn
          #include <REGX51.H>
          unsigned char led1,g,h,i,count,dem;

          void display(unsigned char led)
          { // 0 1 2 3 4 5 6 7 8 9 A B C D E F
          unsigned char male7[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 ,0x88,0x83,0xC6,0xA1,0x86,0x8E};
          switch (led)
          {
          case 0 :
          P1=male7[0];
          break;
          case 1 :
          P1=male7[1];
          break;
          case 2 :
          P1=male7[2];
          break;
          case 3 :
          P1=male7[3];
          break;
          case 4 :
          P1=male7[4];
          break;
          case 5 :
          P1=male7[5];
          break;
          case 6 :
          P1=male7[6];
          break;
          case 7 :
          P1=male7[7];
          break;

          case 8 :
          P1=male7[8];
          break;

          case 9 :
          P1=male7[9];
          break;
          }
          }

          void delay_us(unsigned char g)
          {
          unsigned char i;
          for(i=0;i<g;i++)
          {
          TH0=0xFF; //-100 us
          TL0=0x9C;
          TR0=1;
          while(!TF0); //cho timer0 tràn
          TF0=TR0=0;
          }
          }


          void main()
          {
          unsigned char count=9;
          TMOD=0x01;
          count=9;
          P3=0xFF;
          timer0_init();

          while(1)
          {
          {
          P3=0;
          led1=count;
          P3_0=1;
          display(led1);
          delay_us(33);

          P3=0;
          led1=count-1;
          P3_1=1;
          display(led1);
          delay_us(33);

          P3=0;
          led1=count-2;
          P3_2=1;
          display(led1);
          delay_us(33);

          P3=0;
          led1=count-3;
          P3_3=1;
          display(led1);
          delay_us(33);
          }
          }
          }
          có nghĩa là các led độc lập với nhau và được quét liên tục, cứ sau 1 giâythì xảy ra ngắt và giá trị count được giảm đi 1 ....sau đó tiếp tục trở về chương trình chính lại quét các led liên tục và lúc này giá trị các led là 8765 ...sau đó lại là 7654....6543...

          nhưng mà e mô fỏng chả được j cả các bác xem cho e liệu cái code nó có vấn đề j ko ạ
          cám ơn các bác
          |

          Comment


          • #6
            phương pháp quét led 7 thanh

            bạn có thể tham khảo mạch khóa điện tử của tôi để tham khảo phương pháp quét led.
            nó cũng tương tự như mạch đếm của bạn thôi!
            Attached Files
            - Mua bán, sữa chữa thiết bị công nghiệp.
            - Cung cấp LKĐT, vật tư thiết bị quảng cáo!

            Comment


            • #7
              #include <REGX52.H>
              sbit led1=P2^0;
              sbit led2=P2^1;
              unsigned char font[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
              unsigned char nghin,tram,chuc,donvi;
              // Hàm delay 1s luôn
              void delay(unsigned char ss)
              {
              while(ss--)
              {
              unsigned int time=1000;
              while(time--)
              {
              TMOD=0x01;
              TH0=0xFC;
              TL0=0x18;
              TR0=1;
              while(!TF0);
              TR0=0;
              TF0=0;
              }
              }
              }
              /*****************************/
              /*******chuong trinh dem********/
              void count(unsigned int i)
              {
              for(i=0;i<100;i++){
              led1=led2=1;
              chuc=i/10;
              donvi=i%10;
              P0=font[donvi];
              led2=0;
              delay(1);
              led1=led2=led3=led4=1;
              P0=font[chuc];
              led1=0;
              delay(1);

              }

              }
              /***********************/
              /***main program**********/
              void main (){
              while(1){
              count(1);
              }
              }
              /*******end**********/
              Ở đây mình đếm tăng từ 0-99,sử dụng quyet led,neu như không chạy đúng bạn chỉ cần sửa delay() hợp lý là được rồi.Còn muốn đếm lùi bạn chỉ cần sửa for(i=0;i<100;i++) thành for(i=100;i>0;i--) là được.Nếu muốn đếm số lớn hơn nữa bạn thêm vào là được.

              Comment


              • #8
                void count(unsigned int i)
                {
                for(i=0;i<100;i++){
                led1=led2=1;
                chuc=i/10;
                donvi=i%10;
                P0=font[donvi];
                led2=0;
                delay(1);
                led1=led2=led3=led4=1;
                P0=font[chuc];
                led1=0;
                delay(1);

                }
                óe, nếu set cho led2 sáng rồi delay 1 giây xong mới set cho led 1 sáng và lại delay 1 giây thì làm sao mắt nhìn thành 2 led sáng đồng thời để biểu diễn chữ số có 2 chữu số được hả bạn

                mình muốn cứ quét liên tục , với thời gian trễ cho mỗi led là khoảng 3ms( khi đó sẽ quét khoảng 6 70 lần trên 1 giây và mắt nhìn như là các led sáng đồng thời ...nhưng sau 1s thì giá trị các led được giảm đi 1....mình chưa biết cái chỗ nhưng sau 1s thì giá trị các led được giảm đi 1làm như thế nào cả hichic..
                |

                Comment


                • #9
                  may anh nói ji em không hiểu ji hết
                  học điện tử có dễ không,em đang làm máy tính tính nghiên cứu điện tử nè bắt đầu từ đâu vậy mấy anh
                  |

                  Comment


                  • #10
                    Vi sao chân số 31 lại nối với Vcc thế, không phải là chân này để dùng giao tiếp với máy tính à, nối vào làm j
                    nối như thế là do thực thi chương trình trong RAM nội mà bạn
                    - Cả hai bạn đều có sự nhầm lẫn ở đây.
                    1/Chân EA bắt buộc phải được nối lên nguồn hoặc xuống mass thì 8051 mới hoạt động được.
                    2/Nếu EA nối lên nguồn, 8051 sẽ tìm và thực thi các lệnh được lưu trong bộ nhớ chương trình on-chip. Nếu EA nối xuống mass thì 8051 nó sẽ thực thi các lệnh được lưu trong bộ nhớ chương trình ngoài. EA chỉ có thể hoặc nối lên nguồn, hoặc nối đất, vì thế 8051 chỉ có thể sử dụng 1 trong 2 bộ nhớ chương trình. Nếu dùng bộ nhớ chương trình on-chip thì thôi bộ nhớ chương trình ngoài và ngược lại.
                    3/Các bạn lưu ý là đối với 8051 để nó có thể chạy được cần đảm bảo tối thiểu 4 yếu tố sau.
                    - Nguồn nối đúng.
                    - Mạch dao động nối đúng
                    - Mạch reset nối đúng
                    - EA được nối (lên nguồn hoặc xuống mass- không được thả nổi)
                    For a better world

                    Comment


                    • #11
                      Vi sao chân số 31 lại nối với Vcc thế, không phải là chân này để dùng giao tiếp với máy tính à, nối vào làm j
                      nối như thế là do thực thi chương trình trong RAM nội mà bạn
                      - Cả hai bạn đều có sự nhầm lẫn ở đây.
                      1/Chân EA bắt buộc phải được nối lên nguồn hoặc xuống mass thì 8051 mới hoạt động được.
                      2/Nếu EA nối lên nguồn, 8051 sẽ tìm và thực thi các lệnh được lưu trong bộ nhớ chương trình on-chip. Nếu EA nối xuống mass thì 8051 nó sẽ thực thi các lệnh được lưu trong bộ nhớ chương trình ngoài. EA chỉ có thể hoặc nối lên nguồn, hoặc nối đất, vì thế 8051 chỉ có thể sử dụng 1 trong 2 bộ nhớ chương trình. Nếu dùng bộ nhớ chương trình on-chip thì thôi bộ nhớ chương trình ngoài và ngược lại.
                      3/Các bạn lưu ý là đối với 8051 để nó có thể chạy được cần đảm bảo tối thiểu 4 yếu tố sau.
                      - Nguồn nối đúng.
                      - Mạch dao động nối đúng
                      - Mạch reset nối đúng
                      - EA được nối (lên nguồn hoặc xuống mass- không được thả nổi)
                      For a better world

                      Comment


                      • #12
                        ah, xin chào bác Toan.Lv..e đã gửi tin nhắn cho bác rồi e muốn hỏi bác cái phần code này của e, có tác dụng là đếm lùi 1 cột đếm từ 35 về 0 , 1 cột đếm từ 31 về 0

                        #include <REGX51.H>

                        #define LED1 P3_0
                        #define LED2 P3_1
                        #define LED3 P3_2
                        #define LED4 P3_3

                        unsigned char hangchuc1,hangdonvi1,hangchuc2,hangdonvi2,count1,c ount2,dem1,dem2;

                        void display(unsigned char led)
                        { // 0 1 2 3 4 5 6 7 8 9 A B C D E F
                        unsigned char male7[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 ,0x88,0x83,0xC6,0xA1,0x86,0x8E};
                        switch (led)
                        {
                        case 0 :
                        P1=male7[0];
                        break;
                        case 1 :
                        P1=male7[1];
                        break;
                        case 2 :
                        P1=male7[2];
                        break;
                        case 3 :
                        P1=male7[3];
                        break;
                        case 4 :
                        P1=male7[4];
                        break;
                        case 5 :
                        P1=male7[5];
                        break;
                        case 6 :
                        P1=male7[6];
                        break;
                        case 7 :
                        P1=male7[7];
                        break;

                        case 8 :
                        P1=male7[8];
                        break;

                        case 9 :
                        P1=male7[9];
                        break;
                        }
                        }


                        void setup_timer0(void)
                        { TMOD=0x10;
                        TH1=0x3C;
                        TL1=0xB0;
                        ET1=1;
                        EA=1;
                        TF1=0;
                        TR1=1;
                        }


                        void setup_timer1(void)
                        { TMOD=0x01;
                        TH0=0xEC;
                        TL0=0x77;
                        ET0=1;
                        EA=1;
                        TF0=0;
                        TR0=1;
                        }

                        //Ham ngat timer1 dung de quet
                        void T1_ISR(void) interrupt 3
                        {TR1=0;
                        TH1=0xEC; //5000us
                        TL1=0x77;
                        count2++;
                        LED1=0;
                        LED2=0;
                        LED3=0;
                        LED4=0;

                        if(count2==1)
                        {
                        display(hangchuc1);
                        LED1=1;
                        }
                        if(count2==2)
                        {
                        display(hangdonvi1);
                        LED2=1;
                        }
                        if(count2==3)
                        {
                        display(hangchuc2);
                        LED3=1;
                        }
                        if(count2==4)
                        {
                        display(hangdonvi2);
                        LED4=1;
                        count2=0; //Khoi dong lai bien dem
                        }
                        TF1=0;
                        TR1=1;
                        }

                        //Ham ngat timer0 dung de jam so dem1 dem2
                        void T0_ISR(void) interrupt 1
                        {TR0=0;
                        TH0=0x3C;
                        TL0=0xAF;
                        count1++;
                        if(count1==20)
                        {
                        dem1=dem1-1;
                        dem2=dem2-1;
                        }
                        TF0=0;
                        TR0=1;
                        }

                        void main()
                        {
                        TMOD=0x11;
                        setup_timer1();
                        setup_timer0();
                        count1=count2=hangchuc1=hangdonvi1=hangchuc2=hangd onvi2=0;
                        dem1=35;
                        dem2=31;
                        while(1)
                        {
                        hangchuc1=dem1/10;
                        hangdonvi1=dem1%10;
                        hangchuc2=dem2/10;
                        hangdonvi2=dem2%10;
                        }
                        }
                        đây là đoạn code mà e viết tham khảo theo mục đồng hồ số của bạn legosso .
                        e cũng đã mô phỏng rồi , cũng đếm lùi nhưng mà ko đúng là 1 giây ko hiểu mô phỏng có sai ko??? đây là file mô phỏng của e
                        Attached Files
                        Last edited by machithanh; 21-05-2009, 23:30.
                        |

                        Comment


                        • #13
                          To machithanh!
                          Tôi có xem lướt qua chương trình mà bạn viết, tôi thấy có dùng cả lệnh điều kiện switch ...case, không hiểu bạn có dùng thêm chức năng gì không hay chỉ là quét led đếm lùi thông thường. Nếu bài toán chỉ là quét LED 7 thanh và đếm lùi thì không cần thiết phải phức tạp như vậy.
                          1/Về phần cứng:
                          - 8 đường dữ liệu a,b,c...,dot bạn nối vào một port của VDK (qua trở hạn dòng) ví dụ port0 (P0.0,...,P0.7).
                          - Dùng 4 con trans để cấp nguồn cho LED 7 thanh, điều khiển đóng mở 4 trans này bằng 4 tín hiệu từ VDK.
                          - Nhớ là bạn nên mua LED dạng chung Anot, và trans nên dùng trans thuận (A564,A1015,A1013...)
                          2/Về phần mềm
                          a/Bạn lưu ý phương pháp quét LED gồm 4 bước sau:
                          - Đưa dữ liệu ra để tạo số
                          - Cấp nguồn cho digit(chữ số) tương ứng
                          - Trễ sáng
                          - Cắt nguồn của digit tương ứng (digit vừa được bật lên hồi nãy)
                          Tiếp tục với các bước như vậy cho các digit khác, trình tự quét giữa các digit là không quan trọng. Và bạn không được đảo trình tự 4 bước trên của một digit.
                          b/Đối với bài toán của bạn có thể làm như sau:
                          - Chương trình chính, vòng lặp while(1) cứ thực hiện quét LED bình thường để hiển thị giá trị của biến đếm.
                          - Sử dụng một ngắt timer, mỗi lần ngắt (sau 1s), giảm giá trị của biến đếm đi 1
                          - Nếu biến đếm giảm về 0, thì gán lại cho nó giá trị đầu.

                          Tôi gửi cho bạn tham khảo mạch nguyên lý quét 4 digit, và chương trình phần mềm viết bằng C, đếm lùi từ 9999 về 0000.
                          Attached Files
                          For a better world

                          Comment


                          • #14
                            #include <REGX51.H>

                            #define LED1 P3_0
                            #define LED2 P3_1
                            #define LED3 P3_2
                            #define LED4 P3_3
                            #define N1 300
                            unsigned char hangchuc1,hangdonvi1,hangchuc2,hangdonvi2,count1,c ount2,dem1,dem2;

                            void display(unsigned char led)
                            { // 0 1 2 3 4 5 6 7 8 9 A B C D E F
                            unsigned char male7[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 ,0x88,0x83,0xC6,0xA1,0x86,0x8E};
                            switch (led)
                            {
                            case 0 :
                            P1=male7[0];
                            break;
                            case 1 :
                            P1=male7[1];
                            break;
                            case 2 :
                            P1=male7[2];
                            break;
                            case 3 :
                            P1=male7[3];
                            break;
                            case 4 :
                            P1=male7[4];
                            break;
                            case 5 :
                            P1=male7[5];
                            break;
                            case 6 :
                            P1=male7[6];
                            break;
                            case 7 :
                            P1=male7[7];
                            break;

                            case 8 :
                            P1=male7[8];
                            break;

                            case 9 :
                            P1=male7[9];
                            break;
                            }
                            }

                            //Dinh nghia ham tre
                            void Delay(unsigned int n)
                            {
                            unsigned int i,j;
                            for (i=0;i<n;i++)
                            for (j=0;j<100;j++);
                            }

                            void setup_timer1(void)
                            { TMOD=0x10;
                            TH1=0x3C;
                            TL1=0xB0;
                            ET1=1;
                            EA=1;
                            TF1=0;
                            TR1=1;
                            }


                            //Ham ngat timer1 de jam so dem
                            void T1_ISR(void) interrupt 3
                            {TR0=0;
                            TH0=0x3C;
                            TL0=0xAF;
                            count1++;
                            if(count1==20)
                            {
                            dem1=dem1-1;
                            dem2=dem2-1;
                            if (dem1==0) dem1=31;
                            hangchuc1=dem1/10;
                            hangdonvi1=dem1%10;
                            hangchuc2=dem2/10;
                            hangdonvi2=dem2%10;

                            }
                            TF0=0;
                            TR0=1;
                            }


                            //Dinh nghia ham quet led 7 thanh
                            void ScanLED()
                            {
                            //Dieu khien DIGIT thu nhat
                            display(hangchuc1);//Dua du lieu de tao so
                            LED1 = 1;//Cap nguon cho LED sang
                            Delay(N1);//Tre sang
                            LED1 = 0;//Cat nguon

                            //Dieu khien DIGIT thu hai
                            display(hangdonvi1);//Dua du lieu de tao so
                            LED2= 1;//Cap nguon cho LED sang
                            Delay(N1);//Tre sang
                            LED2 = 0;//Cat nguon

                            //Dieu khien DIGIT thu ba
                            display(hangchuc2);//Dua du lieu de tao so
                            LED3=1; //Cap nguon cho LED sang
                            Delay(N1);//Tre sang
                            LED3 = 0;//Cat nguon

                            //Dieu khien DIGIT thu tu
                            display(hangdonvi2);//Dua du lieu de tao so
                            LED4 = 1;//Cap nguon cho LED sang
                            Delay(N1);//Tre sang
                            LED4 = 0;//Cat nguon
                            }



                            void main()
                            {
                            TMOD=0x10;
                            P3=0;
                            setup_timer1();
                            setup_timer0();
                            count1=count2=hangchuc1=hangdonvi1=hangchuc2=hangd onvi2=0;

                            dem1=35;
                            dem2=31;
                            while(1)
                            {
                            ScanLED();
                            }
                            }
                            e viết theo cái khung bác cho e ý nhưng mà ko chạy bác à , e hiểu ý bác rồi :
                            tức là mình cứ quét 4 led trong 1 vòng lặp while vô hạn , sử dụng ngắt timer1 để cứ sau 1s thì giảm số đếm và quét tiếp .. cứ thế cứ thế ---> nhưng mà nó chả quét bác à
                            ko hiểu có sai ở đâu ko
                            |

                            Comment


                            • #15
                              còn e dùng cái cách cảu bạn legosso ý : tức là 1 ngắt dùng đẻ quét 1 ngắt dùng để giảm số đếm thì ok

                              như mà vẫn cần fair chỉnh lại cái giá trị của Timer 0 dùng để jamr số đếm sau 1 s thì mới đúng là 1 s

                              em set là
                              //Ham ngat timer1 de jam so dem
                              void T1_ISR(void) interrupt 3
                              {TR0=0;
                              TH0=0x3C;
                              TL0=0xAF; tức là -50000us *20 =1s

                              count1++;
                              if(count1==20)
                              {
                              dem1=dem1-1;
                              dem2=dem2-1;
                              if (dem1==0) dem1=31;
                              hangchuc1=dem1/10;
                              hangdonvi1=dem1%10;
                              hangchuc2=dem2/10;
                              hangdonvi2=dem2%10;

                              }
                              TF0=0;
                              TR0=1;
                              }
                              thì mạch đếm rất chậm

                              fai set là Timer =7FAF tương đương với -32848 us sau do 32848* 20 = 0,656960 s thì mô fongr mới chuẩn 1 giây

                              nói chung là cái khoản thời gian delay bằng ngắt này cũng chuối tại sao lý thuyết với thực tê slaij khác nhau bác nhỉ

                              à mà cái mạch của e là cái mạch đèn giao thông e làm bài tập lớn ý mà .. căn bản e muốn thử cải tiến xem
                              công nhận nếu àm quét led thì mạch bé bằng cái điện thoại di động
                              |

                              Comment

                              Về tác giả

                              Collapse

                              machithanh Tìm hiểu thêm về machithanh

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X