Thông báo

Collapse
No announcement yet.

Xin code chỉnh tốc độ nháy của mạch LED dùng 8051

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

  • Xin code chỉnh tốc độ nháy của mạch LED dùng 8051

    Trước giờ e làm mạch nháy LED chỉ điều chỉnh tốc độ nháy bằng cách chỉnh delay trong chương trình, nhưng bây giờ e muốn chỉnh bằng volume trên mạch luôn. Vậy ai có thể hướng dẫn e viết code được không!? (code C).
    E cảm ơn nhiều!
    0979.316.957
    0905.028.957

  • #2
    Đơn giản hơn là dùng Switch còn nếu bạn muốn dùng chiết áp thì phải làm mạch chuyển đổi ADC dùng con ADC0804 cái này lên google tìm rất nhiều tut nói vế cái này. khi đọc được giá trị ADC rồi thì chỉ việc thay delay bằng giá trị đó thôi. ví dụ trước đây viết là delay_ms(1000) chẳng hạn thì giờ thay bằng một biến delay_ms(ms); giá trị ADC đọc về từ 0-255 nhân với một hệ số cho phù hợp.
    Phone No: 0989.437.312
    Email:
    Live in: Ha noi

    Comment


    • #3
      Mình đang tập tò viết code nên mấy cái vụ này bó tay, mình thấy người ta dùng con 555 tạo xung rồi đưa vào VDK nhưng không biết viết code ra sao
      0979.316.957
      0905.028.957

      Comment


      • #4
        Phương pháp đó cũng hay con 555 có thể tạo thay đổi tần số xung bằng chiết áp. lúc đó vi điều khiển chỉ đọc tần số xung về để tính ra thời gian trễ thôi. phương pháp như thế này: bạn dùng 1 timer1 chạy ở mode bình thường và sử dụng ngắt tràn. còn con 555 tạo xung đưa vào chân ngắt ngoài với chế độ ngắt là sườn lên. cứ mỗi lần xảy ra ngắt bạn đọc giá trị của timer1 trừ đi giá trị của timer1 trước đó từ đó tính được thời gian trong 1 chu kỳ(T) lấy 1/T ra tần số.
        Phone No: 0989.437.312
        Email:
        Live in: Ha noi

        Comment


        • #5
          Cảm ơn bạn! để mình nghiên cứu tiếp
          0979.316.957
          0905.028.957

          Comment


          • #6
            Đây là một ví dụ về đo tần số cách này đơn giản hơn đây là bài tập mình làm chương trình đo tần số hiển thị lên máy tính bạn có thể tham khảo
            Do tan so.rar
            Phone No: 0989.437.312
            Email:
            Live in: Ha noi

            Comment


            • #7
              mình thấy trên trang phuclanshop cua thầy Vương Khánh Hưng thì có hướng dẫn như thế này:
              "Mạch chỉnh tốc độ nhịp


              Ở đây chúng ta cho kết hợp phần mềm và phần cứng để làm thay đổi nhịp nháy. Dùng mạch nạp xả tạo bởi tụ C8 (100uF) và điện trở R2 + RV1 và điều khiển đóng mở với transistor Q1, xung tắt mở lấy trên chân p3.6, sau đó dùng câu lệnh jb (jump bit...) để theo dõi bit 0/1 trên chân p3.7. Vậy Bạn có thể làm cho mức áp trên chân 17 lên chậm bằng cách tăng biến trở RV1, đều này sẽ giảm nhịp nháy. Tóm lại, giảm trị RV1 nhịp nhanh và tăng trị RV1 sẽ có nhịp chậm."

              e thấy cái này cũng hay đấy nhưng chưa biết cách viết chương trình ntn. các bác nghiên cứu rồi viết cho e xin 1 chương trình đơn giản để test với

              Comment


              • #8
                Trong bài trên thì mình dùng ngắt timer0 để tạo thời gian 1 giây, timer 2 chạy ở chế độ counter tín hiệu xung đưa vào chân T2 khi đó cứ sau 1 giây đọc giá trị của counter 2 và clear nó đi cho lần đọc tiếp theo giá trị đó là số xung trên 1 giây chính là tần số của xung.
                Phone No: 0989.437.312
                Email:
                Live in: Ha noi

                Comment


                • #9
                  Nguyên văn bởi vietlamdt Xem bài viết
                  mình thấy trên trang phuclanshop cua thầy Vương Khánh Hưng thì có hướng dẫn như thế này:
                  "Mạch chỉnh tốc độ nhịp


                  Ở đây chúng ta cho kết hợp phần mềm và phần cứng để làm thay đổi nhịp nháy. Dùng mạch nạp xả tạo bởi tụ C8 (100uF) và điện trở R2 + RV1 và điều khiển đóng mở với transistor Q1, xung tắt mở lấy trên chân p3.6, sau đó dùng câu lệnh jb (jump bit...) để theo dõi bit 0/1 trên chân p3.7. Vậy Bạn có thể làm cho mức áp trên chân 17 lên chậm bằng cách tăng biến trở RV1, đều này sẽ giảm nhịp nháy. Tóm lại, giảm trị RV1 nhịp nhanh và tăng trị RV1 sẽ có nhịp chậm."

                  e thấy cái này cũng hay đấy nhưng chưa biết cách viết chương trình ntn. các bác nghiên cứu rồi viết cho e xin 1 chương trình đơn giản để test với
                  Bài viết này mình cũng xem qua rồi nhưng mà hok có code
                  0979.316.957
                  0905.028.957

                  Comment


                  • #10
                    Nguyên văn bởi vietlamdt Xem bài viết
                    e thấy cái này cũng hay đấy nhưng chưa biết cách viết chương trình ntn. các bác nghiên cứu rồi viết cho e xin 1 chương trình đơn giản để test với
                    Mạch này thực tế chắc là ok còn trên mô phỏng thì hơi khó mô phỏng.
                    Code:
                    #include <REGX51.H>
                    
                    void main(void)
                    {
                    	while(1)
                    	{
                    	P3_6=1;
                    	while(P3_7);
                    	P3_6=0;
                    	while(!P3_7);
                    	P1=~P1;
                    	}
                    }
                    Phone No: 0989.437.312
                    Email:
                    Live in: Ha noi

                    Comment


                    • #11
                      chương trình e viết thế này thì làm sao mấy hunh

                      #include <regx51.h>
                      #define led P0
                      void delay(unsigned int ms)
                      {
                      unsigned int i;
                      unsigned char j;
                      for(i=0;i<ms;i++)
                      {
                      for(j=0;j<125;j++)
                      {
                      }
                      }
                      }
                      main()
                      {
                      while(1)
                      {
                      P0=0x00;delay(1000);
                      P0=0x00;delay(1000);
                      P0=0x04;delay(1000);
                      P0=0x08;delay(1000);
                      P0=0x10;delay(1000);
                      P0=0x20;delay(1000);
                      P0=0x40;delay(1000);
                      P0=0x80;delay(1000);
                      }
                      }

                      Comment


                      • #12
                        ko ai up gium e het

                        Comment


                        • #13
                          theo mình thì dùng 555 tạo ra xung có tần số thay đổi theo biến trở
                          đưa xung vào 1 chân nào đó của MCU
                          trong code của MCU thì tạo ra 1 biến đếm xung khi biến đạt 1 giá trị nào đó thì thay đổi trạng thái của LED

                          Comment


                          • #14
                            cu thể thi sao a?

                            Comment


                            • #15
                              Bạn cho mình cái code được không
                              0979.316.957
                              0905.028.957

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X