Đồ án Hệ thống thiết bị báo cháy tự động qua mạng điện thoại

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.

doc98 trang | Chia sẻ: oanh_nt | Lượt xem: 1493 | Lượt tải: 1download
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:

  • docDAN224.doc