ĐẠI HỌC THÁI NGUYÊN Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http //www lrc tnu edu vn ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP LUẬN VĂN THẠC SỸ KỸ THUẬT NGÀNH KỸ THUẬT Đ[.]
ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP - - LUẬN VĂN THẠC SỸ KỸ THUẬT NGÀNH KỸ THUẬT ĐIỆN TỬ nghiªn cøu, thiÕt kÕ bé thu thập xử lý cảnh báo cho tủ bts ericsson ĐÀM HẢI QUÂN Thái Nguyên 2012 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên Tai ngay!!! Ban co the xoa dong chu nay!!! http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP - - LUẬN VĂN THẠC SỸ KỸ THUẬT nghiªn cứu, thiết kế thu thập xử lý cảnh báo ngoµi cho tđ bts ericsson Ngành: Kỹ thuật điện tử Mã số: 60.52.70 Học viên: Đàm Hải Quân Giáo viên hƣớng dẫn khoa học: PGS TS Nguyễn Thanh Hà Thái Nguyên, năm 2012 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƢỜNG ĐẠI HỌC Độc lập - Tự - Hạnh phúc KỸ THUẬT CÔNG NGHIỆP THUYẾT MINH LUẬN VĂN THẠC SỸ KỸ THUẬT Học viên: Đàm Hải Quân Lớp: Cao học - K13 Chuyên ngành: Kỹ thuật Điện tử Người hướng dẫn khoa học: PGS.TS Nguyễn Thanh Hà Ngày giao đề tài: Ngày hoàn thành: CÁN BỘ HƢỚNG DẪN KHOA HỌC HỌC VIÊN PGS.TS Nguyễn Thanh Hà Đàm Hải Quân BAN GIÁM HIỆU KHOA SAU ĐẠI HỌC Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng tơi, số liệu, kết nêu luận văn trung thực cơng trình nghiên cứu riêng tơi, luận văn khơng giống hồn tồn luận văn cơng trình có trước Thái Ngun, ngày 12 tháng năm 2013 Tác giả luận văn Đàm Hải Quân Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn LỜI CẢM ƠN Trong suốt q trình học tập tốt nghiệp, tơi nhận giúp đỡ tận tình thầy cô giảng dạy đặc biệt muốn cảm ơn PGS.TS Nguyễn Thanh Hà tận tình giúp đỡ, hướng dẫn thời gian thực đề tài, cảm ơn giúp đỡ gia đình, bạn bè đồng nghiệp thời gian qua Mặc dù cố gắng, song điều kiện thời gian kinh nghiệm thực tế cịn nhiều hạn chế nên khơng thể tránh khỏi thiếu sót Vì vậy, tơi mong nhận đóng góp ý kiến thầy cô bạn bè, đồng nghiệp Tôi xin chân thành cảm ơn! Tác giả luận văn Đàm Hải Quân Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn LỜI NÓI ĐẦU Trong xã hội ngày tương lai gần tới, thơng tin di động ln đóng vai trị quan trọng cần thiết Với mạng di động GSM, bên cạnh phần tử MSC, BSC, VLR, HLR…thì trạm thu phát gôc (BTS) thành phần thiếu Một trạm BTS thông thường bao gồm nhiều thiết bị thiết bị BTS, thiết bị nguồn, thiết bị truyền dẫn Trong trình vận hành trạm BTS, bên cạnh việc đảm bảo thông tin thông suốt việc giám sát thơng số trạng thái hoạt động trạm đóng vai trị quan trọng Các thông số gọi thông số cảnh báo ngồi Khác với trạm BTS thơng thường hãng di động Vinaphone, Mobifone, Viettel…, trạm BTS hãng di động Vietnammobile phần lớn trạm đặt trời (trạm outdoor), sử dụng tủ thiết bị hãng Ericsson Việc giám sát thông số cảnh báo trạm tương đối đơn giản, nhiên vấn đề đặt hầu hết thiết bị trạm thiết bị đồng bộ, khơng có thiết bị thay thị trường, xảy cố phụ thuộc vào nhà cung cấp Với yêu cầu với giúp đỡ tận tình thầy giáo PGS.TS Nguyễn Thanh Hà, tơi hồn thành luận văn tốt nghiệp cao học với đề tài " Nghiên cứu, thiết kế thu thập xử lý cảnh báo cho tủ BTS Ericsson" Nội dung luận văn bao gồm: Chương I: Tổng quan trạm BTS Ericsson - Trình bày khái quát trạm BTS nói chung tiếp đến phân tích đặc điểm tủ BTS sử dụng mạng di động Vietnammobile Cụ thể chương phân tích đặc điểm nguồn cảnh báo ngồi tủ BTS 2216 loại ABA 01 Trên sở đề xuất thiết kế thu thập cảnh báo thay cho CCU - điều khiển giám sát mơi trường Từ góp phần làm giảm chi phí thời gian cung cấp, thay thiết bị Chương II: Thiết kế hệ thống thu thập xử lý cảnh báo cho tủ RBS 2216 - Dựa phân tích yêu cầu đặt chương I, nội dung chương II tập trung vào việc lựa chọn linh kiện, xây dựng sơ đồ khối, sơ đồ nguyên lý mạch điện phần cứng, xây dựng mã nguồn chương trình phần mềm Cụ thể chương II ứng dụng vi điều khiển PIC 16F887 làm phần tử trung tâm xử lý cảnh báo Chương III: Mô phỏng, đánh giá hệ thống kết luận - Đánh giá mơ mạch điện, phân tích ưu nhược điểm, từ đề xuất hướng phát triển đề tài Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Do đề tài hoàn thành thời gian ngắn điều kiện tiếp cận để nghiên cứu, với lực thân cịn hạn chế nên khơng thể tránh khỏi thiếu sót q trình nghiên cứu, trình bày Kính mong thầy, cô giáo bạn quan tâm đến nội dung đề tài, góp ý kiến để tơi có điều kiện tiếp thu phát triển đề tài bổ xung thêm kiến thức cho thân đầy đủ, đắn để luận văn tơi hồn thiện Tơi xin chân thành cảm ơn! Thái Nguyên, ngày 12 tháng năm 2013 Người thực Đàm Hải Quân Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn MỤC LỤC Trang Nội dung Chƣơng I TỔNG QUAN TRẠM BTS CỦA ERICSSON 1.1 Tổng quan trạm BTS mạng thơng tin di động 1.2 Mơ hình tổng quan nhà trạm BTS Ericsson 1.3 Mô tả tủ cabinet Delta 1.4 Cabinet ABA01 1.4.1 Hình dáng, kích thƣớc 1 2 3 1.4.2 Các thành phần cabinet 1.5 Các cảnh báo 1.6 Kết luận chƣơng I Chƣơng II: THIẾT KẾ HỆ THỐNG THU THẬP VÀ XỬ LÝ CẢNH BÁO NGOÀI CHO TỦ RBS 2216 2.1 Vi điều khiển PIC 16F887 2.1.1 Tổng quan 14 16 18 18 18 2.1.2 Sơ đồ chân 2.1.3 Sơ đồ khối 2.1.4 Tổ chức nhớ 2.1.5 Các ghi chức đặc biệt 2.1.6 ADC 2.1.7 Chế độ PWM 2.2 Thiết kế hệ thống thu thập xử lý cảnh báo 2.2.1 Thiết kế phần cứng 19 25 26 28 2.2.2 Chƣơng trình phần mềm 2.3 Kết luận chƣơng II Chƣơng III: MÔ PHỎNG, ĐÁNH GIÁ HỆ THỐNG VÀ KẾT LUẬN KẾT LUẬN VÀ ĐỀ XUẤT TÀI LIỆU THAM KHẢO PHỤ LỤC Mã lệnh chƣơng trình Vi mạch đệm 74HC245 41 45 46 48 49 50 50 69 Vi mạch chốt 74HC573 Vi mạch đệm cơng suất ULN 2803 70 71 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 29 32 34 34 http://www.lrc-tnu.edu.vn DANH MỤC CÁC HÌNH VẼ, BẢNG BIỂU Hình 1.1 Mơ hình tổng quan nhà trạm BTS Ericsson_Vietnammobile Hình 1.2 Các loại tủ cabinet Ericsson dùng cho mạng di động VNM Hình 1.3 Kích thước tủ Cabinet ABA01 Hình 1.4 Các thành phần tủ Cabinet ABA01 Hình 1.5 Mặt trước CCU Bảng 1.6 Hiển thị LED CCU Hình 1.7 Vị trí quạt trao đổi nhiệt Hình 1.8 Kích thước quạt HEX Hình 1.9 Vị trí quạt làm mát (ngăn trái tủ) Bảng 1.10 Chức chân quạt làm mát Hình 1.11 Kích thước quạt làm mát Hình 1.12 Cảm biến nhiệt acquy Hình 1.13 Các cảnh báo ngồi tủ BRS2216 Hình 1.14 Cảm biến nhiệt độ Hình 1.15 Vị trí cảm biến mơi trường Hình 2.1 Sơ đồ chân PIC16F887 Hình 2.2 Mơ tả chức chân PIC16F887 Hình 2.3 Sơ đồ chân PIC16F887-QFN Hình 2.4 Mơ tả chức chân Hình 2.5 Sơ đồ chân PIC16F887 _ TQFP Hình 2.6 Mơ tả chức chân Hình 2.7 Sơ đồ khối PIC16F887 Hình 2.8 Sơ đồ tổ chức nhớ chương trình Hình 2.9 Tổ chức nhớ liệu ghi Hình 2.10 Sơ đồ logic ADC Hình 2.11 Sơ đồ khối CCP chế độ PWM Hình 2.12 Các tham số đầu PWM Hình 2.13 Sơ đồ khối thu thập xử lý cảnh báo ngồi Hình 2.14 Khối nhận tín hiệu vào dạng Digital Hình 2.15 Khối nhận tín hiệu vào dạng Analog Hình 2.16 Khối xuất tín hiệu cảnh báo Hình 2.17 Khối điều khiển Hình 2.18 Khối hiển thị Hình 2.19 Sơ đồ nguyên lý Bảng 2.20 Hiển thị thông tin cảnh báo LED Hình 2.21 Lưu đồ thuật tốn chương trình Bảng 2.22 Giá trị giải mã hiển thị LED Hình 3.1 Phần mềm mơ Proteus Hình 3.2 Giá trị PWM quan sát đầu Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 10 11 12 13 13 14 15 16 19 20 21 22 23 24 25 26 27 30 32 32 34 35 36 36 37 37 38 40 41 44 46 47 Chƣơng I TỔNG QUAN TRẠM BTS CỦA ERICSSON 1.1 Tổng quan trạm BTS mạng thông tin di động Trong hệ thống thông tin di động, trạm thu phát gốc (BTS) đóng vai trò quan trọng hoạt động hệ thống BTS thực tất chức thu phát liên quan đến giao diện vô tuyến GSM xử lí tín hiệu mức độ định Về số phương diện coi BTS modem vơ tuyến phức tạp, nhận tín hiệu vơ tuyến đường lên từ MS biến đổi thành liệu để truyền đến máy khác mạng GSM, nhận liệu từ mạng GSM biến đổi thành tín hiệu vơ tuyến phát đến MS Các BTS tạo nên vùng phủ sóng tế bào, vị trí chúng định dung lượng vùng phủ mạng Tuy nhiên BTS đóng vai trị phụ việc phân phối tài nguyên vô tuyến cho MS khác Một trạm BTS bên cạnh thiết bị thu phát tín hiệu di động cịn bao gồm thiết bị như: thiết bị truyền dẫn cáp đồng, cáp quang viba, thiết bị nguồn - bao gồm hệ thống cấp nguồn AC hệ thống acquy dự phịng, ngồi trạm BTS cịn có thiết bị phụ trợ điều hịa, chiếu sáng, bảo vệ, chống sét… Trong trình hoạt động, việc giám sát thông số đưa cảnh báo trạng thái hoạt động, môi trường làm việc, cố…trở nên vô quan trọng, liên quan tới điều kiện hoạt động, độ ổn định, tin cậy hệ thống Các thông số chia làm hai loại: cảnh báo - liên quan tới tín hiệu thơng tin vơ tuyến từ MS tới BTS từ BTS tới BSC cảnh báo ngồi - bao gồm thơng số bên ngồi phục vụ cho hoạt động trạm như: chế độ cấp nguồn AC/DC, nhiệt độ thiết bị, độ ẩm mơi trường, giám sát cảnh báo khói cháy, trạng thái làm việc thiết bị liên quan, cảnh báo đột nhập…Các thơng số cảnh báo ngồi thơng thường thu thập, tập trung lại đưa thiết bị BTS qua cổng riêng, từ thông tin gửi trung tâm điều hành mạng để giám sát, kiểm tra xử lý cần thiết Việc thu thập thông tin cảnh báo ngồi thơng thường thực thu thập cảnh báo riêng, tùy theo đặc điểm trạm BTS mà thu thập xử lý cảnh báo có đặc điểm khác Hiện trạm BTS, thu thập xử lý cảnh báo có nhiều loại, có nguồn gốc phong phú lắp đặt sử dụng rộng rãi Tuy nhiên, yêu cầu đặt với thu thập xử lý cảnh báo giống nhau, hoạt động ổn định, tin cậy, đảm bảo tiêu chí kinh tế kỹ thuật 1.2 Mơ hình tổng quan nhà trạm BTS Ericsson Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn // CCP Functions: SETUP_CCPx, SET_PWMx_DUTY // CCP Variables: CCP_x, CCP_x_LOW, CCP_x_HIGH // Constants used for SETUP_CCPx() are: #define CCP_OFF #define CCP_CAPTURE_FE #define CCP_CAPTURE_RE #define CCP_CAPTURE_DIV_4 #define CCP_CAPTURE_DIV_16 #define CCP_COMPARE_SET_ON_MATCH #define CCP_COMPARE_CLR_ON_MATCH #define CCP_COMPARE_INT 0xA #define CCP_COMPARE_RESET_TIMER #define CCP_PWM #define CCP_PWM_PLUS_1 #define CCP_PWM_PLUS_2 #define CCP_PWM_PLUS_3 #word CCP_1 = 0xB 0xC 0x1c 0x2c 0x3c getenv("SFR:CCPR1L") #byte CCP_1_LOW= getenv("SFR:CCPR1L") #byte CCP_1_HIGH= getenv("SFR:CCPR1H") // The following should be used with the ECCP unit only (or these in) #define CCP_PWM_H_H 0x0c #define CCP_PWM_H_L 0x0d #define CCP_PWM_L_H #define CCP_PWM_L_L 0x0e 0x0f #define CCP_PWM_FULL_BRIDGE 0x40 #define CCP_PWM_FULL_BRIDGE_REV 0xC0 #define CCP_PWM_HALF_BRIDGE 0x80 #define CCP_SHUTDOWN_ON_COMP1 #define CCP_SHUTDOWN_ON_COMP2 #define CCP_SHUTDOWN_ON_COMP 0x100000 0x200000 0x300000 #define CCP_SHUTDOWN_ON_INT0 0x400000 #define CCP_SHUTDOWN_ON_COMP1_INT0 0x500000 #define CCP_SHUTDOWN_ON_COMP2_INT0 0x600000 #define CCP_SHUTDOWN_ON_COMP_INT0 0x700000 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 64 http://www.lrc-tnu.edu.vn #define CCP_SHUTDOWN_AC_L 0x000000 #define CCP_SHUTDOWN_AC_H #define CCP_SHUTDOWN_AC_F 0x040000 0x080000 #define CCP_SHUTDOWN_BD_L #define CCP_SHUTDOWN_BD_H #define CCP_SHUTDOWN_BD_F 0x000000 0x010000 0x020000 #define CCP_SHUTDOWN_RESTART 0x80000000 #define CCP_PULSE_STEERING_A 0x01000000 #define CCP_PULSE_STEERING_B #define CCP_PULSE_STEERING_C #define CCP_PULSE_STEERING_D #define CCP_PULSE_STEERING_SYNC 0x02000000 0x04000000 0x08000000 0x10000000 #word CCP_2 = getenv("SFR:CCPR2L") #byte CCP_2_LOW= getenv("SFR:CCPR2L") #byte CCP_2_HIGH= getenv("SFR:CCPR2H") ////////////////////////////////////////////////////////////////// SPI // SPI Functions: SETUP_SPI, SPI_WRITE, SPI_READ, SPI_DATA_IN // Constants used in SETUP_SPI() are: #define SPI_MASTER 0x20 #define SPI_SLAVE 0x24 #define SPI_L_TO_H #define SPI_H_TO_L 0x10 #define SPI_CLK_DIV_4 #define SPI_CLK_DIV_16 #define SPI_CLK_DIV_64 #define SPI_CLK_T2 #define SPI_SS_DISABLED #define SPI_SAMPLE_AT_END 0x8000 #define SPI_XMIT_L_TO_H 0x4000 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 65 http://www.lrc-tnu.edu.vn ////////////////////////////////////////////////////////////////// UART // Constants used in setup_uart() are: // FALSE - Turn UART off // TRUE - Turn UART on #define UART_ADDRESS #define UART_DATA #define UART_AUTODETECT #define UART_AUTODETECT_NOWAIT #define UART_WAKEUP_ON_RDA 10 #define UART_SEND_BREAK 13 ////////////////////////////////////////////////////////////////// COMP // Comparator Variables: C1OUT, C2OUT // Constants used in setup_comparator() are: // #define NC_NC_NC_NC 0x00 #define NC_NC 0x00 //Pick one constant for COMP1 #define CP1_A0_A3 0x00090080 #define CP1_A1_A3 0x000A0081 #define CP1_B3_A3 0x00880082 #define CP1_B1_A3 0x00280083 #define CP1_A0_VREF 0x00010084 #define CP1_A1_VREF 0x00020085 #define CP1_B3_VREF 0x00800086 #define CP1_B1_VREF 0x00200087 //Optionally OR with one or both of the following #define CP1_OUT_ON_A4 0x00000020 #define CP1_INVERT 0x00000010 #define CP1_ABSOLUTE_VREF 0x20000000 //OR with one constant for COMP2 #define CP2_A0_A2 0x00058000 #define CP2_A1_A2 0x00068100 #define CP2_B3_A2 0x00848200 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 66 http://www.lrc-tnu.edu.vn #define CP2_B1_A2 0x00248300 #define CP2_A0_VREF 0x00018400 #define CP2_A1_VREF 0x00028500 #define CP2_B3_VREF 0x00808600 #define CP2_B1_VREF 0x00208700 //Optionally OR with one or both of the following #define CP2_OUT_ON_A5 0x00002000 #define CP2_INVERT 0x00001000 #define CP2_ABSOLUTE_VREF 0x10000000 //Optionally OR with one or both of the following #define CP2_T1_SYNC 0x01000000 #define CP2_T1_GATE 0x02000000 #bit C1OUT = 0x107.6 #bit C2OUT = 0x108.6 ////////////////////////////////////////////////////////////////// VREF // Constants used in setup_vref() are: // #define VREF_LOW 0xa0 #define VREF_HIGH 0x80 // Or (with |) the above with a number 0-15 ////////////////////////////////////////////////////////////////// INTERNAL RC // Constants used in setup_oscillator() are: #define OSC_31KHZ #define OSC_125KHZ 0x11 #define OSC_250KHZ 0x21 #define OSC_500KHZ 0x31 #define OSC_1MHZ #define OSC_2MHZ #define OSC_4MHZ #define OSC_8MHZ 0x41 0x51 0x61 0x71 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 67 http://www.lrc-tnu.edu.vn #define OSC_INTRC #define OSC_NORMAL // Result may be (ignore all other bits) #define OSC_STATE_STABLE #define OSC_31KHZ_STABLE ////////////////////////////////////////////////////////////////// ADC // ADC Functions: SETUP_ADC(), SETUP_ADC_PORTS() (aka SETUP_PORT_A), // SET_ADC_CHANNEL(), READ_ADC() // Constants used for SETUP_ADC() are: #define ADC_OFF // ADC Off #define ADC_CLOCK_DIV_2 0x100 #define ADC_CLOCK_DIV_8 0x40 #define ADC_CLOCK_DIV_32 0x80 #define ADC_CLOCK_INTERNAL 0xc0 // Internal 2-6us // Constants used in SETUP_ADC_PORTS() are: #define sAN0 //| A0 #define sAN1 //| A1 #define sAN2 #define sAN3 #define sAN4 #define sAN5 #define sAN6 #define sAN7 #define sAN8 #define sAN9 #define sAN10 #define sAN11 //| A2 //| A3 16 //| A5 32 //| E0 64 //| E1 128 //| E2 0x10000 //| B2 0x20000 //| B3 0x40000 //| B1 0x80000 //| B4 #define sAN12 0x100000 //| B0 #define sAN13 0x200000 //| B5 #define NO_ANALOGS // None Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 68 http://www.lrc-tnu.edu.vn #define ALL_ANALOG 0x1F00FF B5 // A0 A1 A2 A3 A5 E0 E1 E2 B0 B1 B2 B3 B4 // One of the following may be OR'ed in with the above using | #define VSS_VDD 0x0000 //| Range 0-Vdd #define VSS_VREF #define VREF_VREF #define VREF_VDD 0x1000 0x3000 0x2000 //| Range 0-Vref //| Range Vref-Vref //| Range Vref-Vdd // Constants used in READ_ADC() are: #define ADC_START_AND_READ // This is the default if nothing is specified #define ADC_START_ONLY #define ADC_READ_ONLY ////////////////////////////////////////////////////////////////// INT // Interrupt Functions: ENABLE_INTERRUPTS(), DISABLE_INTERRUPTS(), // CLEAR_INTERRUPT(), INTERRUPT_ACTIVE(), // // EXT_INT_EDGE() // Constants used in EXT_INT_EDGE() are: #define L_TO_H 0x40 #define H_TO_L // Constants used in ENABLE/DISABLE_INTERRUPTS() are: #define GLOBAL 0x0BC0 #define INT_RTCC 0x000B20 #define INT_RB 0x01FF0B08 #define INT_EXT_L2H 0x50000B10 #define INT_EXT_H2L #define INT_EXT #define INT_AD #define INT_TBE 0x60000B10 0x000B10 0x008C40 0x008C10 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 69 http://www.lrc-tnu.edu.vn #define INT_RDA #define INT_TIMER1 0x008C20 0x008C01 #define INT_TIMER2 #define INT_CCP1 #define INT_CCP2 0x008C02 0x008C04 0x008D01 #define INT_SSP #define INT_BUSCOL #define INT_EEPROM 0x008C08 0x008D08 0x008D10 #define INT_TIMER0 #define INT_OSC_FAIL 0x000B20 0x008D80 #define INT_COMP #define INT_COMP2 0x008D20 0x008D40 #define INT_ULPWU #define INT_RB0 #define INT_RB1 #define INT_RB2 0x008D04 0x0010B08 0x0020B08 0x0040B08 #define INT_RB3 0x0080B08 #define INT_RB4 #define INT_RB5 #define INT_RB6 #define INT_RB7 #list 0x0100B08 0x0200B08 0x0400B08 0x0800B08 - File mã nguồn chương trình (1) #include "….main.h" (2) (3) (4) (5) (6) (7) (8) (9) #byte PORTA=0x05 #byte PORTB = 0x06 #byte PORTC = 0x07 #byte PORTD = 0x08 #byte PORTE = 0x09 #byte ANSEL = 0x188 #bit PowerFail = 0x07.0 #bit RecFail = 0x07.3 (10) (11) (12) (13) #bit ConFail = 0x07.4 #bit Smoke=0x07.5 #bit Humid=0x07.6 #bit Door=0x07.7 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 70 http://www.lrc-tnu.edu.vn (14) (15) #bit ComPower=0x06.2 #bit OBlight=0x06.3 (16) (17) (18) #bit Latch1=0x09.0 #bit Latch2=0x09.1 #bit PowerFailAL = 0x08.2 (19) (20) (21) #bit RecFailAL = 0x08.3 #bit ConFailAL = 0x08.4 #bit HighTempAL=0x08.5 (22) (23) #bit CCUAL=0x08.6 #bit EnviAL=0x08.7 (24) (25) #bit ComPowerAL=0x08.0 #bit OBlightAL=0x08.1 (26) (27) (28) (29) #bit Down=0x06.4 #bit UP=0x06.5 #bit Reset=0x06.6 #bit Set=0x06.7 (30) #bit PBpullup=0x81.7 (31) int16 temp1,temp2,value; (32) int8 low,high,led1,led2,hightemp,lowtemp,tg; (33) int8 const a[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; (34) int1 i; (35) (36) #INT_RB void RB_ISR() (37) (38) (39) (40) (41) (42) (43) (44) { if (!Down) {tg ;} if(!Up) {tg++;} if(!reset) {hightemp=35; lowtemp=20;} if(!set) {i++;} if (i) {hightemp=tg;} else lowtemp=tg; } void chuyendoibcd(int16 x); (45) (46) (47) (48) void hienthi(); void hienthinhietdo(); void chuyendoibcd(int16 x) { Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 71 http://www.lrc-tnu.edu.vn (49) (50) (51) (52) (53) low=x%10; high=x/10; } void hienthi() { (54) (55) (56) LATCH1=0; PORTD=led1; LATCH1=1; (57) (58) LATCH2=0; PORTD=led2; (59) (60) LATCH2=1; } (61) (62) (63) (64) (65) void hienthinhietdo() { chuyendoibcd(value); led1=a[high]; led2=a[low]; (66) (67) (68) (69) (70) hienthi(); } void main() { enable_interrupts(global); (71) (72) enable_interrupts(int_rb); ext_int_edge(H_TO_L); (73) (74) (75) (76) (77) (78) (79) (80) PBpullup=0; SET_TRIS_A( 0b00000011 ); set_tris_b(0b11110000); set_tris_c(0b11111001); set_tris_d(0b00000000); set_tris_e(0b00000000); setup_adc_ports(sAN0|sAN1|VSS_VDD); setup_adc(ADC_CLOCK_DIV_2); (81) setup_spi(SPI_SS_DISABLED); (82) setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);setup_wdt(WD T_18MS|WDT_DIV_16); (83) setup_timer_1(T1_DISABLED); Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 72 http://www.lrc-tnu.edu.vn (84) (85) setup_timer_2(T2_DIV_BY_16,255,1); setup_ccp1(CCP_PWM); (86) (87) (88) setup_ccp2(CCP_PWM); set_pwm1_duty(0); set_pwm2_duty(0); (89) currently (90) setup_comparator(NC_NC_NC_NC);// This device COMP not supported by the PICWizard setup_oscillator(OSC_8MHZ); (91) (92) LATCH1=0; LATCH2=0; (93) (94) PowerFailAL = 0; RecFailAL = 0; (95) (96) (97) (98) ConFailAL = 0; HighTempAL=0; CCUAL=0; EnviAL=0; (99) ComPowerAL=0; (100) (101) (102) (103) (104) OBlightAL=0; CCUAL=0; hightemp=35; lowtemp=20; // TODO: USER CODE!! (105) (106) while(1) { (107) (108) (109) (110) (111) (112) (113) (114) CCUAL=0; set_ADC_channel(0); value=read_ADC(); temp1=(value-558.5)/2.048; if (temp1hightemp)) { (140) (141) HighTempAL=1; led1=0x09; (142) (143) (144) led2=0x07; hienthi(); } (145) (146) (147) (148) (149) (150) (151) (152) else HightempAL=0; if(!ConFail) { ConFailAL=1; led1=0x46; led2=0x0E; hienthi(); } Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 74 http://www.lrc-tnu.edu.vn (153) (154) else ConFailAL=0; if((!Smoke)||(!Humid)||(!Door)) (155) (156) (157) { EnviAL=1; if(!Smoke) {led1=0x12;led2=0x0E;}hienthi();} (158) (159) (160) else if(!Humid) {led1=0x09;led2=0x63;hienthi();} else if(!Door) {led1=0x21;led2=0x23;hienthi();} } (161) (162) else EnviAl=0; if(ComPower==0) (163) (164) { ComPowerAL=1; (165) (166) (167) (168) led1=0x46; led2=0x23; hienthi(); } (169) else ComPowerAL=0; (170) (171) (172) (173) if(!OBlight) { OBlightAL=1; led1=0x40; (174) (175) led2=0x03; hienthi(); (176) } (177) else OBlightAL=0; (178) } (179) } Thuyết minh chương trình phần mềm Dịng (1): Khai báo file header chương trình Dịng (2) - dòng (34): Định nghĩa cổng, chân cổng, biến chương trình Trong biến bao gồm biến đầu vào, đầu ra, chân điều khiển nối với nút nhấn, biến trung gian Dịng (35) - dịng (43): Phần chương trình phục vụ ngắt ngồi chân RB4 RB7 Dịng (44) - dòng (67): Khai báo nội dung chương trình con: Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 75 http://www.lrc-tnu.edu.vn Chương trình chuyển đổi từ giá trị đầu AD thành giá trị BCD Chương trình hiển thị LED Chương trình chuyển đổi giải mã hiển thị giá trị nhiệt độ LED Dòng (68) - dịng (179): Phần thân chương trình chính, bao gồm: Dòng (68) - dòng (104): Phần khởi tạo chương trình Dịng (105) - dịng (179): Vịng lặp chương trình Vi mạch đệm 74HC245: Vi mạch 74HC245 đệm hướng theo chuẩn TTL với cổng đầu cấu tạo gồm trạng thái Sơ đồ chân, sơ đồ logic vi mạch mơ tả sau: Trong chức chân: Vcc, GND: Chân cấp nguồn, nối mass Chân OE: Cho phép xuất liệu, tích cực mức thấp Chân DIR: Điều khiển hướng liệu (từ A sang B ngược lại) Các chân A0 ÷ A7, B0 ÷ B7: Có thể chân đầu vào đầu Bảng trạng thái vi mạch sau: Vi mạch chốt 74HC573 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 76 http://www.lrc-tnu.edu.vn Là vi mạch chốt liệu theo chuẩn TTL, với cổng cấu tạo trạng thái Việc chốt xuất liệu điều khiển chân LE (Latch Enable - Cho phép chốt) OE (Output Enable - Cho phép xuất liệu) Khi chân LE mức cao, liệu đưa vào chốt thông qua chân Dn Khi LE đưa xuống mức thấp, liệu lưu chốt, không phụ thuộc vào giá trị đầu vào Dn Khi chân OE đưa xuống mức thấp, liệu đưa từ chốt đầu Qn Ngược lại OE mức cao, đầu Qn trì trạng thái trở kháng cao Sơ đồ chân sơ đồ logic 74HC573 sau: Chức chân: Vcc, GND: Chân cấp nguồn, nối mass LE: Chân cho phép chốt liệu OE: Chân cho phép xuất liệu Dn: Đầu vào liệu Qn: Đầu liệu Bảng trạng thái vi mạch 74HC573 sau: Vi mạch đệm công suất ULN 2803 Là vi mạch công suất cấu tạo gồm dãy transistor mắc theo sơ đồ Darlington, sử dụng làm thành phần trung gian mạch điều khiển mạch điện Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 77 http://www.lrc-tnu.edu.vn áp, dòng điện lớn Các transistor đầu thiết kế theo dạng hở cực C cho phép vi mạch kết nối với mức điện áp khác Dòng tải tối đa cho phép 500mA Một số thông số hoạt động cực đại: Sơ đồ chân: Cấu tạo nhánh: Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 78 http://www.lrc-tnu.edu.vn