Thông báo

Collapse
No announcement yet.

ai xem hộ em cái code cho quang báo vxl 89c51 này sai ở đâu với :((

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

  • ai xem hộ em cái code cho quang báo vxl 89c51 này sai ở đâu với :((

    Em dùng reads51 ko biên dịch được đoạn code này. anh nào pro xem hộ em với.


    DULIEU BIT P3.0
    CLK BIT P3.1
    CHAR EQU P1
    org 0000h

    start:
    mov a,#00h
    mov p1,#0ffh
    mov dptr,#DL
    mov r6,#31 ;HE SO NHAN
    BD: mov r3,#255 ; so cot du lieu

    loop: mov r1,#0
    loop1:
    setb DULIEU ; dua du lieu vao 595
    mov r2,#0

    lap: mov p1,#0ffh
    setb CLK ;tao xung clock vao 595
    clr DULIEU
    clr CLK
    mov a,r2
    movc a,@a+dptr
    cpl a
    mov CHAR,a
    mov 7fh,#100 ; cho thoi gian ngan
    djnz 7fh,$
    inc r2
    cjne r2,#33,lap ; so cot led matran
    inc r1
    cjne r1,#4,loop1 ; toc do chay chu
    inc dptr
    djnz r3,loop
    djnz r6,BD
    jmp start
    ;================================================= ====
    DL:
    ORG 0100H

    DB 0FFH,0FFH,0C0H,0B7H,0B7H,0B7H,0C0H,0FFH ;A
    DB 0FFH,0FFH,80H,0B6H,0B6H,0B6H,0C9H,0FFH ;B
    DB 0FFH,0FFH,0C1H,0BEH,0BEH,0BEH,0DDH,0FFH ;C
    DB 0FFH,0FFH,80H,0BEH,0BEH,0BEH,0C1H,0FFH ;D
    DB 0FFH,0FFH,80H,0B6H,0B6H,0B6H,0B6H,0FFH ;E
    DB 0FFH,0FFH,80H,0B7H,0B7H,0B7H,0B7H,0FFH ;F
    DB 0FFH,0FFH,0C1H,0BEH,0B6H,0B6H,0D1H,0FFH ;G
    DB 0FFH,0FFH,80H,0F7H,0F7H,0F7H,80H,0FFH ;H
    DB 0FFH,0FFH,0BEH,0BEH,80H,0BEH,0BEH,0FFH ;I
    DB 0FFH,0FFH,0BDH,0BEH,0BEH,81H,0BFH,0FFH ;J
    DB 0FFH,0FFH,80H,0F7H,0EBH,0DDH,0BEH,0FFH ;K
    DB 0FFH,0FFH,80H,0FEH,0FEH,0FEH,0FEH,0FFH ;L
    DB 0FFH,0FFH,80H,0DFH,0EFH,0DFH,80H,0FFH ;M
    DB 0FFH,0FFH,80H,8FH,0F7H,0F8H,80H,0FFH ;N
    DB 0FFH,0FFH,0C1H,0BEH,0BEH,0BEH,0C1H,0FFH ;O
    DB 0FFH,0FFH,80H,0BBH,0BBH,0BBH,0C7H,0FFH ;P
    DB 0FFH,0FFH,0C1H,0BEH,0BAH,0BCH,0C1H,0FFH ;Q
    DB 0FFH,0FFH,80H,0B7H,0B3H,0B5H,0CEH,0FFH ;R
    DB 0FFH,0FFH,0DDH,0AEH,0B6H,0BAH,0DDH,0FFH ;S
    DB 0FFH,0FFH,0BFH,0BFH,80H,0BFH,0BFH,0FFH ;T
    DB 0FFH,0FFH,81H,0FEH,0FEH,0FEH,81H,0FFH ;U
    DB 0FFH,0FFH,83H,0FDH,0FEH,0FDH,83H,0FFH ;V
    DB 0FFH,0FFH,81H,0FEH,0F1H,0FEH,81H,0FFH ;W
    DB 0FFH,0FFH,9CH,0EBH,0F7H,0EBH,9CH,0FFH ;X
    DB 0FFH,0FFH,9FH,0EFH,0F0H,0EFH,9FH,0FFH ;Y
    DB 0FFH,0FFH,0BCH,0BAH,0B6H,0AEH,9EH,0FFH ;Z

    END.

  • #2
    ở reads51 thì phải khai báo thư viện ở đầu tiên là #include <sfr51.inc> hoặc 52, lệnh gọi ctr con là lcall lệnh nhảy là sjmp và ljmp. nếu viết lệnh call và jmp như các trình biên dịch khác thì nó sẽ báo lỗi.

    Comment


    • #3
      em cảm ơn.sau khi em sửa jmb thành ljmb và thêm #include <sfr51.inc> nó vẫn báo còn một lỗi anh ạ. reads51 có vẻ hơi khó dùng với người mới sử dụng như em. anh xem hộ em với. Còn lỗi ở dòng này anh ạ DB 0FFH,0FFH,0BCH,0BAH,0B6H,0AEH,9EH,0FFH ;Z

      Comment


      • #4
        Nguyên văn bởi mrbj Xem bài viết
        em cảm ơn.sau khi em sửa jmb thành ljmb và thêm #include <sfr51.inc> nó vẫn báo còn một lỗi anh ạ. reads51 có vẻ hơi khó dùng với người mới sử dụng như em. anh xem hộ em với. Còn lỗi ở dòng này anh ạ DB 0FFH,0FFH,0BCH,0BAH,0B6H,0AEH,9EH,0FFH ;Z
        chú chuyển qua dùng cái này đi http://www.opcube.com/software/midepack02518.exe

        Comment


        • #5
          từ trước đến giờ mình dùng reads51 thấy rất ổn định nên không nghĩ đến dùng phần mềm khác. code của bạn có 3 lỗi là khai báo thư viện #include <sfr51.inc> và đổi jmp thành ljmp và cuối cùng ở chỗ kết thúc trình biên dịch không có dấu chấm, ở END. bạn đổi thành END

          Comment


          • #6
            em cảm ơn các anh. thế còn đoạn code này em cũng ko biên dịch được

            #include <sfr51.inc>
            ORG 000H
            START:
            MOV DPTR,#DATA1
            LOOP: MOV R2,#0 ;bo dem dich
            LOOP2: MOV R5,#32 ;so lan quet tao delay
            LOOP1: MOV R0,#0 ;ma quet hang
            MOV R1,#0 ;ma quet cot
            LOOP3: MOV A.R1
            MOV P2,A ;xuat ma quet cot
            MOV A,R0
            ADD A,R2
            MOVG A,@A+DPTR ;tra bang
            mov P1,A ;xuat ma quet hang
            LCALL DELAY1
            INC R0
            INC R1
            CJNE R1,#24,LOOP3
            DJNZ R5,LOOP1
            INC R2
            CJNE R2,#183,LOOP2
            LJMP LOOP
            DELAY1:
            mov r7,#80
            djnz r7,$
            ret
            ;===========================
            DATA1: ;TRUONG DH SPKT TP.HCM

            DB 00H,OOH,OOH,OOH,OOH,OOH,OOH,OOH
            DB 00H,OOH,OOH,OOH,OOH,OOH,OOH,OOH
            DB 00H,OOH,OOH,OOH,OOH,OOH,OOH,OOH
            DB
            006H.003H,081H,0FFH,0FFH,081H,001H,007H,000H,081H, 0FFH,089H,019H,0F7H,0C6H
            DB
            080H,001H,07FH,0FFH,081H,080H,080H,0C1H,07FH,001H, 03CH,07EH,0C3H,081H,081H,0C2H
            DB
            07EH,03DH,000H,081H,0FFH,087H,00EH,01CH,038H,061H, 0FFH,001H,000H,03CH,07EH,0C3H
            DB
            081H,091H,073H,0F4H,010H,000H,000H,000H,091H,0FFH, 0FFH,091H,081H,0C3H,07EH,03CH
            ;================================================= ===========
            END

            Comment


            • #7
              bạn này đúng là được voi đòi 2 bà trưng, trước khi học về môn vi xử lý bạn nên đọc sách giáo trình trước, đọc đến đâu tập viết code đến đấy thì mới hiểu được, chứ học theo cái kiểu này thì không ổn tí nào. khi copy code của người khác để biến thành của mình mà cũng không biết làm thế nào cho nó chạy. khi biên dịch nó báo lỗi ở đâu thì tìm đến dòng bị lỗi đó xem nguyên nhân lỗi ở đâu sửa lại để lần sau không mắc phải nữa, ở bài này mình không biết là code bạn tự viết hay copy ở đâu nữa nhưng ở trong bảng mã DATA1 toàn là OOH nó báo lỗi là phải thôi, 00H vói OOH khác nhau. và lệnh đọc ở DPTR là movc chứ không phải movg như bạn viết. ở câu lệnh mov a.r1 phải là mov a,r1

              Comment


              • #8
                em sr anh. tại em mới học. ngồi viết code vẫn còn non nên nhầm. tại các lệnh ko nhớ hết nên ngồi debug lại mà mãi ko ra. em cảm ơn. nó báo lỗi ở dòng 0 nên em mới ko hiểu anh ạ
                Last edited by mrbj; 09-03-2012, 03:13.

                Comment


                • #9
                  Mình có test thì thấy nó dịch qua file hex được mf k có lõi gì bạn ak..mình dùng MCS-51 IDE .(file hex kem theo) .mình thấy lệnh CPL là lệnh đảo bít mà bạn đảo thanh gi ak?sao nó k bão lỗi vậy ta???

                  Comment


                  • #10
                    Nguyên văn bởi thuanbk1989 Xem bài viết
                    Mình có test thì thấy nó dịch qua file hex được mf k có lõi gì bạn ak..mình dùng MCS-51 IDE .(file hex kem theo) .mình thấy lệnh CPL là lệnh đảo bít mà bạn đảo thanh gi ak?sao nó k bão lỗi vậy ta???
                    thanh ghi A có thể thao tác CPL, CLR cho toàn bộ cả thanh

                    Comment


                    • #11
                      bạn có thể gửi mình file hex đó được ko?

                      Comment


                      • #12
                        ban xem nhé.. FIle dinh kem.rar
                        minh k tải lên đc vì báo lỗi hoài ak.nên chuyển wa mediafre dùng tạm nhé

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        Đang tải...
                        X