Thông báo

Collapse
No announcement yet.

Chọn chương trình con .... Mấy pro giúp em ớii

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

  • Chọn chương trình con .... Mấy pro giúp em ớii

    Em mới học vi điều khiển , hiện em dang viết 1 chương trình chọn chương trình con ( viết bằng assembler ) yêu cầu của bài là có 3 chương trình con , 2 nút nhấn , nút nhấn thứ nhất để chọn chương trình con nút nhấn thứ 2 dể bắt đầu chạy chương trình con , muốn thay đổi chế độ thì nhấn nút reset rùi chọn lại chế độ . Em đã viết và cho chạy mô phỏng bằng prouteus nhưng không chạy máy bác giúp em với , thanks các bác nhiều
    chương trình của em đây :
    ORG 0000H
    MOV R0,#00H
    MAIN:
    MOV R0,#00
    CHON:
    JB P0.0,CHON
    INC R0
    DJNZ R0,#4,MAIN
    STAR:
    JB P0.1,MAIN
    CJNE R0,#1H,LOOP1
    CALL CT1
    LOOP1:
    CJNE R0,#2H,LOOP2
    CALL CT2
    LOOP2:
    CJNE R0,#3H,LOOP3
    CALL CT3
    LOOP3:
    JMP MAIN
    CT1:
    MOV P2,#00H
    SETB P2.0
    JMP CT1
    RET
    CT2:
    MOV P2,#00H
    SETB P2.1
    JMP CT2
    RET
    CT3:
    MOV P2,#00H
    SETB P2.2
    JMP CT3
    RET
    END

  • #2
    Vụ này hơi căng ah nha!
    Ko nói kết cấu phần cứng, xem phần mềm của bạn đã thấy hơi kỳ kỳ.
    Chỉ lấy CT1 thôi nhé
    "org 0000h
    .....
    INC R0
    DJNZ R0,#4,MAIN ; Vừa tăng R0 song gặp ngay lệnh này ^^! Lệnh này là giảm và nhảy nếu ko = 0, vậy là sai cú pháp lệnh
    ....

    CJNE R0,#1H,LOOP1 ; Lệnh này luôn xảy ra vì vừa tăng R0 lên rồi giảm ngay thì ko thể =1 để thực hiện lệnh sau.
    CALL CT1
    ......
    ;Coi như đã thực hiện lệnh Call CT1
    CT1:
    MOV P2,#00H
    SETB P2.0
    JMP CT1 ; Chính lệnh này nó sẽ làm quay vòng mãi chỉ ở trong CT1, ko thoát được ra ngoài để mà thực hiện các lệnh #
    RET
    ...
    end
    Đó, bạn xem thế nào rồi sửa lại cho đúng!
    Trần Đức Sơn

    tel:0934691385

    Comment


    • #3
      Cảm ơn bác cddt061 nhiều nha đúng là em sai cú pháp thật
      Còn cái lệnh jpm ct1 là vì em muốn sau khi chọn được chương trình con rùi thì chạy chương trình con đó luôn ví chương trình con cũng là chương trình chính .
      Vậy theo bác thì với yêu cầu của đề bài như vậy thì em nên viết như thế nào đây bác có cao kiến gì chỉ em với .
      Cảm ơn bác trước nha .

      Comment


      • #4
        Cú pháp cho chương trình khi viết bằng C sẽ như sau.

        While(chưa nhấn nút CHẠY){
        if(nhấn nút CHỌN) -> tăng biến chọn chương trình, nếu lớn hơn 3 thì cho biến chọn bằng 1
        }

        // Sau khi nhấn nút chạy, sẽ thoát khỏi vòng lặp chọn chuyển sang phần thực thi
        if(biến chọn == 1) chạy chương trình 1
        if(biến chọn == 2) chạy chương trình 2
        if(biến chọn == 3) chạy chương trình 3

        Em dựa theo đó để viết code asm cho phù hợp. nút CHẠY em có thể cho thêm cả chức năng STOP. Khi đang thực thi chương trình nào đó, nếu nhấn nút CHẠY thì sẽ dừng chương trình đó, thoát khỏi về phần chọn chương trình.
        Ethernet-RS232, PIC Webserver, RFID Reader
        CallerID, Cảnh báo BTS, ...
        0988006696
        linhnc308@gmail.com
        http://linhnc308.blogspot.com

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X