You are on page 1of 39

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA ĐIỆN TỬ - VIỄN THÔNG

Báo cáo môn:


KỸ THUẬT CẢM BIẾN

Đề tài: Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051

Giảng viên hướng dẫn: Đặng Văn Hải

Sinh viên thực hiện:


Nguyễn Công Tùng – DT030247
Phạm Thị Hằng – DT030116
Bùi Văn Thái – DT030239

Hà Nội, 2022

1
Mục lục

Mục lục..................................................................................................................2
Danh mục hình vẽ..................................................................................................4
Lời nói đầu............................................................................................................5
ĐỀ TÀI..................................................................................................................6
MỤC ĐÍCH, YÊU CẦU...................................................................................6
Ý NGHĨA..........................................................................................................6
GIỚI HẠN ĐỀ TÀI...........................................................................................6
PHẦN 1: CƠ SỞ LÝ THUYẾT............................................................................7
Chương I: Tổng quan về vi điều khiển..................................................................7
1.1 Giới thiệu về các họ vi xử lý và các họ điều khiển thông dụng..............7
1.2 Các bộ vi điều khiển................................................................................7
Chương II: Tổng quan về họ vi điều khiển 8051................................................10
2.1 Họ vi điều khiển 8051...............................................................................10
2.1.1 Giới thiệu chung.................................................................................10
2.1.2 Sơ đồ cấu trúc chung của họ 8051......................................................10
2.1.3 Sơ đồ chân 8051.................................................................................12
2.2 Giới thiêu về Vi điều khiển 89C51............................................................13
Chương III: LCD.................................................................................................15
3.1 Cấu tạo.......................................................................................................15
3.2. Chức năng các chân..................................................................................16
3.2.1 Chức năng...........................................................................................16
3.2.2 Bảng mã lệnh của LCD......................................................................18
CHƯƠNG IV: CẢM BIẾN NHIỆT LM35.........................................................22
4.1 Giới thiệu về cảm biến nhiệt độ LM35.....................................................22
4.2 Sơ đồ chân của cảm biến nhiệt độ LM35..................................................22
4.3 Thông số kỹ thuật của cảm biến LM35.....................................................23
4.4 Nguyên lý hoạt động của cảm biến nhiệt độ LM35..................................23
4.5 Các bước tính toán nhiệt độ bằng cảm biến nhiệt độ LM35.....................23
4.6 Ứng dụng của cảm biến nhiệt độ LM35....................................................24
CHƯƠNG V: IC ADC0808................................................................................25

2
5.1 Giới thiệu về ADC0808.............................................................................25
5.2 Cấu trúc bên trong ADC0808:...................................................................26
PHẦN 2: NỘI DUNG THIẾT KẾ......................................................................28
1.Sơ đồ nguyên lý............................................................................................28
2.Mạch in.........................................................................................................29
3.Mạch 3D.......................................................................................................30
4.Chương trình................................................................................................31
PHẦN 3: PHẦN KẾT LUẬN.............................................................................37
Tài liệu tham khảo:..............................................................................................38
Lời nhận xét của thầy cô:....................................................................................39

3
Danh mục hình vẽ

Hình ảnh 1:Bộ vi điều khiển với bộ vi xử lý.........................................................8


Hình ảnh 2: Cấu trúc chung 8051........................................................................11
Hình ảnh 3: Sơ đồ chân 8051..............................................................................12
Hình ảnh 4: Bảng mô tả các bit khác nhau của thanh ghi SCON........................13
Hình ảnh 5: Bảng chế độ làm việc của cổng truyền thông..................................13
Hình ảnh 6: Cấu tạo LCD....................................................................................15
Hình ảnh 7: Bảng chứa năng của các chân LCD.................................................17
Hình ảnh 8.1 8.2: Các mã lệnh của LCD............................................................21
Hình ảnh 9: Cảm biến nhiệt độ LM35.................................................................22
Hình ảnh 10: Bộ ADC0808.................................................................................25
Hình ảnh 11: Cấu trúc ADC0808........................................................................26
Hình ảnh 12: Bảng chọn kênh.............................................................................26
Hình ảnh 13: Giản đồ xung hoạt động của ADC0808........................................27

4
Lời nói đầu

Với sự tiến bộ của con người, với sự phát triển của khoa học kỹ thuật thì
các nghành công nghiệp phát triển mạnh mẽ, các hệ thống ứng dụng ra đời, điều
đó cũng đặt ra yêu cầu cao về chất lượng, độ chính xác. Một trong những hệ
thống được ứng dụng nhiều nhất là: hệ thống đo nhiệt độ. Các hệ thống đang
ngày dần được tự động hóa với những kỹ thuật như vi xử lý, vi điều khiển…
đang ngày một làm cho các bộ tự động dần trở nên tốt hơn đảm bảo yêu cầu
hơn.
Trong quá trình sản xuất ở các nhà máy, xí nghiệp; quá trình điều khiển
nhiệt độ trong các phòng, hội nghị, các khu chung cư, việc đo và khống chế
nhiệt độ tự động là 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… thì giúp chúng ta biết
được tình trạng làm việc theo yêu cầu và có những xử lý kịp thời để tránh hư
hỏng và giải quyết các sự cố sảy ra. Yêu cầu của các hệ thống là phải đảm bảo
chính xác, kịp thời và nhanh, hệ thống làm việc ổn định ngay cả khi có nhiễu và
do tác động khác.

5
ĐỀ TÀI

MỤC ĐÍCH, YÊU CẦU


- Sự cần thiết, quan trọng và tính khả thi vào lợi ích của mạch số, nhằm
dùng kiến thức số học và kỹ thuật số vào thực tiễn
- Tìm hiểu nguyên tắc hoạt động của thiết bị cảm biến (cảm biến nhiệt
LM35), ADC0808, AT89s52
- Yêu cầu của bài: Đo sử dụng vi điều khiển họ 8051 đo nhiệt độ hiển thị
LCD 16x2 dùng cảm biến LM35
Ý NGHĨA
- Thấy được tính khoa học và ứng dụng thực tế của đề tài
- 8051 là họ vi điều khiển có nhiều tính năng, khả năng xử lí nhanh
- Ứng dụng của ADC trong việc chuyển đổi tín hiệu tương tự sang tín
hiệu số. Tín hiệu tương tự là tín hiệu lấy được từ bộ cảm biến
- Mạch hiển thị LCD 16x2 dễ dàng cho người sử dụng theo dõi nhiệt độ
hiển thị
GIỚI HẠN ĐỀ TÀI
Đề tài “Hiển thị nhiệt độ” rất đa dạng và phong phú, nhiều loại dựa trên
độ phức tạp và công dụng. Do trình độ có hạn nên đề tài nhóm em chắc hẳn còn
nhiều thiếu sót, mong thầy bỏ qua và chỉ bảo thêm để đề tài nhóm em được hoàn
thiện hơn.

6
PHẦN 1: CƠ SỞ LÝ THUYẾT

Chương I: Tổng quan về vi điều khiển


1.1 Giới thiệu về các họ vi xử lý và các họ điều khiển thông dụng

Lịch sử phát triển của bộ vi xử lý và bộ vi điều khiển.


Sự ra đời và phát triển nhanh chóng của kĩ thuật vi điện tử mà đặc
trưng là kĩ thuật vi xử lý đã tạo ra một bước ngoặt quan trọng trong sự phát triển
của khoa học tính toán, điều khiển vi xử lý thông tin. Kĩ thuật vi xử lý đóng vai
trò rât quan trọng trong tất cả các lĩnh vực của cuộc sống và khoa học kĩ thuật,
đặc biệt là lĩnh vực tin học và tự động hoá.
Năm 1971, hãng Intel đã cho ra đời bộ vi xử lý( microprocessor ) đầu tiên
trên thế giới tên gọi là Intel – 4004/4 bit, nhằm đáp ứng nhu cầu cấp thiết của
một công ty kinh doanh là hãng truyền thông BUSICOM. Intel-4004 là kết quả
của một ý tưởng quan trọng trong kĩ thuật vi xử lý số. Đó là một kết cấu logic
mà có thể thay đổi được chức năng của nó bằng chương trình ngoài chứ không
phát triển theo hướng tạo ra một cấu trúc cứng chỉ thực hiện một số chức năng
nhất định như trước đây. Sau đó, các bộ vi xử lý mới liên tục được đưa ra thị
trường ngày càng được phát triển, hoàn thiện hơn trong các thế hệ về sau.
Vào năm 1972, hãng Intel đưa ra bộ vi xử lý 8 bit đầu tiên với tên Intel
8008/8 bit. Từ năm 1974 – 1975, Intel chế tạo các bộ vi xử lý 8-bit 8080 và
8085A. Cũng vào khoảng thời gian này, một loạt các hãng khác trên thế giới
cũng đã cho ra đời các bộ vi xử lý tương tự như : 6800 của Motorola với 5000
Tranzitor, signetics 6520, 1801 của RCA, kế đến là 6502 của hãng MOS
Technology và Z80 của hãng Zilog.

1.2 Các bộ vi điều khiển


1.2.1. Các bộ vi điều khiển và các bộ xử lý nhúng.
Trong mục này chúng ta bàn về nhu cầu đối với các bộ vi điều khiển
(VĐK ) và so sánh chúng với các bộ vi xử lý cùng dạng chung Pentium và các
7
bộ vi xử lý 86 khác. Chúng ta cùng xem xét vai trò của các bộ vi điều khiển
trong thị trường các sản phẩm nhúng. Ngoài ra, chúng ta còn cung cấp một số
tiêu chuẩn vể cách lựa chọn một bộ vi điều khiển như thế nào.
1.2.2 Bộ vi điều khiển so với bộ vi xử lý cùng dùng chung
Sự khác nhau giữa một bộ vi điều khiển và một bộ vi xử lý là gì? Bộ xử lý
ở đây là cá bộ vi xử lý công dụng chung như họ Intel là 86(8086, 80286, 80386,
80486 và Pentium) hoặc họ Motorola là 680 là ( 68000, 68010, 68020, 68030,
68040 vv...) Những bộ vi xử lý này không có RAM, ROM và không có các cổng
vào ra trên chíp.Với lý do đó mà chúng được gọi chung là các bộ vi xử lý công
dụng chung.

Hình ảnh 1:Bộ vi điều khiển với bộ vi xử lý

a) Hệ thống vi xử lý công dụng chung


b) Hệ thống vi điều khiển

Như thiết kế hệ thống sử dụng bộ vi xử lý công dụng chung chẳng hạn


như Pentium hay 68040 phải bổ xung thêm RAM, ROM, các cổng vào ra và các
bộ định thời ngoài để làm cho chúng hoạt động được. Mặc dù việc bổ sung
RAM, ROM và các cổng vào ra bên ngoài làm cho hệ thống cồng kềnh và đắt
hơn, nhưng chúng có ưu điểm là linh hoạt chẳng hạn như người thiết kế có
quyền quyết định về số lượng RAM, ROM và các cổng vào ra cần thiết phù hợp
với bài toán trong tam tay của mình. Điều này không thể có được với các bộ vi

8
điều khiển. Một bộ vi điều khiển có một CPU (một bộ vi xử lý) cùng với một
lượng cố định RAM, ROM, các cổng vào ra và một bộ định thời tất cả trên cùng
một chíp. Hay nói cách khác là bộ xử lý RAM, ROM các cổng vào ra và bộ định
thời đều được nhúng với nhau trên một chíp; do vậy người thiết kế không thể bổ
xung thêm bộ nhớ ngoài , cổng vào ra hoặc bộ đinh thời cho nó. Số lượng cố
định của RAM, ROM trên chíp và số các cổng vào – ra trong các bộ vi điều
khiển làm cho chúng trở nên lý tưởng với nhiều ứng dụng mà trong đó giá thành
và không gian lại hạn chế. Trong nhiều ứng dụng , ví dụ như điều khiển TV từ
xa thì không cần công suất tính toán của bộ vi xử lý 486 hoặc thâm chí như
8086. Trong rất nhiều ứng dụng thì không gian nó chiếm, công suất nó tiêu tốn
và giá thành trên một đơn vị là những cân nhắc nghiêm ngặt hơn nhiều so với
công suất tính toán. Những ứng dụng thường yêu cầu một số thao tác vào-ra để
đọc các tín hiệu tắt- mở những bit nhất định. Điều thú vị là một số nhà sản xuất
các bộ vi điều khiển đã đi xa hơn là tích hợp cả một bộ chuyển đổi ADC và các
ngoại vi khác vào trong bộ điều khiển.

9
Chương II: Tổng quan về họ vi điều khiển 8051

2.1 Họ vi điều khiển 8051


2.1.1 Giới thiệu chung
Họ vi điều khiển 8051(còn gọi là C51) là một trong những họ vi điều
khiển thông dụng nhất. Bộ vi điều khiển này có 128 byte RAM, 4K byte
ROM trên chíp, hai bộ định thời, một cổng nối tiếp và 4 cổng (đều
rộng 8 bit) vào ra tất cả được đặt trên một chíp. Lúc ấy nó được
coi là một “hệ thống trên chíp”. 8051 là một bộ xử lý 8 bit có nghĩa là
CPU chỉ có thể làm việc với 8 bit dữ liệu tại một thời điểm. Dữ liệu lớn
hơn 8 bit được chia ra thành các dữ liệu 8 bit để cho xử lý. 8051 có tất cả 4
cổng vào-ra I/O mỗi cổng rộng 8bit. Mặc dù 8051 có thể có một ROM
trên chíp cực đại là 64 K byte, nhưng các nhà sản xuất lúc đó đã
cho xuất xưởng chỉ với 4K byte ROM trên chíp 8051 đã trở nên phổ
biến sau khi Intel cho phép các nhà sản xuất khác sản xuất và bán bất kỳ
dạng biến thể nào của 8051 mà họ thích với điều kiện họ phải để mã
lại tương thích với 8051. Điều này dẫn đến sự ra đời nhiều phiên bản
của 8051 với các tốc độ khác nhau và dung lượng ROM trên chíp
khác nhau được bán bởi hơn nửa các nhà sản xuất. Điều này quan trọng
là mặc dù có nhiều biến thể khác nhau của 8051 về tốc độ và dung lương
nhớ ROM trên chíp, nhưng tất cả chúng đều tương thích với 8051 ban đầu về
các lệnh. Điều này có nghĩa là nếu ta viết chương trình của mình cho
một phiên bản nào đó thì nó cũng sẽ chạy với mọi phiên bản bất kỳ khác mà
không phân biệt nó từ hãng sản xuất nào.

2.1.2 Sơ đồ cấu trúc chung của họ 8051


Interrupt control : Điều khiển ngắt.
Other registers : Các thanh ghi khác.
ROM : là loại bộ nhớ không mất dữ liệu khi mất nguồn cung cấp, được
gọi là nhớ chương trình bên trong .
RAM : là bộ nhớ dữ liệu bên trong có dung lượng 128Byte dùng để lưu
trữ dữ liệu như biến số, hằng số, bộ đệm truyền thông.
Timer 2, 1 , 0 : Bộ định thời 2 , 1 , 0
CPU : Đơn vị điều khiển trung tâm.

10
Oscillator : Mạch dao động.
Bus control: Điều khiển Bus
I/O ports: Các ports vào/ ra
Serial port: port nối tiếp
Address/data : địa chỉ/ dữ liệu.

Hình ảnh 2: Cấu trúc chung 8051

2.1.3 Sơ đồ chân 8051


11
Hình ảnh 3: Sơ đồ chân 8051

8051 có 4 cổng vào ra song song có tên lần lượt là P0, P1, P2, P3 tất cả
các cổng này đều là cổng ra vào 2 chiều 8 bit. Các bít của mỗi cổng là một chân
trên chíp như vậy mỗi cổng sẽ có 8 chân trên chíp. Hướng dữ liệu dùng cổng đó
làm cổng ra hay cổng vào là độc lập giữa các cổng và giữa các chân trong cùng
1 cổng.
Các chân P0 không có điện trở treo cao (pullup resistor) bên trong, mạch
lái tạo mức cao chi có khi sử dụng cổng này với tính năng là bus dồn kênh địa
chỉ/ dữ liệu. Như vậy với chức năng ra thông thường, P0 là cổng ra open drain,
với chức năng vào, P0 là cổng cao trở. Nếu muốn sử dụng cổng P0 làm cổng vào
/ra thông dụng thì ta phải thêm trở tử 4K7 đến 10K. Các cổng P1, P2, P3 đều có
điện trở pullup bên trong, do đó có thể dùng với chức năng cổng vào/ra thông
thường mà không cần thêm điện trở bên ngoài.
 Cổng truyền thông nối tiếp ( Serial Port) :
Cổng nối tiếp trong 8051 chủ yếu được dùng trong các ứng dụng có yêu
cầu truyền thông với máy tính, hoặc với 1 vi điều khiển khác. Liên quan đến
cổng nối tiếp chủ yếu có 2 thanh ghi : SCON và SBUF. Ngoài ra, một thanh ghi
khác là thanh ghi PCON (không đánh địa chỉ bít) có bít 7 tên là SMOD quy định

12
tốc độ truyền của cổng nối tiếp có gấp đôi lên (SMOD=1) hay không
(SMOD=0).
Cổng có đặc điểm :
-Truyền song công : có nghĩa là tại một thời điểm có thể vừa truyền vừa nhận
dữ liệu.
-Phương thức truyền không đồng bộ: là dữ liệu được truyền đi theo từng kí
tự.
-Bộ đệm truyền nhận dữ liệu đều có tên là SBUF.
-SCON là thanh ghi bit được dùng để lập trình việc đóng khung dữ liệu, xác
định chế độ làm việc của cổng truyền thông nối tiếp.

Bảng dưới đây mô tả chi tiết các bit khác nhau của thanh ghi SCON :
Bit Tên Địa chỉ Chức năng
7 SM0 9FH Xác định chế độ cổng nối tiếp (bit 0)
6 SM1 9EH Xác định chế độ cổng nối tiếp (bit 1)
5 SM2 9DH Cho phép truyền thông đa xử lý
4 REN 9CH Bít cho phép nhận
3 TB8 9BH Sử dụng trong chế độ 2 và 3
2 RB8 9AH Sử dụng trong chế độ 2 và 3
1 TI 99H Cờ truyền: nhận được sau khi truyền xong 1 byte
0 RI 98H Cờ nhận: Nhận được sau khi nhận đủ 1 byte

Hình ảnh 4: Bảng mô tả các bit khác nhau của thanh ghi SCON
Các chế độ làm việc của cổng truyền thông
Hình ảnh 5: Bảng chế độ làm việc của cổng truyền thông
SM0 SM1 Chế độ Khung dữ liệu Tốc độ Baud
0 0 0 8-bit Shift Register Oscillator/12
0 1 1 8-bit UART Cài đặt bởi timer 1(*)
1 0 2 9-bit UART Oscillator/64(*)
1 1 3 9-bit UART Cài đặt bởi timer 1(*)
2.2 Giới thiêu về Vi điều khiển 89C51

AT 89C51 là họ vi xử lý do hãng Intel sản xuất. Các sản phẩm AT89C51


thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các toán số

13
học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ 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 tập lệnh
số học 8 bit gồm cả lệnh nhân và chia. Nó cung cấp những hỗ trợ mở rộng trên
chip dùng cho những biến 1 bit như là kiểu dữ liệu riêng biệt cho phép quản lý
và kiểm tra từng bit trực tiếp trong hệ thống điều khiển.
AT89C51 cung cấp những đặc tính chuẩn như : 4 Kbyte bộ nhớ chỉ đọc
có thế xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 2
TIME/COUNTER 16 Bit, 5 vecto ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp
bá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 AT89C51 được tóm tắt như sau :
4Kbyte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ
ghi/xóa
Tần số hoạt động từ: 0Hz đến 24MHz
3 mức khóa bộ nhớ lập trình
2 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
64KB vùng nhớ mã ngoài
64KB vùng nhớ dữ liệu ngoại
4µs cho hoạt động nhân hoặc chia

14
Chương III: LCD

3.1 Cấu tạo


LCD (Liquid Crystals Display) Màn hình tinh thể lỏng, cơ sở vật lý để
LCD có thể hiển thị được thông tin, hình ảnh chính là do đặc tính của vật liệu
chế tạo nên LCD, tức là Liquid Crystals (thạch anh lỏng). Các tinh thể bình
thường chúng ở thể rắn với sự định hướng đặc biệt. Tuy nhiên ở đây các thể
lỏng được cấu trúc từ các tinh thể động. Các tinh thể này có thể điều chỉnh bởi
một điện trường đây là một cách để điều khiển chất lỏng thay đổi từ trong suốt
đến trạng thái mờ đục (Chắn sáng).
LCD gồm 2 bề mặt dạng rãnh, giữa 2 bề mặt này là 1 lớp Thạch Anh lỏng
(Liquid Crystal).

Hình ảnh 6: Cấu tạo LCD


+ Để có 1 điểm tối trên LCD: ánh sáng phát ra từ bên trong LCD sẽ đi qua
bề mặt rãnh thứ nhất (lớp lọc đơn cực), sau đó ánh sáng đi qua lớp Liquid Cristal
(lớp này được phân cực nên ánh sáng qua nó mà không bị xoắn), sau đó ánh
sáng qua bề mặt rãnh thứ 2 lớp phân cực thứ 2 (lớp lọc đơn cực), ánh sáng
không ló ra được khỏi lớp này(bị chặn lại hoàn toàn) ta thấy 1 điểm tối trên màn
hình LCD
+ Để có 1 điểm sáng trên LCD: quá trình đi tương tự nhưng khác ở chỗ
ánh sáng qua lớp Liquid Cristal không được phân cực nên ánh sáng bị xoắn 90

15
độ, nhờ thế mà đi qua được bề mặt rãnh thứ 2 (lớp lọc đơn cực) Ta thấy 1
điểm sáng trên LCD.
3.2. Chức năng các chân
3.2.1 Chức năng

C T Chức Năng
hân ên
1 V Chân nối đất cho LCD, khi thiết kế mạch ta nối
ss chân này với GND của mạch điều khiển
2 V Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối
dd chân này với Vcc=5V của mạch điều khiển
3 V Chân này dùng để điều chỉnh độ tương phản của
ee LCD
Chân chọn thanh ghi (Register select).
+ 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ộ
4 R đếm địa chỉ của LCD (ở chế độ “đọc” - read)
S + Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi
dữ liệu DR bên trong LCD.
Chân chọn chế độ đọc/ghi (Read/Write). Nối chân
5 R R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc
W nối với logic “1” để LCD ở chế độ đọc.
Chân cho phép (Enable). Sau khi các tín hiệu được
16
đặ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
6 E 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.
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
D đường, với bit MSB là bit DB7.
7 14 B0- + Chế độ 4 bit : Dữ liệu được truyền trên 4 đường
DB7 từ DB4 tới DB7, bit MSB là DB7.
1 A Đèn của LCD
5,16 ,K

Hình ảnh 7: Bảng chứa năng của các chân LCD

- Chân VDD, VSS và VEE: Các chân VDD, VSS và VEE: Cấp dương
nguồn 5V và đất tương ứng thì VEE được dùng để điều khiển độ tương phản của
LCD.
- Chân chọn thanh ghi RS (Register Select): Có hai thanh ghi trong
LCD, chân RS(Register Select) được dùng để chọn thanh ghi, như sau: Nếu RS
= 0 thì thanh ghi mà lệnh được chọn để cho phép người dùng gửi một lệnh
chẳng hạn như xoá màn hình, đưa con trỏ về đầu dòng v.v… Nếu RS = 1 thì

17
thanh ghi dữ liệu được chọn cho phép người dùng gửi dữ liệu cần hiển thị trên
LCD.
- Chân đọc/ ghi (R/W): Đầu vào đọc/ ghi cho phép người dùng ghi
thông tin lên LCD khi R/W = 0 hoặc đọc thông tin từ nó khi R/W = 1.
- Chân cho phép E (Enable): Chân cho phép E được sử dụng bởi
LCD để chốt dữ liệu của nó. Khi dữ liệu được cấp đến chân dữ liệu thì một xung
mức cao xuống thấp phải được áp đến chân này để LCD chốt dữ liệu trên các
chân dữ liêu. Xung này phải rộng tối thiểu là 450ns.
- Chân D0 - D7: Đây là 8 chân dữ liệu 8 bít, được dùng để gửi thông
tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD. Để hiển thị các
chữ cái và các con số, chúng ta gửi các mã ASCII của các chữ cái từ A đến Z, a
đến f và các con số từ 0 - 9 đến các chân này khi bật RS = 1. Cũng có các mã
lệnh mà có thể được gửi đến LCD để xoá màn hình hoặc đưa con trỏ về đầu
dòng hoặc nhấp nháy con trỏ.
Chú ý: Chúng ta cũng sử dụng RS = 0 để kiểm tra bít cờ bận để xem
LCD có sẵn sàng nhân thông tin. Cờ bận là bít D7 và có thể được đọc khi R/W =
1 và RS = 0 như sau:
Nếu R/W = 1, RS = 0 khi D7 = 1 (cờ bận 1) thì LCD bận bởi các công
việc bên trong và sẽ không nhận bất kỳ thông tin mới nào. Khi D7 = 0 thì LCD
sẵn sàng nhận thông tin mới.
Lưu ý :Chúng ta nên kiểm tra cờ bận trước khi ghi bất kỳ dữ liệu nào lên
LCD.

3.2.2 Bảng mã lệnh của LCD

Lệnh Mã lệnh Mô tả Thời


R R D D D D D D D D gian
S / B0 B1 B2 B3 B4 B5 B6 B7 thi
W hành
Xóa 0 0 0 0 0 0 0 0 0 1 Xóa màn 1.64
màn hình đưa con ms
hình trỏ về vị trí
18
đầu
Đưa 0 0 0 0 0 0 0 0 1 x Đưa con trỏ 1.64
con về vị trí đầu ms
trỏ về
vị trí
đầu
Thiết 0 0 0 0 0 0 0 1 I/D S Thiết lập 40us
lập hướng dịch
chế độ chuyển con
trỏ(I/D), dịch
hiển thị(S)
Bật tắt 0 0 0 0 0 0 1 D C B Bật tắt hiển 40us
hiển thị, con trỏ;
thị bật tắt chế độ
nhấp nháy
con trỏ
Dịch 0 0 0 0 0 1 S/ R/ * * Thiết lập 40us
con C L chiều dịch
trỏ chuyển của
hiển con trỏ và
thị hiển thị
Thiết 0 0 0 0 1 DL N F * * Thiết lập độ 40us
lập dài của dữ
chức liệu, số dòng
năng và font chữ
Thiết 0 0 0 1 CGRAM address Thiết lập địa 40us
lập địa chỉ CGRAM
chỉ
CGR
AM
Thiết 0 0 1 DDRAM address Thiết lập địa 40us
lập địa chỉ DDRAM
chỉ
DDR
AM
Đọc 0 1 BF CGRAM/ DDRAM address Đọc cờ báo 40us
cờ báo bận và địa chỉ
bận và của CGRAM
địa chỉ hoặc
CGR DDRAM( tùy
AM/ vào lệnh
DDR trước đó)
AM
Ghi 1 0 Write data Ghi dữ liệu 40us
19
CGR vào CGRAM
AM/ hoặc
DDR DDRAM.
AM
Đọc 1 1 Read data Đọc dữ liệu 40us
CGR từ CGRAM
AM/ hoặc
DDR DDRAM
AM

Mã Lệnh đến thanh ghi của LCD


(Hex)
1 Xóa màn hình hiển thị
2 Trở về đầu dòng
4 Giảm con trỏ (dịch con trỏ sang trái)
6 Tăng con trỏ (dịch con trỏ sang phải)
7 Dịch hiển thị sang trái
5 Dịch hiển thị sang phải
8 Tắt con trỏ, tắt hiển thị
A Tắt hiển thị, bật con trỏ
C Bật hiển thị, tắt con trỏ
E Bật hiển thị, nhấp nháy con trỏ
F Tắt con trỏ, nhấp nháy con trỏ
10 Dịch vị trí con trỏ sang trái
14 Dịch vị trí con trỏ sang phải

20
18 Dịch toàn bộ vị trí hiển thị sang trái
1C Dịch toàn bộ vị trí hiển thị sang phải
80 Ép con trỏ về đầu dòng thứ nhất
C0 Ép con trỏ về đầu dòng thứ hai

38 Hai dòng và ma trận 5x7

Hình ảnh 8.1 8.2: Các mã lệnh của LCD

21
CHƯƠNG IV: CẢM BIẾN NHIỆT LM35

4.1 Giới thiệu về cảm biến nhiệt độ LM35

LM35 là một cảm biến nhiệt độ tương tự, điện áp ở đầu ra của cảm biến tỷ
lệ với nhiệt độ tức thời và có thể dễ dàng được xử lý để có được giá trị nhiệt độ
bằng oC.
Ưu điểm của LM35 so với cặp nhiệt điện là nó không yêu cầu bất kỳ hiệu
chuẩn bên ngoài nào. Lớp vỏ cũng bảo vệ nó khỏi bị quá nhiệt. Chi phí thấp và
độ chính xác cao đã khiến cho loại cảm biến này trở thành một lựa chọn đối với
những người yêu thích chế tạo mạch điện tử, người làm mạch tự chế và các bạn
sinh viên.
Vì có nhiều ưu điểm nêu trên nên cảm biến nhiệt độ LM35 đã được sử
dụng trong nhiều sản phẩm đơn giản, giá thành thấp. Đã hơn 15 năm kể từ lần ra
mắt đầu tiên nhưng cảm biến này vẫn tồn tại và được sử dụng trong nhiều sản
phẩm và ứng dụng đã cho thấy giá trị của loại cảm biến này.

4.2 Sơ đồ chân của cảm biến nhiệt độ LM35

Hình ảnh 9: Cảm biến nhiệt độ LM35

22
S
Tên chân Chức năng
ố chân
1 V  hay +V
CC S Chân cấp nguồn với điện áp từ 4V đến 30V
Chân lấy điện áp ra, điện áp ở chân này
2 VOUT

thay đổi 10mV/ Co

3 GND Chân nối đất

4.3 Thông số kỹ thuật của cảm biến LM35


 Hiệu chuẩn trực tiếp theo oC
 Điện áp hoạt động: 4-30VDC
 Dòng điện tiêu thụ: khoảng 60uA
 Nhiệt độ thay đổi tuyến tính: 10mV/°C
 Khoảng nhiệt độ đo được: -55°C đến 150°C
 Điện áp thay đổi tuyến tính theo nhiệt độ: 10mV/°C
 Độ tự gia nhiệt thấp, 0,08oC trong không khí tĩnh
 Sai số: 0,25°C
 Trở kháng ngõ ra nhỏ, 0,2Ω với dòng tải 1mA
 Kiểu chân: TO92
 Kích thước: 4.3 × 4.3mm

4.4 Nguyên lý hoạt động của cảm biến nhiệt độ LM35


Cảm biến LM35 hoạt động bằng cách cho ra một giá trị điện áp nhất định
tại chân VOUT (chân giữa) ứng với mỗi mức nhiệt độ. Như vậy, bằng cách đưa
vào chân bên trái của cảm biến LM35 điện áp 5V, chân phải nối đất, đo hiệu
điện thế ở chân giữa, bạn sẽ có được nhiệt độ (0-100ºC) tương ứng với điện áp
đo được.

4.5 Các bước tính toán nhiệt độ bằng cảm biến nhiệt độ LM35
 Thiết kế mạch.
23
 Cấp nguồn cho cảm biến với điện áp từ 4V đến 30V. Chân GND được nối
đất.
 Kết nối chân VOUT với đầu vào bộ chuyển đổi tương tự sang số hay vi điều
khiển.
 Lấy mẫu đọc ADC để xác định điện áp đầu ra VOUT.
 Chuyển đổi điện áp thành nhiệt độ.

Công thức để chuyển đổi điện áp sang nhiệt độ độ C cho LM35 là:
Nhiệt độ đo được (oC) = Điện áp được đọc bởi bộ ADC/10 mV

4.6 Ứng dụng của cảm biến nhiệt độ LM35

 Cảm biến nhiệt độ LM35 phù hợp cho các ứng dụng:
 Học tập nghiên cứu
 Đo nhiệt độ của một môi trường cụ thể
 Giám sát nhiệt độ trong hệ thống HVAC
 Kiểm tra nhiệt độ pin
 Cung cấp thông tin về nhiệt độ của một linh kiện điện tử khác

24
CHƯƠNG V: IC ADC0808

5.1 Giới thiệu về ADC0808


Bộ adc0808 là ic cmos tích hợp 8 bộ chuyển đổi tương tự số 8 bít.
Bộ chọn kênh được giải mã qua 3 chân điều khiển tương tích

Hình ảnh 10: Bộ ADC0808

Với:
IN0 tới IN7: 8 ngõ đầu vào tương tự
DDR A, B, C: là 3 chân giải mã chọn 1 trong 8 ngõ vào
Z1 tới Z8: ngõ ra song song 8 bit
ALE : Cho phép chốt yêu cầu
START : xung bắt đầu chuyển đổi
CLK : xung dao dộng cho quá trình biến đổi A-D
OE : Cho phép dữ liệu đầu ra
Ref+/-: Chân tham chiếu điện áp

Các đặc tính của ADC0808:


Độ phân giải 8 bít
Thời gian chuyển đổi nhanh: tần số 100us tới 640kHz
Nguồn nuôi 5V

25
Ngõ vào điện áp 0-5V
Nhiệt độ hoạt động -10 tới 85 độ C

5.2 Cấu trúc bên trong ADC0808:

Hình ảnh 11: Cấu trúc ADC0808


Bảng chọn kênh :

Hình ảnh 12: Bảng chọn kênh

26
Hình ảnh 13: Giản đồ xung hoạt động của ADC0808

27
PHẦN 2: NỘI DUNG THIẾT KẾ

1.Sơ đồ nguyên lý

Phân tích mạch :


Tại sao phải tạo áp Vref 2.56V xin được giải thích như sau:
Công thức tính điện áp chuyển đổi: Vin = (Vref*ADC)⁄256
Do độ phân giải của ADC0808 là 8bit lên sẽ có 256 mức điện áp so với
Vref. Tức nếu ta cấp vào Vref là 5V và tín hiệu input vào là 2.5V chẳng hạn thì
giá trị ADC = 256⁄2 = 128 (do Vin = 1⁄2 Vref) từ đó suy ra Vref = 2.56V thì để
ADC=25 thì điện áp đầu vào input phải là 250mV => Cứ tăng/giảm 10mV là
ADC tăng/giảm 1 giá trị. Mà cảm biến nhiệt độ LM35 lại có ngõ ra cứ 10mV là
thay đổi 1 độ C như vậy suy ra ADC=25 thì LM35 đang ở 25 độ C. Với cách
này ta không cần phải tính toán giá trị nhiệt độ sau khi chuyển đổi mà có thể
xuất luôn giá trị ADC đó ra màn hình LCD.

28
2.Mạch in

29
3.Mạch 3D

30
4.Chương trình
#include <REGX51.H>
#define VREF 5 //VREF=5V
//Khai bao chan giao tiep ADC0808
#define ADC0808_DATA P3 //PORT
#define ADC0808_A P2_0 //PIN
#define ADC0808_B P2_1
#define ADC0808_C P2_2
#define ADC0808_ALE P2_3
#define ADC0808_START P2_4
#define ADC0808_EOC P2_5
#define ADC0808_OE P2_6
#define ADC0808_CLK P2_7
//Khai bao chan giao tiep LCD16x2 4bit
#define LCD_RS P0_0
#define LCD_RW P0_1
#define LCD_EN P0_2
#define LCD_D4 P0_4
#define LCD_D5 P0_5
#define LCD_D6 P0_6
#define LCD_D7 P0_7
/*****************ADC0808*********************/
//Ham doc ADC0808 theo kenh
unsigned char ADC0808_Read(unsigned char channel){
unsigned char kq;
ADC0808_A = channel & 0x01;
ADC0808_B = channel & 0x02;
ADC0808_C = channel & 0x04;
ADC0808_ALE = 1;
ADC0808_START = 1;
31
ADC0808_ALE = 0;
ADC0808_START = 0;
while(ADC0808_EOC);
while(!ADC0808_EOC);
ADC0808_OE = 1;
kq = ADC0808_DATA;
ADC0808_OE = 0;
return kq;
}
/*****************Ham delay*********************/
void delay_us(unsigned int t){
unsigned int i;
for(i=0;i<t;i++);
}
void delay_ms(unsigned int t){
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<125;j++);
}
/**************Ctr giao tiep LCD 16x2
4bit**********************/
void LCD_Enable(void){
LCD_EN =1;
delay_us(3);
LCD_EN=0;
delay_us(50);
}
//Ham Gui 4 Bit Du Lieu Ra LCD
void LCD_Send4Bit(unsigned char Data){
LCD_D4=Data & 0x01;
32
LCD_D5=(Data>>1)&1;
LCD_D6=(Data>>2)&1;
LCD_D7=(Data>>3)&1;
}
// Ham Gui 1 Lenh Cho LCD
void LCD_SendCommand(unsigned char command){
LCD_Send4Bit(command >>4);/* Gui 4 bit cao */
LCD_Enable();
LCD_Send4Bit(command); /* Gui 4 bit thap*/
LCD_Enable();
}
void LCD_Clear(){// Ham Xoa Man Hinh LCD
LCD_SendCommand(0x01);
delay_us(10);
}
// Ham Khoi Tao LCD
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);
LCD_Enable();

33
LCD_SendCommand( 0x28 ); // giao thuc 4 bit, hien thi 2 hang, ki tu
5x8
LCD_SendCommand( 0x0c); // cho phep hien thi man hinh
LCD_SendCommand( 0x06 ); // tang ID, khong dich khung hinh
LCD_SendCommand(0x01); // xoa toan bo khung hinh
}
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){//Ham Gui 1 Ki Tu
LCD_RS=1;
LCD_SendCommand(Data);
LCD_RS=0 ;
}
void LCD_Puts(char *s){//Ham gui 1 chuoi ky tu
while (*s){
LCD_PutChar(*s);
s++;
}
}
/**************Show Temp***********************
unsigned char Temp(unsigned char adc){//Tinh nhiet do tu adc8bit
return ((VREF*adc)/2.56f); //Tinh nhiet do
} */
void TempShow(unsigned char z){ //Chuyen doi hien thi
34
LCD_Puts("Nhiet do: ");
LCD_PutChar((z/100)+48);//Tram
LCD_PutChar((z%100/10)+48);//Chuc
LCD_PutChar((z%10)+48);//Don vi
LCD_Puts("'C");
}
/******************Ctr ngat timer 0**************************/
void INT_Timer0()interrupt 1 {
//ctr phuc vu ngat tao xung clock cho ADC0808
ADC0808_CLK=~ADC0808_CLK; //Dao bit
}
/******************Ctr chinh**************************/
unsigned char temp;
void main(){
//Tao xung clock cho ADC0808 dung ngat timer
TMOD=0x02; //Timer0 8bit tu nap lai
TH0=TL0=236;//Tao ngat 20us
TR0=1;//Khoi dong timer0
ET0=1;//Ngat timer0
EA=1;//Cho phep ngat cuc bo
//init
LCD_Init();//Khoi tao LCD
delay_ms(200);
LCD_Puts(" Do nhiet do ");//Gui chuoi len LCD
delay_ms(500);
LCD_Clear();//Xoa man hinh
LCD_Gotoxy(0,1);
LCD_Puts(" Nhom 9");
while(1){
LCD_Gotoxy(0,0);
35
temp=ADC0808_Read(0); //Doc ADC0
//temp=Temp(temp); //Tinh nhiet do
TempShow(temp); //Hien thi nhiet do
delay_ms(500);//0.5s doc mot lan
}
}//THE END

36
PHẦN 3: PHẦN KẾT LUẬN

Sau một thời gian làm đồ án, dưới sự hướng dẫn của thầy Đặng Văn Hải,
đến nay, về cơ bản chúng em đã hoàn thành nội dung đồ án môn học này. Do
thời gian và trình độ hiểu biết của chúng em có hạn nên không thể tránh khỏi
những thiếu sót, những sai phại khi làm bài vậy nên chúng em rất mong được sự
chỉ bảo, giúp đỡ của các thầy cô để đồ án này của chúng em được hoàn thiện
hơn. Đồng thời giúp chúng em nâng cao trình độ chuyên môn, đáp ứng nhiệm
vụ công tác sau này. Em xin chân thành cảm ơn thầy giáo Đặng Văn Hải đã giúp
em hoàn thành đồ án này!

37
Tài liệu tham khảo:

Giáo trình vi điều khiển


Giáo trình khí cụ điện
Hướng dẫn lập trình vi xử lý

38
Lời nhận xét của thầy cô:

…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………

39

You might also like