38
Mục lục I. Giới thiệu 1. Đặt vấn đề 2. Các phương pháp đo nhiệt độ 3. Nhiệm vụ thiết kế II. Tổng quan về phần cứng 1. Sơ đồ khối 2. Giới thiệu về các thiết bị. 2.1. LM335 2.2. ADC0809 2.3. Bộ vi xử lý 8051 2.4. Khối phím ấn 2.5. Hiển thị Led 2.6. RS 232 2.7. Nguồn III. Phần mềm 1. Lưu đồ thuật toán 1.1 Lưu đò thuật toán đọc ADC 1.2 Lưu đồ thuạt toán phục vụ ngắt phím 1.3 Lưu đồ kiểm tra 1.4 Lưu đồ truyền tin 2. Phần mềm chương trình IV. Đánh giá sai số V. Kết luận,tài liệu tham khảo 1

Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

Embed Size (px)

Citation preview

Page 1: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

Mục lục

I. Giới thiệu1. Đặt vấn đề2. Các phương pháp đo nhiệt độ3. Nhiệm vụ thiết kế

II. Tổng quan về phần cứng1. Sơ đồ khối2. Giới thiệu về các thiết bị.

2.1. LM3352.2. ADC08092.3. Bộ vi xử lý 80512.4. Khối phím ấn2.5. Hiển thị Led2.6. RS 2322.7. Nguồn

III. Phần mềm1. Lưu đồ thuật toán

1.1 Lưu đò thuật toán đọc ADC1.2 Lưu đồ thuạt toán phục vụ ngắt phím1.3 Lưu đồ kiểm tra1.4 Lưu đồ truyền tin

2. Phần mềm chương trìnhIV. Đánh giá sai sốV. Kết luận,tài liệu tham khảo

I. Giới thiệu

1

Page 2: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

1. Đặt vấn đề Nhiệt độ là một trong những đại lượng vật lý được quan tâm nhiều nhất. Bởi vì nhiệt độ có vai trò quyết định trong nhiều tính chất của vật chất. Một trong những đặc điểm tác động của nhiệt độ là làm thay đổi một cách liên tục các đại lượng chịu sự ảnh hưởng của nó,ví dụ như áp suất ,thể tích của một chất khí . Bởi vậy, trong các nghiên cứu khoa học , trong công nghiệp và đời sống hàng ngày việc đo nhiệt độ là điều rất cần thiết. Tuy nhiên, để đo được trị số chính xác của nhiệt độ lại là vấn đề không đơn giản. Cùng với sự ra đời và phát triển mạnh mẽ của các hệ vi xử lý,việc đo nhiệt độ áp dụng vi xử lý,vi điều khiển đã mở ra nhiêu hướng,đưa đến nhiều phương pháp khác nhau,linh hoạt và chính xác hơn. Có nhiều cách để đo nhiệt độ , trong đó có thể liệt kê một số phương pháp sau đây:

- Phương pháp quang dựa trên sự phân bố bức xạ nhiệt do dao động nhiệt (do hiệu ứng Doppler).-Phương pháp cơ dựa trên sự dãn nở của vật rắn , của chất lỏng hoặc khí (với áp suất không đổi ) , hoặc dựa trên tốc độ âm.-Phương pháp dựa trên sự phụ thuộc của đIện trở vào nhiệt độ , hiệu ứng Sêbeck , hoặc dựa trên sự thay đổi tần số dao động của thạch anh.

2. Các phương pháp đo nhiệt độ Trước tiên nói về các cảm biến nhiệt độ,đó là các cảm biến được sử dụng vào các quá trình nhiệt như: đốt nóng, làm lạnh, trao đổi nhiệt.v.v. .Đại lượng vào của cảm biến nhiệt độ là nhiệt độ và đại lượng ra là tín hiệu điện (dòng,áp).Một số cảm biến thường sử dụng:

+Nhiệt điện trở : Nguyên lý làm việc là có điện trở thay đổi theo sự thay đổi nhiệt độ của nó.Tuỳ theo tác dụng nhiệt của 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 và nhiệt điện trở không đốt nóng

Nhiệt điện trở đốt nóng ,dòng điện chạy qua rất lớn làm nhiệt độ của nó tăng lên cao hơn nhiệt độ môi trường(100C -800C), nên có sự toả nhiệt ra môi trường xung quanh, như nhiệt dẫn, đối lưu, bức xạ .

Nhiệt điện trở không đốt nóng, dòng điện chạy qua rất nhỏ không làm tăng nhiệt độ của điện trở và nhệt độ của nó bằng nhiệt độ môi trường. Nhiệt điện trở loại này dùng để đo nhiệt độ và các đại lượng cơ học như đo di chuyển.

Nhiệt điện trở phân làm hai loại: Nhiệt điện trở dây(nhiệt điện trở đồng,nhiệt điện trở Platin, nhiệt điện trở Niken) và nhiệt điện trở bán dẫn.+Cặp nhiệt điện:Nguyên lý làm việc dựa trên 2 hiệu ứng:Thomson và Seebek ứng dụng của cặp nhiệt điện chủ yếu để đo nhiệt độ, ngoài ra nó còn dược dùng để đo các đại lượng không điện và điện khác như: đo dòng điện ở tần số cao,đo hướng chuyển động và lưu ượng của các dòng chảy, đo di chuyển , đo áp suất nhỏ+Cảm biến nhiệt độ dùng đặc tính diode và tranzitor

Đo nhiệt độ là nhiệm vụ thường gặp trong các ngành nhiệt học, hoá học ,luyện kim...Tuỳ theo nhiệt độ đo mà có thể dùng các phương pháp đo khác nhau.Thông thường nhiệt độ đo được chia thành 3 giải : Nhiệt độ thấp, nhiệt độ trung bình và nhiệt độ cao.ở nhiệt độ trung bình và thấp, phương pháp đo thường là tiếp xúc nghĩa là các chuyển đổi được đặt trực tiếp ở ngay môi

2

Page 3: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

trường cần đo. Đối với nhiệt độ cao,đo bằng phương pháp không tiếp xúc, nghĩa là dụng cụ đo đặt ngoài môi trường đo.

Một trong số những cách đó là đo nhiệt độ không tiép xúc sử dụng cảm biến LM335

3. Nhiệm vụ thiết kế Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335 giải quyết những vấn đề sau:

- Thiết kế mạch đo nhiệt độ trong dải từ 0oC-100oC và hiển thị.- Cảnh báo khi nhiệt độ lớn hơn 80oC và khi nhỏ hơn 20oC- Kết nối truyền thông tin đo được vào máy tính- Viết chương trình phần mềm giải quyết những vấn đề trên

II. Tổng quan về phần cứng1. Sơ đồ khối

2. Giới thiệu về các khối2.1 Khối cảm biến LM335

LM335 là cảm biến nhiệt độ có khoảng đo từ -400C đến +1000C, độ chính xác cao, tính năng cảm biến nhiệt độ rất nhạy.Tín hiệu ngõ ra tuyến tín với tín hiệu ngõ vào. Công dụng của LM335: + LM335 có độ biến thiên theo nhiệt độ là: 10mV/KO + Có sự ổn định cao: ở 25OC chỉ có sai số 1%. + Chỉ tiêu kĩ thuật:

- Tiêu tán công suất thấp.

Cảm biến LM335

Mạch khuếch đại

ADC

VĐK 8051 Khối bàn phím

Khối hiển thịLED

PC

3

Page 4: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

- Dòng làm việc từ 4.10-4A – 5.10-3A- Dòng ngược 15mA- Dòng thuận 10mA- Sự biến thiên của điện thế theo nhiệt độ có hàm

VOUT = 0.01xTOK = 2.73 + 0.01xTOC

+ Cấu trúc của bộ cảm biến LM335 là loại cảm biến có 3 chân tín hiệu ra tương tự

2.2 Khối điều chỉnh điện áp hay mạch khuéch đại

Đầu đo dưới dạng vi mạch LM 335 là một đầu đo nhiệt độ đơn giản và chính xác ,có điện áp lối ra tỷ lệ thuận với nhiệt độ của đầu đo. Đầu đo này không cần đến linh kiện ở ngoài nên không cần chuẩn lại ở những nhiệt độ khác nhau .Trong vùng nhiệt độ phòng , độ chính xác đạt cỡ 0,250C .Dòng điện tiêu thụ cỡ 60uA nên có thể bỏ qua sự tăng nhiệt độ đầu đo dòng điện nuôi tạo ra .

Tương ứng với dải nhiệt độ đo dải từ 0oC-100oC thì điện áp ra tuyến tính là 2.73-3.73V.Ta điều chỉnh biến trở R20 để ở 250C thì điện áp ra ở chân 2 của cảm biến là 2.98V.

- Điện áp ra của cảm biến là từ 2.73-3.73V ,trong khi thang điện áp vào làm việc của ADC0809 là 0-5V ,do vậy ta cần tiến hành chuẩn hóa tín hiệu trước khi đưa đến ADC. .Sơ đồ mạch thực hiện việc đó như trên .Nguyên lý hoạt động của mạch đó là:

+ Dùng một đi ốt zener và một nguồn nuôi để tạo ra điện áp ổn định 5V.

4

Vout

VR

+5V

LM335

Page 5: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

+ Điện áp này được nối với một biến trở R21 nối đất. Dùng biến trở này để điều chỉnh điện áp vào bộ đệm là 2.73V. Bộ đệm dùng để hạn chế dòng điện trong mạch .

+ Qua bộ đệm điện áp vẫn là 2.73V . Điện áp này được đưa đến một mạch trừ.+ Bộ trừ được nối với các điện trở như hình vẽ . Giá trị của các điện trở được cho như trên hình. Với cách mắc như vậy điện áp ra của bộ trừ là :

Vout = Vin(+) –Vin(-) Ta có :

Vin(+) = 2.73 - 3.73 VVin(-) = 2.73V

Do vậy :Vout = 0 - 1V

Ta đã đạt được yêu cầu về điện áp. Và cũng để hạn chế dòng điện ta phải đưa điện áp này vào ADC qua một bộ đệm như trên hình vẽ.

Ta cần hiển thị kết quả ra LED ,muốn vậy cần có sự đồng nhất :Nhiệt độ đo( 0C ) Mã nhị phân ở đầu ra của ADC + Điện áp ở lối ra của LM335 là 10mV / 0C + Do vậy vấn đề này được giải quyết bằng cách đặt điện áp ở các chân Vref

của ADC thích hợp.

Như ta đã biết ADC 0809 có 8 bít ở đầu ra nên có: 28 - 1 = 255 ( bậc thang )Ta sử dụng nguồn 5V,và 1 biến trở để tạo ra Vref(+) của ADC0809 là 2.55V, Nờn suy ra điện áp Ù(ref)=2.55V . Kích cỡ bậc thang là : 2.55/ 255 =0.01(V)

- Điện áp đưa tới chân vào của ADC là 0 - 1 V tương ứng với nhiệt độ đầu đo của cẩm biến là 0 - 100 0C- Tín hiệu lối ra của cảm biến 10mV / 0C.- Kích cỡ bậc thang 10mV

2.3 Khối chuyển đổi ADC - sử dụng ADC0809Có nhiều phương pháp để chuyển đổi một đại lượng tương tự sang giá trị số như:

- ADC dạng sóng bậc thang :lớp ADC đơn giản này sử dụng bộ đếm nhị phân làm thanh ghi và cho phép xung nhịp đẩy bộ đếm tăng mỗi lần một bước,cho đến khi VAX # VA. ADC loại này gọi là ADC sóng bậc thang vì dạng sóng tại VAX có từng bậc đi lên . ADC dạng sóng bậc thang bao gồm một bộ đếm ,một DAC ,một bộ so sánh tương tự ,và một cổng AND điều khiển . Đầu ra bộ so sánh dùng làm tín hiệu điều khiển kết thúc chuyển đổi EOC-tớch cực mức thấp

*Ưu điểm: +Tương đối đơn giản +Phù hợp với các ứng dụng tốc độ chậm. *Nhược điểm:Nếu tăng số bit để tăng độ phân giải thi khi đó chỉ cần

thêm 1 bit ,thời gian chuyển đổi đã tăng gấp đôi.Như vậy tăng độ phân giải thì thời gian chuyển đổi kéo dài.Vì thế ADC loại này không phù hợp với những ứng dụng đòi hỏi phải liên tục chuyển đổi một tín hiệu tương tự thay đổi nhanh thành tín hiệu số.

5

Page 6: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

- ADC liên tiếp-xấp xỉ(ADC0804,ADC0809...). Đây là phương pháp được sử dụng rộng rãi , nhưng mạch điện có phức tạp nhưng thời gian chuyển đổi ngắn hơn . Phương pháp này có thời gian chuyển đổi không phụ thuộc vào điện áp ngõ vào .

Sơ đồ khối chuyển đổi ADC dùng phương pháp xấp xỉ liên tiếp

Hoạt độngKhi tác động cạnh xuống của xung Start thì ADC bắt đầu chuyển đổi

-Mạch logic điều khiển đặt bit có nghĩa lớn nhất của thanh ghi diều khiển lên mức cao và tất cả các bit còn lại ở mức thấp . Số nhị phân ra ở thanh ghi điều khiển được qua mạch DAC để tạo ra điện áp tham chiếu V’a .

Nếu V’a > Va thì ngõ ra bọ so sánh xuống mức thấp làm cho mạch logic diều khiển xóa bit MSB xuống mức thấp

Nếu V’a <Va thì ngõ ra bọ so sánh ở mức cao làm cho mạch logic điều khiển giữ bit MSB ở mức cao .

Tiếp theo mạch logic điều khiển đưa bit có nghĩa kế bit MSB lên mức cao và tạo ở ngõ ra khối DAC một điện áp tham chiếu V’a rồi đem so sánh tương tự như bit MSB như trên . Quá trình này cứ tiếp tục cho đến bit cuối cùng trong thanh ghi điều khiển . Lúc đó thì V’a gần bằng Va ngõ ra của mạch logic điều khiển báo kết thúc chuyển đổi .

Như vậy mạch đổi ra n bit chỉ mất n chu kì xung clock nên có thể đạt tốc độ rất cao . Tuy nhiên mạch ADC xấp xỉ liên tiếp lại không thể đáp ứng với tín hiệu tương tự vào biến đổi cực nhanh .

- ADC chuyển đổi nhanh(MC10319,AD9010,... ) +Bộ chuyển đổi nhanh (fast converter)là loại ADC có tốc độ cao nhất nhưng

sơ đồ mạch phức tạp hơn các loại khác.Chẳng hạn,ADC nhanh N bit cần 2N-1 bộ so sánh,2N điện trở và logic mã hoá cần thiết.

+ Bộ chuyển đổi nhanh không cần tín hiệu xung nhip vì tiến trình chuyển đổi xảy ra liên tục.

6

Clock

Start

EOC

VA

V’A

+

_

DAC

Thanh ghi điều khiển

Logic điều khiển MSB LSB

Page 7: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

+ Thời gian chuyển đổi là thời gian cần thiết để xuất hiện một đầu ra số đáp lại một thay đổi ở đầu vào tương tự,chỉ phụ thuộc vào khoảng trễ do truyền của bộ so sánh và bộ mã hoá.Do đó ADC nhanh có thời gian chuyển đổi vô cùng ngắn ngủi:

VD:MC10319(Motorola)-8 bit: tc<20ns AD9010(Analog Devices)-10 bit: tc<15ns.

Ngoài ra còn một số phương pháp khác như:ADC sóng bậc thanh lên/xuống;ADC tích hợp hai độ dốc;ADC chuyển đổi điện thế thành tần số; điều biến sigma/delta.

TỔNG QUAN Về ADC 0809:ADC0809 là bộ chuyển đổi tương tự-số 8 bit 8 đầu vào tương tự được dồn kênh

bởi 1 bộ dồn kênh tích hợp sẵn trên chip ADC.Như vậy một mặt nó không cần bộ dồn kênh tương tự ngoài ,mặt khác lại cho phép có nhièu đầu vào hơn, Điều này rất thuận tiện cho việc đo ,giám sát các đại lương vật lý ở nhiều điểm đo khác nhau.

ADC0809 có 8 kênh đầu vào tương tự .Như vậy ADC0809 cho phép giám sát đồng thời 8 bộ cảm biến,8 kênh đầu vào tương tự được dồn kênh và được chọn nhờ nhờ 3 chân địa chỉ A,B,C .

ADC0809 hoạt động theo phương pháp liên tiếp-xấp xỉ. Các đặc tính:

-Dễ dàng giao tiếp với các bộ vi xử lý-Bộ dồn kênh 8 đầu vào với logic địa chỉ-Dải điện áp đầu vào 5V và nguồn cấp 5 V

Một vài thông số kỹ thuật chính:-Độ phân giải: 8 bit-Sai số : +/- 1LSB-Nguồn cung cấp: 5V .-Công suất: 15mW.-Tốc độ chuyển đổi: <100us

Sơ đồ khối cấu trúc bên trong ADC0809:

7

Page 8: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

Các chân của ADC0809

Sơ đồ chân của ADC0809-Vcc: Chân cấp nguồn. Điện áp nguồn:5V-GND: Chân nối đất.- Vref(+) và Vref(-) Hai chân đưa điện áp tham chiếu. Thường Vref (-) nối đất.Trong bài Vref(+) được nối với nguồn 5V và một biến

trở 10k để lấy ra Vref(+)=2.55V-IN0->IN7(Input):-8 kênh đầu vào tương tự.- ADDA,ADDB,ADDC là 3 chân chọn kờnh đầu vào. A,B,C la 3 bit chọn 1 trong 8 kênh đầu vào của 1 Multiplexer tương tự được

tích hợp trong bộ ADC0809.-ALE(Address Latch Enable): Chân để chốt địa chỉ (kênh vào).- Start: Chân gửi tín hiệu bắt đầu chuyển đổi.- EOC(End off Convertion):Chân nay để gửi tín hiệu kết thúc chuyển đổi.- OE(Output Enable): Chân gửi tín hiệu cho phép lấy số liệu số ở đầu ra.- 01->08: là 8 chân tương ứng 8 bit đầu ra của số liệu 8 bit đã được chuyển đổi.- CLK: Chân tín hiệu Clock , để gửi tín hiệu xung đồng hồ để ADC làm việc .

CHỨC NĂNG & HOẠT ĐỘNG CỦA ADC0809 * Sơ đồ khối chức năng của ADC0809:

8

Page 9: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

*ADC0809 thể hiện trên sơ đồ trên có thể dược chia theo chức năng thành 2

mạch con cơ bản.Hai mạch con này là một bộ dồn kênh và một bộ chuyển đổi A/D. -Bộ dồn kênh sử dụng 8 khoá tương tự công nghệ CMOS chuẩn để cung cấp

một trong 8 đầu vào tương tự.Các khoá được điều khiển chọn,tuỳ thuộc vào số liệu được chốt ở thanh ghi địa chỉ bộ dồn kênh (multiplexer address register) 3 bit.

- Khối chức năng thứ hai là bộ chuyển đổi A/D liên tiếp-xấp xỉ,chuyển tín hiệu tương tự đầu ra của bộ dồn kênh thành một từ số 8 bit. Đầu ra bộ dồn kênh sẽ đi đến một trong hai đầu vào của bộ so sánh. Đầu vào kia nhân được từ 1 thang điện trở 256R được mắc vào một cây khoá dùng transistor MOSFET (MOSFET transistor switch tree).Logic điều khiển bộ chuyển đổi sẽ điều khiển switch tree, đưa điện áp tương ứng chảy ra(funneling a particular tap voltage) đến bộ so sánh. Đặt cơ sở cho kết quả của sự so sánh này,bộ logic điều khiển và thanh ghi liên tiếp xấp xỉ(SAR)sẽ quyết định điện áp được chọn để lấy ra sẽ cao hơn hay thấp hơn giá trị hiện tại trên thang điện trở.Tiến trình(algorithm)này được thực hiện 8 lần trong 1 chuyển đổi,mỗi chuyển đổi cần 8 chu kỳ đồng hồ.Như vậy tổng cộng thời gian chuyển đổi là 64 chu kỳ đồng hồ.

-Khi một chu kỳ chuyển đổi hoàn thành,số liệu kết quả được đưa vào bộ chốt đầu ra 3 trạng thái.Số liệu trong bộ chốt đầu ra có thể sau đó có thể được đọc bởi một hệ thống tiếp nhận số liệu(host system) bất cứ lúc nào trước khi kết thúc chu kỳ chuyển đổi tiếp theo .Khả năng 3 trạng thỏi của bộ chốt cho phép giao tiếp dễ dàng với các hệ thống bus định hướng(bus oriented systems).

-Thực hiện hoạt động của các bộ chuyển đổi này bằng một bộ vi xử lý hoặc một số logic điều khiển thì rất đơn giản.Thiết bị điều khiển đầu tiên sẽ chọn kênh vào. Để làm điều này ,một địa chỉ kênh 3 bit được áp vào các chân A,B,C;và chân ALE (Address Latch Enable) được đưa xung tích cực để khoá địa chỉ vào thanh ghi địa chỉ bộ dồn kênh.

9

Page 10: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

- Để bắt đầu chuyển đổi,chân START được áp xung tích cực. ở sườn lên của xung này,những thanh ghi trong được xoá và ở sườn xuống sự chuyển đổi được bắt đầu.

Cần 8 chu kỳ đồng hồ trong mỗi lần xấp xỉ.Dù là không có chuyển đổi trong quá trình đó,ADC0809 vẫn quay vòng ở bên trong(internally cycling) qua 8 chu kỳ đồng hồ.Một xung start có thể xuất hiện bất cứ lúc nào trong suốt quá trình này nhưng sự chuyển đổi sẽ không thật sự bắt đầu đến khi bộ chuyển đổi quay vòng bên trong đến khi bắt đầu chuỗi 8 chu kỳ đồng hồ sau.Chỉ cần chân START được giữ ở mức cao thì sẽ không có chuyển đổi,nhưng khi chân start đựơc đưa xuống thấp sự chuyển đổi sẽ bắt đầu trong khoảng thời gian 8 chu kỳ đú.

-Đầu ra EOC được lật ở sườn lên của xung start.Nó cũng được điều khiển bởi chu trình gồm 8 chu kỳ đồng hồ,nên nó sẽ xuống thấp trong khoảng thời gian 8 chu kỳ đồng hồ khi xảy ra sườn lên của xung start .

Sơ đồ thời gian của ADC0809:

Kênh được chọn C B AIN0 0 0 0IN1 0 0 1IN2 0 1 0IN3 0 1 1IN4 1 0 0IN5 1 0 1IN6 1 1 0IN7 1 1 1

10

Page 11: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

Kết nối các chân của ADC0809 với VĐK8051- Vì chỉ dùng 1 đầu đo nên 3 chân ADDA,B,C ta đặt ở mức 0- 01-08 là 8 bit đầu ra được nối với cổng P0 của 8051- EOC nối với ngắt ngoài INT0- ALE,START,EO được điều khiển bởi các tín hiệu READ/WRITE- Đầu đo nhiệt độ nối vào IN0.

2.4 Bộ vi xử lý 8051 Tổng quan cấu trúc 8051:

MCS-51 là họ vi điều khiển của INTEL. Các nhà sản xuất IC khác như Siemens, Advanced Micro Divices, Fujitsu và Philips được cấp phép làm các nhà cung cấp thứ hai cho các chíp của họ MCS-51.Vi mach tổng quát cưa họ MCS-51 là chíp 8051, linh kiện đầu tiên của họ này được đưa ra thị trường. Chíp 8051 có các đặc trưng được tóm tắt như sau :

_4KB ROM._128 byte RAM._ 4 port xuất nhập (I/O port ) 8- bit._ 2 bộ định thời 16 bit._ Mạch giao tiếp nối tiếp._ Không gian nhớ chương trình (mã) ngoài 64K._ Không gian nhớ dữ liệu ngoài 64K._ Bộ xử lý bít(thao tác trên các bit riêng rẽ)._ 210 vị trí được định địa chỉ, mỗi vị trí 1 bit.

11

Page 12: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

Sơ đồ khối của chíp 8051.

1) Tổ chức chân của MCS51:

S¬ ®å ch©n cña 8051 d¹ng DIP.

12

Page 13: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

Tổ chức chân của 8051 dạng PQFP/TQFP và PLCC

a) port 0 : chức năng ở trên chân từ 32 đến 39 trong các thiết kế cỡ nhỏ (không dùng bộ nhớ mở rộng ) có hai chức năng như các đường IO. Đối với các thiết kế cỡ lớn ( với bộ nhớ mở rộng ) nó được kết hợp kênh giữa các bus ).

b) port1 : là một port I/O trên các chân 1-8. Các chân được ký hiệu P1.0, P1.1, P1.2 ... có thể dùng cho các thiết bị ngoài nếu cần. Port1 không có chức năng khác, vì vậy chúng ta có thể dùng chúng trong giao tiếp với các thiết bị ngoài một cách tự do.

c) Port 2 : là một port công dụng kép trên các chân 21 - 28 được dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng.

d) Port 3 : là một port công dụng kép trên các chân 10 - 17. Các chân của port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của 8051 / 8031 như ở bảng sau :

Bit Tên Chức năng chuyển đổi P3.0 RXD Dữ liệu nhận cho port nối tiếp P3.1 TXD Dữ liệu phát cho port nối tiếp P3.2 INTO Ngắt 0 bên ngoài P3.3 INT1 Ngắt 1 bên ngoài P3.4 TO Ngõ vào của timer/counter 0 P3.5 T1 Ngõ vào của timer/counter 1 P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài

Chức năng của các chân trên port3

e) PSEN (Program Store Enable ) : 8051 có 4 tín hiệu điều khiển

PSEN là tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển để cho phép bộ nhớ chương trình mở rộng và thường được nối đến chân OE (Output Enable) của một EPROM để cho phép đọc các bytes mã lệnh.

13

Page 14: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

PSEN sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương trình được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8051 để giải mã lệnh. Khi thi hành chương trình trong ROM nội (8051) PSEN sẽ ở mức thụ động (mức cao).f) ALE (Address Latch Enable ) :Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lí 8585, 8088, 8086, 8051 dùng ALE một cách tương tự cho làm việc giải các kênh các bus địa chỉ và dữ liệu khi port 0 được dùng trong chế độ chuyển đổi của nó : vừa là bus dữ liệu vừa là byte thấp của địa chỉ, ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nữa đầu của chu kỳ bộ nhớ. Sau đó, các đường port 0 dùng để xuất hoặc nhập dữ liệu trong nữa sau chu kỳ của bộ nhớ.

Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng là nguồn xung nhịp cho các hệ thống. Nếu xung trên 8051 là 12MHz thì ALE có tần số 2MHz. Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE sẽ bị mất. Chân này cũng được làm ngõ vào cho xung lập trình cho EPROM trong 8051.g) EA (External Access) :Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặc mức thấp (GND). Nếu ở mức cao, 8051 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K). Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng. Khi dùng 8031, EA luôn được nối mức thấp vì không có bộ nhớ chương trình trên chip. Nếu EA được nối mức thấp bộ nhớ bên trong chương trình 8051 sẽ bị cấm và chương trình thi hành từ EPROM mở rộng. Người ta còn dùng chân EA làm chân cấp điện áp 21V khi lập trình cho EPROM trong 8051.

h) RST (Reset) :Ngõ vào RST trên chân 9 là ngõ reset của 8051. Khi tín hiệu này được đưa lên múc cao (trong ít nhất 2 chu kỳ máy ), các thanh ghi trong 8051 được tải những giá trị thích hợp để khởi động hệ thống.

i) Xtal1 & Xtal2 :Như đã thấy trong các hình trên, 8051 có một bộ dao động trên chip. Nó thường được nối với thạch anh giữa hai chân 18 và 19. Các tụ giữa cũng cần thiết như đã vẽ. Tần số thạch anh thông thường là 12MHz.

j) Power: 8051 vận hành với nguồn đơn +5V. Vcc được nối vào chân 40 và Vss (GND) được nối vào chân 20.

2. Tổ chức bộ nhớ :

Bộ nhớ bên trong bao gồm ROM (8051) và RAM trên chip, RAM trên chip bao gồm nhiều phần : phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt.

14

Cấp clock cho 8051

Page 15: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

Tóm tắt các vùng bộ nhớ của 8051

Như ta đã thấy trên hình, RAM bên 8051 được phân chia giữa các bank thanh ghi (00H-1FH), RAM địa chỉ hóa từng bit (20H-2FH) , RAM đa dụng (30H--7FH) và các thanh ghi chức năng đặc biệt (80H-FFH).

Bộ nhớ ROM có 30 byte đầu tiên được dành cho bảng vector ngắt : RAM trên chip bao gồm vùng RAM đa chức năng, vùng RAM với từng bit được định địa chỉ, các dóy thanh ghi (bank) và các thanh ghi chức năng đặc biệt.

a. Vùng RAM đa mục đích: Có 80 byte, địa chỉ từ 30H đến 7FH Bất cứ vị trí nào trong vùng RAM ta đều có thể truy xuất tự do bằng cách sử dụng định địa chỉ trực tiếp hoặc gián tiếp.

b. Vùng RAM định địa chỉ: Chip 8951 chứa 210 vi trí định địa chỉ in đó có 128 byte chứa trong các byte ở địa chỉ 20H đến 2FH (16 byte x 8 = 128 bits), phần còn lại chứa trong các thanh ghi chức năng đặc biệt. Công dụng: + Truy xuất các bit riêng rẽ thông qua các phần mền. + Các port có thể địng địa chỉ từng bit, làm đơn giản việc giao tiếp băng phần mền với các thiết bị xuất nhập đơn bit.

c. Các dãy thanh ghi: Có địa chỉ từ 00H đến 1FH, 32 vị trí thấp nhất của bộ nhớ nội chứa các dãy thanh ghi. Các lệnh của 8951 hỗ trợ 8 thanh ghi tử R0 đến R7 (mặc định thuộc bank 0 sau khi reset hệ thống)

d. Các thanh ghi chức năng đặc biệt (SFR) Không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chỉ có 21 địa chỉ được định nghĩa. Các thanh ghi chức năng đặc biệt bao gồm:

+ PSW: có địa chỉ là D0HBit Kí hiệu Địa chỉ Mô tảPSW.7 CY D7H Cờ NhớPSW.6 AC D6H Cờ nhớ phụ

15

Page 16: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

PSW.5 F0 D5H Cờ 0PSW.4 RS1 D4H Chọn dãy thanh ghi 1PSW.3 RS0 D3H Chọnh dãy thanh ghi 0

00 = bank 0: địa chỉ từ 00F đến 07H01 = bank 1: địa chỉ từ 08F đến 0FH10 = bank 2: địa chỉ từ 00F đến 07H11 = bank 3: địa chỉ từ 00F đến 07H

PSW.2 OV D2H Cờ trànPSW.1 - D1H Dự trữPSW.0 P D0H Cờ kiểm tra chẵn lẻ

+ Thanh ghi B: Có địa chỉ F0H được dùng chung với thanh chứa A trong các phộp toán nhân và chia. + Con trỏ Stack (SP) : là thanh ghi 8 bit ở địa chỉ 81H, nó chứa địa chỉ của dữ liệu hiện đang ở đỉnh của stack. + Con trỏ dữ liệu DPTR:

- Dùng để truy xuất bộ nhớ chương trình ngoài hoặc bộ nhớ dữ liệu ngoài.- DPTR là thanh ghi 16 bit có địa chỉ 82H (byte thấp ) và 83H (byte cao).

+ Các thanh ghi port: - Port 0 : địa chỉ 80H

- Port 1 : địa chỉ 90H - Port 2 : địa chỉ A0H - Port 3 : địa chỉ B0H + Các thanh ghi định thời: 8951 có 2 bộ định thời/đếm dùng để định khoảng thời gian hoặc đếm các sự kiện. - Bộ định thời 0: địa chỉ 8AH (TL0 ) va 8CH (TH0) - Bộ định thời 1: địa chỉ 8bH (TL1 ) va 8DH (TH1) Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ định thời TMOD ở địa chỉ 89H và thanh ghi điều khiển bộ định thời TCON ở địa chỉ 88H (chỉ có TCON được định địa chỉ từng bit)

a. Thanh ghi chế độ định thời TMOD:GATE C/T M1 M0 GATE C/T M1 M0

TMOD chứa hai nhóm 4 bit dùng để thiết lập chế độ định thời cho bộ định thời 0 và bộ định thời 1.TMOD không được định địa chỉ từng bit mà được thiết lập một lần bằng phần mềm ở đầu chương trình.

Bit Tên Bộ định thời Mô tả7 GATE 1 -Bit điều khiển cổng. Bộ định thời 1 hoạt động khi

GATE được set bằng 1 và /INT1 ở mức cao.

6 C/T 1 - Bit chọn chế độ đếm hoặc định thời. Xoá bằng 0 khi

đếm sự kiện (tín hiệu vào từ đồng hồ hệ thống trong

chip), set bằng 1 khi hoạt động định thời

5 M1 1 - Bit chọn chế độ.

16

Page 17: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

4 M0 1 - Bit chọn chế độ.

Tương tự như vậy với 4 bit của bộ định thời 0. Với các chế độ định thời được chọn:M1 M0 Chế độ Mô tả

0 0 0 Chế độ định thời 13 bit

0 1 1 Chế độ định thời/ bộ đếm 16 bit

1 0 2 Chế độ định thời/ bộ đếm 8 bit tự nạp lại

1 1 3 Timer 0: TL0 là bộ định thời/ đếm 8 bit điều khiển.

bởi các bit chọn của Timer 0 chuẩn. TH0 là một bộ

timer 8 bit điều khiển bởi các bit chọn của Timer 1.

Còn Timer 1 dừng không hoạt động

b. Thanh ghi điều khiển định thời TCON:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Bit Tên Địa chỉ bit Mô tảTCON.7 TF1 8Fh Cờ tràn của bộ định thời 1. Được set bởi phần cứng

khi có tràn, được xoá bởi phần mềm hoặc phần cứng khi bộ vi xử lý trỏ đến trình phục vụ ngắt.

TCON.6 TR1 8Eh Bit điều khiển Timer 1. Set hoặc xoá bởi phần cứng để timer 1 hoạt động hoặc ngừng.

TCON.5 TF0 8Dh Cờ tràn của Timer 1. Set/ xoá bởi phần cứng khi Timer/ Counter 0 tràn hoặc bộ vi xử lý trỏ đến trình phục vụ ngắt.

TCON.4 TR0 8Ch Bit điều khiển hoạt động của Timer 0. TCON.3 IE1 8Bh Cờ ngắt bên ngoài 1 (kích khởi cạnh). Hoạt động

bởi phần cứng.TCON.2 IT1 8Ah Cờ ngắt bên ngoài 1 (kích khởi cạnh hoặc mức).

Hoạt động bởi phần mềm.TCON.1 IE0 89h Cờ ngắt bên ngoài 0 (kích khởi cạnh). Hoạt động

bởi phần cứng. TCON.0 IT0 88h Cờ ngắt bên ngoài 0 (kích khởi cạnh hoặc mức).

Hoạt động bởi phần mềm.

+ Các thanh ghi của port nối tiếp: Chip 8951 có 1 port nối tiếp để truyền thông với các thiết bị như các thiết bị đầu cuối hoặc modem... + Các thanh ghi ngắt: có một cấu trúc ngắt với 2 mức ưu tiên và 5 nguyên nhân ngắt. Các ngắt bị vô hiệu hoá sau khi Reset hệ thống và được phép bằng cách vào thanh ghi IE ở địa chỉA8H. Mức ưu tiên ngắt được thiết lập bởi thanh ghi IP ở địa chỉ B8H. + Thanh ghi điều khiển nguồn: PCON có địa chỉ 87H.

17

Page 18: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

3. Hoạt động định thời: Là một chuỗi các Flip-Flop nối tiếp nhau và nhận tín hiệu từ nguồn xung nhịp. Bộ định thời được lập trỡnh sao cho sẽ tràn trong một khoảng thời gian nhất định và set cờ tràn của bộ định thời = 1. Các bộ định thời sử dụng để: - Định thời trong một khoảng thời gian. - Đếm sự kiện. - Tạo tốc độ baud cho các port nối tiếp. Các bộ định thời được truy xuất bằng cách sử dụng 6 thanh ghi chức năng đặc biệt.

SFR của bộ định thời

Mục đích Địa chỉ Địa chỉ của Bit

TCON Điều khiển 88H CóTMOD Chon chế độ 89H Không

TL0 Byte thấp của bộ định thời 0 8AH KhôngTL1 Byte thấp của bộ định thời 1 8BH KhôngTH0 Byte cao của bộ định thời 0 8CH Không

TH1Byte cao của bộ định thời 1 8DH Không

4. Hoạt động ngắt:- Là một sự kiên, một điều kiện làm cho chương trình hiện hành tạm dừng trong khi

điều kiện được phục vụ bởi một chương trình khác. Ngắt đóng vai trò quan trọng trong việc thiết kế, thực hiện ứng dụng các bộ vi điều khiển.

- Tổ chức ngắt của 8951: . Có 5 nguyên nhân tạo ra ngắt: 2 ngắt do bên ngoài, 2 ngắt do bộ định thời, một ngắt do port nối tiếp.

. Khi xảy ra 2 hay nhiều ngắt đồng thời hoặc một ngắt trong khi đang thực hiên một ngắt khác thì ta sẽ có 2 sơ đồ xử lý các ngắt: Sơ đồ chuỗi vòng và sơ đồ mức ưu tiên.

Ngắt được cho phép và không được cho phép

Bit Kí hiệu

Địa chỉ bit

Mô tả(0= Không cho phép; 1= Cho phép)

IE.7 EA AFH Cho phép/ không cho phép toàn cụcIE.6 - AEH Không sử dụngIE.5 ET2 ADH Cho phép ngắt do bộ định thời 2IE.4 ES ACH Cho phép ngắt do port nối tiếpIE.3 ET1 ABH Cho phép ngắt do bộ định thời 1

18

Page 19: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

IE.2 EX1 AAH Cho phép ngắt từ bên ngoài (Ngắt ngoài 1)IE.1 ET0 A9H Cho phép ngắt do bộ định thời 0IE.0 EX0 A8H Cho phép ngắt từ bên ngoài (Ngắt ngoài 0 )

* Ưu tiên ngắt:Các ưu tiên ngắt được lập trình riêng rẽ để có một trong 2 mức ưu tiên thông qua các thanh ghi chức năng đặc biệt được định địa chỉ bit.

Bit Kí hiệu

Địa chỉ bit

Mô tả(0= Không cho phép; 1= Cho phép)

IP.7 - - Không sử dụngIP.6 - -

Khụng sử dụng

IP.5 PT2 BDH Ưu tiên ngắt do bộ định thời 2IP.4 PS BCH Ưu tiên ngắt do port nối tiếpIP.3 PT1 BBH Ưu tiên ngắt do bộ định thời 1IP.2 PX1 BAH Ưu tiên ngắt từ bên ngoài (Ngắt ngoài 1)IP.1 PT0 B9H Ưu tiên ngắt do bộ định thời 0IP.0 PX0 B8H Ưu tiên ngắt từ bên ngoài (Ngắt ngoài 0 )

Xử lý ngắt: Các thao tác xảy ra sau khi ngắt: - Hoàn tất việc thực thi lệnh hiện hành.

- Bộ đếm chương trình PC được hoàn tất. - Trạng thái của ngắt hiện hành được lưu giữ lại. - Các ngắt được chặn lại ở mức ngắt. - Bộ đếm chương trình PC được nạp địa chỉ véctơ của trình phục vụ ngắt ISR - SR được thực thi. Các cờ ngắt:

Ngắt Cờ Thanh ghi SFR và vị trí bítDo bên ngoài (ngắt ngoài 0) IE0 TCON.1Do bên ngoài (ngắt ngoài 1) IE1 TCON.3Do bộ định thời 1 TF1 TCON.7Do bộ định thời 0 TF0 TCON.5Do port nối tiếp TI SCON.1Do port nối tiếp RI SCON.0

* Thanh ghi điều khiển hoạt động cổng nối tiếp SCON:SM0 SM1 SM2 REN TB RB8 TI RI

Bit Ký hiệu Mô tảSCON.7 SM0 Bit 0 chọn chế độ của port nối tiếp.SCON.6 SM1 Bit 1 chọn chế độ của port nối tiếp.

SCON.5 SM2 Bit 2 chọn chế độ của port nối tiếp.

19

Page 20: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

SCON.4 REN Set/ xoá bằng phần mềm để cho phép/ không cho phép thu.SCON.3 TB8 Bit phát 8. Bit thứ 9 được phát ở các các chế độ 2 và 3; được set hoặc xoá bởi phần mềm.

SCON.2 RB8 Bit phát 8. Bit thứ 9 nhận được cờ ngắt phát; được xoá bởi phần mềm.

SCON.1 TI Cờ ngắt phát.SCON.0 RI Cờ ngắt thu.

2.5 Khối phím ấn Khối phím gồm 4 phím là :Func,DEC,INC,OK.Khi bấm vào phím nào đố VXL sẽ gọi chương trình phục vụ ngắt phím.Các phím này được dùng để tăng và lưu giá trị nhiệt độ.

- Phím FUNC :lưu giá trị cảnh báo max- Phím DEC: tăng giá trị nhiệt độ đặt- Phím INC: giảm giá trị nhiệt độ đặt- Phím OK: lưu giá trị cảnh báo minTa dùng vi mach 74LS148 để giải mã phím.Khi ấn nút vi mạch sẽ phát ra 1 ngắt để cho VXL biết để nhận mã phím vào Đặc điểm chính của vi mạch 74LS148 -Là 1 IC mã hóa có 8 đường vào song song.Mỗi đường vào sẽ tưong ứng với 1 mã nhị phân ở lối ra song song qua 3 cổng A,B,C -Các lối vào có các chân X0-X7 là các lối vào ưu tiên tích cực thấp,chân EI là lối vào cho phép tích cực thấp - Các lối ra gồm có các chân ADC là các mã của đầu vào,chân EO là lối ra cho phép tích cực cao,chân GS sẽ phát ra 1 ngắt khi có phím được ấn

EI X0 X1 X2 X3 X4 X5 X6 X7 GS A B C EOH X X X X X X X X H H H H HL H H H H H H H H H H H H LL X X X X X X X L L L L L HL X X X X X X L H L H L L HL X X X X X L H H L L H L HL X X X X L H H H L H H L HL X X X L H H H H L L L H HL X X L H H H H H L H L H HL X L H H H H H H L L H H HL L H H H H H H H L H H H H

Các đầu vào từ X4-X7 ,ta sẽ có các đầu ra A,B,C có mã tương ứng làPhím A B C

FUNC 1 1 0DEC(-) 1 0 0INC(+) 0 1 0

OK 0 0 0

20

Page 21: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

2.6 Hiển thị Led Sử dụng 1 LED 4digit để hiển thi nhiệt độ. Tín hiệu từ P2 của khối Vi xử lý được đua qua bộ giải mã LED 7 thanh 74LS47 đến

LED 7 thanh. Nhiệt độ môi trường được đo trong khoảng 0OC đến 100OC và hiển thị trên LED.

2.7 RS 232 Max 232 là mạch truyền tin công nghiệp khi Master gọi Slave thì mở phiên truyền tin.Việc truyền tin đi xa ở mức điện áp TTL có thể gây suy giảm điện áp ,lẫn nhiễu làm khó phân biệt được tín hiệu 0 hay 1 .Điều này làm sai lêch thông tin nên truyền thông đi xa phải tăng mức điện áp Nhưng mức điện áp của các mạch số TTL là khcs với mức điện áp của máy tinh nên cần có mạch chuẩn Cổng nối tiếp RS232 là giao diện dùng cho nhiều mục đích đo lường điều khiển và nhiều ứng dụng điều khiển khác.Trong PC cổng nối tiếp thường là các cổng COM1, COM2.Việc truyền dữ liệu qua cổng RS232 được tiến hành theo cách nối tiếp tức là các dữ liệu truyền nối tiếp trên 1 đường dây ,cổng RS232 dễ dàng cho liên kết điểm-điểm,giữa 2 máy tính với nhau hay giữa máy tính với ngoại vi Các thông số kỹ thuật :

- Tốc độ truyền tối đa là 20BAUD- Khoảng cách cực đại là 15m- Mức logic 1là từ -3 đến -25V- Mức logic 0là từ 3 đến 25V- Tín hiệu nhiễu cho phép 2V

Cấu trúc cổng nối tiếp kiểu chân Chân Chức năng Vào /Ra

1 DCD IN2 RxD IN

21

Page 22: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

3 TxD OUT4 DTR OUT5 GND GROUND6 DSR IN7 RST OUT8 CST IN9 RI IN

Cấu trúc 1 Frame

Bit start Bits Data Bit Parity Bit Stop

2.8 Khối nguồn cung cấpTa dùng 2 nguồn 5V và 9V cấp cho mạch

22

Page 23: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

2.9 Sơ đồ nguyên lý tổng thể

1 2 3 4 5 6 7 8

A

B

C

D

87654321

D

C

B

A

Title

Number RevisionSize

A2

Da te: 13-Jan-2007 Sheet of File: D:\DA Vixuly\TrUNG\donhie tdo.ddb Drawn By:

BI/

RB

O4

RB

I5

LT

3

A7

B1

C2

D6

a1

3

b1

2

c1

1

d1

0

e9

f1

5

g1

4

VCC16

GND8

U4

74LS47

1A

2K

L4LED

1A

2K L5

LED

11

22 R8

R7

41

52

63

74

EI5

A26

A17

GN

D8

A09

010

111

212

313

GS14

EO15

VC

C1

6

U5

74LS148 K4K1

K2 K3

R9 R10 R11 R12

+5

R1310K

11

22

K5

+5

C3

30PF

11

22

C4

30PF

R1 IN13

R2 IN8

T1 IN11

T2 IN10

GN

D1

5V

+2

V-

6

VC

C1

6

R1 OUT12

R2 OUT9

T1 OUT14

T2 OUT7

C1+1

C1 -3

C2+4

C2 -5

U8

MAX232

162738495

DB9

+V

2G

ND

3

OUT1

Q4

LM335Z

R15

11

W3

22

R20

R17

R18

+5

R16

R19

A1

K2

Z1

R14

11

W3

22

R21

+5

WRRD

RST RXDTXD

INT0INT1RST

INT1

TXD

RXD

DAU DO

CLK1

EN2

R7

Q03

Q14

Q25

Q36

VC

C1

6G

ND

8

U7A

4520

C1027uF

C927uF

TA2

2MHz

1

23

Q1A

4011

5

64

Q1B

4011CLK

11

22

TA111.092

GN

D1

3V

CC

11

IN-026

m sb2-121

2-220

IN-127

2-319

2-418

IN-228

2-58

2-615

IN-31

2-714

lsb2-817

IN-42

EOC7

IN-53

ADD-A25

IN-64

ADD-B24

ADD-C23

IN-75

ALE22

re f(-)16

ENABLE9

START6

re f(+)12

CLOCK10

U2

ADC0809

EA/VP31

X119

X218

RESET9

RD17

WR16

INT012

INT113

T014

T115

P101

P112

P123

P134

P145

P156

P167

P178

P0039

P0138

P0237

P0336

P0435

P0534

P0633

P0732

P2021

P2122

P2223

P2324

P2425

P2526

P2627

P2728

PSEN29

ALE/P30

TXD11

RXD10

U18051

1

23

Q2A 4001

5

64

Q2B4001

WR

RD

INT0

DAU DO

CLK

+ C51UF

+ C61UF

+

C7

1UF

+

C8

1UF

RG1

Vin-2

Vin+3

Vs-4

RG8

Vs+7

OUT6

Ref5

J2

AD620

A1

12

a1

1

f1

0

A2

9

A3

8

b7

e1

d2

dp

3

c4

g5 6

J1

J3NPN

J4NPN

J5NPN

R4RES2

R5RES2

R6RES2

+5

R1RES2

R2RES2

R3RES2

+5

+5

+5

+5

+9

III. Phần mềm1. Lưu đồ thuật toán

1.1 Lưu đồ thuật toán

23

Page 24: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

1.2 phục vụ ngắt phím

Start

P3.3=1Call Key_sev

Call DelayTạo xung Start, ALE cho ADCChờ ngắt ngoài EX0 (ADC biến dổi xong)Tạo xung OE cho phép đọc dữ liệu từ ADCCất dữ liệu lấy từ ADC vào thanh RoHiển thị nhiệt độ môi trường Kiểm tra nhiệt độ để cảnh báo

END

24

Page 25: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

Key-SRV

Cấm tất cả các ngắt gọi đến VXLCất các thanh ghi sẽ dùng

Đọc mã vào thanh ghi ACC

ACC=01

ACC=11

ACC=10

ACC=00

RETI

Tang muc thap

Giam muc thap

Tang muc cao

Giam muc cao

25

Page 26: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

1.3 Lưu đồ kiểm tra

1.4 Lưu đồ truyền tin

T>Tmax

T<Tmin

RETI

Gọi Red_Led

Gọi Blue_Led

SC_SRV

Cấm các ngắt khác

Cho phép các ngắt

Gọi trình phục vụ ngắt truyền

RI=1

TI=1

Gọi trình phục vụ nhận byte

RETI

26

Page 27: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

2. Phần mềm chương trình

# Include “89c51”

Org 00hljmp Start

Start :Mov SP,#6Fhmov IE,#00hmov PSW,#00hMov R6,#20hMov R7,#80hMov TMOD,#01h ;chon che do 16 bitmov P0,#0ffhmov P1,#00h

Delay:Mov TL0,#00h Mov TH0,#00hSetb TR0

Again :jnb TF0,Againclr TF0ret

Delay1:nopnopnopnopnopret

Loop: ;tao xung start cho ADCjnc P3.3,Key_sevLcall Delaysetb P3.6lcall delay1

clr P3.6 BD_xong:

setb P3.7 ;tao xung EO cho ADC

27

Page 28: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

lcall delay1clr P3.7mov R0,P0mov P0,#0ffh

mov A,R0Lcall Led_showclr P1.6clr P1.7lcall Canhbao

ljmp loop

Led_show : ;hien thi gia tri o thanh ghi A ra man LedMov R5,AAnl A,#0fhClr P1.0Clr P1.1Setb P1.2Mov P2,AMov A,R5Swap AAnl A,#0fhClr P1.0Clr P1.2Setb P1.1Mov P2,ARet

Canhbao: clr c

subb A,R6jnc HT1setb P1.6

HT1: subb A,R7

jnc HT2ljmp Loop

HT2: etb P1.7 ret

Key_sev :Push AccMov A,P1Swap ACjne A,#00,Kiem_tra1

28

Page 29: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

Mov A,R6Inc Amov R6,ALcall Led_show1ljmp ketthuc

Kiem_tra1 :Cjne A,#01h,Ktra2mov A,R6Dec Amov R6,Alcall Led_show1ljmp ketthuc

Ktra2 :Cjne A,#02h,ktra3mov A,R7inc Amov R7,Alcall Led_show1Lcall ketthuc

ktra3:Cjne A,#03h,ketthucmov A,R7dec Amov R7,Alcall Led_show1Lcall ketthuc

ketthuc:Pop AccReti

; Truyen thong Mov TMOD,#20hMov TH1,#0fdhMov SCON,#50Setb TR1Send: Mov SBUF,A Wait: Jnb TI,Wait Clr TI

29

Page 30: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

RetEnd.

IV. Đánh giá sai số Sai số gặp phải của hệ VXL do các sai số: -Sai số hệ thống:do sự hiểu biết sai lệch hoặc không đầy đử về hệ đo,hay do điều kiện sử dụng không tốt như:sai số do dặc tính của cảm biến,do các đại lượng chuẩn không đúng... và do xử lý kết quả đo- Sai số ngẫu nhiên:không thể xác định do tín hiệu,các đại lượng ảnh hưởng Đánh giá sai số- Bộ phận nguồn có thể cung cấp nguồn nuôi không ổn định gây sai số khoảng 1%- Cảm biến có sai số 10C dải đo 0-1000C nên sai số lên tới 1%- Mạch đo có thể do ảnh hưởng ngoài ,các linh kiện như điện trở,tụ,...có thể gây sai

số ≤1%- ADC gây sai số 1 bước lượng tử nên sai số là 1/28 = 0.39%- Sai số tổng là

λ = (λ12 + λ2

2+ λ32+λ4

2)1/2 =1.8%Vậy sai số của thiết bị tối đa là 1.8%Như vậy sai số của mạch chủ yếu do phần tương tự,còn phần số nhỏ không đáng kể.Ta có thể dự tính được sai số và có phương pháp để giảm sai số

30

Page 31: Thiết kế hệ bộ VXL đo nhiệt độ sử dụng VĐK89C51 và cảm biến LM335

V. Kết luận,tài liệu tham khảo Sau 12 tuần nghiên cứu ,thiết kế và được sự giúp đỡ tận tình của thầy Hoàng Sĩ Hồng chúng em đã hoàn thành các yêu cầu cơ bản của môn học đồ án Vi xử lý.Tuy bài tập của chúng em còn nhiều hạn chế do sự nghiên cứu ,tím hiểu về VĐK,linh kiện,thiếu kinh nghiệm thực tế nhưng qua thực hiện bài tập môn học này chúng em đã hiểu hơn về cấu tạo ,hoạt động và ứng dụng của VĐK,đặc biệt là VĐK89C51.Chúng em xin chân thành cảm ơn thầy Hoàng Sĩ Hồng và các thầy cô trong bộ môn đã giúp đỡ và tạo điều kiện thuận lợi cho chúng em. Tài liệu tham khảo -Kỹ thuật VXL và lập trình Assembly cho hệ VXL-Đỗ Xuân Tiến-Họ vi điều khiển 8051-Nguyễn Tăng Cường

31