Thông báo

Collapse
No announcement yet.

Giúp code gọi chương trình con bằng nút ấn MODE

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

  • Giúp code gọi chương trình con bằng nút ấn MODE

    Chào các bác. Em có 1 vài chỗ ko biết mong các bác giúp với.
    Đề bài là:
    Nguyên lý : Khi ấn Start hệ thống chạy, ấn nút Mode hệ thống chuyển sang các chế độ nháy khác nhau, cho đến khi ấn Stop hệ thống dừng
    Yêu Cầu: - Xây dựng phần cứng
    - Xây dựng lưu đồ thuật toán
    - Viết chương trình (dùng hợp ngữ hoặc C)
    Hiện tại đã viết code vài kiểu nháy và chạy mô phỏng ok. Nhưng em chưa biết các vấn đè sau:
    1. các nút ấn STOP, START, MODE thì cho vào đâu?
    2. code gọi các chương trình con khi ấn START, STOP, MODE

    Sau đây là mạch mô phỏng và code. Các bác giúp em với, sắp nộp bài rồi





    code: (ví dụ 2 kiểu nháy)
    ORG 00H

    ;Nhay 4 led thay doi nhau
    MAIN:
    MOV P2,#00001111B
    CALL DELAY
    MOV P2,#11110000B
    CALL DELAY
    JMP MAIN

    ;Nhay sang dan
    MAIN:
    MOV P2,#00000000B
    CALL DELAY
    MOV P2,#00000001B
    CALL DELAY
    MOV P2,#00000011B
    CALL DELAY
    MOV P2,#00000111B
    CALL DELAY
    MOV P2,#00001111B
    CALL DELAY
    MOV P2,#00011111B
    CALL DELAY
    MOV P2,#00111111B
    CALL DELAY
    MOV P2,#01111111B
    CALL DELAY
    MOV P2,#11111111B
    CALL DELAY
    JMP MAIN


    DELAY:
    MOV R0,#255
    LAP:MOV R1,#255
    DJNZ R1,$
    DJNZ R0,LAP
    RET
    END
    Thks !
    Last edited by mrmiu; 22-04-2012, 09:14.

  • #2
    lắp start, stop, mode vào chân nào chả được, nếu chưa quen thì có thể dụng ngắt ngoài, đảm bảo kích phát là gọi chương trình con ngay
    làm thêm 1 biến điều kiên, khi ấn công tắc bất kì thì biến điều kiện thay đổi, chuơng trình main sẽ kiểm tra biến điều kiện để hiện thị ở chế độ nào hay ko hiển thị
    Website chính thức đổi địa chỉ website thành
    Mời các bạn ghé thăm !!!

    Comment


    • #3
      cái này là đề bài tập của Thầy Hùng ở DHCNHN phải không

      Comment


      • #4
        Nguyên văn bởi mast090 Xem bài viết
        lắp start, stop, mode vào chân nào chả được, nếu chưa quen thì có thể dụng ngắt ngoài, đảm bảo kích phát là gọi chương trình con ngay
        làm thêm 1 biến điều kiên, khi ấn công tắc bất kì thì biến điều kiện thay đổi, chuơng trình main sẽ kiểm tra biến điều kiện để hiện thị ở chế độ nào hay ko hiển thị
        Bác có thể hướng dẫn cho em kĩ hơn 1 chút đc ko, em chưa hiểu


        Nguyên văn bởi haprohaui Xem bài viết
        cái này là đề bài tập của Thầy Hùng ở DHCNHN phải không
        đoàn chuẩn bác cũng CN à

        Comment


        • #5
          Chính xác đây là đề của thầy Hùng ở Haui.

          Comment


          • #6
            đề này ai làm vậy chứ
            Chạy ở nhiều chế độ chứ có phải bật tắt led đơn đâu
            Cái này thầy chỉ yêu cầu làm là phần xử lý phím đó
            cái này hay đấy

            Comment


            • #7
              thì mình xin hướng dẫn phần code xử lý 3 nút STOP, START, MODE là chủ yếu + mạch, còn các kiểu nháy khác nhau có rồi, trên kia là ví dụ 2 kiểu thôi

              Bác nào biết giúp em với

              Comment


              • #8
                Nguyên văn bởi mrmiu Xem bài viết
                thì mình xin hướng dẫn phần code xử lý 3 nút STOP, START, MODE là chủ yếu + mạch, còn các kiểu nháy khác nhau có rồi, trên kia là ví dụ 2 kiểu thôi

                Bác nào biết giúp em với
                có 2 điều kiện để thực hiện lệnh nhãy, thứ 1 nhãy khi port nào đó từ 0 lên 1 đó là lệnh JB, thứ 2 nhãy khi port nào đó từ 1 xuống 0 đó là lệnh JNB.
                VD: JB p1.1, sang_dan
                JB p1.2,tat_dan
                có nghĩa khi port 1.1 từ trạng thái 0 lên 1 thì nó lập tức nhãy đến nhãn sang_dan, nếu ko có sự thay đổi mức logic thì nó tiếp tục thực hiện lệnh dưới nó.

                Comment


                • #9
                  Nguyên văn bởi nguyentot90 Xem bài viết
                  có 2 điều kiện để thực hiện lệnh nhãy, thứ 1 nhãy khi port nào đó từ 0 lên 1 đó là lệnh JB, thứ 2 nhãy khi port nào đó từ 1 xuống 0 đó là lệnh JNB.
                  VD: JB p1.1, sang_dan
                  JB p1.2,tat_dan
                  có nghĩa khi port 1.1 từ trạng thái 0 lên 1 thì nó lập tức nhãy đến nhãn sang_dan, nếu ko có sự thay đổi mức logic thì nó tiếp tục thực hiện lệnh dưới nó.
                  lệnh nhảy đó là cho nút MODE? vậy còn START, STOP. Và 3 nút này nối vào port nào vậy bác?
                  nói chung là hơi hiểu tí xíu nhưng vẫn chưa nghĩ ra viết code thế nào

                  Comment


                  • #10
                    nối 3 nút đó vào đâu cũng dc nhưng phải biết mã hex của mã đó, dùng 1 thanh ghi lưu lại dữ liệu khi có biến đổi từ port đó, dùng lệnh nhảy có điều kiện để kt khi có dk xảy ra
                    ở đây mình dùng lệnh: CJNE Rn (thanh ghi lưu lại dữ liêu khi có nút nhấn),# (mã hex bị thay đổi khi có nút nhấn), nhãn ( nhảy đến khi có nút bấm)

                    Comment


                    • #11
                      Nguyên văn bởi mrmiu Xem bài viết
                      lệnh nhảy đó là cho nút MODE? vậy còn START, STOP. Và 3 nút này nối vào port nào vậy bác?
                      nói chung là hơi hiểu tí xíu nhưng vẫn chưa nghĩ ra viết code thế nào
                      nối vào 3 chân nào đó còn dư, có thể dùng 2 ngắt ngoài. Ngắt ngoài 0 để đổi mode, ngắt ngoài 1 làm nút stop, vì nút start phụ thuộc nút stop nên chỉ cần 1 chân I/O bình thường làm nút start

                      Comment


                      • #12
                        Nguyên văn bởi mrmiu Xem bài viết
                        lệnh nhảy đó là cho nút MODE? vậy còn START, STOP. Và 3 nút này nối vào port nào vậy bác?
                        nói chung là hơi hiểu tí xíu nhưng vẫn chưa nghĩ ra viết code thế nào
                        thì cũng tương tự..Ngắt ngoài như mấy Anh, chị nói mình ko rành, vì chưa tìm hiểu. Còn cách của mình lệnh JB và JNB giống như là lệnh "dò" vậy. Các nút còn lại cũng lập trình tương tự. Ví dụ như bạn muốn p1.1 là MODE, p1.2 là Start, p1.3 là Stop. thì JB p1.1,MODE
                        JB p1.2,start
                        JB p1.3,Stop
                        Vi điềun khiển sẽ "dò" từ trên xuống khi 1 trong 3 port đó có port nào lên 1 nó sẽ nhãy đến nhãn và thực hiện nộ dung trong nhãn đó.

                        Comment


                        • #13
                          vẫn mơ hồ quá à, các bác có thể giúp em vài dòng code luôn đc ko

                          Comment


                          • #14
                            Nguyên văn bởi mrmiu Xem bài viết
                            vẫn mơ hồ quá à, các bác có thể giúp em vài dòng code luôn đc ko
                            rất đơn giản, vì chú ko chịu động não thôi, xử lý phím bấm này trong ví dụ lúc học thế nào mà ko có. Nhìn code mà chú up lên là biết bảo đảm chú chưa dịch code đó ra file hex rồi, lỗi cơ bản dịch làm sao ra.
                            Giải thích thêm, về bản chất nếu ko dùng ngắt thì ko đơn thuần chỉ là JNB Px.x,CAIGIDO đâu, mà phải có thêm biến nhớ, hoặc ko thêm biến nhớ thì code sẽ dài gấp đôi.
                            Last edited by chung1608; 22-04-2012, 22:06.

                            Comment


                            • #15
                              ORG 00H
                              MOV P1,#00H ;cho p1 bằng 0 hết để khi nó lên mức 1 thì sẽ nhãy bởi lệnh JB
                              MAIN:
                              JB p1.1,MODE ;khi p1.1 bị tác động mức 1 từ bên ngoài ví dụ như nút ấn thì lệnh JB sẽ nhãy tới nhãn MODE
                              JB p1.2,START ; tương tự p1.1
                              JB p1.3,STOP ; tương tự p1.1
                              JMP MAIN ;nhãy về MAIN để dò lại từ đầu
                              MODE: ; nhãn MODE
                              MOV P2,#00H ; nội dung trong MODE ví dụ tác động mức 0 led ở p2 sẽ sáng
                              SJMP MAIN ; nhãy về MAIN để dò lại từ đầu
                              START: ; tương tự nhãn MODE
                              SJMP MAIN
                              STOP:
                              MOV P2,#0FFH
                              MOV P3,#0FFH
                              SJMP MAIN
                              RET
                              END

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                                Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                                hôm nay, 14:51
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                                Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                                hôm nay, 14:39
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                                Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                                hôm nay, 14:28
                              • bqviet
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi bqviet
                                Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                                Hôm qua, 20:26
                              • mèomướp
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi mèomướp
                                Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                                Hôm qua, 12:32
                              • vi van pham
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi vi van pham
                                Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                                Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                                20-02-2025, 21:31
                              • bqviet
                                Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                bởi bqviet
                                Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                                20-02-2025, 17:22
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Tiếng Anh, Đình Thường phải nói là rất tệ, khiến việc giao tiếp đời thường thôi cũng khó chứ nói gì về kĩ thuật.

                                Nhân tiện, nhờ các bạn, các bác xem giúp thư ĐT viết thế này liệu có thể gửi tới địa chỉ nhận hay chăng,...
                                20-02-2025, 11:52
                              • vi van pham
                                Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                bởi vi van pham
                                Uống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?

                                Cái khó bó cái...
                                19-02-2025, 23:05
                              • nhathung1101
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi nhathung1101
                                Nếu chú tâm thì học tiếng Việt cũng đủ rồi, thừa sức làm việc rồi.

                                Học tiếng Anh cũng chỉ phụ trợ để đọc thêm tài liệu, hướng dẫn.

                                Nhưng có hiểu điều đó không mới là vấn đề. Khi mà học ngoại ngữ để đi đạp xích lô đón khách???...
                                19-02-2025, 21:27
                              Đang tải...
                              X