Thông báo

Collapse
No announcement yet.

led sao băng

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

  • led sao băng

    các ơi bac nào có mạch nguyên lí mạch led sao băng lám ơn gửi cho em với
    anhtuan.nt277@gmail.com
    cảm ơn các bác rất nhiều

  • #2
    có gì đâu mà cần nguyên lý nhỉ ??? 1 dây 8-10con led mắc thành// nhiều dây lại là ok thành viền sao băng lun ý chứ
    good luck !!!

    Email:
    Gmail:

    Comment


    • #3
      Nguyên văn bởi tuankep6 Xem bài viết
      có gì đâu mà cần nguyên lý nhỉ ??? 1 dây 8-10con led mắc thành// nhiều dây lại là ok thành viền sao băng lun ý chứ
      good luck !!!
      Bạn nói rõ tí hơn, mình chưa hiểu lắm. Mình tưởng phải dùng VDK chứ???

      Comment


      • #4
        bạn dùng 8 con led mắc vào 8 chân vdk 89s52, rồi viết ct, là nó chạy đc sao băng. không dùng vdk, có tết con voi cũng khó làm sao băng được.chúc bạn thành công
        không tiếp nhận cuộc gọi qua điện thoại vì đi làm toàn tập, tính khí thất thường, hay nóng võ công lại cao

        Comment


        • #5
          cảm ơn nhưng mình mới học môn này thật sự mình chua hiểu lắm về viết code bác nào có cho em xin với để em còn học tập

          Comment


          • #6
            Nguyên văn bởi hoanghung92 Xem bài viết
            Bạn nói rõ tí hơn, mình chưa hiểu lắm. Mình tưởng phải dùng VDK chứ???
            thì đúng rồi dùng VĐK nhưng bạn kia hỏi nguyên lý mà
            nếu làm nhiều dây (ghép thành viền) thì mắc như trên ak dễ thui có gì đâu nhỉ

            Email:
            Gmail:

            Comment


            • #7
              Nguyên văn bởi anhtuannt Xem bài viết
              cảm ơn nhưng mình mới học môn này thật sự mình chua hiểu lắm về viết code bác nào có cho em xin với để em còn học tập
              dùng ledim pro gì gì ấy dễ thôi

              Email:
              Gmail:

              Comment


              • #8
                cái này có thể giúp bạn hiểu
                SAO BANG.rar

                Comment


                • #9
                  cảm ơn các bác nhiều nhiều nha

                  Comment


                  • #10
                    cảm ơn bạn nhé

                    Comment


                    • #11
                      Nguyên văn bởi chjpchjp1991
                      của bạn nè..topic dientuvietnam http://www.dientuvietnam.net/forums/...-chuan-140464/
                      cảm ơn ban nhiều nha

                      Comment


                      • #12
                        Nguyên văn bởi phunghe Xem bài viết
                        cái này có thể giúp bạn hiểu
                        SAO BANG.rar
                        thanks bạn

                        Comment


                        • #13
                          Nguyên lý led sao băng là tạo một dãy led có độ sáng giảm dần gây hiệu ứng như vệt đuôi sao băng. Để điều chỉnh độ sáng của led ta dùng pwm (điều chế độ rộng xung).
                          Giả sử ta chọn vệt sao băng tạo bởi 8 led, ta đưa lần lượt 0x11111111b + delay_1ms, 0x01111111b+delay_30ms, 0x00111111b+delay_60ms, 0x00011111b+delay_60ms, 0x00001111b+delay_90ms, 0x00000111b+delay_120ms, 0x00000011b+delay_150ms, 0x00000001b+delay_180ms. Sau đó lặp lại khoảng 10 lần, rồi xoay một bit, bit dư sẽ chuyển sang chân của cổng kế tiếp. Cứ như vậy ta sẽ được hiệu ứng led sao băng. Ở đây không sử dụng độ trễ của các led đều nhau vì mắt không thể cảm nhận sự khác biệt rõ rệt với khoảng thời gian đều nhau như vậy.
                          Nếu muốn mở rộng số led, ta có thể dùng nhiều 74hc595, tao thành thanh ghi dịch nối tiếp sang song song. Khi đó cần chú ý tới fan-out của uC, để xem mở rộng được bao nhiêu, và lợi dụng 74hc595 có 2 thanh ghi (ghi dịch và chốt) để tạo ánh sáng không bị gián đoạn

                          Comment


                          • #14
                            Sử dụng 74hc595 rắc rối, băm sung em nó ra là ok. Đây nè
                            #include<regx51.h>
                            #define NumPort 32
                            char PWM[NumPort];
                            char chuki=0;

                            /*------------------------------------------------------------------------*/
                            void SetPort(char i, char v)
                            {
                            switch (i)
                            {
                            case 0: P1_0 = v; return;
                            case 1: P1_1 = v; return;
                            case 2: P1_2 = v; return;
                            case 3: P1_3 = v; return;
                            case 4: P1_4 = v; return;
                            case 5: P1_5 = v; return;
                            case 6: P1_6 = v; return;
                            case 7: P1_7 = v; return;

                            case 8: P3_0 = v; return;
                            case 9: P3_1 = v; return;
                            case 10: P3_2 = v; return;
                            case 11: P3_3 = v; return;
                            case 12: P3_4 = v; return;
                            case 13: P3_5 = v; return;
                            case 14: P3_6 = v; return;
                            case 15: P3_7 = v; return;

                            case 16: P2_0 = v; return;
                            case 17: P2_1 = v; return;
                            case 18: P2_2 = v; return;
                            case 19: P2_3 = v; return;
                            case 20: P2_4 = v; return;
                            case 21: P2_5 = v; return;
                            case 22: P2_6 = v; return;
                            case 23: P2_7 = v; return;

                            case 24: P0_7 = v; return;
                            case 25: P0_6 = v; return;
                            case 26: P0_5 = v; return;
                            case 27: P0_4 = v; return;
                            case 28: P0_3 = v; return;
                            case 29: P0_2 = v; return;
                            case 30: P0_1 = v; return;
                            case 31: P0_0 = v; return;
                            }
                            }
                            /*------------------------------------------------------------------------*/
                            void Timer0()interrupt 1
                            {
                            char i;
                            TF0=0;
                            TR0=0; //stop ngat
                            for (i=0 ; i<NumPort ; i++)
                            if (chuki < PWM[i]) SetPort(i, 1);
                            else SetPort(i, 0);

                            chuki += 5; //cho tu 5 den 10 se it ca dut, tuy hy nhe
                            if (chuki >= 100) chuki=0;
                            TR0=1; //tiep tuc ngat
                            }
                            void delay(unsigned int ms)
                            {
                            for (ms=ms*120; ms>0 ; ms--);
                            }
                            /*------------------------------------------------------------------------*/
                            void ShiftRightArray(char Arr[], char v1, char v2) // 0--------------->n
                            {
                            char i, temp=Arr[v2];
                            for (i=v2 ; i>v1 ; i--) Arr[i] = Arr[i-1];
                            Arr[v1] = temp;
                            }
                            void ShiftLeftArray(char Arr[], char v1, char v2) // 0<---------------n
                            {
                            char i, temp=Arr[v1];
                            for (i=v1 ; i < v2 ; i++) Arr[i] = Arr[i+1];
                            Arr[v2] = temp;
                            }
                            char MinArray(char Arr[], char v1, char v2)
                            {
                            char i, vMin=v1;
                            for (i=v1+1 ; i <= v2 ; i++)
                            if (Arr[i] < Arr[vMin]) vMin=i;
                            return vMin;
                            }
                            char MaxArray(char Arr[], char v1, char v2)
                            {
                            char i, vMax=v1;
                            for (i=v1+1 ; i <= v2 ; i++)
                            if (Arr[i] > Arr[vMax]) vMax=i;
                            return vMax;
                            }
                            void SetArray(char Arr[], char v1, char v2, unsigned char val)
                            {
                            char i;
                            for (i=v1 ; i <= v2 ; i++) Arr[i]=val;
                            }
                            /*---------------Hieu ung vien sao bang gom 8 cang cuc dep nhe---------------------------------*/
                            char IdBorder=0;
                            unsigned int StepBorder=0;
                            void Border()
                            {
                            if (StepBorder == 0)
                            {
                            PWM[0]=10; StepBorder++;
                            SetArray(PWM, 1, 7, 0);
                            }
                            else if (StepBorder < 224)
                            {
                            if (StepBorder%32 ==0)
                            {
                            IdBorder = MaxArray(PWM, 0, 7);
                            if (PWM[IdBorder] == 100)
                            {
                            PWM[0]=10;
                            SetArray(PWM, 1, 7, 0);
                            }
                            else PWM[(IdBorder+1)%8] = PWM[IdBorder] + 15;
                            }
                            StepBorder++;
                            ShiftRightArray(PWM, 0, 7);
                            }
                            else if (StepBorder == 224)
                            {
                            PWM[0]=10; StepBorder++;
                            SetArray(PWM, 1, 7, 0);
                            }
                            else if (StepBorder < 448)
                            {
                            if (StepBorder%32 ==0)
                            {
                            IdBorder = MaxArray(PWM, 0, 7);
                            if (PWM[IdBorder] == 100)
                            {
                            PWM[0]=10;
                            SetArray(PWM, 1,7,0);
                            }
                            else if (IdBorder == 0) PWM[7] = PWM[0] + 15;
                            else PWM[IdBorder-1] = PWM[IdBorder] + 15;
                            }
                            StepBorder++;
                            ShiftLeftArray(PWM, 0, 7);
                            }
                            else if (StepBorder == 448)
                            {
                            SetArray(PWM, 0, 7, 0);
                            IdBorder = 0; StepBorder++;
                            }
                            else if (StepBorder < 460)
                            {
                            if (StepBorder%2 == 0)
                            {
                            IdBorder =(IdBorder)?0:100;
                            SetArray(PWM, 0, 7, IdBorder);
                            }
                            StepBorder++;
                            }
                            else StepBorder=0;
                            }
                            /*------------------------------------------------------------------------
                            PWM[0] ...PWM[31] ung voi 32 cang 89c52
                            moi 1 bien PWM[i] co gia tri tu 0 -> 100 ung voi do sang
                            ---------------------------------------------------------------------------*/
                            main()
                            {
                            EA=0;
                            TMOD=0x02; //timer 0: che do 2: 8 bit tu dong nap lai
                            TH0 = 156;
                            TL0 = 156;
                            ET0=1;
                            EA=1;
                            TR0=1;

                            while (1)
                            {
                            TF0=0;
                            TR0=0; //stop ngat

                            Border();

                            TR0=1; //tiep tuc ngat
                            delay(5);
                            }
                            }
                            /**************************Chu thot thank cai di ************************************/

                            Comment

                            Về tác giả

                            Collapse

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

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

                            Collapse

                            • tuyennhan
                              Trả lời cho Tiếng Anh cho người Việt
                              bởi tuyennhan
                              Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
                              Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
                              hôm nay, 07:44
                            • vi van pham
                              Trả lời cho Tiếng Anh cho người Việt
                              bởi vi van pham
                              Cám ơn những lời chúc tốt đẹp của em.

                              Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

                              Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
                              hôm nay, 02:00
                            • nhathung1101
                              Trả lời cho Tiếng Anh cho người Việt
                              bởi nhathung1101
                              Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

                              Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

                              Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
                              Hôm qua, 22:18
                            • dinhthuong80
                              Trả lời cho Tiếng Anh cho người Việt
                              bởi dinhthuong80
                              Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                              Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                              Hôm qua, 14:51
                            • dinhthuong80
                              Trả lời cho Tiếng Anh cho người Việt
                              bởi dinhthuong80
                              Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                              Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                              Hôm qua, 14:39
                            • dinhthuong80
                              Trả lời cho Tiếng Anh cho người Việt
                              bởi dinhthuong80
                              Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                              Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                              Hôm qua, 14:28
                            • bqviet
                              Trả lời cho Tiếng Anh cho người Việt
                              bởi bqviet
                              Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                              21-02-2025, 20:26
                            • mèomướp
                              Trả lời cho Tiếng Anh cho người Việt
                              bởi mèomướp
                              Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                              21-02-2025, 12:32
                            • vi van pham
                              Trả lời cho Tiếng Anh cho người Việt
                              bởi vi van pham
                              Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                              Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                              20-02-2025, 21:31
                            • bqviet
                              Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                              bởi bqviet
                              Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                              20-02-2025, 17:22
                            Đang tải...
                            X