Lời mở đầu Trong quá trình sản xuất ở các nhà máy,xí nghiệp hiện nay,việc đo và khống chế nhiệt độ tự động là một yêu cầu hết sức cần thiết và quan trọng.Vì nếu nắm bắt được nhiệt độ làm việc của các hệ thống,dây chuyền sản xuất giúp chúng ta biết được tình trạng làm việc của các yêu cầu.Và có những xử lí kịp thời tránh được những hư hỏng và sự cố có thể xảy ra.Từ những yêu cầu ,nhóm em quyết định làm đề tài : Đo và ổn định nhiệt độ môi trường, hiển thị máy tính Giao tiếp thông qua cổng COM dùng RS232 Đo nhiệt độ dùng LM35 Điều khiển động chiều công suất nhỏ và 01 bóng đèn Dùng họ vi điều khiển 8051 MỤC LỤC Lời mở đầu 1 MỤC LỤC .1 Chương I : LÍ THUYẾT THIẾT KẾ I Giới thiệu khái quát Vi điều khiển 89s52 1.1 Sơ lược phần cứng vi điều khiển 1.2 Khảo sát Sơ đồ chân 1.3 Kết nối phần cứng .8 II Giới thiệu cảm biến nhiệt độ LM 35 2.1 Khái quát chung III.Giới thiệu ADC 0804 10 3.1 Khái quát chung 10 IV RS232 14 4.1 Chuẩn truyền thông nối tiếp RS232 .14 4.2 Đặc tính kĩ thuật .16 4.3 Cấu tạo cổng Com 16 4.4 Giao tiếp với vi điều khiển 18 V.Giới thiệu vi mạch giao tiếp MAX 232 18 5.1 Khái quát chung 18 VI Giới thiệu phần mềm Visual Basic 19 6.1 Giới thiệu Visual Basic .19 6.2 Các thao tác xây dựng ứng dụng 21 6.3 Các đối tượng .22 6.5 Ví dụ 23 Chương II : THIẾT KẾ HỆ THỐNG .25 I Sơ đồ hệ thống 25 1.1 Sơ đồ hệ thống .25 1.2 Chức khối .25 II.Thiết kế thi công 26 2.1 Sơ đồ khối nguồn : 26 2.2 Sơ đồ khối điều khiển .26 2.3 Khối giao tiếp 27 2.4 Khối cảm biến ADC .27 2.5 Sơ đồ nguyên lí tổng quát 28 III Phần mềm .29 3.1 Giao diện giao tiếp máy tính 29 3.2 Phân tích nguyên lí mạch .30 Chương III KẾT LUẬN .31 I Kết đạt 31 II Hướng phát triển 31 PHỤ LỤC 31 1.Code chương trình 31 2.Tài liệu tham khảo 43 3.Lời kết 43 Liệt kê hình : Hình 1.1: Sơ đồ chân vi điều khiển Hình 1.2: Mạch dao động Hình 1.3: Reset Hình 1.4: LM 35 Hình 1.5: ADC 0804 Hình 1.6: Phân chia thời gian đọc và ghi adc 0804 Hình 1.7: Đường truyền RS232 Hình 1.8: Khung dữ liệu Hình 1.9: Quá trình truyền dữ liệu Hình 1.10: Cổng com Hình 1.11: Sơ đồ chân cổng com Hình 1.12: Sơ đồ giao tiếp Hình 1.13: MAX 232 Hình 1.14: Giao diện ban đầu mở VB6 Hình 1.15: Giao diện của chương trình VB6 Hình 1.16 : Ví dụ Hình 1.17: Sơ đồ tổng quát hệ thống Hình 1.18: Khối nguồn Hình 1.19: Khối điều khiển Hình 1.20: Khối giao tiếp Hình 1.21:Khối cảm biến và ADC Hình 1.22:Sơ đồ nguyên lí Hình 1.23: Giao diện VB6 Hình 1.24: Đồ thị Chương I : LÍ THUYẾT THIẾT KẾ I Giới thiệu khái quát về Vi điều khiển 89s52 1.1 Sơ lược phần cứng vi điều khiển • Có 4/8/12/20 Kbyte bợ nhớ FLASH ROM bên để lưu chương trình Nhờ Vi điều khiển có khả nạp xoá chương trình điện đến 10.000 lần • 128 Byte RAM nợi • Port x́t/nhập bit • Từ đến bợ định thời 16-bit • Có khả giao tiếp trùn dữ liệu nới tiếp • Có thể mở rộng không gian nhớ chương trình ngoài 64KByte (bộ nhớ ROM ngoại): chương trình người lập trình viết có dung lượng lớn dung lượng bộ nhớ ROM nội, để lưu được chương trình này cần bộnhớROM lớn hơn, cách giải quyết là kết nối • Vi điều khiển với bộ nhớ ROM từ bên ngoài (hay gọi là ROM ngoại) Dung lượng bợ nhớ ROM ngoại lớn nhất mà Vi điều khiển có thể kết nới là 64Kbyte • Có thể mở rợng không gian nhớ dữ liệu ngoài 64KByte (bộ nhớ RAM ngoại) • Bợ xử lí bit (thao tác các bit riêng rẽ) , 210 bit có thể truy xuất đến bit 1.2 Khảo sát Sơ đồ chân Mặc dù có nhiều kiểu đóng vỏ khác nhau, chẳng hạn hai hàng chân DIP (Dual In-line Pakage) dạng vỏ dẹt vuông QFP (Quad Flat Pakage) và dạng chíp không có chân đỡ LLC (Leadless Chip Carrier)và đều có 40 chân cho các chức khác vào I/0, đọc, ghi, địa chỉ, dữ liệu và ngắt Tuy nhiên, vì hầu hết các nhà phát triển chính dùng chíp đóng vỏ40 chân với hai hàng chân DIP, nên chúng ta khảo sát Vi điều khiển với 40 chân dạng DIP Hình 1.1 Sơ đồ chân vi điều khiển - Chân VCC:Chân số 40 là VCC cấp điện áp nguồn cho Vi điều khiển Nguồn điện cấp là +5V±0.5 - Chân GND: Chân số 20 nối GND (hay nối Mass) Khi thiết kế cần sử dụng một mạch ổn áp để bảo vệcho Vi điều khiển, cách đơn giản là sử dụng IC ổn áp 7805 - Port (P0) Port gồm chân (từchân 32 đến 39) có hai chức năng: Chức xuất/nhập :các chân này được dùng đểnhận tín hiệu từbên ngoài vào để xử lí,hoặc dùng để xuất tín hiệu bên ngoài, chẳng hạn xuất tín hiệu để điều khiển led đơn sáng tắt Chức là bus dữ liệu và bus địa chỉ(AD7-AD0) : chân này (hoặc Port 0)còn làm nhiệm vụ lấy dữ liệu từ ROM RAM ngoại (nếu có kết nối với bộ nhớ ngoài), đồng thời Port được dùng để định địa của bộ nhớ ngoài - Port (P1)Port gồm chân (từ chân đến chân 8), có chức làm các đường xuất/nhập, không có chức khác - Port (P2)Port gồm chân (từchân 21 đến chân 28) có hai chức năng: Chức xuất/nhập Chức là bus địa cao (A8-A15): kết nối với bộ nhớ ngoài có dung lượng lớn, cần byte để định địa chỉcủa bộ nhớ, byte thấp P0 đảm nhận, byte cao P2 này đảm nhận - Port (P3)Port gồm chân (từchân 10 đến 17): Chức xuất/nhập Với chân có một chức riêng thứ hai bảng sau - Chân RESET (RST) :Ngõ vào RST ởchân là ngõ vào Reset dùng để thiết lập trạng thái ban đầu cho vi điều khiển Hệ thống được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức tối thiểu chu kì máy - Chân XTAL1 và XTAL2: Hai chân này có vị trí chân là 18 và 19 được sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạo nguồn xung clock ổn định - Chân cho phép bộ nhớ chương trình PSEN (ProgramStore Enable) :tín hiệu được xuất ở chân 29 dùng để truy xuất bộ nhớ chương trình ngoài Chân này thường được nối với chân OE (output enable) của ROM ngoài Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát tín hiệu kích hoạt ở mức thấp và được kích hoạt lần một chu kì máy Khi thực thi một chương trình ở ROM nội, chân này được trì ở mức logic không tích cực (logic 1) (Không cần kết nối chân này không sử dụng đến) - Chân ALE :(chân cho phép chốt địa chỉ-chân 30) có chức là bus dữ liệu đó phải tách các đường dữ liệu và địa Tín hiệu ởchân ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địa và các đường dữliệu kết nối chúng với IC chốt Các xung tín hiệu ALE có tốc độ 1/6 lần tần số dao động đưa vào Vi điều khiển, có thể dùng tín hiệu ở ngõ ALE làm xung clock cung cấp cho các phần khác của hệ thống Ghi chú: không sử dụng có thể bỏ trống chân này - Chân EA :Chân EA dùng để xác định chương trình thực hiện được lấy từ ROM nội hay ROM ngoại Khi EA nối với logic 1(+5V) thì Vi điều khiển thực hiện chương trình lấy từ bộ nhớ nội Khi EA nối với logic 0(0V) thì Vi điều khiển thực hiện chương trình lấy từ bộ nhớ ngoại 1.3 Kết nối phần cứng 1.3.1 Kết nối hai chân XTAL1 và XTAL2 Mạch dao động được đưa vào hai chân này thông thường được kết nối với dao động thạch anh sau: Hình 1.2 Mạch dao động Ghi chú: C1,C2= 30pF±10pF (thường được sử dụng với C1,C2 là tụ33pF) dùng ổn định dao động cho thạch anh.Hoặc có thể cấp tín hiệu xung clock lấy từ một mạch tạo dao động nào đó và đưa vào Vi điều khiển theo hình 1.3 Trong đó NC: để trống, chân XTAL2 để trống 1.3.2 Kết nối chân RESET-chân Hình 1.3 Reset Khi bị cúp điện, hoạt động mà hệ thống bị lỗi cần tác động cho Vi điều khiển hoạt động trở lại, người sử dụng muốn quay về trạng thái hoạt động ban đầu Vì chân RESET được kết nối sau: Với Vi điều khiển sử dụng thạch anh có tần số fzat= 12MHz sử dụng C=10µFvà R=10KΩ II Giới thiệu về cảm biến nhiệt độ LM 35 2.1 Khái quát chung Hình 1.4 LM 35 LM35 có độ biến thiên theo nhiệt độ : 10mV/1(0C) * Độ chính xác cao, tính cảm biến nhiệt độ rất nhạy, ở nhiệt độ 25(0C) nó có sai số không quá 1% Với tầm đo từ 0(0C) đến 128(0C) , tín hiệu ngõ tuyến tính liên tục với những thay đổi của tín hiệu nhõ vào * Thông số kỹ thuật: - Tiêu tán cơng śt thấp ,dòng làm việc từ 400µA đến 5mA - Dòng ngược 15mA, dòng thuận 10mA - Độ chính xác: làm việc ở nhiệt độ 25(0C) với dòng làm việc 1mA thì điện áp ngõ từ 2,94V đến3,04V * Đặc tính điện: - Theo thông số của nhà sản xuất LM35, quan hệ giữa điện áp và ngõ sau: Vout =0.01*T(0K)=2,73+0,01*T(0C) Vậy ứng với tầm hoạt động từ 0(0C) đến 100(0C) ta có sự biến thiên điện áp ngõ là: • Ở 0(0C) thì điện áp ngõ Vout = 2,73V.Ở 5(0C) thì điện áp ngõ Vout = 2,78V • Ở 100(0C) thì điện áp ngõ Vout = 3,71V Tầm biến thiên điện áp tương ứng với nhiệt độ từ 0(0C) đến 100(0C) là 1V III.Giới thiệu về ADC 0804 3.1 Khái quát chung 10 III Phần mềm 3.1 Giao diện giao tiếp máy tính Hình 1.23: Giao diện VB6 29 3.2 Phân tích nguyên lí mạch Hình 1.24 : Đồ thị Nhiệt độ ngưỡng và ngưỡng được cài đặt giao diện máy tính và truyền từ máy tính x́ng vi điều khiển xử lí: • Nhiệt độ đo được nhỏ nhiệt độ ngưỡng thì đèn được bật sáng và quạt khơng bật • Nhiệt độ đo được lớn nhiệt độ ngưỡng thì quạt được bật và đèn đèn không bật • Nhiệt độ đo được nằm khoảng ngưỡng và ngưỡng thì quạt và đèn không bật 30 Chương III KẾT LUẬN I Kết quả đạt được 1.1 Đạt được Mạch chạy đúng yêu cầu đề Mạch nhỏ gọn Giao tiếp theo chuẩn RS 232 Vẽ đồ thị sự biến thiên của nhiệt độ 1.2 Chưa đạt Mạch chưa tối ưu II Hướng phát triển -Tạo một hệ thống quản lí nhiệt độ lớn,điều khiển thiết bị giao tiếp theo chuẩn One-wire,vừa tối ưu,vừa tiết kiệm chi phí -Thực hiện giao tiếp và điều khiển qua mạng Internet PHỤ LỤC 1.Code chương trình 1.1 Chương trình cho vi điều khiển #include #include #include sbit WR_ADC=P0^7; 31 sbit den =P1^1; sbit quat =P1^0; void delay (unsigned int j) { unsigned int i; for(i=0;iko tao su kien OnComm InputMode = 'comInputModeText InputLen = 'Doc toan bo du lieu bo dem nhan Handshaking = comNone 'ko dung giao thuc bat tay InBufferSize = 1024 'dat va xac dinh kich thuc bo dem nhan la 1024 byte OutBufferSize = 1024 'dat va xac dinh kich thuc bo dem truyen la 1024 byte End With MSComm1.PortOpen = True End If End Sub Private Sub Form_Load() ' - COM1 39 ' COM x1 = 2170 'toa ban dau cho x1 counter1 = ' -End Sub Private Sub MSComm1_OnComm() Dim thangdo As String If MSComm1.CommEvent = Then 'comEvReceive = 2(neu co du lieu dau vao) kt = MSComm1.Input ' doc du lieu dau vao tu cong Com temp = Asc(Right(kt, 1)) 'tra ve so, so la ma ASCII cua ki tu string 'neu la chuoi nhieu ki tu thi lay ki tu dau tien Text1.Text = Str(temp) ' doi gia tri doc duoc tu cong noi tiep sang chuoi va ghi vao text1 dienap = temp 'o bo ADC 250 tuong ung voi 2.5V nen chia 100 'Text2.Text = dienap 'temp - 42 (hien thi nhiet len text2) 40 End If End Sub Private Sub start_Click() ve = True End Sub Private Sub stop_Click() ve = False End Sub Private Sub Timer1_Timer() 'Timer=100ms dung de ve thi Label6.Caption = "Thoi gian: " & Format(Now, "ddd dd-mmm-yyyy hh:nn:ss") 'Hien thi thoi gian hien tai dang: day date month year hour minutes seconds If ve = True Then 'Neu bien ve= true thi ve thi vedothi (temp) End If End Sub Public Sub vedothi(t As Single) counter1 = counter1 + 'Bo dem so dien lay dien ap x1 = x1 + 30 ' 1s 36 y1 = Int(7800 - t * (6000 / 100)) '50 >100% 41 array_x1(counter1) = x1 'luu toa x array_y1(counter1) = y1 'luu toa y Circle (x1, y1), 20, vbRed ' ve duong tron mau Line (x1, y1 + 25)-(x1, 7800), &H8000& ' ve duong thang If counter1 >= 360 Then ' xoa ve het man hinh xoa_manhinh End If End Sub Public Sub xoa_manhinh() ' gan nhung diem da ve bang mau nen Dim i As Integer Dim k As Integer k = counter1 ' For i = To k x1 = array_x1(i) y1 = array_y1(i) Circle (x1, y1), 20, &HFFFFFF 'xoa duong tron Line (x1, y1 + 25)-(x1, 7800), &HFFFFFF 'xoa duong thang Next counter1 = 'xoa bo dem x1 = 2170 'reset toa ban dau bien x1 End Sub 42 2.Tài liệu tham khảo -Slide tài liệu môn ngoại vi của cô Trần Thúy Hà - www.diendandientu.com.vn - www.alldatasheet.com - www.picvietnam.com 3.Lời kết - Một lần nữa nhóm thực hiện đề tài xin chân thành cảm ơn sự giúp đỡ chia sẻ của thầy cô và các bạn Rất mong nhận được sự đóng góp từ phía thầy cô và các bạn để sản phẩm ngày càng hoàn thiện Xin chân thành cảm ơn! 43 ... 15 4.2 Đặc tính kĩ thuật - Các tớc đợ trùn dữ liệu thông dụng cổng nối tiếp là: 1200 bps,4800 bps, 9600 bps,19200 bps, 115200 bps 4.3 Cấu tạo cổng Com Hình 1.10 Cổng com Cổng RS-232... IV RS232 14 4.1 Chuẩn truyền thông nối tiếp RS232 .14 4.2 Đặc tính kĩ thuật .16 4.3 Cấu tạo cổng Com 16 4.4 Giao tiếp với vi điều khiển... thời gian đo c và ghi adc 0804 Hình 1.7: Đường truyền RS232 Hình 1.8: Khung dữ liệu Hình 1.9: Qua trình truyền dữ liệu Hình 1.10: Cổng com Hình 1.11: Sơ đồ chân cổng com Hình