Code cho pic 16f877a-quét 8 Led đơn

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

    #1

    Code cho pic 16f877a-quét 8 Led đơn

    Em mới học về pic. Bác nào biết code quét 8 led đơn chạy đuổi nhau dùng MPLAB cho em xin được không! Em nghiên cứu hoài ma không ra.
  • kqha1025
    Đệ tử 3 túi
    • Oct 2008
    • 57

    #2
    Nguyên văn bởi kenvinlam View Post
    Em mới học về pic. Bác nào biết code quét 8 led đơn chạy đuổi nhau dùng MPLAB cho em xin được không! Em nghiên cứu hoài ma không ra.
    Cái này đơn giản, mình nghĩ bạn nên tự làm như sau:
    Bạn đọc file định nghĩa chân cẳng cho em pic mà bạn định dùng, sau đó bạn xem 1 ví dụ trong phần exsample của phần mềm ấy xem cấu trúc 1 chương trình như thế nào. Sau đó bạn tự code 1 ví dụ là chạy, đảm bảo bạn biết được nhiều thứ hơn đấy.
    Chúc bạn thành công.

    Comment

    • thanhute
      Nhập môn đệ tử
      • May 2011
      • 2

      #3
      bạn nên viết code rồi mô phỏng trên protues để thấy rõ ràng hơn, mới đầu học nên những bài như ded đơn bạn nên học thật kỹ để hiểu sâu về lập trình cho PIC sau đó bạn đi lên những ứng dụng cao hơn sẽ rất dễ dàng. Mình gửi cho bạn code theo yêu cầu của bạn, bạn hãy tham khảo nhé. Chúc bạn thành công.
      Link dowload: http://www.mediafire.com/?vmd00u1k3a1s010

      Comment

      • kenvinlam
        Nhập môn đệ tử
        • Nov 2009
        • 3

        #4
        Cam on cac anh nha! Nhung hinh nhu doan code tren co mot chut sai sot. Anh thanhute xem lai thu di

        Comment

        • 222222222
          Nhập môn đệ tử
          • Mar 2011
          • 4

          #5
          Nguyên văn bởi kenvinlam View Post
          Em mới học về pic. Bác nào biết code quét 8 led đơn chạy đuổi nhau dùng MPLAB cho em xin được không! Em nghiên cứu hoài ma không ra.

          PROCESSOR P16F877A
          INCLUDE <P16F877A.INC>
          _CONFIG H'3F10'
          ORG 0X0000
          GOTO START
          START BSF STATUS,5
          CLRF TRISB
          BCF STATUS,5
          CLRF PORTB
          LOOP MOVLW B'00000001'
          MOVWF PORTB
          CALL DELAY2
          MOVLW B'00000010'
          MOVWF PORTB
          CALL DELAY2
          MOVLW B'00000100'
          MOVWF PORTB
          CALL DELAY2
          MOVLW B'00001000'
          MOVWF PORTB
          CALL DELAY2
          MOVLW B'00010000'
          MOVWF PORTB
          CALL DELAY2
          MOVLW B'00100000'
          MOVWF PORTB
          CALL DELAY2
          MOVLW B'01000000'
          MOVWF PORTB
          CALL DELAY2
          MOVLW B'10000000'
          MOVWF PORTB
          CALL DELAY2
          GOTO LOOP
          DELAY1 MOVLW .166
          MOVLW 20H
          LOOP1 DECFSZ 20H
          GOTO LOOP1
          RETURN
          DELAY2 MOVLW .40
          MOVWF 21H
          LOOP2 CALL DELAY1
          DECFSZ 21H
          GOTO LOOP2
          RETURN
          END

          ngoài ra bạn có thể dùng kĩ thuật bảng

          Comment

          • hcmut.khoamaisi
            Đệ tử 4 túi
            • Dec 2009
            • 79

            #6
            Nguyên văn bởi 222222222 View Post
            PROCESSOR P16F877A
            INCLUDE <P16F877A.INC>
            _CONFIG H'3F10'
            ORG 0X0000
            GOTO START
            START BSF STATUS,5
            CLRF TRISB
            BCF STATUS,5
            CLRF PORTB
            LOOP MOVLW B'00000001'
            MOVWF PORTB
            CALL DELAY2
            MOVLW B'00000010'
            MOVWF PORTB
            CALL DELAY2
            MOVLW B'00000100'
            MOVWF PORTB
            CALL DELAY2
            MOVLW B'00001000'
            MOVWF PORTB
            CALL DELAY2
            MOVLW B'00010000'
            MOVWF PORTB
            CALL DELAY2
            MOVLW B'00100000'
            MOVWF PORTB
            CALL DELAY2
            MOVLW B'01000000'
            MOVWF PORTB
            CALL DELAY2
            MOVLW B'10000000'
            MOVWF PORTB
            CALL DELAY2
            GOTO LOOP
            DELAY1 MOVLW .166
            MOVLW 20H
            LOOP1 DECFSZ 20H
            GOTO LOOP1
            RETURN
            DELAY2 MOVLW .40
            MOVWF 21H
            LOOP2 CALL DELAY1
            DECFSZ 21H
            GOTO LOOP2
            RETURN
            END

            ngoài ra bạn có thể dùng kĩ thuật bảng
            Bạn có sơ đồ mach lun không
            My blog: http://autumnneverreturn.blogspot.com/
            Đối thủ khó chiến thắng nhất là bản thân !!!

            Comment

            • ladykiller
              Đệ tử 3 túi
              • Nov 2011
              • 58

              #7
              chạy led đơn ở portb tích cực mức thấp tổng hợp 10 kiểu chạy, bạn có thể tham khảo
              PROCESSOR 16F877A
              #INCLUDE<P16F877A.INC>
              DEM1 EQU 20H
              DEM2 EQU 21H
              __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
              ORG 0000H
              BCF STATUS,6
              BSF STATUS,5
              CLRF TRISB
              BCF STATUS,5
              CLRF PORTB
              MAIN
              CHAY0
              MOVLW B'01111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11011111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11101111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111101'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111101'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111101'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11101111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11011111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11011111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11101111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111101'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111101'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111101'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11101111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11011111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10111111'
              MOVWF PORTB
              CALL DELAY

              CHAY1
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY

              MOVLW B'10000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11100000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11100000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11100000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11100000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10000000'
              MOVWF PORTB
              CALL DELAY

              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000001'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00001111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00011111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00011111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00001111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000001'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000001'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00001111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00011111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00011111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00001111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000001'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY


              CHAY2


              MOVLW B'10101010'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01010101'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10101010'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01010101'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10101010'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01010101'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10101010'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01010101'
              MOVWF PORTB
              CALL DELAY
              CHAY3

              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY


              CHAY4

              MOVLW B'10000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00100000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00010000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00001000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000010'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000001'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000010'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00001000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00010000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00100000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10000000'
              MOVWF PORTB
              CALL DELAY

              CHAY5

              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'11100111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11000011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10000001'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10000001'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11000011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11100111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY

              CHAY6

              MOVLW B'01111110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00111100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00011000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00011000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00111100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'01111110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY


              CHAY7

              MOVLW B'00111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10011111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11001111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11100111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111001'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111001'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11100111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11001111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10011111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY

              CHAY8
              MOVLW B'01111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10111111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11011111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11101111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110111'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111011'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111101'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111101'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111110'
              MOVWF PORTB
              CALL DELAY


              MOVLW B'01111110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10111110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11011110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11101110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110110'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111010'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111100'
              MOVWF PORTB
              CALL DELAY

              MOVLW B'01111100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10111100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11011100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11101100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110100'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11111000'
              MOVWF PORTB
              CALL DELAY

              MOVLW B'01111000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10111000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11011000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11101000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11110000'
              MOVWF PORTB
              CALL DELAY


              MOVLW B'01110000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10110000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11010000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11100000'
              MOVWF PORTB
              CALL DELAY

              MOVLW B'01100000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10100000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'11000000'
              MOVWF PORTB
              CALL DELAY

              MOVLW B'01000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'10000000'
              MOVWF PORTB
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY




              CHAY9

              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'00000000'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY
              MOVLW B'11111111'
              MOVWF PORTB
              CALL DELAY
              CALL DELAY


              GOTO MAIN
              DELAY
              MOVLW D'200'
              MOVWF DEM1
              LOOP
              DECFSZ DEM1
              GOTO LOOP1
              GOTO THOAT
              LOOP1
              MOVLW D'250'
              MOVWF DEM2
              LOOP3
              DECFSZ DEM2
              GOTO LOOP3
              GOTO LOOP
              THOAT
              NOP
              RETURN
              RETURN
              END

              Comment

              • ladykiller
                Đệ tử 3 túi
                • Nov 2011
                • 58

                #8
                eo ui post xong mới thấy chương trình mình dài quá @@ bạn thích sử dụng kiểu chạy nào thì cắt 1 đoạn đó thôi là được
                chúc thành công

                Comment

                • DunLop
                  Nhập môn đệ tử
                  • Feb 2012
                  • 4

                  #9
                  bạn ơi, có thuật toán nào gọn hơn ko...kiểu này thì đơn giản, nhưng ông thầy mình kêu thi ko cho làm kiểu này, mình nghĩ mãi ko ra..
                  ví dụ như là cho 1 con led chạy từ 1 đến 8 rồi sáng tám
                  chạy tiếp từ đense 7 rồi sáng 7....cứ chạy đến khi sáng led thứ 1 rồi ngược lại.
                  nhưng ko dùng thuật toán chỉ mov như của bạn nhé..
                  bạn giúp mình với...thanks

                  Comment

                  • ladykiller
                    Đệ tử 3 túi
                    • Nov 2011
                    • 58

                    #10
                    he he gọn hơn thì dùng bảng ( hay mảng) ak, tại tưởng bạn mới tiếp cận nên dùng cái cơ bản )

                    Comment

                    • thongdtvtk7a
                      Nhập môn đệ tử
                      • Nov 2010
                      • 3

                      #11
                      #include <16F877A.h>
                      void main()
                      {
                      int k,i,p,t;
                      Set_tris_b(0);
                      while(1){
                      //sang ,tat
                      { output_b(0x00); delay_ms(300);
                      output_b(0xFF); delay_ms(300);
                      }
                      //chay tu trai qua phai
                      for(k=0x01;k<0x100;k<<=1)
                      {output_b(k); delay_ms(300);}
                      //chay tu phai qua trai
                      for(k=0x80;k>0;k>>=1){output_b(k); delay_ms(300);}
                      //chay tu giua ra ngoai
                      for(p=0x08,t=0x10;p>0;p>>=1){output_b(p|t);delay_m s(300); t<<=1; }
                      //chay tu giua vao trong
                      for(p=0x80,t=0x01;p>0;p>>=1){output_b(p|t);delay_m s(300); t<<=1; }
                      //chay sang dan tu phai qua trai va nguoc lai
                      k=0x00;
                      for(i=0x01;i<0x100;i<<=1){k=k+i; {output_b(k);delay_ms(300); }}
                      for(i=0x80;i>0;i<<=1);{k=k-i; {output_b(k);delay_ms(300);}}
                      }
                      }

                      Comment

                      • ladykiller
                        Đệ tử 3 túi
                        • Nov 2011
                        • 58

                        #12
                        Nguyên văn bởi thongdtvtk7a View Post
                        #include <16F877A.h>
                        void main()
                        {
                        int k,i,p,t;
                        Set_tris_b(0);
                        while(1){
                        //sang ,tat
                        { output_b(0x00); delay_ms(300);
                        output_b(0xFF); delay_ms(300);
                        }
                        //chay tu trai qua phai
                        for(k=0x01;k<0x100;k<<=1)
                        {output_b(k); delay_ms(300);}
                        //chay tu phai qua trai
                        for(k=0x80;k>0;k>>=1){output_b(k); delay_ms(300);}
                        //chay tu giua ra ngoai
                        for(p=0x08,t=0x10;p>0;p>>=1){output_b(p|t);delay_m s(300); t<<=1; }
                        //chay tu giua vao trong
                        for(p=0x80,t=0x01;p>0;p>>=1){output_b(p|t);delay_m s(300); t<<=1; }
                        //chay sang dan tu phai qua trai va nguoc lai
                        k=0x00;
                        for(i=0x01;i<0x100;i<<=1){k=k+i; {output_b(k);delay_ms(300); }}
                        for(i=0x80;i>0;i<<=1);{k=k-i; {output_b(k);delay_ms(300);}}
                        }
                        }
                        ở đây là MPASM dùng C thì bạn sang bên kia )

                        Comment

                        • lazy115
                          Nhập môn đệ tử
                          • Nov 2012
                          • 1

                          #13
                          có thể dùng code ngắn hơn bằng lệnh RCF hay RRF

                          Comment

                          • youaremylife
                            Đệ tử 2 túi
                            • Nov 2008
                            • 26

                            #14
                            Dùng các hàm logic dịch quay vòng là xong thôi vừa gọn đẹp vừa tiết kiệm bộ nhớ
                            cialispascherfr24 pharmacy

                            Comment

                            • hoangminhac
                              Nhập môn đệ tử
                              • Dec 2012
                              • 1

                              #15
                              mô phỏng bằng proteus như thế nào các bác nhỉ? muốn nạp cho con PIC16F877A hình như phải tạo đc 1 file .hex nhưng mình ko biết tạo bằng cách nào. mong các bác giúp cho nhé. thanks :X

                              Comment

                              Working...