Thông báo

Collapse
No announcement yet.

cần giúp đỡ cua các đồng nghiệp

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

  • cần giúp đỡ cua các đồng nghiệp

    mình có doan chương trình bé cỏn con này nhưng làm mãi ko đc , mong các ban giúp minh nha.nạp số đếm cho r1& r2 nhưng khi đếm về 0 thi nó tự nhảy về giá tri ff , chứ không còn là #20h nua, nói tóm la minh muốn khống chế số đếm thập lục phân tại#20h hoặc vị trí nào đó ,nhưng làm mãi ko đc, công phu mình còn kem quá , mong các ban giúp do nha

    $MOD51
    ORG 0000H
    LJMP MAIN
    ORG 0030H
    MAIN:
    MOV TMOD,#60H
    MOV TH1,#0f0H
    MOV IE,#00H
    SETB TR1
    mov r1,#20H
    mov r2,#20h

    MOV P1,#00H
    MOV P2,#00H

    LOOP: CJNE R1 ,#10H, LOOP1
    AJMP LOOP
    LOOP1:

    dec R1
    MOV P1,R1
    dec R2
    MOV P2,R2

    sjmp loop
    END
    học học nữa và học khi...... đến chết

  • #2
    mov r1,#20H
    mov r2,#20h

    MOV P1,#00H
    MOV P2,#00H

    LOOP: CJNE R1 ,#10H, LOOP1
    AJMP LOOP
    LOOP1:

    dec R1
    MOV P1,R1
    dec R2
    MOV P2,R2
    sjmp loop
    END
    Trong chương trình của bạn, sau khi thực hiện đếm kết thúc, các giá trị của R1,R2 là 0(do các lệnh DEC R1, DEC R2 làm giảm R1,R2 1 đơn vị). Sau đó bạn lại dùng luôn lệnh SJMP LOOP nhảy về đầu vòng đếm mà chưa khởi tạo lại cho R1,R2 nên chương trình chạy sai là phải. Sửa lại như sau:

    main_loop:
    mov r1,#20H ; Gán R1 = 0x20
    mov r2,#20h ; Gán R2 = 0x20
    MOV P1,#00H ; Xóa PORT
    MOV P2,#00H
    LOOP: CJNE R1 ,#10H, LOOP1 ; So sánh R1 với 0x10. Nếu không bằng sẽ nhảy đến LOOP1
    AJMP LOOP
    LOOP1:
    dec R1 ; giảm R1
    MOV P1,R1
    dec R2
    MOV P2,R2
    sjmp main_loop

    Chương trình sửa có thể chưa đúng với ý đồ của bạn nhưng đảm bảo việc khởi tạo lại giá trị cho R1,R2 để bắt đầu một vòng đếm mới. Bạn tự code lại và nhớ nạp lại giá trị thích hợp cho R1,R2 sau môi lần đếm.
    Bạn chú ý xem lại cái phần tôi tô đậm đỏ, có vấn đề, nếu khi R1 = 0x10 thì điều gì sẽ xảy ra???
    Chúc thành công.
    Last edited by linhnc308; 17-04-2008, 17:13. Lý do: Updated
    Ethernet-RS232, PIC Webserver, RFID Reader
    CallerID, Cảnh báo BTS, ...
    0988006696
    linhnc308@gmail.com
    http://linhnc308.blogspot.com

    Comment


    • #3
      main_loop:
      mov r1,#20H
      mov r2,#20h
      MOV P1,#00H
      MOV P2,#00H
      LOOP: dec R1
      MOV P1,R1
      dec R2
      MOV P2,R2
      JBC TF1, main_loop
      AJMP LOOP
      end
      em thay cjne bằng jbc thi đc ko ạ,khi cờ tran tf1 xuất hiện ,r1&r2 dã giảm về 0 (xóa tf1)và nhảy đến main_loop để nạp lai trị cho r1&r2 rồi tiếp tuc lai giảm r1&r2
      va r2 ,nhưng nó lại ko chạy, em cung ko hieu sao nữa, nói tóm ý định của em la muốn khống chế hệ đếm như 74LS190 ,em chi hoc trung cấp thôi ma chuan di lam do án nữa, ngày nao cung ngồi mò như vậy chắc chết mất.Kính mong anh giúp đỡ cho em ( con diếu nay nữa , em muốn tạo cổng P0.0,P0.1,P0.2 thành cổng and thì phải lam như thế nào)
      Last edited by hoangphi; 18-04-2008, 11:31.
      học học nữa và học khi...... đến chết

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X