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

Luận Văn Điều Khiển Và Giám Sát Nhà Cao Tầng Dùng Vi Xử Lý 89C51

118 388 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 118
Dung lượng 1,46 MB
File đính kèm File Mach Capture + MicroProcessor + Visual Basic.rar (152 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 01-2002 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 Chuyển đổi cặp nhiệt điện Các loại cảm biến nhiệt .7 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) Mạch phát khói dùng nguyên lý ion (cảm biến ion) .9 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 yê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 a Chương III: chương trình truyền thông ngôn ngữ visual basic 6.0 I II III Tổng quan Visual Basic 90 Truyền thông nối tiếp dùng visual basic .92 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 hoàn toàn độc lập theo chương trình lập sẵn Bên cạnh đó, chúng 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 Ngoài việc điều khiển thiết bò dùng điện phòng, ta đả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ò 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 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 chuông, 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 • Ngoài ra, mạch có chức đếm số người hay vào phòng Trong phòng để đảm bảo tính tự động hoàn toàn 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 tuân 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ỏ 15 oC • 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 bò phòng theo phương pháp thông thường không kinh tế tiết kiệm Ta cần phải để tiết kiệm cho nhiều tốt Cho nên để tránh lãng phí ta nên điều khiển thiết bò máy tính Chỉ cần nhân viên tắt hay mở thiết bò phòng Nếu ta tắt thiết bò tay không kinh tế, khách khỏi 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á thành kinh doanh cho thuê phòng chẳng hạn 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 PC RTS RXD TXD Khối chuyển đổi RS-485 sang R-232 B A B B Khối chuyển đổi mức TTL sang RS-485 RXD TXD Kit vi xử lí phòng A 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 toán Mô tả toá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 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 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 độ t 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 q , ố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 1000 0C ) ố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 độ 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 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 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 8008 hợp lệ Kích thước byte xác đònh không hợp lệ III Phần giao diện : 8021 Lỗi bên liên quan khối điều khiển thiết bò port 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 + 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 + 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) nhiet SoNguoiP01 = Asc(Byte3) TxtSoNguoiP01.Text = Val(SoNguoiP01) 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 'hien thi 'hien thi so 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 + 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ý toà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 thực tế tính sát thực Ngoài dùng để điều khiển thiết bò đèn quạt đề tài kit vi xử lý đ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 đá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] Hoà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 quét 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: o 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 o 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ế nguyên 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 [...]... trình giao diện và điều khiển truyền số liệu dùng ngôn ngữ lập trình Visual Basic 6.0 PC RS-485 BUS RS-485 RS-485 KIT VI XỬ LÝ PHÒNG 1 KIT VI XỬ LÝ PHÒNG 2 Sơ đồ khối toàn bộ hệ thống điều khiển và giám sát ngôi nhà Kit vi xử lý trong phòng 1 và phòng có cùng sơ đồ khối như sau Mạch động lực đóng cắt các thiết bò Mạch hồi tiếp trạng thái thiết bò Mạch hiển thò nhiệt độ Vi xử lí Atmel 89C51 Mạch gia... tín hiệu đo Cảm biến quang Mạch nguồn IC đo nhiệt độ Sơ đồ khối kit vi xử lý 2 Chức năng của từng khối: a Vi xử lý 89C51: Đây là bộ xứ lý trung tâm của mạch đặt tại từng phòng trong ngôi nhà 89C51 là loại IC có khả xử lý và điều khiển theo một chương trình đã lập sẵn và có khả năng thực hiện các yêu cầu gởi đến từ máy tính Vi xử lý 89C51 trong mạch thiết kế có thể thực hiện các chức năng như sau: _... không cần tốc độ cao và cũng không có nhu cầu trao đổi dữ liệu giữa các kit vi xử lý riêng lẻ, cho nên em dùng phương pháp hỏi vòng từ PC Qua đó, PC sẽ lần lượt hỏi vòng tuần tự qua từng kit vi xử lý Dữ liệu từ PC gửi về kit vi xử lý gồm có các byte yêu cầu cộng thêm hai byte thêm vào: một byte đầu tiên xác đònh đòa chỉ nơi đến, byte tiếp theo sẽ xác đònh nội dung giao tiếp giữa vi xử lý và PC, chẳng hạn... Max-485 ) có hai chân điều khiển hoạt động là DE và /RE Chân /RE tích cực ( mức logic 0 ) sẽ cho phép vi xử lý nhận dữ liệu từ Master: chế độ thu dữ liệu Chân DE tích cực ( mức logic 1) sẽ cho phép mạch phát dữ liệu từ vi xử lý về Master Dùng một chân từ các Port của vi xử lý cũng như chân để phát Thông thường khi lập trình giao tiếp bằng phần mềm, ta thường dùng chân RTS hay CIS để điều khiển IC 71576 Ban... thì vi xử lý hiểu rằng đó là yêu cầu đóng thiết bò Nó sẽ xuất tín hiệu đóng Relay cấp nguồn cho thiết bò Ngược lại, nếu tín hiệu hồi tiếp về đang là mức 1 thì vi xử lý sẽ hiểu là yêu cầu ngắt thiết bò và nó sẽ kích ngắt relay Ta cũng có thể thiết kế phần cứng để thực hiện phần này để cho vi xử lý thực hiện ít công vi c nó phải làm Nếu chỉ dùng một nút nhấn để yêu cầu đóng hay ngắt thiết bò thì vi xử lý. .. PHẦN II THIẾT KẾ MẠCH Đ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 về đề tài: 1 Sơ lược về đề tài: Trên cơ sở thiết kế một thiết bò bằng cơ điện tử để có thể tạo thành ngôi nhà thông minh khi gắn thiết bò này vào Nhờ vào bộ xử lý trung tâm mà thiết bò này có thể hoạt động một cách chính xác theo chương trình đã lập sẵn Trong ngôi nhà càng có nhiều thiết bò thông minh... biến đổi qua mã BCD nén và hiển thò lên LED 7 đoạn 10 Thiết kế mạch 89C51 trên sơ đồ các chân và chức năng của chúng: a 10.1 Giới thiệu vi xử lý 89C51: Giới thiệu : Vi xử lý AT89C51 được chế tạo bởi hãng ATMEL, về cơ bản nó có cấu tạo bên trong , sơ đồ chân cũng như sử dụng tập lệnh tương thích với họ 8031 của hãng INTEL Các đặt điểm cơ bản của vi mạch AT89C51: • Đơn vò xử lý trung tâm 8 bit đã được... cần ta dùng tụ 1000µ để cho áp ra được thẳng Qua bộ đệm LM741 để cho áp ra ổn đònh thì tín hiệu nối tiếp về được đưa vào một chân của vi xử lý Nguyên nhân tại sao khi thiết kế mạch động lực đóng ngắt nguồn ta dùng nguồn +12V riêng và dùng Opto để kích Do khi relay đóng ngắt sẽ gây ra nhiễu điện từ, nhiễu này sẽ ảnh hưởng trực tiếp lên nguồn cung cấp cho vi xử lý Nó sẽ làm cho áp cấp cho vi xử lý có... báo động Như theo yêu cầu của đề tài: tất cả các kit vi xử lý sẽ được giám sát và có thể ra lệnh từ máy tính Máy tính truyền lệnh cần vi xử lý thi hành đến đúng kit vi xử lý mà nó cần tác động Có thể là lệnh yêu cầu tắt đèn , quạt, hay là yêu cầu gởi dữ liệu từ phòng, nhiệt độ, đèn tắt hay mở, bao nhiêu người trong phòng Theo lý thuyết, thì các thành vi n trong một hệ thống mạng đều có thể liên kết dữ... vật che chắn giữa LED phát và LED thu thì áp ra mạch khuếch đại sẽ đúng 5 V Vi xử lý sẽ nhận biết đây là trạng thái mức cao (tích cực) Nếu có vật che chắn giữa LED phát và LED thu thì áp ra sẽ không phải chính xác là 0 V, mà có thể từ 0 V – 2V Nằm trong tầm điện áp này thì vi xử lý sẽ phát hiện ra đây là mức không tích cực (mức thấp ) Tín hiệu này đưa vào chân INT0 của vi xử lý Ta sẽ thiết lập chế độ

Ngày đăng: 20/11/2016, 20:30

TỪ KHÓA LIÊN QUAN

w