Các tín hiệu ra từ bộ cảm biến qua mạch 7432, khi có bất kỳ tín hiệu báo động nào từ bộ cảm biến sẽ có cạnh lên ở chân Clk của 7474, bình thường BD ở mức thấp và INT0 ở mức cao, khi có xung Clk thì BD ở mức cao và lúc này INT0 ở mức thấp. Ta dùng mạch nhớ 7474 để tránh trường hợp sự cố của bộ cảm biến do cháy gây ra.
98 trang |
Chia sẻ: oanh_nt | Lượt xem: 1598 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Hệ thống thiết bị báo cháy tự động qua mạng điện thoại, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
phép toàn bộ.
Ví dụ: Các ngắt từ timer được cho phép như sau:
SETB ET1 ; Cho phép ngắt từ timer 1.
SETB EA ; Đặt bit cho phép toàn bộ.
Ngắt Port nối tiếp có từ Logic OR của ngắt thu (RI) và phát (TI). Các bit cờ tạo các ngắt được tóm tắc trong bảng sau:
Ngắt
Cờ
Thanh ghi SER và vị trí bit
Bên ngoài 0
IE0
TCON.1
Bên ngoài 1
IE1
TCON.3
Timer 0
TF0
TCON.5
Timer 1
TF1
TCON.7
Port nối tiếp
TI
SCON.1
Port nối tiếp
RI
SCON.0
III. XỬ LÝ NGẮT (Processing Interrupt):
Khi ngắt xảy ra và CPU chấp thuận, chương trình chính ngắt quãng những hoạt động sau đây xảy ra:
+ Lệnh hiện hành hoàn tất việc thực thi.
+ Cất PC vào ngăn xếp.
+ Trạng thái ngắt hiện hành được cất vào bên trong.
+ Các ngắt bị chặn ở mức ngắt.
+ Nạp vào PC địa chỉ vector của ISR.
+ ISR thực thi.
Các vector ngắt (Interrupt Vectors):
Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi là vector ngắt. Nó là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt. Các vector ngắt được cho bảng sau:
Ngắt
Cờ
Địa chỉ vector
Reset hệ thống
RST
0000H
Bên ngoài 0
IE0
0003H
Timer 0
TF 0
000BH
Bên ngoài 1
IE 1
0013H
Timer 1
TF 1
001BH
Port nối tiếp
T1 hoặc R1
0023H
Bảng : Các vector ngắt
Khi “chỉ đến một ngắt”, cờ gây ra ngắt tự động bị xóa bởi phần cứng. Các ngoại lệ là RI và TI với các ngắt port nối tiếp và TF2, EXF2 với các Interrupt Timer. Vì có hai nguồn có thể cho mỗi ngắt này, không thực tế để CPU xóa cờ ngắt. Các bit này phải được kiểm tra trong ISR để xác định nguồn ngắt và cờ tạo ngắt sẽ được xóa bằng phần mềm.
IV. THIẾT KẾ CHƯƠNG TRÌNH DÙNG CÁC NGẮT:
Các ví dụ trong các mục trước đã không sử dụng các ngắt nhưng đã có vòng lặp đợi để kiểm tra các cờ báo tràn (TF0 hoặc TF1) hoặc các cờ thu và cờ phát Port nối tiếp (TI và RI). Vấn đề trong phương pháp này là thời gian thực thi có gía trị của CPU hoàn toàn không bị tiêu tốn trong việc đợi các cờ.
Khung đề nghị cho một chương trình phục vụ ngắt như sau:
ORS 0000H ; điểm vào Reset.
Ljmp main; các điểm vào ISR.
Org 0030H; điểm vào chương trình chính.
Main: chương trình chính bắt đầu.
Chương trình chính
Các điểm vào Reset
và ngắt
LJMP main
FFFFH
0030H
002fH
0000H
Hình : Tổ chức bộ nhớ khi dùng các ngắt
Lệnh thứ nhất nhảy tới địa chỉ 0030H, vừa trên các vị trí mà các ISR bắt đầu. Như được vẽ hình sau, chương trình chính bắt đầu ở địa chỉ 0030H.
1.Chương trình phục vụ ngắt có kích thước nhỏ:
Nếu nguồn ngắt được sử dụng, ví dụ timer 0, có thể sử dụng khung sau:
ORS 000H; Reset
LJMP MAIN
ORG 000BH; điểm vào time 0
TOIRS: ; ISR cho time 0 bắt đầu.
RETI; quay về chương trình chính.
MAIN: Chương trình chính.
Nếu sử dụng nhiều ngắt phải đảm bảo là chúng phải bắt đầu từ vị trí đúng và không chạy qua ISR kế. Vì chỉ có một ngắt được sử dụng trong ví dụ trên, chương trình chính có thể bắt ngay sau lệnh RETI.
2. Các chương trình phục vụ ngắt có kích thước lớn:
Nếu ISR dài hơn 8 byte, có thể cần chuyển nó tới một nơi nào đó trong bộ nhớ chương trình hoặc có thể để nó đi lố qua điểm vào của ngắt kế. Tiêu biểu là ISR bắt đầu với lệnh nhảy đến vùng nhớ khác ở đó có thể mở rộng chiều dài các ISR. Ví dụ lúc này chỉ xét timer 0, có thể sử dụng khung sau:
ORS 000H; Reset
LJMP MAIN
ORG 000BH; các vector ngắt tiếp theo.
MAIN:
TOISR: ; ISR cho time 0.
RETI: ; quay về chương trình chính.
Để đơn giản chương trình chỉ làm việc một lúc ban đầu. Chương trình khởi động Timer, Port nối tiếp và các thanh ghi ngắt cho thích hợp và rồi không làm gì cả. Công việc được hoàn toàn làm trong ISR. Sau các khởi động, chương trình chứa các lệnh sau:
HERE: SJMP HERE
Hay dạng viết gắn gọn:
SJMP
Khi ngắt xảy ra, chương trình chính bị ngắt quãng tạm thời trong khi ISR thực thi. Lệnh RETI ở cuối ISR trả điều khiển về chương trình chính và nó tiếp tục không làm gì cả. Trong nhiều ứng dụng điều khiển, nhiều công việc thật ra được thực hiện hoàn toàn trong ISR.
Vì sử dụng ngắt, nên lệnh SJMP (HERE:SJMP HERE) có thể được thay thế bằng các lệnh thực hiện công việc khác trong ứng dụng.
D. TẬP LỆNH CỦA mC8051:
I. CÁC CHẾ ĐỘ ĐÁNH ĐỊA CHỈ:
1. Địa chỉ thanh ghi (Register Addressing):
Mã lệnh
n
n
n
mC8051 có bốn bank thanh ghi, mỗi bank thanh ghi có 8 thanh ghi đánh từ R0 đến R7. Tại mỗi thời điểm chỉ có một bank thanh ghi được tích cực. Muốn chọn bank thanh ghi nào ta chỉ cần gán các bit nhị phân thích hợp vào RSI(PSW.4) và PRO(PSW.3) thanh ghi trạng thái chương trình (PSW).
Địa chỉ thanh ghi.
2. Địa chỉ trực tiếp (Direct Addressing):
Địa chỉ trực tiếp
Mã lệnh
Trong chế độ này, các thanh ghi bên trong mC8051 được đánh địa chỉ trực tiếp bằng 8 bit địa chỉ nằm trong byte thứ hai của mã lệnh.
Địa chỉ trực tiếp
Dù vậy trình tự hợp dịch cho phép gọi tên các thanh ghi có chức năng đặc biệt (có địa chỉ trực tiếp từ 80H đến FFH). Ví dụ, Port cho Port 0, TMOD cho thanh ghi chế độ Timer,…
3. Địa chỉ gián tiếp (Indirect Addressing):
Mã lệnh
i
RO và RI được dùng để chỉ địa chỉ ô nhớ mà tác động đến. Người ta qui ước dùng dấu @ trước RO và RI
Địa chỉ gián tiếp
4. Địa chỉ tức thời:
Người ta dùng dấu # trước toán hạng tức thời. Các toán hạng đó có thể là một hằng số, một ký số hay một biểu thức toán học… Trình hợp dịch sẽ tự động tính toán và thay thế dữ liệu trực tiếp vào mã lệnh.
Mã lệnh
Dữ liệu tức thời
Địa chỉ tức thời
5. Địa chỉ tương đối (Relative Addessing):
Địa chỉ tương đối được dùng trong các lệnh nhảy. mC8051 dùng giá trị 8 bit có dấu để cộng thanh đếm chương trình (PC). Tầm nhảy của lệnh này trong khoảng từ –128 đến 127 ô nhớ. Trước khi cộng, thanh ghi PC sẽ tăng đến địa chỉ của lệnh nhảy rồi tính toán địa chỉ offset cần thiết để nhảy đến địa chỉ yêu cầu. Như vậy địa chỉ mới là địa chỉ tương đối so với lệnh kế chứ không phải lệnh nhảy. Thường lệnh này có liên quan đến nhãn được định nghĩa trước.
Mã lệnh
offset tương đối
Địa chỉ tương đối
6. Địa chỉ tuyệt đối (Absolute Addessing):
Mã lệnh
offset tương đối
A10
A15
A11
A10
A0
Xác định trang mã
Xác định địa chỉ tương đối trong mã
Địa chỉ tuyệt đối dùng trong các lệnh ACALL và AJMP. Các lệnh 2 Byte dùng để rẽ nhánh vào một trang 2 Kbyte của bộ nhớ chương trình bằng cách cấp 11 bit địa chỉ thấp (A0..A10) để xác định địa chỉ đích trong trang mã. Còn 5 bit cao của địa chỉ đích (A11..A15) chính là 5 bit cao hiện hành trong thanh ghi đếm chương trình. Vì vậy, địa chỉ của lệnh theo saulệnh rẽ nhánh và địa chỉ đích của lệnh rẽ nhánh cần phải cùng trang mã 2KByte (có cùng 5 bit địa chỉ cao).
Địa chỉ tuyệt đối
7. Địa chỉ dài (Long Addressing):
Địa chỉ dài dùng cho lệnh LCALL và LJMP. Các lệnh này chiếm 3 byte và dùng 2 byte sau (byte 2 và byte 3) để xác định địa chỉ đích của lệnh (6bit). Ưu điểm của lệnh nàylà có thể sử dụng trong toàn vùng nhớ 64KB.
Mã lệnh
A15-A8
A7-A0
Địa chỉ dài
8. Địa chỉ tham chiếm:
PC hoặc DPTR
ACC
Địa chỉ được tác động
Offset
Địa chỉ cơ bản
+
=
Địa chỉ tham chiếu dùng một thanh ghi cơ bản (hoặc thanh ghi đếm chương trình PC hoặc thanh ghi con trỏ dữ liệu DPTR) và địa chỉ offset (trong thanh ghi tích lũy A) để tạo địa chỉ được tác động cho các lệnh JMP hoặc MOVC.
Địa chỉ tham chiếu
II. KHẢO SÁT TẬP LỆNH 8051:
1. Các nhóm lệnh:
Nhóm lệnh xử lý dữ liệu: tác động lên dữ liệu theo nhiều cách gồm:
Lệnh số học.
Lệnh luận lý.
Lệnh so sánh.
Lệnh dịch.
Lệnh đặc biệt.
Nhóm lệnh truyền dữ liệu: di chuyển từ nơi này sang nơi khác.
Lệnh truyền bộ nhớ.
Lệnh xuất nhập.
Lệnh ngăn xếp.
Nhóm lệnh kiểm soát chương trình: chuyển điều khiển từ nơi này sang nơi khác để đạt đến lệnh mong muốn:
Lệnh nhảy không điều kiện.
Lệnh nhảy có điều kiện.
Lệnh gọi chương trình con.
Lệnh dừng và không hoạt động.
Nhóm lệnh kiểm soát trạng thái: nhằm thay đổi tình trạng của mạch thiết kế mà không ảnh hưởng đến dữ liệu hay thứ tự thực hiện lệnh.
2. Các lệnh số học:
a. Lệnh cộng: ADD A,7FH ( định vị trực tiếp)
ADD A,@RO ( định vị gián tiếp)
ADD A,R7
b. Lệnh nhân: MUL A,B
Sẽ nhân các giá trị không dấu 8bit ở thanh ghi A và thanh ghi B kết quả là 16 bit đem các vào phần 8bit thanh ghi Avà phần cao 8bit ghi thanh B.
c. Lệnh chia: DIV A,B
d. Các lệnh luận lý:
AND A,55H (định vị trực tiếp)
AND A,@RO (định vị gián tiếp)
AND A,R6 (định vị thanh ghi)
AND A,#33H (định vị tức thời)
e. Nhóm lệnh truyền dữ liệu:
Truyền bên trong bộ nhớ:
Dạng lệnh: MOV ,
Dạng lệnh trao đổi dữ liệu cho nhau: XCH A,
Truyền bộ nhớ ngoài:
Các lệnh luận lý xử lý trên bit:
Lệnh SETB P1.7 ( lập mức logic1 ở bit 7 cổng 1)
Lệnh CLR P1.7 ( lập mức logic 0 ở bit 7 cổng 1)
Lệnh di chuyển dữ liệu một thanh ghi cờ đến cổng.
MOV C, FLAG
MOV P1.0,C
Nhóm lệnh rẽ nhánh chương trình:
Lệnh nhảy không điều kiện.
Lệnh RETI trở về từ chuơng trình phục vụ ngắt.
CHƯƠNG III: KHẢO SÁT IC THU PHÁT TONE MT8880:
MT8880 là một IC thu phát DTMF trọn bộ kèm theo một bộ lọc thoại (Call Progress Filter). Bộ thu DTMF dựa trên kỹ thuật chuẩn của IC MT8870, còn gọi là bộ phát DTMF sử dụng phương pháp biến đổi D/A biến dung (Switched Capacitor) cho ra tín hệu DTMF chính xác, ít nhiễu. Các bộ đếm bên trong giúp hình thành chế độ Brust Mode nhờ vậy các cặp tone xuất ra với thời hằng chính xác. Bộ lọc Call Progress cho phép bộ vi xử lý phân tích các tone trạng thái đường dây. Bus chuẩn của nó kết hợp MPU và đặc biệt thích hợp họ 6800 của Motorola. MT8880 có 5 thanh ghi bên trong ể giao tiếp với mP, có thể chia làm 3 loại:
Nhận phát data: 2 thanh ghi.
Thanh ghi trạng thái.
Nhận từ điều khiển: 2 thanh ghi.
I. MÔ TẢ CHỨC NĂNG:
IC phát tone MT8880 bao gồm bộ thu DTMF chất lượng cao (kèm bộ khuếch đại) và một bộ tạo DTMF sử dụng BUST COUNTER giúp cho việc tổng hợp đóng ngắt tone được chính xác. Ngoài ra ta có thể chọn chế độ CALL PROGRESS để giúp phát hiện các tần số nằm trong giải thông thoại. Đó là các tín hiệu trạng thái đường dây.
II. CẤU HÌNH NGÕ VÀO:
Thiết kế đầu vào của MT8880 cung cấp một bộ khuếch đại OP-AMP ngõ vào vi sai cũng như một ngõ vào VREF để điều chỉnh thiên áp cho đầu vào tại VDD/2. Chân GS giúp nối ngõ ra bộ khuếch đại với ngõ vào qua một điện trở ngoài để điều chỉnh độ lợi.
1. Mạch STEERING:
VDD
St/GT
Est
MT8880
R1
C1
VDD
Hình 5.2: Mạch steering
vc
Trước khi thu nhận một cặp tone đã giải mã, bộ thu phải kiểm tra xem thời hằng của tín hiệu có đúng không. Việc kiểm tra này được thực hiện bởi một bộ RC mắc ngoài. Khi Est lên HIGH làm cho Vc tăng lên khi tụ xả. Khi mà Est vẫn còn HIGH trong một thời đoạn hợp lệ (tone) thì Vc tiến tới mức ngưỡng Vtst của logic Steering để nhận một cặp tone và chốt 4 bit mã tương ứng với nó vào thanh ghi Receive Data Register. Lúc này, đầu ra GT được kích hoạt và đẩy Vc lên tới VDD. Cuối cùng sau một thời gian delay ngắn cho phép việc chốt Data thực hiện xong thì cờ của mạch Steering lên HIGH báo hiệu rằng cặp tone thu được đã được lưu vào thanh ghi.
Dữ liệu thu được sẽ đi ra Databus (2 chiều) khi thanh ghi Receive Data được đọc. Mạch steering lại hoạt động nhưng theo chiều ngược lại để kiểm tra khoảng dừng giữa hai số được quay. Vì vậy bộ thu vừa bỏ qua tín hiệu quá ngắn không hợp lệ vừa không chấp nhận các khoảng ngắt quá nhỏ không thể coi là khoảng dừng giữa các số. Chức năng này, cũng như khả năng chọn thời hằng Steering bằng mạch ngoài cho phép người thiết kế điều chỉnh hoạt động cho phù hợp với các đòi hỏi khác nhau của từng ứng dụng.
2. BỘ LỌC THOẠI:
Mode CALL PROGRESS khi được chọn thì cho phép kiểm tra các tone khác nhau thể hiện trạng thái đường dây. Đầu vào của Call Progress và mode tone DTMF là chung nhưng tone Call Progress chỉ có thể kiểm tra nếu ta chọn mode CP. DTMF tone lại không thể nhận dạng được nếu ta chọn mode CP.
Các tần số đưa đến đầu vào (+IN và –IN) nằm trong giới hạn băng thông chấp nhận của bộ lọc (280-550 Hz) sẽ đưa qua bộ so sánh có độ lợi cao và đến chân IRQ/CP. Dạng sóng ở đầu ra tạo bởi mạch trigger có thể phân tích bởi vi xử lý để xác định tính chất của các tone trạng thái đường dây. Các tần số trong vùng loại bỏ sẽ không được kiểm tra và như vậy sẽ không có tín hiệu nào ở chân IRQ/CP khi gặp các tần số này.
Bộ phát DTMF trong MT8880 có khả năng tạo tất cả 16 cặp tone DTMF chuẩn với nhiễu tối thiểu và độ chính xác cao. Tất cả tần số này đều lấy từ dao động thạch anh 3.579545 Mhz mắc ngoài. Dạng sóng sin của từng tone được tổng hợp số bằng cách sử dụng bộ phận chia hàng và cột tổng hợp được, và bộ biến đổi D/A biến dung. Các tone hàng và cột được trộn lại và lọc để cho ra tín hiệu DTMF với ít hài và độ chính xác cao. Để phát một tín hiệu DTMF thì dữ liệu tương ứng với dạng mã ở bảng (.1) sẽ phải được viết vào thanh ghi Transmit Data. Chú ý rằng mã phát này tương ứng với mã nhận. Các tone riêng lẻ được phân thành hai nhóm là: nhóm thấp và nhóm cao (flow và high).
Như bảng sau, các số trong nhóm thấp là 697, 770, 852 và 941 Hz. Theo tiêu chuẩn thì tỷ số biên độ của nhóm cao với nhóm thấp là 2dB để tránh suy hao tần số cao trên đường truyền.
Bảng mã hóa các tín hiệu quay số DTMF:
flow
fhigh
Digit
D0
D1
D2
D3
697
1209
1
0
0
0
1
697
1336
2
0
0
1
0
697
1477
3
0
0
1
1
770
1209
4
0
1
0
0
770
1336
5
0
1
0
1
770
1477
6
0
1
1
0
852
1209
7
0
1
1
1
852
1336
8
1
0
0
0
852
1477
9
1
0
0
1
941
1029
0
1
0
1
0
941
1336
*
1
0
1
1
941
1477
#
1
1
0
0
697
1663
A
1
1
0
1
770
1663
B
1
1
1
0
852
1663
C
1
1
1
1
941
1663
D
0
0
0
0
3. BURST MODE:
Một ứng dụng điện thoại bất kỳ đều đòi hỏi tín hiệu DTMF được tạo ra với một thời hằng hoặc được quy định bởi ứng dụng đó hoặc bởi hệ thống chuyển mạch hiện có. Thời hằng DTMF chuẩn có thể được tạo ra bằng cách sử dụng Burst Mode. Bộ phát có khả năng tổng hợp các tone có khoảng tắt/mở trong thời gian định trước. Thời gian này là 51 ms ± 1ms và là chuẩn cho bộ quay số tự động và tổng đài. Sau khi khoảng tắt/mở tone đã được phát đi, 1 bit tương ứng sẽ được lập trong thanh ghi trạng thái để biểu thị rằng bộ phát đã sẵn sàng cho data kế. Thời hằng 51 ms ± 1ms đóng /mở tone có được khi ta chọn mode DTMF.
Tuy nhiên khi CP mode (Call Progress Mode) được chọn thì một thời hằng đóng ngắt thứ hai là 102ms ± 2ms sẽ được sử dụng. Khoảng thời hằng dài hơn này sẽ hữu ích khi thời gian xuất hiện tone là 51 ms. Chú ý rằng khi CP mode và burst mode cùng được chọn thì MT8880 chỉ hoạt động ở chế độ phát mà thôi.
4. Tạo Tone Đơn: (Single Tone)
Chế độ tạo tone đơn được dùng khi ta chỉ muốn tạo một tone nào đó trong nhóm thấp hoặc cao. Chế độ này dùng để kiểm tra thiết bị DTMF và để tính toán nhiễu, và được chọn thanh ghi Control Register B.
5. Mạch Clock DTMF:
Mạch clock đưọc sử dụng kết hợp với tần số màu chuẩn tivi có tần số cộng hưởng là 3.579545 Mhz. Một nhóm IC MT 8880 có thể nối với nhau dùng chung một dao động thạch anh.
6. Bộ giao tiếp với vi xử lý:
MT8880 sử dụng một bộ giao tiếp vi xử lý cho phép điều khiển một cách chính xác với chức năng thu và phát. Có tổng cộng 5 thanh ghi chia làm ba loại: Thanh ghi dữ liệu thu /phát, thanh ghi điều khiển thu /phát và thanh ghi trạng thái. Có hai thanh ghi dữ liệu: thanh ghi Receive data chứa mã xuất ra của cặp tone DTMF hợp lệ gần nhất và là thanh ghi chỉ đọc. Data đưa vào thanh ghi Transmith Data sẽ qui định cặp tone nào được phát đi, Data chỉ có thể được vào thanh ghi này.
Thanh ghi nhận data chứa mã lệnh xuất của giá trị cuối cùng cặp tone DTMF được giải mã và chỉ là thanh ghi đọc data vào. Tín hiệu data vào trong thanh ghi phát sẽ được định rõ với cặp tone nào mà được phát sinh ra. Data chỉ có thể được viết với thanh ghi phát.
Hai thanh ghi điều khiển CRA và CRB chỉ chiếm chỗ trong một khoảng địa chỉ tương ứng ghép ghi với CRB có thể được thực hiện bằng cách đặt dành riêng bit trong CRA phép ghi tiếp theo tới địa chỉ tương tự sẽ được trực tiếp đưa tới CRB và tiếp theo sau cho chu kỳ ghi sẽ được trực tiếp trở lại.
Cách truy cập thanh ghi:
RSO
R/W
CHỨC NĂNG
0
0
Ghi vào thanh ghi Data phát
0
1
Đọc từ thanh ghi data thu
1
0
Ghi vào thanh ghi điều khiền
1
1
Đọc từ thanh ghi trạng thái
Thanh ghi trạng thái:
BIT
TÊN
CỜ TRẠNG THÁI LẬP
CỜ TRẠNG THÁI XOÁ
B0
IQR
Ngắt xuất hiện. B1 hoặc B2 đã được lập.
Ngắt chưa kích hoạt. Bị xóa sau khi thanh ghi trạng thái đã được đọc.
B1
THANH GHI
DỮ LIỆU PHÁT RỖNG (CHỈ TRONG BURST MODE)
Thời hằng ngắt tone đã kết thúc và bộ phát đang chờ dữ liệu kế tiếp.
Bị xóa sau khi thanh ghi trạng thái được đọc hay khi chọn None_Burst Mode.
B2
THANH GHI DỮ LIỆU THU ĐẦY
Dữ liệu hợp lệ đang nằm trong thanh ghi dữ liệu thu.
Bị xóa sau khi thanh trạng thái được đọc.
B3
DELAY STEERING
Được lập khi phát hiện thấy sự không xuất hiện không hợp lệ của tín hiệu DTMF.
Bị xóa sau khi phát hiện một tín hiệu DTMF hợp lệ.
III. Ý NGHĨA CÁC CHÂN:
Sơ đồ chân IC MT8880
PIN
TÊN
MÔ TẢ
1
IN+
Chân vào không đảo của OP.AMP
2
IN-
Chân vào đảo của OP.AMP.
3
GS
Chọn độ lợi cho bộ khuếch đại OP.AMP.
4
VREF
Đầu ra điện áp tĩnh VDD/2 được dùng để cân bằng tĩnh ở đầu vào.
5
VSS
Điện áp âm cung cấp.
6
OSC1
Đầu vào bộ dao động thạch anh.
7
OSC2
Dao động thạch anh 3.579545 MHz được nối giữa OSC1 và OSC2 tạo thành dao động dòng điện ở bên trong vi mạch.
8
TONE
Ngõ ra tone DTMF.
9
R/W
Chân để CPU điều khiển trực tiếp đọc viết data.
10
CS
Chip Select.
11
RSO
Chân chọn Register.
12
2
Xung đồng hồ hệ thống.
13
IRQ /CP
Yêu cầu ngắt gởi tới MPU (Chân cực máng hở). Khi Mode Call Progress (CP) chế độ ngắt interrupt cùng được chọn, chân IRQ/CP sẽ đưa ra dạng sóng hình chữ nhật đặc trưng cho tín hiệu đầu vào OP.AMP với điều kiện tín hiệu đầu vào này phải nằm trong dải thông của bộ lọc thông dải.
14 ¸ 17
D0-D3
Data Bus
18
Est
(Early Steering Output). Cho ra mức logic 1 khi phát hiện được một cặt tone hợp lệ. Bất kì trạng thái nào không có tín hiệu hợp lệ đều cho ra logic 0.
19
St/GT
(Sreering Output/ Guard Time Output 2 chiều). Một cặp điện áp lớn hơn VESt khi xuất hiện tại ST làm cho thiết bị ghi nhận cặp tone và cập nhất bộ chốt ngõ ra. Một điện áp nhỏ hơn VESt giải phóng thiết bị để thu nhận cặp tone mới. Ngõ ra GT làm nhiệm vụ reset mạch định thì bên ngoài. Trạng thái cũa nó là một hàm của Est và điện áp tại chân St.
20
VDD
Nguồn cung cấp dương.
CHƯƠNG IV: GIỚI THIỆU PHƯƠNG THỨC LÀM VIỆC CỦA TỔNG ĐÀI VÀ CÁC THUÊ BAO
Nhằm hiểu rõ, áp dụng tốt vào việc thiết kế mạch tự động quay số điện thoại, ta đi vào tìm hiểu một vài đặt tính của điện thoại và hoạt động giữa tổng đài và các thuê bao.
- Đặc tính của điện thoại:
Băng thông làm việc 300Hz ¸ 3400 Hz
Tỉ số S/N ³ 29,5 dB
Tổng trở điện thoại 600W
Dòng điện qua điện thoại 5¸ 30 mA
Điện áp khi gác máy 48V DC, khi nhấc máy 10V DC.
- Hệ thống âm hiệu giao tiếp giữa tổng đài và thuê bao:
Tín hiệu mời quay số (Dialtone): là tín hiệu sin tần số f=425± 25Hz, biên độ 2VRMS trên nền DC, phát liên tục:
Tín hiệu Dial tone
0,5s
0,5s
- Tín hiệu báo bận (Busy tone): là tín hiệu Sin tần số f=425± 25Hz, biên độ 2VRMS trên nền DC, phát ngắt quãng 0,5s có 0,5 không.
Tín hiệu hồi âm chuông (RINGBACK TONE):là Tín hiệu sin tần số f=425± 25Hz, biên độ 2VRMS trên nền DC 10v, phát ngắt quãng 2s có 4s không
4s
2s
10V
Tín hiệu Ringback tone
4s
2s
48V
- Tín hiệu chuông (ring tone)là tín hiệu sin tần số f=25 Hz, biên độ VPP=75V trên nền DC 48v, phát ngắt quãng 2s có 4s không
Tín hiệu chuông
Phương thức quay số tone DTMF và PULSE: Ở bảng 1 khi có một phím được ấn thì trên đường dây sẽ xuất hiện 2 tấn số khác nhau thuộc nhóm fthấp và fcao. Phương pháp tần ghép này chống nhiễu tốt hơn, ngoài ra dùng dạng tone DTMF sẽ tăng được tốc độ quay nhanh gấp 10 lần so với việc thực hiện quay số PULSE. Mặt khác phương pháp sẽ sử dụng được một số dịch vụ cộng thêm tổng đài.
10v
c
a
b
48v
0v
Phương pháp quay số pulse: tín hiệu quay số là chuỗi xung vuông, tần số chuỗi dự án = 10Hz,số điện thoại bằng số xung ra, riêng số 0 sẽ là 10 xung, biên độ ở mức cao là 48v, ở mức thấp là 10v, dạng sóng được cho ở hình dưới:
Dạng sóng quay số kiểu PULSE
a: chu kỳ làm việc (thời gian 48v)
b: thời gian ở 10v, ta có a/b = 66/33 = 2
c: khoảng thời gian giữa 2 lần quay số trong một cuộc gọi
Số xung trên một giây 10 – 20 pulse/s
Quay số kiểu Pulse chậm nên hiện nay ít được sử dụng
Phím số
Nhóm fthấp
Nhóm fcao
1
697Hz±1,5%
1209Hz±1,5%
2
697Hz±1,5%
1336Hz±1,5%
3
697Hz±1,5%
1447Hz±1,5%
4
770Hz±1,5%
1209Hz±1,5%
5
770Hz±1,5%
1336Hz±1,5%
6
770Hz±1,5%
1447Hz±1,5%
7
852Hz±1,5%
1209Hz±1,5%
8
852Hz±1,5%
1336Hz±1,5%
9
852Hz±1,5%
1447Hz±1,5%
*
941Hz±1,5%
1029Hz±1,5%
0
941Hz±1,5%
1336Hz±1,5%
#
941Hz±1,5%
1447Hz±1,5%
A
697Hz±1,5%
1336Hz±1,5%
B
770Hz±1,5%
1663Hz±1,5%
C
852Hz±1,5%
1663Hz±1,5%
D
941Hz±1,5%
1663Hz±1,5%
Bảng: Các cặp tần số DTMF
- Phương thức làm việc giữa các tổng đài và các thuê bao:
+ Nhận dạng thuê bao máy gọi nhấc máy: tổng đài nhận dạng trạng thái của thuê bao thông qua sự biến đổi tổng trở mạch vòng của đường dây. Bình thường khi thuê bao ở trạng thái gác máy thì tổng trở đường dây thì vô cùng lớn (hở mạch). Khi thuê bao nhấc máy (offhook) điện trở mạch vòng còn 150W-1500W (thường là 600W) đó là tổng trở vào của điện thoại. Tổng đài nhận biết được sự thay đổi này thông qua bộ cảm biến trạng thái đường dây thuê bao.
+ Khi thuê bao nhấc máy thì tổng đài sẽ cấp tín hiệu Dial Tone trên đường dây đến thuê bao, chỉ khi nhận được tín hiệu này thì thuê bao mới được quay số, có thể quay số dưới dạng DTMF và PULSE.
+ Tổng đài nhận các số do thuê bao gởi đến và kiểm tra, nếu số đầu nằm trong tập thể số thuê bao của tổng đài thì tổng đài sẽ phục vụ cuộc gọi nội đài. Ngược lại nó phục vụ cuộc gọi liên đài thông qua trung kế giữ toàn bộ phần định vị quay số tổng đài có thuê bao bị gọi, nếu số đầu là mã thì chức năng đặc biệt của tổng đài sẽ thực hiện các chức năng phục vụ thuê bao.
+ Nếu thuê bao bị gọi thông thoại hoặc các đường dây kết nối bị bận thì tổng đài cấp tín hiệu BUSY TONE ngược về cho thuê bao gọi.
+ Khi thuê bao bị gọi nhấc máy thì tổng đài biến tín hiệu này và cắt dòng chuông kịp thời để tránh hư hao cho cho thuê bao, đồng thời cắt Ring Back Tone đến thuê bao bị gọi và kết nối thông thoại cho 2 thuê bao.
+ Khi thuê bao đang thông thoại có một thuê bao gác máy, tổng đài ngắt thông thoại 2 thuê bao và cấp Busy Tone cho thuê bao còn lại, giải tỏa các thiết bị phục vụ thông thoại. Khi thuê bao còn lại gác máy tổng đài ngắt Busy Tone và kết thúc chương trình phục vụ thuê bao.
PHẦN II: THIẾT KẾ PHẦN CỨNG
KHỐI DÒ CẢM BIẾN
BÁO ĐỘNG TẠI CHỔ
KHỐI XỬ LÝ TRUNG TÂM
CPU
KHỐI GIAO TIẾP ĐƯỜNG DÂY
ĐƯỜNG DÂY
LINE
KHỐI TIẾNG NÓI
CHƯƠNG I: SƠ ĐỒ KHỐI
Chức năng các khối:
Hệ thống cảm biến: là thiết bị đầu vào của hệ thống, nó quyết định sự chính xác của mạch, gồm các cảm biến nhiệt và khói để phát hiện sự cố.
Khối báo động tại chỗ: tạo tiếng còi để báo động.
Khối tiếng nói: dùng để xử lý các tín hiệu và điều khiển toàn bộ hoạt động của hệ thống.
Khối giao tiếp đường dây: là bộ phận giao tiếp giữa mạch và mạng điện thoại.
CHƯƠNG II: KHỐI BÁO CHÁY
A. THIẾT KẾ MẠCH CẢM BIẾN:
I. BỘ CẢM BIẾN NHIỆT:
LM335 là một sensor thích hợp để cảm nhận sự thay đổi cùa nhiệt độ, LM335 hoạt động như một zener có điện áp đánh thủng tỉ lệ thuận với nhiệt độ tuyệt đối với độ gia tăng 10mV/oK, LM335 hoạt động trong phạm vi dòng từ 400mA cho tới 5mA mà không thay đổi đặc tính, LM335 có sai số nhỏ hơn 10C trên tầm 1000C, đặc biệt có điện áp ngõ ra biến thiên tuyến tính theo nhiệt độ.
KHẾCH ĐẠI VI SAI
SO SÁNH
CẢM BIẾN NHIỆT
T/HXLL
1. Sơ đồ khối:
2. Thiết kế mạch:
a. Cảm biến LM335:
Điện áp ra LM335 là: (1)
Suy ra:
Chọn dòng làm việc cho LM335 là 1mA.
Vậy:
Biến trở VR1 dùng để chỉnh giá trị offset cho LM335 và VR2 dùng để điều chỉnh điện áp ra sao cho thỏa công thức (1):
Chọn VR1 =VR2= 20kW
Tụ C1 dùng để lọc gai xung nhiễu, chọn C1 = 100uF
Ở đây ta dùng mạch đệm TL082 để ngăn cách không cho tải ảnh hưởng đến đầu ra của mạch cảm biến.
b. Mạch tạo áp chuẩn:
Vì điện áp của mạch cảm biến tỷ lệ với nhiệt độ k do đó để tính theo độ C ta phải trừ đi một lượng là 2,73V, việc này nhờ vào mạch tạo áp chuẩn.
Chọn DZ1 là Zenner ổn áp 3v và I=25mA
Suy ra R1: R1 = (5-3)/0,01 = 200W
Chọn R1 = 220W
DZ1 ổ áp ở giá trị 3V, để tạo được điện áp 2,73V ta chỉnh biến trở VR3: Chọn VR3 = 20KW
Tụ C2 dùng để lọc xung chỉnh nhiễu, chọn C2 = 10mF. Ta dùng mạch đệm không đảo ể ngăn ảnh hưởng của tải.
Mạch khuếch đại vi sai:
Ta có:
Chọn hệ số khuếch đại của mạch là AV = 5.
Chọn R3 = R4 = R5 = R6 = 2.2kW
Nếu ta chỉnh VR4 = VR5 thì:
Vậy để hệ số khuếch đại AV = 5 thì:
Lúc đó: V01 = 5(2,73 +0,01T-2,73)
ĩV01 = 0,05T; với T là nhiệt độ môi trường.
d. Mạch so sánh:
Ở nhiệt độ bình thường khoảng 25oC thì điện áp ra V0 là:
V01 = 0,05 x 25 = 1,25V
Lúc có cháy nhiệt độ tăng lên khoảng 50oC thì:
V01 = 0,05 x 50 = 2,5V
Để tạo ra một tín hiệu báo cháy ta cho qua một bộ so sánh với mức ngưỡng điện áp so sánh là 2,5V nối vao ngõ trừ của Opamp.
Zenner DZ2 dùng để tạo mức ngưỡng điện áp 2,5v
Chọn DZ2 ổn áp ở 3v, có dòng Imax = 10mA
R9 = (5-3)/0,01 = 200W
Chọn R9 = 220W
Biến trở VR6 để chỉnh mức điện áp so sánh, chọn VR6 = 10kW
Điện trở R7 và R8 để hạn dòng cho transistor Q1, chọn R7 = R8 = 5,1kW.
v Khi không có cháy V01 < Vref, opamp bảo hòa âm transistor Q1 dẫn, lúc đó: Vbđ = 0.
v Khi cháy V01 > Vref,opamp bão hòa dương transistor Q1 tắt,Vbđ = 1.
II. BỘ CẢM BIẾN KHÓI:
Sơ đồ khối:
2.Thiết kế mạch:
Bộ cảm biến khói có nhiệm vụ biến đổi tín hệu khói thành tín hiệu điện, trong phần thiết kế này ta dùng quang trở. Như ta đã biết hoạt động của quang trở là: khi có ánh sáng chiếu vào đện trở của nó giảm đi đáng kể so với khi không được chiếu sáng.
Chọn LED có dòng 20mA và phát sáng có cường độ 10 lux và quang trở là LDR03 có đặc tuyến làm việc như hình vẽ.
10
Cường độ
1000
100
100K
10K
1K
lux
Ta có:
Chọn R10 =2,7K
Dưới cường độ sáng của LED là 10lux thì giá trị điện trở của quang trở là 20K.
Chọn V+=1v lúc chưa có cháy.
Vậy R11=100K –20K =80K
Khi có khói 20% lúc đó độsáng giảm còn 10lux ´ 20% bằng 2lux và giá trị quang trở tăng lên 100 K.
Ta chọn giá trị điện áp chuẩn so sánh tại ngõ trừ của opamp là 2,5V. Tức khi khói đạt 20% thì cảm biến cho tín hiệu báo động.
Chọn DZ3 là zener 3v có dòng Imax=25 mA
Chọn R12 =220
ChọnVR7 =10K
Điện trở R13và R14 để hạn dòng cho Q2
Chọn R13= R14= 4,7k
III. XỬ LÝ TÍN HIỆU VÀO:
Các tín hiệu ra từ bộ cảm biến qua mạch 7432, khi có bất kỳ tín hiệu báo động nào từ bộ cảm biến sẽ có cạnh lên ở chân Clk của 7474, bình thường BD ở mức thấp và INT0 ở mức cao, khi có xung Clk thì BD ở mức cao và lúc này INT0 ở mức thấp. Ta dùng mạch nhớ 7474 để tránh trường hợp sự cố của bộ cảm biến do cháy gây ra.
B. MẠCH BÁO ĐỘNG TẠI CHỖ:
Khi một đám cháy xảy ra, ngoài việc báo động bằng tiếng nói “có cháy, có cháy” được lưu trữ trong IC chuyên dùng, ta còn báo động bằng cói hụ hay chuông điện nhằm tập trung sự chú ý của mọi người.
1. Mạch tạo tiếng còi hú:
Trong mạch này ta sử dụng IC LM555 để tạo âm thanh phát ra có các âm sắc khác nhau. Tiếng cói hụ này tạo âm thanh nghe rất kích thích và thường được nhiều người sử dụng làm tín hiệu cảnh báo.
IC LM555 thứ 2 tạo thành mạch dao động âm cao, chọn tần số ra của LOA là 1KHz.
Ta có:
Chọn tụ C2 = 0,01mF
R3 = 56kW ; R2 = 4,7kW ; VR2 = 20kW
Tần số ra ở LOA ta có thể thay đổi nhờ biến trở VR2.
IC LM555 thứ 1 cũng lắp thành mạch dao động có tần số nhỏ được xác định bởi công thức:
Chọn C1 = 220mF
R1 = 1kW
VR1 = 20kW
Tần số này có thể thay đổi nhờ biến trở VR1. Xung lấy ra trên tụ C1 có dạng sóng răng cưa, chúng ta cho tín hiệu này tác động vào chân 5 của IC LM555 thứ 2, điều này làm điều chế tần số lên tín hiệu ra loa làm cho âm thanh ra có nhiều dạng âm sắc khác nhau.
C. KHỐI GIAO TIẾP:
v Relay 1 dùng để tạo tín hiệu nhấc máy, khi có tín hiệu báo động thì mC sẽ xuất một tín hiệu lập trạng thái nhấc máy giả để báo cho tổng đài biết mạch cần phục vụ.
Điện trở R1 dùng để hạn dòng cho transistor C1815.
Chọn R1 = 2,7kW
vRelay 2: khi máy bị gọi nhấc máy thì mC sẽ nhận biết và xuất tín hiệu điều khiển và đóng Relay 2.
Điện trở R2 dùng để hạn dòng cho transstor C1815.
Chọn dòng cho IB = 1mA ; RA = 4,7kW
v Cầu Diode có tác dụng chống đảo cực làm hư mạch.
v Diode Zener DZ1 và DZ2 dùng để bảo vệ cuộn dây biến áp và ổn áp đầu vào của mạch. Vì tín hiệu thoại có giá trị biên độ khoảng 2,5 RMS nên ta chọn DZ1 và DZ2 ổn áp 3v.
v Khi Relay 1 đóng, tổng đài cấp điện khoảng 10v DC vào mạch, transistor C828 qua điện trở hạn dòng R2 sẽ dẫn và tạo điện trở DC cho mạch chính bằng R3.
Chọn R2 = 4,7kW R3 = 470W
vTụ C2 có tác dụng ngăn đện áp DC cho mạch
Chọn C2 = 10mF
v Khi tổng đài cấp các tín hiệu trạng thái đường dây thì tụ C1 sẽ nối mass cực B của transistor C828, lúc này trở kháng AC của mạch chính bằng trở kháng vào biến áp.
1. Mạch khuếch đại âm thanh ra:
Tín hiệu âm thanh trước khi đưa lên đường dây đến máy bị gọi ta cho qua mạch khuếch đại.
Chọn hệ số khuếch đại của mạch là: AV0 = 5
Ta có:
R6 + VR1 = 5R5
Chọn R6 = 10kW ; R5 = 4,7kW ; VR1 = 20kW
Tụ C3 dùng để ngăn tín hiệu DC, chọn C3 = 10mF.
2. Mạch khuếch đại Tone vào:
Tín hiệu trên đường dây đến mạch nhận Tone đã bị suy hao. Vì vậy ta phải cho qua một mạch khuếch đại.
Chọn hệ số khuếch đại của mạch là: AV0 = 2
Ta có:
Chọn R13 = 4,7kW ; R14 = 4,7kW ; VR3 = 10kW
Tụ C3 dùng để ngăn tín hiệu DC, chọn C5 = 10mF.
3. Mạch khuếch đại TONE ra:
Chọn hệ số khuếch đại của mạch là: AV0 = 5
Ta có:
R15 + VR2 = 5R16
Chọn R16 = 2,2kW ; R15 = 4,7kW ; VR2 = 20kW
4.Mạch khử trắc âm:
Để tín hiệu ra không lẫn tín hiệu đầu vào ta dùng mạch khử trắc âm nhằm mục đích chỉ cho tín hiệu đi theo đường một chiều.
Chọn R7 = R8 = R10 = R11 = R12 = 10kW ; R9 = 100W
Ta có: V2 = -R8/R7 x V1 = -V1
V3 = V2 = -V1
Mặc khác: V4 = -R12/R11 x V3 – R11/R10 x V1 = -(V3 + V1)
Mà V3 = - V1 Vậy V4 = -(V1 – V1) = 0
D. MẠCH THU PHÁT TONE DTMF:
Cấu hình ngõ vào của MT8880 là một mạch khuếch đại đảo với hai điện trở là R18 và R19.
Ta chọn AV0 = 1 ; AV0 = R18/R19
Suy ra R18 = R19
Chọn R18 = R19 = 100kW
Để Timer của vi xử lý có thể phân biệt được dễ dàng giữa các tín hiệu bằng cách đếm số xung, ta cho tín hiệu này qua một mạch monostable tạo thành đường bao tín hiệu, ở đây ta sử dụng vi mạch 74123.
Chọn thời gian Mono T = 4 ms.
Ta có T = 0,28 x R21 x C8
0,005 = 0,28 x R21 x C8
Chọn C8 = 1mF
Suy ra R21 = 17kW, chọn R21 = 22kW.
Như vậy tín hiệu thu được sau khi qua mạch monotable là:
KHỐI GIAO TIẾP ĐƯỜNG DÂY
SƠ ĐỒ KHỐI HIỂN THỊ
SƠ ĐỒ KẾT NỐI BỘ NHỚ
MẠCH ĐIỀU KHIỂN
MẠCH BÁO ĐỘNG, MẠCH CẢM BIẾN, MẠCH PHÁT TIẾNG NÓI
PHẦN3: THIẾT KẾ CHƯƠNG TRÌNH
CHƯƠNG 1: NGUYÊN LÝ HOẠT ĐỘNG VÀ GIẢI THUẬT
Chương Trình Chính
-Trong cách thiết kế này ta sử dụng INTERRUPT0 và tín hiệu dùng để gây ra ngắt ngoài 0 là tín hiệu báo cháy, khi có cháy thì chân INT0 được tác động, lúc đó chương trình chính ngưng tất cả để phục vụ cho tín hiệu báo động. Khi không có ngắt chương trình phục vụ cho việc nạp số điện thoại.
Chương trình nạp số điện thoại:
- Chương trình này có nhiệm vụ nhập số điện thoại từ bàn phím vào ram có điạ chỉ 2000h.
- Số điện thọai nạp từ bàn phím có tối đa 10 số. Nếu phím nhận được có giá trị 00h sẽ kết thúc việc nạp số điện thoại từ bàn phím và khi nạp song 1 số điện thoại ta nhấn 0eh.
C. Chương trình quét phím:
Chương trình quét phím dùng xác định có phím nào nhấn hay không, chương trình quét từng cột một, đầu tiên là cột số 0, xem có hàng nào tích cực hay không nếu không thì qua cột kế, ngược lại thì lưu giá trị vào ACC.
D. Chương trình hiển thị:
Đầu tiên xác định địa chỉ của số điện thoại, xác định số chọn led và xuất ra port hiển thị, sau đó gọi chương trình đelay. Nếu trong quá trình hiển thị mà không có phím nào nhấn thì vẫn hiển thị số điện thoại vừ mới nạp vào, ngược lại thì quay về chương trình nạp số điện thoại.
E. Chương trình báo động
Chuơng trình thực hiện việc quay số điện thoại của máy bị gọi đã được nạp vào ram (gọi tối đa 2 số mỗi số gọi 3 lần), nếu máy bị gọi không bận thì phát tín hiệu báo động.
- Định số cuộc gọi và số lần gọi, xuất tín hiệu đóng relay1 tạo tín hiệu nhấc máy giả. Xét tín hiệu mời quay số nếu có thì quay số điện thoại thứ nhất, còn không lặp lại trạng thái gác máy chờ 2s gọi lại.
- Sau khi quay số ta xét trạng thái nhấc máy của máy bị gọi, nếu có nhấc thì xuất tín hiệu đóng relay 2 nối mạch phát tiếng nói báo động 40s, ngược lại thì lập trạng thái gác máy sau đó gọi lại. Nếu gọi 3 lần mà vẫn bận thì chuyển sang máy khác.
F. Chương trình xét dialtone:
Tín hiệu mời quay số do tổng đài cấp có tần số 425hz.
Khi MT8880 hoạt động ở CP mode thì tín hiệu đầu ra ở chân IRQ/CP là tín hiệu trạng thái đường dây nhưng đã qua mạch trigger để sửa dạng xung thành xung vuông. Sau khi qua mạch monostable với khoảng định thời 4ms thì số xung đếm được trong khoang thời gian 6s của tín hiệu dialtone là 0, ring back tone là 1 busytone là 5 xung.vì vậy ta dùng timer 0 để đếm số xung này để xác định tín hiệu trạng thái đường dây.
- Trước tiên khởi tạo MT8880 ở chế độ CP mode, timer0 để đếm xung. Gọi chương trình delay6s.
G. Chương trình xét bị gọi nhấc máy:
Sau khi quay số xong, trên đường dây xuát hiện 1 trong 3 tín hiệu là: busytone, ringbacktone, nhấc máy chương trình tực hiện những công việc sau:
- Khởi động MT8880 hoạt động ở chế độ lọc thoại.
- Khởi động timer0 để đếm xung.
H. Chương trình quay số:
Khi tổng đài cấp tín hiệu mời quay số thì chương trình quay số được thực thi.
- Khởi động MT 8880 ở chế độ CP mode và burstmode.
- Xác định địa chỉ số điện thoại đầu tiên.
- Nạp số điện thoại vào thanh ghi phát, sau đó kiểm tra, nếu thanh ghi phát đã phát xong (rỗng) thì quay số kế tiếp, nếu chưa rỗng thì xét lại. Nếu số điện thoại cuối cùng là 0eh thì quay về chương trình báo động.
CÁC LƯU ĐỒ GIẢI THUẬT
BEGIN
ĐẶT CHẾ ĐỘ HOẠT ĐỘNG CHO CÁC TIMER TIMER0: MODE 1
TIMER1: MODE 1
CHO PHÉP NGẮT NGOÀI 0
CÓ NGẮT
BÁO ĐỘNG
NẠP SỐ ĐIỆN THOẠI
TĂNG ĐIẠ CHỈ RAM TĂNG BIẾN ĐẾM X
X>10
RAM =RAM-X
HIỂN THỊ
GHI SỐ ĐIỆN THOẠI VÀO RAM
PHÍM 0E?
EXIT
TĂNG ĐIẠ CHỈ RAM
PHÍM 00?
NHẬN GIÁ TRỊ PHÍM
ENTER
ĐIẠ CHỈ RAM CHỨA SỐ ĐIỆN THOẠI ĐẦU TIÊN
BIẾN ĐẾM X=0
YES
NO
YES
NO
NO
GIẢI THUẬT CHƯƠNG TRÌNH CHÍNH
NO
YES
PHÍM ẤN
ENTER
CHỌN MÃ CỘT
KIỂM TRA CÁC HÀNG
GIẢM MÃ CỘT
XÁC ĐỊNH MÃ HÀNG
XÁC ĐỊNH GIÁ TRỊ PHÍM
LƯU GIÁ TRỊ PHÍM
MÃ CỘT =0?
EXIT
NO
YES
GIẢI THUẬT QUÉT PHÍM
LED>X
QUÉT PHÍM
PHÍM ẤN?
EXIT
XUẤT RA PORT HIỂN THỊ
DELAY
TĂNG ĐỊA CHỈ HIỂN THỊ
( TĂNG SỐ LED)
ENTER
XÁC ĐỊNH ĐỊA CHỈ HIỂN THỊ
ĐCHT=RAM-X
CHỌN LED SỐ 0
LED=0
LƯU ĐỊA CHỈ VÀO ACC
ACC=ACC+LED
GIẢI THUẬT HIỂN THỊ
ENTER
SỐ MÁY CẦN GỌI:X=2
SỐ LẦN GỌI:Y=3
XUẤT TÍN HIỆU DÓNG RELAY1
TẠO TÍN HIỆU NHẤC MÁY GIẢ
KIỂM TRA TÍN HIỆU MỜI QUAY SỐ
THQS
QUAY SỐ
KIỂM TRA TÍN HIỆU NHẤC MÁY CUẢ MÁY BỊ GỌI
THNM
GÁC MÁY
DELAY 5S
GIẢM SỐ LẦN GỌI
Y:=0?
GIẢM SỐ MÁY GỌI
X:=0?
EXIT
PHÁT TÍN HIỆU DÓNG RELAY2
DELAY 30S
GÁC MÁY
DELAY 5S
GIẢI THUẬT BÁOĐỘNG
NO
NO
YES
NO
YES
NO
ENTER
KHỞI ĐỘNG MT8880
KHỞI TẠO TIMER0
DELAY 6S
SỐ XUNG>3
CÓ TÍN HIỆU MỜI QUAY SỐ SETB C
EXIT
BUSY TONE CLEAR C
GIẢI THUẬT XÉT DIALTONE
ENTER
KHỞI ĐỘNG MT8880
RAM= DỊA CHỈ SỐ ĐIỆN THOẠI ĐẦU TIÊN
NẠP SỐ ĐIỆN THOẠI VÀO ACC
SỐ 0E?
EXIT
NẠP SỐ ĐIỆN THOẠI VÀO THANH GHI PHÁT
DELAY 1S
RAM = RAM+1
GIẢI THUẬT QUAY SỐ ĐIỆN THOẠI
THANH GHI PHÁT RỔNG?
EXIT
MÁY BỊ GỌI NHÁC MÁY SETB C
X=0?
MÁY BẬN CLEAR C
SỐ XUNG>0
X=X-1
MÁY BẬN CLEAR C
XUNG>3
CLEAR TR0
DELAY 6S
SETB TR0
BIẾN ĐẾM X=10
ENTERR
KHỞI ĐỘNG MT8880
GIẢI THUẬT XÉT MÁY BỊ GỌI
MCS-51 MACRO ASSEMBLER TRUNG
01/06/:0 PAGE 1
DOS 7.10 (038-N) MCS-51 MACRO ASSEMBLER, V2.2
OBJECT MODULE PLACED IN TRUNG.OBJ
ASSEMBLER INVOKED BY: C:\TRUNG\ASM51.EXE TRUNG.ASM
LOC OBJ LINE SOURCE
2000 1 RAM EQU 2000H ;DIA CHI BO NHO RAM
4004 2 DAT EQU 4004H ;DIA CHI THANH GHI PHAT VA THU
DATA MT8880
4005 3 CTR EQU 4005H ;DIA CHI THANH GHI DIEU KHIEN
VA TRANG THAI CUA MT8880
4000 4 HTHI EQU 4000H ;DIA CHI PORT HIEN THI
4002 5 DKHIEN EQU 4002H ;DIA CHI PORT DIEU KHIEN
0030 6 LED EQU 30H
0040 7 TEM1 EQU 40H
0050 8 TEM2 EQU 50H
0000 9 ORG 0000H
0000 020030 10 LJMP MAIN
0003 11 ORG 0003H
0003 02011F 12 LJMP BAODONG
0030 13 ORG 0030H
0030 758915 14 MAIN: MOV TMOD,#15H ;DAT CHE DO
HOAT DONG CHO TIMER
0033 75A881 15 MOV IE,#81H ;CHO PHEP NGAT
NGOAI 0
0036 12003B 16 LOOP: LCALL NAPSODT
0039 80FB 17 SJMP LOOP ;VONG LAP DOI TIN HIEU NGAT
18 ;CHUONG TRINH NAP SO DIEN THOAI SAU DO HIEN
THI RA LED
003B 902000 19 NAPSODT: MOV DPTR,#RAM
003E 7E00 20 LOOP1: MOV R6,#00H
0040 120064 21 LOOP2: LCALL QUETPHIM
0043 540F 22 ANL A,#0FH
0045 B40001 23 CJNE A,#00H,LOOP3
0048 22 24 RET
0049 F0 25 LOOP3: MOVX @DPTR,A
004A B40E03 26 CJNE A,#0EH,LOOP4
004D A3 27 INC DPTR
004E 80EE 28 SJMP LOOP1
0050 1200DA 29 LOOP4: LCALL HIENTHI
0053 A3 30 INC DPTR
0054 0E 31 INC R6
0055 BE0E8 32 CJNE R6,#0AH,LOOP2
0058 C3 33 CLR C
0059 CE0 34 PUSH ACC
005B 582 35 MOV A,DPL
005D 9E 36 SUBB A,R6
005E F582 37 MOV DPL,A
0060 D0E0 38 POP ACC
0062 80DA 39 SJMP LOOP1
40
41 ;CHUONG TRINH NHAN GIA TRI PHIM SO DIEN THOAI DUOC NAP TU BAN PHIM
42 ;MA PHIM CHUA TRONG THANH GHI A VA NEU KHONG CO NHAN PHIM THI A=FFH
0064 12008A 43 QUETPHIM: LCALL KEY47
0067 04 44 INC A
0068 601B 45 JZ X1
006A 1200D1 46 X3: LCALL DELAY
006D 12008A 47 LCALL KEY47
0070 F8 48 MOV R0,A
0071 04 49 INC A
0072 6011 50 JZ X1
0074 902500 51 MOV DPTR,#2500H
0077 E0 52 MOVX A,@DPTR
0078 F5F0 53 MOV B,A
007A 55F0 54 ANL A,B
007C 70EC 55 JNZ X3
007E 14 56 DEC A
007F 902500 57 X2: MOV DPTR,#2500H
0082 F0 58 MOVX @DPTR,A
0083 E8 59 MOV A,R0
0084 22 60 RET
0085 78FF 61 X1: MOV R0,#0FFH
0087 02007F 62 LJMP X2
008A 7900 63 KEY47: MOV R1,#00H
008C 7800 64 MOV R0,#00H
008E 74FE 65 MOV A,#0FEH
0090 F590 66 MOV P1,A
0092 E590 67 MOV A,P1
0094 55F0 68 ANL A,0F0H
0096 64F0 69 XRL A,#0F0H
0098 702C 70 JNZ Y1
009A 7804 71 MOV R0,#04H
009C 74FD 72 MOV A,#0FDH
009E F590 73 MOV P1,A
00A0 E590 74 MOV A,P1
00A2 55F0 75 ANL A,0F0H
00A4 64F0 76 XRL A,#0F0H
00A6 701E 77 JNZ Y1
00A8 7808 78 MOV R0,#08H
00AA 74FC 79 MOV A,#0FCH
00AC F590 80 MOV P1,A
00AE E590 81 MOV A,P1
00B0 54F0 82 ANL A,#0F0H
00B2 65F0 83 XRL A,0F0H
00B4 7010 84 JNZ Y1
00B6 780C 85 MOV R0,#0CH
00B8 74F7 86 MOV A,#0F7H
00BA F590 87 MOV P1,A
00BC E590 88 MOV A,P1
00BE 55F0 89 ANL A,0F0H
00C0 64F0 90 XRL A,#0F0H
00C2 7002 91 JNZ Y1
00C4 14 92 DEC A
00C5 22 93 RET
94
95 ;XULY MA PHIM
00C6 C4 96 Y1: SWAP A
00C7 13 97 Y11: RRC A
00C8 4004 98 JC Y2
00CA 09 99 INC R1
00CB 0200C7 100 LJMP Y11
00CE E9 101 Y2: MOV A,R1
00CF 48 102 ORL A,R0
00D0 22 103 RET
00D1 AE30 104 DELAY: MOV R6,30H
00D3 7FFF 105 DE2: MOV R7,#0FFH
00D5 DFFE 106 DE1: DJNZ R7,DE1
00D7 DEFA 107 DJNZ R6,DE2
00D9 22 108 RET
109 ;CHUONG TRINH HIEN THI SO DIEN THOAI TA SU DUNG PHUONG PHAP QUET TUNG LED
00DA C083 110 HIENTHI: PUSH DPH
00DC C082 111 PUSH DPL
00DE E582 112 MOV A,DPL
00E0 C3 113 CLR C
00E1 9E 114 SUBB A,R6
00E2 F582 115 MOV DPL,A
00E4 753000 116 MOV LED,#00H
00E7 858340 117 HT: MOV TEM1,DPH
00EA 858250 118 MOV TEM2,DPL
00ED E0 119 MOVX A,@DPTR
00EE 540F 120 ANL A,#0FH
00F0 B40A02 121 CJNE A,#0AH,HT1
00F3 7400 122 MOV A,#00H
00F5 C4 123 HT1: SWAP A
00F6 2530 124 ADD A,LED
00F8 904000 125 MOV DPTR,#HTHI
00FB F0 126 MOVX @DPTR,A
00FC 12011A 127 LCALL DELAY1
00FF 854083 128 MOV DPH,TEM1
0102 855082 129 MOV DPL,TEM2
0105 E530 130 MOV A,LED
0107 B40A0B 131 CJNE A,#0AH,HT2
010A D082 132 POP DPL
010C D083 133 POP DPH
010E 120064 134 LCALL QUETPHIM
0111 B4FFC6 135 CJNE A,#0FFH,HIENTHI
0114 22 136 RET
0115 A3 137 HT2: INC DPTR
0116 0530 138 INC LED
0118 80CD 139 SJMP HT
140
011A 7D0F 141 DELAY1: MOV R5,#0FH
011C DDFE 142 HT3: DJNZ R5,HT3
011E 22 143 RET
144
145 ;CHUONG TRINH BAO DONG THUC HIEN KHI CO TIN HIEU BAO DONG
146 ;XUAT TIN HIEU DONG RELAY TAO TIN HIEU TAI GIA NHAC MAY
147 ;XET TRANG THAI DUONG DAY VA BAO DEN 2 SO DIEN THOAI
011F 902000 148 BAODONG: MOV DPTR,#RAM
0122 AB83 149 MOV R3,DPH
0124 AC82 150 MOV R4,DPL
0126 7802 151 MOV R0,#02H
0128 7903 152 BD1: MOV R1,#03H
012A 7D00 153 MOV R5,#00H
012C 904002 154 BD2: MOV DPTR,#DKHIEN
012F 7400 155 MOV A,#00H
0131 F0 156 MOVX @DPTR,A
0132 1201E9 157 LCALL DELAY5S
0135 80F1 158 SJMP BD1
0137 12017B 159 BD3: CALL QUAYSO
013A 1201AA 160 LCALL LOOPLINE
013D 400E 161 JC SOUND
013F 904002 162 MOV DPTR,#DKHIEN
0142 7400 163 MOV A,#00H
0144 F0 164 MOVX @DPTR,A
0145 1201E9 165 CALL DELAY5S
0148 D9E2 166 DJNZ R1,BD2
014A D8DC 167 DJNZ R0,BD1
014C 32 168 EXIT: RETI
014D 904002 169 SOUND: MOV DPTR,#DKHIEN
0150 7403 170 MOV A,#03H
0152 F0 171 MOVX @DPTR,A
0153 120201 172 LCALL DELAY30S
0156 7401 173 MOV A,#01H
0158 904002 174 MOV DPTR,#DKHIEN
015B F0 175 MOVX @DPTR,A
015C 7400 176 MOV A,#00H
015E F0 177 MOVX @DPTR,A
015F 80EB 178 SJMP EXIT
179
180 ;CHUONG TRINH XET DIALTONE DUNG DE XET TIN HIEU MOI QUAY SO
0161 904005 181 DIALTONE: MOV DPTR,#CTR
0164 7402 182 MOV A,#02H
0166 F0 183 MOVX @DPTR,A
0167 D28C 184 SETB TR0
0169 1201F5 185 LCALL DELAY6S
016C C28C 186 CLR TR0
016E E58A 187 MOV A,TL0
0170 B40301 188 CJNE A,#03H,THOAT
0173 C3 189 CLR C
0174 758A00 190 THOAT: MOV TL0,#00H
0177 758C00 191 MOV TH0,#00H
017A 22 192 RET
193
194 ;CHUONG TRINH QUAY SO DIEN THOAI SU DUNG IC MT8880
017B FC 195 QUAYSO: MOV R4,A
017C C3 196 CLR C
017D 9D 197 SUBB A,R5
017E FC 198 MOV R4,A
017F 904005 199 MOV DPTR,#CTR
0182 740B 200 MOV A,#00001011B
0184 F0 201 MOVX @DPTR,A
0185 8B83 202 TIEP: MOV DPH,R3
0187 8C82 203 MOV DPL,R4
0189 E0 204 MOVX A,@DPTR
018A A3 205 INC DPTR
018B 0D 206 INC R5
018C AB83 207 MOV R3,DPH
018E AC82 208 MOV R4,DPL
0190 540F 209 ANL A,#0FH
0192 B50F01 210 CJNE A,0FH,TIEP1
0195 22 211 RET
0196 904004 212 TIEP1: MOV DPTR,#DAT
0199 F0 213 MOVX @DPTR,A
019A 904005 214 TIEP2: MOV DPTR,#CTR
019D E0 215 MOVX A,@DPTR
019E 5402 216 ANL A,#02H
01A0 B40202 217 CJNE A,#02H,TIEP3
01A3 80E0 218 SJMP TIEP
01A5 1201D1 219 TIEP3: CALL DELAY1S
01A8 80F0 220 SJMP TIEP2
221
222 ;CHUONG TRINH LOOPLINE CHUONG TRINH XET TIN HIEU NHAC MAY CUA MAY BI GOI
01AA 904005 223 LOOPLINE: MOV DPTR,#CTR
01AD 7402 224 MOV A,#02H
01AF F0 225 MOVX @DPTR,A
01B0 7E0A 226 MOV R6,#0AH
01B2 D28C 227 LABEL1: SETB TR0
01B4 1201F5 228 LCALL DELAY6S
01B7 C28C 229 CLR TR0
01B9 E58A 230 MOV A,TL0
01BB 758A00 231 MOV TL0,#00H
01BE 758C00 232 MOV TH0,#00H
01C1 B40301 233 CJNE A,#03H,LABEL2
01C4 C3 234 CLR C
01C5 4001 235 LABEL2: JC LABEL3
01C7 22 236 RET
01C8 B40002 237 LABEL3: CJNE A,#00H,LABEL4
01CB D3 238 SETB C
01CC 22 239 RET
01CD DEE3 240 LABEL4: DJNZ R6,LABEL1
01CF C3 241 CLR C
01D0 22 242 RET
243
244 ;CHUONG TRINH DELAY
01D1 C000 245 DELAY1S: PUSH 00H
01D3 A864 246 MOV R0,64H
01D5 758DD8 247 TRUNG: MOV TH1,#0D8H
01D8 758BEF 248 MOV TL1,#0EFH
01DB D28E 249 SETB TR1
01DD 308FFD 250 TRUNG1: JNB TF1,TRUNG1
01E0 C28F 251 CLR TF1
01E2 C28E 252 CLR TR1
01E4 D8EF 253 DJNZ R0,TRUNG
01E6 D000 254 POP 00H
01E8 22 255 RET
01E9 C001 256 DELAY5S: PUSH 01H
01EB 7905 257 MOV R1,#05H
01ED 1201D1 258 TRUNG2: LCALL DELAY1S
01F0 D9FB 259 DJNZ R1,TRUNG2
01F2 D001 260 POP 01H
01F4 22 261 RET
01F5 C002 262 DELAY6S: PUSH 02H
01F7 7A06 263 MOV R2,#06H
01F9 1201D1 264 TRUNG3: LCALL DELAY1S
01FC DAFB 265 DJNZ R2,TRUNG3
01FE D002 266 POP 02H
0200 22 267 RET
268
0201 C003 269 DELAY30S: PUSH 03H
0203 7B05 270 MOV R3,#05H
0205 31F5 271 TRUNG4: CALL DELAY6S
0207 DBFC 272 DJNZ R3,TRUNG4
0209 D003 273 POP 03H
020B 22 274 RET
275 END
PHẦN PHỤ LỤC
I. BỘ NHỚ EPROM 8K 2764
-A0 - A12 là các đường địa chỉ.
-D0 - D7 là các đường dữ liệu.
-CE\ là chân chọn chíp.
-OE\ là chân cho phép xuất các byte mã lệnh nối đến chân psen\ của VXL.
-PGM\ chân nạp chương trình.
II. BỘ NHỚ SRAM 6264 (8KB)
- A0 - A12 là các đường địa chỉ.
- D0 -D12 là các đường data.
- E1 là chân chọn chíp.
- W\ là chân write.
III. MẠCH CHỐT ĐỊA CHỈ DÙNG 74373:
-D0 - D7 là data vào.
-Q0 - Q7 là địa chỉ được chốt.
-ENC là chân cho phép chốt được nối với chân ALE.
KẾT LUẬN
Kết Quả Đạt Được:
Sau mười tuần thực hiện đề tài, với sự hướng dẫn tận tình của giáo viên hướng dẫn và đóng góp tận tình của Các Thầy Cô Trong Bộ Môn KTĐ&THCN(Khoa Điện)Trường Đại Học Bách Khoa Hà Nội cộng với sự nỗ lực của bản thân trong việc tìm hiểu tài liệu liên quan. Tập đồ án đã kế thừa một khía cạnh ứng dụng mới trong hệ thống vi xử lý, đó là sử dụng vi điều khiển 8051 trong mạch báo cháy. Tuy chưa phát huy được các tính năng ưu việt của vi điều khiển 8051 nhưng cũng phần nào ứng dụng và giải quyết được công việc thực tiễn.
Khả Năng Phát Triển Của Đề Tài:
Cùng với sự phát triển không ngừng của khoa học kỹ thuật nói chung và lĩnh vực điện,tự động hóa,đo lường điều khiển nói riêng, đề tài này có thể phát triển hoàn thiện hơn để đạt được kết quả tốt hơn, tính năng sử dụng rộng rãi hơn. Như có thể mở rộng thêm phần cứng để điều khiển các thiết bị, có thể thêm các ứng dụng khác như: đo nhiệt độ, hệ thống chữa cháy tại chỗ(tạo mưa, phun khí, tắt hệ thống không khí)v.v… và đây cũng là điều chúng em mong muốn sẽ làm được trong tương lai.
TÀI LIỆU THAM KHẢO
DƯƠNG MINH TRÍ
Sơ Đồ Linh Kiện Bán Dẫn _ Sở Giáo Dục Và Đào Tạo Tp Hồ Chí Minh
HOÀNG LÊ TUẤN
Nhập Môn Vi Xử Lý_ ĐHBK Tp Hồ Chí Minh
THẦY NGUYỄN ĐÌNH PHÚ_ĐHSPKT Tp Hồ Chí Minh
Hướng Dẫn Sử Dụng Kit Vi Xử Lý 8085
I. SCOTTMACKENZIE
The8051 Microcontroler_ University of Guelph
Các file đính kèm theo tài liệu này:
- DAN224.doc