hệ thống điều khiển thiết bị từ xa và tự động quay số báo động thông qua mạng điện thoại, chương 15 pot

9 304 0
hệ thống điều khiển thiết bị từ xa và tự động quay số báo động thông qua mạng điện thoại, chương 15 pot

Đang tải... (xem toàn văn)

Thông tin tài liệu

MOV R0  RAM MOV P1  @R0 LCALL DELAY_1S INC R0 LCALL RESET_MT8880 LCALL DTMF Chương 15: CHƯƠNG TRÌNH CON PHÁT SỐ ĐIỆN THOẠI THỨ 1-2-3-4 1. Lưu đồ giải thuật. BEGIN Đ @R0 = * ? S RET 2. Giải thích: Đầu chương trình sẽ nhảy đến đòa chỉ RAM để lấy dữ liệu tại đòa chỉ này (số điện thoại). Sau đó gọi chương trình RESET- MT8880 để khởi động lại cho MT8880 và gọi chương trình DTMF để chọn chế độ phát. Sau đó nạp giá trò số điện thoại vào thanh ghi phát dữ liệu của MT8880 và kiểm tra số điện thoại nạp vào và nếu giá trò số điện thoại là phím * thì kết thúc việc phát số điện thoại thứ nhất.Tương tự như vậy cho các số điện thoại thứ 2-3-4. LCALL RESET-MT8880 LCALL DTMF ĐÓNG TẢI GIẢ LCALL DELAY_10S LCALL PSĐT LCALL DELAY_1S LCALL BAODONG Ô NHỚ = 1 XVII. CHƯƠNG TRÌNH CON QUAY SỐ ĐIỆN THOẠI THỨ 1-2-3-4: 1. Lưu đồ thuật giải : BEGIN THNM ? MỞ TẢI GIẢ RET 2. Giải thích: Trước tiên sẽ gọi chương trình RESET-MT8880 để khởi động lại MT8880, sau đó gọi chương trìng con DTMF để chọn chế độ phát. Sau đó xuất tín hiệu đóng tải giả, tiếp theo đợi 10S để chờ tín hiệu mời quay số. Sau đó sẽ gọi chương trình phát số điện thoại. Sau khi phát số điện thoại xong kiểm tra tín hiệu nhấc máy trong vòng 30 giây. Nếu không có tín hiệu nhấc máy thì tắt tải giả kết thúc cuộc gọi. Nếu có tín hiệu nhấc máy thì phát thông báo và đồng thời đặt ô nhớ =1 để cho biết là cuộc gọi thành công. Sau đó tắt tải giả kết thúc cuộc gọi. LCALL QSBĐ LCALL QSBĐ2 XVII. CHƯƠNG TRÌNH CON QUAY SỐ BÁO ĐỘNG : 1. Lưu đồ giải thuật: BEGIN Đ 77H = 1 ? S S 76H =1 ? Đ S 77H =1 ? Đ RET 2. Giải thích : Đầu tiên chương trình sẽ quay số điện thoại báo động thứ 1. Nếu quay số điện thoại thứ 1 thành công thì quay tiếp số điện thoại thứ 2. Nếu cuộc gọi thứ 2 thành công thì thoát. Nếu cuộc gọi thứ 1 thành công thì sẽ đặt ô nhớ 76H =1 để báo cho biết là cuộc gọi thứ 1 thành công. Sau đó nhảy tới quay số cho cuộc gọi thứ 2. Nếu cuộc gơi thứ 2 không thành công thì sẽ trở lại xem cuộc gọi thứ nhất thành công chưa. Nếu cuộc gọi thứ 1 thành công thì sẽ quay số thực hiện cuộc gọi thứ 2 tiếp. Cứ tiếp tục làm như thế cho đến khi nào cuộc gọi thứ 2 thành công thì thôi. Nếu cuộc gọi thứ 1 không thành công thì sẽ nhảy tới quay số cho cuộc gọi thứ 2. Nếu cuộc gọi thứ 2 thành công thì đặt ô nhớ 77H = 1 để báo cho biết là cuộc gọi thứ 2 đã thành công. Sau đó nhảy về gọi tiếp cuộc gọi thứ 1, nếu cuộc gọi thứ 1 không thành công nữa thì sẽ nhảy sang cuộc gọi thứ 2 mà lúc này cuộc gọi thứ 2 đã thành công rồi cho nên sẽ quay về thực hiện cuộc gọi thứ 1. Cứ tiếp tục như vậy cho đến khi nào cả 2 cuộc gọi thành công thì thôi. VIII. CHƯƠNG TRÌNH CON DELAY: 1. Lưu đồ giải thuật: Đ R1 = R1-1 S BEGIN R1 = 20 TR0 = 0 TF0 = 0 TH0 = high (+50000) TL0 = low (-50000) TR0 =1 TF0 =1 2. Giải thích: Đây là chương trình phục vụ cho các chương trình khác khi được gọi đến. Khi đó chương trình có nhiệm vụ làm trễ đi một khoảng thời gian nhất đònh được cài đặt trước. Đầu tiên chương trình nạp cho thanh ghi R1 = 20, tắt timer 0 bằng cách xóa TR0, xóa cờ báo tràn TF0. Sau đó TH0 được nạp byte của (-50000) và byte thấp của (-50000) được nạp vào TL0. Con số (-50000) là con số của hệ số 10, dấu trừ tượng trưng cho các bit cao là bit 0. Sau khi nạp thời hằng cho hai thanh ghi chương trình sẽ bật timer 0. Timer 0 được đếm ở chế độ mode 1, đếm 16 bit, timer 0 tự động đếm lên cho đến FFFFH, rồi xuống 0000H. Lúc đó cờ tràn TF0 được bật lên 1. Chương trình lại tiếp tục giảm R 1 , và khi R 1 chưa bằng 0 thì chương trình lặp lại quá trình đếm của timer 0. Khi R1 = 0 thì chương trình sẽ thoát về từ gọi chương trình con. Cách tính thời gian chương trình delay: Với chu kỳ của xung timer là 1us thì T delay được tính như sau: T delay = 20 x 50000 = 1000000  s = 1 s . QSBĐ2 XVII. CHƯƠNG TRÌNH CON QUAY SỐ BÁO ĐỘNG : 1. Lưu đồ giải thuật: BEGIN Đ 77H = 1 ? S S 76H =1 ? Đ S 77H =1 ? Đ RET 2. Giải thích : Đầu tiên chương trình sẽ quay số điện thoại báo động. phát dữ liệu của MT8880 và kiểm tra số điện thoại nạp vào và nếu giá trò số điện thoại là phím * thì kết thúc việc phát số điện thoại thứ nhất.Tương tự như vậy cho các số điện thoại thứ 2-3-4. LCALL. tại đòa chỉ này (số điện thoại). Sau đó gọi chương trình RESET- MT8880 để khởi động lại cho MT8880 và gọi chương trình DTMF để chọn chế độ phát. Sau đó nạp giá trò số điện thoại vào thanh ghi

Ngày đăng: 05/07/2014, 12:21

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan