Đồ án

́

̃

̣ ̣

̣ Ư HOC VIÊN CÔNG NGHÊ B U CHINH VIÊN THÔNG

̀ ́

̣

BÁO CÁO Đ  TÀI ĐÔ AN MACH

Ệ Ộ Ể

ĐO VÀ KH NG CH  NHI T Đ  HI N TH  LCD

́ ư

̀ ̀ GVHD thây:                  Lê  Đ c Toan Nhóm  SV :

­B14DCDT029 : Vũ Văn Kh iả

­B14DCDT030 : Hoàng Xuân Trung

1

̀ ̣ Ha Nôi, ngày 19 tháng 3 năm 2017

LỜI NÓI ĐẦU

Với sự phát triển không ngừng của khoa học công nghệ, cuộc sống con người ngày càng trở nên tiện nghi và hiện đại hơn. Điều đó đem lại cho chúng ta nhiều giải pháp tốt hơn, đa dạng hơn trong việc xử lý những vấn đề tưởng chừng như rất phức tạp gặp phải trong cuộc sống. Việc ứng dụng các thành tựu khoa học kĩ thuật hiện đại trong tất cả các lĩnh vực đã và đang rất phổ biến trên toàn thế giới, thay thế dần những phương thức thủ công, lạc hậu và ngày càng được cải thiện hơn, hoàn mỹ hơn.

Cùng với sự phát triển chung đó, nước ta cũng đang mạnh mẽ tiến hành công cuộc công nghiệp hóa và hiện đại hóa đất nước để theo kịp sự phát triển của các nước trong khu vực và trên thế giới. Trong đó, lĩnh vực điện tử đang ngày càng đóng vai trò quan trọng trong việc phát triển kinh tế và đời sống con người. Sự phổ biến của nó góp phần không nhỏ tới sự phát triển của tất cả các ngành sản xuất, giải trí,... Trong những năm gần đây, đặc biệt trong lĩnh vực tự động nhất là nhiệt độ, nó đã có sự phát triển mạnh mẽ với nhiều hình thức, phương pháp tiếp cận, chia sẻ thông tin hiện đại và toàn diện hơn.

Với lòng đam mê, yêu thích của nhóm trong lĩnh vực này, nhóm đã quyết

định chọn đề tài “ Đo và khống chế nhiệt độ hiển thị LCD” làm đề tài môn học.

Trong thời gian thực hiện đề tài cộng với kiến thức còn hạn chế, nên trong

cuốn đồ án này không tránh khỏi những thiếu sót, nhóm thực hiện rất mong được sự đóng góp của thầy cô và các bạn sinh viên.

Nhóm sinh viên thực hiện đề tài

Vũ Văn Kh iả

Hoàng Xuân Trung

Đồ án

NHẬN XÉT CỦA GIÁO VIÊN

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

.................................................................................................................................

3

MỤC LỤC

LỜI NÓI ĐẦU

NHẬN XÉT CỦA GIẢNG VIÊN

Phần 1: Cơ sở lý thuyết.

I. Cơ sở thực tiễn của đề tài.............................................................

II. Mục đích nghiên cứu của đề tài......................................................

III. Các phương pháp lựa chọn phương án thiết kế

IV.

Tổng quan về AT89S52...................................................................

V.

Tổng quan về LCD 16x2..................................................................

VI.

Tổng quan về cảm biến nhiệt độ DS18B20.....................................

VII. Các linh kiện hỗ trợ khác.................................................................

Phần 2: Nội dung và trình tự thiết kế.

I.

Sơ đồ khối tổng quát vá nguyên lý..................................................

II. Mô phỏng với proteus......................................................................

III. Mạch in............................................................................................

IV. Code................................................................................................

Phần 3: Kết luận và tài liệu tham khảo.

LỜI CẢM ƠN

Đồ án

ĐỀ TÀI:

Thiết kế bộ đo và khống chế nhiệt độ hiển thị bằng LCD 16x2

Phần 1: Cơ sở lý thuyết

I. Cơ sở thực tiễn của đề tài:

Ngày nay cùng với sự phát triển của các ngành khoa học kỹ thuật, kỹ thuật điện tử mà trong đó là kỹ thuật số đóng vai trò quan trọng trong lĩnh vực khoa học kỹ thuật, quản lí, công nghiệp tự động hóa, cung cấp thông tin... Do đó, chúng ta phải nắm bắt và vận dụng nó một cách có hiệu quả nhằm góp một phần vào sự phát triển nền khoa học kỹ thuật thế giới nói chung và sự phát triển kỹ thuật điện tử nói riêng.

Trong đời sống ngày càng phát triển, xuất phát từ những nhu cầu thực tế, nhóm thực hiện đã tìm hiểu và hoàn thành xong mạch đo nhiệt độ. Nó có ứng dụng rất lớn trong các doanh nghiệp sản xuất với độ chính xác cao.

II. Mục đích nghiên cứu của đề tài:

Đo nhiệt độ bằng bộ cảm biến nhiệt DS18B20 hiển thị trên LCD và thông báo ra đèn LED.

III. Các phương pháp lựa chọn phương án thiết kế:

(cid:0) Để đo lường nhiệt độ, người ta có thể chọn nhiều loại cảm biến nhiệt độ khác nhau, mỗi loại đều có một ưu điểm riêng biệt và phù hợp với từng

5

nhu cầu của người sử dụng. Ở đây, nhu cầu của nhóm là đo nhiệt độ môi trường nên nhóm đã sử dụng DS18B20 là tối ưu nhất.

(cid:0) Bộ vi điều khiển AT89S51 là tối ưu nhất và giá thành hợp lý.

(cid:0) LED 16X2 có thể hiển thị đầy đủ những thông báo cần thiết.

IV.

Tổng quan về AT89S52.

AT89S52 là họ IC vi điều khiển do hãng Atmel sản xuất. Các sản

phẩmAT89S52 thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và cáctoán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuấtdữ liệu nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện dụng của những lệnh số học 8 bit gồm cả lệnh nhân và lệnh chia. Nó cung cấp những hổ trợ mởrộng trên chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt chophép quản lý và kiểm tra bit trực tiếp trong hệ thống điều khiển.

AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc cóthể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếpbán song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP.

Các đặc điểm của chip AT89S52 được tóm tắt như sau:

8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xoá

Tần số hoạt động từ: 0Hz đến 24 MHz

3 mức khóa bộ nhớ lập trình

3 bộ Timer/counter 16 Bit 128 Byte RAM nội.

4 Port xuất /nhập I/O 8 bit.

Giao tiếp nối tiếp.

64 KB vùng nhớ mã ngoài

64 KB vùng nhớ dữ liệu ngoại.

Đồ án

Sơ đồ khối của bộ vi điều khiển.

Sơ đồ chân của bộ vi điều khiển AT89S52 được thể hiện ở hình bên dưới.

Sơ đồ chân vi điều khiển AT89S52

-

40

Chân VCC:Chân số 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.

7

- Chân GND: Chân số 20 nối GND (hay nối Mass).

- Port 0 (P0): Port 0 gồm 8 chân (từ chân 32 đến 39) có hai chức năng:

+ Chức năng 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 ra 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 năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộ nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài.

- Port 1 (P1): Port P1 gồm 8 chân (từ chân 1 đến chân 8), chỉ có chức năng làm các đường xuất/nhập, không có chức năng khác.

- Port 2(P2): Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:

- Chức năng xuất/nhập.

+ Chức năng là bus địa chỉ cao (A8-A15): khi kết nối với bộ nhớ ngoài có dung lượng lớn, cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm nhận, byte cao do P2 này đảm nhận.

- Port 3 (P3): Port 3 gồm 8 chân (từ chân 10 đến 17)

+ Chức năng xuất/nhập.

+ Với mỗi chân có một chức năng riêng thứ hai như trong bảng sau:

Bảng chức năng các chân của port 3

Đồ án

ề ể ệ Các ngõ tín hi u đi u khi n:

-

ệ ố Ngõ tín hi u (PSEN)’ (Program store enable) : Chân s  29

ọ ộ ớ ươ ở ộ Cho phép đ c b  nh  ch ng trình m  r ng

- N i v i chân ((OE)’ ho c (RD)’) c a EPROM đ  đi u khi n đ c mã l nhệ

ố ớ ể ề ủ ể ặ ọ

ớ ươ ở ộ ế   ng trình m  r ng thì dùng (PSEN)’, n u

ỏ ố ớ ộ ế - Khi giao ti p v i b  nh  ch ế không có giao ti p thì chân (PSEN)’ b  tr ng

ọ ừ ủ ữ ệ ng trình đ c t EPROM qua bus d  li u và

- đ

ể ả ố ượ ệ ươ ệ Các mã l nh c a ch ệ c ch t vào thanh ghi l nh bên trong 8051 đ  gi i mã l nh

ệ ề ể ố Ngõ tín hi u đi u khi n ALE (Address Latch Enable): Chân s  30

ớ ở ộ ẽ ề ạ ộ ả ợ i đa h p đ ể

- Khi dùng b  nh  m  r ng,  ALE s  đi u khi n m ch gi tách các đ

-

ữ ệ ườ ị ỉ ể ng đ a ch  (A7­A0) và d  li u (D7 – D0)

ộ ả ị ỉ Là m t xung khi port 0 t i đ a ch

- Xung ALE có t n s  = 1/6 t n s  th ch anh

-

ầ ố ạ ầ ố

ể ấ Có th  dùng làm xung clock cung c p cho các IC khác.

ậ ậ ừ ữ ệ ộ Có th  nh n cung l p trình t bên ngoài khi ghi d  li u vào b  nh ớ

ể - Flash Rom

ệ ố Ngõ tín hi u (EA)’ (External Access): Chân s  31

- N u (EA)’ = 1(+5V) thì VĐK th c hi n ch

ự ệ ế ươ ở ộ ng trình ớ ộ  b  nh  n i

- N u (EA)’ = 0(0V) thì VĐK th c hi n ch

ự ế ệ ươ ở ộ ng trình ạ ớ  b  nh  ngo i

- Nh n đi n  áp  l p  trình  VPP(Program)  khi ghi d  li u vào  b  nh Flash Rom

9

ậ ữ ệ ệ ậ ộ ớ

ệ ố Ngõ tín hi u RST (Reset) : Chân s  9

- Khi c p đi n ho c nh n RESET s  reset VĐK

-

ệ ẽ ấ ặ ấ

-

ả ở ứ ệ ỳ Tín hi u Reset ph i ấ  m c cao, ít nh t 2 chu k  máy

ượ ạ ị ặ ữ Các thanh ghi bên trong đ c n p nh ng giá tr  m c nhiên.

ộ ộ ố Các ngõ vào b  dao đ ng XTALT1, XTAL2: Chân s  18, 19

ể ộ ộ ạ ư ạ ộ

ộ XTAL1 (chân 19) và XTAL2 (chân 18). B  dao đ ng th ch anh đ

ụ ố ị ồ   8051 có m t b  dao đ ng trên chíp nh ng nó yêu c u có m t xung đ ng i các chân   ượ   c ả  30pF.  M tộ ộ ố ớ c n i t ạ  g m  giá  tr   kho ng

ầ ấ ầ ộ ẽ ượ ồ ộ ộ h  ngoài đ  ch y nó. M t b  dao đ ng th ch anh s  đ ộ ầ đ u vào ố ớ  XTAL1 và XTAL2 cũng  c n  hai  t i n i  t ủ ụ ệ ượ ố  đi n đ phía c a t ố c n i xu ng đ t.

ộ ầ ố C n ph i l u ý r ng có nhi u t c đ  khác nhau c a h  8051. T c đ

ằ ố ự ả ư ầ ượ ộ ọ ủ ố ớ c n i t

ể ư ề c coi nh  là t n s  c c đ i c a b  dao đ ng đ ể ạ

i chân ầ ố ể ạ ượ

ằ ồ

ẽ ượ ế ẳ ạ ộ ộ ố ớ c n i t ộ i chân

ộ  ề ố ộ ượ ạ ủ  XTAL.  đ ầ ộ ộ ộ   M t b  vi đi u khi n 8051 yêu c u m t tinh th  th ch anh có t n s  không ộ ộ ộ ố ớ ơ  20MHz. Khi 8051 đ ớ   i m t b  dao đ ng tinh th  th ch anh c n i t l n h n ố ể ệ   ầ ấ XTAL2 b ng máy hi n và c p ngu n thì ta có th  quan sát t n s  trên chân ế ị ạ   ồ ầ ố ử ụ sóng. N u ta quy t đ nh s  d ng m t ngu n t n s  khác b  dao đ ng th ch ộ ư  XTAL1,  anh, ch ng h n nh  là b  dao đ ng TTL thì nó s  đ ể ở còn chân XTAL2 thì đ  h  không n i.

ồ ố c n i lên ngu n 5V.

V.

Tổng quan về LCD 16x2

ượ ố Chân 40 (VCC) đ ố  Chân 20 GND n i MASS.

a. Hình dáng và kích thước

Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, trên

hình là 1 loại LCD thông dụng.

Đồ án

Hình 1. Hình dáng của loại LCD thông dụng.

Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780) bên trong lớp vỏ và chỉ đưa các chân giao tiếp cần thiết. Các chân này được đánh số thứ tự và đặt tên như hình 2 :

Hình 2. Sơ đồ chân của LCD.

b. Chức năng các chân:

Chân

Ký hiệu

Mô tả

Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển.

1

Vss

11

2

VDD

Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V của mạch điều khiển.

VEE

Điều chỉnh độ tương phản của LCD.

3

4

RS

Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi. + Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read) + Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.

5

R/W

Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.

6

E

Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E. + Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E. + Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.

7-14

DB0-DB7

Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sử dụng 8 đường bus này : + Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7. + Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7

Đồ án

15

-

Nguồn dương cho đèn nền.

16

-

GND cho đèn nền.

Bảng 1. Chức năng các chân của LCD.

* Ghi chú : Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thông tin từ LCD thông qua các chân DBx. Còn khi ở chế độ “ghi”, nghĩa là MPU xuất thông tin điều khiển cho LCD thông qua các chân DBx.

c. Sơ đồ khối :

Để hiểu rõ hơn chức năng các chân và hoạt động của chúng, ta tìm hiểu sơ

qua chíp HD44780 thông qua các khối cơ bản của nó.

Hình 3. Sơ đồ khổi của LCD.

 Các thanh ghi:

Chíp HD44780 có 2 thanh ghi 8 bit quan trọng : Thanh ghi lệnh IR (Instructor Register) và thanh ghi dữ liệu DR (Data Register)

+ Thanh ghi IR : Để điều khiển LCD, người dùng phải “ra lệnh” thông qua tám đường bus DB0-DB7. Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng. Người dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR.

13

Nghĩa là, khi ta nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó. VD : - Lệnh “hiển thị màn hình” có địa chỉ lệnh là 00001100 (DB7…DB0) - Lệnh “hiển thị màn hình và con trỏ” có mã lệnh là 00001110 - Thanh ghi DR : Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng RAM DDRAM hoặc CGRAM(ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng RAM này gởi ra cho MPU (ở chế độ đọc). Nghĩa là, khi MPU ghi thông tin vào DR, mạch nội bên trong chíp sẽ tự động ghi thông tin này vào DDRAM hoặc CGRAM. Hoặc khi thông tin về địa chỉ được ghi vào IR, dữ liệu ở địa chỉ này trong vùng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU. => Bằng cách điều khiển chân RS và R/W chúng ta có thể chuyển qua lại giữ 2 thanh ghi này khi giao tiếp với MPU. Bảng sau đây tóm tắt lại các thiết lập đối với hai chân RS và R/W theo mục đích giao tiếp.

RS

R/W

Chức năng

Ghi vào thanh ghi IR để ra lệnh cho LCD

0

0

Đọc cờ bận ở DB7 và giá trị của bộ đếm địa chỉ ở DB0-DB6

0

1

1

0

Ghi vào thanh ghi DR

1

1

Đọc dữ liệu từ DR

Bảng 2 : Chức năng chân RS và R/W theo mục đích sử dụng

 Cờ báo bận BF (Busy Flag)

­ Khi thực hiện các hoạt động bên trong chíp, mạch nội bên trong cần

một khoảng thời gian để hoàn tất.

­ Khi đang thực thi các hoạt động bên trong chip như thế, LCD bỏ qua mọi giao tiếp với bên ngoài và bật cờ BF (thông qua chân DB7 khi có thiết lập RS=0, R/W=1) lên để báo cho MPU biết nó đang “bận”. Dĩ nhiên, khi xong việc, nó sẽ đặt cờ BF lại mức 0.

 Bộ đếm địa chỉ AC ( Address Counter)

- Như trong sơ đồ khối, thanh ghi IR không trực tiếp kết nối với vùng RAM (DDRAM và CGRAM) mà thông qua bộ đếm địa chỉ AC. Bộ đếm này lại nối với 2 vùng RAM theo kiểu rẽ nhánh. Khi một địa chỉ lệnh được nạp vào thanh ghi IR, thông tin được nối trực tiếp cho 2 vùng

Đồ án

RAM nhưng việc chọn lựa vùng RAM tương tác đã được bao hàm trong mã lệnh.

- Sau khi ghi vào (đọc từ) RAM, bộ đếm AC tự động tăng lên (giảm đi) 1 đơn vị và nội dung của AC được xuất ra cho MPU thông qua DB0-DB6 khi có thiết lập RS=0 và R/W=1 (xem bảng tóm tắt RS - R/W).

- Lưu ý: Thời gian cập nhật AC không được tính vào thời gian thực thi lệnh mà được cập nhật sau khi cờ BF lên mức cao (not busy), cho nên khi lập trình hiển thị, bạn phải delay một khoảng tADD khoảng 4uS-5uS (ngay sau khi BF=1) trước khi nạp dữ liệu mới. Xem thêm hình bên dưới. d. Tập lệnh của LCD:

- Trước khi tìm hiểu tập lệnh của LCD, sau đây là một vài chú ý khi giao tiếp

với LCD :

* Tuy trong sơ đồ khối của LCD có nhiều khối khác nhau, nhưng khi lập trình điều khiển LCD ta chỉ có thể tác động trực tiếp được vào 2 thanh ghi DR và IR thông qua các chân DBx, và ta phải thiết lập chân RS, R/W phù hợp để chuyển qua lại giữ 2 thanh ghi này. (xem bảng 2)

* Với mỗi lệnh, LCD cần một khoảng thời gian để hoàn tất, thời gian này có thể khá lâu đối với tốc độ của MPU, nên ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hành mới có thể ra lệnh tiếp theo.

* Địa chỉ của RAM (AC) sẽ tự động tăng (giảm) 1 đơn vị, mỗi khi có lệnh

ghi vào RAM. (Điều này giúp chương trình gọn hơn)

* Các lệnh của LCD có thể chia thành 4 nhóm như sau :

• Các lệnh về kiểu hiển thị. VD : Kiểu hiển thị (1 hàng / 2 hàng), chiều dài dữ liệu (8 bit / 4 bit), … • Chỉ định địa chỉ RAM nội. • Nhóm lệnh truyền dữ liệu trong RAM nội. • Các lệnh còn lại .

Tên lệnh

Hoạt động

15

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Clear

DBx = 0 0 0 0 0 0 0 1

Display

Lệnh Clear Display (xóa hiển thị) sẽ ghi một khoảng trống-blank (mã hiện kí tự 20H) vào tất cả ô nhớ trong DDRAM, sau đó trả bộ đếm địa AC=0, trả lại kiểu hiển thị gốc nếu nó bị thay đổi. Nghĩa là : Tắt hiển thị, con trỏ dời về góc trái (hàng đầu tiên), chế độ tăng AC.

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Return

DBx = 0 0 0 0 0 0 1 *

Home

Lệnh Return home trả bộ đếm địa chỉ AC về 0, trả lại kiểu hiển thị gốc nếu nó bị thay đổi. Nội dung của DDRAM không thay đổi.

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [I/D] [S]

Entry

mode set

I/D : Tăng (I/D=1) hoặc giảm (I/D=0) bộ đếm địa chỉ hiển thị AC 1 đơn vị mỗi khi có hành động ghi hoặc đọc vùng DDRAM. Vị trí con trỏ cũng di chuyển theo sự tăng giảm này.

S : Khi S=1 toàn bộ nội dung hiển thị bị dịch sang phải (I/D=0) hoặc sang trái (I/D=1) mỗi khi có hành động ghi vùng DDRAM. Khi S=0: không dịch nội dung hiển thị. Nội dung hiển thị không dịch khi đọc DDRAM hoặc đọc/ghi vùng CGRAM.

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 1 [D] [C] [B]

Display

D: Hiển thị màn hình khi D=1 và ngược lại. Khi tắt hiển thị, nội dung DDRAM không thay đổi.

on/off

C: Hiển thị con trỏ khi C=1 và ngược lại.

control

B: Nhấp nháy kí tự tại vị trí con trỏ khi B=1 và ngược lại.

Đồ án

Chu kì nhấp nháy khoảng 409,6ms khi mạch dao động nội LCD là 250kHz.

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [S/C] [R/L] * *

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang trái mà không cần hành động ghi/đọc dữ liệu. Khi hiển thị kiểu 2 dòng, con trỏ sẽ nhảy xuống dòng dưới khi dịch qua vị trí thứ 40 của hàng đầu tiên. Dữ liệu hàng đầu và hàng 2 dịch cùng một lúc. Chi tiết sử dụng xem bảng bên dưới:

Cursor

S/C R/L Hoạt động

or

0

0

Dịch vị trí con trỏ sang trái (Nghĩa là giảm AC một đơn vị).

display

0

1

Dịch vị trí con trỏ sang phải (Tăng AC lên 1 đơn vị).

shift

1

0

Dịch toàn bộ nội dung hiển thị sang trái, con trỏ cũng dịch theo.

1

1

Dịch toàn bộ nội dung hiển thị sang phải, con trỏ cũng dịch theo.

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 1 [DL] [N] [F] * *

Function

DL: Khi DL=1, LCD giao tiếp với MPU bằng giao thức 8 bit (từ bit DB7 đến DB0). Ngược lại, giao thức giao tiếp là 4 bit (từ bit DB7 đến bit DB0). Khi chọn giao thức 4 bit, dữ liệu được truyền/nhận 2 lần liên tiếp. với 4 bit cao gởi/nhận trước, 4 bit thấp gởi/nhận sau.

set

N : Thiết lập số hàng hiển thị. Khi N=0 : hiển thị 1 hàng, N=1: hiển thị 2 hàng.

F : Thiết lập kiểu kí tự. Khi F=0: kiểu kí tự 5x8 điểm ảnh, F=1: kiểu kí tự 5x10 điểm ảnh.

Set

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

CGRAM

DBx = 0 1 [ACG][ACG][ACG][ACG][ACG][ACG]

17

address Lệnh này ghi vào AC địa chỉ của CGRAM. Kí hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit. Ngay sau lệnh này là lệnh đọc/ghi dữ liệu từ CGRAM tại địa chỉ đã được chỉ định.

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 1 [AD] [AD] [AD] [AD] [AD] [AD] [AD]

Set

Lệnh này ghi vào AC địa chỉ của DDRAM, dùng khi cần thiết lập tọa độ hiển thị

DDRAM

mong muốn. Ngay sau lệnh này là lệnh đọc/ghi dữ liệu từ DDRAM tại địa chỉ đã được chỉ định.

address

Khi ở chế độ hiển thị 1 hàng: địa chỉ có thể từ 00H đến 4FH. Khi ở chế độ hiển thị 2 hàng, địa chỉ từ 00h đến 27H cho hàng thứ nhất, và từ 40h đến 67h cho hàng thứ 2.

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0,R/W=1)

Read BF

and

Như đã đề cập trước đây, khi cờ BF bật, LCD đang làm việc và lệnh tiếp theo (nếu có) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp. Cho nên, khi lập trình điều khiển, phải kiểm tra cờ BF trước khi ghi dữ liệu vào LCD.

address

Khi đọc cờ BF, giá trị của AC cũng được xuất ra các bit [AC]. Nó là địa chỉ của

CG hay DDRAM là tùy thuộc vào lệnh trước đó.

Write

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

data to

DBx = [Write data] (RS=1, R/W=0)

CG or

Khi thiết lập RS=1, R/W=0, dữ liệu cần ghi được đưa vào các chân DBx từ mạch

DDRAM

ngoài sẽ được LCD chuyển vào trong LCD tại địa chỉ được xác định từ lệnh ghi địa chỉ trước đó (lệnh ghi địa chỉ cũng xác định luôn vùng RAM cần ghi)

Sau khi ghi, bộ đếm địa chỉ AC tự động tăng/giảm 1 tùy theo thiết lập Entry mode.

Đồ án

Read

Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

data

DBx = [Read data] (RS=1, R/W=1)

from CG or

Khi thiết lập RS=1, R/W=1,dữ liệu từ CG/DDRAM được chuyển ra MPU thông qua các chân DBx (địa chỉ và vùng RAM đã được xác định bằng lệnh ghi địa chỉ trước đó).

DDRAM

Sau khi đọc, AC tự động tăng/giảm 1 tùy theo thiết lập Entry mode, tuy nhiên nội dung hiển thị không bị dịch bất chấp chế độ Entry mode.

Min:-0.3V , Max+7V

Min:-0.3V , Max:(Vcc+0.3V)

Min:-30C , Max:+75C

Min:-55C , Max:+125C

Chân cấp nguồn (Vcc- GND) Các chân ngõ vào (DBx,E, …) Nhiệt độ hoạt động Nhiệt độ bảo quản

Bảng 4. Tập lệnh của LCD

e. Giao tiếp giữa LCD và MPU:

LCD sẽ bị hỏng nghiêm trọng, hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tính điện sau đây: Đặc tính điện làm việc điển hình: (Đo trong điều kiện hoạt động Vcc = 4.5V đến 5.5V, T = -30 đến +75C)

Chân cấp nguồn Vcc-GND

2.7V đến 5.5V

Điện áp vào mức cao VIH

2.2V đến Vcc

Điện áp vào mức thấp VIL

-0.3V đến 0.6V

Điện áp ra mức cao (DB0-DB7)

Min 2.4V (khi IOH = -0.205mA)

Điện áp ra mức thấp (DB0-DB7)

Max 0.4V (khi IOL = 1.2mA)

19

-1uA đến 1uA (khi VIN = 0 đến Vcc)

Dòng điện ngõ vào (input leakage current) ILI

Dòng điện cấp nguồn ICC

350uA(typ.) đến 600uA

Tần số dao động nội fOSC

190kHz đến 350kHz (điển hình là 270kHz)

Bảng 7. Miền làm việc bình thường

f. Khởi tạo LCD:

Khởi tạo là việc thiết lập các thông số làm việc ban đầu. Đối với LCD, khởi tạo giúp ta thiết lập các giao thức làm việc giữa LCD và MPU. Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trình điều khiển LCD và bao gồm các thiết lập sau :

• Display clear : Xóa/không xóa toàn bộ nội dung hiển thị trước đó. • Function set : Kiểu giao tiếp 8bit/4bit, số hàng hiển thị 1hàng/2hàng, kiểu kí tự 5x8/5x10. • Display on/off control: Hiển thị/tắt màn hình, hiển thị/tắt con trỏ, nhấp nháy/không nhấp nháy. • Entry mode set : các thiết lập kiểu nhập kí tự như: Dịch/không dịch, tự tăng/giảm (Increment).

Như đã đề cập ở trên, chế độ giao tiếp mặc định của LCD là 8bit (tự khởi tạo lúc mới bật điện lên). Và khi kết nối mạch theo giao thức 4bit, 4 bit thấp từ DB0- DB3 không được kết nối đến LCD, nên lệnh khởi tạo ban đầu (lệnh chọn giao thức giao tiếp – function set 0010****) phải giao tiếp theo chế độ 8 bit (chỉ gởi 4 bit cao một lần, bỏ qua 4 bit thấp). Từ lệnh sau trở đi, phải gởi/nhận lệnh theo 2 nibble. Lưu ý là sau khi thiết lập function set, bạn không thể thay đổi function set ngoại trừ thay đổi giao thức giao tiếp (4bit/8bit).

Đồ án

VI.

Tổng quan về cảm biến nhiệt DS18B20

Hình ảnh thực tế của DS18B20

(cid:0) Cảm biến có ba chân: một chân dương ( VCC/VDD ), một chân âm (GND) và một chân dữ liệu (DATA / DQ). (cid:0) DS18B20 sử dụng điện áp nguồn từ 3 – 5.5 V. Nên dễ dàng sử dụng chung với các loại vi điều khiển vì chúng sử dụng nguồn cấp hầu hết là 5 V.

21

Đặc điểm của DS18B20

Khác với LM35 cho tín hiệu điện áp và cần một bộ ADC ngoài để hỗ trợ chuyển đổi sang tín hiệu số, DS18B20 có tích hợp sẵn một bộ ADC bên trong nên nó sẽ cho ra tín hiệu số ngay. Điều quan trọng là cách thức giao tiếp để chúng ta có thể lấy được giá trị nhiệt độ ra.

(cid:0)

Loại giao tiếp của DS18b20 là giao tiếp “One wire”, hay còn gọi là một dây. Loại giao tiếp này chỉ cần một dây truyền dữ liệu duy nhất để giao tiếp giữa Master và Slave.

(cid:0) DS18b20 có 4 lựa chọn độ phân giải, gồm 9, 10, 11, 12 bit. Độ phân giải càng nhỏ thì thời gian thực hiện lệnh đo và chuyển đổi nhiệt độ càng nhanh, nhưng

(cid:0)

Đồ án

đồng thời độ chính xác giảm đi. Nếu không được điều chỉnh thì DS18b20 sẽ mặc định ở độ phân giải 12 bit. Ở độ phân giải này, DS18b20 cần tối đa 750ms để thực hiện đo và chuyển đổi.

Dải đo nhiệt độ của cảm biến này là từ -55 °C tới 125 °C. Với khoảng nhiệt độ là -10°C tới 85°C thì độ chính xác ±0.5°C, ±0.25°C, ±0.125°C, ±0.0625°C. theo số bit điều chỉnh độ phân giải.

(cid:0)

Với mã nhận diện lên đến 64 bit, bạn hoàn toàn có thể giao tiếp với nhiều cảm biến DS18B20 trên cùng một dây “one wire”. Ta sẽ nói rõ hơn về mã nhận diện khi đến phần giao tiếp với DS18B20.

(cid:0)

Có chức năng cảnh báo nhiệt khi nhiệt độ vượt ngưỡng cho phép. Người dùng có thể lập trình chức năng này cho DS18B20. Bộ nhớ nhiệt độ cảnh báo không bị mất khi mất nguồn vì nó có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trên chip (on chip), giá trị nhị phân được khắc bằng tia laze.

(cid:0)

(cid:0)

Ngoài ra dòng tiêu thụ tại chế độ nghỉ rất nhỏ. Ưu điểm : Nhỏ gọn, có dải đo rộng và độ chính xác khá cao, có tích hợp

bộ chuyển đổi nên không cần thêm ADC hỗ trợ.

(cid:0)

Nhược điểm : Chính vì có ngõ ra là tín hiệu số nên phải hiểu kĩ về tập lệnh

của DS18B20 và cách thức giao tiếp thì mới có thể lập trình.

VII. Các linh kiện hỗ trợ khác

(cid:0)

1. T  đi n ụ ệ

ấ ạ ủ ụ ệ ụ ệ ụ ộ ệ ộ T  đi n là m t linh ki n th  đ ng c u t o c a t ả ự ằ    đi n là hai b n c c b ng

ạ ả ộ ở ữ ả ụ ấ ị kim lo i ghép cách nhau m t kho ng d gi a hai b n t ệ    là dung d ch hay ch t đi n

ủ ụ ệ ệ ể ặ ề môi cách đi n có đi n dung C. Đ c đi m c a t ệ  là cho dòng đi n xoay chi u đi

ệ ề ả ộ qua, ngăn c n dòng đi n m t chi u.

ủ ụ ứ ệ Công th c tính đi n dung c a t : C = ε

ε ố ệ ằ Trong đó :   là h ng s  đi n môi

ệ S là đi n tích b  m t t ề ặ ụ 2   m

23

ề ệ ấ d là b  giày ch t đi n môi

ụ ệ ệ ẳ ẳ ạ ặ ồ T  đi n ph ng g m hai bàn ph ng kim lo i di n tích đ t song song và cách

ả ộ nhau m t kho ng d.

ộ ệ ườ ườ ụ C ng đ  đi n tr ng bên trong t ị ố  có tr  s  : E =

ố ệ ủ ằ = 8.86.10­12  C2/ N.m2  là h ng s  đi n môi c a chân không.

ố ệ ằ ươ ố ủ ườ ố ớ là h ng s  đi n môi t ng đ i c a môi tr ng; đ i v i chân không =

ấ ẩ ầ ố 1, gi y t m d u = 3,6, g m = 5,5; mica = 4 5

ử ụ ạ ụ ạ ụ ố ụ ố Trong m ch nhóm s  d ng 2 lo i t ụ  đó là : T  hóa và t g m. T  g m đ ượ   c

ụ ượ ử ụ ứ ử ụ s  d ng cho VĐK 8051 là 30 pF, còn t hóa đ c s  d ng cho ch c năng reset là

10F.

ạ ạ ầ ố ạ ộ T o t n s  ho t đ ng cho VĐK 8051

2. Th ch anh 12 Mhz :

ộ ề ơ ọ ị ả ưở ệ ộ Đ c tính v t lý : đ  b n c  h c vao, ít ch u  nh h ủ ng c a nhi t đ  và các

ặ ụ ậ ọ tác d ng hóa h c.

ạ ướ ủ ệ i tác d ng c a đi n tr ấ Th ch anh có tính ch t áp đi n, nghĩa là d

ộ ệ ể ạ

ộ ấ ụ ư ộ ở ơ ồ ươ ươ ủ ể c bi u di n b i s  đ  t ộ ng đ ng

ạ ụ ạ ộ

ướ ạ ố ễ ố ướ c càng nh  thì

ầ ố ộ ổ ị

ng thì ưở ng.   hình  ắ   c kh i th ch anh và cách c t   Lq,  Cq  và  rq  càng nh ,ỏ   ỏ ươ Lq, Cq  và rq có tính  n đ nh   ng riêng c a nó càng cao.  ỡ ủ ị ổ ườ sinh ra dao đ ng. Do đó có th  dùng th ch anh nh  m t khung c ng h ượ Tính ch t dao đ ng c a th ch anh đ a., trong đó  Lq,Cq  và  rq    ph  thu c vào kích th ạ kh i th ch anh. Th ch anh có kích th nghĩa là t n s  c ng h ệ cao. Cq là đi n dung giá đ , tính  n đ nh c a ủ Cq kém h n.ơ

Ta có :

Đồ án

ệ ặ ạ ủ   a) Ký hi u th ch anh                                    Đ c tính đi n kháng c a

ạ ệ th ch anh

b) S  đ  t

ơ ồ ươ ươ ủ ạ ng đ ng c a th ch anh

ệ ế ở

3. Đi n tr , bi n tr ở

a)       Đi n trệ

ở   :

ụ ộ ở ả ụ ệ ệ ệ ả ở Đi n tr  là linh ki n th  đ ng có tác d ng c n tr  c  dòng và áp.Đi n tr ở

ựơ ử ụ ệ ử ề ạ ấ đ c s  d ng r t nhi u trong các m ch đi n t .

R =  ρ

ρ ệ Trong đó ở ấ ủ ậ ệ  là đi n tr  su t c a v t li u

ℓ ế ệ ủ ủ ề S là thi t di n c a dây; là chi u dài c a dây.

ạ ượ ấ ả ư ệ ậ ặ ở Đi n trệ ở là đ i l ủ   ng v t lí đ c tr ng cho tính ch t c n tr  dòng đi n c a

ộ ậ ệ ượ ỉ ố ủ ế ữ ệ ệ ị ể ẫ m t v t th  d n đi n. Nó đ ầ   c đ nh nghĩa là t  s  c a hi u đi n th  gi a hai đ u

ớ ườ ể ậ ộ v t th  đó v i c ệ ng đ  dòng đi n đi qua nó:

25

R =

Trong đó:

ế ữ ậ ẫ ệ ệ ệ ằ ầ U : là hi u đi n th  gi a hai đ u v t d n đi n, đo b ng vôn

(V).

ườ ậ ẫ ệ ệ ằ ộ I : là c ng đ  dòng đi n đi qua v t d n đi n, đo b ng ămpe

(A).

ở ủ ậ ẫ ệ ệ ằ R : là đi n tr  c a v t d n đi n, đo b ng Ohm ( ). Ω

Ký hi u:ệ

Ứ ệ ế ạ ứ ữ ể ệ ở ượ  đ ị c dùng đ  ch  t o ra d ch m c đi n áp gi a hai

b)       Bi n trế

ể ạ ụ ng d ng: Đi n tr ủ đi m khác nhau c a m ch.

ở   :

ế ế ị ở ầ t b  có đi n tr  thu n có th  bi n đ i đ

ệ ể ượ ử ụ ổ ượ ể ề ệ ể ế c theo ý ỉ ạ c s  d ng trong các m ch đi n đ  đi u ch nh

ệ ạ ở Bi n tr  là các thi ố mu n. Chúng có th  đ ủ ạ ộ ho t đ ng c a m ch đi n.

Ký hi u : ệ

ế ẽ ở ộ ạ Bi n tr  có 3 chân, m t trong các chân đó s  là “chân ch y

Đồ án

Phần 2: Nội dung và trình tự thiết

I.

Sơ đồ khối tổng quát và nguyên lý hoạt động

a. Sơ đồ khồi.

27

b. Hoạt đông.

Cảm biến DS18B20 có nhiệm vụ đo nhiệt độ môi trường sau đó biến đổi

thành tín hiệu số. Tín hiệu từ cảm biến được gửi đến khối xử lý trung tâm là AT89S52 qua chân DQ đi vào cổng P0_0. AT89S52 phân tích, tính toán sau đó chuyền dữ liệu ra khối hiển thị LCD. Nút bấm giúp ta có thể tăng hoặc giảm nhiệt độ khống chế theo ý mốn.

Khi nhiệt độ môi trường lớn hơn nhiệt độ khống chế thì khối xử lý xuất tín

hiệu mức 0 ra chân P2_7 để bật đèn.

Khi nhiệt độ môi trường nhỏ hơn nhiệt độ khống chế thì khối xử lý xuất tín

hiệu mức 0 ra chân P2_5 để bật đèn.

Khi nhiệt độ môi trường bằng nhiệt độ khống chế thì khối xử lý xuất tín

hiệu mức 0 ra chân P2_6 để bật đèn.

Đồ án

II.

Mô phỏng với proteus

29

III.

Mạch in

Đồ án

31

IV.

Code

#include

#define LCD_RS P3_7

#define LCD_RW P3_6

#define LCD_EN P3_5

#define LCD_D4 P3_3

#define LCD_D5 P3_2

#define LCD_D6 P3_1

#define LCD_D7 P3_0

#define nhan_t P2_1

#define nhan_g P2_0

#define LED_1 P2_5

#define LED_2 P2_6

#define LED_3 P2_7

#define DQ

P0_0

void khong_che(void);

void kiemtra(void);

unsigned char temp;

unsigned int nhiet_dat;

void delay_us(unsigned int t)

{

unsigned int i;

for(i=0;i

Đồ án

}

void delay_ms(unsigned int t)

{

unsigned int i,j;

for(i=0;i

for(j=0;j<125;j++);

}

void delay_18B20(unsigned int ti)

{

while(ti--);

}

void Init_18B20(void){

DQ = 1;

delay_18B20(8);

DQ = 0;

Delay_18B20(65);

DQ = 1;

delay_18B20(20);

}

unsigned char ReadOneChar(void)

{

unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--){

DQ = 0;

33

dat>>=1;

DQ = 1;

if(DQ)

dat |= 0x80;

delay_18B20(4);

}

return(dat);

}

void WriteOneChar(unsigned char dat){

unsigned char i=0;

for (i=8; i>0; i--){

DQ = 0;

DQ = dat&0x01;

delay_18B20(5);

DQ = 1;

dat>>=1;

}

}

void ReadTemperature(void)

{

unsigned char a=0;

unsigned char b=0;

Init_18B20();

WriteOneChar(0xCC);

WriteOneChar(0x44);

Đồ án

delay_18B20(10);

Init_18B20();

WriteOneChar(0xCC);

WriteOneChar(0xBE);

delay_18B20(10);

a=ReadOneChar();

b=ReadOneChar();

temp=((b*256+a)>>4);

}

void LCD_Enable(void){

LCD_EN =1;

delay_us(3);

LCD_EN=0;

delay_us(50);

}

void LCD_Send4Bit(unsigned char Data)

{

LCD_D4=Data & 0x01;

LCD_D5=(Data>>1)&1;

LCD_D6=(Data>>2)&1;

LCD_D7=(Data>>3)&1;

}

35

void LCD_SendCommand(unsigned char command)

{

LCD_Send4Bit(command >>4);

LCD_Enable();

LCD_Send4Bit(command);

LCD_Enable();

}

void LCD_Clear()

{

LCD_SendCommand(0x01);

delay_us(10);

}

void LCD_Init()

{

LCD_Send4Bit(0x00);

delay_ms(20);

LCD_RS=0;

LCD_RW=0;

LCD_Send4Bit(0x03);

LCD_Enable();

delay_ms(5);

LCD_Enable();

delay_us(100);

LCD_Enable();

LCD_Send4Bit(0x02);

Đồ án

LCD_Enable();

LCD_SendCommand( 0x28 );

LCD_SendCommand( 0x0c);

LCD_SendCommand( 0x06 );

LCD_SendCommand(0x01);

}

void LCD_Gotoxy(unsigned char x, unsigned char y)

{

unsigned char address;

if(!y)address=(0x80+x);

else address=(0xc0+x);

delay_us(1000);

LCD_SendCommand(address);

delay_us(50);

}

void LCD_PutChar(unsigned char Data)

{

LCD_RS=1;

LCD_SendCommand(Data);

LCD_RS=0 ;

}

void LCD_Puts(char *s)

{

while (*s)

{

LCD_PutChar(*s);

s++;

37

}

}

void TempShow(unsigned char z)

{

LCD_Puts("T do: ");

LCD_PutChar((z/100)+48);

LCD_PutChar((z%100/10)+48);

LCD_PutChar((z%10)+48);

LCD_Puts("'C");

}

void nhietkhongche(){

LCD_Puts("T dat: ");

LCD_PutChar((nhiet_dat/100)+48);

LCD_PutChar((nhiet_dat%100/10)+48);

LCD_PutChar((nhiet_dat%10)+48);

LCD_Puts("'C");

}

unsigned char temp;

void main()

{

nhiet_dat=25;

LCD_Init();

LCD_Gotoxy(0,0);

LCD_Puts("Vu Van Khai & ");

delay_ms(500);

LCD_Gotoxy(0,1);

Đồ án

LCD_Puts("Hoang Xuan Trung");

delay_ms(1000);

LCD_Clear();

while(1)

{

LCD_Gotoxy(0,0);

kiemtra();

ReadTemperature();

TempShow(temp);

LCD_Gotoxy(0,1);

nhietkhongche() ;

khong_che();

delay_ms(100);

}

}

void kiemtra(void)

{

nhan_t=0;

if(nhan_t==1)

{

nhiet_dat++;

delay_ms(100);

if(nhiet_dat>85)

nhiet_dat=0;

}

nhan_g=0;

39

if(nhan_g==1)

{

nhiet_dat--;

delay_ms(100);

if(nhiet_dat<1)

nhiet_dat=85;

}

}

void khong_che(void)

{

if(temp==nhiet_dat)

{

LED_2=0;

LED_1=LED_3=1; }

if(temp>nhiet_dat)

LED_1=0;

{

LED_2=LED_3=1;

}

if(temp

LED_3=0;

{

LED_1=LED_2=1;

}

}

Đồ án

Phần 3: Kết luận và tài liệu tham khảo.

a. Kết luận.

Mạch đã chạy và có thể đo được nhiệt độ môi trường tương đối chính xác. Tuy nhiên Mạch chưa được phát triển đầy đủ và chức năng chưa hoàn thiện để sử dụng vào các mục đích cần thiết.

Bọn em muốn phát triển mạch có thể đo và khống chế cả nhiệt độ và độ ẩm để có thể áp dụng vào việc ấp trứng, giấm hạt, lò xấy.... Vậy chúng em rất mong sự đóng góp ý kiến của thầy để sản phẩm của chúng em được hoàn hảo nhất.

b. Tài liệu tham khảo

1. Thi

ễ ế ế ặ

ắ   ế ế ệ ử  tiên ti n­ Nguy n Trung Hi u, Đ ng Hoài B c, t k  đi n t ề nxb thông tin truy n thông.

ụ ố ứ 2. Giáo trình 8051 và  ng d ng, T ng Văn On.

3. http://sangtaoclub.net

4. http://www.8051projects.info/

5. http://banlinkien.vn

41

6. http://www.alldatasheet.com/

LỜI CẢM ƠN

Trong suốt thời gian học tại Học viện Công nghệ bưu chính viễn thông,

với sự giúp đỡ của quý thầy cô và giáo viên hướng dẫn về mọi mặt từ nhiều phía và nhất là trong thời gian thực hiện đề tài, nên đề tài đã được hoàn thành đúng thời gian quy định. Nhóm thực hiện xin chân thành cảm ơn đến:

Quý thầy cô trong khoa Điện-Điện tử đã giảng dạy những kiến thức chuyên môn làm cơ sở để thực hiện tốt đồ án môn học và tạo điều kiện thuận lợi cho chúng em để làm tốt đồ án môn học này.

Đặc biệt, Thầy Lê Đức Toàn, giáo viên hướng dẫn đề tài đã nhiệt tình giúp đỡ và cho nhóm thực hiện những lời chỉ dạy quý báu, giúp nhóm thực hiện định hướng tốt trong khi thực hiện đề tài.

Tất cả bạn bè đã giúp đỡ và hướng dẫn trong suốt quá trình làm đề tài.

Hà Nội, ngày 20 tháng 03 năm 2017

Nhóm sinh viên thực hiện

Vũ Văn Khải

Hoàng Xuân Trung