;Da nap xong vao o nho;Tiep theo kiem tra dc, data xem co chinh gio hay thay doi addr khong MOV CHECKDATAIN, #0MOV DPTR, #TADDRMOVX A, @DPTRCJNE A, RCADDR, THOATISR ; Kiem tra Addr CHU i
Trang 1;Chuong trinh tren kit nhan vien
; R3, R5, R6, R7 Dung cho quet phim
; R4 Dung cho dong ho
%*DEFINE ( POP_DPTR)
( POP DPL POP DPH)COLLED EQU 4000H
Trang 3MOV TMOD, #21HMOV TH1, #0FDHSETB TR1
;Khoi Led
MOV LEDT0, #11H MOV LEDT1, #10HMOV LEDT2, #10HMOV LEDT3, #10HMOV LEDT4, #10HMOV LEDT5, #10HMOV LEDT6, #10HMOV LEDT7, #10H
;AddrRCMOV RCADDR, #69H ;Chu iMOV DPTR, #0107H ;KADDRMOV A, #69H
MOVX @DPTR, A
;PortMOV CHECKDATAIN, #0MOV DPTR, #0100H
;Khoi dong hoMOV R4, #0MOV LTIMEC, #201MOV LTIME4, #0MOV LTIME5, #0MOV LTIME6, #0MOV LTIME7, #0
; ini vi tri ledMOV POSLED, #0MOV KEYNUM, #0SETB TF0
MOV IE, #10010010BSETB PT0 ;Priority for timer0 interrupt
MAIN1:
; xac dinh da bam phim may lan
Trang 4CALL IN_HEXMOV B, AMOV R1, AINC KEYNUMMOV A, KEYNUM
CJNE R1, #0BH, CKXOA1MOV KEYNUM, #0JMP MAIN1CKXOA1:
CJNE R1, #0CH, CKCLEAR1MOV KEYNUM, #0
JMP MAIN1CKCLEAR1:
CJNE R1, #0DH, CKIN1JMP QSWA
CKIN1:
CJNE R1,#0EH, CKENTER1MOV KEYNUM, #0
JMP MAIN1CKENTER1:
CJNE R1, #0FH, NONECK1MOV KEYNUM, #0
JMP MAIN1NONECK1:
MOV LEDT0, BMOV DPTR, #KID1 ; Luu vao RAMMOV A, B
MOVX @DPTR, AJMP MAIN1
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~
Trang 5; Save vao LEDT1
SAVELEDT1:
CJNE A, #2, SAVELEDT2CJNE R1, #0AH, CKFOR2MOV R1, KEYNUMCJNE R1, #1, INCKEY2AMOV KEYNUM, #0INCKEY2A:
MOV KEYNUM, #1JMP MAIN1CKFOR2:
CJNE R1, #0BH, CKXOA2MOV R1, KEYNUMCJNE R1, #1, INCKEY2BMOV KEYNUM, #0INCKEY2B:
MOV KEYNUM, #1JMP MAIN1CKXOA2:
CJNE R1, #0CH, CKCLEAR2MOV KEYNUM, #0
MOV LEDT0, #11HJMP MAIN1CKCLEAR2:
CJNE R1, #0DH, CKIN2JMP QSWA
CKIN2:
CJNE R1,#0EH, CKENTER2MOV R1, KEYNUM
CJNE R1, #1, INCKEY2EMOV KEYNUM, #0INCKEY2E:
MOV KEYNUM, #1JMP MAIN1CKENTER2:
CJNE R1, #0FH, NONECK2MOV R1, KEYNUM
CJNE R1, #1, INCKEY2FMOV KEYNUM, #0INCKEY2F:
MOV KEYNUM, #1JMP MAIN1NONECK2:
Trang 6MOV LEDT1, LEDT0MOV LEDT0, B
MOV DPTR, #KID2 ; Luu vao RAMMOV A, B
MOVX @DPTR, AJMP MAIN1
MOV KEYNUM, #2JMP MAIN1
CKFOR3:
CJNE R1, #0BH, CKXOA3MOV R1, KEYNUMCJNE R1, #2, INCKEY3BMOV KEYNUM, #1INCKEY3B:
MOV KEYNUM, #2JMP MAIN1CKXOA3:
CJNE R1, #0CH, CKCLEAR3MOV KEYNUM, #1
JMP QXOACKCLEAR3:
CJNE R1, #0DH, CKIN3JMP QSWA
CKIN3:
CJNE R1,#0EH, CKENTER3MOV R1, KEYNUM
CJNE R1, #2, INCKEY3EMOV KEYNUM, #1INCKEY3E:
MOV KEYNUM, #2
Trang 7JMP MAIN1CKENTER3:
CJNE R1, #0FH, NONECK3MOV R1, KEYNUM
CJNE R1, #2, INCKEY3FMOV KEYNUM, #1INCKEY3F:
MOV KEYNUM, #2JMP MAIN1NONECK3:
MOV LEDT2, LEDT1MOV LEDT1, LEDT0MOV LEDT0, BMOV DPTR, #KID3 ; Luu vao RAMMOV A, B
MOVX @DPTR, AJMP MAIN1
MOV KEYNUM, #3JMP MAIN1CKFOR4:
CJNE R1, #0BH, CKXOA4MOV R1, KEYNUMCJNE R1, #3, INCKEY4BMOV KEYNUM, #2INCKEY4B:
MOV KEYNUM, #3JMP MAIN1CKXOA4:
CJNE R1, #0CH, CKCLEAR4
Trang 8MOV KEYNUM, #2JMP QXOA
CKCLEAR4:
CJNE R1, #0DH, CKIN4JMP QSWA
CKIN4:
CJNE R1,#0EH, CKENTER4MOV R1, KEYNUM
CJNE R1, #3, INCKEY4EMOV KEYNUM, #2INCKEY4E:
MOV KEYNUM, #3JMP MAIN1CKENTER4:
CJNE R1, #0FH, NONECK4MOV R1, KEYNUM
CJNE R1, #3, INCKEY4FMOV KEYNUM, #2INCKEY4F:
MOV KEYNUM, #3JMP MAIN1NONECK4:
MOV LEDT3, LEDT2MOV LEDT2, LEDT1MOV LEDT1, LEDT0MOV LEDT0, B
MOV DPTR, #KID4 ; Luu vao RAMMOV A, B
MOVX @DPTR, AJMP MAIN1
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
SAVELEDT4:
CJNE A, #5, SAVELEDT5CJNE R1, #0AH, CKFOR5MOV R1, KEYNUMCJNE R1, #4, INCKEY5AMOV KEYNUM, #3
Trang 9MOV KEYNUM, #4JMP MAIN1CKFOR5:
CJNE R1, #0BH, CKXOA5MOV R1, KEYNUMCJNE R1, #4, INCKEY5BMOV KEYNUM, #3INCKEY5B:
MOV KEYNUM, #4JMP MAIN1CKXOA5:
CJNE R1, #0CH, CKCLEAR5MOV KEYNUM, #3
JMP QXOACKCLEAR5:
CJNE R1, #0DH, CKIN5JMP QSWA
CKIN5:
CJNE R1,#0EH, CKENTER5MOV R1, KEYNUM
CJNE R1, #4, INCKEY5EMOV KEYNUM, #3INCKEY5E:
MOV KEYNUM, #4JMP MAIN1CKENTER5:
CJNE R1, #0FH, NONECK5MOV R1, KEYNUM
CJNE R1, #4, INCKEY5FMOV KEYNUM, #3INCKEY5F:
MOV KEYNUM, #4JMP MAIN1NONECK5:
MOV LEDT4, LEDT3MOV LEDT3, LEDT2MOV LEDT2, LEDT1MOV LEDT1, LEDT0MOV LEDT0, BMOV DPTR, #KID5 ; Luu vao RAMMOV A, B
MOVX @DPTR, A
Trang 10MOV KEYNUM, #5JMP QBACKCKFOR6:
CJNE R1, #0BH, CKXOA6MOV R1, KEYNUMCJNE R1, #5, INCKEY6BMOV KEYNUM, #4INCKEY6B:
MOV KEYNUM, #5JMP SHIFTTOCKXOA6:
CJNE R1, #0CH, CKCLEAR6MOV KEYNUM, #4
JMP QXOACKCLEAR6:
CJNE R1, #0DH, CKIN6JMP QSWA
CKIN6:
CJNE R1,#0EH, CKENTER6MOV R1, KEYNUM
CJNE R1, #5, INCKEY6EMOV KEYNUM, #4INCKEY6E:
MOV KEYNUM, #5JMP MAIN1CKENTER6:
CJNE R1, #0FH, NONECK6MOV R1, KEYNUM
CJNE R1, #5, INCKEY6FMOV KEYNUM, #4INCKEY6F:
Trang 11MOV KEYNUM, #5JMP MAIN1NONECK6:
MOV LEDT5, LEDT4MOV LEDT4, LEDT3MOV LEDT3, LEDT2MOV LEDT2, LEDT1MOV LEDT1, LEDT0MOV LEDT0, B
MOV DPTR, #KID6 ; Luu vao RAMMOV A, B
MOVX @DPTR, AJMP MAIN1
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~
SAVELEDT6:
CJNE A, #7, SAVELEDT7CJNE R1, #0AH, CKFOR7MOV R1, KEYNUMCJNE R1, #6, INCKEY7AMOV KEYNUM, #5INCKEY7A:
MOV KEYNUM, #6JMP QBACKCKFOR7:
CJNE R1, #0BH, CKXOA7MOV R1, KEYNUMCJNE R1, #6, INCKEY7BMOV KEYNUM, #5INCKEY7B:
MOV KEYNUM, #6JMP SHIFTTOCKXOA7:
CJNE R1, #0CH, CKCLEAR7MOV KEYNUM, #5
JMP QXOACKCLEAR7:
CJNE R1, #0DH, CKIN7JMP QSWA
CKIN7:
CJNE R1,#0EH, CKENTER7
Trang 12MOV R1, KEYNUMCJNE R1, #6, INCKEY7EMOV KEYNUM, #5INCKEY7E:
MOV KEYNUM, #6JMP MAIN1CKENTER7:
CJNE R1, #0FH, NONECK7MOV R1, KEYNUM
CJNE R1, #6, INCKEY7FMOV KEYNUM, #5INCKEY7F:
MOV KEYNUM, #6JMP MAIN1NONECK7:
MOV LEDT6, LEDT5MOV LEDT5, LEDT4MOV LEDT4, LEDT3MOV LEDT3, LEDT2MOV LEDT2, LEDT1MOV LEDT1, LEDT0MOV LEDT0, BMOV DPTR, #KID7 ; Luu vao RAMMOV A, B
MOVX @DPTR, AJMP MAIN1
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~
SAVELEDT7:
CJNE A, #8, KEY9CJNE R1, #0AH, CKFOR8MOV R1, KEYNUMCJNE R1, #7, INCKEY8AMOV KEYNUM, #6INCKEY8A:
MOV KEYNUM, #7JMP QBACKCKFOR8:
CJNE R1, #0BH, CKXOA8MOV R1, KEYNUMCJNE R1, #7, INCKEY8B
Trang 13MOV KEYNUM, #6INCKEY8B:
MOV KEYNUM, #7JMP SHIFTTOCKXOA8:
CJNE R1, #0CH, CKCLEAR8MOV KEYNUM, #6
JMP QXOACKCLEAR8:
CJNE R1, #0DH, CKIN8JMP QSWA
CKIN8:
CJNE R1,#0EH, CKENTER8MOV R1, KEYNUM
CJNE R1, #7, INCKEY8EMOV KEYNUM, #6INCKEY8E:
MOV KEYNUM, #7JMP MAIN1CKENTER8:
CJNE R1, #0FH, NONECK8MOV R1, KEYNUM
CJNE R1, #7, INCKEY8FMOV KEYNUM, #6INCKEY8F:
MOV KEYNUM, #7JMP MAIN1NONECK8:
MOV LEDT7, LEDT6MOV LEDT6, LEDT5MOV LEDT5, LEDT4MOV LEDT4, LEDT3MOV LEDT3, LEDT2MOV LEDT2, LEDT1MOV LEDT1, LEDT0MOV LEDT0, B
MOV DPTR, #KID8 ; Luu vao RAMMOV A, B
MOVX @DPTR, AJMP MAIN1
KEY9:
Trang 14CJNE R1, #0CH, CKCLEAR9MOV KEYNUM, #7
JMP QXOA
;Phim thu 9 la phim enter, luu vao o nho LEDTC
CKCLEAR9:
MOV A, BCJNE A, #0FH, WHATK ;Neu la phim Enter thi ngat SP
;MOV DPTR, #KIDE; Luu vao RAM
;MOV A, B
;MOVX @DPTR, AMOV KEYENTER, B
;CALL SENDDATA ; Goi ID ve PCMOV KEYNUM, #0
JMP main1WHATK:
CKXOA:
CJNE R1, #0CH, CKCLEARJMP QXOA
CKCLEAR:
CJNE R1, #0DH, CKINJMP QSWA
MOV KEYNUM, #0MOV LEDT0, #11HMOV LEDT1, #10HMOV LEDT2, #10HMOV LEDT3, #10HMOV LEDT4, #10HMOV LEDT5, #10HMOV LEDT6, #10H
Trang 15MOV LEDT7, #10HMOV LEDTC, #10HJMP MAIN1
QXOA:
MOV LEDTC, #10HMOV LEDT0, #11HMOV LEDT0, LEDT1MOV LEDT1, LEDT2MOV LEDT2, LEDT3MOV LEDT3, LEDT4MOV LEDT4, LEDT5MOV LEDT5, LEDT6MOV LEDT6, LEDT7MOV LEDT7, #10HJMP MAIN1
QBACK:
MOV LEDTC, LEDT7MOV LEDT7, LEDT6MOV LEDT6, LEDT5MOV LEDT5, LEDT4MOV LEDT4, LEDT3MOV LEDT3, LEDT2MOV LEDT2, LEDT1MOV LEDT1, LEDT0MOV LEDT0, LEDTCJMP MAIN1
SHIFTTO:
MOV LEDTC, LEDT0MOV LEDT0, LEDT1MOV LEDT1, LEDT2MOV LEDT2, LEDT3MOV LEDT3, LEDT4MOV LEDT4, LEDT5MOV LEDT5, LEDT6MOV LEDT6, LEDT7MOV LEDT7, LEDTCJMP MAIN1
RET
Trang 16; Ngat Port noi tiep
;~~~~~~~~~~~~~~~~~~~~~~~~~~
; PC luon goi tin hieu bao nhan ID, tin hieu la !(21h)
; VXL khi nhan duoc phim enter thi goi ID ve
; PC so sanh, neu dung goi tin hieu bao dung
ISRSP:
JNB RI, $CLR RIMOV A, SBUF
INC CHECKDATAINMOV R2, CHECKDATAIN
CJNE A, #21H, CTT12 ; ! PC muon nhan IDMOV CHECKDATAIN, #0
MOV R2, KEYENTERCJNE R2, #0FH, CTT12 ; Enter thi goi ID ve PCCALL SENDDATA
MOV KEYENTER, #0MOV CHECKDATAIN, #0
CTT12:
CJNE A, #23H, CTT0 ; # tin hieu bao dung IDMOV LEDT0, #11H
MOV LEDT1, #10HMOV LEDT2, #10HMOV LEDT3, #10HMOV LEDT4, #10HMOV LEDT5, #10HMOV LEDT6, #10HMOV LEDT7, #10HMOV LEDTC, #10H
MOV KEYNUM, #0MOV KEYENTER, #0MOV CHECKDATAIN, #0RETI
Trang 17;Da nap xong vao o nho
;Tiep theo kiem tra dc, data xem co chinh gio hay thay doi addr khong
MOV CHECKDATAIN, #0MOV DPTR, #TADDRMOVX A, @DPTRCJNE A, RCADDR, THOATISR ; Kiem tra Addr CHU i
Trang 18CALL CHINHDHCALL THAYADDR
;CALL SENDADDR
THOATISR:
MOV DPTR, #TADDRMOVX A, @DPTRMOV RCADDR, ATHOATCT:
MOV CHECKDATAIN, #0NHAPTIEP:
Trang 19;Quet Led1
SCANL5:
CJNE A, #5, SCANL6CALL DISL5
;Quet Led2
SCANL6:
CJNE A, #6, SCANL7CALL DISL6
;Quet Led3
SCANL7:
CJNE A, #7, QSCANCALL DISL7
QSCAN:
INC POSLEDMOV A, POSLEDCJNE A, #8, QISCANMOV POSLED, #0 ;86 MICRO SECQISCAN:
;POP ACCRETI
Trang 20CALL OUTCHARMOV A, LEDT6 ; ID 2CALL HTOA
CALL OUTCHARMOV A, LEDT5 ; ID 3CALL HTOA
CALL OUTCHARMOV A, LEDT4 ; ID 4CALL HTOA
CALL OUTCHARMOV A, LEDT3 ; ID 5CALL HTOA
CALL OUTCHARMOV A, LEDT2 ; ID 6CALL HTOA
CALL OUTCHARMOV A, LEDT1 ; ID 7CALL HTOA
CALL OUTCHARMOV A, LEDT0 ; ID 8CALL HTOA
CALL OUTCHARRET
Trang 21CLR TIRET
CLR TIRET
MOV RCADDR, ACONCHANGE:
; Chinh dong ho
MOV DPTR, #TDATA1MOVX A, @DPTRcallatoh
MOV LTIME4, AINC DPTRMOVX A, @DPTRcallatoh
MOV LTIME5, AINC DPTRMOVX A, @DPTRcallatoh
MOV LTIME6, AINC DPTR
Trang 22MOVX A, @DPTRcallatoh
INC LTIME7MOV R2, LTIME7CJNE R2, #0AH, THOAT ; Phut1MOV LTIME7, #0
INC LTIME6MOV R2, LTIME6CJNE R2, #06H, THOAT ; Phut2MOV LTIME6, #0
;Kiem tra gio1 neu bang 4 ma gio2 bang 2 thi thoat, khoi tao lai
;neu gio1 bang 4 ma gio2 khac 2 thi tang tiep den 9
INC LTIME5MOV R2, LTIME5CJNE R2, #4,CONHOUR2MOV R2, LTIME4
CJNE R2, #2, CONHOUR2
; Khoi tao lai
MOV LTIME4, #0MOV LTIME5, #0MOV LTIME6, #0MOV LTIME7, #0JMP CONTCONHOUR2:
CJNE R2, #0AH, THOATMOV LTIME5, #0
INC LTIME4JMP THOAT
Trang 23MOV LTIMEC, #201
MOV R2, LTIME6CJNE R2, #06H, $+3
MOV LTIME6, #0MOV R2, LTIME4CJNE R2, #03H, $+3
MOV LTIME4, #0CONT:
Trang 25; Doan chuong trinh nay xac dinh ma phim
; Ma phim luu trong thanh ghi A
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IN_HEX:
MOV R3, #50HBACK:
CALL GET_KEY ; Phim an chua?
JNC IN_HEX ; Chua an kiem tra laiDJNZ R3, BACK ; Neu an, kiem tra lai ( Chong rung phim)PUSH ACC ; Luu ma phim
RET
;~~~~~~~~~~
Trang 26; Dat trang thai phim
; C = 0, khong phim nao an
; C = 1, co phim an va luu ma phim trong thanh ghi A
DJNZ R6, TESTCLR C
JMP KEXITKEY_HIT:
MOV R7, AMOV A, #4CLR CSUBB A, R6MOV R6, AMOV A, R7SWAP AMOV R5, #4AGAIN:
RRC AJNC DONE ; Done khi C = 0INC R6
INC R6INC R6INC R6DJNZ R5, AGAINDONE:
SETB C ; Phim duoc anMOV A, R6 ; Code luu trong AKEXIT:
RET
;*********************
; Doi ASCII sang HEX
;********************
Trang 27CLR ACC.7CJNE A, #'9'+1, $+3
JC ATOH2ADD A, #9ATOH2: ANL A, #0FH
RET
HTOA:
ANL A, #0FHCJNE A, #0AH, $+3
JC HTOA2ADD A, #7HTOA2: ADD A, #'0'
DJNZ R3,$
DJNZ R2,LAPRET
TAB:
DB 40H, 79H, 24H, 30H, 19H, 12H, 02H, 78H, 00H, 10H
DB 08H, 03H, 46H, 21H, 06H, 0EH, 0FFH, 77HEND
Trang 28;Chuong trinh tren kit quang bao
%*DEFINE ( POP_DPTR)
( POP DPL POP DPH)R7M5H EQU 30HR7M5L EQU 31H
JMP MAIN
Trang 29ORG 000BHJMP ISRT0ORG 0023HJMP ISRSPORG 0030H
SETB TR1MOV R7, #0 ; R7 kiem tra so ki tu nhap vaoMOV DPTR, #0500H
%PUSH_DPTRJMP $
%POP_DPTRMOVX @DPTR, ACJNE A, #24H, TANG_DPTRCALL R7M5
MOV R1,#05HMOV R2,#00HMOV R3,#08HMOV R4,#00HCALL WERTIJMP ISRSPTANG_DPTR:
INC DPTR
Trang 30%PUSH_DPTR ; Cat DPTR de chu sau chua vao o nho ke tiep
MOV A, #00HADD A, R7M5LMOV R7M5L, AMOV A, #08HADDC A, R7M5HMOV R7M5H, ARET
Trang 31MOV DPTR,#0500HWORD_CON:
push accCJNE A,#24H,CON_SP
;RETjmp LOOPDISCON_SP:
pop accpush accCJNE A,#20H,TSO_0MOV R0,#0
LAP_SP:
MOV A,R0MOV DPTR,#K_TRANG
CALL LIKECJNE R0,#5,LAP_SPCALL INC_DPTR
;**********************************************************
;**********************************************************TSO_0:
pop accpush accCJNE A,#30H,TSO_1MOV R0,#0
LAP_0:
MOV A,R0MOV DPTR,#SO_0
CALL LIKE
Trang 32CJNE R0,#5,LAP_0CALL INC_DPTR
LAP_1:
MOV A,R0MOV DPTR,#SO_1
CJNE R0,#5,LAP_1CALL INC_DPTR
Trang 55; Xuat led
MOV DPTR, #0800H ; Tai addr 1CE0MOV 3EH, R0
CALL INCDPTRMOV DPTR, #0A000H ; Addr 1 tu trai sangMOVX @DPTR, A
MOV R7, 3AHMOV 3EH, R7MOV DPTR, #0800H ; Tai addr 1CE0CALL INCDPTR
MOV DPTR, #8000H ; Addr 1 tu trai sangMOVX @DPTR, A
INC R7MOV 3AH, R7
MOV R7, 3BHMOV 3EH, R7MOV DPTR, #0800H ; Tai addr 1CE0CALL INCDPTR
Trang 56MOV DPTR, #6000H ; Addr 1 tu trai sangMOVX @DPTR, A
INC R7MOV 3BH, R7MOV R7, 3CHMOV 3EH, R7MOV DPTR, #0800H ; Tai addr 1CE0CALL INCDPTR
MOV DPTR, #4000H ; Addr 1 tu trai sangMOVX @DPTR, A
INC R7MOV 3CH, R7MOV R7, 3DHMOV 3EH, R7MOV DPTR, #0800H ; Tai addr 1CE0CALL INCDPTR
MOV DPTR, #2000H ; Addr 1 tu trai sangMOVX @DPTR, A
INC R7MOV 3DH, R7
; COT
MOV A, R0MOV DPTR, #COTMOVC A, @A+DPTRMOV DPTR, #0C000HMOVX @DPTR, A
;CALL DELAY_3ms
;DELAY_3ms:
MOV R1, #8NHAN:
MOV R7, #250DJNZ R7, $DJNZ R1, NHAN
;RET ; Xong ScanCotINC R0
CJNE R0, #5, LOOP1CALL LEDRTIRET
;***************************************
Trang 57; LEDRTI:
;***************************************
LEDRTI:
MOV 30H, #01HMOV 31H, #00HMOV B, 41Hmov R2, 40Hmov R3, 41HCALL CON_HIFRET
CON_HIF:
MOV DPL, 41HMOV DPH, 40HMOVX A, @DPTRCALL DEC_DPTR
MOVX @DPTR, AMOV R3, 31H
CJNE R6, #0FFH,HI_FF INC 40H
HI_FF:
INC BMOV 41H, B
;SS
MOV A, R3MOV 53H, BMOV R6, BCJNE R6, #0FFH, SSFFMOV 41H, #0FFHMOV 40H, #08HSSFF: CJNE A, 43H, EXITSS
MOV A, R2MOV 42H, 40H ;CO TROUBCJNE A, 42H, EXITSS
MOV DPL, #0FFHMOV DPH, #08HMOVX A, @DPTRMOV DPL, R4
MOV DPH, R5MOVX @DPTR, AJMP SHIFTONE
EXITSS:
Trang 58JMP CON_HIFSHIFTONE:
MOV DPL, R2MOV DPH, R3MOVX A, @DPTRCALL DEC_DPTRMOVX @DPTR, ARET
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DEC_DPTR:
MOV R5, DPLMOV R4, DPHDEC R5MOV DPL, R5CJNE R5, #0FFH, EXIT_DECMOV R5, #0FFH
DEC R4MOV DPL, R5MOV DPH, R4EXIT_DEC:
RET
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
INCDPTR:
MOV A, #0CONIC:
CJNE A, 3EH, NCDPRABMOVX A, @DPTRRET
NCDPRAB:
INC DPTRINC AJMP CONIC
Trang 61MO_NGOAC: DB 3EH, 4EH, 00H, 00H, 00H
DONG_NGOAC: DB 00H, 00H, 00H, 4EH, 3EH
SAO: DB 2AH, 14H, 3EH, 14H, 2AH
; Doan chuong trinh tren kit thu thap nhiet do
; Doan chuong trinh an phim va truyen data len PC giong
; kit Nhan Vien
Trang 62MOVX @DPTR, A
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; SAVEDATA: Lay gia tri tu 8255 luu vao o nho tam, xu ly
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MOV DPTR, #0A000H
MOV A, #12H
MOV TEMP_UNIT, A
;MOV TEMP_UNIT, #12HMOV DPTR, #0A001HMOV A, #02H
MOVX @DPTR, A ; Tro Port BMOV TEMP_TEN, A
;MOV TEMP_TEN, #99HMOV DPTR, #0A002HMOV A, #78H
MOVX @DPTR, A ; ; Tro Port CMOV TEMP_HUNDR, A
;MOV TEMP_HUNDR, #30H
CALL SETTLEDATAMOV A, TEMP_POLCJNE A, #01H, ADDTOREALCALL CONV_NEG ; Co cuc tinhINC R2
MOV TENUNIT, R2MOV THOUHUND, R3JMP OUTLED
ADDTOREAL:
CALL CONV_POSMOV TENUNIT, R2MOV THOUHUND, R3OUTLED:
;****************************************
; OUTLED:
;****************************************
MOV A, TENUNITANL A, #0FHMOV DPTR, #TAB7SEG
Trang 63MOVC A, @A+DPTRMOV DPTR, #4000HMOVX @DPTR, AMOV DPTR, #6000HMOV A, #01H
MOVX @DPTR, ACALL DELAY
MOV A, TENUNITSWAP A
ANL A, #0FHMOV DPTR, #TAB7SEGMOVC A, @A+DPTRMOV DPTR, #4000HMOVX @DPTR, AMOV DPTR, #6000HMOV A, #02H
MOVX @DPTR, ACALL DELAY
MOV A, THOUHUNDANL A, #0FH
MOV DPTR, #TAB7SEGMOVC A, @A+DPTRMOV DPTR, #4000HMOVX @DPTR, AMOV DPTR, #6000HMOV A, #04H
MOVX @DPTR, ACALL DELAY
MOV A, THOUHUNDSWAP A
ANL A, #0FHMOV DPTR, #TAB7SEGMOVC A, @A+DPTRMOV DPTR, #4000HMOVX @DPTR, AMOV DPTR, #6000HMOV A, #08H
MOVX @DPTR, ACALL DELAY
;***************************************
; SETTLEDATA: Doan chuong trinh xu ly so
;***************************************
Trang 64MOV A, R0MOV DPTR, #TAB7SEGMOVC A, @A+DPTRCJNE A, B, CHECK_UNIT ; So sanh voi so trong bang, neu bang, gia tri do
MOV A, R0 ; chinh la gia tri R0MOV R2, A ; Mov donvi vao R2JMP SETTLE_TEN
CHECK_UNIT:
INC R0JMP LOOP_UNIT
LOOP_TEN:
MOV A, R0MOV DPTR, #TAB7SEGMOVC A, @A+DPTRCJNE A, B, CHECK_TEN ; So sanh voi so trong bang, neu bang, gia tri do
;MOV UNIT, R0 ; chinh la gia tri R0MOV A, R0
;ANL A, #0FHSWAP A ; A chua hang chuc, nam o byte caoCLR C ; Cac so tu 0 - 9