Thông báo

Collapse
No announcement yet.

thắc mắc viết asm trong keil c

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

  • #16
    Nguyên văn bởi thinking Xem bài viết
    Các anh cho em hỏi là không biết sao khi viết asm bằng keil c nếu em chèn cái dòng thư viện include <REGX52.h> vào chuơng trình thì lại không thể dịch được còn nếu bỏ đi thì thông báo dịch được nhưng chạy thử thì lại không thấy đúng
    Hú cả vía! phim kinh dị xem cũng đã nhiều nay mới thấy điều kinh ngạc như thế. Chả hiểu bạn đang làm cái quái gì nữa? nhưng mình nói thế này: ASM và C là 2 ngôn ngữ hoàn toàn độc lập. Nghĩa là khi biên dịch chương trình theo ngôn ngữ nào thì hệ thống sẽ dùng văn phạm của ngôn ngữ đó để kiểm tra chính tả vào cú pháp. Thế mà bạn lại dùng lệnh của ngôn ngữ này đưa vào chương trình của ngôn ngữ kia, rồi bình luận các lỗi xảy ra nếu có.
    Chúng ta chỉ cần biết viết như thế là không đúng đã, còn nó muốn báo lỗi gì thì nó báo. Còn bạn viết đúng cú pháp rồi mà vẫn chạy sai thì đấy là do thuật toán của bạn mà thôi.

    nguyễn sĩ tú CNT48DH đhhh
    phone: 0969132917

    Comment


    • #17
      khi dùng kelic để viết asm thi không cần thêm thư viện nào cả, có gì cứ hỏi minh trả lới cho vì toàn dùng asm mà

      Comment


      • #18
        khi ngắt xảy ra thì vdk dừng mọi hoạt động để thực hiện ngắt, xong nó lại quay lại chỗ mà nó dừng lại và làm tiếp việc đang làm dở, bạn muốn nó quay lại vị trí main thì phải kiểm tra liên tục xem có ngắt không. nếu có thì nhảy dến main

        Comment


        • #19
          ui bạn hiểu sai về ngắt rồi.
          khi thực hiện ngắt xong nó sẽ tự thực hiện tiếp công việc đang làm dở nên k cần nhãn để nhảy về hàm chính đâu.

          Comment


          • #20
            ui bạn hiểu sai về ngắt rồi.
            khi thực hiện ngắt xong nó sẽ tự thực hiện tiếp công việc đang làm dở nên k cần nhãn để nhảy về hàm chính đâu.
            ý mình muốn khi xảy ra ngắt nó nhảy về lại nhãn main đó bạn ơi..

            Comment


            • #21
              khi ngắt xảy ra thì vdk dừng mọi hoạt động để thực hiện ngắt, xong nó lại quay lại chỗ mà nó dừng lại và làm tiếp việc đang làm dở, bạn muốn nó quay lại vị trí main thì phải kiểm tra liên tục xem có ngắt không. nếu có thì nhảy dến main
              theo mình bít khi chưa gặp lệnh reti nó chưa thoát ra khỏi ngắt nếu cho nó nhảy về lại main thì lần sau nó không có ngắt được nữa...

              Comment


              • #22
                ASM và C là 2 ngôn ngữ hoàn toàn độc lập. Nghĩa là khi biên dịch chương trình theo ngôn ngữ nào thì hệ thống sẽ dùng văn phạm của ngôn ngữ đó để kiểm tra chính tả vào cú pháp. Thế mà bạn lại dùng lệnh của ngôn ngữ này đưa vào chương trình của ngôn ngữ kia, rồi bình luận các lỗi xảy ra nếu có.
                Chúng ta chỉ cần biết viết như thế là không đúng đã, còn nó muốn báo lỗi gì thì nó báo. Còn bạn viết đúng cú pháp rồi mà vẫn chạy sai thì đấy là do thuật toán của bạn mà thôi.[/B]
                theo mình bạn này nói đúng nè

                Comment


                • #23
                  ngay từ ý tưởng của bạn đã sai rồi,đã là ngắt thì mình phải để ở 1 chương trình con khác chứ k thể khi xảy ra ngắt nó lại nhảy vào hàm main được, bó tay bạn rồi đó. t đã từng lập trình bằng ASM và C nhưng chưa ai có kiểu nghĩ như bạn cả!

                  Comment


                  • #24
                    ngay từ ý tưởng của bạn đã sai rồi,đã là ngắt thì mình phải để ở 1 chương trình con khác chứ k thể khi xảy ra ngắt nó lại nhảy vào hàm main được, bó tay bạn rồi đó. t đã từng lập trình bằng ASM và C nhưng chưa ai có kiểu nghĩ như bạn cả!
                    ko có cách nào thật à?? khi xảy ra ngắt làm việc trong ngắt xong nhảy về lại nhãn ban đầu..!! z với động cơ step làm sao cho nó dừng khi sử dụng đc ngắt ta??

                    Comment


                    • #25
                      thì trong ngắt bạn k khởi động động cơ nữa là được mà, dễ vậy mà cứ hỏi vòng vòng thui ah.chắc bạn mới học lập trình nhưng học k đúng cách nên chẳng hiểu sâu vấn đề gì cả.

                      Comment


                      • #26
                        thì trong ngắt bạn k khởi động động cơ nữa là được mà, dễ vậy mà cứ hỏi vòng vòng thui ah.chắc bạn mới học lập trình nhưng học k đúng cách nên chẳng hiểu sâu vấn đề gì cả.
                        thì trong ngắt clr động cơ nhưng mà motor step nó chạy theo kiểu 0000 0010 0100 1000
                        khi xảy ra ngắt mình mov 00 khi hết ngắt nó nhảy về lại nơi làm việc tiếp mà bạn....!!!

                        Comment


                        • #27
                          Nguyên văn bởi tiensitu86 Xem bài viết
                          Hú cả vía! phim kinh dị xem cũng đã nhiều nay mới thấy điều kinh ngạc như thế. Chả hiểu bạn đang làm cái quái gì nữa? nhưng mình nói thế này: ASM và C là 2 ngôn ngữ hoàn toàn độc lập. Nghĩa là khi biên dịch chương trình theo ngôn ngữ nào thì hệ thống sẽ dùng văn phạm của ngôn ngữ đó để kiểm tra chính tả vào cú pháp. Thế mà bạn lại dùng lệnh của ngôn ngữ này đưa vào chương trình của ngôn ngữ kia, rồi bình luận các lỗi xảy ra nếu có.
                          Chúng ta chỉ cần biết viết như thế là không đúng đã, còn nó muốn báo lỗi gì thì nó báo. Còn bạn viết đúng cú pháp rồi mà vẫn chạy sai thì đấy là do thuật toán của bạn mà thôi.
                          Bạn không dùng keil C nhúng code ASM bao giờ à mà nói vậy, câu hỏi mình đặt ra từ hồi năm nhất mới tiếp xúc với lập trình vđk thôi mà bạn phán như thánh ấy,kinh vãi

                          Comment


                          • #28
                            Nói 1 cách đơn giản như thế này:
                            1. Bạn viết bằng Assembly thì không được khai báo thư viện include <REGX52.h>.
                            2. Nếu viết bằng Assembly mà gặp lỗi
                            error C129: missing ';' before '00'
                            Target not created
                            có nghĩa là lúc bạn tạo project bạn đã lưu tên projec với đuôi *.c . Bạn cần làm lại và lúc lưu project thì lưu với đuôi *.asm
                            Chúc các bạn thành công!

                            Comment


                            • #29
                              mấy a ơi cho e hỏi sao ma asm e dich bang asm51 trong may thang ban dc ma bo vao kiel c may of e lai k dich dc..bao loi...bac nao bjt chi e vs...e hoi ga`...hjc
                              loi nek Text1.asm(50): error A17: INVALID BYTE BASE IN BIT ADDRESS EXPRESSION
                              chuong trinh cua e day......
                              $NOMOD51
                              ;CAC HANG SO
                              EN1VACH EQU 261
                              EN1M EQU 522
                              ENNANG2CM EQU 2
                              VMAXP EQU 255
                              VMAXT EQU 255
                              ;CAC BIEN KIEU BYTE
                              BANHPHAI_TD1 DATA 32H
                              BANHPHAI_TD2 DATA 33H
                              BANHPHAI_TD3 DATA 34H
                              BANHPHAI_TD4 DATA 35H
                              BANHPHAI_TD5 DATA 36H
                              BANHPHAI_TD6 DATA 37H
                              BANHPHAI_TD7 DATA 38H
                              BANHPHAI_TD8 DATA 39H
                              BANHTRAI_TD1 DATA 3AH
                              BANHTRAI_TD2 DATA 3BH
                              BANHTRAI_TD3 DATA 3CH
                              BANHTRAI_TD4 DATA 3DH
                              BANHTRAI_TD5 DATA 3EH
                              BANHTRAI_TD6 DATA 3FH
                              BANHTRAI_TD7 DATA 40H
                              BANHTRAI_TD8 DATA 41H
                              DEM_VACH DATA 42H
                              TONG_CAM_BIEN DATA 43H
                              ENTHAP DATA 45H
                              ENCAO DATA 46H
                              ENTHAPT DATA 47H
                              ENCAOT DATA 48H
                              VUNG DATA 49H
                              DELAYTHAP DATA 4AH
                              DELAYCAO DATA 4BH
                              NHO_ENTHAP DATA 4CH
                              NHO_ENCAO DATA 4DH
                              BYTE_LOC DATA 4EH
                              NHO_A0 DATA 4FH
                              NHO_A1 DATA 50H
                              NHO_A2 DATA 51H
                              NHO_A3 DATA 52H
                              SOVACHNANG DATA 55H
                              ;CAC BIEN KIEU BIT
                              NHO_C3 BIT 20H
                              NHO_C2 BIT 21H
                              NHO_C1 BIT 22H
                              NHO_C0 BIT 23H
                              BIT_NHO_PHAI BIT 24H
                              BIT_NHO_TRAI BIT 25H
                              BIT_QUA_VACH_NGANG BIT 26H
                              NUT1 BIT p2.0 ;tich cuc 0
                              NUT2 BIT P2.1
                              NUT3 BIT P2.2
                              NUT4 BIT P2.3
                              NUT5 BIT P2.4
                              NUT6 BIT P2.5
                              NUT7 BIT P2.6
                              NUT8 BIT P2.7
                              CTTREN BIT P2.3
                              CTDUOI BIT P2.2 ;(NGANG)
                              MATLONGT BIT P2.0
                              MATLONGP BIT P2.1

                              CAMBIEN8 BIT P0.0 ;tichcuc 1
                              CAMBIEN7 BIT P0.1
                              CAMBIEN6 BIT P0.2
                              CAMBIEN5 BIT P0.3
                              CAMBIEN4 BIT P0.4
                              CAMBIEN3 BIT P0.5
                              CAMBIEN2 BIT P0.6
                              CAMBIEN1 BIT P0.7


                              ACTBANH BIT EX0
                              ACTNANG BIT EX1

                              BANHTRAI DATA CCAP0H ;p1.3-toc do dong co
                              BANHPHAI DATA CCAP1H ;p1.4
                              DCNANG DATA CCAP2H
                              DCVUON DATA CCAP3H
                              DCKEO DATA CCAP4H ;p1.7
                              BANHTRAI_DAO BIT P1.2 ;chieu dong co
                              BANHPHAI_DAO BIT P1.1
                              DCNANG_DAO BIT P1.0
                              DCVUON_DAO BIT P3.5
                              DCKEO_DAO BIT P3.4
                              RLCHUYEN1 BIT P3.6 ;chan du tru
                              RLCHUYEN2 BIT P3.7
                              ;========================== MAIN =========================
                              ORG 0000H ;RESET
                              LJMP MAIN 0003H ;P3.2 TU 1 XUO
                              ORG NG 0
                              LJMP NGAT_EX0
                              ORG 000BH ;TIMER0 TF0 NHAN GT 1
                              LJMP NGAT_T0_DELAY
                              ORG 0013H ;P3.3 TU 1 XUONG 0
                              LJMP NGAT_EX1
                              ;-------------------
                              ORG 0030H
                              ;=============================
                              RESETROBOT:
                              MOV BANHTRAI,#0
                              MOV BANHPHAI,#0
                              MOV DCNANG,#0
                              MOV DCVUON,#0
                              MOV DCKEO,#0
                              SETB BANHTRAI_DAO
                              SETB BANHPHAI_DAO
                              SETB DCNANG_DAO
                              SETB DCVUON_DAO
                              SETB DCKEO_DAO
                              CALL DELAY50MS
                              CLR BIT_NHO_PHAI
                              CLR BIT_NHO_TRAI
                              MOV DEM_VACH,#0
                              CLR C
                              MOV A,#0
                              RET
                              ;===============================

                              ;===============================

                              ;===============================

                              ;===============================
                              LOC_NHIEU:
                              START_LOC_NHIEU:
                              MOV R3,#3 ;LOC NHIEU 3 LAN LIEN TIEP (=40US)
                              MOV BYTE_LOC,A
                              LOOP_LOC_NHIEU:
                              CALL DELAY10
                              MOV A,P0 ;NHAP CAM BIEN
                              CJNE A,BYTE_LOC,START_LOC_NHIEU ;(A==R4)???
                              DJNZ R3,LOOP_LOC_NHIEU
                              THOAT_LOC_NHIEU:
                              RET
                              ;=================== TIME 0 DELAY TIME OUT ==================
                              NGAT_T0_DELAY:
                              MOV NHO_C0,C
                              MOV NHO_A0,A
                              CLR TR0
                              MOV TH0,#HIGH(-10000)
                              MOV TL0,#LOW(-10000)
                              SETB TR0
                              DJNZ DELAYTHAP,THOAT_T0
                              DJNZ DELAYCAO,THOAT_T0
                              CLR TR0
                              THOAT_T0:
                              MOV C,NHO_C0
                              MOV A,NHO_A0
                              RETI
                              ;========= NGAT TIMER 1 : HIEN THI LED v LAM VIEC ========

                              ;======================= NGAT_EX0 ========================
                              NGAT_EX0:
                              MOV NHO_C2,C
                              MOV NHO_A2,A
                              MOV A,ENTHAP
                              CJNE A,#0,DEC_ENTHAP
                              MOV A,ENCAO
                              CJNE A,#0,DEC_ENCAO
                              CLR ACTBANH ;ENCODER HOAT DONG = FALSE,BAO TRAN ENCODER
                              SJMP THOAT_EX0
                              DEC_ENTHAP:
                              DEC ENTHAP
                              SJMP THOAT_EX0
                              DEC_ENCAO:
                              DEC ENCAO
                              MOV ENTHAP,#255
                              THOAT_EX0:
                              MOV A,NHO_A2
                              MOV C,NHO_C2
                              RETI
                              ;======================= NGAT_EX1 ========================
                              NGAT_EX1:
                              MOV NHO_C3,C
                              MOV NHO_A3,A
                              MOV A,ENTHAPT
                              CJNE A,#0,DEC_ENTHAP1
                              MOV A,ENCAOT
                              CJNE A,#0,DEC_ENCAO1
                              CLR ACTNANG ;ENCODER HOAT DONG = FALSE,BAO TRAN ENCODER
                              SJMP THOAT_EX1
                              DEC_ENTHAP1:
                              DEC ENTHAPT
                              SJMP THOAT_EX1
                              DEC_ENCAO1:
                              DEC ENCAOT
                              MOV ENTHAPT,#255
                              THOAT_EX1:
                              MOV A,NHO_A3
                              MOV C,NHO_C3
                              RETI
                              ;================== CAC HAM DELAY ==================

                              DELAY10:
                              MOV R0,#5
                              DJNZ R0,$
                              RET
                              ;===========
                              DELAY20:
                              MOV R0,#10
                              DJNZ R0,$
                              RET
                              ;===========
                              DELAY1MS:
                              MOV R0,#21
                              LOOPDELAY1:
                              MOV R1,#250
                              DJNZ R1,$
                              DJNZ R0,LOOPDELAY1
                              RET
                              ;--------------
                              DELAY3MS:
                              MOV R0,#6
                              LOOPDELAY3:
                              MOV R1,#250
                              DJNZ R1,$
                              DJNZ R0,LOOPDELAY3
                              RET
                              ;---------
                              DELAY5MS:
                              MOV R0,#10
                              LOOPDELAY5:
                              MOV R1,#250
                              DJNZ R1,$
                              DJNZ R0,LOOPDELAY5
                              RET
                              ;---------
                              DELAY10MS:
                              MOV R0,#20
                              LOOPDELAY10:
                              MOV R1,#250
                              DJNZ R1,$
                              DJNZ R0,LOOPDELAY10
                              RET
                              ;---------
                              DELAY50MS:
                              MOV DELAYTHAP,#LOW(5)
                              MOV DELAYCAO,#HIGH(5)
                              INC DELAYCAO
                              SETB TR0
                              JB TR0,$
                              RET

                              ;---------
                              DELAY100MS:
                              MOV DELAYTHAP,#LOW(10)
                              MOV DELAYCAO,#HIGH(10)
                              INC DELAYCAO
                              SETB TR0
                              JB TR0,$
                              RET

                              ;---------
                              DELAY150MS:
                              MOV DELAYTHAP,#LOW(15)
                              MOV DELAYCAO,#HIGH(15)
                              INC DELAYCAO
                              SETB TR0
                              JB TR0,$
                              RET
                              ;---------
                              DELAY200MS:
                              MOV DELAYTHAP,#LOW(20)
                              MOV DELAYCAO,#HIGH(20)
                              INC DELAYCAO
                              SETB TR0
                              JB TR0,$
                              RET
                              ;---------
                              DELAY300MS:
                              MOV DELAYTHAP,#LOW(30)
                              MOV DELAYCAO,#HIGH(30)
                              INC DELAYCAO
                              SETB TR0
                              JB TR0,$
                              RET
                              ;---------
                              DELAY500MS:
                              MOV DELAYTHAP,#LOW(50)
                              MOV DELAYCAO,#HIGH(50)
                              INC DELAYCAO
                              SETB TR0
                              JB TR0,$
                              RET
                              ;---------
                              DELAY1S:
                              MOV DELAYTHAP,#LOW(100)
                              MOV DELAYCAO,#HIGH(100)
                              INC DELAYCAO
                              SETB TR0
                              JB TR0,$
                              RET
                              ;---------
                              DELAY2S:
                              MOV DELAYTHAP,#LOW(200)
                              MOV DELAYCAO,#HIGH(200)
                              INC DELAYCAO
                              SETB TR0
                              JB TR0,$
                              RET
                              ;---------
                              DELAY3S:
                              MOV DELAYTHAP,#LOW(300)
                              MOV DELAYCAO,#HIGH(300)
                              INC DELAYCAO
                              SETB TR0
                              JB TR0,$
                              RET
                              ;--------
                              DELAY5S:
                              MOV DELAYTHAP,#LOW(450)
                              MOV DELAYCAO,#HIGH(450)
                              INC DELAYCAO
                              SETB TR0
                              LOOP_DELAY5S:
                              JNB TR0,THOAT_DELAY5S
                              JMP LOOP_DELAY5S
                              THOAT_DELAY5S:
                              RET
                              ;--------
                              DELAY10S:
                              MOV DELAYTHAP,#LOW(900)
                              MOV DELAYCAO,#HIGH(900)
                              INC DELAYCAO
                              SETB TR0
                              LOOP_DELAY10S:
                              JNB TR0,THOAT_DELAY10S
                              JMP LOOP_DELAY10S
                              THOAT_DELAY10S:
                              RET
                              ;--------
                              DELAY15S:
                              MOV DELAYTHAP,#LOW(1300)
                              MOV DELAYCAO,#HIGH(1300)
                              INC DELAYCAO
                              SETB TR0
                              LOOP_DELAY15S:
                              JNB TR0,THOAT_DELAY15S
                              JMP LOOP_DELAY15S
                              THOAT_DELAY15S:
                              RET

                              ;--------
                              DELAY20S:
                              MOV DELAYTHAP,#LOW(1800)
                              MOV DELAYCAO,#HIGH(1800)
                              INC DELAYCAO
                              SETB TR0
                              LOOP_DELAY20S:
                              JNB TR0,THOAT_DELAY20S
                              JMP LOOP_DELAY20S
                              THOAT_DELAY20S:
                              RET
                              ;--------
                              DELAY30S:
                              MOV DELAYTHAP,#LOW(2700)
                              MOV DELAYCAO,#HIGH(2700)
                              INC DELAYCAO
                              SETB TR0
                              LOOP_DELAY30S:
                              JNB TR0,THOAT_DELAY30S
                              JMP LOOP_DELAY30S
                              THOAT_DELAY30S:
                              RET
                              ;--------
                              DELAY1MIN:
                              MOV DELAYTHAP,#LOW(5500)
                              MOV DELAYCAO,#HIGH(5500)
                              INC DELAYCAO
                              SETB TR0
                              LOOP_DELAY1MIN:
                              JNB TR0,THOAT_DELAY1MIN
                              JMP LOOP_DELAY1MIN
                              THOAT_DELAY1MIN:
                              RET
                              ;--------
                              DELAY1MIN30:
                              MOV DELAYTHAP,#LOW(8200)
                              MOV DELAYCAO,#HIGH(8200)
                              INC DELAYCAO
                              SETB TR0
                              LOOP_DELAY1MIN30:
                              JNB TR0,THOAT_DELAY1MIN30
                              JMP LOOP_DELAY1MIN30
                              THOAT_DELAY1MIN30:
                              RET
                              ;--------
                              DELAY2MIN:
                              MOV DELAYTHAP,#LOW(11000)
                              MOV DELAYCAO,#HIGH(11000)
                              INC DELAYCAO
                              SETB TR0
                              LOOP_DELAY2MIN:
                              JNB TR0,THOAT_DELAY2MIN
                              JMP LOOP_DELAY2MIN
                              THOAT_DELAY2MIN:
                              RET
                              ;===============================
                              KTDUONG:
                              KT_LECH_TRAI_PHAI:
                              MOV C,CAMBIEN8 ;0 0 0 0 0 0 1 1
                              ORL C,CAMBIEN7
                              JNC KT_SETB_BIT_NHO_TRAI
                              SETB BIT_NHO_PHAI
                              SJMP TRUNG_TAM
                              KT_SETB_BIT_NHO_TRAI:
                              MOV C,CAMBIEN1 ;1 1 0 0 0 0 0 0
                              ORL C,CAMBIEN2
                              JNC TRUNG_TAM
                              SETB BIT_NHO_TRAI
                              ;--------BIT NHO VUNG TRUNG TAM
                              TRUNG_TAM: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN4 ;0 0 0 1 1 0 0 0
                              ANL C,CAMBIEN5
                              JNC VUNG_PHAI1
                              MOV VUNG,#00H
                              CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
                              CLR BIT_NHO_PHAI
                              JMP THOAT_KT_VUNG_DO_DUONG
                              ;--------BIT NHO VUNG PHAI
                              VUNG_PHAI1: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN5 ;0 0 0 0 1 0 0 0
                              ANL C,/CAMBIEN4
                              ANL C,/CAMBIEN6
                              JNC VUNG_PHAI2
                              MOV VUNG,#01H
                              CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
                              CLR BIT_NHO_PHAI
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_PHAI2: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN5 ;0 0 0 0 1 1 0 0
                              ANL C,CAMBIEN6
                              JNC VUNG_PHAI3
                              MOV VUNG,#02H
                              CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
                              CLR BIT_NHO_PHAI
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_PHAI3: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN6 ;0 0 0 0 0 1 0 0
                              ANL C,/CAMBIEN5
                              ANL C,/CAMBIEN7
                              JNC VUNG_PHAI4
                              MOV VUNG,#03H
                              CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
                              CLR BIT_NHO_PHAI
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_PHAI4: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN6 ;0 0 0 0 0 1 1 0
                              ANL C,CAMBIEN7
                              JNC VUNG_PHAI5
                              MOV VUNG,#04H
                              CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
                              CLR BIT_NHO_PHAI
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_PHAI5: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN7 ;0 0 0 0 0 0 1 0
                              ANL C,/CAMBIEN6
                              ANL C,/CAMBIEN8
                              JNC VUNG_PHAI6
                              MOV VUNG,#05H
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_PHAI6: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN7 ;0 0 0 0 0 0 1 1
                              ANL C,CAMBIEN8
                              JNC VUNG_PHAI7
                              MOV VUNG,#06H
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_PHAI7: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN8 ;0 0 0 0 0 0 0 1
                              ANL C,/CAMBIEN7
                              JNC VUNG_PHAI8
                              MOV VUNG,#07H
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_PHAI8: ;1 2 3 4 5 6 7 8
                              MOV C,BIT_NHO_PHAI ;0 0 0 0 0 0 0 0 BIT_NHO_PHAI
                              ANL C,/CAMBIEN1
                              ANL C,/CAMBIEN2
                              ANL C,/CAMBIEN3
                              ANL C,/CAMBIEN4
                              ANL C,/CAMBIEN5
                              ANL C,/CAMBIEN6
                              ANL C,/CAMBIEN7
                              ANL C,/CAMBIEN8
                              JNC VUNG_TRAI1
                              MOV VUNG,#08H
                              JMP THOAT_KT_VUNG_DO_DUONG
                              ;--------BIT NHO VUNG TRAI
                              VUNG_TRAI1: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN4 ;0 0 0 1 0 0 0 0
                              ANL C,/CAMBIEN3
                              ANL C,/CAMBIEN5
                              JNC VUNG_TRAI2
                              MOV VUNG,#11H
                              CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
                              CLR BIT_NHO_PHAI
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_TRAI2: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN3 ;0 0 1 1 0 0 0 0
                              ANL C,CAMBIEN4
                              JNC VUNG_TRAI3
                              MOV VUNG,#12H
                              CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
                              CLR BIT_NHO_PHAI
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_TRAI3: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN3 ;0 0 1 0 0 0 0 0
                              ANL C,/CAMBIEN2
                              ANL C,/CAMBIEN4
                              JNC VUNG_TRAI4
                              MOV VUNG,#13H
                              CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
                              CLR BIT_NHO_PHAI
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_TRAI4: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN2 ;0 1 1 0 0 0 0 0
                              ANL C,CAMBIEN3
                              JNC VUNG_TRAI5
                              MOV VUNG,#14H
                              CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
                              CLR BIT_NHO_PHAI
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_TRAI5: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN2 ;0 1 0 0 0 0 0 0
                              ANL C,/CAMBIEN1
                              ANL C,/CAMBIEN3
                              JNC VUNG_TRAI6
                              MOV VUNG,#15H
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_TRAI6: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN1 ;1 1 0 0 0 0 0 0
                              ANL C,CAMBIEN2
                              JNC VUNG_TRAI7
                              MOV VUNG,#16H
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_TRAI7: ;1 2 3 4 5 6 7 8
                              MOV C,CAMBIEN1 ;1 0 0 0 0 0 0 0
                              ANL C,/CAMBIEN2
                              JNC VUNG_TRAI8
                              MOV VUNG,#17H
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_TRAI8: ; 1 2 3 4 5 6 7 8
                              MOV C,BIT_NHO_TRAI ; BIT_NHO_TRAI 0 0 0 0 0 0 0 0
                              ANL C,/CAMBIEN1
                              ANL C,/CAMBIEN2
                              ANL C,/CAMBIEN3
                              ANL C,/CAMBIEN4
                              ANL C,/CAMBIEN5
                              ANL C,/CAMBIEN6
                              ANL C,/CAMBIEN7
                              ANL C,/CAMBIEN8
                              JNC VUNG_ERROR
                              MOV VUNG,#18H
                              JMP THOAT_KT_VUNG_DO_DUONG
                              VUNG_ERROR:
                              MOV VUNG,#20H
                              THOAT_KT_VUNG_DO_DUONG:
                              RET
                              ;===============================
                              DKDUONGTHANG:
                              MOV A,VUNG
                              CJNE A,#00H,DK_VUNG_PHAI1 ;DK VUNG TRUNG TAM ;0 0 0 1 1 0 0 0
                              MOV BANHTRAI,BANHTRAI_TD1
                              MOV BANHPHAI,BANHPHAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_PHAI1:
                              CJNE A,#01H,DK_VUNG_PHAI2 ;DK VUNG PHAI1 ;0 0 0 0 1 0 0 0
                              MOV BANHTRAI,BANHTRAI_TD2
                              MOV BANHPHAI,BANHPHAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_PHAI2:
                              CJNE A,#02H,DK_VUNG_PHAI3 ;DK VUNG PHAI2 ;0 0 0 0 1 1 0 0
                              MOV BANHTRAI,BANHTRAI_TD3
                              MOV BANHPHAI,BANHPHAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_PHAI3:
                              CJNE A,#03H,DK_VUNG_PHAI4 ;DK VUNG PHAI3 ;0 0 0 0 0 1 0 0
                              MOV BANHTRAI,BANHTRAI_TD4
                              MOV BANHPHAI,BANHPHAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_PHAI4:
                              CJNE A,#04H,DK_VUNG_PHAI5 ;DK VUNG PHAI4 ;0 0 0 0 0 1 1 0
                              MOV BANHTRAI,BANHTRAI_TD5
                              MOV BANHPHAI,BANHPHAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_PHAI5:
                              CJNE A,#05H,DK_VUNG_PHAI6 ;DK VUNG PHAI5 ;0 0 0 0 0 0 1 0
                              MOV BANHTRAI,BANHTRAI_TD6
                              MOV BANHPHAI,BANHPHAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_PHAI6:
                              CJNE A,#06H,DK_VUNG_PHAI7 ;DK VUNG PHAI6 ;0 0 0 0 0 0 1 1
                              MOV BANHTRAI,BANHTRAI_TD7
                              MOV BANHPHAI,BANHPHAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_PHAI7:
                              CJNE A,#07H,DK_VUNG_PHAI8 ;DK VUNG PHAI7 ;0 0 0 0 0 0 0 1
                              MOV BANHTRAI,BANHTRAI_TD8
                              MOV BANHPHAI,BANHPHAI_TD2
                              JMP THOAT_DK_VUNG
                              DK_VUNG_PHAI8:
                              CJNE A,#08H,DK_VUNG_TRAI1 ;DK VUNG PHAI8 ;0 0 0 0 0 0 0 1
                              MOV BANHTRAI,#0
                              MOV BANHPHAI,#100
                              JMP THOAT_DK_VUNG
                              ;------
                              DK_VUNG_TRAI1:
                              CJNE A,#11H,DK_VUNG_TRAI2 ;DK VUNG TRAI1 ;0 0 0 1 0 0 0 0
                              MOV BANHPHAI,BANHPHAI_TD2
                              MOV BANHTRAI,BANHTRAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_TRAI2:
                              CJNE A,#12H,DK_VUNG_TRAI3 ;DK VUNG TRAI2 ;0 0 1 1 0 0 0 0
                              MOV BANHPHAI,BANHPHAI_TD3
                              MOV BANHTRAI,BANHTRAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_TRAI3:
                              CJNE A,#13H,DK_VUNG_TRAI4 ;DK VUNG TRAI3 ;0 0 1 0 0 0 0 0
                              MOV BANHPHAI,BANHPHAI_TD4
                              MOV BANHTRAI,BANHTRAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_TRAI4:
                              CJNE A,#14H,DK_VUNG_TRAI5 ;DK VUNG TRAI4 ;0 1 1 0 0 0 0 0
                              MOV BANHPHAI,BANHPHAI_TD5
                              MOV BANHTRAI,BANHTRAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_TRAI5:
                              CJNE A,#15H,DK_VUNG_TRAI6 ;DK VUNG TRAI5 ;0 1 0 0 0 0 0 0
                              MOV BANHPHAI,BANHPHAI_TD6
                              MOV BANHTRAI,BANHTRAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_TRAI6:
                              CJNE A,#16H,DK_VUNG_TRAI7 ;DK VUNG TRAI6 ;1 1 0 0 0 0 0 0
                              MOV BANHPHAI,BANHPHAI_TD7
                              MOV BANHTRAI,BANHTRAI_TD1
                              JMP THOAT_DK_VUNG
                              DK_VUNG_TRAI7:
                              CJNE A,#17H,DK_VUNG_TRAI8 ;DK VUNG TRAI7 ;1 0 0 0 0 0 0 0
                              MOV BANHPHAI,BANHPHAI_TD8
                              MOV BANHTRAI,BANHTRAI_TD2
                              JMP THOAT_DK_VUNG
                              DK_VUNG_TRAI8:
                              CJNE A,#18H,ERROR_DK_VUNG ;DK VUNG TRAI8 ;1 0 0 0 0 0 0 0
                              MOV BANHPHAI,#0
                              MOV BANHTRAI,#100
                              JMP THOAT_DK_VUNG
                              ERROR_DK_VUNG: ;1 2 3 4 5 6 7 8
                              MOV BANHPHAI,#50 ;X X X X X X X X
                              MOV BANHTRAI,#50
                              THOAT_DK_VUNG:
                              RET
                              ;===============================
                              ;===============================
                              ;===============================
                              ;===============================
                              KTVACHNGANG:
                              CLR BIT_QUA_VACH_NGANG ;KHOI DONG BIT KTRA VACH NGANG
                              LOOP_KT_QUA_VACH_NGANG:
                              MOV TONG_CAM_BIEN,#0
                              JNB CAMBIEN1,KIEMTRA_CAMBIEN2
                              INC TONG_CAM_BIEN
                              KIEMTRA_CAMBIEN2:
                              JNB CAMBIEN2,KIEMTRA_CAMBIEN3
                              INC TONG_CAM_BIEN
                              KIEMTRA_CAMBIEN3:
                              JNB CAMBIEN3,KIEMTRA_CAMBIEN4
                              INC TONG_CAM_BIEN
                              KIEMTRA_CAMBIEN4:
                              JNB CAMBIEN4,KIEMTRA_CAMBIEN5
                              INC TONG_CAM_BIEN
                              KIEMTRA_CAMBIEN5:
                              JNB CAMBIEN5,KIEMTRA_CAMBIEN6
                              INC TONG_CAM_BIEN
                              KIEMTRA_CAMBIEN6:
                              JNB CAMBIEN6,KIEMTRA_CAMBIEN7
                              INC TONG_CAM_BIEN
                              KIEMTRA_CAMBIEN7:
                              JNB CAMBIEN7,KIEMTRA_CAMBIEN8
                              INC TONG_CAM_BIEN
                              KIEMTRA_CAMBIEN8:
                              JNB CAMBIEN8,KIEMTRA_VACHNGANG
                              INC TONG_CAM_BIEN ;KIEM TRA CO DI QUA VACH TRANG KHONG
                              KIEMTRA_VACHNGANG:
                              MOV A,TONG_CAM_BIEN
                              CJNE A,#4,LAYCO_C ;1 VACH NGANG >=4 CAM BIEN
                              LAYCO_C:
                              JC THOAT_KT_QUA_VACH_NGANG
                              SETB BIT_QUA_VACH_NGANG ;BAO DA QUA VACH NGANG
                              JMP LOOP_KT_QUA_VACH_NGANG ;CHO DEN KHI QUA VACH NGANG
                              THOAT_KT_QUA_VACH_NGANG:
                              RET
                              ;==================================
                              ;===============================
                              QUAYTRAI180:
                              SETB BANHPHAI_DAO
                              CLR BANHTRAI_DAO
                              CALL DELAY50MS
                              QT1801:
                              MOV BANHTRAI,#VMAXT*11/20
                              MOV BANHPHAI,#VMAXP*9/20
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              ORL C,CAMBIEN3
                              JNC QT1801
                              QT1802:
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              ORL C,CAMBIEN6
                              JNC QT1802
                              QT1803:
                              MOV C,CAMBIEN7
                              ORL C,CAMBIEN6
                              ORL C,CAMBIEN5
                              JNC QT1803
                              QT1804:
                              MOV C,CAMBIEN5
                              ORL C,CAMBIEN4
                              ORL C,CAMBIEN3
                              JNC QT1804
                              QT1805:
                              MOV C,CAMBIEN3
                              ORL C,CAMBIEN2
                              ORL C,CAMBIEN1
                              JNC QT1805
                              MOV BANHTRAI,#VMAXT*9/20
                              MOV BANHPHAI,#VMAXP*8/20
                              QT1806:
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              ORL C,CAMBIEN6
                              JNC QT1806
                              MOV BANHTRAI,#VMAXT*8/20
                              MOV BANHPHAI,#VMAXP*7/20
                              QT1807:
                              MOV C,CAMBIEN6
                              ORL C,CAMBIEN5
                              ORL C,CAMBIEN4
                              JNC QT1807
                              CALL DUNGLAI
                              SETB BANHTRAI_DAO
                              CLR BANHPHAI_DAO
                              CALL DELAY100MS
                              CALL KTSAUKHIQUAY
                              RET
                              ;===============================
                              QUAYTRAI:
                              SETB BANHPHAI_DAO
                              CLR BANHTRAI_DAO
                              CALL DELAY50MS
                              QT1:
                              MOV BANHTRAI,#VMAXT*3/20
                              MOV BANHPHAI,#VMAXP*2/20
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              ORL C,CAMBIEN3
                              JNC QT1
                              QT11:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              ORL C,CAMBIEN3
                              JC QT11

                              MOV BANHTRAI,#VMAXT*2/20
                              MOV BANHPHAI,#VMAXP*1/20
                              QT2:
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              ORL C,CAMBIEN6
                              JNC QT2
                              QT21:
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              JC QT21
                              MOV BANHTRAI,#VMAXT*1/20
                              MOV BANHPHAI,#VMAXP*1/20
                              QT3:
                              MOV C,CAMBIEN6
                              ORL C,CAMBIEN5
                              ORL C,CAMBIEN4

                              JNC QT3
                              CALL DUNGLAI
                              CLR BANHPHAI_DAO
                              SETB BANHTRAI_DAO
                              CALL DELAY200MS
                              RET
                              ;=================================
                              QUAYPHAI:
                              SETB BANHTRAI_DAO
                              CLR BANHPHAI_DAO
                              CALL DELAY50MS
                              MOV BANHTRAI,#VMAXT*2/20
                              MOV BANHPHAI,#VMAXP*3/20
                              QP1:
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              ORL C,CAMBIEN6
                              JNC QP1
                              QP11:
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              ORL C,CAMBIEN6
                              JC QP11
                              MOV BANHTRAI,#VMAXT*1/20
                              MOV BANHPHAI,#VMAXP*2/20
                              QP2:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              ORL C,CAMBIEN3
                              JNC QP2
                              QP21:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              JC QP21
                              MOV BANHTRAI,#VMAXT*1/20
                              MOV BANHPHAI,#VMAXP*1/20
                              QP3:
                              MOV C,CAMBIEN3
                              ORL C,CAMBIEN4
                              ORL C,CAMBIEN5
                              JNC QP3
                              CALL DUNGLAI
                              SETB BANHPHAI_DAO
                              CLR BANHTRAI_DAO
                              CALL DELAY200MS
                              RET
                              ;=================================
                              QUAYPHAITRAITIEN:
                              SETB BANHTRAI_DAO
                              CLR BANHPHAI_DAO
                              CALL DELAY50MS
                              MOV BANHTRAI,#VMAXT*2/20
                              MOV BANHPHAI,#3
                              QPTT1:
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              ORL C,CAMBIEN6
                              JNC QPTT1
                              QPTT11:
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              ORL C,CAMBIEN6
                              JC QPTT11
                              MOV BANHTRAI,#VMAXT*2/20
                              QPTT2:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              ORL C,CAMBIEN3
                              JNC QPTT2
                              QPTT21:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              JC QPTT21
                              MOV BANHTRAI,#VMAXT*1/20
                              QPTT3:
                              MOV C,CAMBIEN3
                              ORL C,CAMBIEN4
                              ORL C,CAMBIEN5
                              JNC QPTT3
                              CALL DUNGLAI
                              SETB BANHPHAI_DAO
                              CLR BANHTRAI_DAO
                              CALL DELAY200MS
                              RET
                              ;=================================
                              QUAYTRAIPHAITIEN:
                              SETB BANHPHAI_DAO
                              CLR BANHTRAI_DAO
                              CALL DELAY50MS
                              MOV BANHPHAI,#VMAXP*2/20
                              MOV BANHTRAI,#3
                              QTPT1:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              ORL C,CAMBIEN3
                              JNC QTPT1
                              QTPT11:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              ORL C,CAMBIEN3
                              JC QTPT11
                              MOV BANHPHAI,#VMAXP*2/20
                              QTPT2:
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              ORL C,CAMBIEN6
                              JNC QTPT2
                              QTPT21:
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              JC QTPT21
                              MOV BANHPHAI,#VMAXP*1/20
                              QTPT3:
                              MOV C,CAMBIEN5
                              ORL C,CAMBIEN4
                              ORL C,CAMBIEN3
                              JNC QTPT3
                              CALL DUNGLAI
                              SETB BANHTRAI_DAO
                              CLR BANHPHAI_DAO
                              CALL DELAY200MS
                              RET
                              ;=================================
                              QUAYPHAI180:
                              SETB BANHTRAI_DAO
                              CLR BANHPHAI_DAO
                              CALL DELAY50MS
                              QP1801:
                              MOV BANHTRAI,#VMAXT*9/20
                              MOV BANHPHAI,#VMAXP*11/20
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              ORL C,CAMBIEN6
                              JNC QP1801
                              QP1802:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              ORL C,CAMBIEN3
                              JNC QP1802
                              QP1803:
                              MOV C,CAMBIEN3
                              ORL C,CAMBIEN4
                              ORL C,CAMBIEN5
                              JNC QP1803
                              QP1804:
                              MOV C,CAMBIEN4
                              ORL C,CAMBIEN5
                              ORL C,CAMBIEN6
                              JNC QP1804
                              QP1805:
                              MOV C,CAMBIEN6
                              ORL C,CAMBIEN7
                              ORL C,CAMBIEN8
                              JNC QP1805
                              MOV BANHTRAI,#VMAXT*8/20
                              MOV BANHPHAI,#VMAXP*9/20
                              QP1806:
                              MOV C,CAMBIEN3
                              ORL C,CAMBIEN2
                              ORL C,CAMBIEN1
                              JNC QP1806
                              MOV BANHTRAI,#VMAXT*7/20
                              MOV BANHPHAI,#VMAXP*8/20
                              QP1807:
                              MOV C,CAMBIEN3
                              ORL C,CAMBIEN4
                              ORL C,CAMBIEN5
                              JNC QP1807
                              CALL DUNGLAI
                              SETB BANHPHAI_DAO
                              CLR BANHTRAI_DAO
                              CALL DELAY100MS
                              CALL KTSAUKHIQUAY
                              RET
                              ;===============================

                              ;===============================
                              QUAYPHAIPHAILUI:
                              SETB BANHTRAI_DAO
                              CLR BANHPHAI_DAO
                              CALL DELAY50MS
                              MOV BANHPHAI,#VMAXP*12/20
                              MOV BANHTRAI,#0
                              QPPL2:
                              MOV BANHPHAI,#VMAXP*11/20
                              MOV BANHTRAI,#0
                              JB CAMBIEN1,QPPL2
                              QPPL3:
                              MOV BANHTRAI,#0
                              MOV BANHPHAI,#VMAXP*9/20
                              JNB CAMBIEN3,QPPL3
                              CALL DUNGLAI
                              CLR BANHTRAI_DAO
                              SETB BANHPHAI_DAO
                              CALL DELAY50MS
                              CALL KTSAUKHIQUAY
                              RET
                              ;===============================
                              QUAYTRAITLVAOCOT1:
                              SETB BANHPHAI_DAO
                              CLR BANHTRAI_DAO
                              CALL DELAY50MS
                              MOV BANHTRAI,#VMAXT*3/20
                              MOV BANHPHAI,#0
                              QTTLVC2:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              JNC QTTLVC2
                              QTTLVC3:
                              MOV BANHTRAI,#VMAXT*2/20
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              JNC QTTLVC3
                              QTTLVC4:
                              MOV C,CAMBIEN4
                              ORL C,CAMBIEN5
                              ORL C,CAMBIEN6
                              JNC QTTLVC4
                              QTTLVC5:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              JNC QTTLVC5
                              QTTLVC6:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              JC QTTLVC6
                              CALL DELAY200MS
                              CALL DUNGLAI
                              SETB BANHTRAI_DAO
                              CALL DELAY50MS
                              RET
                              ;----------------------------------------------
                              QUAYTRAITRAILUI:
                              SETB BANHPHAI_DAO
                              CLR BANHTRAI_DAO
                              CALL DELAY50MS
                              MOV BANHTRAI,#VMAXT*12/20
                              MOV BANHPHAI,#0
                              QTTL2:
                              MOV BANHTRAI,#VMAXT*11/20
                              MOV BANHPHAI,#0
                              JB CAMBIEN8,QTTL2
                              QTTL3:
                              MOV BANHPHAI,#0
                              MOV BANHTRAI,#VMAXT*9/20
                              JNB CAMBIEN6,QTTL3
                              CALL DUNGLAI
                              CLR BANHPHAI_DAO
                              SETB BANHTRAI_DAO
                              CALL DELAY50MS
                              CALL KTSAUKHIQUAY
                              RET
                              ;===============================

                              ;===============================
                              VANTOCCUCKYCHAM:
                              MOV BANHPHAI_TD1,#8
                              MOV BANHPHAI_TD2,#5
                              MOV BANHPHAI_TD3,#0
                              MOV BANHPHAI_TD4,#0
                              MOV BANHPHAI_TD5,#0
                              MOV BANHPHAI_TD6,#0
                              MOV BANHPHAI_TD7,#0
                              MOV BANHPHAI_TD8,#0

                              MOV BANHTRAI_TD1,#8
                              MOV BANHTRAI_TD2,#5
                              MOV BANHTRAI_TD3,#0
                              MOV BANHTRAI_TD4,#0
                              MOV BANHTRAI_TD5,#0
                              MOV BANHTRAI_TD6,#0
                              MOV BANHTRAI_TD7,#0
                              MOV BANHTRAI_TD8,#0
                              RET
                              ;===============================
                              VANTOCRATCHAM:
                              MOV BANHPHAI_TD1,#VMAXP*6/20
                              MOV BANHPHAI_TD2,#VMAXP*4/20
                              MOV BANHPHAI_TD3,#VMAXP*2/20
                              MOV BANHPHAI_TD4,#VMAXP*1/20
                              MOV BANHPHAI_TD5,#VMAXP*1/40
                              MOV BANHPHAI_TD6,#VMAXP*1/80
                              MOV BANHPHAI_TD7,#0
                              MOV BANHPHAI_TD8,#0

                              MOV BANHTRAI_TD1,#VMAXT*6/20
                              MOV BANHTRAI_TD2,#VMAXT*4/20
                              MOV BANHTRAI_TD3,#VMAXT*2/20
                              MOV BANHTRAI_TD4,#VMAXT*1/20
                              MOV BANHTRAI_TD5,#VMAXT*1/40
                              MOV BANHTRAI_TD6,#VMAXT*1/80
                              MOV BANHTRAI_TD7,#0
                              MOV BANHTRAI_TD8,#0
                              RET
                              ;===============================
                              VANTOCCUCCHAM:
                              MOV BANHPHAI_TD1,#VMAXP*2/20
                              MOV BANHPHAI_TD2,#VMAXP*1/20
                              MOV BANHPHAI_TD3,#0
                              MOV BANHPHAI_TD4,#0
                              MOV BANHPHAI_TD5,#0
                              MOV BANHPHAI_TD6,#0
                              MOV BANHPHAI_TD7,#0
                              MOV BANHPHAI_TD8,#0

                              MOV BANHTRAI_TD1,#VMAXT*2/20
                              MOV BANHTRAI_TD2,#VMAXT*1/20
                              MOV BANHTRAI_TD3,#0
                              MOV BANHTRAI_TD4,#0
                              MOV BANHTRAI_TD5,#0
                              MOV BANHTRAI_TD6,#0
                              MOV BANHTRAI_TD7,#0
                              MOV BANHTRAI_TD8,#0
                              RET
                              ;===============================
                              VANTOCMAX:
                              MOV BANHPHAI_TD1,#VMAXP
                              MOV BANHPHAI_TD2,#VMAXP*235/255
                              MOV BANHPHAI_TD3,#VMAXP*210/255
                              MOV BANHPHAI_TD4,#VMAXP*195/255
                              MOV BANHPHAI_TD5,#VMAXP*180/255
                              MOV BANHPHAI_TD6,#VMAXP*170/255
                              MOV BANHPHAI_TD7,#VMAXP*160/255
                              MOV BANHPHAI_TD8,#VMAXP*145/255

                              MOV BANHTRAI_TD1,#VMAXT
                              MOV BANHTRAI_TD2,#VMAXT*235/255
                              MOV BANHTRAI_TD3,#VMAXT*210/255
                              MOV BANHTRAI_TD4,#VMAXT*195/255
                              MOV BANHTRAI_TD5,#VMAXT*180/255
                              MOV BANHTRAI_TD6,#VMAXT*170/255
                              MOV BANHTRAI_TD7,#VMAXT*160/255
                              MOV BANHTRAI_TD8,#VMAXT*145/255
                              RET
                              ;---------HAM VAN TOC TRUNG BINH
                              VANTOCTB:
                              MOV BANHPHAI_TD1,#VMAXP*15/20
                              MOV BANHPHAI_TD2,#VMAXP*13/20
                              MOV BANHPHAI_TD3,#VMAXP*11/20
                              MOV BANHPHAI_TD4,#VMAXP*9/20
                              MOV BANHPHAI_TD5,#VMAXP*7/20
                              MOV BANHPHAI_TD6,#VMAXP*5/20
                              MOV BANHPHAI_TD7,#VMAXP*3/20
                              MOV BANHPHAI_TD8,#VMAXP*2/20

                              MOV BANHTRAI_TD1,#VMAXT*15/20
                              MOV BANHTRAI_TD2,#VMAXT*13/20 ;VMAX*13/20
                              MOV BANHTRAI_TD3,#VMAXT*11/20 ;VMAX*12/20
                              MOV BANHTRAI_TD4,#VMAXT*9/20
                              MOV BANHTRAI_TD5,#VMAXT*7/20
                              MOV BANHTRAI_TD6,#VMAXT*5/20
                              MOV BANHTRAI_TD7,#VMAXT*3/20
                              MOV BANHTRAI_TD8,#VMAXT*2/20
                              RET
                              ;======================================
                              VANTOCCHAM:
                              MOV BANHPHAI_TD1,#VMAXP*10/20 ;125
                              MOV BANHPHAI_TD2,#VMAXP*8/20
                              MOV BANHPHAI_TD3,#VMAXP*6/20
                              MOV BANHPHAI_TD4,#VMAXP*4/20
                              MOV BANHPHAI_TD5,#VMAXP*2/20
                              MOV BANHPHAI_TD6,#VMAXP*1/20
                              MOV BANHPHAI_TD7,#VMAXP*1/40
                              MOV BANHPHAI_TD8,#VMAXP*1/80

                              MOV BANHTRAI_TD1,#VMAXT*10/20
                              MOV BANHTRAI_TD2,#VMAXT*8/20
                              MOV BANHTRAI_TD3,#VMAXT*6/20
                              MOV BANHTRAI_TD4,#VMAXT*4/20
                              MOV BANHTRAI_TD5,#VMAXT*2/20
                              MOV BANHTRAI_TD6,#VMAXT*1/20
                              MOV BANHTRAI_TD7,#VMAXT*1/40
                              MOV BANHTRAI_TD8,#VMAXT*1/80
                              RET
                              ;===============================
                              KTSAUKHIQUAY:
                              MOV C,CAMBIEN4
                              ORL C,CAMBIEN5
                              ORL C,CAMBIEN6
                              ORL C,CAMBIEN3
                              JNC KTCB8_7
                              JMP GIUADUONGSQ
                              KTCB8_7:
                              MOV C,CAMBIEN8
                              ORL C,CAMBIEN7
                              JNC KTCB1_2
                              JMP LECHPHAISQ
                              KTCB1_2:
                              MOV C,CAMBIEN1
                              ORL C,CAMBIEN2
                              JNC KHONGTHAY
                              JMP LECHTRAISQ
                              KHONGTHAY:
                              SETB BANHPHAI_DAO
                              CLR BANHTRAI_DAO
                              MOV BANHTRAI,#20
                              MOV BANHPHAI,#20
                              CALL DELAY50MS
                              CALL DUNGLAI
                              JMP KTSAUKHIQUAY
                              LECHPHAISQ:
                              SETB BANHPHAI_DAO
                              MOV BANHPHAI,#20
                              SLPSQ: MOV C,CAMBIEN4
                              ORL C,CAMBIEN5
                              JNC SLPSQ
                              JMP GIUADUONGSQ
                              LECHTRAISQ:
                              CLR BANHPHAI_DAO
                              SETB BANHTRAI_DAO
                              MOV BANHTRAI,#20
                              SLTSQ:
                              MOV C,CAMBIEN4
                              ORL C,CAMBIEN5
                              JNC SLTSQ
                              GIUADUONGSQ:
                              CALL DUNGLAI
                              RET
                              ;===============================
                              DUNGLAI:
                              MOV BANHTRAI,#0
                              MOV BANHPHAI,#0
                              RET
                              ;===============================
                              CHIEUTIEN:
                              SETB BANHTRAI_DAO
                              SETB BANHPHAI_DAO
                              CALL DELAY50MS
                              RET

                              ;===============================
                              CHIEULUI:
                              CLR BANHTRAI_DAO
                              CLR BANHPHAI_DAO
                              CALL DELAY50MS
                              RET
                              ;==================================

                              ;===============================
                              KHOIXE30CM:
                              CALL CHIEUTIEN
                              MOV BANHTRAI,#31
                              MOV BANHPHAI,#31
                              MOV ENTHAP,#LOW(EN1M*3/10)
                              MOV ENCAO,#HIGH(EN1M*3/10)
                              SETB ACTBANH
                              KOBANGKX:
                              INC BANHTRAI
                              INC BANHTRAI
                              INC BANHPHAI
                              INC BANHPHAI
                              CALL DELAY1MS
                              KTCHDAI:
                              JNB ACTBANH,THOATKX
                              MOV A,BANHTRAI
                              CJNE A,#101,KOBANGKX
                              SJMP KTCHDAI
                              THOATKX:
                              MOV BANHTRAI,#255
                              MOV BANHPHAI,#255
                              RET
                              ;===============================
                              KEP:
                              SETB DCKEO_DAO
                              MOV DCKEO,#255
                              CALL DELAY1S
                              MOV DCKEO,#0
                              CLR DCKEO_DAO
                              RET
                              ;==============================
                              NHA:
                              CLR DCKEO_DAO
                              CALL DELAY50MS
                              MOV DCKEO,#255
                              CALL DELAY1S
                              MOV DCKEO,#0
                              SETB DCKEO_DAO
                              RET
                              ;===============================
                              NANGHA50CM:
                              CALL NANGHA5CM
                              NANGHA45CM:
                              CALL NANGHA5CM
                              NANGHA40CM:
                              CALL NANGHA5CM
                              NANGHA35CM:
                              CALL NANGHA5CM
                              NANGHA30CM:
                              CALL NANGHA5CM
                              NANGHA25CM:
                              CALL NANGHA5CM
                              NANGHA20CM:
                              CALL NANGHA5CM
                              NANGHA15CM:
                              CALL NANGHA5CM
                              NANGHA10CM:
                              CALL NANGHA5CM
                              NANGHA5CM:
                              CALL NANGHA2CM
                              NANGHA3CM:
                              MOV ENCAOT,#HIGH(ENNANG2CM/2)
                              MOV ENTHAPT,#LOW(ENNANG2CM/2)
                              SETB ACTNANG
                              JB ACTNANG,$
                              NANGHA2CM:
                              MOV ENTHAPT,#LOW(ENNANG2CM)
                              MOV ENCAOT,#HIGH(ENNANG2CM)
                              SETB ACTNANG
                              JB ACTNANG,$
                              RET
                              ;===============================
                              CHIEUNANG:
                              SETB DCNANG_DAO
                              CALL DELAY50MS
                              RET
                              ;===============================

                              ;===============================
                              CHIEUHA:
                              CLR DCNANG_DAO
                              CALL DELAY50MS
                              RET
                              ;===============================

                              ;===============================

                              ;===============================
                              DUNGNANGHA:
                              MOV DCNANG,#0
                              SETB DCNANG_DAO
                              CALL DELAY50MS
                              RET
                              ;===============================


                              ;===============================
                              PHANHNANG:
                              MOV DCNANG,#3
                              SETB DCNANG_DAO
                              RET
                              ;===============================

                              ;===============================
                              LENHETCO:
                              CALL CHIEUNANG
                              MOV DCNANG,#255
                              JB CTTREN,$
                              CALL DUNGNANGHA
                              RET
                              ;===============================
                              HAHETCO:
                              CALL CHIEUHA
                              MOV DCNANG,#255
                              JB CTDUOI,$
                              CALL DUNGNANGHA
                              RET
                              ;===============================
                              DD1M:
                              CALL DD10CM
                              DD90CM:
                              CALL DD10CM
                              DD80CM:
                              CALL DD10CM
                              DD70CM:
                              CALL DD10CM
                              DD60CM:
                              CALL DD10CM
                              DD50CM:
                              CALL DD10CM
                              DD40CM:
                              CALL DD10CM
                              DD30CM:
                              CALL DD10CM
                              DD20CM:
                              CALL DD10CM
                              DD10CM:
                              MOV ENCAO,#HIGH(EN1M/10)
                              MOV ENTHAP,#LOW(EN1M/10)
                              SETB ACTBANH
                              KTENTT:
                              CALL KTDUONG
                              CALL DKDUONGTHANG
                              JB ACTBANH,KTENTT
                              RET
                              ;===============================
                              DD2CM:
                              MOV ENCAO,#HIGH(EN1M/50)
                              MOV ENTHAP,#LOW(EN1M/50)
                              SETB ACTBANH
                              TTDD2CM:
                              CALL KTDUONG
                              CALL DKDUONGTHANG
                              JB ACTBANH,TTDD2CM
                              RET
                              ;===============================
                              KDD2CM:
                              MOV ENCAO,#HIGH(EN1M/50)
                              MOV ENTHAP,#LOW(EN1M/50)
                              SETB ACTBANH
                              JB ACTBANH,$
                              RET
                              ;================================
                              DD5CM:
                              MOV ENCAO,#HIGH(EN1M/20)
                              MOV ENTHAP,#LOW(EN1M/20)
                              SETB ACTBANH
                              KTENTT1:
                              CALL KTDUONG
                              CALL DKDUONGTHANG
                              JB ACTBANH,KTENTT1
                              RET
                              ;==============================
                              KDD1M:
                              CALL KDD10CM
                              KDD90CM:
                              CALL KDD10CM
                              KDD80CM:
                              CALL KDD10CM
                              KDD70CM:
                              CALL KDD10CM
                              KDD60CM:
                              CALL KDD10CM
                              KDD50CM:
                              CALL KDD10CM
                              KDD40CM:
                              CALL KDD10CM
                              KDD30CM:
                              CALL KDD10CM
                              KDD20CM:
                              CALL KDD10CM
                              KDD10CM:
                              MOV ENCAO,#HIGH(EN1M/10)
                              MOV ENTHAP,#LOW(EN1M/10)
                              SETB ACTBANH
                              JB ACTBANH,$
                              RET
                              ;==================================
                              KDD5CM:
                              MOV ENCAO,#HIGH(EN1M/20)
                              MOV ENTHAP,#LOW(EN1M/20)
                              SETB ACTBANH
                              JB ACTBANH,$
                              RET
                              ;=================================
                              TIMVNDD:
                              CALL KTDUONG
                              CALL DKDUONGTHANG
                              CALL KTVACHNGANG
                              JNB BIT_QUA_VACH_NGANG,TIMVNDD
                              RET
                              ;===============================
                              TIMVNKDD:
                              CALL KTVACHNGANG
                              JNB BIT_QUA_VACH_NGANG,TIMVNKDD
                              RET
                              ;===============================
                              ;===============================


                              ;==============================

                              ;==============================

                              ;==============================
                              PHANH:
                              CALL DUNGLAI
                              CALL CHIEULUI
                              CALL DELAY100MS
                              CALL DELAY100MS
                              RET
                              ;==============================


                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;=============================


                              ;==============================
                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;==============================

                              ;=============================================
                              ;=================CHUONG TRINH CHINH SAN DO===============
                              TESTXE:
                              MOV BANHTRAI,#30 ;CONG1
                              CALL DELAY10S
                              MOV BANHPHAI,#30 ;CONG2
                              CALL DELAY10S
                              MOV DCNANG,#30 ;CONG3
                              CALL DELAY10S
                              MOV DCVUON,#30 ;CONG4
                              CALL DELAY10S
                              MOV DCKEO,#30 ;CONG5
                              CALL DELAY10S
                              MOV BANHTRAI,#0
                              MOV BANHPHAI,#0
                              MOV DCNANG,#0
                              MOV DCKEO,#0
                              MOV DCVUON,#0
                              CALL CHIEULUI
                              CALL CHIEUHA
                              CLR DCKEO_DAO
                              CLR DCVUON_DAO
                              CALL DELAY50MS
                              MOV BANHTRAI,#30
                              MOV BANHPHAI,#30
                              MOV DCNANG,#30
                              MOV DCKEO,#30
                              MOV DCVUON,#30
                              CALL DELAY5S
                              MOV BANHTRAI,#255
                              MOV BANHPHAI,#255
                              MOV DCNANG,#255
                              MOV DCKEO,#255
                              MOV DCVUON,#255
                              CALL DELAY5S
                              MOV BANHTRAI,#0
                              MOV BANHPHAI,#0
                              MOV DCNANG,#0
                              MOV DCKEO,#0
                              MOV DCVUON,#0
                              RET
                              ;=============================

                              ;=============================
                              ;==================CHUONG TRINH SAN XANH=================================
                              ;===============================

                              ;=============================

                              ;=============================

                              ;===============**************==================== ======
                              MAIN:
                              MOV CMOD,#0
                              SETB CR
                              MOV CCAPM0,#01000010B
                              MOV CCAPM1,#01000010B
                              MOV CCAPM2,#01000010B
                              MOV CCAPM3,#01000010B
                              MOV CCAPM4,#01000010B
                              MOV SCON,#12H
                              MOV TMOD,#11H
                              SETB PX0
                              SETB PX1
                              SETB PT0
                              SETB PT1
                              SETB IT0
                              SETB IT1
                              MOV IE,#10001010B ;INT T1 ; INT TO:TIME OUT ; DOC ENCODER : ACTPHAI=EX0 ,ACTTRAI=EX1
                              SETB TF0
                              ;==================== CHUONG TRINH CHINH ==================
                              START:
                              CALL RESETROBOT
                              KTNUT1:
                              ; JB NUT8,$
                              CALL TESTXE
                              XONG:
                              JMP $
                              END

                              Comment


                              • #30
                                Bạn dùng trình dịch MIDE51 biên dịch ấy
                                - Mạch nạp vdk 8051, AVR, PIC, EEPROM
                                - Linh kiện điện tử cho sinh viên


                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X