Tải bản đầy đủ (.doc) (113 trang)

MÃ NGUỒN CHƯƠNG TRÌNH TRÊN LIT AT89C51 PC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (388.04 KB, 113 trang )

;Chuong trinh tren kit nhan vien
; R3, R5, R6, R7 Dung cho quet phim
; R4 Dung cho dong ho
; R2 Dung tam
; R1 Kiem tra phim C, D, E, F
ORG
0000H
%*DEFINE ( PUSH_DPTR)
( PUSH
DPH
PUSH
DPL)
%*DEFINE ( POP_DPTR)
( POP DPL
POP DPH)
COLLED
DATALED

EQU 4000H
EQU 2000H

; Address
CHECKDATAIN EQU
RCADDR
EQU
TADDR
EQU
TTURNTIME
EQU
TCHANGEADDR
TDATA1


EQU
TDATA2
EQU
TDATA3
EQU
TDATA4
EQU

40H
41H
0100H
0101H
EQU 0102H
0103H
0104H
0105H
0106H

; Enter
KEYENTER

EQU 42H

; Dong Ho
LTIME4
LTIME5

EQU 30H
EQU 31H


SVTH: Nhan Minh Tieán

1


LTIME6
LTIME7
LTIMEC

EQU 32H
EQU 33H
EQU 3DH

; ID 8 SO trong ROM
LEDT0
EQU
LEDT1
EQU
LEDT2
EQU
LEDT3
EQU
LEDT4
EQU
LEDT5
EQU
LEDT6
EQU
LEDT7
EQU

LEDTC
EQU

34H
35H
36H
37H
38H
39H
3AH
3BH
3CH

; ID trong RAM
KADDR
KID1
KID2
KID3
KID4
KID5
KID6
KID7
KID8
KIDE
COUNT

EQU
EQU
EQU
EQU

EQU
EQU
EQU
EQU
EQU
EQU
EQU

POSLED
KEYNUM

EQU 3EH
EQU 3FH

JMP
ORG
JMP
ORG
JMP
ORG

0107H
0108H
0109H
010AH
010BH
010CH
010DH
010EH
010FH

0110H
3000

MAIN
000BH
ISRT0
0023H
ISRSP
0030H

;~~~~~~~~~~~~
; INIT BAUDRATE
;~~~~~~~~~~~~~~~
MAIN:
MOV SCON, #50H

SVTH: Nhan Minh Tieán

2


MOV TMOD, #21H
MOV TH1, #0FDH
SETB TR1
;Khoi Led
MOV
MOV
MOV
MOV
MOV

MOV
MOV
MOV

LEDT0, #11H
LEDT1, #10H
LEDT2, #10H
LEDT3, #10H
LEDT4, #10H
LEDT5, #10H
LEDT6, #10H
LEDT7, #10H

;AddrRC
MOV RCADDR, #69H
MOV DPTR, #0107H
MOV A, #69H
MOVX
@DPTR, A

;Chu i
;KADDR

;Port
MOV CHECKDATAIN, #0
MOV DPTR, #0100H
;Khoi dong ho
MOV R4, #0
MOV LTIMEC, #201
MOV LTIME4, #0

MOV LTIME5, #0
MOV LTIME6, #0
MOV LTIME7, #0
; ini vi tri led
MOV POSLED, #0
MOV KEYNUM, #0
SETB
TF0
MOV IE, #10010010B
SETB PT0
;Priority for timer0 interrupt

MAIN1:
; xac dinh da bam phim may lan

SVTH: Nhan Minh Tieán

3


CALL
MOV
MOV
INC

IN_HEX
B, A
R1, A
KEYNUM


MOV A, KEYNUM
;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
; Save vao LEDT0
CJNE A, #1, SAVELEDT1
CJNE R1, #0AH, CKFOR1
MOV KEYNUM, #0
JMP MAIN1
CKFOR1:
CJNE R1, #0BH, CKXOA1
MOV KEYNUM, #0
JMP MAIN1
CKXOA1:
CJNE R1, #0CH, CKCLEAR1
MOV KEYNUM, #0
JMP MAIN1
CKCLEAR1:
CJNE R1, #0DH, CKIN1
JMP QSWA
CKIN1:
CJNE R1,#0EH, CKENTER1
MOV KEYNUM, #0
JMP MAIN1
CKENTER1:
CJNE R1, #0FH, NONECK1
MOV KEYNUM, #0
JMP MAIN1
NONECK1:
MOV LEDT0, B

MOV DPTR, #KID1 ; Luu vao RAM
MOV A, B
MOVX
@DPTR, A
JMP

MAIN1

SVTH: Nhan Minh Tieán

4


;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~
; Save vao LEDT1
SAVELEDT1:
CJNE A, #2, SAVELEDT2
CJNE R1, #0AH, CKFOR2
MOV R1, KEYNUM
CJNE R1, #1, INCKEY2A
MOV KEYNUM, #0
INCKEY2A:
MOV KEYNUM, #1
JMP MAIN1
CKFOR2:
CJNE R1, #0BH, CKXOA2
MOV R1, KEYNUM
CJNE R1, #1, INCKEY2B

MOV KEYNUM, #0
INCKEY2B:
MOV KEYNUM, #1
JMP MAIN1
CKXOA2:
CJNE R1, #0CH, CKCLEAR2
MOV KEYNUM, #0
MOV LEDT0, #11H
JMP MAIN1
CKCLEAR2:
CJNE R1, #0DH, CKIN2
JMP QSWA
CKIN2:
CJNE R1,#0EH, CKENTER2
MOV R1, KEYNUM
CJNE R1, #1, INCKEY2E
MOV KEYNUM, #0
INCKEY2E:
MOV KEYNUM, #1
JMP MAIN1
CKENTER2:
CJNE R1, #0FH, NONECK2
MOV R1, KEYNUM
CJNE R1, #1, INCKEY2F
MOV KEYNUM, #0
INCKEY2F:

SVTH: Nhan Minh Tieán

5



MOV KEYNUM, #1
JMP MAIN1
NONECK2:
MOV LEDT1, LEDT0
MOV LEDT0, B
MOV DPTR, #KID2 ; Luu vao RAM
MOV A, B
MOVX
@DPTR, A
JMP

MAIN1

;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~
; Save vao LEDT2
SAVELEDT2:
CJNE A, #3, SAVELEDT3
CJNE R1, #0AH, CKFOR3
MOV R1, KEYNUM
CJNE R1, #2, INCKEY3A
MOV KEYNUM, #1
INCKEY3A:
MOV KEYNUM, #2
JMP MAIN1
CKFOR3:
CJNE R1, #0BH, CKXOA3

MOV R1, KEYNUM
CJNE R1, #2, INCKEY3B
MOV KEYNUM, #1
INCKEY3B:
MOV KEYNUM, #2
JMP MAIN1
CKXOA3:
CJNE R1, #0CH, CKCLEAR3
MOV KEYNUM, #1
JMP QXOA
CKCLEAR3:
CJNE R1, #0DH, CKIN3
JMP QSWA
CKIN3:
CJNE R1,#0EH, CKENTER3
MOV R1, KEYNUM

SVTH: Nhan Minh Tieán

6


CJNE R1, #2, INCKEY3E
MOV KEYNUM, #1
INCKEY3E:
MOV KEYNUM, #2
JMP MAIN1
CKENTER3:
CJNE R1, #0FH, NONECK3
MOV R1, KEYNUM

CJNE R1, #2, INCKEY3F
MOV KEYNUM, #1
INCKEY3F:
MOV KEYNUM, #2
JMP MAIN1
NONECK3:
MOV LEDT2, LEDT1
MOV LEDT1, LEDT0
MOV LEDT0, B
MOV DPTR, #KID3 ; Luu vao RAM
MOV A, B
MOVX
@DPTR, A
JMP

MAIN1

;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~
; Save vao LEDT3
SAVELEDT3:
CJNE A, #4, SAVELEDT4
CJNE R1, #0AH, CKFOR4
MOV R1, KEYNUM
CJNE R1, #3, INCKEY4A
MOV KEYNUM, #2
INCKEY4A:
MOV KEYNUM, #3
JMP MAIN1

CKFOR4:
CJNE R1, #0BH, CKXOA4
MOV R1, KEYNUM
CJNE R1, #3, INCKEY4B
MOV KEYNUM, #2

SVTH: Nhan Minh Tieán

7


INCKEY4B:
MOV KEYNUM, #3
JMP MAIN1
CKXOA4:
CJNE R1, #0CH, CKCLEAR4
MOV KEYNUM, #2
JMP QXOA
CKCLEAR4:
CJNE R1, #0DH, CKIN4
JMP QSWA
CKIN4:
CJNE R1,#0EH, CKENTER4
MOV R1, KEYNUM
CJNE R1, #3, INCKEY4E
MOV KEYNUM, #2
INCKEY4E:
MOV KEYNUM, #3
JMP MAIN1
CKENTER4:

CJNE R1, #0FH, NONECK4
MOV R1, KEYNUM
CJNE R1, #3, INCKEY4F
MOV KEYNUM, #2
INCKEY4F:
MOV KEYNUM, #3
JMP MAIN1
NONECK4:
MOV
MOV
MOV
MOV

LEDT3, LEDT2
LEDT2, LEDT1
LEDT1, LEDT0
LEDT0, B

MOV DPTR, #KID4 ; Luu vao RAM
MOV A, B
MOVX
@DPTR, A
JMP

MAIN1

;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~
SAVELEDT4:


SVTH: Nhan Minh Tieán

8


CJNE A, #5, SAVELEDT5
CJNE R1, #0AH, CKFOR5
MOV R1, KEYNUM
CJNE R1, #4, INCKEY5A
MOV KEYNUM, #3
INCKEY5A:
MOV KEYNUM, #4
JMP MAIN1
CKFOR5:
CJNE R1, #0BH, CKXOA5
MOV R1, KEYNUM
CJNE R1, #4, INCKEY5B
MOV KEYNUM, #3
INCKEY5B:
MOV KEYNUM, #4
JMP MAIN1
CKXOA5:
CJNE R1, #0CH, CKCLEAR5
MOV KEYNUM, #3
JMP QXOA
CKCLEAR5:
CJNE R1, #0DH, CKIN5
JMP QSWA
CKIN5:

CJNE R1,#0EH, CKENTER5
MOV R1, KEYNUM
CJNE R1, #4, INCKEY5E
MOV KEYNUM, #3
INCKEY5E:
MOV KEYNUM, #4
JMP MAIN1
CKENTER5:
CJNE R1, #0FH, NONECK5
MOV R1, KEYNUM
CJNE R1, #4, INCKEY5F
MOV KEYNUM, #3
INCKEY5F:
MOV KEYNUM, #4
JMP MAIN1
NONECK5:
MOV LEDT4, LEDT3
MOV LEDT3, LEDT2
MOV LEDT2, LEDT1

SVTH: Nhan Minh Tieán

9


MOV LEDT1, LEDT0
MOV LEDT0, B
MOV DPTR, #KID5 ; Luu vao RAM
MOV A, B
MOVX

@DPTR, A
JMP

MAIN1

;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~
SAVELEDT5:
CJNE A, #6, SAVELEDT6
CJNE R1, #0AH, CKFOR6
MOV R1, KEYNUM
CJNE R1, #5, INCKEY6A
MOV KEYNUM, #4
INCKEY6A:
MOV KEYNUM, #5
JMP QBACK
CKFOR6:
CJNE R1, #0BH, CKXOA6
MOV R1, KEYNUM
CJNE R1, #5, INCKEY6B
MOV KEYNUM, #4
INCKEY6B:
MOV KEYNUM, #5
JMP SHIFTTO
CKXOA6:
CJNE R1, #0CH, CKCLEAR6
MOV KEYNUM, #4
JMP QXOA
CKCLEAR6:

CJNE R1, #0DH, CKIN6
JMP QSWA
CKIN6:
CJNE R1,#0EH, CKENTER6
MOV R1, KEYNUM
CJNE R1, #5, INCKEY6E
MOV KEYNUM, #4
INCKEY6E:
MOV KEYNUM, #5
JMP MAIN1

SVTH: Nhan Minh Tieán

10


CKENTER6:
CJNE R1, #0FH, NONECK6
MOV R1, KEYNUM
CJNE R1, #5, INCKEY6F
MOV KEYNUM, #4
INCKEY6F:
MOV KEYNUM, #5
JMP MAIN1
NONECK6:
MOV
MOV
MOV
MOV
MOV

MOV

LEDT5, LEDT4
LEDT4, LEDT3
LEDT3, LEDT2
LEDT2, LEDT1
LEDT1, LEDT0
LEDT0, B

MOV DPTR, #KID6 ; Luu vao RAM
MOV A, B
MOVX
@DPTR, A
JMP

MAIN1

;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
SAVELEDT6:
CJNE A, #7, SAVELEDT7
CJNE R1, #0AH, CKFOR7
MOV R1, KEYNUM
CJNE R1, #6, INCKEY7A
MOV KEYNUM, #5
INCKEY7A:
MOV KEYNUM, #6
JMP QBACK
CKFOR7:

CJNE R1, #0BH, CKXOA7
MOV R1, KEYNUM
CJNE R1, #6, INCKEY7B
MOV KEYNUM, #5
INCKEY7B:
MOV KEYNUM, #6
JMP SHIFTTO
CKXOA7:

SVTH: Nhan Minh Tieán

11


CJNE R1, #0CH, CKCLEAR7
MOV KEYNUM, #5
JMP QXOA
CKCLEAR7:
CJNE R1, #0DH, CKIN7
JMP QSWA
CKIN7:
CJNE R1,#0EH, CKENTER7
MOV R1, KEYNUM
CJNE R1, #6, INCKEY7E
MOV KEYNUM, #5
INCKEY7E:
MOV KEYNUM, #6
JMP MAIN1
CKENTER7:
CJNE R1, #0FH, NONECK7

MOV R1, KEYNUM
CJNE R1, #6, INCKEY7F
MOV KEYNUM, #5
INCKEY7F:
MOV KEYNUM, #6
JMP MAIN1
NONECK7:
MOV
MOV
MOV
MOV
MOV
MOV
MOV

LEDT6, LEDT5
LEDT5, LEDT4
LEDT4, LEDT3
LEDT3, LEDT2
LEDT2, LEDT1
LEDT1, LEDT0
LEDT0, B

MOV DPTR, #KID7 ; Luu vao RAM
MOV A, B
MOVX
@DPTR, A
JMP MAIN1
;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~
SAVELEDT7:
CJNE A, #8, KEY9
CJNE R1, #0AH, CKFOR8
MOV R1, KEYNUM

SVTH: Nhan Minh Tieán

12


CJNE R1, #7, INCKEY8A
MOV KEYNUM, #6
INCKEY8A:
MOV KEYNUM, #7
JMP QBACK
CKFOR8:
CJNE R1, #0BH, CKXOA8
MOV R1, KEYNUM
CJNE R1, #7, INCKEY8B
MOV KEYNUM, #6
INCKEY8B:
MOV KEYNUM, #7
JMP SHIFTTO
CKXOA8:
CJNE R1, #0CH, CKCLEAR8
MOV KEYNUM, #6
JMP QXOA
CKCLEAR8:
CJNE R1, #0DH, CKIN8

JMP QSWA
CKIN8:
CJNE R1,#0EH, CKENTER8
MOV R1, KEYNUM
CJNE R1, #7, INCKEY8E
MOV KEYNUM, #6
INCKEY8E:
MOV KEYNUM, #7
JMP MAIN1
CKENTER8:
CJNE R1, #0FH, NONECK8
MOV R1, KEYNUM
CJNE R1, #7, INCKEY8F
MOV KEYNUM, #6
INCKEY8F:
MOV KEYNUM, #7
JMP MAIN1
NONECK8:
MOV
MOV
MOV
MOV
MOV
MOV

LEDT7, LEDT6
LEDT6, LEDT5
LEDT5, LEDT4
LEDT4, LEDT3
LEDT3, LEDT2

LEDT2, LEDT1

SVTH: Nhan Minh Tieán

13


MOV LEDT1, LEDT0
MOV LEDT0, B
MOV DPTR, #KID8 ; Luu vao RAM
MOV A, B
MOVX
@DPTR, A
JMP
KEY9:
CJNE
MOV
JMP

MAIN1
R1, #0CH, CKCLEAR9
KEYNUM, #7
QXOA

;Phim thu 9 la phim enter, luu vao o nho LEDTC
CKCLEAR9:
MOV A, B
CJNE A, #0FH, WHATK ;Neu la phim Enter thi ngat SP
;MOV DPTR, #KIDE; Luu vao RAM
;MOV A, B

;MOVX
@DPTR, A
MOV KEYENTER, B
;CALL SENDDATA ; Goi ID ve PC
MOV KEYNUM, #0
JMP main1
WHATK:
MOV KEYNUM, #8
CJNE R1, #0AH, CKFOR
JMP QBACK
CKFOR:
CJNE R1, #0BH, CKXOA
JMP SHIFTTO
CKXOA:
CJNE R1, #0CH, CKCLEAR
JMP QXOA
CKCLEAR:
CJNE R1, #0DH, CKIN
JMP QSWA
CKIN:
CJNE R1,#0EH, CKENTER
JMP MAIN1
CKENTER:
JMP MAIN1

SVTH: Nhan Minh Tieán

14



QSWA:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
JMP

KEYNUM, #0
LEDT0, #11H
LEDT1, #10H
LEDT2, #10H
LEDT3, #10H
LEDT4, #10H
LEDT5, #10H
LEDT6, #10H
LEDT7, #10H
LEDTC, #10H
MAIN1

QXOA:
MOV
MOV
MOV
MOV

MOV
MOV
MOV
MOV
MOV
MOV
JMP

LEDTC, #10H
LEDT0, #11H
LEDT0, LEDT1
LEDT1, LEDT2
LEDT2, LEDT3
LEDT3, LEDT4
LEDT4, LEDT5
LEDT5, LEDT6
LEDT6, LEDT7
LEDT7, #10H
MAIN1

QBACK:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV

JMP

LEDTC, LEDT7
LEDT7, LEDT6
LEDT6, LEDT5
LEDT5, LEDT4
LEDT4, LEDT3
LEDT3, LEDT2
LEDT2, LEDT1
LEDT1, LEDT0
LEDT0, LEDTC
MAIN1

SHIFTTO:
MOV
MOV
MOV
MOV
MOV
MOV

LEDTC, LEDT0
LEDT0, LEDT1
LEDT1, LEDT2
LEDT2, LEDT3
LEDT3, LEDT4
LEDT4, LEDT5

SVTH: Nhan Minh Tieán


15


MOV
MOV
MOV
JMP
RET

LEDT5, LEDT6
LEDT6, LEDT7
LEDT7, LEDTC
MAIN1

JMP

MAIN1

;~~~~~~~~~~~~~~~~~~~~~~~~~~
; 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 RI
MOV A, SBUF
INC CHECKDATAIN
MOV R2, CHECKDATAIN

CJNE
MOV
MOV
CJNE
CALL
MOV
MOV

CTT12:
CJNE
MOV
MOV
MOV
MOV
MOV
MOV
MOV

A, #21H, CTT12
; ! PC muon nhan ID
CHECKDATAIN, #0
R2, KEYENTER
R2, #0FH, CTT12
; Enter thi goi ID ve PC
SENDDATA
KEYENTER, #0
CHECKDATAIN, #0

A, #23H, CTT0
LEDT0, #11H

LEDT1, #10H
LEDT2, #10H
LEDT3, #10H
LEDT4, #10H
LEDT5, #10H
LEDT6, #10H

SVTH: Nhan Minh Tieán

; # tin hieu bao dung ID

16


MOV LEDT7, #10H
MOV LEDTC, #10H
MOV KEYNUM, #0
MOV KEYENTER, #0
MOV CHECKDATAIN, #0
RETI
CTT0:
CJNE
CJNE
MOV
MOVX

R2, #1, CTT1
A, #69H, THOATCT
DPTR, #0100H
@DPTR, A


CTT1:
CJNE
MOV
MOVX

R2, #2, CTT2
DPTR, #0101H
@DPTR, A

CTT2:
CJNE
MOV
MOVX

R2, #3, CTT3
DPTR, #0102H
@DPTR, A

CTT3:
CJNE
MOV
MOVX

R2, #4, CTT4
DPTR, #0103H
@DPTR, A

CTT4:
CJNE

MOV
MOVX

R2, #5, CTT5
DPTR, #0104H
@DPTR, A

CTT5:
CJNE
MOV
MOVX

R2, #6, CTT6
DPTR, #0105H
@DPTR, A

CTT6:
MOV
MOVX

DPTR, #0106H
@DPTR, A

MOV A, #7

SVTH: Nhan Minh Tieán

17



CJNE A, CHECKDATAIN, NHAPTIEP
;Da nap xong vao o nho
;Tiep theo kiem tra dc, data xem co chinh gio hay thay doi addr khong
MOV CHECKDATAIN, #0
MOV DPTR, #TADDR
MOVX
A, @DPTR
CJNE A, RCADDR, THOATISR

; Kiem tra Addr CHU i

CALL CHINHDH
CALL THAYADDR
;CALL SENDADDR
THOATISR:
MOV DPTR, #TADDR
MOVX
A, @DPTR
MOV RCADDR, A
THOATCT:
MOV CHECKDATAIN, #0
NHAPTIEP:
RETI

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Ngat Timer 0 dung de quet tung con led moi con 2,5ms
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ISRT0:
;PUSH ACC
; Khoi tao lai Timer

CLR TR0
MOV TH0, #HIGH (-2501)
MOV TL0, #LOW (-2501)
SETB TR0
CALL

DONGHO

; Xac dinh vi tri led de xuat
MOV A, POSLED
;Quet Led 0
CJNE A, #0, SCANL1
CALL
JMP

DISL0
QSCAN

SVTH: Nhan Minh Tieán

18


;Quet Led1
SCANL1:
CJNE A, #1, SCANL2
CALL
DISL1
JMP
QSCAN

;Quet Led2
SCANL2:
CJNE A, #2, SCANL3
CALL
DISL2
JMP
QSCAN
;Quet Led3
SCANL3:
CJNE A, #3, SCANL4
CALL
DISL3
JMP
QSCAN
;Quet Led 4
SCANL4:
CJNE A, #4, SCANL5
CALL
DISL4
JMP
QSCAN
;Quet Led1
SCANL5:
CJNE A, #5, SCANL6
CALL
DISL5
JMP
QSCAN
;Quet Led2
SCANL6:

CJNE A, #6, SCANL7
CALL
DISL6
JMP
QSCAN
;Quet Led3
SCANL7:
CJNE A, #7, QSCAN
CALL

DISL7

QSCAN:
INC POSLED
MOV A, POSLED

SVTH: Nhan Minh Tieán

19


CJNE A, #8, QISCAN
MOV POSLED, #0

;86 MICRO SEC

QISCAN:
;POP ACC
RETI


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Goi ID den PC
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SENDDATA:

MOV
CALL
CALL
MOV
CALL
CALL
MOV
CALL
CALL
MOV
CALL
CALL
MOV
CALL
CALL
MOV
CALL
CALL
MOV
CALL
CALL
MOV
CALL
CALL


A, LEDT7
HTOA
OUTCHAR
A, LEDT6
HTOA
OUTCHAR
A, LEDT5
HTOA
OUTCHAR
A, LEDT4
HTOA
OUTCHAR
A, LEDT3
HTOA
OUTCHAR
A, LEDT2
HTOA
OUTCHAR
A, LEDT1
HTOA
OUTCHAR
A, LEDT0
HTOA
OUTCHAR

; ID 1
; ID 2
; ID 3
; ID 4
; ID 5

; ID 6
; ID 7
; ID 8

RET

SVTH: Nhan Minh Tieán

20


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SENDADDR:
MOV A, #69H
CALL HTOA
MOV SBUF, A
JNB TI, $
CLR TI
RET
;~~~~~~~~~~~~~~~~~~~~~~~~~~
; Goi data ve PC
;~~~~~~~~~~~~~~~~~~~~~~~~~~
OUTCHAR:
MOV SBUF, A
JNB TI,$
CLR TI
RET
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

; Thay doi dia chi
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
THAYADDR:
MOV DPTR, #TCHANGEADDR ; Tro toi o nho chua addr tam
MOVX
A, @DPTR
CJNE A, #43H, CONCHANGE
; CHU C
MOV DPTR, #TDATA1
; Neu la chu C thi thay doi dia chi
MOVX
A, @DPTR
MOV RCADDR, A
CONCHANGE:
RET
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Chinh dong ho
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CHINHDH:
MOV DPTR, #TTURNTIME
MOVX
A, @DPTR
CJNE A, #54H, CONTURN ;Chu T
; Chinh dong ho
MOV DPTR, #TDATA1
MOVX
A, @DPTR
callatoh
MOV LTIME4, A


SVTH: Nhan Minh Tieán

21


INC DPTR
MOVX
A, @DPTR
callatoh
MOV LTIME5, A
INC DPTR
MOVX
A, @DPTR
callatoh
MOV LTIME6, A
INC DPTR
MOVX
A, @DPTR
callatoh
MOV LTIME7, A
CONTURN:
RET
;~~~~~~~~~~~
; DONG HO
;~~~~~~~~~~~
DONGHO:
DJNZ LTIMEC, CONT
;Duoc 0,5s
INC R4
CJNE R4, #6EH, THOAT

MOV R4, #0
INC LTIME7
MOV R2, LTIME7
CJNE R2, #0AH, THOAT
MOV LTIME7, #0
INC LTIME6
MOV R2, LTIME6
CJNE R2, #06H, THOAT
MOV LTIME6, #0

; Duoc 60s

; Phut1

; Phut2

;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 LTIME5
MOV R2, LTIME5
CJNE R2, #4,CONHOUR2
MOV R2, LTIME4
CJNE R2, #2, CONHOUR2
; Khoi tao lai
MOV LTIME4, #0
MOV LTIME5, #0

SVTH: Nhan Minh Tieán

22



MOV LTIME6, #0
MOV LTIME7, #0
JMP CONT
CONHOUR2:
CJNE
MOV
INC
JMP
THOAT:

R2, #0AH, THOAT
LTIME5, #0
LTIME4
THOAT

MOV LTIMEC, #201
MOV
CJNE
JC
MOV
MOV
CJNE
JC
MOV
CONT:
RET

R2, LTIME6

R2, #06H, $+3
CONT
LTIME6, #0
R2, LTIME4
R2, #03H, $+3
CONT
LTIME4, #0

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; QUET LED
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DISL0:
MOV
MOV
MOVC
MOV
MOVX
MOV
MOV
MOVX
;CALL
RET
DISL1:
MOV
MOV
MOVC
MOV

A, LEDT0
DPTR, #TAB

A, @A+DPTR
DPTR, #DATALED
@DPTR, A
DPTR, #COLLED
A, #08H
@DPTR, A
DELAY

A, LEDT1
DPTR, #TAB
A, @A+DPTR
DPTR, #DATALED

SVTH: Nhan Minh Tieán

23


MOVX
MOV
MOV
MOVX
;CALL
RET

@DPTR, A
DPTR, #COLLED
A, #04H
@DPTR, A
DELAY


DISL2:
MOV
MOV
MOVC
MOV
MOVX
MOV
MOV
MOVX
;CALL
RET

A, LEDT2
DPTR, #TAB
A, @A+DPTR
DPTR, #DATALED
@DPTR, A
DPTR, #COLLED
A, #02H
@DPTR, A
DELAY

DISL3:
MOV
MOV
MOVC
MOV
MOVX
MOV

MOV
MOVX
;CALL
RET

A, LEDT3
DPTR, #TAB
A, @A+DPTR
DPTR, #DATALED
@DPTR, A
DPTR, #COLLED
A, #01H
@DPTR, A
DELAY

DISL4:
MOV
MOV
MOVC
MOV
MOVX
MOV
MOV
MOVX
;CALL
RET

A, LTIME4
DPTR, #TAB
A, @A+DPTR

DPTR, #DATALED
@DPTR, A
DPTR, #COLLED
A, #10H
@DPTR, A
DELAY

DISL5:
MOV
MOV

A, LTIME5
DPTR, #TAB

SVTH: Nhan Minh Tieán

24


MOVC
MOV
MOVX
MOV
MOV
MOVX
;CALL
RET

A, @A+DPTR
DPTR, #DATALED

@DPTR, A
DPTR, #COLLED
A, #20H
@DPTR, A
DELAY

DISL6:
MOV
MOV
MOVC
MOV
MOVX
MOV
MOV
MOVX
;CALL
RET

A, LTIME6
DPTR, #TAB
A, @A+DPTR
DPTR, #DATALED
@DPTR, A
DPTR, #COLLED
A, #40H
@DPTR, A
DELAY

DISL7:
MOV

MOV
MOVC
MOV
MOVX
MOV
MOV
MOVX
;CALL
RET

A, LTIME7
DPTR, #TAB
A, @A+DPTR
DPTR, #DATALED
@DPTR, A
DPTR, #COLLED
A, #80H
@DPTR, A
DELAY

;~~~~~~~~~~~~~
; IN_HEX:
; Doan chuong trinh nay xac dinh ma phim
; Ma phim luu trong thanh ghi A
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IN_HEX:
MOV
BACK:
CALL
JNC

DJNZ
PUSH

R3, #50H
GET_KEY
IN_HEX
R3, BACK
ACC

SVTH: Nhan Minh Tieán

; Phim an chua?
; Chua an kiem tra lai
; Neu an, kiem tra lai ( Chong rung phim)
; Luu ma phim

25


×