Thông báo

Collapse
No announcement yet.

Tạo độ rộng xung.

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

  • Tạo độ rộng xung.

    Mấy anh giúp em với bài tập này với.
    Tạo xung vuông 10khz cố định. Nhấn nút s1(p2.0) thì độ rộng xung là 25%, nhấn s2(p2.1) thì độ rộng xung là 50%, nhấn s3(p2.2) thì độ rộng xung là 75%. Ngõ ra lần lượt là p1.0,p1.1,p1.2
    em mới đc học vđk 8051 nên kt còn nông cạn. Mong các anh giúp cho.

  • #2
    Bạn đã có thuật toán giải quyết bài này chưa?
    Theo mình để cho bài toán sáng sủa nên tổ chức thành các chương trình con. Cụ thể là có 3 chương trình con: Chương trình con thứ nhất có nhiệm vụ tạo xung có độ rộng 50%; chương trình còn thứ 2 tạo xung có độ rộng 25%; chương trình con thứ 3 tạo xung có độ rộng 75%.
    Ban đầu chương trình chính (CTC) gọi chương trình con thứ nhất rồi sau đó kiểm tra phím bấm. Ứng với phím bấm nào thì gọi chương trình con cho nó!

    Comment


    • #3
      Chương trình chính thì viết đc rồi. Còn chương trình con thì chưa đc. Mình vẫn ko hiểu lắm về thay đổi độ rộng xung, bạn có thể nói rõ hơn và cho 1 vd chẳg hạn. Tks

      Comment


      • #4
        Nguyên văn bởi anhhaisu Xem bài viết
        Chương trình chính thì viết đc rồi. Còn chương trình con thì chưa đc. Mình vẫn ko hiểu lắm về thay đổi độ rộng xung, bạn có thể nói rõ hơn và cho 1 vd chẳg hạn. Tks
        thay đổi độ rộng xung là thay đổi 2 nửa chu kì của tần số.
        1 chu kì bạn có nửa đầu là xung mức cao nửa sau là xung mức thấp.
        xung bạn là 10kHz tức là 1 chu kì 100uS
        độ rộng xung 25% là nói tới xung mức cao. Vậy 25% của 100uS là 25uS. Bạn tạo delay 25uS cho xung mức 1 và 75uS cho xung mức 0.

        Comment


        • #5
          Anh chung1608 có thể cho em 1 vd cụ thể đc ko.

          Comment


          • #6
            Code:
            setb p1.0
            call delay25us
            clr  p1.0
            call delay75us

            Comment


            • #7
              Anh chung xem dùm em. Đây là ct tạo xung vuôg 10khz
              Org 0000h
              mov tmod,#02h
              mov th0,-50
              setb tr0
              loop: jnb tf0, loop
              clr tf0
              cpl p1.0
              sjmp loop
              end
              mình có thể thay đổi giá trị của th0 và tl0 để thay đổi độ rộng xung ko anh.

              Comment


              • #8
                Nguyên văn bởi anhhaisu Xem bài viết
                Anh chung xem dùm em. Đây là ct tạo xung vuôg 10khz
                Org 0000h
                mov tmod,#02h
                mov th0,-50
                setb tr0
                loop: jnb tf0, loop
                clr tf0
                cpl p1.0
                sjmp loop
                end
                mình có thể thay đổi giá trị của th0 và tl0 để thay đổi độ rộng xung ko anh.
                như nói ở trên bạn phải tạo ra 2 khoảng thời gian khác nhau cho mức cao và mức thấp, với tổng 2 khoảng thời gian phải cố định ở 100uS.
                Code bạn viết là 2 khoảng thời gian bằng nhau vì thế độ rộng xung là 50%. Với code bạn viết cần phải viết thêm và bỏ lệnh cpl p1.0 đi và thay bằng setb và clr vì bạn chưa thể viết code ngắn gọn đâu, mới học thì viết cho dễ hiểu rồi từ từ rút gọn lại

                Comment


                • #9
                  Ý của anh em hiểu rồi.
                  Nhưng ở đây ôg thầy nói là phải thay đổi th và tl anh à.

                  Comment


                  • #10
                    Nguyên văn bởi anhhaisu Xem bài viết
                    Ý của anh em hiểu rồi.
                    Nhưng ở đây ôg thầy nói là phải thay đổi th và tl anh à.
                    thì tạo delay bằng timer chế độ 2
                    Code:
                    .....
                    MOV TMOD,#02H
                    SETB TR0
                    MOV TL0,#-25
                    SETB P1.0
                    JNB TF0,$
                    CLR TF0
                    MOV TL0,#-75
                    CLR P1.0
                    JNB TF0,$
                    .......

                    Comment


                    • #11
                      Em cảm ơn nhìu. Ct chạy rồi

                      Comment


                      • #12
                        void timer0(void) interrupt 1
                        {
                        TR0 = 0;
                        TF0 = 0;
                        dem++;
                        if(dem > 100)
                        dem = 0;
                        if(dem<tocdo)
                        PWM = 1;
                        else
                        PWM = 0;
                        TR0 = 1;
                        }
                        chỉ cần thay đổi biến đếm sẽ thay đổi độ rụng xung.
                        Nguyễn Huy Biên - 01649 802 694
                        gmail :

                        Comment


                        • #13
                          Nguyên văn bởi bienhou Xem bài viết
                          void timer0(void) interrupt 1
                          {
                          TR0 = 0;
                          TF0 = 0;
                          dem++;
                          if(dem > 100)
                          dem = 0;
                          if(dem<tocdo)
                          PWM = 1;
                          else
                          PWM = 0;
                          TR0 = 1;
                          }
                          chỉ cần thay đổi biến đếm sẽ thay đổi độ rụng xung.
                          thế này tần số của chú đâu có cố định

                          Comment


                          • #14
                            sao ko cố định anh? đây chỉ là hàm ngắt thôi mà giá trị TH0 và TL0 e đặt trong hàm khởi tạo. quên ko post
                            Nguyễn Huy Biên - 01649 802 694
                            gmail :

                            Comment

                            Về tác giả

                            Collapse

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

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

                            Collapse

                            • vi van pham
                              Trả lời cho Tự tìm công thức tính lưu lượng gió quạt điện dân dụng
                              bởi vi van pham
                              Dinhthuong ơi! cơ hội làm giàu của cháu đến rồi.

                              Trên thế giới toàn bộ : "Chân Vịt" cho tàu bè đều là cánh to, nó hao nhiên liệu, ma sát làm hư hao. Nay cháu sx chân vịt cánh nhò cho thế giới sử dụng, chân vịt của cháu...
                              Hôm qua, 21:25
                            • bqviet
                              Trả lời cho nguồn switching
                              bởi bqviet
                              Thông tin cá nhân bqv xin phép tránh nêu ở diễn đàn. Nghề nghiệp thì bao năm nay vẫn thế thôi : điện - điện tử - tự động hóa - IT. Làm ơn đừng hâm mộ, nhỡ có dịp gặp thật thì lại thất vọng vì thực tế không như mình nghĩ. Bqv xét...
                              Hôm qua, 21:16
                            • mèomướp
                              Trả lời cho Tự tìm công thức tính lưu lượng gió quạt điện dân dụng
                              bởi mèomướp
                              Dạ chú dinh... cứ xét hệ tại 1 thời điểm thì sẽ dễ hiểu hơn ạ, với cánh to thì mặt tiếp xúc lớn hơn, lực tác động vào đồng thời nhiều không khí hơn, nhìu không khí cùng chuyển động thì sẽ tạo lưu lượng gió lớn hơn ạ...
                              Hôm qua, 18:49
                            • mèomướp
                              Trả lời cho nguồn switching
                              bởi mèomướp
                              Dạ cháu hỏi lại chị hàng xóm nhà cháu rồi ạ, chị ấy bảo anh thợ sửa điều hòa tâm sự với chị ấy nên hông nhầm đâu ạ. Chú bq... hông tin thì có thể xem video này ạ
                              https://youtu.be/dvU8ZcvgYH4?si=15Sd_j3uxuWah9PR
                              Hôm qua, 17:30
                            • dinhthuong80
                              Trả lời cho Tự tìm công thức tính lưu lượng gió quạt điện dân dụng
                              bởi dinhthuong80
                              Cảm ơn bác ạ, nhờ chủ đề này, nhờ bác nhiệt tình chia sẻ mà mọi người biết thêm nhiều kiến thức về quạt điên, thiết bị điện tưởng chừng rất đơn giản chỉ chuyển điện thành cơ.

                              Tuy nhiên, chỗ in đậm cháu không đồng...
                              Hôm qua, 17:00
                            • bqviet
                              Trả lời cho nguồn switching
                              bởi bqviet
                              Hình như bạn mèomướp lộn chút. Mạch nguồn xung vốn chạy 220V, muốn chuyển sang chạy 110V thì có thể dùng mạch nhân áp; hoặc thậm chí chẳng phải làm gì nếu đó là nguồn xung flyback đầu vào dải rộng. Chứ mạch nguồn vốn chạy 110V hoặc 100V nay muốn chuyển sang chạy 220 thì phải thay một mớ đấy....
                              Hôm qua, 16:16
                            • milan
                              Trả lời cho nguồn switching
                              bởi milan
                              Đại ca bqviet năm nay bao nhiêu tuổi rồi, làm nghề gì nhỉ.
                              Ngày xưa em hâm mộ anh nhất diễn đàn mà chưa có dịp gặp....
                              Hôm qua, 11:51
                            • mèomướp
                              Trả lời cho nguồn switching
                              bởi mèomướp
                              Dạ ai lại làm như chú bq... ạ. một số dòng điều hòa của nhật bên trong nó có mạch nhân áp thì bỏ qua mạch ấy là chạy 220v được ạ. Còn máy hàn thì cháu hông biết nó có thể làm vậy ko, chú tháo ra xem mạch mới biết được ạ...
                              Hôm qua, 07:09
                            • tuyennhan
                              Trả lời cho Tự tìm công thức tính lưu lượng gió quạt điện dân dụng
                              bởi tuyennhan
                              Senko này là sử dụng cánh nhỏ đầu tiên , hình dáng đẹp giá vừa phải nhưng lại thiết kế sai ở chổ thêm nối tiếp cầu chì nhiệt vào đàu dây chung mô tơ , sử dụng lâu quạt tăng nhiệt cầu chì đứt thế là hết xài dù những linh kiện...
                              Hôm qua, 07:07
                            • vi van pham
                              Trả lời cho Tự tìm công thức tính lưu lượng gió quạt điện dân dụng
                              bởi vi van pham
                              Tất ca kiến thức về quạt của tôi do thầy hiệu trưởng Nguyễn Hồng Lam tốt nghiệpp kỹ sư bên Mỹ giảng dạy. Cánh quạt cong cũng là thầy dạy , nó tạo khí động học.

                              Tôi đã dùng ngôn ngữ bình dân để thuyết minh cho mọi người...
                              Hôm qua, 01:36
                            Đang tải...
                            X