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

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • hungvu
    Thành viên mới
    • Feb 2008
    • 15

    #1

    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
  • HPECOM
    Thành viên tích cực
    • Oct 2005
    • 361

    #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, 11: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

    • hungvu
      Thành viên mới
      • Feb 2008
      • 15

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

      Comment

      • hungvu
        Thành viên mới
        • Feb 2008
        • 15

        #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

        • hiodong
          Thành viên tích cực
          • Sep 2005
          • 433

          #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, 09:42.
          Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

          Comment

          • saobanmai
            Thành viên chính thức
            • Apr 2007
            • 95

            #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

            • tallht
              Thành viên mới
              • Apr 2008
              • 361

              #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

              • tallht
                Thành viên mới
                • Apr 2008
                • 361

                #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

                • tallht
                  Thành viên mới
                  • Apr 2008
                  • 361

                  #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

                  • tallht
                    Thành viên mới
                    • Apr 2008
                    • 361

                    #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

                    • zemen
                      Thành viên tích cực
                      • Nov 2005
                      • 536

                      #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

                      • zemen
                        Thành viên tích cực
                        • Nov 2005
                        • 536

                        #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

                        • minhcpl
                          Thành viên tích cực
                          • Oct 2007
                          • 115

                          #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

                          • NHATLINH_161
                            Thành viên mới
                            • Apr 2011
                            • 3

                            #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

                            • NHATLINH_161
                              Thành viên mới
                              • Apr 2011
                              • 3

                              #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...