1. Trang chủ
  2. » Luận Văn - Báo Cáo

Điều khiển và giám sát nhà cao tầng dùng vi xử lí 89c51

104 8 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 104
Dung lượng 791,33 KB

Nội dung

= BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ NGÀNH ĐIỀU KHIỂN TỰ ĐỘNG  Đề tài: GVHD: Nguyễn Thị Phương Hà SVTH : Lê Hoàng Dũng K97TĐ MSSV : 49700301 LỜI CẢM TẠ Sinh viên thực xin bày tỏ lịng biết ơn đến Nguyễn Thị Phương Hà cương vị người hướng dẫn đề tài tận tình giúp đỡ suốt trình thực đồ án Sinh viên thực xin bày tỏ lịng biết ơn đến thầy trường Đại Học Kỹ Thuật tận tình dạy dỗ truyền thụ kinh nghiệm quý báu suốt thời gian qua Cuối sinh viên thực xin chân thành cảm ơn tác giả tài liệu tham khảo tập báo cáo đóng góp ý kiến cuả tất bạn sinh viên suốt trình thực đo án Sinh viên thực Lê Hoàng Dũng MỤC LỤC PHẦN I: GIỚI THIỆU ĐỀ TÀI Chương I: Tổng quan đề tài phương án thiết kế thi công I Yêu cầu đề tài II Hướng thực đề tài III Vấn đề kết nối mạng Chương II: Sơ lược cảm biến báo cháy I Chuyển đổi nhiệt điện .5 Chuyển đổi cặp nhiệt điện .6 Các loại cảm biến nhiệt II Mạch phát khói ( dùng cảm biến quang hay cảm biến ion ) .8 Mạch phát khói dùng phương pháp quang ( cảm biến quang) .8 Mạch phát khói dùng nguyên lý ion (cảm biến ion) A III Mạch phát cháy 10 Tế bào quang điện 10 Quang điện trở 10 Photo diode .10 B IV Đo nhiệt độ thạch anh 11 Cộng hưởng thạch anh 11 Độ nhạy nhiệt .13 Cách thực nhiệt kế đo 13 PHẦN II: THIẾT KẾ MẠCH ĐIỀU KHIỂN VÀ GIÁM SÁT NHÀ CAO TẦNG DÙNG VI XỬ LÝ 89C51 A Thiết kế phần cứng 15 I Tổng quan đề tài 15 Sơ lược đề tài 15 Các khối chức 17 II Thiết kế phần cứng 17 Cảm biến quang Mạch mô cảm biến quang phát người 19 Mạch động lực đóng cắt thiết bị 20 Mạch nguồn cung cấp 21 Mạch hiển thị nhiệt độ LED đoạn 22 Cơng tắc đóng ngắt thiết bị theo u cầu 23 Mạch chuông 23 Mạch giao tiếp máy tính qua mạng RS-485 .24 Mạch cảm biến đo nhiệt độ dùng IC LM335 28 10 Thiết kế mạch 89C51 sơ đồ chân chức chúng 32 10.1 Giới thiệu vi xử lý 89C51 .32 10.2 Tổ chức sử dụng chân 89C51 37 B Lưu đồ giải thuật 40 C Chương trình vi xử ly ù61 D Giới thiệu IC dùng đề tài .72 PHẦN III: GIAO TÍÊP MÁY TÍNH VỚI VI XỬ LÝ Chương I: Sơ lược mạng máy tính giao thức truyền .77 A Tổng quan mạng máy tính 77 I Các yếu tố mạng máy tính 77 II Phân loại mạng máy tính 78 III Đường truyền vá thiết bị dùng mạng máy tính78 B Giao tiếp nối tiếp 81 I Đặc điểm chuẩn RS-232, RS-422, RS-485 82 RS-232 .82 RS-422 .83 RS-485 .83 II Các phương thức truyền thông 83 III Truyền thông tuần tư .84 Chương II: Giao tiếp máy tính với vi xử ly A Điều khiển thu phát liệu thông qua cổng Com .86 I Cổng RS-232 86 II Chip thu phát bất đồng bộ-Vi mạch UART (Universal Asynchronous Receiver) 8250A/16450 88 III Truyền nhận liệu qua cổng nối tiếp .89 I Chương III: chương trình truyền thơng ngơn ngữ visual basic 6.0 I Tổng quan Visual Basic 90 II Truyền thông nối tiếp dùng visual basic 92 III Phần giao diện 101 PHẦN I GIỚI THIỆU ĐỀ TÀI Chương I TỔNG QUAN VỀ ĐỀ TÀI ĐIỀU KHIỂN VÀ GIÁM SÁT TOÀ NHÀ BẰNG VI XỬ LÝ 89C51 I Yêu cầu đề tài: Trong sống tại, khoa học kỹ thuật phát triển nhanh, công cụ đời giúp giải phóng lao động trí óc: nghiên cứu, cải tiến, sáng tạo Chỉ tiêu khoa học kỹ thuật nâng cao chất lượng hiệu suất công việc, công nghệ tự động đời đáp ứng nhu cầu Cho nên, em nghiên cứu đề tài “ Điều khiển giám sát nhà cao tầng dùng vi xử lý 89C51 qua mạng RS-485 Các kít vi xử lý hoạt động hồn tồn độc lập theo chương trình lập sẵn Bên cạnh đó, chúng cịn giám sát điều khiển thiết bị phịng thơng qua gởi lệnh đến kít vi xử lý cần điều khiển để thi hành lệnh Ngồi việc điều khiển thiết bị dùng điện phịng, ta cịn đảm bảo an ninh cho phòng hệ thống phát cháy, phát trộm cảm biến quang Một chuyên gia công nghệ nhà thông minh ( Home Automation ) – Kenne P.Wacks – viết báo giới thiệu nhà thông minh sau: “ Hơn năm qua, công nghệ gọi công nghệ nhà thông minh nghiên cứu phát triển Công nghệ tạo nên hệ thiết bị cung cấp cho người dùng chúng Những cơng nghệ trước với khái niệm nhà thông minh sau tạo nên sản phẩm loại hình dịch vụ mẻ tương lai Một số cơng ty giới thiệu nhà tự động Một vài công ty lớn viện nghiện cứu thăm dị cơng nghệ đầy tiềm Mạng truyền thông nhà cung cấp sở hạ tầng để liên kết thiết bị cảm biến, điều khiển bảng điều khiển nhà Điều trở nên khả thi cách tạo phát triển công nghệ truyền thông nhà tự động Trong nhà thông minh từ “thiết bị” không đề cập đến dụng cụ nhà bếp, thiết bị video/audio, hệ thống dịch chuyển , thiết bị chiếu sáng, thiết bị sưởi ấm, làm lạnh, hệ thống an ninh Công nghệ bật đèn xanh cho công ty nghiên cứu cho đời sản phẩm hình thức dịch vụ Các sản phẩm có chung điểm tương đồng thuộc tính tương tự Các thuộc tính là:  Vai trị thiết bị nhà thông minh: hầu hết thiết bị nhà có vỏ nhựa hay kim loại Một vài thiết bị vận hành độc lập với thiết bị khác Tuy nhiên có dụng cụ cần có thiết bị khác điều khiển Các thiết bị ngơi nhà thơng minh truyền liệu Ta nhóm thiết bị lại chung nhóm Ví dụ: hệ thống an ninh, hệ thống Audio/Video Trong tương lai hệ thống cho phép máy giặt hay máy rửa chén yêu cầu phận nung nóng nước, chuẩn bị nước nóng chúng cần đến  Sự hợp chuẩn truyền thông: thiết bị tương lai có chuẩn truyền thơng chung, có dây nối đặc biệt Tiêu chuẩn ngơi nhà thông minh làm nhẹ bớt công việc nhà sản xuất việc phải sáng chế giao thức truyền thông cung cấp đường dây dẫn liệu  Yêu cầu đề tài mà em giao: - Thiết kế phần cứng mạch báo cháy tự động - Mạch động lực điều khiển thiết bị dùng điện vi xử lý - Mạch phát trộm cảm biến: dùng LED hồng ngoại - Mạch giao tiếp máy tính vi xử lý - Lập trình giao tiếp ngơn ngữ visual basic II Hướng thực đề tài Để thực phần cứng đảm bảo yêu cầu trên, em thiết kế mạch mô cảm biến quang phát trộm cảm biến quang đếm người vào phịng Do mạch cảm biến cháy có giá trị cao nên em dùng IC đo nhiệt độ để mơ Đó IC nhiệt LM 335 Dùng vi xử lý 89C51 để điều khiển mạch động lực đóng tắt thiết bị Chuẩn truyền thơng nối tiếp thông dụng RS-232C, nhiên chuẩn truyền thông dùng truyền số liệu khoảng cách ngắn (15m) Nên để truyền liệu từ kit vi xử lý máy tính khoảng cách xa ta dùng chuẩn RS-485 Để chuyển đổi từ chuẩn RS-232C sang chuẩn RS-485 ta cần phải có mạch điện chuyển đổi Sơ đồ khối mạch chuyển đổi sau: Kit vi xử lí I TXD Max 75176 RTS 232 PC RXD Kit vi xử lí II Sơ đồ khối mạch kết nối máy tính kit vi xử lí Kit vi xử lý em thiết kế có chức sau:  Đo nhiệt độ phòng hiển thị lên LED đoạn, chức đo nhiệt độ, mạch thay cho cảm biến cháy Khi nhiệt độ IC LM335 tăng lên, tùy theo mức lập sẵn chương trình mà báo chng, hay gởi liệu máy tính biết trạng thái phòng theo giao thức truyền liệu theo kiểu hỏi vòng  Ngồi ra, mạch cịn có chức đếm số người hay vào phòng Trong phòng để đảm bảo tính tự động hồn tồn khơng có cơng tắc điện thiết bị mà vi xử lý điều khiển Nếu số người phòng lớn hay vi xử lý gởi tín hiệu đến mạch động lực kích đóng thiết bị quạt, máy lạnh, đèn Nếu người phòng khơng vi xử lý gởi tín hiệu đến mạch động lực tắt thiết bị phịng Tuy nhiên, mạch có hai nút nhấn hay số nút nhấn để người phịng điều khiển có tín hiệu hồi tiếp vi xử lý nhận biết thiết bị đóng hay mở Khi người dùng nhấn nút tương ứng tùy vào trạng thái thiết bị mà vi xử lý kích đóng hay ngắt thiết bị Phần làm cho mạch linh động, khơng tn theo chương trình phần mềm cài sẵn cách cứng ngắt  Giả sử nhiệt độ trời giảm xuống khoảng 15 oC khơng cần bật máy lạnh làm Tuy nhiên, vi xử lý nhận thấy có người phịng đóng nguồn cho máy lạnh hoạt động Người phịng tắt máy lạnh nút nhấn mạch vi xử lý Ta khắc phục nhược điểm cách viết chương trình cho vi xử lý so sánh nhiệt độ phòng với nhiệt độ chuẩn ( 15oC chẳng hạn ) Nếu nhiệt độ đo bé 15 oC tắt máy lạnh Do mạch sử dụng ADC 0809 sai số tương đối không nhiều, nhiên mạch gia cơng tín hiệu IC nhiệt LM335 nhiệt độ thấp áp nhỏ ADC đổi sai số tương đối cao Sai số mạch gia công gây đồng thời cộng thêm sai số thân ADC 0809 Cho nên không đảm bảo mạch hoạt động thiết kế nhiệt độ nhỏ 15oC  Mạch cảm biến quang dùng để phát trộm đặt thiết bị hay dụng cụ cần gìn giữ III Vấn đề kết nối mạng Thuật ngữ mạng trở nên quen thuộc mạng thông tin Internet ngày trở nên gần gũi với người Nếu quản lý thiết PC pháp thông thường không kinh tế tiết bị phòng theo phương kiệm Ta cần phải để tiết kiệm cho nhiều tốt RXD TXD Cho nên để tránh lãng phíRTS ta nên điều khiển thiết bị máy tính Chỉ cần nhânKhối viênchuyển tắt hay mở thiết bị phòng đổi Nếu ta tắt thiết bị tay khơng kinh tế, khách khỏi RS-485 sang R-232 phòng mà quên tắt thiết bị lãng phí nhiều lượng điện Tiết kiệm phần lượng hao phí ta giúp cho việc giảm giá B cho thuê A phòng chẳng hạn thành kinh doanh Máy tính có khả đóng tắt thiết bị thơng qua vi xử lý, đồng lưu trữ trạng thái thiết bị trước A B B Khối chuyển đổi mức TTL sang RS-485 RXD TXD Kit vi xử lí phịng A B Khối chuyển đổi mức TTL sang RS-485 Điều RXD khiển TXD Kit vi xử lí phịng Điều khiển A Khối chuyển đổi mức TTL sang RS-485 RXD TXD Kit vi xử lí phịng Sơ đồ khối mạch kết nối máy tính kit vi xử lí Điều khiển Chương II GIỚI THIỆU VỀ CÁC MẠCH BÁO CHÁY Cảm biến dựa vào đặc tính vật lý vật liệu, tượng vật lý để chuyển đổi đại lượng phi điện thành tín hiệu điện để đơn giản trình đo lường tính tốn Mơ tả tốn học cảm biến hàm truyền ký hiệu H Phương trình mơ tả cảm biến biểu diễn sau: Đại lượng (điện)=H x đại lượng vào (phi điện)  Các đặc tính chuẩn cảm biến: _ Độ nhạy _ Độ ổn định _ Nhiễu (có khả hoạt động trường có tín hiệu gây nhiễu hay nhiễu cảm biến sinh trình hoạt động) _ Tầm đo _ Độ tuyến tính (cảm biến có độ tuyến tính cao tốt)  Hệ thống báo cháy thường gồm loại mạch báo cháy thông dụng: _ Mạch báo cháy nhiệt _ Mạch báo cháy khói _ Mạch báo cháy lửa Hầu hết linh kiện điện tử có đặc tính nhiệt thay đổi theo nhiệt độ Nhưng để làm cảm biến ta chọn vật liệu có độ nhạy cao hàm truyền tốt mà Đây loại cảm biến tương đối phức tạp tinh vi, sử dụng linh kiện điện tử chuyên dụng Các linh kiện điện tử có nhiều thị trường linh, kiện Việt Nam Nó sử dung nguyên tắc dòng hay áp linh, kiện thay đổi nhiệt độ nơi đặt thiết bị thay đổi Tùy theo loại mà tăng hay giảm đại lượng điện theo nhiệt độ Loại cảm biến nhạy gây tình trạng báo động nhầm có nguồn nhiệt để gần cảm biến Ví dụ thân nhiệt người chẳng hạn I Chuyển đổi nhiệt điện : Chuyển đổi nhiệt điện chuyển đổi dựa q trình nhiệt đốt nóng, làm lạnh, trao đổi nhiệt… Thực tế đo lường đại lượng không điện theo phương pháp điện thường dùng hai tượng, ( hiệu ứng nhiệt điện hiệu ứng thay đổi nhiệt trở dây dẫn hay chất bán dẫn nhiệt độ thay đổi Tương ứng với hai tượng trên, người ta phân thành hai loại: chuyển đổi cặp nhiệt điện chuyển đổi nhiệt điện trở Chuyển đổi cặp nhiệt điện: a Nguyên lý làm việc cặp nhiệt điện : chủ yếu dựa hai tượng sau: Nếu hai dây dẫn khác nối với hai điểm 2, hai điểm ( ví dụ ta lấy điểm 1) đốt nóng mạch xuất dòng điện gây sức điện động gọi sức điện động nhiệt điện, hiệu số hàm số nhiệt độ ET = f(t1)- f(t2) Mạch điện gọi cặp nhiệt điện hay cặp điện ngẫu Điểm đốt nóng gọi đầu cơng tắc ( điểm ), điểm cịn lại gọi đầu tự do( điểm thứ ) số f(t2)=const thì: ET = f(t1) – C Biểu thức sở phép đo nhiệt độ cặp nhiệt điện Theo phương pháp này, việc đo nhiệt độ t1 dẫn đến việc đo sức điện động cặp nhiệt điện giữ cố định nhiệt độ đầu tự Vật liệu dùng để chế tạo cặp nhiệt điện ngẫu cần đảm bảo yêu cầu sau: quan hệ sức điện động nhiệt điện với nhiệt độ hàm đơn trị, tính chất nhiệt điện khơng thay đổi, độ bền hóa học học phải cao, dẫn nhiệt tốt, có trị số suất điện động nhiệt lớn Cặp nhiệt điện nối với phương pháp hàn đặc biệt đặt thiết bị bảo vệ nhằm tránh bị ăn mịn hóa học, thiết bị chế tạo từ vật liệu bền học, khơng thấm khí, khơng bị ăn mòn Thiết bị thường ống chế tạo thép đặc biệt Đối với cặp nhiệt điện quí , ống bảo vệ chế tạo thạch anh gốm Để cách điện người ta dùng Amian (3000C ), ống thạch anh ( với 10000C ) ống sứ đến 1400C b Những nguyên nhân gây sai số hiệu chỉnh cho đúng: Ta biết phương trình biến đổi cặp nhiệt điện trường hợp chung, cách gần biểu diễn dạng : ET =A.t+B.t2 +C.t3 ET : sức điện động nhiệt T: hiệu nhiệt độ đầu công tắc đầu tự A, B, C :các số phụ thuộc vào vật liệu dây làm cặp nhiệt điện Và độ nhạy tính sau: ST  A+2Bt +3Ct Độ nhạy số mà phụ thuộc vào nhiệt độ Do cặp nhiệt điện công nghiệp thường cho trước bảng sức điện động ứng với nhiệt độ khác khoảng 10C với đầu tự 00C c Chuyển đổi nhiệt điện trở: Nhiệt điện trở chuyển đổi có điện trở thay đổi theo thay đổi nhiệt độ Tùy theo tác dụng nhiệt dòng điện cung cấp chạy qua chuyển đổi người ta phân ra: nhiệt điện trở đốt nóng nhiệt điện trở khơng đốt nóng Trong nhiệt điện trở khơng đốt nóng dịng điện chạy qua nhỏ khơng làm tăng nhiệt độ điện trở nhiệt độ nhiệt độ mơi trường Nhiệt điện trở loại dùng để đo nhiệt độ đại lượng học đo dịch chuyển Nhiệt điện trở đốt nóng, dịng điện chạy qua lớn làm nhiệt độ tăng lên cao nhiệt độ mơi trường , nên có tỏa nhiệt môi trường xung quanh Nhiệt điện trở loại dùng việc đo lưu lượng, lưu tốc dòng chảy, phân tích chất hóa học… Nhiệt điện trở chế tạo dây chất bán dẫn Yêu cầu vật liệu chế tạo có hệ số nhiệt độ lớn, bền hóa học, điện trở suất lớn, khó nóng chảy… Để giảm tổn hao nhiệt dẫn, chiều dài nhiệt điện trở cần phải lớn đường kính dây gấp nhiều lần Các loại cảm biến nhiệt: a Thermocouples: Thermocouples biến đổi đại lượng nhiệt độ thành dòng điện hay điện áp DC nhỏ Nó gồm có hai dây kim loại khác nối với hai đầu mối nối Khi mối nối đặt vị trí khác nhau, dây dẫn xuất sức điện động Sức điện động tỉ lệ với chênh lệch nhiệt độ hai đầu mối nối Thermocouples có hệ số nhiệt dương b Thermistor: Thermistor điện trở có độ nhạy nhiệt cao phi tuyến vả có hệ số nhiệt âm Điện trở giảm phi tuyến tăng nhiệt độ Thermistor điện trở nên dịng điện qua sinh nhiệt gây nên sai số lớn Do phải hạn chế dịng qua nhỏ c Điện trở dò nhiệt (RTDs): Cảm biến loại dựa vào đặc tính trở phụ thuộc nhiệt độ vật liệu Nó có hệ số nhiệt dương nhỏ, đo xác d IC cảm biến nhiệt độ bán dẫn: IC cảm biến bán dẫn kết hợp với mạch gia cơng bên Nhờ IC tạo tín hiệu điện áp tỷ lệ với nhiệt độ tuyệt đối, với độ nhạy nhiệt độ xác cao IC loại phổ biến thị trường Với IC thông dụng LM335 II Mạch phát khói ( dùng cảm biến quang hay cảm biến ion ): Mạch phát khói dùng phương pháp quang ( cảm biến quang): Loại sử dụng linh kiện thu phát quang Người ta sử dụng linh kiện phát quang ( LED hồng ngoại ) chiếu tia sáng qua vùng cần bảo vệ linh kiện thu quang ( Photodiode, Phototransistor, quang trở…) Khi có khói bay lên vùng cần bảo vệ che chắn hay làm yếu cường độ ánh sáng chiếu vào linh kiện thu Khi cường độ ánh sáng thay đổi đến giá trị cảm biến nhận dạng phát tín hiệu báo động a Điện trở quang: Điện trở quang linh kiện bán dẫn thụ động khơng có lớp chuyển tiếp PN Vật liệu để chế tạo điện trở quang Cds (Cadmiun Sulfid) , CdSe (Cadmiun Selenid ), ZnS ( Zine Sulfid ) tinh thể khác Khi bị chiếu ánh sáng, độ dẫn điện ( điện dẫn suất ) vật liệu bán dẫn gia tăng hạt mang điện tích gia tăng thêm =e(nn + pp ) truyền thơng Như để xác định xem điều xảy ta phải kiểm tra thuộc tính CommEvent Các lỗi truyền thơng bao gồm : Hằng số comEventBreak comEventFrame comEventOverrun Giá trị 1001 1004 1006 comEventRxOver comEventRxParity comEventTxFull 1008 1009 1010 comEventDCB 1011 Mô tả Đã nhận tín hiệu Break Phần cứng phát lỗi khung truyền Tràn cổng Phần cứng đọc ký tự trước ký tự kế gửi đến bị Tràn đệm nhận Hết chỗ đệm nhận Phần cứng phát lỗi chẵn lẻ Bộ đệm truyền đầy Bộ đệm truyền bị đầy cố đưa thêm ký tự vào hàng đợi Một lỗi xuất điều khiển liệu(Data Control Block) port Các kiện truyền thông bao gồm: Hằng số Giá trị ComEvSend comEvReceive ComEvCTS ComEvDSR ComEvCD ComEvRing ComEvEOF Mơ tả Có số ký tự định SThreshold đệm truyền Đã nhận số ký tự với số ký tự định Rthreshold Sự kiện phát liên tục ta dùng thuộc tính Input để chuyển liệu khỏi đệm nhận Có thay đổi đường CTS Có thay đổi đường DSR Sự kiện phát sinh DSR chuyển từ Có thay đổi đường CD (Carrier Detect) Phát tiếng chuông (gọi) Một số vi mạch UART không hỗ trợ việc Ký tự EOF (Mã ASCII 26) nhận Kiểu liệu thuộc tính : Integer f Thuộc tính InputLen Đặt trả lại số ký tự mà thuộc tính Input đọc từ đệm nhận Giá trị mặc định thuộc tính Đặt InputLen =0 để điều khiển truyền thông đọc hết nội dung đệm nhận Cú pháp câu lệnh sau : [form.] Mscomm1.InputLen [=numchars%] Thuộc tính có hữu ích đọc liệu từ máy có lối định dạng cố định chiều dài khối liệu Kiểu liệu thuộc tính : Integer g Thuộc tính ParityReplace Đặt trả lại ký tự dùng thay ký tự khơng hợp lệ dịng liệu lỗi chẵn lẻ xảy Cú pháp : [form.]Mscomm1.ParityReplace [=char$] Bit chẵn lẻ bit truyền với bit liệu dùng cho việc kiểm tra lỗi Khi dùng bit chẵn lẻ ,điều khiển truyền thông cộng tất bit có giá trị kiểm tra tổng số bit xem chẵn hay lẻ (tương ứng với việc xác lập bit chẵn lẻ mở cổng ) Theo mặc định ,điều khiển dùng dấu chấm hỏi (?) để thay ký tự không hợp lệ Đặt ParityReplace “ “ để bỏ khả thay ký tự lỗi chẵn lẻ xuất Sự kiện OnComm phát sinh thuộc tính CommEvent đặt thành comEventRxParity Kiểu liệu thuộc tính : String h Thuộc tính Rthreshold Đặt trả lại số ký tự nhận trước điều khiển Mscomm1 đặt thuộc tính comEvent thành comEvReceive phát sinh kiện OnComm Cú pháp : [form.] Mscomm1.Rthreshold [=numchar%] Xác lập để làm khả phát sinh kiện OnComm nhận ký tự Xác lập 1,chẳng hạn, để làm phát sinh kiện OnComm có ký tự nhận vào đệm nhận Kiểu liệu thuộc tính : Integer  Hàm ComInput Trả lại xóa chuỗi ký tự đệm nhận Cú pháp sau : ComInput(ByVal hwnd As Integer ,LpData as Any ,ByVal Data as Integer ) As Integer Hàm tương tự thuộc tính Input trả lại số byte nhận  Hàm ComOutput Viết chuỗi ký tự vào đệm truyền Cú pháp sau : ComOutput(ByVal hwnd As Integer ,LpData as Any ,ByVal Data as Integer ) As Integer Hàm tương tự thuộc tính Output trả lại số byte ký tự gửi Sự kiện Oncomm Sự kiện OnComm phát sinh vào giá trị thuộc tính CommEvent thay đổi Cú pháp kiện : Private Sub [form.]Mscomm1_OnComm() Thuộc tính CommEvent chứa mã số lỗi hay kiện phát sinh kiện OnComm Nếu đặt thuộc tính Rthreshold SThreshold vơ hiệu bẫy kiện Receive Send Hỏi vòng cổng RS-232 : Thường làm việc với điều khiển Mscomm1, ta dùng phương pháp điều khiển theo kiện Nhưng ta sử dụng kỹ thuật hỏi vịng để thơng tin qua cổng RS-232 Chương trình ví dụ sau sử dụng COM2 để gửi thơng báo “Hello” sau chờ chuỗi nhận Kỹ thuật quy định nhận đáp ứng cách kiểm tra liên tục số ký tự nhận đệm nhận (InBufferCount) Khi có nhiều ký tự đệm lối vào ký tự đọc Chương trình sau : Private Sub Form_Load() Dim Str as String ‘chuỗi để chứa liệu nhập Mscomm11.ComPort =2 ‘dùng COM2 Mscomm11.Settings=”9600 ,N ,8 ,1” ‘9600 baud ,không ‘parity ,8 bits data ,1 ‘stop bit Mscomm11.InputLen=0 ‘đọc hết đệm lối vào Input dùng Mscomm11.PortOpen=True ‘mở cổng Text1.text=”Sending : Hello” Mscomm11.Output=”Hello” ‘gửi thông báo Do ‘chờ đáp ứng từ cổng DoEvents Loop Until Mscomm11.InBufferCount>=2 Str = Mscomm11.Input ‘đọc đệm Input Text2.Text=”Received:” +Str Mscomm11.PortOpen=False ‘đóng cổng nối tiếp End Sub Các thông báo lỗi (Error Messages Code) Số lỗi 380 383 394 8000 8001 8002 8003 8004 8005 8006 8007 8008 Mơ tả Giá trị thuộc tính khơng hợp lệ Thuộc tính đọc, comSetNotSupport Thuộc tính đọc, comGetNotSupport Tác động không hợp lệ lên cổng mở Giá trị timeout cần phải lớn Zero Số lỗi 8009 Số cổng khơng hợp lệ 8014 Thuộc tính có chạy chương trình Thuộc tính đọc chạy chương trình Cổng mở Số nhận dạng thiết bị không hợp lệ không hỗ trợ Giá trị Baud xác định không hợp lệ Kích thước byte xác định khơng hợp lệ 8010 8011 Mô tả Lỗi thông số mặc định Phần cứng khơng sẵn dùng (bị khóa thiết bị khác) Không thể định vị hàng đợi (queues) 8012 Cổng chưa mở 8013 Cổng mở 8015 8016 8018 Không thể cho phép khai báo(nitification)comm Không đặt trạng thái cho comm Không đặt mặt nạ kiện comm Tác động hợp lệ cổng mở 8019 Thiết bị bận 8020 Lỗi đọc thiết bị truyền thông 8021 Lỗi bên liên quan khối điều khiển thiết bị port III Phần giao diện : Chương trình giao tiếp nối tiếp dùng ngơn ngữ Visual Basic sau: ‘Phần khai báo biến toàn cục trrong module public LenhT, DiaChi As String 'bien chua ma lenh dua ve cho vi xu ly Public GTNhan As Variant ' bien chua data tu vi xu ly gui len Public Byte1, Byte2, Byte3, Byte4 As String 'la byte nhan duoc tu vi xu ly 'byte1 chua dia chi cua vxl 'byte2 chua gia tri nhiet 'byte3 chua so nguoi phong 'byte4 trang thai den va quat Public Byte21, Byte22, Byte23, Byte24 As String 'cac bien cho phong Public Const AnNinh = "Khong co nguoi la xam nhap" Public Const KAnNinh = "Canh bao co nguoi la xam nhap" ‘ ham truyen du lieu toi cac vi xu li Public Sub TRUYEN(GIATRI As String) Dim i As Integer frmchinh.MSComm1.RTSEnable = True frmchinh.MSComm1.Output = GIATRI For i = To 10000 i=i+1 Next i frmchinh.MSComm1.RTSEnable = False End Sub ‘ Ham nhan du lieu tu vi xu li Public Sub NHAN() Dim i, thongbao As Integer Dim Test As String frmchinh.MSComm1.RTSEnable = False For i = To 30000 i=i+1 Next i Do DoEvents Loop Until (frmchinh.MSComm1.InBufferSize >= 4) Or (i >= 30000) GTNhan = frmchinh.MSComm1.Input 'thuc hien gan gia tri cho bytei (i=1-4) Test = Left$(GTNhan, 1) If Test = "A" Then Byte1 = Left$(GTNhan, 1) Byte2 = Mid$(GTNhan, 2, 1) Byte3 = Mid$(GTNhan, 3, 1) Byte4 = Right$(GTNhan, 1) Else If Test = "B" Then Byte21 = Left$(GTNhan, 1) Byte22 = Mid$(GTNhan, 2, 1) Byte23 = Mid$(GTNhan, 3, 1) Byte24 = Right$(GTNhan, 1) Else thongbao = MsgBox("So lieu truyen ve bi loi.Can xem lai duong truyen", vbOKOnly, "Loi duong truyen") End If End If End Sub ‘******************************************************** ‘Chuong trinh Frmchinh ‘******************************************************* Dim ToanCuc As Variant Dim Dem, i, j As Integer Dim NHAN As String Private Sub ChkP01_Click() If ChkP01.Value = Then frmP01.Show If ChkP01.Value = Then Unload frmP01 End If '****************************** End Sub Private Sub ChkP02_Click() If ChkP02.Value = Then frmP02.Show If ChkP02.Value = Then Unload frmP02 End If '*************************** End Sub Private Sub Command1_Click() End End Sub Private Sub Form_Load() Dim i1, i2 As Integer ChkP03.Enabled = False ChkP04(1).Enabled = False LblTThai.Caption = "Binh thuong" TxtChinh = CStr(2) OptAuto.Value = True '********************************* 'PHAN GIA DINH BIEN Byte2 = "!" Byte3 = "!" Byte4 = "O" Byte22 = "!" Byte23 = "!" Byte24 = "O" LenhT = "a" '********************************* 'KHOI DONG COM If MSComm1.PortOpen = True Then MSComm1.PortOpen = False MSComm1.CommPort = MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True 'cho thu du lieu dua ve tu vi xu ly frmP02.Timer1.Enabled = True frmP01.Timer1.Enabled = True 'hien thi so nguoi len frmchinh frmchinh.Timer1 = True End Sub Private Sub OptAuto_Click() With frmP01 frmP01.fraDkP01.Enabled = False frmP01.OptTdenP01.Enabled = False frmP01.OptMdenP01.Enabled = False frmP01.OptTquatP01.Enabled = False frmP01.OptMquatP01.Enabled = False frmP01.Frame1.Enabled = False frmP01.Frame2.Enabled = False End With With frmP02 frmP02.FraDkP02.Enabled = False frmP02.OptTdenP02.Enabled = False frmP02.OptMdenP02.Enabled = False frmP02.OptTquatP02.Enabled = False frmP02.OptMquatP02.Enabled = False frmP02.Frame2.Enabled = False frmP02.Frame3.Enabled = False End With frmP01.cmdDongYP01.Enabled = False frmP02.cmDongYP02.Enabled = False '*********************************** End Sub Private Sub OptDenChinh_Click() FrmDkDen.Show End Sub Private Sub OptManual_Click() With frmP01 frmP01.fraDkP01.Enabled = True frmP01.OptTdenP01.Enabled = True frmP01.OptMdenP01.Enabled = True frmP01.OptTquatP01.Enabled = True frmP01.OptMquatP01.Enabled = True frmP01.Frame1.Enabled = True frmP01.Frame2.Enabled = True End With With frmP02 frmP02.FraDkP02.Enabled = True frmP02.OptTdenP02.Enabled = True frmP02.OptTquatP02.Enabled = True frmP02.OptMdenP02.Enabled = True frmP02.OptMquatP02.Enabled = True frmP02.Frame2.Enabled = True frmP02.Frame3.Enabled = True End With frmP01.cmdDongYP01.Enabled = True frmP02.cmDongYP02.Enabled = True '************************************ End Sub Private Sub OptQuatChinh_Click() FrmDkQuat.Show End Sub Private Sub Timer1_Timer() ' xuat so nguoi frmchinh i1 = Val(frmP01.TxtSoNguoiP01.Text) i2 = Val(frmP02.TxtSoNguoiP02.Text) TxtChinh.Text = CStr(i1 + i2) End Sub Private Sub cmdDongYP01_Click() Dim Test As String 'xac dinh lenh hoat dong cho vxl If (OptMdenP01.Value = False And OptMquatP01.Value = False) Then LenhT = "C" If (OptMdenP01.Value = False And OptMquatP01.Value = True) Then LenhT = "D" If (OptMdenP01.Value = True And OptMquatP01.Value = False) Then LenhT = "F" If (OptMdenP01.Value = True And OptMquatP01.Value = True) Then LenhT = "G" 'xac dinh dia chi truyen la vxl DiaChi = "A" Test = LenhT 'goi ham truyen LenhT cho vi xu ly Call TRUYEN(DiaChi) Call TRUYEN(Test) Stop End Sub Private Sub cmdThoatP01_Click() Unload Me frmchinh.ChkP01.Value = False End Sub Private Sub Option1_Click() End Sub Private Sub Form_Load() If frmchinh.OptAuto.Value = True Then With frmP01 frmP01.fraDkP01.Enabled = False frmP01.OptTdenP01.Enabled = False frmP01.OptMdenP01.Enabled = False frmP01.OptTquatP01.Enabled = False frmP01.OptMquatP01.Enabled = False frmP01.Frame1.Enabled = False frmP01.Frame2.Enabled = False End With With frmP02 frmP02.FraDkP02.Enabled = False frmP02.OptTdenP02.Enabled = False frmP02.OptMdenP02.Enabled = False frmP02.OptTquatP02.Enabled = False frmP02.OptMquatP02.Enabled = False frmP02.Frame2.Enabled = False frmP02.Frame3.Enabled = False End With End If '************************************** 'KHOI DONG COM If frmchinh.MSComm1.PortOpen = True Then frmchinh.MSComm1.PortOpen = False frmchinh.MSComm1.CommPort = frmchinh.MSComm1.Settings = "9600,n,8,1" frmchinh.MSComm1.PortOpen = True 'Cap nhat trang thai cua phong frmP01.Timer1.Enabled = True End Sub Private Sub CapnhatP01() Dim NhietdoP01, SoNguoiP01, i As Integer Dim thongbao As String NhietdoP01 = Asc(Byte2) txtNhietDoP01.Text = Val(NhietdoP01) 'hien thi nhiet SoNguoiP01 = Asc(Byte3) TxtSoNguoiP01.Text = Val(SoNguoiP01) 'hien thi so nguoi If Byte4 = "O" Then txtDenP01.Text = "OFF" txtQuatP01.Text = "OFF" frmchinh.LblTThai = AnNinh End If If Byte4 = "P" Then txtDenP01.Text = "OFF" txtQuatP01.Text = "OFF" frmchinh.LblTThai = KAnNinh End If If Byte4 = "Q" Then txtDenP01.Text = "OFF" txtQuatP01.Text = "ON" frmchinh.LblTThai = AnNinh End If If Byte4 = "R" Then txtDenP01.Text = "OFF" txtQuatP01.Text = "ON" frmchinh.LblTThai = KAnNinh End If If Byte4 = "S" Then txtDenP01.Text = "ON" txtQuatP01.Text = "OFF" frmchinh.LblTThai = AnNinh End If If Byte4 = "T" Then txtDenP01.Text = "ON" txtQuatP01.Text = "OFF" frmchinh.LblTThai = AnNinh End If If Byte4 = "U" Then txtDenP01.Text = "ON" txtQuatP01.Text = "ON" frmchinh.LblTThai = AnNinh End If If Byte4 = "X" Then txtDenP01.Text = "ON" txtQuatP01.Text = "ON" frmchinh.LblTThai = KAnNinh End If 'BAO LOI TRUYEN (lenh truyen ve sai) Select Case Byte4 Case "O" GoTo TB Case "P" GoTo TB Case "Q" GoTo TB Case "R" GoTo TB Case "S" GoTo TB Case "T" GoTo TB Case "U" GoTo TB Case "X" GoTo TB End Select thongbao = MsgBox("Ban can kiem tra lai he thong.Chu cac he thong chong trom", vbOKOnly, "Loi dieu khien") TB: i=i+1 End Sub Private Sub Timer1_Timer() Dim Kich As String Kich = "E" Call TRUYEN(DiaChi) Call TRUYEN(Kich) Call CapnhatP01 End Sub Hướng phát triển đề tài Ngày đà phát triển chung nước ta ngày có thêm nhiều nhà cao tầng, để quản lý tồn tịa nhà có phương pháp dùng mạng kết nối thành vìên phòng lại với Trong chuẩn mạng truyền thơng mạng RS-485 sử dụng nhiều tính hiệu kinh tế Để tài áp dụng ngồi thực tế tính sát thực Ngồi dùng để điều khiển thiết bị đèn quạt đề tài kit vi xử lý cịn điều khiển thêm nhiều thiết bị khác Tuy nhiên thực tế có nhiều phịng cần điều khiển, áp dụng cách điều khiển trực tiếp từ máy tính xuống kit mạng RS-485 khơng thể đáp ứng được, ta có đến vài trăm phịng, mạng RS-485 tối đa 128 slave ta áp dụng phương pháp điều khiển phân cấp Tại tầng có master đóng vai trị trung gian giao tiếp máy tính kit vi xử lý phịng Master chịu trách nhiệm việc phân chia thời gian truyền kit vi xử lý, máy tính giao tiếp với master trung gian mà thơi, hệ thống có tới cấp điều khiển Hạn chế ta dùng phương pháp hỏi vịng chu kỳ bus dài, không đáp ứng trường hợp cần truyền máy tính Tài liệu tham khảo [1] Hồng Minh Sơn: “ Mạng truyền thông công nghiệp”, NXB Khoa Học Kỹ Thuật, 2001 [2] “Tra cứu IC Nhật Bản”, NXB Khoa Học Kỹ Thuật [3] Dương Minh Trí,” Sơ đồ chân linh kiện”, NXB Khoa Học Kỹ Thuật [4] Ngô Diên Tập, “Đo lường điều khiển máy tính”, NXB Khoa Học Kỹ Thuật [5] Ngơ Diên Tập, “ Lập trình kết nối máy tính Window”, NXB Khoa Học Kỹ Thuật [6] The 8051 Microcontroller-I Scott Mackenzie 2nd ed By Prentice Inc-1995 [7] Jan Axelson :” Programming and Circuits for RS-232 and RS-485 Links and Network: BÁO CÁO KẾT QUẢ THI CÔNG Với phần cứng mạch trình bày viết chương trình điều khiển gây số khó khăn lúc xử lý chương trình Phần hiển thị LED: Do mạch dùng hiển thị LED đoạn theo phương pháp quét, giải mã phần cứng( dùng IC giải mã 74247 ) Cho nên ta phải quét LED liên tục để đảm bảo độ sáng cho LED LED phép sáng vòng 1ms Nếu chương trình bị ngắt gây khoảng thời gian delay khơng qt LED thời gian 5ms làm cho LED tắt Đây điều không mong muốn Ta có hai hướng để khắc phục tình trạng sau:  Bằng phần cứng: dùng phương pháp chốt để hiển thị LED, không ảnh hưởng đến độ sáng LED ta ngắt chương trình để thực việc khác  Bằng phần mềm: ta dùng ngắt timer để hiển thị LED , để tạo khoảng thời gian delay dài cần thiết Khi ngắt truyền xảy ta cần đến 5ms liên tiếp để truyền số liệu máy tính Khi ngắt timer xảy cho phép AD đổi lần thứ nhất, ngắt timer xảy ta cho phép hiển thị LED Chỉ đến 500ms sau ta cho phép AD đổi lần thứ hai Mạch động lực: Mạch động lực em thiết kế ngun tắc kích đóng mức kích ngắt mức điều làm cho vi xử lý kích đóng thiết bị ta reset lại vi xử lý Ta tránh tình trạng cách kích mức thấp để đóng ngắt thiết bị Điều thực cách cho tín hiệu kích từ vi xử lý qua mạch logic NOT ... nâng cao chất lượng hiệu suất công vi? ??c, công nghệ tự động đời đáp ứng nhu cầu Cho nên, em nghiên cứu đề tài “ Điều khiển giám sát nhà cao tầng dùng vi xử lý 89C51 qua mạng RS-485 Các kít vi xử. .. ĐIỀU KHIỂN GIÁM SÁT NHÀ CAO TẦNG DÙNG VI XỬ LÝ 89C51 A Thiết kế mạch : I Tổng quan đề tài: Sơ lược đề tài: Trên sở thiết kế thiết bị điện tử để tạo thành nhà thông minh gắn thiết bị vào Nhờ vào... RS-485 RXD TXD Kit vi xử lí phịng A B Khối chuyển đổi mức TTL sang RS-485 Điều RXD khiển TXD Kit vi xử lí phịng Điều khiển A Khối chuyển đổi mức TTL sang RS-485 RXD TXD Kit vi xử lí phịng Sơ đồ khối

Ngày đăng: 27/02/2022, 09:54

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w