Tải bản đầy đủ (.pdf) (6 trang)

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 9 potx

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 (71.33 KB, 6 trang )

Chương 9:
THIẾT KẾ PHẦN MỀM
I. CHƯƠNG TRÌNH CHÍNH:
1. Lưu đồ giải thuật
BEGIN
LCALL RESET

MT8880
LCALL DTMF
ĐỊNH NGHĨA
XÓA CÁC DỮ
LIỆU
ĐẶT NGẮT CẠNH ÂM
ƯU TIÊN NGẮT 0
CHO PHÉP NGẮT 1
HOẠT ĐỘNG
LCALL
CHAY
LCALL
TROM
P3.0 = 1 ?
S
Đ
P3.1 = 1 ?
s
Đ
2. Giải thích:
Khi reset CPU hay khi mới cấp điện thì chương trình chính
bắt đầu. Đầu tiên chương trình sẽ khởi tạo các giá trò ban đầu
cho các timer, các ngắt bên ngoài và xóa các port P0, P1, P2 về
mức logic 0. Đònh nghóa timer 0 hoạt động ở mode 1 tức mode


đếm 16 bit. Đònh nghóa ngắt ngoài 0, ngắt ngoài 1, ưu tiên ngắt 0
và đều là tác động cạnh âm. Sau khi khởi tạo các giá trò ban đầu
thì chương trình chính cho phép ngắt 1 hoạt động để đợi tín hiệu
chuông, sau đó kiểm tra ở chân P3.0 có tín hiệu cháy hay không,
nếu không có thì kiểm tra ở chân P3.1 có tín hiệu trộm hay
không. Nếu không có tín hiệu trộm thì sẽ nhảy về kiểm tra lại
tín hiệu cháy. Quá trình như vậy sẽ đi vào vòng lặp vô tận để
kiểm tra các tín hiệu cháyvà trộm. Lúc này ngắt 1 đang chờ sự
tác động chuông. Nếu có tín hiệu chuông tác động đến ngắt
ngoài 1 thì sẽ gọi chương trình phục vụ ngắt ngoài 1. Sau khi
chương trình ngắt ngoài 1 được thực hiện xong, nếu ta ấn 1 phím
bất kì, chân IRQ/CP của MT8880 sẽ tác động đến ngắt ngoài 0
để gọi chương trình phục vụ ngắt ngoài 0. Do 2 tác động chuông
và tác động ấn phím là bất thường không theo qui luật, do đó
phải sử dụng chương trình phục vụ ngắt tức khi có tác động mới
xử lí. Nếu không chương trình sẽ ở vòng lặp lại chương trình
chính để đợi.
II. CHƯƠNG TRÌNH PHỤC VỤ NGẮT 1.EXT1ISR
1. Lưu đồ giải thuật :
BEGIN
KIỂM TRA
CÓ CHUÔNG ?
R6 = 0 ? S
Đ
DE
LAY 1S
CẤM 2 NGẮT 0 VÀ 1
LCALL DELAY 20S
ĐÓNG TẢI GIẢ
R5 = 30

LCALL RESET_MT8880
LCALL DTMF
CHO PHÉP NGẮT 0
DELAY 1S
MỞ TẢI GIẢ
R6
GIẢM R6
S
GIAÛM R5
R5 = 0 ?
Ñ
RETI
2. Giải thích:
Khi tổng đài gởi tín hiệu chuông tới, chân INT1 xuống mức
thấp tác động vào vi điều khiển gọi chương trình phục vụ ngắt 1,
chương trình này thoạt đầu cấm 2 ngắt: ngắt 0 và ngắt1, tức là
không cho sự tác động chuông và ấn phím cho tới khi cho phép
trở lại, nhằm tránh sự rối loạn. Sau đó chương trình vào vòng lặp
20giây xem có ai nhấc máy không? Nếu không thì tín hiệu
chuông vẫn còn. Chương trình sẽ kiểm tra tín hiệu này sau khi
đợi 20giây.
Nếu không có tín hiệu chuông, chương trình sẽ vào vòng
lặp 5giây cứ hễ 1 giây chương trình quay về kiểm tra lại và sau
khi lặp hết 5giây mà vẫn không có tín hiệu chuông thì chương
trình sẽ thoát về chương trình chính.
Nếu khi chương trình kiểm tra thấy còn chuông thì sẽ tác
động đóng tải giả nhấc máy, bằng cách cấp mức logic 1 ở chân
P1.4. sau đó cho phép ngắt không hoạt động và đi vào vòng lặp
30 giây để ấn phím. Khi 1 phím bất kì được nhấn thì chương
trình phục vụ ngắt 0 sẽ reset lại 30 giây để đợi 30giây tiếp theo

đó. Sau khi điều khiển ợi 30 giây kể từ lần ấn phím cuối cùng,
chương trình sẽ tắt kết nối thuê bao và sẽ thoát về chương trình
chính kết thúc chương trình phục vụ ngắt 1.

×