Để khắc phục điều nay chúng ta sử dụng vi mạch MAX232 nhằm chuyển đổi mức điện áp giữa hai chuẩn.Do vậy chức năng chính của phần cứng bao gồm các khối sau: -Bộ phận lấy tín hiệu cần khả
Trang 1BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CNHN – KHOA ĐIỆN TỬ
========****========
BÁO CÁO
MÔN: VI ĐIỀU KHIỂN
Đề Tài: Thiết kế bộ đo và khống chế nhiệt độ hiển thị trên máy tính.
Giáo viên hướng dẫn: Vũ Thị Thu Hương
Nhóm thực hiện: Nguyễn Văn Hà ( 0341050467) Đào Bỏ Cảnh
Đinh Văn Khoản
Lớp: Điện tử 3 – K3
========== Hà Nội Tháng 6/ 2011 ===========
Trang 2Nhận xét của giáo viên hướng dẫn
Nhận xét của giáo viên hướng dẫn
Trang 3
Mục lục
Trang 4Nhận xét của giáo viên hướng dẫn
1
Mục luc
3
Phần I: Giới thiệu đề tài
1 Đặt vấn đề
4
2 Mục đích thực hiện đề tài
4
3 Phương hướng giaØ quyết
5
Phần II: Nội dung
6
1.Cơ sở lý thuyết chung
6
Trang 52.Quy trình thiết kế bài toán thực tế
8
Phần III:
Ưu nhược điểm,ứng dụng và hướng phát triển
26
Phần IV:
Tài liệu tham khảo
27
Phần i: giới thiệu đề tài
Trang 6khiển cơ khí thô sơ , với tốc độ xử ló chậm chạm ít chính xác được thay thỊ bằng các hệ thống điều khiển tự động với các lệnh chương trình đã được thiết lập trước.
Trong quá trình sản xuất ở các nhà máy, xí nghiệp hiện nay vÖ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 yêu cầu đo và khống chế nhiệt độ tự động, thì có nhiều phương pháp để nghiên cứu khỏa sát vi điều khiªnt 8051 nhóm thực hiện nhận thấy rằng : ứng dụng vi điều khiªnt 8051 vào việc đo và khống chế nhiệt độ tự động là phương pháp tối ưu nhất Vì vậy nhóm chúng em tiến
hành thực hiện việc khảo sát và ứng dụng vi điều khiển vào mạch đo và khống chế nhiệt độ.
Chính những lợi ích đó cũng là những mục đích mà nhóm sinh viên chúng
em mong muốn đặt được
3.Phương Hướng Giải Quyết:
Để thực hiện được các chức năng trên hệ thống được chia thành hai phần là cứng và phần mềm với các giải pháp giải quyết nh sau:
a)Giải pháp phần cứng:
Trang 7Phần cứng được xây dùng trên cơ sở giao tiếp với máy tính qua cổng COM nên tốc độ truyền dữ liệu cũng rất cao Tuy nhiên, có một khó khăn duy nhấtkhi giao tiếp với máy tính là mức logic ở bộ vi điều khiển và ở cổng COM của máy tính khác nhau Để khắc phục điều nay chúng ta sử dụng vi mạch MAX232 nhằm chuyển đổi mức điện áp giữa hai chuẩn.
Do vậy chức năng chính của phần cứng bao gồm các khối sau:
-Bộ phận lấy tín hiệu cần khảo sát đó là nhiệt độ môi trường thông qua cảm biến LM35
-Bộ phận chuyển đối tương tự sang số, đưa vào vi xử lý
-Bộ phận xử lý tín hiệu số và xuất ra cổng nối tiếp
-Bộ phận truyền thông với máy tính
-Ngoài ra còn có một khối điều khiển và hiển thị nh Nút NhÂn và LED
Phần II Nội dung
I.Cơ sở lý thuyết chung :
Trang 8Để thực hiện phộp đo của một đại lượng đại lượng nào đú thỡ tựy thuộc vào dặc tớnh của đại lượng cần đo, điều kiện đo cũng nh độ chớnh xỏc theo yờu cầu cơ sỏ của hệ thống đo lường khỏc nhau
1.Sơ đồ của một hệ thống đo lường tổng quỏt
1.1 Cảm biến nhiệt: Dựng để đo nhiệt độ
1.2.Khối chuyển đổi:
Làm nhiệm vụ nhận trực tiếp cỏc đại lượng vất lý đặc trưng cần đo và biến đổi thành cỏc đại lượng vật lý thống nhất (dũng điện hay điện ỏp) để tớnh
toỏn cho thuận lợi
1.3.Vi điều khiển : cú nhiệm vụ tớnh toỏn biến đổi tớn hiệu nhận được từ bộ
chuyển đổi sao cho phự hợp với cỏc yờu cầu cơ thể hiện kết quả đo của bộ chỉ thị
1.4.Khối hiển thị: Nhận tớn hiệu từ vdk va hiển thị kết quả đo
2.Hệ thống đo lường số:
Đối tượng cần đo là cỏc đại lượng vật lý dựa vào cỏc đặc tớnh của đối tượng cần đo mà ta chọn loại cảm biến cho phự hợp để biến đổi thụng số đại lượngvật lý cần đo thành đại lượng điện, sau đú đưa vào cỏc mạch chế biến tớn
hiệu ( gồm: cảm biến, hệ thống khuêch đại, xử lý tớn hiệu)
Bộ chuyển đồi sang số ADC làm nhiệm vụ biến đổi tớn hiệu tượng tự sang số
và kết nối với vi x lý
Khối chuyển
đổiA/D
Vi điều
Cảm biến
nhiệt
Trang 9Bộ vi xử lý cú nhiệm vụ thực hiện những phộp tớnh và xuất ra những lệnh trờn cơ sở trỡnh tự những lệnh chấp hành đó thực hiện trước đú.
Bộ dồn kờnh tương tự và bộ chuyển ADC được dựng chung cho tất cả cỏc kờnh Dữ liệu nhập vào bọ vi sử lý sẽ cú tớn hiệu chọn đỳng của nú qua quỏ trỡnh tớnh toỏn để só kết quả của đại lượng cần đo
3.Cỏc phương phỏp đo nhiệt độ:
Đo nhiệt độ là phương thức đo lường điện, đo nhiệt độ được chia thành nhiều dải:
+Đo nhiệt độ thấp
+ Đo nhiệt độ trung bỡnh
+ Đo nhiệt độ cao
Việc đo nhiệt độ được tiến hành nhờ cỏc dụng cụ hỗ trợ chuyờn biệt nh:+ Cặp nhiệt điện
+ Nhiệt kế điện kộ lim loại
+ Nhiệt điện trở kim loại
+ Nhiệt điện trở bỏn dẫn
+ Cảm biến thạch anh
Việc sử dụng cảm biến IC cảm biến nhiệt để đo nhiệt độl là một phương phỏp thụng dĩng được nhúm trong bài này, nờn ở đõy chỉ giới thiệu về IC cảm biến nhiệt độ
3.1 Nguyờn lý hoạt động của IC cảm biến nhiệt độ :
IC đo nhiệt là một mạch tớch hợp nhận tớn hiệu nhiệt độ chuyển tớn hiệu điện dưới dạng dũng điện hay điện ỏp Dah vào đặc tớnh rất nhạy cảm của cỏc bỏndẫn với nhiệt độ , tạo ra điện ỏp hoặc dũng điện tỉ lệ thuận với nhiệt độ tuyệt đối Đo tớn hiệu điện ta biết được giỏ trị của nhiệt độ cần đo Sự tỏc động của nhiệt độ tạo ra điện tớch tự do và cỏc lỗ trống trong cỏc chất bỏn dẫn Bằng sự phỏ vỡ cỏc phõn tử, bứt cỏc electron thành dạng tự do di chuyển quavựng cấu trỳc mạng tinh thể tạo ra sự xuất hiện cỏc lỗ trống Làm cho tư leej điện tư tự do va lỗ trống tăng lờn theo qui luật hàm mũ với nhiệt độ
II.Quy trỡnh thiết kế bài toỏn thực tế
1.Phõn tớch bài toỏn :
Trang 10Bài toỏn đặt ra là thiết kế mạch đo và khống chế nhiệt độ Để thực hiện được điều này thỡ hệ thống phảI đảm bảo cỏc yờu cầu sau:
-Số lượng đầu vào/ra số:
-Số đàu vào/ ra tượng tự:
- Cảm biến nhiệt dộ : dựng để đo nhiệt độ hiện tại trong lũ nhiệt
- Khối biến đổi A/D: cú nhiệm vụ số húa tớn hiệu của cảm biến nhiệt để
da vào bộ vi điều khiển –là nơi cài đặt thuật toỏn điều khiển và khống chế nhiệt độ
- Khối vi điều khiển (MCU): cú nhiệm vụ thực hiện cỏc chức năng mó húahợp thành và giải mó
3.Nhiệm vụ của từng khối:
3.1 Cảm biến nhiệt:
Với nhiệt độ khống chế từ 30 độ đến 130 độ, ta chon sử dụng cảm biến nhiệt
dộ bỏn dẫn thụng dụng là vi mạch LM35 của hóng National Semiconductor
Vi mạch cảm biến nhiệt LM35cú đặc điểm sau:
- chuẩn húa theo thang đo nhiệt độ Cesius;
- đầu ra tuyến tớnh 10mV/C;
- Dải điện ỏp làm việc từ 4V đến 30V;
- Dũng tiờu thụ nhỏ cỡ 60 microampe, nờn nhiệt tự tỏa rất nhỏ hầu nh khụng ảnh hưởng đến kết quả đo
Sai số nhỏ, chỉ khoảng 0.5 độ C
Sơ đũ mạch cảm biến được cho hỡnh dưới
Trang 11Sơ đò cảm biến nhiệt độ LM35.
Trang 12
3.2 Mạch biến đổi A/D: Có nhiệm vụ biến đổi điện áp tương tự từ cảm
biến nhiệt thành tín hiệu số để gửi đến vi điều khiển Để lựa chọn sử dụng các vi mạch A/D người ta thường căn cứ vào 2 thông số chính là :
- Độ phân giải hay số bít đầu ra, số bít ra của ADC quyết định đến độ chínhxác của pháp biến đổi, số bít càng lớn càng lớn sai số lượng tử càng nhỏ
- Tốc độ biến đổi được tính bằng số mẫu hoàn thành trong mộtgiây( samples/s), nó tỉ lệ nghịch với thời gian hoàn thiện việc biến đỏi mộtmẫu
- Trong ứng dụng điều khiển nhiệt độ, nhiệt độ là một đại lượng biến đổichậm nên ta chọn vi mạch biến đổi A/D thông dụng trên thị trường làADC0804
Trang 13ADC0804 là bộ A/d 8 bớt đủ đỏp ứng được yờu cầu về độ chớnh xỏc đặt ra.ADC0804 cú cỏc đặc điểm sau:
- Đầu ra được đếm bằng cỏc cổng 3 trạng thỏi nờn cú thể ghộp trực tiếp vàobus dữ liệu mà khụng cần mạch đệ dữ kiệu ở ben ngoài ;
- Thời gian biến đổi cõ 100 micro/mẫu;
- Khụng cần hiệu hcinhr điểm 0;
- Khi điện ỏp nguồn nuụi là 5V thỡ tớn hiệu đàu vào cực đại là 5V;
- tất cả cỏc tớn hiệu đều tương thớch mứcTTL;
Trang 14Mạch này gồm hai phần chính :
-phần tương tự : Với dải nhiệt độ từ 0 độ đên 128 độ thì điện áp ra của
LM35laf từ 0 đến 1.28V, điện áp này được đưa đến lối vào IN+, cong lối vào IN- được nối đất Với điện áp vào cực đại là 1.28V thì điện áp chuẩn Vref được đặt là 0.64V, việc điều chinht Vref được thực hiện bởi biến trở vi chỉnh VR Khi đó nếu nhiệt dé là 0 độ C thì điện áp IN+ là 0V, đầu ra Dout
là 00000000, vi điều khiển nhận được giá trị là 0; Khi nhiệt độ là 128 độ C thì điện áp IN+là 1.28V, đầu ra Dout là 11111111, vi điều khiển nhạn được giá trị tương ứng là 255
-Phần giao tiếp với vi điều khiển: Để thực hiện giao tiếp với vi ®iÒukhiÓn
cần các tín hiệu sau :
+Tín hiệu chọn vi mạch biến đổi tương tự số CS_ADC, tích cực thấp., được
da từ mạch giả mã địa chỉ tới Khi CS_ADC=0 thì ADC0804 được chọn, chuẩn bị cho việc đọc sã liệu từ ADC
+ Tín hiệu ra lệnh cho ADC0804 bắt đầu biến dổi WR_ADC, tích cực mức thấp , được điều khiển trực tiếp bởi vi điều khieenr, khi WR_ADC chuyển từ
1 xuống 0 thì ADC bắt đầu quá trình biến dổi
+ Tín hiệu báo kết thúc biến đổi ADC_OK , tích cực thấp , được nối với chân INTR(interrup) của ADC0804, mỗi khi ADC0804 hoàn thành việc biếnđổi cho một mẫu nó báo hiệu cho bên ngoài bằng một mức logics 0 ở chân này Tín hiªu này được gửi tới vi điều khiển để váo cho vi điều khiển biết ADC đã biến đổi song ; để không phải hỏi vòng thì tín hiệu này được đưa tớimột đầu vào ngắt ngoài của vi điều khiển , mỗi khi ADC biến đổi xong sẽ gây ra một ngắt vi điều khiển , vi điều khiển sẽ chuyển sang chương trình con phục vụ ngắt để đọc số liệu từ ADC
+ Tín hiệu đọc số liệu RD_ADC, tích cực thấp , sau khi nhận biết ADC đã biến đổi xong bởi mức logics 0 ở ADC_OK, vi điều khiển thực hiện việc lấy
số liệu bằng cach chuyển tín hiệu RD_ADC cuống mức thấp, tín hiệu này được nối với chân RD của ADC, lúc này các cổng đem 3 trạng thái ở đầu ra Dout của ADC0804 mở , kết quả biến đổi được đưa kên bus dữ liệu
3.2 Khối vi điều khiển:
Trang 15IC AT89S52:
So đồ chân :
Cấu tạo IC có:
CPU( CPU centra lprocessing unit):
8- bit data bus; 16- bit address bus; không gian địa chỉ 64Kbyte
Thanh ghi tích lũy A;
Thanh ghi tích lũy phụ B;
Đơn vị logic học (ALU);
Thanh ghi từ trạng thái chương trình;
Bốn băng thanh ghi;
Con trỏ ngăn xếp
Bộ nhớ (Memory):
Bộ nhớ chương trình( ROM) gồm 8Kbyte Flash, ghi xóa hàng nghìnlần
Trang 16Bộ nhớ dữ liệu( dạng SRAM) gồm 256 byte (chứa ngăn xếp – Stack) Vùng thanh ghi có chức năng đặc biệt SFR (Special Funtion Register).
Bộ UART, có chức năng truyền nhận nối tiếp
3 bộ Timer/Counter 16 bit thực hiện chức năng định thời và đếm sựkiện
Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong
Bộ lập trình (ghi chương trình lên Flash ROM) cho phép người sử dụng
có thể nạp các chương trình cho chớp mà không cần các bộ nạp chuyêndụng
4 cổng xuất nhập song song 2 chiều 8- bit với 32 chân
Port 0( P0.0=>P0.7)
Port 0 gồm 8 chân, ngoài chức năng xuất nhập, port 0 còn là bus đahợp dữ liệu và địa chỉ( AD0-AD7), chức năng này sẽ được sử dụng khiAT89S52 giao tiếp với các thiết bị ngoài có kiến trúc Bus như các vimạch nhớ, mạch PIO…
Bit Tên Chức năng
tiếp
Trang 17P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài.P3.7 /RD Xung đọc bộ nhớ dữ liệu
Chân /EA (pin 31): Tín hiệu /EA cho phép chọn bộ nhớchương trình là bộ nhớ trong hay ngoài EA=1 thì thực hiện chươngtrình trong RAM nội EA=0 thực hiện ở RAM ngoài
RST( Reset: pin 9): Ngõ vào reset trên chân số 9 khi RST=1thì bộ vi điều khiển sẽ được khởi động lại thiết lập ban đầu
XTAL1, XTAL2 (pin 18, 19): Hai chân này được nối songsong với thạch anh tần số max=33 Mhz Để
tạo dao động cho bộ vi điều khiển
Vcc,GND: cung cấp nguồn nuôi
cho bộ vi điều khiển cấp qua chân 20 và 40
Cổng Vào Ra Nối Tiếp(Serial Port)
Tổng quan:
8051 có 1 cổng vào ra nối tiếp(UART)
Tín hiệu liên quan:RxD(P3.0, chân số 10) va TxD(P3.1, chân số 11)
Dữ liệu đi và về hoàn toàn độc lập với nhau, do đó có thể truyềnnhận đồng thời, và cổng nối tiếp có đặc tính như vâyj được gọi là songcông(Full duplex)
Các thanh ghi liên quan:
Dữ liệu nhận về thong qua RxD, tới 1 thanh ghi chức năng đặcbiệt(8-bit) tên là SBUF
Trang 18Dữ liệu truyền thong qua TxD, từ 1 thanh ghi chức năng đặc bit) cũng tên là SBUF
biệt(8-Thanh ghi điều khiển SCON:
SM0-SM1
0-0=mode0:chế độ đồng bộ 8 bit,clock =1/12 Fosc
0-1=mode1:chế độ dị bộ 8-bit, clock thay đổi được tùy ý
1-0=mode2:chế độ dị bộ 9-bit,clock= 1/64 Fosc hoặc 1/32 Fosc1-1=mode3:chế độ dị bộ 9-bit,clock thay đổi được tùy ý
SM2:bit cho phép chế độ gioa tiếp đa vi xử
lý(multimicroprocessor),mode 2 hoặc mode3.Trong các chế độ thongthường,SM2=0
REN:bit cho phép nhận dữ liệu nếu ghi vào đó giá trị logic 1.Giá trị
logic 0 tại bit này sẽ”khóa cổng “ với các dự lieuj gửi đến
TB8:bit dữ liệu thứ 9 phát đi trong các chế độ truyền nhận
9-bit(mode 2 và 3)
RB8: bit dữ liệu thứ 9 nhận về trong các chế độ truyền nhận
9-bit(mode 2 và 3)
TI:cờ báo ngắt truyền ,khi =1 báo hiệu rằng 1 khung dữ liệu (8 hay
9 bit tùy chế độ) đã được truyền xong Cờ này không tự động xóa về 0khi chương trình phục vụ ngắt thực hiện.User phải xóa bằng lệnh
RI:cờ báo ngắt nhận,khi =1 báo hiệu rằng 1 khung dữ liệu (8 hay
9-bit tùy chế độ) đã được nhận về đầy đủ,Cờ này không tự động xóa về 0khi chương trình phục vụ ngắt thực hiện.User phải xóa bằng lệnh
Với cổng nối tiếp các bit dữ liệu được truyền lần lượt trên cùng 1đường tín hiệu thay vì truyền cùng một lúc trên các đường tín hiệu khácnhau.Thông thường thì việc truyền dữ liệu bằng cổng nối tiếp phải tuântheo một cơ chế, một giao thức hay một nguyen tắc nhất định Có thể kể
ra một số giao thức như SPI,I2C,SCI
Cổng nối tiếp có 2 kiểu truyền dữ liệu chính:
Truyền đồng bộ(synchronous):thiết bị truyền và nhận đều dungchung một xung nhịp (clock)
Truyền dị bộ(asynchronous):thiết bị truyền và thiết bị nhận sử dụnghai nguồn xung nhịp riêng Tuy nhiên hai nguồn xung này không đươckhác nhau quá nhiều
Trang 19Xung nhịp là yếu tố không thể thiếu trong truyền dữ liệu nối tiếp và
nó có vai trò xác định giá trị của bit dữ liệu
Cổng nối tiếp có thể có một trong các tính năng sau:
Đơn công:thiết bị chỉ có thể hoặc truyền hoặc nhận dữ liệu
Bán song công:thiết bị có thể truyền và nhận dữ liệu nhưng tại mộtthời điểm có thể làm 1 trong 2 việc đó
Song công:thiết bị có thể truyền và nhận dữ liệu đồng thời
Thanh ghi điều khiển TMOD(Sử dụng cho timer/counter 0 và
timer/counter 1):
-
GATE: bit quy định yếu tố cho phép timer/counter đếm hay dừng.
Nếu GATE=0, timer/counter sẽ đếm hay dừng phụ thuộc vào trạng tháibit TRx (thanh ghi TCON) Nếu GATE=1, timer/counter sẽ đếm nếu bitTRx=1 (thanh ghi TCON) và tín hiệu ngắt ngoài INTx ở mức cao.Trong trường hợp này, nếu TRx-0 hoặc tín hiệu ngắt ngoài INTx ở mứcthấp, timer/counter sẽ dừng đếm
C/T: bit lựa chọn xung nhịp đưa vào đếm Nếu C/T = 0, xung nhịp
đưa vào đếm chính là xung nhịp của CPU (lúc này gọi là bộ định thời –timer) Nếu C/T = 1, xung nhịp đưa vào đếm là xung nhịp lấy từ bênngoài vào qua tín hiệu T0 và T1 (lúc này gọi là bộ đếm sự kiện –counter)
M1:M0 0:0 = Mode 0: timer/counter 13bit ghép bởi <5bit thấp
TL>:<thanh ghi TH>
0:1 = Mode 1: timer/counter 16bit ghép bởi <thanh
ghi TH>:<thanh ghi TL>
1:0 = Mode 2: timer/counter 8bit, đếm bằng TL,khi
tràn tự động nạp TH vào TL.
1:1 = Mode 3: TL0 là timer/counter 8bit, sử dụng các
bit điều khiển của timer0
TH0 là timer 8bit, sử dụng các bit điều
khiển của timer 1 Timer 1
không hoạt động ở chế độ này.