;KHAI BAO BIEN
CTRL_A EQU 00001011B ; GHI VAO THANH GHI DIEU KHIEN A ; CUA MT8880
CTRL_B EQU 00000000B ; GHI VAO THANH GHI DIEU KHIEN ; B CUA MT8880
MODE_WRITE EQU 0A0H ; DIEU KIEN GHI BYTE EEPROM MODE_READ EQU 0A1H ; DIEU KIEN DOC BYTE EEPROM D0 BIT P1.0
D1 BIT P1.1 ; CAC BIT DU LIEU SU DUNG DE MA HOA D2 BIT P1.2
D3 BIT P1.3
CS BIT P1.7 ; CHO PHEP MT8880 HOAT DONG RW BIT P1.5 ; DOC HAY GHI VAO MT8880 RSO BIT P1.6 ; CHON THANH GHI
F2 BIT P1.4 ; CHAN DIEU KHIEN CHU KI GHI VAO MT DK1 BIT P2.0 ; CHAN DIEU KHIEN THIET BI 1
DK2 BIT P2.1 ; CHAN DIEU KHIEN THIET BI 2 GS1 BIT P2.2 ; CHAN GIAM SAT THIET BI 1 GS2 BIT P2.3 ; CHAN GIAM SAT THIET BI 2 A4 BIT P2.4
A5 BIT P2.5 ; CAC CHAN DIA CHI HOP THOAI A6 BIT P2.6
PLAY BIT P2.7 ; CHAN DIEU KHIEN PHAT THOAI SCL BIT P3.0 ; CHAN SCL CUA EEPROM
SDA BIT P3.1 ; CHAN SDA CUA EEPROM
CBCHUONG BIT P3.2 ; CHAN CAM BIEN TIN HIEU CHUONG DEN TAI_GIA BIT P3.5 ; CHAN DIEU KHIEN NHAC MAY
DAO_CUC BIT P3.6 ; CHAN DIEU KHIEN THONG THOAI SW3 BIT P3.3 ; CHAN TAC DONG NGAT 1
IRQ BIT P3.4 FLAGS DATA 20H
FLAG BIT FLAGS.0 ; CO FLAG FLAG1 BIT FLAGS.1 ; CO FLAG1
DK_HETHONG BIT FLAGS.2 ;CO DIEU KHIENTRUY NHAP HE THONG DOI_MMA BIT FLAGS.3 ; CO DIEU KHIEN DOI MAT MA
DSEG AT 21H
WAIT: DS 1 ; BIEN HAM DELAY ADDRESS: DS 1 ; BIEN SO DIA CHI DATAS: DS 1 ; BIEN SO DU LIEU BUFFER: DS 15 ; VUNG DEM CSEG
ORG 00H
LJMP MAIN ; CHUONG TRINH CHINH ORG 13H
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu LJMP EX1_ISP ; CHUONG TRINH NGAT 1
ORG 30H
USING 0 ; SU DUNG BANK 0
MAIN:
MOV SP,#45H ; KHOI DONG NGAN XEP
MOV P1,#0FFH
MOV P3,#11001100B ; DAT CAC TRANG THAI DAU SETB CBCHUONG
CLR TAI_GIA ; GAC MAY SETB P3.6
CLR DK1 ; XOA CAC CHAN DIEU KHIEN THIET BI CLR DK2
MOV BUFFER,#0 ; XOA VUNG DEM LCALL MODE_NHAN ; KHOI DONG MT8880
JNB CBCHUONG,TT_CHO ;NEU CO CHUONG DEN THI NHAC MAY LJMP EXIT TT_CHO: MOV R7,#20 MOV A,R7 LOOPCHO: MOV WAIT,#10 LCALL DELAY3 DEC A JZ TIEP LJMP LOOPCHO TIEP: SETB P3.5 CPL P3.6 MOV WAIT,#10 LCALL DELAY3 ; 1s CLR DOI_MMA CLR DK_HETHONG
CLR A4 ; PHAT THONG BAO "XIN VUI LONG NHAP ; MA LENH"(000) CLR A5 CLR A6 LCALL DELAY ; 2ms CLR PLAY ; PHAT MOV WAIT,#20 LCALL DELAY3 ; 2s
SETB PLAY ; NGUNG PHAT MOV WAIT,#10
LCALL DELAY3 ; 1s
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu MOV WAIT,#10
LCALL DELAY3 ; 1s
DEC A JZ EXIT
LCALL DOC_TT ; DOC THANH GHI TRANG THAI CUA MT
JB P1.2,RESET_TIME
LJMP LOOPCHO1 RESET_TIME:
LCALL NHAN_SO ; NHAN VA XU LI SO NHAN DUOC TU MT LJMP NHAN_1SO ; TIEP TUC NHAN SO
EXIT:
CLR TAI_GIA ; GAC MAY
LJMP MAIN
;---
; CHUONG TRINH KHOI DONG MT8880: DUA DU LIEU DIEU KHIEN
; VAO THANH GHI CRA VA CRB O MODE NHAN DTMF
;--- MODE_NHAN:
PUSH ACC
MOV A,#00001000B ; GHI DU LIEU VAO CRA ANL A,#0FH ; XOA 4 BIT CAO
ORL A,#10100000B ; CS=1, RSO=0
MOV P1,A ; DUA DU LIEU RA BUS
CLR CS ; CHON CHIP
SETB F2 ; BAT DAU GHI
MOV WAIT,#250
LCALL DELAY1 ; 500us
CLR F2 ; KET THUC QUA TRINH GHI
SETB CS ; THOI CHON CHIP
MOV A,#CTRL_B ; GHI DU LIEU DIEU KHIEN VAO CRB ANL A,#0FH ; XOA 4 BIT CAO
ORL A,#10100000B ; CS=1, RSO=0
MOV P1,A ; DUA DU LIEU RA BUS
CLR CS ; CHON CHIP
SETB F2 ; BAT DAU GHI
MOV WAIT,#250
LCALL DELAY1 ; 500us
CLR F2 ; KET THUC QUA TRINH GHI
SETB CS ; THOI CHON CHIP
POP ACC RET
;---
; CHUONG TRINH LOAD MAT MA TU EEPROM VE BUFFER
;--- LOAD_MATMA:
PUSH AR0 PUSH ACC LOOP_LOAD:
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu MOV ADDRESS, #00H ; DIA CHI BAT DAU CUA VUNG MAT
;MA TREN EEPROM
LCALL DOC_1BYTE ; DOC BYTE CHUA SO CHU SO MAT MA
JB FLAG1, LOOP_LOAD ; DOC LAI NEU KHONG THANH CONG
ANL DATAS, #0FH ; XOA 4 BIT CAO
MOV R7, DATAS ; R7 CHUA SO CHU SO MAT MA
MOV BUFFER, DATAS ; DUA SO CHU SO MAT MA VE ;VUNG BUFFER
MOV R0, #BUFFER ; LAY DIA CHI CUA VUNG BUFFER MOV WAIT, #3
LCALL DELAY3 ; 300ms
NEXT_LOAD:
INC R0 ; R0 CHUA DIA CHI CAN DE MAT MA VAO
INC ADDRESS ; DIA CHI DOC EEPROM
LOOP_LOAD1:
LCALL DOC_1BYTE ; DOC DU LIEU TREN EEPROM
JB FLAG1, LOOP_LOAD1 ; DOC LAI NEU KHONG THANH CONG
MOV @R0, DATAS ; DUA DU LIEU VAO VUNG BUFFER MOV WAIT, #1
LCALL DELAY3 ; 100ms
DJNZ R7, NEXT_LOAD
CLR FLAG1 ; XOA CO NEU THANH CONG
POP ACC POP AR0 RET
;---
; CHUONG TRINH DOC 1 BYTE TU EEPROM: DIA CHI BYTE NAM TRONG ; EEPROM DU LIEU RA O DATAS
;--- DOC_1BYTE:
PUSH ACC
CLR TR1 ; TAT TIMER
CLR TR0
LCALL MALENH_DOC ; LENH DOC MA LENH DOC JB FLAG1, END_DOC1 ; XET CO FLAG1
LCALL DOC_BYTE ; DOC EEPROM
MOV DATAS, A ; CAT MA VAO A
MOV WAIT, #3
LCALL DELAY1 ; 6µs
SETB SDA ; KHONG CO XUNG ACK
MOV WAIT, #6
LCALL DELAY1 ; 12µs
NOP
SETB SCL ; DAT SCL LEN CAO
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
CLR SDA ; CHUAN BI TAT EEPROM
MOV WAIT, #4
LCALL DELAY1 ; 8µs
NOP
CLR SDA ; GIU SDA
SETB SCL ; SCL CAO, XUNG THU 10
CLR SDA
MOV WAIT, #15 LCALL DELAY1
SETB SDA ; TAT EEPROM
MOV WAIT, #16
LCALL DELAY1 ; 32µs
CLR FLAG1 ; XUNG ACK
LJMP EXIT_DOC1 END_DOC1:
SETB FLAG1 ; DAT FLAG1 NEU LOI
EXIT_DOC1: POP ACC RET
;---
; CHUONG TRINH GHI CAC MA LENH, DIA CHI CHO LENH DOC ;ADDRESS CHUA DIA CHI CAN DOC, FLAG1=0 GHI THANH CONG
;--- MALENH_DOC:
PUSH ACC CLR TR0 CLR TR1
SETB SDA ; KHOI DONG EEPROM
LJMP CONT ; NHAY TOI CONT
HELP_CODE:
LJMP END_CODE CONT:
SETB SDA ; GIU SDA
SETB SCL ; DAT SCL LEN CAO
SETB SDA ; GIU SDA
MOV WAIT, #10
LCALL DELAY1 ; 20µs
CLR SDA ; BAT DAU EEPROM
MOV WAIT, #3
LCALL DELAY1 ; 6µs
MOV A, #MODE_WRITE ; DIA CHI GHI MODE WRITE (0A0H) LCALL GHI_BYTE ;CHUONG TRINH GHI VAO EEPROM MOV WAIT, #15
LCALL DELAY1 ; 30µs
NOP
SETB SCL ; SCL CAO, XUNG THU 9
MOV WAIT, #5
LCALL DELAY1 ; 10µs
JB SDA, HELP_CODE ; KIEM TRA XUNG ACK MOV WAIT, #3
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
LCALL DELAY1 ; 6µs
MOV A, #ADDRESS ; DUA DIA CHI VAO A
LCALL GHI_BYTE ;CHUONG TRINH GHI VAO EEPROM MOV WAIT, #15
LCALL DELAY1 ; 30µs
NOP
SETB SCL ; SCL CAO, XUNG THU 9
MOV WAIT, #5 LCALL DELAY1 ; 10µs JB SDA, HELP_CODE MOV WAIT, #5 LCALL DELAY1 NOP
CLR SCL ; SCL THAP, XUNG THU 10
MOV WAIT, #6 LCALL DELAY1
SETB SDA ; CHUAN BI START
MOV WAIT, #4 LCALL DELAY1 NOP
SETB SDA ; GIU TIEP TUC
SETB SCL ; DIEU KIEN START THU 2
SETB SDA ; GIU SCL CAO
MOV WAIT, #5 LCALL DELAY1
CLR SDA ; SDA THAP, START EEPROM
MOV WAIT, #3 LCALL DELAY1
MOV A, #0A1H ; DIA CHI MODE READ
LCALL GHI_BYTE MOV WAIT, #15 LCALL DELAY1 NOP
SETB SCL ; SCL CAO, XUNG THU 9
MOV WAIT, #5 LCALL DELAY1 JB SDA, END_CODE MOV WAIT, #3 LCALL DELAY1
CLR FLAG1 ; XOA CO NEU THANH CONG
LJMP EXIT_CODE END_CODE:
SETB FLAG1 ; DAT CO NEU LOI
EXIT_CODE: POP ACC
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu ;---
; GHI BYTE VAO EEPROM: DATAS CHUA NOI DUNG CAN TRUYEN ; ADDRESS CHUA NOI DUNG CAN GHI FLAG1=0 THANH CONG
;--- GHI_BYTE:
MOV R6, #8 ; 8 BIT
LOOP_G:
RLC A ; DUA BIT CAO DI TRUOC
CLR SCL ; SCL THAP
MOV WAIT, #5
LCALL DELAY1 ; 10µs
MOV SDA, C ; DUA BIT CAO VAO SDA
MOV WAIT, #5 ; DO RONG XUNG
LCALL DELAY1 ; GIU THOI GIAN DE LUU
NOP SETB SCL MOV WAIT, #15 LCALL DELAY1
DJNZ R6, LOOP_G ;TIEP TUC DEN KHI R6=0 THI THOAT NOP
CLR SCL RET
;---
; CHUONG TRINH DOC BYTE VAO EEPROM: ADDRESS CHUA DIA CHI ;CAN DOC DATAS CHUA NOI DUNG BYTE DOC DUOC
;--- DOC_BYTE: MOV R6,#8 ; 8 BIT LOOP_D: NOP CLR SCL ; SCL THAP MOV WAIT, #16 LCALL DELAY1 ; 32µs NOP SETB SCL MOV WAIT, #5 LCALL DELAY1
MOV C, SDA ; DUA DU LIEU VAO C
RLC A ; DUA DU LIEU VAO A
MOV WAIT, #4 LCALL DELAY1 DJNZ R6, LOOP_D NOP CLR SCL RET
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu ;---
; CHUONG TRINH DOC TRANG THAI MT8880: DU LIEU DUA VAO P1
;--- DOC_TT:
PUSH ACC
MOV A,#0FH ; MAT NA CHO 4 BIT CAO
CLR F2 ; CHUA CHO PHEP DOC
SETB RSO ; CHO PHEP DOC DU LIEU THANH GHI
;TRANG THAI
SETB RW ; CHO PHEP DOC DU LIEU RA
CLR CS ; CHON CHIP
SETB F2 ; BAT BAU DOC
MOV WAIT,#250
LCALL DELAY1 ; 500us
ANL A, P1 ; DOC DU LIEU TU BUS
CLR F2 ; THOI DOC
SETB CS ; THOI CHON CHIP
ANL A,#0FH ; XOA 4 BIT CAO
MOV P1, A ; DUA DU LEU VAO STA
POP ACC RET
;---
; CHUONG TRINH NHAN VA XU LI SO
;--- NHAN_SO:
PUSH ACC
LCALL DOC_SO ; DOC SO TU MT8880
MOV A, DATAS ; DUA SO NHAN DUOC VAO THANH GHI A CJNE A, #10, XULY_SO
MOV DATAS, #0 ; NEU DU LIEU LA 10 THI CHUYEN VE 0 MOV A, #0
XULY_SO:
JNB DK_HETHONG, XET_MMA ; XET DIEU KIEN DE TRUY NHAP HE THONG
LCALL TN_HETHONG ; CHUONG TRINH TRUY NHAP DE
;DIEU KHIEN HE THONG LJMP EXIT_XLSO
XET_MMA:
MOV A, @R0 ; MAT MA CAT O DIA CHI R0
CJNE A, DATAS, MMA_SAI ; SO SANH SO NHAN DUOC VOI MAT MA
INC R1 ; NEU DUNG THI SO SANH TIEP
MOV A, R1 ; R1 CHUA SO CHU SO MAT MA
CJNE A, BUFFER, SS_TIEP ; NEU DU THI KET THUC
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu LJMP EXIT_XLSO
MMA_SAI:
MOV R0, #BUFFER+1 ; NEU BAM SAI THI RESET DIA CHI ;VA BAM LAI TU DAU
MOV R1, #00H MOV A, #0
SETB A4 ; PHAT THONG BAO "MAT MA SAI"(001) CLR A5
CLR A6
LCALL DELAY ; 2ms
CLR PLAY ; BAT DAU PHAT
MOV WAIT, #30 ; 3S
LCALL DELAY3
SETB PLAY ; NGUNG PHAT
POP ACC EXIT_XLSO:
RET
;---
; CHUONG TRINH CON DOC SO
;---