Thông báo

Collapse
No announcement yet.

lập trình cho 8051...help..!!

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

  • lập trình cho 8051...help..!!

    các pác cho mình hỏi trong con 8051 mình có thể lập trình cho càc ngõ ra có điện áp tăng giảm từ từ chứ không tăng vọt lên ngay mức cao hoặc thấp được không. nếu được xin các pác chỉ giúp mình viết bằng c

  • #2
    Bạn dùng cách phát xung (điều biên độ rộng xung) để thay đổi giá trị hiệu dụng của điện áp.
    Đây là code mẫu (bạn đặt trong hàm main):
    Code:
    unsigned long Ton=2000,Toff=1000;
    while(1)
    {   Port1.0 = 1;
         while(--Ton>1){ ;};
          Ton=2000;
         Port1.0 = 0;
         while(--Toff>1){ ;};
          Toff=1000;
    }
    Bạn thử thay đổi Ton và Toff và dùng đồng hồ đo điện áp tại Port1.0 (nhớ phải treo chân này lên nguồn bằng trở 4K7 nhé).

    Chúc bạn thành công!
    Last edited by HPECOM; 30-06-2008, 12:08.
    Một bông hồng cho những ai đang còn mẹ,
    Đang còn mẹ để lòng vui sướng hơn ..

    Comment


    • #3
      cám ơn bạn mình về làm thử coi thế nào

      Comment


      • #4
        ko dc rùi mình mô phỏng thử trên proteus thấy điện áp nó co tăng giảm từ từ gì đâu.. cho mình hỏi thêm dùng c để viết thì đối với mỗi loại VDK chỗ #include<> mình phải khai báo như thế nào? làm sao biết đc con nào khai báo cái gì? rồi ở các cái port1.0, port1.1,... mình sẽ viết như thế nào đễ máy nhận ra mình viết la P1.0 hoặc P1^0 nhưng đều ko đc

        Comment


        • #5
          vừa thử với Proteus xong, chạy ngon, nhưng vì PWM nên phải đo bằng AC Volmeter , với lại đoạn code trên là băm xung cố định , muốn nó thay đổi , bạn làm cho biến thay đổi theo thời gian là được

          Tùy vào thư viện thì phải ,mặc định là P1_0, có máy thì viết được P1^0 luôn, còn ko thì phải có lệnh
          Sbit P1^0=P1_0

          Với cả lần sau đừng viết hẳn 1 reply để cảm ơn, ấn nút cảm ơn ở dưới ý ,
          Attached Files
          Last edited by hiodong; 02-07-2008, 10:42.
          Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

          Comment


          • #6
            Nguyên văn bởi hungvu Xem bài viết
            các pác cho mình hỏi trong con 8051 mình có thể lập trình cho càc ngõ ra có điện áp tăng giảm từ từ chứ không tăng vọt lên ngay mức cao hoặc thấp được không. nếu được xin các pác chỉ giúp mình viết bằng c
            Thứ này dùng DAC là ưu việt nhất , mắc thêm vào 1 port của con 89c51 1 con DAC. Tuy phần cứng có nhiều hơn 1 chút nhưng lại giảm nhẹ đi phần lập trình và cực kì ổn định .

            Comment


            • #7
              Nguyên văn bởi hpecom Xem bài viết
              .
              đây Là Code Mẫu (bạn đặt Trong Hàm Main):
              Code:
              Unsigned Long Ton=2000,toff=1000;
              While(1)
              {   Port1.0 = 1;
                   While(--ton>1){ ;};
                    Ton=2000;
                   Port1.0 = 0;
                   While(--toff>1){ ;};
                    Toff=1000;
              }
              Bạn Thử Thay đổi Ton Và Toff Và Dùng đồng Hồ đo điện áp Tại Port1.0 (nhớ Phải Treo Chân Này Lên Nguồn Bằng Trở 4k7 Nhé).

              Chúc Bạn Thành Công!

              Bạn Giải Thích Rõ Hơn 1 Chút Về đoạn Code Trên được Không? Mình Chưa Hiểu Nó Lắm.cảm ơn Bạn Nha!
              SỰ HỌC LÀ MÃI MÃI......!!!!

              Comment


              • #8
                Pwm

                Em Làm Thử Thấy điện áp Trên Chân P1.0 Thay đổi Cũng Rất Lẹ Mà,như Vậy Nếu Mắc Led Vào Thì Làm Sao Ta Có Thể Thấy được Con Led Sáng Dần Hay Tối Dần?
                đây Là đoạn Code Em Viết Bằng Prog-studio:
                Attached Files
                SỰ HỌC LÀ MÃI MÃI......!!!!

                Comment


                • #9
                  Dac

                  Nguyên văn bởi saobanmai Xem bài viết
                  thứ Này Dùng Dac Là ưu Việt Nhất , Mắc Thêm Vào 1 Port Của Con 89c51 1 Con Dac. Tuy Phần Cứng Có Nhiều Hơn 1 Chút Nhưng Lại Giảm Nhẹ đi Phần Lập Trình Và Cực Kì ổn định .
                  Huynh Dùng Như Vậy Cực Kì Phí đối Với 1 ứng Dụng đơn Giản.phải Không Huynh?
                  SỰ HỌC LÀ MÃI MÃI......!!!!

                  Comment


                  • #10
                    Include

                    Nguyên văn bởi hungvu Xem bài viết
                    ko Dc Rùi Mình Mô Phỏng Thử Trên Proteus Thấy điện áp Nó Co Tăng Giảm Từ Từ Gì đâu.. Cho Mình Hỏi Thêm Dùng C để Viết Thì đối Với Mỗi Loại Vdk Chỗ #include<> Mình Phải Khai Báo Như Thế Nào? Làm Sao Biết đc Con Nào Khai Báo Cái Gì? Rồi ở Các Cái Port1.0, Port1.1,... Mình Sẽ Viết Như Thế Nào đễ Máy Nhận Ra Mình Viết La P1.0 Hoặc P1^0 Nhưng đều Ko đc
                    Bạn Vào Thư Viện Của Keil C (trong ổ đĩa Cài đặt Keil C đó)thì Sẽ Thấy Mình Nên Xem Include Cái Nào Là đúng! Chúc Bạn Vui!
                    SỰ HỌC LÀ MÃI MÃI......!!!!

                    Comment


                    • #11
                      Cách khác

                      Nguyên văn bởi hungvu Xem bài viết
                      các pác cho mình hỏi trong con 8051 mình có thể lập trình cho càc ngõ ra có điện áp tăng giảm từ từ chứ không tăng vọt lên ngay mức cao hoặc thấp được không. nếu được xin các pác chỉ giúp mình viết bằng c
                      Bạn có thể thử lập trình tạo dao động ngõ ra của vdk, trước khi đưa hẳn ra ngoài thì cho đi qua con diode và lọc bằng 1 con tụ.
                      Chẳng hạn, tạo dao động 1MHz, qua diode xung, lọc với tụ 101, thế thì điện áp ra sẽ không phải là 5V. Thay đổi f của dao động sẽ thay đổi áp ngõ ra tương ứng. Áp này có thể đọc được bằng ADC.
                      !e

                      Comment


                      • #12
                        Nguyên văn bởi tallht Xem bài viết
                        Bạn Vào Thư Viện Của Keil C (trong ổ đĩa Cài đặt Keil C đó)thì Sẽ Thấy Mình Nên Xem Include Cái Nào Là đúng! Chúc Bạn Vui!
                        Tu cứ mặc định dùng #include <reg52.h>. Tuy nhiên, trong file reg52.h này, sẽ có một số chỉnh sửa, tu định nghĩa thêm cho dễ dùng như
                        sbit P10 = P1^0;
                        sbit P11 = P1^1;
                        .....

                        do đó khí viết chương trình, tu sẽ tiết kiệm khỏi phải gõ P1_0 hay P1^0; Mấy dấu '_', '^', gõ nhiều mỏi tay lắm!
                        !e

                        Comment


                        • #13
                          làm như cách của bạn zemem nhưng giử nguyên tần số,chỉ thay đổi độ rộng xung lúc đó ta không phải thay đổi mạch lọc

                          Comment


                          • #14
                            Minh cài mãi mà máy toàn gi lỗi: "This will install pinnacle 52. Do you wish to continue?"
                            khi mình chọn yes thì lại xuất hiện: "Could not create the directory C:\windows\temp\~exb0002\disk1" mình nhấn ok tiếp thì : "Extract failed: return from extract=-13" rồi mất hẳn luôn không cài được.Có ai biết cài pinnacle52 không nói cho mình biết với. thank you verymuch

                            Comment


                            • #15
                              Đấy là phần mềm viết chương trình mô phỏng vdk 8951. Nếu có thể thì nhắn vào : thanhtuyen_161@yahoo.com
                              cho mình nha.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X