Mạch mô phỏng đèn giao thông

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • thongyloan
    Nhập môn đệ tử
    • Apr 2009
    • 3

    #16
    Nguyên văn bởi thang0105 View Post
    Chào các anh chị em, mình cũng vừa mới nghiên cứu về PIC16F84A và ứng dụng vào mô phỏng một mạch đèn giao thông có đếm số. Mình dùng thêm con 7447 để giải mã Led 7 đoạn và con 74138,74139 để phân kênh
    Mạch mô phỏng mình dùng PROTEUS đễ vẽ. Còn đoạn code thì dùng chương trình MPLAB viết. Tuy nhiên vì sản phẩm đầu tay về con PIC nên đoạn mã chưa chạy, cũng chưa biết sai chỗ nào. Ở đây mình chỉ đơn thuần là xuất các chân trên các Port cho các Led sáng, sau đó delay một khoảng thời gian, và cứ như vậy theo phương pháp quét Led.
    Nào, anh chị em cùng ra tay giúp đỡ lính mới nhé.
    bạn ơi mình đã thử với mạch của bạn bằng cách chạy trong chương trình proteus nhưng nó báo có ba lỗi.Mình cũng không biết phải sữa sao nữa.Híc.Lỗi như thế này bạn ah.Bạn xem thữ giúp mình được không nhé:
    + no model spectified for U (tuc là con 74138)
    +no model specified for U#(tức là con 74239)
    +sumilation.........quên mất
    bạn thử tìm cach giúp dùm mình đi
    Ah mà đoạn mã chạy trong proteus thì nó nói code đúng bạn ơi

    Comment

    • forever4u
      Nhập môn đệ tử
      • Apr 2008
      • 1

      #17
      Nguyên văn bởi andyhug View Post
      Mình quen viết CCS C thôi, các tài liệu hướng dẫn hợp ngữ thì bạn tìm trong diễn đàn nhé, nhiều lắm!
      Anh có thể hướng dẫn thêm về cách sử dụng PCW nói chung và cách dịch từ file lập trình của anh sang file hex được không.
      Cảm ơn anh rất nhiều

      Comment

      • sonba
        Nhập môn đệ tử
        • Apr 2009
        • 2

        #18
        Nguyên văn bởi nhh View Post
        Đây là phần đầu code của bạn (Do dài quá diễn đàn cấm nếu số ký tự vượt giới hạn):
        Code:
        		LIST		P=16F84A
        		INCLUDE		P16F84A.INC
        REG_L	EQU			0x0C
        REG_M	EQU			0X0D
        REG_H	EQU			0X0E
        		ORG		0X00
        		CALL		SET_PORTS
        		
        ;...............................LUOT 1.....................................;
        
        LOOP
        LOOP1	;...LED1:1...LED2:3...DO...LED3:1...LED4:0...XANH...;
        		MOVLW		B'10000000'		;LED1: 1;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'11000001'		;LED2: 3;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'10000010'		;LED3: 1;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000011'		;LED4: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000101'		;LED XANH;
        		MOVWF		PORTA
        		CALL		DELAY_10uS	
        		CALL		DELAY
        		GOTO		LOOP1
        		RETURN
        ;...............................................................................;
        LOOP2	;...LED1:1...LED2:2...DO...LED3:0...LED4:9...XANH...;
        		MOVLW		B'10000000'		;LED1: 1;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'01000001'		;LED2: 2;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00000010'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'10010011'		;LED4: 9;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000101'		;LED XANH;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		CALL		DELAY
        		GOTO		LOOP2
        		RETURN
        ;...................................................................................;
        LOOP3	;...LED1:1...LED2:1...DO...LED3:0...LED4:8...XANH...;
        		MOVLW		B'10000000'		;LED1: 1;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'01000001'		;LED2: 1;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00000010'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00010011'		;LED4: 8;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000101'		;LED XANH;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		CALL		DELAY
        		GOTO		LOOP3
        		RETURN
        ;.................................................................................;
        LOOP4	;...LED1:1...LED2:0...DO...LED3:0...LED4:7...XANH...;
        		MOVLW		B'10000000'		;LED1: 1;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00000001'		;LED2: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00000010'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'11100011'		;LED4: 7;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000101'		;LED XANH;
        		MOVWF		PORTA
        		CALL		DELAY_10uS	
        		CALL		DELAY
        		GOTO		LOOP4
        		RETURN
        ;....................................................................................;
        LOOP5	;...LED1:0...LED2:9...DO...LED3:0...LED4:6...XANH...;
        		MOVLW		B'00000000'		;LED1: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'10010001'		;LED2: 9;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00000010'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'01100011'		;LED4: 6;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000101'		;LED XANH;
        		MOVWF		PORTA
        		CALL		DELAY_10uS	
        		CALL		DELAY
        		GOTO		LOOP5
        		RETURN
        ;...................................................................................;
        LOOP6	;...LED1:0...LED2:8...DO...LED3:0...LED4:5...XANH...;
        		MOVLW		B'00000000'		;LED1: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00010001'		;LED2: 8;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00000010'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'10100011'		;LED4: 5;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000101'		;LED XANH;
        		MOVWF		PORTA
        		CALL		DELAY_10uS	
        		CALL		DELAY
        		GOTO		LOOP6
        		RETURN
        ;................................................................................;
        LOOP7	;...LED1:0...LED2:7...DO...LED3:0...LED4:4...XANH...;
        		MOVLW		B'00000000'		;LED1: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'11100001'		;LED2: 7;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00000010'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00100011'		;LED4: 4;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000101'		;LED XANH;
        		MOVWF		PORTA
        		CALL		DELAY_10uS	
        		CALL		DELAY
        		GOTO		LOOP7
        		RETURN
        ;...............................................................................;
        LOOP8	;...LED1:0...LED2:6...DO...LED3:0...LED4:3...XANH...;
        		MOVLW		B'00000000'		;LED1: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'01100001'		;LED2: 6;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00000010'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'11000011'		;LED4: 3;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000101'		;LED XANH;
        		MOVWF		PORTA
        		CALL		DELAY_10uS	
        		CALL		DELAY
        		GOTO		LOOP8
        		RETURN
        ;.............................................................................;
        LOOP9	;...LED1:0...LED2:5...DO...LED3:0...LED4:2...XANH...;
        		MOVLW		B'00000000'		;LED1: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'10100001'		;LED2: 5;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00000010'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'01000011'		;LED4: 2;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000101'		;LED XANH;
        		MOVWF		PORTA
        		CALL		DELAY_10uS	
        		CALL		DELAY
        		GOTO		LOOP9
        		RETURN
        ;........................................................................;
        LOOP10	;...LED1:0...LED2:4...DO...LED3:0...LED4:1...XANH...;
        		MOVLW		B'00000000'		;LED1: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00100001'		;LED2: 4;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00000010'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'10000011'		;LED4: 1;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000101'		;LED XANH;
        		MOVWF		PORTA
        		CALL		DELAY_10uS		
        		CALL		DELAY
        		GOTO		LOOP10
        		RETURN
        
        ;...........................................................................;
        LOOP11	;...LED1:0...LED2:3...DO...LED3:0...LED4:0...XANH...;
        		MOVLW		B'00000000'		;LED1: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'11000001'		;LED2: 3;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'00000010'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000011'		;LED4: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000101'		;LED XANH;
        		MOVWF		PORTA
        		CALL		DELAY_10uS		
        		CALL		DELAY
        		GOTO		LOOP11
        		RETURN
        ;...........................................................................;
        LOOP12	;...LED1:0...LED2:2...DO...LED3:0...LED4:2...VANG...;
        		MOVLW		B'10000000'		;LED1: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'11000011'		;LED2: 2;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'10000100'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000111'		;LED4: 2;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000100'		;LED VANG;
        		MOVWF		PORTA
        		CALL		DELAY_10uS		
        		CALL		DELAY
        		GOTO		LOOP12
        		RETURN
        ;...........................................................................;
        LOOP13	;...LED1:0...LED2:1...DO...LED3:0...LED4:1...VANG...;
        		MOVLW		B'10000001'		;LED1: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'11000011'		;LED2: 1;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'10000100'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000111'		;LED4: 1;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000100'		;LED VANG;
        		MOVWF		PORTA
        		CALL		DELAY_10uS		
        		CALL		DELAY
        		GOTO		LOOP13
        		RETURN
        ;.............................................................................;
        LOOP14	;...LED1:0...LED2:0...DO...LED3:0...LED4:0...VANG...;
        		MOVLW		B'10000001'		;LED1: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'11000011'		;LED2: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS
        		MOVLW		B'10000100'		;LED3: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000111'		;LED4: 0;
        		MOVWF		PORTB
        		CALL		DELAY_10uS	
        		MOVLW		B'00000000'		;LED DO;
        		MOVWF		PORTA
        		CALL		DELAY_10uS
        		MOVLW		B'00000100'		;LED VANG;
        		MOVWF		PORTA
        		CALL		DELAY_10uS		
        		CALL		DELAY
        		GOTO		LOOP14
        		RETURN
        ;.......................HET LUOT 1..................................;
        lam on guip toi co ai co mach den giao thong chay nhu the nay hog <ve plc ha>
        khi bat cong tac on thi den xanh sang truoc' 10s sau do den vàng sang 8s sau do den đỏ sáng 2s , ai giup toi di

        Comment

        • sonba
          Nhập môn đệ tử
          • Apr 2009
          • 2

          #19
          giup toi voi

          lam on guip toi co ai co mach den giao thong chay nhu the nay hog <ve plc ha>
          khi bat cong tac on thi den xanh sang truoc' 10s sau do den vàng sang 8s sau do den đỏ sáng 2s , ai giup toi di

          Comment

          • andyhug
            Đệ tử 1 túi
            • Jun 2008
            • 23

            #20
            PLC hả!.............

            Nguyên văn bởi sonba View Post
            lam on guip toi co ai co mach den giao thong chay nhu the nay hog <ve plc ha>
            khi bat cong tac on thi den xanh sang truoc' 10s sau do den vàng sang 8s sau do den đỏ sáng 2s , ai giup toi di
            PLC thì bạn nên sang diễn đàn nào chuyên về món này, picvietnam chuyên về PIC thôi!
            Sống ở trên đời cần phải có một tấm lòng để gió cuốn đi!
            xxxxxxxxxxxxxxxxxxx Trịnh Công Sơn xxxxxxxxxxxxxxxxxxx

            Comment

            • nguyentam_511
              Nhập môn đệ tử
              • Apr 2009
              • 2

              #21
              anh nao co tai lieu lap tring bang hop ngu cho pic16f877a cho e voi!!!dag can gap !thank may a nha!

              Comment

              • benzu
                Nhập môn đệ tử
                • Sep 2009
                • 1

                #22
                anh t oi em moi hoc nam dau thoi.thay cho tap lam do an.gui cho em so do nguyen ly mach chay chu~ voi. vdu nhu:happy new year.em rat cam on. ^^!

                Comment

                • manhphat007
                  Nhập môn đệ tử
                  • Sep 2009
                  • 3

                  #23
                  em mới học PIC 16F84 được mấy hôm nay, em đang gặp chút bối rối trong việc sử dụng hàm Delay.
                  Nếu em sử dụng Thạch anh có dao tần số dao động là 4Mhz thì chu khì máy sẽ là 1us phải ko ạ.vậy nếu em muôn tạo vòng trễ 10ms thì phải cần tới 10 000 chu kì máy phải ko ạ.em ko biết tính thế nào để có thể có một đoạn CODE chạy 10 000 chu kì.... các anh có thể viết dùm em ví dụ này được ko ạ ?

                  Comment

                  • ketnoivungtau
                    Nhập môn đệ tử
                    • Apr 2009
                    • 2

                    #24
                    Nguyên văn bởi manhphat007 View Post
                    em mới học PIC 16F84 được mấy hôm nay, em đang gặp chút bối rối trong việc sử dụng hàm Delay.
                    Nếu em sử dụng Thạch anh có dao tần số dao động là 4Mhz thì chu khì máy sẽ là 1us phải ko ạ.vậy nếu em muôn tạo vòng trễ 10ms thì phải cần tới 10 000 chu kì máy phải ko ạ.em ko biết tính thế nào để có thể có một đoạn CODE chạy 10 000 chu kì.... các anh có thể viết dùm em ví dụ này được ko ạ ?
                    em sang hỏi anh hà đấy..hahaha

                    Comment

                    • votinh1986
                      Nhập môn đệ tử
                      • Sep 2009
                      • 1

                      #25
                      tôi củng vậy không hiểu gì cả

                      Comment

                      • manhphat007
                        Nhập môn đệ tử
                        • Sep 2009
                        • 3

                        #26
                        Nguyên văn bởi ketnoivungtau View Post
                        em sang hỏi anh hà đấy..hahaha
                        he he .... cám ơn bác đã chỉ đường nhé. nhưng mình tự viết được rồi. để mình tự viết theo suy nghĩ của mình nhé, nếu sai xin mọi người góp ý.


                        ;=========
                        count = 0x0c
                        count1 = count+1

                        delay_10ms

                        movlw d'19'
                        movwf count

                        loop
                        decfsz count,1
                        goto loop1
                        goto next

                        loop1
                        movlw d'174'
                        movwf count1

                        loop2
                        decfsz count1
                        goto loop2
                        goto loop
                        netx.........
                        end

                        Comment

                        • nguyenduynjnh
                          Nhập môn đệ tử
                          • Sep 2009
                          • 2

                          #27
                          chao mọi người. em mới học năm nhất .thầy cho làm đề án kĩ thuật số . chọn mãi em quyết định làm mạch đèn giao thông .
                          anh nào có tài liệu thì xin bỏ chút thời gian post lên dùm em với ?
                          chân thành cảm ơn .

                          Comment

                          • lequocbao
                            Đệ tử 6 túi
                            • Oct 2008
                            • 137

                            #28
                            Nguyên văn bởi nguyenduynjnh View Post
                            chao mọi người. em mới học năm nhất .thầy cho làm đề án kĩ thuật số . chọn mãi em quyết định làm mạch đèn giao thông .
                            anh nào có tài liệu thì xin bỏ chút thời gian post lên dùm em với ?
                            chân thành cảm ơn .
                            lấy cái nì về nghiên cứu!
                            Attached Files
                            A&A

                            Comment

                            • lephucanh1508
                              Nhập môn đệ tử
                              • Oct 2009
                              • 1

                              #29
                              Nguyên văn bởi andyhug View Post
                              Mình quen viết CCS C thôi, các tài liệu hướng dẫn hợp ngữ thì bạn tìm trong diễn đàn nhé, nhiều lắm!
                              bạn có thể giúp mình viết cho mình đề tài này dc ko? thiết kế bộ đếm thứ tự sinh viên.
                              bạn giúp mình nhé...mail của mình: lephucanh1508@gmail.com
                              có gì bạn có thể liên lạc với mình nhé...thanks.

                              Comment

                              • niem
                                Nhập môn đệ tử
                                • Mar 2010
                                • 1

                                #30
                                cảm ơn các anh em trong diễn đàm nhé!

                                Comment

                                Working...