RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

Kiểm tra hộ cho em cái quét LED này

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • rainbowsmile
    Thành viên tích cực
    • Apr 2008
    • 194

    #1

    Kiểm tra hộ cho em cái quét LED này

    Đề bài như sau: Cho mạch giao tiếp giữa 8051 và 4 led 7 đoạn theo phương pháp quét như hình dưới. Viết chương trình con hiển thị 4 số BCD không nén (unpacked BCD) có mã lưu trong 4 ô nhớ 33H, 32H, 31H và 30H lên 4 led tương ứng (led1, led2, led3 và led4).

    Hướng dẫn: Để đóng chuyển mạch cho led, cấp mức logic 0 ở phía cực B của transistor tương ứng (đóng vai trò như một chuyển mạch điện tử). Sau đó phải tạo trễ một khoảng thời gian để led đáp ứng sáng.
    Tìm mãi ko thấy lỗi sai nè

    Code:
    INCLUDE 89C51.MC
    ORG 0
    ; HIEN THI RA LED TU DU LIEU THANH GHI 30H, 31H, 32H, 33H
    	MOV 30H,#1
    	MOV 31H,#2
    	MOV 32H,#3
    	MOV 33H,#4
    ; XUAT LED, NHAY VO HAN
    LOOP:
    	ACALL OUTLED
    	SJMP LOOP
    OUTLED:
    
    	MOV A,30H
    	SWAP A
    	ORL A,#0FH
    	MOV P1,A
    	CLR P1.0
    	ACALL DELAY
    	
    	MOV A,31H
    	SWAP A
    	ORL A,#0FH
    	MOV P1,A
    	CLR P1.1
    	ACALL DELAY
    	
    	MOV A,32H
    	SWAP A
    	ORL A,#0FH
    	MOV P1,A
    	CLR P1.2
    	ACALL DELAY
    	
    	MOV A,33H
    	SWAP A
    	ORL A,#0FH
    	MOV P1,A
    	CLR P1.3
    	ACALL DELAY
    	RET
    
    DELAY:
    	MOV R7,#200
    	DJNZ R7,$
    	RET
    
    END
    Còn đây là file mô phỏng và hex: http://ifile.it/2qu6ijs
    Last edited by rainbowsmile; 24-04-2009, 06:59.
  • linhnc308
    Moderator
    • Aug 2005
    • 1084

    #2
    Vấn đề mô phỏng quét Led trong proteus tôi đã nói rất nhiều lần rồi. Lỗi không mô phỏng đúng là do Proteus nó không thể mô phỏng đúng hoạt động đóng cắt Transistor mà người lập trình muốn. Để làm được mô phỏng nên tham khảo một số mạch mô phỏng trong các ví dụ của Proteus (thư mục tên Sample) xem nó dùng linh kiện gì để mô phỏng việc đóng cắt Led7 thanh thì mình dùng đúng thứ như vậy. Với mạc trên, em cũng thử dùng 4 IC cổng NOT xem sao, có thể mô phỏng được.
    Ethernet-RS232, PIC Webserver, RFID Reader
    CallerID, Cảnh báo BTS, ...
    0988006696
    linhnc308@gmail.com
    http://linhnc308.blogspot.com

    Comment

    • rainbowsmile
      Thành viên tích cực
      • Apr 2008
      • 194

      #3
      Em đổi sang dùng IC74LS245 rồi, có tác dụng tăng dòng như Trans lun.
      Đề bài vẫn như cũ. Nhưng mà sao test thử thì nó ko chạy theo ý mình nhỉ. Nó ko có hiện từng số lần lượt lên. Và mọi người xem giùm: sao em quy định
      MOV P2,#08H
      mà nó ko lên 1 ở chân thứ 4 của P2 nhỉ.

      CODE ASM
      INCLUDE 89C51.MC
      ORG 0000H
      MOV 30H,#01H
      MOV 31H,#02H
      MOV 32H,#03H
      MOV 33H,#04H
      ;*********************
      LOOP: MOV P2,#01H
      MOV P0,30H
      ACALL DELAY

      MOV P2,#02H
      MOV P0,31H
      ACALL DELAY

      MOV P2,#04H
      MOV P0,32H
      ACALL DELAY

      MOV P2,#08H
      MOV P0,33H
      SJMP LOOP
      ;**************************
      DELAY: MOV R7,#10
      LOP1: MOV R6,#200
      LOP: MOV R5,#250
      DJNZ R5,$
      DJNZ R6,LOP
      DJNZ R7,LOP1
      RET
      END
      File mô phỏng + hex: http://ifile.it/75smuhe

      Comment

      • vodangks
        Thành viên tích cực
        • May 2007
        • 458

        #4
        [QUOTE=rainbowsmile;181588]Em đổi sang dùng IC74LS245 rồi, có tác dụng tăng dòng như Trans lun.
        Đề bài vẫn như cũ. Nhưng mà sao test thử thì nó ko chạy theo ý mình nhỉ. Nó ko có hiện từng số lần lượt lên. Và mọi người xem giùm: sao em quy định mà nó ko lên 1 ở chân thứ 4 của P2 nhỉ.


        Đây để mình gửi cho bạn 1 file mô phỏng bằng proteus (8951+ds1307 hiển thị ra 6 led 7 đoạn). Nói chung là proteus mô phỏng led 7 đoạn khá tốt, với ví dụ mình đưa mong rằng sẽ giúp bạn giải quyết được vấn đề! Mình viết .bằng asm (dùng ct prog-studio 5.28).
        Attached Files

        Comment

        • goldenstar
          Thành viên tích cực
          • Feb 2006
          • 122

          #5
          này, bác dùng led7 đoạn loại anode chung hay cothode chung thế?? hehe
          lúc mô phỏng thì hạn chế dùng linh kiện analog để đỡ tốn CPU, thay mấy cái khóa đó bằng cổng NOT đi bạn.

          Comment

          • Multi System
            Thành viên tích cực
            • Feb 2008
            • 671

            #6
            này, bác dùng led7 đoạn loại anode chung hay cothode chung thế?? hehe
            Anh bạn này có vẻ rành về transistor mà sao lại hỏi câu này ?
            BJT loại PNP thì biết là dùng loại A chung rồi
            Last edited by Multi System; 14-05-2009, 22:18.

            Comment

            • cddt061
              Thành viên tích cực
              • Apr 2008
              • 540

              #7
              Nguyên văn bởi rainbowsmile Xem bài viết
              LOOP: MOV P2,#01H
              MOV P0,30H
              ACALL DELAY

              MOV P2,#02H
              MOV P0,31H
              ACALL DELAY

              MOV P2,#04H
              MOV P0,32H
              ACALL DELAY

              MOV P2,#08H
              MOV P0,33H
              SJMP LOOP

              Đây, vấn đề là ở đây, Khi bạn cho led 1 sáng, xuất data ra P0 >> Đúng rồi.
              Nhưng có điều ở đây là khi cho led 1 sáng sau đó ko thấy lệnh tắt tất cả các Led đi, mà đã có lệnh cho Led 2 sáng ( Mov p2,#02h) Do đó Led 2 lúc này sáng theo data Led 1 >>> Các Led sau cũng thế, xuất hiện hiện tượng lem, bóng ma trên các led, xấu hơn nữa là sáng toàn số 8

              Để giải quyết việc này bạn cần làm như sau:
              1: Xuất data led 1
              2: Cho led 1 sáng
              3: Cho trễ 1 thời gian
              4: Tắt led 1 đi
              5: Bắt đầu với Led 2

              Tham khảo đoạn code sau
              Code:
              LOOP:
              MOV P0,30H
              MOV P2,#01H
              ACALL DELAY
              MOV P2,#00H
              
              MOV P0,31H
              MOV P2,#02H
              ACALL DELAY
              MOV P2,#00H
              
              MOV P0,32H
              MOV P2,#04H
              ACALL DELAY
              MOV P2,#00H
              
              MOV P0,33H
              MOV P2,#01H
              ACALL DELAY
              MOV P2,#00H
              
              SJMP LOOP
              Trần Đức Sơn

              tel:0934691385

              Comment

              • goldenstar
                Thành viên tích cực
                • Feb 2006
                • 122

                #8
                ấy, ai chả biết PNP phải đi với A chung, nhưng hỏi xem bác í có để ý dùng đúng loại A chung không thôi mùhh. 2 cái model đó giống nhau, nhiều lúc lại quên ấy chứ.

                Comment

                • machithanh
                  Thành viên chính thức
                  • Mar 2009
                  • 61

                  #9
                  các bác cho e hỏi có fải là nếu dùng trans PNP như sơ đồ thì mức tích cực ở cổng để chọn LED sẽ là mức 0
                  còn nếu dùng trans NPN thì lại ngược lại có nghĩa là nếu bit chọn led ở mức logic 1 thì led được chọn??? có đúng ko ạ
                  Attached Files
                  |

                  Comment

                  • legosse
                    Thành viên tích cực
                    • Apr 2009
                    • 101

                    #10
                    Cho hỏi vì sao không nối chân 40 lên Vcc mà lại là chân 31 vậy

                    Comment

                    • chinh_cover
                      Thành viên tích cực
                      • Apr 2009
                      • 167

                      #11
                      Nguyên văn bởi legosse Xem bài viết
                      Cho hỏi vì sao không nối chân 40 lên Vcc mà lại là chân 31 vậy
                      Như bạn đã biết thì chân 31 là chan EA nên để thực thi chương trình trong Ram nội của nó thì phải nối nó lên VCC
                      Last edited by chinh_cover; 21-05-2009, 10:38.

                      Comment

                      • goldenstar
                        Thành viên tích cực
                        • Feb 2006
                        • 122

                        #12
                        thực thi chương trình trong ROM nội chứ k phải RAM nội. mô phòng trong PROTEUS nó nối nguồn cho các IC sẵn rồi (ẩn).

                        Comment

                        • tuandat_trav
                          Thành viên mới
                          • Nov 2009
                          • 10

                          #13
                          các bác ơi giúp em tài liệu về thiêt kế mạch điều khiển tốc độ động cơ DC và hiển thị tốc độ lenLed 7 doan voi.em không biêt cách viet bai hỏi nên viet ở đây vì em mói tham gia dien đàn!các bác giúp giùm!

                          Comment

                          • huubi88
                            Thành viên mới
                            • Feb 2011
                            • 1

                            #14
                            Noi nhu vay de quy dinh dung bo nho trong. khong dung bọ nho ngoai

                            Comment

                            Về tác giả

                            Collapse

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

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

                            Collapse

                            Đang tải...