Lưu đồ chương trình báo trạng thái của thiết bị 2

Một phần của tài liệu Giám sát và điều khiển thiết bị qua mạng điện thoại (Trang 66)

- 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ỉ (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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: (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

;--- 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

Một phần của tài liệu Giám sát và điều khiển thiết bị qua mạng điện thoại (Trang 66)