Thông báo

Collapse
No announcement yet.

Cần giúp đỡ về code asm.

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

  • Cần giúp đỡ về code asm.

    Em đang dùng KeilC, phần viết code e chưa được thành thạo nên mới lên mạng xin được 1 đoạn code như sau:
    #include <sfr51.inc>
    org 0h
    main:
    mov sp,#60h
    mov r1,#0
    lap:
    mov r1,p1
    mov a,r1
    mov b,#100
    div ab
    mov dptr,#ma7vach
    movc a,@a+dptr
    setb p2.0
    mov p0,a
    lcall delay2ms
    clr p2.0
    ;******************
    mov a,b
    mov b,#10
    div ab
    mov dptr,#ma7vach
    movc a,@a+dptr
    setb p2.1
    mov p0,a
    lcall delay2ms
    clr p2.1
    ;*******************
    mov a,b
    mov dptr,#ma7vach
    movc a,@a+dptr
    setb p2.2
    mov p0,a
    lcall delay2ms
    clr p2.2
    ;******************
    inc r3 ; 1 lan quet qua 3 led mat 2x3=6ms
    cjne r3,#15,lap ; quet 15 lan de so sp dc hien thi toi thieu trong 90ms
    mov r3,#0
    ;*****************
    sjmp lap
    ;***************************
    delay2ms:
    mov tmod,#01H ; dat timer hoat dong o che do 1
    delay1:
    mov TL0,#30H ; t=2ms => so xung N=t.Fta/12=2000 xung=> >65536:dung bo dinh thoi 0 cdo 16bit
    mov TH0,#0F8H ; 2^16-N = 63536 = F830h => TL=30h, TH=F8h
    clr TF0 ; xoa co TF ve 0 de phuc vu viec kiem tra dem tran
    setb TR0 ; khoi dong bo dinh thoi 0
    delay2: jnb TF0,delay2 ; kiem tra co tran:neu co TF =0 (chua tran) thi lap lai,TF=1 thi ket thuc
    clr TR0 ; dung bo dinh thoi
    ret ; quay ve chuong trinh chinh
    ;**************************
    ma7vach: db 40H,79H,24H,30H,19H,12H,02H,78H,0H,10H
    END

    Các pro xem hộ em nó sai ở đâu mà e không thể chuyển nó sang HEX để nạp chạy mô phỏng cho 89c51 đc.

  • #2
    Bác thử xóa dòng đầu tiên #include <sfr51.inc> đi xem nào! Cái dòng này hình như dùng phần mềm Reads51 biên dịch mới cần, còn dùng KeilC không cần thì phải.

    Comment


    • #3
      include sai rồi kìa, trong keil c viết asm phải là:

      $NOMOD51
      $INCLUDE (REG51.INC)

      Comment


      • #4
        Thank bác Ck33spkt nhiều, e nạp được code rồi, mạch chạy ngon ơ.

        Comment


        • #5
          các bác giúp em với em viết code cho em 89c51 bang keil c chẳng hiểu sao khi tex lại toàn bị lỗi em không rõ sai ở đâu

          char equ p2
          clock equ p3.7
          input equ p3.6
          ; thiet lap 1
          mov r4, # 38h
          again:
          setb input
          clr clock
          cpl clock
          mov r4,#38
          djnz r4,again
          ;-----------------------------
          scan:
          mov dptr,#du_lieu
          mov r0,#255 ;do dai du lieu
          ;-----------------------------
          ;xu ly troi
          scan1:
          inc dptr
          mov 30h,dph ;save dptr
          mov 31h,dpl
          ;quyet lap lai
          scan2:
          mov r2,#20 ;so lan quyet
          ;------------------------------
          scan3:
          setb input ;chuyen 0 vao
          clr clock
          cpl clock
          mov r3,#57 ;so lan dich
          scan4:
          mov a,#0 ;chuyen du lieu
          movc a,@a+dptr
          mov char,a
          call delay
          inc dptr
          clr input ;chuyen 1 vao
          clr clock
          cpl clock
          ;------------------------------
          djnz r3,scan4 ;quyet lai doan
          ;------------------------------
          mov dph,30h
          mov dpl,31h ;load dptr
          djnz r2,scan3
          ;------------------------------
          djnz r0,scan1
          jmp scan ;quyet vo han
          ;------------------------------
          ;chuong trinh con
          delay:
          push 05
          push 06
          mov r6,#10 ; tre theo r6
          loop1:
          mov r5,#10 ;
          djnz r5,$
          djnz r6,loop1
          pop 06
          pop 05
          ret
          ;-----------------------------
          ;doan du lieu
          ;hien thi dong chu:' khoa dien tu vien thong dai hoc bach khoa ha noi'
          du_lieu:
          db 0,0,0,0,0,0
          db 0,0,0,0,0,0
          db 0,0,0,0,0,0
          db 0,0,0,0,0,0
          db 0,0,0,0,0,0
          db 0,0,0,0,0,0
          db 0,0,0,0,0,0
          db 0,0,0,0,0,0
          db 0,0,0,0,0,0
          db 7fh,08h,14h,22h,41h ;chu_k:
          db 0
          db 7fh,08h,08h,08h,7fh ;chu_h:
          db 0
          db 3eh,41h,41h,41h,3eh ;chu_o
          db 0
          db 7ch,06h,05h,06h,7ch;chu_a
          db 0,0,0,0
          db 08h,7fh,49h,41h,3eh ;chu_d
          db 0
          db 41h,7fh,41h ;chu_i:
          db 0
          db 7fh,49h,49h,49h;,49h ;chu_e:
          db 0
          db 7fh,04h,08h,10h,7fh ;chu_n:
          db 0,0,0,0
          db 01h,01h,7fh,01h,01h ;chu_t:
          db 0
          db 3fh,40h,40h,40h,3fh ;chu_u:
          db 0,0,0,0
          db 1fh,20h,40h,20h,1fh ;chu_v:
          db 0
          db 41h,7fh,41h ;chu_i:
          db 0
          db 7fh,49h,49h,49h;,49h ;chu_e:
          db 0
          db 7fh,04h,08h,10h,7fh ;chu_n:
          db 0,0,0,0
          db 01h,01h,7fh,01h,01h ;chu_t:
          db 0
          db 7fh,08h,08h,08h,7fh ;chu_h:
          db 0
          db 3eh,41h,41h,41h,3eh ;chu_o:
          db 0
          db 7fh,04h,08h,10h,7fh ;chu_n:
          db 0
          db 3eh,41h,49h,3ah,08h ;chu_g:
          db 0,0,0,0
          db 08h,7fh,49h,41h,3eh ;chu_d
          db 0
          db 7ch,06h,05h,06h,7ch ;chu_a
          db 0
          db 41h,7fh,41h ;chu_i:
          db 0,0,0,0
          db 7fh,08h,08h,08h,7fh ;chu_h:
          db 0
          db 3eh,41h,41h,41h,3eh ;chu_o:
          db 0
          db 3eh,41h,41h,41h,22h ;chu_c:
          db 0,0,0,0
          db 7fh,49h,49h,49h,36h ;chu_b:
          db 0
          db 7ch,06h,05h,06h,7ch ;chu_a
          db 0
          db 3eh,41h,41h,41h,22h ;chu_c:
          db 0
          db 7fh,08h,08h,08h,7fh ;chu_h:
          db 0,0,0,0
          db 7fh,08h,14h,22h,41h ;chu_k:
          db 0
          db 7fh,08h,08h,08h,7fh ;chu_h:
          db 0
          db 3eh,41h,41h,41h,3eh ;chu_o
          db 0
          db 7ch,06h,05h,06h,7ch ;chu_a
          db 0,0,0,0
          board
          db 7fh,08h,08h,08h,7fh ;chu_h:
          db 0
          db 7ch,06h,05h,06h,7ch ;chu_a
          db 0,0,0,0
          db 7fh,04h,08h,10h,7fh ;chu_n:
          db 0
          db 3eh,41h,41h,41h,3eh ;chu_o:
          db 0
          db 41h,7fh,41h ;chu_i:
          db 0
          db 0,0,0,0,0,0
          db 0,0,0,0,0,0
          end

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X