- Tên chương trình: “GS_TB2”
- Chức năng: Báo cho người điều khiển biết về trạng thái hiện tại của thiết bị 2.
- Lưu đồ.
- Giải thích lưu đồ.
Lưu đồ chương trình giám sát trạng thái thiết bị 2: chương trình sẽ được gọi từ chương trình TN_HETHONG tiếp theo chương trình báo trạng thái thiết bị 1. Chương trình sẽ xét mức logic của port giám sát tương ứng với thiết bị 2, ở đây là port P2.3 và được đưa vào cờ C. Khi C bằng 1 thì mạch phát tiếng nĩi sẽ được khởi động và phát thơng báo “Thiết bị 2 tắt” đến người điều khiển trên đường dây điện thoại. Và khi C bằng 0 và mạch sẽ phát “Thiết bị 2 mở”.
Start Ret Mov P2.3 vào cờ C Phát “Thiết bị 2 mở” Phát “Thiết bị 2 tắt” C = 1 Đ S
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu - Lưu đồ.
- Giải thích lưu đồ.
Khi Switch 3 tác động thì chương trình phục vụ ngắt Mode 1 sẽ được gọi để phục vụ. Khi người điều khiển cĩ ở nhà và muốn đổi mật khẩu được nhanh chĩng thì nên sử dụng chương trình này. Chương trình này khơng cần biết mật khẩu cũ là gì chỉ cần nhập vào thì nĩ sẽ tự động lưu vào EEPROM để sử dụng cho lần truy nhập sau.
Khi chương trình ngắt Mode 1 được gọi nĩ sẽ cấm tất cả các ngắt, điều khiển MT8880 sẵn sàng nhận số sau đĩ nhấc máy nhận điều khiển đổi mật mã truy nhập hệ thống. Sau khi nhận đủ số mật mã thay đổi thì hệ thống sẽ tự thốt khỏi chương trình phuc vụ ngắt.
Start
Cấm ngắt, đĩng tải giả, khởi động MT ở chế độ nhận DTMF
SW3=0
Chương trình con đổi mật mã
Ngắt tải giả, cho phép ngắt
RETI Đ
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
5.1.9 Lưu đồ chương trình đổi mật mã bằng Switch
- Tên chương trình: “DOI_MATMA”
- Chức năng: Dùng để thay đổi mật mã khi cần thiết. - Lưu đồ. Start R1=00H Cĩ nhận số Đưa số chữ số mật mã vào R7 R1=ADDRESS Ghi mật mã vào ADDRESS
R1=R1+1 R7 ≠ 0 Nhận số Ret Đ S S Đ Đ S
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu Người sử dụng lưu số mật mã theo cách sau: số chữ số mật mã rồi đến các chữ số mật mã. Đầu tiên chương trình đặt địa chỉ vào thanh ghi R1, sau đĩ chương trình sẽ thăm dị nhận số. Chương trình sẽ lưu số đầu tiên là số chữ số mật mã vào R7 để lập lại số lần nhận mật mã, sau đĩ chương trình tiếp tục nhận số và lưu vào EEPROM ở địa chỉ tiếp theo và tự động giảm R7 một đơn vị sau mỗi lần nhận số. Khi R7 bằng 0 thì chương trình sẽ tự động kết thúc.
5.1.10 Lưu đồ chương trình đổi mật mã từ xa
- Tên chương trình: “DOI_MMATX”
- Chức năng: Dùng để thay đổi mật mã từ xa khi cần thiết. - Lưu đồ.
- Giải thích lưu đồ.
Chương trình được gọi từ chương trình truy nhập hệ thống khi hệ thống nhận được phím “5”. Chương trình đổi mật mã từ xa dùng để thay đổi mật mã truy nhập hệ thống khi người điều khiển vắng nhà.
Chương trình này sẽ lưu lại các số nhận được vào EEPROM ở địa chỉ 00H. Khi các số mật mã mới được nhập vào thì các số này được xem là mật mã dùng để truy nhập lần sau. Cách nhập mật mã theo cách sau: số chữ số mật mã rồi mới đến các số mật mã. Số chữ số mật mã được đưa vào vùng đệm BUFFER
Start
DOI_MMA=1
Ghi vùng đệm BUFFER vào bộ nhớ ngồi EEPROM ở địa chỉ
ADDRESS ADDRESS=#00H BUFFER=0 Ret Đ S Đ S
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu để làm điều kiện nhập các số mật mã, nếu số chữ số mật mã bằng 0 thì chương trình sẽ thốt. Chương trình sẽ lưu dữ liệu ở BUFFER vào R7 để lập lại số lần nhận mật mã, sau đĩ chương trình tiếp tục nhận số và lưu vào EEPROM ở địa chỉ tiếp theo và tự động giảm R7 một đơn vị sau mỗi lần nhận số. Khi R7 bằng 0 thì chương trình sẽ tự động kết thúc.
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
5.2 CHƯƠNG TRÌNH PHẦN MỀM
;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