59
Đại Học Sư Phạm Kỹ Thuật Khoa Điện – Điện Tử Bộ Môn Điện Tử Viễn Thông CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập - Tự Do – Hạnh Phúc Ngày……tháng … năm 201.. PHIẾU CHẤM ĐỒ ÁN MÔN HỌC 1 (Dành cho người hướng dẫn) 1. Họ tên sinh viên:................................................... ...................MSSV:.......................... 2. Tên đề tài:.................................................... ........................................................ .......... 3. Người hướng dẫn:.................................................... ...................................................... 4. Những ưu điểm của Đồ Án: ........................................................ ........................................................ ...................... ........................................................ ........................................................ ...................... ........................................................ ........................................................ ...................... ........................................................ ........................................................ ......................

mach dieu khien nhiet do

Embed Size (px)

DESCRIPTION

hi

Citation preview

Page 1: mach dieu khien nhiet do

Đại Học Sư Phạm Kỹ Thuật

Khoa Điện ndash Điện TửBộ Mocircn Điện Tử Viễn

Thocircng

CỘNG HOgraveA XAtilde HỘI CHỦ NGHĨA VIỆT NAMĐộc Lập - Tự Do ndash Hạnh Phuacutec

Ngagraveyhelliphellipthaacuteng hellip năm 201

PHIẾU CHẤM ĐỒ AacuteN MOcircN HỌC 1(Dagravenh cho người hướng dẫn)

1 Họ tecircn sinh viecircnMSSV2 Tecircn đề tagravei3 Người hướng dẫn4 Những ưu điểm của Đồ Aacuten

5 Những thiếu soacutet của Đồ Aacuten

6 Đề nghị Được bảo vệ Bổ sung để được bảo vệ Khocircng được bảo vệ 7 Caacutec cacircu hỏi sinh viecircn phải trả lời trước tổ chấm ĐAMH

a)b)c)

8 Đaacutenh giaacute Điểm ( Số vagrave chữ )

Chữ kyacute vagrave họ tecircn

LỜI CẢM ƠN

Trước tiecircn người thực hiện đề tagravei xin được gửi lời cảm ơn sacircu sắc nhất đến giảng viecircn hướng dẫn Đậu Trọng Hiển đatilde tận tigravenh hướng dẫn trong suốt quaacute trigravenh tigravem hiểu vagrave thực hiện đề tagravei

Người thực hiện đề tagravei củng xin được gửi lời cảm ơn đến toagraven thể quyacute Thầy Cocirc trường Đại Học Sư Phạm Kỹ Thuật TPHCM noacutei chung vagrave Quyacute Thầy Cocirc khoa Điện ndash Điện Tử noacutei riecircng đatilde tận tigravenh giuacutep đỡ vagrave truyền đạt những kiến thức thật lagrave quyacute baacuteu

Cuối cugraveng lagrave lời cảm ơn đến gia đigravenh bạn begrave đatilde tạo điều kiện giuacutep đỡ động viecircn để người thực hiện hoagraven thagravenh tốt đồ aacuten mocircn học 1

Dugrave đatilde cố gắng nhưng trong quaacute trigravenh thực hiện khocircng traacutenh khỏi sai xoacutet kiacutenh mong quyacute Thầy Cocirc goacutep yacute vagrave chỉ dẫn để coacute thể hoagraven thagravenh tốt hơn đồ aacuten mocircn học nagravey

Người thực hiện đề tagravei xin chacircn thagravenh cảm ơn

Sinh viecircn thực hiện

Chacircu Aacute

LỜI NOacuteI ĐẦU

Ngagravenh Điện tử viễn thocircng lagrave một trong những ngagravenh quan trọng vagrave mang tiacutenh quyết định cho sự phaacutet triển của một quốc gia Sự phaacutet triển nhanh choacuteng của Khoa học ndash Kỹ Thuật lagravem cho ngagravenh Điện tử viễn thocircng ngagravey cagraveng phaacutet triển vagrave đạt được nhiều thagravenh tựu mới Nhu cầu của con người ngagravey cagraveng cao lagrave điều kiện thuận lợi cho ngagravenh Điện tử viễn thocircng khocircng ngừng phaacutet minh ra caacutec sản phẩm mới coacute tiacutenh ứng dụng cao caacutec sản phẩm đa tiacutenh năng coacute độ bền vagrave độ ổn định ngagravey cagraveng caohellip Nhưng một điều cơ bản lagrave caacutec sản phẩm đoacute đều bắt nguồn từ những linh kiện rời R L C Diode BJT FEThellip

Vigrave vậy người thực hiện đề tagravei ldquo Thiết kế vagrave thi cocircng mạch đo vagrave điều khiển nhiệt độrdquo nagravey để ứng dụng những gigrave đatilde học vagraveo một mạch thực tế để hiểu thecircm nguyecircn lyacute lagravem việc caacutech thức hoạt động của mạch cũng như hiểu thecircm về chức năng của từng linh kiện điện tử trong mạch

MỤC LỤC

Trang

Trang bigravea loacutetLịch trigravenh thực hiện đồ aacutenLời cảm ơniLời noacutei đầu iiMục lụciiiLiệt kecirc bảng ivLiệt kecirc higravenhvChương 1 GIỚI THIỆU111Mục tiecircu của đề tagravei112Nội dung trigravenh bagravey1Chương 2 KIẾN THỨC BỔ TRỢ221 Tổng quan về vi điều khiển MCS-512211 Giới thiệuhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2

212 Vi điều khiển AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2

213 Sơ đồ khối AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip3

214Sơ đồ chacircn AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip4

215 Định kỳ chu kỳ maacuteyhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip7

216 Tổ chức bộ nhớhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip8

22 ADC 0809helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip9

23 LM35helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12

24 LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13241 Higravenh daacuteng vagrave kiacutech thướchelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13242 Chức năng caacutec chacircnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14243 Sơ đồ khối của HD44780helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip15244 Tập lệnh của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip19245 Giao tiếp giữa LCD vagrave MPUhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24246 Khởi tạo LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip25

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNGhelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2632 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2633 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

35 Sơ đồ nối chacircn cho ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

36 Sơ đồ mạch xử lyacute trung tacircm 89c51helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

38 Khối nguồn 5Vhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Chương 4 THIẾT KẾ PHẦN MỀMhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip31Tagravei liệu tham khảo37

LIỆT KEcirc BẢNG

Bảng 21 Chức năng caacutec chacircn của Port 3helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip5

Bảng 24 Chức năng caacutec chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụnghelliphelliphelliphelliphelliphelliphelliphelliphellip17

Bảng 26 Tập lệnh của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip20

Bảng 27 Maximun Ratinghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

Bảng 28 Miền lagravem việc bigravenh thườnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

LIỆT KEcirc HIgraveNH

Higravenh 21 Sơ đồ khối của AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip3

Higravenh 22 Sơ đồ chacircn AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip4

Higravenh 23 Sơ đồ chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip9

Higravenh 24 Cảm biến nhiệthelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13

Higravenh 26 Sơ đồ chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Higravenh 27 Sơ đồ khối của HD44780 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip16

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCDhelliphelliphellip 18

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tựhelliphelliphelliphelliphelliphellip19

Higravenh 31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 32 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 33 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 35 Sơ đồ nối chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

Higravenh36 Sơ đồ xứ lyacute trung tacircmhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

Higravenh 37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Higravenh 38 Khối nguồnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 1

CHƯƠNG 1 GIỚI THIỆU

11 Mục tiecircu của đề tagravei

Vận dụng được caacutec lyacute thuyết đatilde học vagraveo việc thiết kế một mạch thực tế Hệ thống lại caacutec kiến thức đatilde học Nacircng cao kỹ năng thiết kế vagrave thi cocircng mạch Giải thiacutech chức năng nhiệm vụ caacutec khối cũng như caacutec linh kiện trong mạch

12 Nội dung trigravenh bagravey

Caacutec lyacute thuyết liecircn quan về mạch nhiệt độ Giải thiacutech chức năng nhiệm vụ caacutec khối caacutec linh kiện trong mạch Tiacutenh toaacuten thiết kế vagrave thi cocircng mạch

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 2

CHƯƠNG 2 KIẾN THỨC BỔ TRỢ

21TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51

211GIỚI THIỆU

Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiecircn vagraveo năm 1980 lagrave caacutec IC

thiết kế cho caacutec ứng dụng hướng điều khiển Caacutec IC nagravey chiacutenh lagrave một hệ thống vi xử

lyacute hoagraven chỉnh bao gồm caacutec caacutec thagravenh phần của hệ vi xử lyacute CPU bộ nhớ caacutec mạch

giao tiếp điều khiển ngắt

MCS-51 lagrave họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set

Computer) coacute độ dagravei vagrave thời gian thực thi của caacutec lệnh khaacutec nhau Tập lệnh cung cấp

cho MCS-51 coacute caacutec lệnh dugraveng cho điều khiển xuất nhập taacutec động đến từng bit

212VI ĐIỀU KHIỂN AT89S52

AT89S52 lagrave vi điều khiển do Atmel sản xuất chế tạo theo cocircng nghệ CMOS

coacute caacutec đặc tiacutenh như sau

- 8 KB PEROM (Flash Programmable and Erasable Read Only Memory) coacute khả

năng tới 1000 chu kỳ ghi xoaacute

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

- 3 mức khoacutea bộ nhớ lập trigravenh

- 128 Byte RAM nội

- 4 Port xuất nhập IO 8 bit

- 2 bộ Timercounter 16 Bit

- 6 nguồn ngắt

- Giao tiếp nối tiếp điều khiển bằng phần cứng

- 64 KB vugraveng nhớ matilde ngoagravei

- 64 KB vugraveng nhớ dữ liệu ngoagravei

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 3

- Cho pheacutep xử lyacute bit

- 210 vị triacute nhớ coacute thể định vị bit

- 4 chu kỳ maacutey (4 μs đối với thạch anh 12MHz) cho hoạt động nhacircn hoặc chia

- Coacute caacutec chế độ nghỉ (Low-power Idle) vagrave chế độ nguồn giảm (Power-down)

Ngoải ra một số IC khaacutec của họ MCS-51 coacute thecircm bộ định thời thứ 3 vagrave 256

byte RAM nội

213 SƠ ĐỒ KHỐI AT89S52

Higravenh 21 ndash Sơ đồ khối của AT89S52

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 4

214 SƠ ĐỒ CHAcircN AT89S52

Higravenh 22 Sơ đồ chacircn AT89S52

bull Port 0

Port 0 lagrave port coacute 2 chức năng ở caacutec chacircn 32 ndash 39 của AT89C51

- Chức năng IO (xuất nhập) dugraveng cho caacutec thiết kế nhỏ Tuy nhiecircn khi dugraveng

chức năng nagravey thigrave Port 0 phải dugraveng thecircm caacutec điện trở keacuteo lecircn (pull-up) giaacute trị

của điện trở phụ thuộc vagraveo thagravenh phần kết nối với Port

Khi dugraveng lagravem ngotilde ra Port 0 coacute thể keacuteo được 8 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 0 phải được set mức logic 1 trước đoacute

- Chức năng địa chỉ dữ liệu đa hợp khi dugraveng caacutec thiết kế lớn đogravei hỏi phải sử

dụng bộ nhớ ngoagravei thigrave Port 0 vừa lagrave bus dữ liệu (8 bit) vừa lagrave bus địa chỉ (8 bit

thấp)

Ngoagravei ra khi lập trigravenh cho AT89C51 Port 0 cograven dugraveng để nhận matilde khi lập trigravenh

vagrave xuất magrave khi kiểm tra (quaacute trigravenh kiểm tra đogravei hỏi phải coacute điện trở keacuteo lecircn)

bull Port 1

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 2: mach dieu khien nhiet do

LỜI CẢM ƠN

Trước tiecircn người thực hiện đề tagravei xin được gửi lời cảm ơn sacircu sắc nhất đến giảng viecircn hướng dẫn Đậu Trọng Hiển đatilde tận tigravenh hướng dẫn trong suốt quaacute trigravenh tigravem hiểu vagrave thực hiện đề tagravei

Người thực hiện đề tagravei củng xin được gửi lời cảm ơn đến toagraven thể quyacute Thầy Cocirc trường Đại Học Sư Phạm Kỹ Thuật TPHCM noacutei chung vagrave Quyacute Thầy Cocirc khoa Điện ndash Điện Tử noacutei riecircng đatilde tận tigravenh giuacutep đỡ vagrave truyền đạt những kiến thức thật lagrave quyacute baacuteu

Cuối cugraveng lagrave lời cảm ơn đến gia đigravenh bạn begrave đatilde tạo điều kiện giuacutep đỡ động viecircn để người thực hiện hoagraven thagravenh tốt đồ aacuten mocircn học 1

Dugrave đatilde cố gắng nhưng trong quaacute trigravenh thực hiện khocircng traacutenh khỏi sai xoacutet kiacutenh mong quyacute Thầy Cocirc goacutep yacute vagrave chỉ dẫn để coacute thể hoagraven thagravenh tốt hơn đồ aacuten mocircn học nagravey

Người thực hiện đề tagravei xin chacircn thagravenh cảm ơn

Sinh viecircn thực hiện

Chacircu Aacute

LỜI NOacuteI ĐẦU

Ngagravenh Điện tử viễn thocircng lagrave một trong những ngagravenh quan trọng vagrave mang tiacutenh quyết định cho sự phaacutet triển của một quốc gia Sự phaacutet triển nhanh choacuteng của Khoa học ndash Kỹ Thuật lagravem cho ngagravenh Điện tử viễn thocircng ngagravey cagraveng phaacutet triển vagrave đạt được nhiều thagravenh tựu mới Nhu cầu của con người ngagravey cagraveng cao lagrave điều kiện thuận lợi cho ngagravenh Điện tử viễn thocircng khocircng ngừng phaacutet minh ra caacutec sản phẩm mới coacute tiacutenh ứng dụng cao caacutec sản phẩm đa tiacutenh năng coacute độ bền vagrave độ ổn định ngagravey cagraveng caohellip Nhưng một điều cơ bản lagrave caacutec sản phẩm đoacute đều bắt nguồn từ những linh kiện rời R L C Diode BJT FEThellip

Vigrave vậy người thực hiện đề tagravei ldquo Thiết kế vagrave thi cocircng mạch đo vagrave điều khiển nhiệt độrdquo nagravey để ứng dụng những gigrave đatilde học vagraveo một mạch thực tế để hiểu thecircm nguyecircn lyacute lagravem việc caacutech thức hoạt động của mạch cũng như hiểu thecircm về chức năng của từng linh kiện điện tử trong mạch

MỤC LỤC

Trang

Trang bigravea loacutetLịch trigravenh thực hiện đồ aacutenLời cảm ơniLời noacutei đầu iiMục lụciiiLiệt kecirc bảng ivLiệt kecirc higravenhvChương 1 GIỚI THIỆU111Mục tiecircu của đề tagravei112Nội dung trigravenh bagravey1Chương 2 KIẾN THỨC BỔ TRỢ221 Tổng quan về vi điều khiển MCS-512211 Giới thiệuhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2

212 Vi điều khiển AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2

213 Sơ đồ khối AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip3

214Sơ đồ chacircn AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip4

215 Định kỳ chu kỳ maacuteyhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip7

216 Tổ chức bộ nhớhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip8

22 ADC 0809helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip9

23 LM35helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12

24 LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13241 Higravenh daacuteng vagrave kiacutech thướchelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13242 Chức năng caacutec chacircnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14243 Sơ đồ khối của HD44780helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip15244 Tập lệnh của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip19245 Giao tiếp giữa LCD vagrave MPUhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24246 Khởi tạo LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip25

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNGhelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2632 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2633 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

35 Sơ đồ nối chacircn cho ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

36 Sơ đồ mạch xử lyacute trung tacircm 89c51helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

38 Khối nguồn 5Vhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Chương 4 THIẾT KẾ PHẦN MỀMhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip31Tagravei liệu tham khảo37

LIỆT KEcirc BẢNG

Bảng 21 Chức năng caacutec chacircn của Port 3helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip5

Bảng 24 Chức năng caacutec chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụnghelliphelliphelliphelliphelliphelliphelliphelliphellip17

Bảng 26 Tập lệnh của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip20

Bảng 27 Maximun Ratinghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

Bảng 28 Miền lagravem việc bigravenh thườnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

LIỆT KEcirc HIgraveNH

Higravenh 21 Sơ đồ khối của AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip3

Higravenh 22 Sơ đồ chacircn AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip4

Higravenh 23 Sơ đồ chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip9

Higravenh 24 Cảm biến nhiệthelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13

Higravenh 26 Sơ đồ chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Higravenh 27 Sơ đồ khối của HD44780 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip16

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCDhelliphelliphellip 18

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tựhelliphelliphelliphelliphelliphellip19

Higravenh 31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 32 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 33 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 35 Sơ đồ nối chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

Higravenh36 Sơ đồ xứ lyacute trung tacircmhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

Higravenh 37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Higravenh 38 Khối nguồnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 1

CHƯƠNG 1 GIỚI THIỆU

11 Mục tiecircu của đề tagravei

Vận dụng được caacutec lyacute thuyết đatilde học vagraveo việc thiết kế một mạch thực tế Hệ thống lại caacutec kiến thức đatilde học Nacircng cao kỹ năng thiết kế vagrave thi cocircng mạch Giải thiacutech chức năng nhiệm vụ caacutec khối cũng như caacutec linh kiện trong mạch

12 Nội dung trigravenh bagravey

Caacutec lyacute thuyết liecircn quan về mạch nhiệt độ Giải thiacutech chức năng nhiệm vụ caacutec khối caacutec linh kiện trong mạch Tiacutenh toaacuten thiết kế vagrave thi cocircng mạch

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 2

CHƯƠNG 2 KIẾN THỨC BỔ TRỢ

21TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51

211GIỚI THIỆU

Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiecircn vagraveo năm 1980 lagrave caacutec IC

thiết kế cho caacutec ứng dụng hướng điều khiển Caacutec IC nagravey chiacutenh lagrave một hệ thống vi xử

lyacute hoagraven chỉnh bao gồm caacutec caacutec thagravenh phần của hệ vi xử lyacute CPU bộ nhớ caacutec mạch

giao tiếp điều khiển ngắt

MCS-51 lagrave họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set

Computer) coacute độ dagravei vagrave thời gian thực thi của caacutec lệnh khaacutec nhau Tập lệnh cung cấp

cho MCS-51 coacute caacutec lệnh dugraveng cho điều khiển xuất nhập taacutec động đến từng bit

212VI ĐIỀU KHIỂN AT89S52

AT89S52 lagrave vi điều khiển do Atmel sản xuất chế tạo theo cocircng nghệ CMOS

coacute caacutec đặc tiacutenh như sau

- 8 KB PEROM (Flash Programmable and Erasable Read Only Memory) coacute khả

năng tới 1000 chu kỳ ghi xoaacute

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

- 3 mức khoacutea bộ nhớ lập trigravenh

- 128 Byte RAM nội

- 4 Port xuất nhập IO 8 bit

- 2 bộ Timercounter 16 Bit

- 6 nguồn ngắt

- Giao tiếp nối tiếp điều khiển bằng phần cứng

- 64 KB vugraveng nhớ matilde ngoagravei

- 64 KB vugraveng nhớ dữ liệu ngoagravei

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 3

- Cho pheacutep xử lyacute bit

- 210 vị triacute nhớ coacute thể định vị bit

- 4 chu kỳ maacutey (4 μs đối với thạch anh 12MHz) cho hoạt động nhacircn hoặc chia

- Coacute caacutec chế độ nghỉ (Low-power Idle) vagrave chế độ nguồn giảm (Power-down)

Ngoải ra một số IC khaacutec của họ MCS-51 coacute thecircm bộ định thời thứ 3 vagrave 256

byte RAM nội

213 SƠ ĐỒ KHỐI AT89S52

Higravenh 21 ndash Sơ đồ khối của AT89S52

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 4

214 SƠ ĐỒ CHAcircN AT89S52

Higravenh 22 Sơ đồ chacircn AT89S52

bull Port 0

Port 0 lagrave port coacute 2 chức năng ở caacutec chacircn 32 ndash 39 của AT89C51

- Chức năng IO (xuất nhập) dugraveng cho caacutec thiết kế nhỏ Tuy nhiecircn khi dugraveng

chức năng nagravey thigrave Port 0 phải dugraveng thecircm caacutec điện trở keacuteo lecircn (pull-up) giaacute trị

của điện trở phụ thuộc vagraveo thagravenh phần kết nối với Port

Khi dugraveng lagravem ngotilde ra Port 0 coacute thể keacuteo được 8 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 0 phải được set mức logic 1 trước đoacute

- Chức năng địa chỉ dữ liệu đa hợp khi dugraveng caacutec thiết kế lớn đogravei hỏi phải sử

dụng bộ nhớ ngoagravei thigrave Port 0 vừa lagrave bus dữ liệu (8 bit) vừa lagrave bus địa chỉ (8 bit

thấp)

Ngoagravei ra khi lập trigravenh cho AT89C51 Port 0 cograven dugraveng để nhận matilde khi lập trigravenh

vagrave xuất magrave khi kiểm tra (quaacute trigravenh kiểm tra đogravei hỏi phải coacute điện trở keacuteo lecircn)

bull Port 1

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 3: mach dieu khien nhiet do

LỜI NOacuteI ĐẦU

Ngagravenh Điện tử viễn thocircng lagrave một trong những ngagravenh quan trọng vagrave mang tiacutenh quyết định cho sự phaacutet triển của một quốc gia Sự phaacutet triển nhanh choacuteng của Khoa học ndash Kỹ Thuật lagravem cho ngagravenh Điện tử viễn thocircng ngagravey cagraveng phaacutet triển vagrave đạt được nhiều thagravenh tựu mới Nhu cầu của con người ngagravey cagraveng cao lagrave điều kiện thuận lợi cho ngagravenh Điện tử viễn thocircng khocircng ngừng phaacutet minh ra caacutec sản phẩm mới coacute tiacutenh ứng dụng cao caacutec sản phẩm đa tiacutenh năng coacute độ bền vagrave độ ổn định ngagravey cagraveng caohellip Nhưng một điều cơ bản lagrave caacutec sản phẩm đoacute đều bắt nguồn từ những linh kiện rời R L C Diode BJT FEThellip

Vigrave vậy người thực hiện đề tagravei ldquo Thiết kế vagrave thi cocircng mạch đo vagrave điều khiển nhiệt độrdquo nagravey để ứng dụng những gigrave đatilde học vagraveo một mạch thực tế để hiểu thecircm nguyecircn lyacute lagravem việc caacutech thức hoạt động của mạch cũng như hiểu thecircm về chức năng của từng linh kiện điện tử trong mạch

MỤC LỤC

Trang

Trang bigravea loacutetLịch trigravenh thực hiện đồ aacutenLời cảm ơniLời noacutei đầu iiMục lụciiiLiệt kecirc bảng ivLiệt kecirc higravenhvChương 1 GIỚI THIỆU111Mục tiecircu của đề tagravei112Nội dung trigravenh bagravey1Chương 2 KIẾN THỨC BỔ TRỢ221 Tổng quan về vi điều khiển MCS-512211 Giới thiệuhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2

212 Vi điều khiển AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2

213 Sơ đồ khối AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip3

214Sơ đồ chacircn AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip4

215 Định kỳ chu kỳ maacuteyhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip7

216 Tổ chức bộ nhớhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip8

22 ADC 0809helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip9

23 LM35helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12

24 LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13241 Higravenh daacuteng vagrave kiacutech thướchelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13242 Chức năng caacutec chacircnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14243 Sơ đồ khối của HD44780helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip15244 Tập lệnh của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip19245 Giao tiếp giữa LCD vagrave MPUhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24246 Khởi tạo LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip25

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNGhelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2632 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2633 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

35 Sơ đồ nối chacircn cho ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

36 Sơ đồ mạch xử lyacute trung tacircm 89c51helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

38 Khối nguồn 5Vhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Chương 4 THIẾT KẾ PHẦN MỀMhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip31Tagravei liệu tham khảo37

LIỆT KEcirc BẢNG

Bảng 21 Chức năng caacutec chacircn của Port 3helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip5

Bảng 24 Chức năng caacutec chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụnghelliphelliphelliphelliphelliphelliphelliphelliphellip17

Bảng 26 Tập lệnh của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip20

Bảng 27 Maximun Ratinghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

Bảng 28 Miền lagravem việc bigravenh thườnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

LIỆT KEcirc HIgraveNH

Higravenh 21 Sơ đồ khối của AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip3

Higravenh 22 Sơ đồ chacircn AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip4

Higravenh 23 Sơ đồ chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip9

Higravenh 24 Cảm biến nhiệthelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13

Higravenh 26 Sơ đồ chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Higravenh 27 Sơ đồ khối của HD44780 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip16

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCDhelliphelliphellip 18

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tựhelliphelliphelliphelliphelliphellip19

Higravenh 31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 32 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 33 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 35 Sơ đồ nối chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

Higravenh36 Sơ đồ xứ lyacute trung tacircmhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

Higravenh 37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Higravenh 38 Khối nguồnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 1

CHƯƠNG 1 GIỚI THIỆU

11 Mục tiecircu của đề tagravei

Vận dụng được caacutec lyacute thuyết đatilde học vagraveo việc thiết kế một mạch thực tế Hệ thống lại caacutec kiến thức đatilde học Nacircng cao kỹ năng thiết kế vagrave thi cocircng mạch Giải thiacutech chức năng nhiệm vụ caacutec khối cũng như caacutec linh kiện trong mạch

12 Nội dung trigravenh bagravey

Caacutec lyacute thuyết liecircn quan về mạch nhiệt độ Giải thiacutech chức năng nhiệm vụ caacutec khối caacutec linh kiện trong mạch Tiacutenh toaacuten thiết kế vagrave thi cocircng mạch

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 2

CHƯƠNG 2 KIẾN THỨC BỔ TRỢ

21TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51

211GIỚI THIỆU

Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiecircn vagraveo năm 1980 lagrave caacutec IC

thiết kế cho caacutec ứng dụng hướng điều khiển Caacutec IC nagravey chiacutenh lagrave một hệ thống vi xử

lyacute hoagraven chỉnh bao gồm caacutec caacutec thagravenh phần của hệ vi xử lyacute CPU bộ nhớ caacutec mạch

giao tiếp điều khiển ngắt

MCS-51 lagrave họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set

Computer) coacute độ dagravei vagrave thời gian thực thi của caacutec lệnh khaacutec nhau Tập lệnh cung cấp

cho MCS-51 coacute caacutec lệnh dugraveng cho điều khiển xuất nhập taacutec động đến từng bit

212VI ĐIỀU KHIỂN AT89S52

AT89S52 lagrave vi điều khiển do Atmel sản xuất chế tạo theo cocircng nghệ CMOS

coacute caacutec đặc tiacutenh như sau

- 8 KB PEROM (Flash Programmable and Erasable Read Only Memory) coacute khả

năng tới 1000 chu kỳ ghi xoaacute

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

- 3 mức khoacutea bộ nhớ lập trigravenh

- 128 Byte RAM nội

- 4 Port xuất nhập IO 8 bit

- 2 bộ Timercounter 16 Bit

- 6 nguồn ngắt

- Giao tiếp nối tiếp điều khiển bằng phần cứng

- 64 KB vugraveng nhớ matilde ngoagravei

- 64 KB vugraveng nhớ dữ liệu ngoagravei

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 3

- Cho pheacutep xử lyacute bit

- 210 vị triacute nhớ coacute thể định vị bit

- 4 chu kỳ maacutey (4 μs đối với thạch anh 12MHz) cho hoạt động nhacircn hoặc chia

- Coacute caacutec chế độ nghỉ (Low-power Idle) vagrave chế độ nguồn giảm (Power-down)

Ngoải ra một số IC khaacutec của họ MCS-51 coacute thecircm bộ định thời thứ 3 vagrave 256

byte RAM nội

213 SƠ ĐỒ KHỐI AT89S52

Higravenh 21 ndash Sơ đồ khối của AT89S52

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 4

214 SƠ ĐỒ CHAcircN AT89S52

Higravenh 22 Sơ đồ chacircn AT89S52

bull Port 0

Port 0 lagrave port coacute 2 chức năng ở caacutec chacircn 32 ndash 39 của AT89C51

- Chức năng IO (xuất nhập) dugraveng cho caacutec thiết kế nhỏ Tuy nhiecircn khi dugraveng

chức năng nagravey thigrave Port 0 phải dugraveng thecircm caacutec điện trở keacuteo lecircn (pull-up) giaacute trị

của điện trở phụ thuộc vagraveo thagravenh phần kết nối với Port

Khi dugraveng lagravem ngotilde ra Port 0 coacute thể keacuteo được 8 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 0 phải được set mức logic 1 trước đoacute

- Chức năng địa chỉ dữ liệu đa hợp khi dugraveng caacutec thiết kế lớn đogravei hỏi phải sử

dụng bộ nhớ ngoagravei thigrave Port 0 vừa lagrave bus dữ liệu (8 bit) vừa lagrave bus địa chỉ (8 bit

thấp)

Ngoagravei ra khi lập trigravenh cho AT89C51 Port 0 cograven dugraveng để nhận matilde khi lập trigravenh

vagrave xuất magrave khi kiểm tra (quaacute trigravenh kiểm tra đogravei hỏi phải coacute điện trở keacuteo lecircn)

bull Port 1

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 4: mach dieu khien nhiet do

MỤC LỤC

Trang

Trang bigravea loacutetLịch trigravenh thực hiện đồ aacutenLời cảm ơniLời noacutei đầu iiMục lụciiiLiệt kecirc bảng ivLiệt kecirc higravenhvChương 1 GIỚI THIỆU111Mục tiecircu của đề tagravei112Nội dung trigravenh bagravey1Chương 2 KIẾN THỨC BỔ TRỢ221 Tổng quan về vi điều khiển MCS-512211 Giới thiệuhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2

212 Vi điều khiển AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2

213 Sơ đồ khối AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip3

214Sơ đồ chacircn AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip4

215 Định kỳ chu kỳ maacuteyhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip7

216 Tổ chức bộ nhớhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip8

22 ADC 0809helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip9

23 LM35helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12

24 LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13241 Higravenh daacuteng vagrave kiacutech thướchelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13242 Chức năng caacutec chacircnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14243 Sơ đồ khối của HD44780helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip15244 Tập lệnh của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip19245 Giao tiếp giữa LCD vagrave MPUhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24246 Khởi tạo LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip25

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNGhelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2632 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2633 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

35 Sơ đồ nối chacircn cho ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

36 Sơ đồ mạch xử lyacute trung tacircm 89c51helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

38 Khối nguồn 5Vhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Chương 4 THIẾT KẾ PHẦN MỀMhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip31Tagravei liệu tham khảo37

LIỆT KEcirc BẢNG

Bảng 21 Chức năng caacutec chacircn của Port 3helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip5

Bảng 24 Chức năng caacutec chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụnghelliphelliphelliphelliphelliphelliphelliphelliphellip17

Bảng 26 Tập lệnh của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip20

Bảng 27 Maximun Ratinghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

Bảng 28 Miền lagravem việc bigravenh thườnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

LIỆT KEcirc HIgraveNH

Higravenh 21 Sơ đồ khối của AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip3

Higravenh 22 Sơ đồ chacircn AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip4

Higravenh 23 Sơ đồ chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip9

Higravenh 24 Cảm biến nhiệthelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13

Higravenh 26 Sơ đồ chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Higravenh 27 Sơ đồ khối của HD44780 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip16

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCDhelliphelliphellip 18

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tựhelliphelliphelliphelliphelliphellip19

Higravenh 31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 32 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 33 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 35 Sơ đồ nối chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

Higravenh36 Sơ đồ xứ lyacute trung tacircmhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

Higravenh 37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Higravenh 38 Khối nguồnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 1

CHƯƠNG 1 GIỚI THIỆU

11 Mục tiecircu của đề tagravei

Vận dụng được caacutec lyacute thuyết đatilde học vagraveo việc thiết kế một mạch thực tế Hệ thống lại caacutec kiến thức đatilde học Nacircng cao kỹ năng thiết kế vagrave thi cocircng mạch Giải thiacutech chức năng nhiệm vụ caacutec khối cũng như caacutec linh kiện trong mạch

12 Nội dung trigravenh bagravey

Caacutec lyacute thuyết liecircn quan về mạch nhiệt độ Giải thiacutech chức năng nhiệm vụ caacutec khối caacutec linh kiện trong mạch Tiacutenh toaacuten thiết kế vagrave thi cocircng mạch

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 2

CHƯƠNG 2 KIẾN THỨC BỔ TRỢ

21TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51

211GIỚI THIỆU

Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiecircn vagraveo năm 1980 lagrave caacutec IC

thiết kế cho caacutec ứng dụng hướng điều khiển Caacutec IC nagravey chiacutenh lagrave một hệ thống vi xử

lyacute hoagraven chỉnh bao gồm caacutec caacutec thagravenh phần của hệ vi xử lyacute CPU bộ nhớ caacutec mạch

giao tiếp điều khiển ngắt

MCS-51 lagrave họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set

Computer) coacute độ dagravei vagrave thời gian thực thi của caacutec lệnh khaacutec nhau Tập lệnh cung cấp

cho MCS-51 coacute caacutec lệnh dugraveng cho điều khiển xuất nhập taacutec động đến từng bit

212VI ĐIỀU KHIỂN AT89S52

AT89S52 lagrave vi điều khiển do Atmel sản xuất chế tạo theo cocircng nghệ CMOS

coacute caacutec đặc tiacutenh như sau

- 8 KB PEROM (Flash Programmable and Erasable Read Only Memory) coacute khả

năng tới 1000 chu kỳ ghi xoaacute

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

- 3 mức khoacutea bộ nhớ lập trigravenh

- 128 Byte RAM nội

- 4 Port xuất nhập IO 8 bit

- 2 bộ Timercounter 16 Bit

- 6 nguồn ngắt

- Giao tiếp nối tiếp điều khiển bằng phần cứng

- 64 KB vugraveng nhớ matilde ngoagravei

- 64 KB vugraveng nhớ dữ liệu ngoagravei

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 3

- Cho pheacutep xử lyacute bit

- 210 vị triacute nhớ coacute thể định vị bit

- 4 chu kỳ maacutey (4 μs đối với thạch anh 12MHz) cho hoạt động nhacircn hoặc chia

- Coacute caacutec chế độ nghỉ (Low-power Idle) vagrave chế độ nguồn giảm (Power-down)

Ngoải ra một số IC khaacutec của họ MCS-51 coacute thecircm bộ định thời thứ 3 vagrave 256

byte RAM nội

213 SƠ ĐỒ KHỐI AT89S52

Higravenh 21 ndash Sơ đồ khối của AT89S52

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 4

214 SƠ ĐỒ CHAcircN AT89S52

Higravenh 22 Sơ đồ chacircn AT89S52

bull Port 0

Port 0 lagrave port coacute 2 chức năng ở caacutec chacircn 32 ndash 39 của AT89C51

- Chức năng IO (xuất nhập) dugraveng cho caacutec thiết kế nhỏ Tuy nhiecircn khi dugraveng

chức năng nagravey thigrave Port 0 phải dugraveng thecircm caacutec điện trở keacuteo lecircn (pull-up) giaacute trị

của điện trở phụ thuộc vagraveo thagravenh phần kết nối với Port

Khi dugraveng lagravem ngotilde ra Port 0 coacute thể keacuteo được 8 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 0 phải được set mức logic 1 trước đoacute

- Chức năng địa chỉ dữ liệu đa hợp khi dugraveng caacutec thiết kế lớn đogravei hỏi phải sử

dụng bộ nhớ ngoagravei thigrave Port 0 vừa lagrave bus dữ liệu (8 bit) vừa lagrave bus địa chỉ (8 bit

thấp)

Ngoagravei ra khi lập trigravenh cho AT89C51 Port 0 cograven dugraveng để nhận matilde khi lập trigravenh

vagrave xuất magrave khi kiểm tra (quaacute trigravenh kiểm tra đogravei hỏi phải coacute điện trở keacuteo lecircn)

bull Port 1

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 5: mach dieu khien nhiet do

31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2632 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip2633 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

35 Sơ đồ nối chacircn cho ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

36 Sơ đồ mạch xử lyacute trung tacircm 89c51helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

38 Khối nguồn 5Vhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Chương 4 THIẾT KẾ PHẦN MỀMhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip31Tagravei liệu tham khảo37

LIỆT KEcirc BẢNG

Bảng 21 Chức năng caacutec chacircn của Port 3helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip5

Bảng 24 Chức năng caacutec chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụnghelliphelliphelliphelliphelliphelliphelliphelliphellip17

Bảng 26 Tập lệnh của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip20

Bảng 27 Maximun Ratinghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

Bảng 28 Miền lagravem việc bigravenh thườnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

LIỆT KEcirc HIgraveNH

Higravenh 21 Sơ đồ khối của AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip3

Higravenh 22 Sơ đồ chacircn AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip4

Higravenh 23 Sơ đồ chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip9

Higravenh 24 Cảm biến nhiệthelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13

Higravenh 26 Sơ đồ chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Higravenh 27 Sơ đồ khối của HD44780 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip16

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCDhelliphelliphellip 18

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tựhelliphelliphelliphelliphelliphellip19

Higravenh 31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 32 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 33 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 35 Sơ đồ nối chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

Higravenh36 Sơ đồ xứ lyacute trung tacircmhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

Higravenh 37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Higravenh 38 Khối nguồnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 1

CHƯƠNG 1 GIỚI THIỆU

11 Mục tiecircu của đề tagravei

Vận dụng được caacutec lyacute thuyết đatilde học vagraveo việc thiết kế một mạch thực tế Hệ thống lại caacutec kiến thức đatilde học Nacircng cao kỹ năng thiết kế vagrave thi cocircng mạch Giải thiacutech chức năng nhiệm vụ caacutec khối cũng như caacutec linh kiện trong mạch

12 Nội dung trigravenh bagravey

Caacutec lyacute thuyết liecircn quan về mạch nhiệt độ Giải thiacutech chức năng nhiệm vụ caacutec khối caacutec linh kiện trong mạch Tiacutenh toaacuten thiết kế vagrave thi cocircng mạch

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 2

CHƯƠNG 2 KIẾN THỨC BỔ TRỢ

21TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51

211GIỚI THIỆU

Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiecircn vagraveo năm 1980 lagrave caacutec IC

thiết kế cho caacutec ứng dụng hướng điều khiển Caacutec IC nagravey chiacutenh lagrave một hệ thống vi xử

lyacute hoagraven chỉnh bao gồm caacutec caacutec thagravenh phần của hệ vi xử lyacute CPU bộ nhớ caacutec mạch

giao tiếp điều khiển ngắt

MCS-51 lagrave họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set

Computer) coacute độ dagravei vagrave thời gian thực thi của caacutec lệnh khaacutec nhau Tập lệnh cung cấp

cho MCS-51 coacute caacutec lệnh dugraveng cho điều khiển xuất nhập taacutec động đến từng bit

212VI ĐIỀU KHIỂN AT89S52

AT89S52 lagrave vi điều khiển do Atmel sản xuất chế tạo theo cocircng nghệ CMOS

coacute caacutec đặc tiacutenh như sau

- 8 KB PEROM (Flash Programmable and Erasable Read Only Memory) coacute khả

năng tới 1000 chu kỳ ghi xoaacute

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

- 3 mức khoacutea bộ nhớ lập trigravenh

- 128 Byte RAM nội

- 4 Port xuất nhập IO 8 bit

- 2 bộ Timercounter 16 Bit

- 6 nguồn ngắt

- Giao tiếp nối tiếp điều khiển bằng phần cứng

- 64 KB vugraveng nhớ matilde ngoagravei

- 64 KB vugraveng nhớ dữ liệu ngoagravei

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 3

- Cho pheacutep xử lyacute bit

- 210 vị triacute nhớ coacute thể định vị bit

- 4 chu kỳ maacutey (4 μs đối với thạch anh 12MHz) cho hoạt động nhacircn hoặc chia

- Coacute caacutec chế độ nghỉ (Low-power Idle) vagrave chế độ nguồn giảm (Power-down)

Ngoải ra một số IC khaacutec của họ MCS-51 coacute thecircm bộ định thời thứ 3 vagrave 256

byte RAM nội

213 SƠ ĐỒ KHỐI AT89S52

Higravenh 21 ndash Sơ đồ khối của AT89S52

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 4

214 SƠ ĐỒ CHAcircN AT89S52

Higravenh 22 Sơ đồ chacircn AT89S52

bull Port 0

Port 0 lagrave port coacute 2 chức năng ở caacutec chacircn 32 ndash 39 của AT89C51

- Chức năng IO (xuất nhập) dugraveng cho caacutec thiết kế nhỏ Tuy nhiecircn khi dugraveng

chức năng nagravey thigrave Port 0 phải dugraveng thecircm caacutec điện trở keacuteo lecircn (pull-up) giaacute trị

của điện trở phụ thuộc vagraveo thagravenh phần kết nối với Port

Khi dugraveng lagravem ngotilde ra Port 0 coacute thể keacuteo được 8 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 0 phải được set mức logic 1 trước đoacute

- Chức năng địa chỉ dữ liệu đa hợp khi dugraveng caacutec thiết kế lớn đogravei hỏi phải sử

dụng bộ nhớ ngoagravei thigrave Port 0 vừa lagrave bus dữ liệu (8 bit) vừa lagrave bus địa chỉ (8 bit

thấp)

Ngoagravei ra khi lập trigravenh cho AT89C51 Port 0 cograven dugraveng để nhận matilde khi lập trigravenh

vagrave xuất magrave khi kiểm tra (quaacute trigravenh kiểm tra đogravei hỏi phải coacute điện trở keacuteo lecircn)

bull Port 1

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 6: mach dieu khien nhiet do

LIỆT KEcirc BẢNG

Bảng 21 Chức năng caacutec chacircn của Port 3helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip5

Bảng 24 Chức năng caacutec chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụnghelliphelliphelliphelliphelliphelliphelliphelliphellip17

Bảng 26 Tập lệnh của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip20

Bảng 27 Maximun Ratinghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

Bảng 28 Miền lagravem việc bigravenh thườnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24

LIỆT KEcirc HIgraveNH

Higravenh 21 Sơ đồ khối của AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip3

Higravenh 22 Sơ đồ chacircn AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip4

Higravenh 23 Sơ đồ chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip9

Higravenh 24 Cảm biến nhiệthelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13

Higravenh 26 Sơ đồ chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Higravenh 27 Sơ đồ khối của HD44780 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip16

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCDhelliphelliphellip 18

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tựhelliphelliphelliphelliphelliphellip19

Higravenh 31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 32 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 33 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 35 Sơ đồ nối chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

Higravenh36 Sơ đồ xứ lyacute trung tacircmhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

Higravenh 37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Higravenh 38 Khối nguồnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 1

CHƯƠNG 1 GIỚI THIỆU

11 Mục tiecircu của đề tagravei

Vận dụng được caacutec lyacute thuyết đatilde học vagraveo việc thiết kế một mạch thực tế Hệ thống lại caacutec kiến thức đatilde học Nacircng cao kỹ năng thiết kế vagrave thi cocircng mạch Giải thiacutech chức năng nhiệm vụ caacutec khối cũng như caacutec linh kiện trong mạch

12 Nội dung trigravenh bagravey

Caacutec lyacute thuyết liecircn quan về mạch nhiệt độ Giải thiacutech chức năng nhiệm vụ caacutec khối caacutec linh kiện trong mạch Tiacutenh toaacuten thiết kế vagrave thi cocircng mạch

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 2

CHƯƠNG 2 KIẾN THỨC BỔ TRỢ

21TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51

211GIỚI THIỆU

Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiecircn vagraveo năm 1980 lagrave caacutec IC

thiết kế cho caacutec ứng dụng hướng điều khiển Caacutec IC nagravey chiacutenh lagrave một hệ thống vi xử

lyacute hoagraven chỉnh bao gồm caacutec caacutec thagravenh phần của hệ vi xử lyacute CPU bộ nhớ caacutec mạch

giao tiếp điều khiển ngắt

MCS-51 lagrave họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set

Computer) coacute độ dagravei vagrave thời gian thực thi của caacutec lệnh khaacutec nhau Tập lệnh cung cấp

cho MCS-51 coacute caacutec lệnh dugraveng cho điều khiển xuất nhập taacutec động đến từng bit

212VI ĐIỀU KHIỂN AT89S52

AT89S52 lagrave vi điều khiển do Atmel sản xuất chế tạo theo cocircng nghệ CMOS

coacute caacutec đặc tiacutenh như sau

- 8 KB PEROM (Flash Programmable and Erasable Read Only Memory) coacute khả

năng tới 1000 chu kỳ ghi xoaacute

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

- 3 mức khoacutea bộ nhớ lập trigravenh

- 128 Byte RAM nội

- 4 Port xuất nhập IO 8 bit

- 2 bộ Timercounter 16 Bit

- 6 nguồn ngắt

- Giao tiếp nối tiếp điều khiển bằng phần cứng

- 64 KB vugraveng nhớ matilde ngoagravei

- 64 KB vugraveng nhớ dữ liệu ngoagravei

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 3

- Cho pheacutep xử lyacute bit

- 210 vị triacute nhớ coacute thể định vị bit

- 4 chu kỳ maacutey (4 μs đối với thạch anh 12MHz) cho hoạt động nhacircn hoặc chia

- Coacute caacutec chế độ nghỉ (Low-power Idle) vagrave chế độ nguồn giảm (Power-down)

Ngoải ra một số IC khaacutec của họ MCS-51 coacute thecircm bộ định thời thứ 3 vagrave 256

byte RAM nội

213 SƠ ĐỒ KHỐI AT89S52

Higravenh 21 ndash Sơ đồ khối của AT89S52

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 4

214 SƠ ĐỒ CHAcircN AT89S52

Higravenh 22 Sơ đồ chacircn AT89S52

bull Port 0

Port 0 lagrave port coacute 2 chức năng ở caacutec chacircn 32 ndash 39 của AT89C51

- Chức năng IO (xuất nhập) dugraveng cho caacutec thiết kế nhỏ Tuy nhiecircn khi dugraveng

chức năng nagravey thigrave Port 0 phải dugraveng thecircm caacutec điện trở keacuteo lecircn (pull-up) giaacute trị

của điện trở phụ thuộc vagraveo thagravenh phần kết nối với Port

Khi dugraveng lagravem ngotilde ra Port 0 coacute thể keacuteo được 8 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 0 phải được set mức logic 1 trước đoacute

- Chức năng địa chỉ dữ liệu đa hợp khi dugraveng caacutec thiết kế lớn đogravei hỏi phải sử

dụng bộ nhớ ngoagravei thigrave Port 0 vừa lagrave bus dữ liệu (8 bit) vừa lagrave bus địa chỉ (8 bit

thấp)

Ngoagravei ra khi lập trigravenh cho AT89C51 Port 0 cograven dugraveng để nhận matilde khi lập trigravenh

vagrave xuất magrave khi kiểm tra (quaacute trigravenh kiểm tra đogravei hỏi phải coacute điện trở keacuteo lecircn)

bull Port 1

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 7: mach dieu khien nhiet do

LIỆT KEcirc HIgraveNH

Higravenh 21 Sơ đồ khối của AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip3

Higravenh 22 Sơ đồ chacircn AT89S52helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip4

Higravenh 23 Sơ đồ chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip9

Higravenh 24 Cảm biến nhiệthelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụnghelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip13

Higravenh 26 Sơ đồ chacircn của LCDhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip14

Higravenh 27 Sơ đồ khối của HD44780 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip16

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCDhelliphelliphellip 18

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tựhelliphelliphelliphelliphelliphellip19

Higravenh 31 Sơ đồ nguyecircn lyacutehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 32 Sơ đồ mạch inhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip26

Higravenh 33 Khối cảm biếnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 34 Khối tạo điện aacutep chuẩnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip27

Higravenh 35 Sơ đồ nối chacircn ADChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip28

Higravenh36 Sơ đồ xứ lyacute trung tacircmhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

Higravenh 37 Khối hiển thịhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

Higravenh 38 Khối nguồnhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 1

CHƯƠNG 1 GIỚI THIỆU

11 Mục tiecircu của đề tagravei

Vận dụng được caacutec lyacute thuyết đatilde học vagraveo việc thiết kế một mạch thực tế Hệ thống lại caacutec kiến thức đatilde học Nacircng cao kỹ năng thiết kế vagrave thi cocircng mạch Giải thiacutech chức năng nhiệm vụ caacutec khối cũng như caacutec linh kiện trong mạch

12 Nội dung trigravenh bagravey

Caacutec lyacute thuyết liecircn quan về mạch nhiệt độ Giải thiacutech chức năng nhiệm vụ caacutec khối caacutec linh kiện trong mạch Tiacutenh toaacuten thiết kế vagrave thi cocircng mạch

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 2

CHƯƠNG 2 KIẾN THỨC BỔ TRỢ

21TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51

211GIỚI THIỆU

Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiecircn vagraveo năm 1980 lagrave caacutec IC

thiết kế cho caacutec ứng dụng hướng điều khiển Caacutec IC nagravey chiacutenh lagrave một hệ thống vi xử

lyacute hoagraven chỉnh bao gồm caacutec caacutec thagravenh phần của hệ vi xử lyacute CPU bộ nhớ caacutec mạch

giao tiếp điều khiển ngắt

MCS-51 lagrave họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set

Computer) coacute độ dagravei vagrave thời gian thực thi của caacutec lệnh khaacutec nhau Tập lệnh cung cấp

cho MCS-51 coacute caacutec lệnh dugraveng cho điều khiển xuất nhập taacutec động đến từng bit

212VI ĐIỀU KHIỂN AT89S52

AT89S52 lagrave vi điều khiển do Atmel sản xuất chế tạo theo cocircng nghệ CMOS

coacute caacutec đặc tiacutenh như sau

- 8 KB PEROM (Flash Programmable and Erasable Read Only Memory) coacute khả

năng tới 1000 chu kỳ ghi xoaacute

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

- 3 mức khoacutea bộ nhớ lập trigravenh

- 128 Byte RAM nội

- 4 Port xuất nhập IO 8 bit

- 2 bộ Timercounter 16 Bit

- 6 nguồn ngắt

- Giao tiếp nối tiếp điều khiển bằng phần cứng

- 64 KB vugraveng nhớ matilde ngoagravei

- 64 KB vugraveng nhớ dữ liệu ngoagravei

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 3

- Cho pheacutep xử lyacute bit

- 210 vị triacute nhớ coacute thể định vị bit

- 4 chu kỳ maacutey (4 μs đối với thạch anh 12MHz) cho hoạt động nhacircn hoặc chia

- Coacute caacutec chế độ nghỉ (Low-power Idle) vagrave chế độ nguồn giảm (Power-down)

Ngoải ra một số IC khaacutec của họ MCS-51 coacute thecircm bộ định thời thứ 3 vagrave 256

byte RAM nội

213 SƠ ĐỒ KHỐI AT89S52

Higravenh 21 ndash Sơ đồ khối của AT89S52

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 4

214 SƠ ĐỒ CHAcircN AT89S52

Higravenh 22 Sơ đồ chacircn AT89S52

bull Port 0

Port 0 lagrave port coacute 2 chức năng ở caacutec chacircn 32 ndash 39 của AT89C51

- Chức năng IO (xuất nhập) dugraveng cho caacutec thiết kế nhỏ Tuy nhiecircn khi dugraveng

chức năng nagravey thigrave Port 0 phải dugraveng thecircm caacutec điện trở keacuteo lecircn (pull-up) giaacute trị

của điện trở phụ thuộc vagraveo thagravenh phần kết nối với Port

Khi dugraveng lagravem ngotilde ra Port 0 coacute thể keacuteo được 8 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 0 phải được set mức logic 1 trước đoacute

- Chức năng địa chỉ dữ liệu đa hợp khi dugraveng caacutec thiết kế lớn đogravei hỏi phải sử

dụng bộ nhớ ngoagravei thigrave Port 0 vừa lagrave bus dữ liệu (8 bit) vừa lagrave bus địa chỉ (8 bit

thấp)

Ngoagravei ra khi lập trigravenh cho AT89C51 Port 0 cograven dugraveng để nhận matilde khi lập trigravenh

vagrave xuất magrave khi kiểm tra (quaacute trigravenh kiểm tra đogravei hỏi phải coacute điện trở keacuteo lecircn)

bull Port 1

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 8: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 1

CHƯƠNG 1 GIỚI THIỆU

11 Mục tiecircu của đề tagravei

Vận dụng được caacutec lyacute thuyết đatilde học vagraveo việc thiết kế một mạch thực tế Hệ thống lại caacutec kiến thức đatilde học Nacircng cao kỹ năng thiết kế vagrave thi cocircng mạch Giải thiacutech chức năng nhiệm vụ caacutec khối cũng như caacutec linh kiện trong mạch

12 Nội dung trigravenh bagravey

Caacutec lyacute thuyết liecircn quan về mạch nhiệt độ Giải thiacutech chức năng nhiệm vụ caacutec khối caacutec linh kiện trong mạch Tiacutenh toaacuten thiết kế vagrave thi cocircng mạch

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 2

CHƯƠNG 2 KIẾN THỨC BỔ TRỢ

21TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51

211GIỚI THIỆU

Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiecircn vagraveo năm 1980 lagrave caacutec IC

thiết kế cho caacutec ứng dụng hướng điều khiển Caacutec IC nagravey chiacutenh lagrave một hệ thống vi xử

lyacute hoagraven chỉnh bao gồm caacutec caacutec thagravenh phần của hệ vi xử lyacute CPU bộ nhớ caacutec mạch

giao tiếp điều khiển ngắt

MCS-51 lagrave họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set

Computer) coacute độ dagravei vagrave thời gian thực thi của caacutec lệnh khaacutec nhau Tập lệnh cung cấp

cho MCS-51 coacute caacutec lệnh dugraveng cho điều khiển xuất nhập taacutec động đến từng bit

212VI ĐIỀU KHIỂN AT89S52

AT89S52 lagrave vi điều khiển do Atmel sản xuất chế tạo theo cocircng nghệ CMOS

coacute caacutec đặc tiacutenh như sau

- 8 KB PEROM (Flash Programmable and Erasable Read Only Memory) coacute khả

năng tới 1000 chu kỳ ghi xoaacute

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

- 3 mức khoacutea bộ nhớ lập trigravenh

- 128 Byte RAM nội

- 4 Port xuất nhập IO 8 bit

- 2 bộ Timercounter 16 Bit

- 6 nguồn ngắt

- Giao tiếp nối tiếp điều khiển bằng phần cứng

- 64 KB vugraveng nhớ matilde ngoagravei

- 64 KB vugraveng nhớ dữ liệu ngoagravei

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 3

- Cho pheacutep xử lyacute bit

- 210 vị triacute nhớ coacute thể định vị bit

- 4 chu kỳ maacutey (4 μs đối với thạch anh 12MHz) cho hoạt động nhacircn hoặc chia

- Coacute caacutec chế độ nghỉ (Low-power Idle) vagrave chế độ nguồn giảm (Power-down)

Ngoải ra một số IC khaacutec của họ MCS-51 coacute thecircm bộ định thời thứ 3 vagrave 256

byte RAM nội

213 SƠ ĐỒ KHỐI AT89S52

Higravenh 21 ndash Sơ đồ khối của AT89S52

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 4

214 SƠ ĐỒ CHAcircN AT89S52

Higravenh 22 Sơ đồ chacircn AT89S52

bull Port 0

Port 0 lagrave port coacute 2 chức năng ở caacutec chacircn 32 ndash 39 của AT89C51

- Chức năng IO (xuất nhập) dugraveng cho caacutec thiết kế nhỏ Tuy nhiecircn khi dugraveng

chức năng nagravey thigrave Port 0 phải dugraveng thecircm caacutec điện trở keacuteo lecircn (pull-up) giaacute trị

của điện trở phụ thuộc vagraveo thagravenh phần kết nối với Port

Khi dugraveng lagravem ngotilde ra Port 0 coacute thể keacuteo được 8 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 0 phải được set mức logic 1 trước đoacute

- Chức năng địa chỉ dữ liệu đa hợp khi dugraveng caacutec thiết kế lớn đogravei hỏi phải sử

dụng bộ nhớ ngoagravei thigrave Port 0 vừa lagrave bus dữ liệu (8 bit) vừa lagrave bus địa chỉ (8 bit

thấp)

Ngoagravei ra khi lập trigravenh cho AT89C51 Port 0 cograven dugraveng để nhận matilde khi lập trigravenh

vagrave xuất magrave khi kiểm tra (quaacute trigravenh kiểm tra đogravei hỏi phải coacute điện trở keacuteo lecircn)

bull Port 1

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 9: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 2

CHƯƠNG 2 KIẾN THỨC BỔ TRỢ

21TỔNG QUAN VỀ VI ĐIỀU KHIỂN MCS-51

211GIỚI THIỆU

Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiecircn vagraveo năm 1980 lagrave caacutec IC

thiết kế cho caacutec ứng dụng hướng điều khiển Caacutec IC nagravey chiacutenh lagrave một hệ thống vi xử

lyacute hoagraven chỉnh bao gồm caacutec caacutec thagravenh phần của hệ vi xử lyacute CPU bộ nhớ caacutec mạch

giao tiếp điều khiển ngắt

MCS-51 lagrave họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set

Computer) coacute độ dagravei vagrave thời gian thực thi của caacutec lệnh khaacutec nhau Tập lệnh cung cấp

cho MCS-51 coacute caacutec lệnh dugraveng cho điều khiển xuất nhập taacutec động đến từng bit

212VI ĐIỀU KHIỂN AT89S52

AT89S52 lagrave vi điều khiển do Atmel sản xuất chế tạo theo cocircng nghệ CMOS

coacute caacutec đặc tiacutenh như sau

- 8 KB PEROM (Flash Programmable and Erasable Read Only Memory) coacute khả

năng tới 1000 chu kỳ ghi xoaacute

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

- 3 mức khoacutea bộ nhớ lập trigravenh

- 128 Byte RAM nội

- 4 Port xuất nhập IO 8 bit

- 2 bộ Timercounter 16 Bit

- 6 nguồn ngắt

- Giao tiếp nối tiếp điều khiển bằng phần cứng

- 64 KB vugraveng nhớ matilde ngoagravei

- 64 KB vugraveng nhớ dữ liệu ngoagravei

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 3

- Cho pheacutep xử lyacute bit

- 210 vị triacute nhớ coacute thể định vị bit

- 4 chu kỳ maacutey (4 μs đối với thạch anh 12MHz) cho hoạt động nhacircn hoặc chia

- Coacute caacutec chế độ nghỉ (Low-power Idle) vagrave chế độ nguồn giảm (Power-down)

Ngoải ra một số IC khaacutec của họ MCS-51 coacute thecircm bộ định thời thứ 3 vagrave 256

byte RAM nội

213 SƠ ĐỒ KHỐI AT89S52

Higravenh 21 ndash Sơ đồ khối của AT89S52

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 4

214 SƠ ĐỒ CHAcircN AT89S52

Higravenh 22 Sơ đồ chacircn AT89S52

bull Port 0

Port 0 lagrave port coacute 2 chức năng ở caacutec chacircn 32 ndash 39 của AT89C51

- Chức năng IO (xuất nhập) dugraveng cho caacutec thiết kế nhỏ Tuy nhiecircn khi dugraveng

chức năng nagravey thigrave Port 0 phải dugraveng thecircm caacutec điện trở keacuteo lecircn (pull-up) giaacute trị

của điện trở phụ thuộc vagraveo thagravenh phần kết nối với Port

Khi dugraveng lagravem ngotilde ra Port 0 coacute thể keacuteo được 8 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 0 phải được set mức logic 1 trước đoacute

- Chức năng địa chỉ dữ liệu đa hợp khi dugraveng caacutec thiết kế lớn đogravei hỏi phải sử

dụng bộ nhớ ngoagravei thigrave Port 0 vừa lagrave bus dữ liệu (8 bit) vừa lagrave bus địa chỉ (8 bit

thấp)

Ngoagravei ra khi lập trigravenh cho AT89C51 Port 0 cograven dugraveng để nhận matilde khi lập trigravenh

vagrave xuất magrave khi kiểm tra (quaacute trigravenh kiểm tra đogravei hỏi phải coacute điện trở keacuteo lecircn)

bull Port 1

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 10: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 3

- Cho pheacutep xử lyacute bit

- 210 vị triacute nhớ coacute thể định vị bit

- 4 chu kỳ maacutey (4 μs đối với thạch anh 12MHz) cho hoạt động nhacircn hoặc chia

- Coacute caacutec chế độ nghỉ (Low-power Idle) vagrave chế độ nguồn giảm (Power-down)

Ngoải ra một số IC khaacutec của họ MCS-51 coacute thecircm bộ định thời thứ 3 vagrave 256

byte RAM nội

213 SƠ ĐỒ KHỐI AT89S52

Higravenh 21 ndash Sơ đồ khối của AT89S52

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 4

214 SƠ ĐỒ CHAcircN AT89S52

Higravenh 22 Sơ đồ chacircn AT89S52

bull Port 0

Port 0 lagrave port coacute 2 chức năng ở caacutec chacircn 32 ndash 39 của AT89C51

- Chức năng IO (xuất nhập) dugraveng cho caacutec thiết kế nhỏ Tuy nhiecircn khi dugraveng

chức năng nagravey thigrave Port 0 phải dugraveng thecircm caacutec điện trở keacuteo lecircn (pull-up) giaacute trị

của điện trở phụ thuộc vagraveo thagravenh phần kết nối với Port

Khi dugraveng lagravem ngotilde ra Port 0 coacute thể keacuteo được 8 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 0 phải được set mức logic 1 trước đoacute

- Chức năng địa chỉ dữ liệu đa hợp khi dugraveng caacutec thiết kế lớn đogravei hỏi phải sử

dụng bộ nhớ ngoagravei thigrave Port 0 vừa lagrave bus dữ liệu (8 bit) vừa lagrave bus địa chỉ (8 bit

thấp)

Ngoagravei ra khi lập trigravenh cho AT89C51 Port 0 cograven dugraveng để nhận matilde khi lập trigravenh

vagrave xuất magrave khi kiểm tra (quaacute trigravenh kiểm tra đogravei hỏi phải coacute điện trở keacuteo lecircn)

bull Port 1

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 11: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 4

214 SƠ ĐỒ CHAcircN AT89S52

Higravenh 22 Sơ đồ chacircn AT89S52

bull Port 0

Port 0 lagrave port coacute 2 chức năng ở caacutec chacircn 32 ndash 39 của AT89C51

- Chức năng IO (xuất nhập) dugraveng cho caacutec thiết kế nhỏ Tuy nhiecircn khi dugraveng

chức năng nagravey thigrave Port 0 phải dugraveng thecircm caacutec điện trở keacuteo lecircn (pull-up) giaacute trị

của điện trở phụ thuộc vagraveo thagravenh phần kết nối với Port

Khi dugraveng lagravem ngotilde ra Port 0 coacute thể keacuteo được 8 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 0 phải được set mức logic 1 trước đoacute

- Chức năng địa chỉ dữ liệu đa hợp khi dugraveng caacutec thiết kế lớn đogravei hỏi phải sử

dụng bộ nhớ ngoagravei thigrave Port 0 vừa lagrave bus dữ liệu (8 bit) vừa lagrave bus địa chỉ (8 bit

thấp)

Ngoagravei ra khi lập trigravenh cho AT89C51 Port 0 cograven dugraveng để nhận matilde khi lập trigravenh

vagrave xuất magrave khi kiểm tra (quaacute trigravenh kiểm tra đogravei hỏi phải coacute điện trở keacuteo lecircn)

bull Port 1

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 12: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 5

Port1 (chacircn 1 ndash 8) chỉ coacute một chức năng lagrave IO khocircng dugraveng cho mục điacutech khaacutec

(chỉ trong 803280528952 thigrave dugraveng thecircm P10 vagrave P11 cho bộ định thời thứ 3) Tại

Port 1 đatilde coacute điện trở keacuteo lecircn necircn khocircng cần thecircm điện trở ngoagravei

Port 1 coacute khả năng keacuteo được 4 ngotilde TTL vagrave cograven dugraveng lagravem 8 bit địa chỉ thấp

trong quaacute trigravenh lập trigravenh hay kiểm tra

Khi dugraveng lagravem ngotilde vagraveo Port 1 phải được set mức logic 1 trước đoacute

bull Port 2

Port 2 (chacircn 21 ndash 28) lagrave port coacute 2 chức năng

- Chức năng IO (xuất nhập) coacute khả năng keacuteo được 4 ngotilde TTL

- Chức năng địa chỉ dugraveng lagravem 8 bit địa chỉ cao khi cần bộ nhớ ngoagravei coacute địa chỉ

16 bit Khi đoacute Port 2 khocircng được dugraveng cho mục điacutech IO

Khi dugraveng lagravem ngotilde vagraveo Port 2 phải được set mức logic 1 trước đoacute

Khi lập trigravenh Port 2 dugraveng lagravem 8 bit địa chỉ cao hay một số tiacuten hiệu điều khiển

bull Port 3

Port 3 (chacircn 10 ndash 17) lagrave port coacute 2 chức năng

- Chức năng IO coacute khả năng keacuteo được 4 ngotilde TTL

Khi dugraveng lagravem ngotilde vagraveo Port 3 phải được set mức logic 1 trước đoacute

- Chức năng khaacutec mocirc tả như bảng 11Bảng 21 Chức năng caacutec chacircn của Port 3

Bit Tecircn Chức năng

P30 RxD Ngotilde vagraveo port nối tiếp

P31 TxD Ngotilde ra port nối tiếp

P32 INT0 Ngắt ngoagravei 0

P33 INT1 Ngắt ngoagravei 1

P34 T0 Ngotilde vagraveo của bộ định thời 0

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 13: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 6

P35 T1 Ngotilde vagraveo của bộ định thời 1

P36 WR Tiacuten hiệu điều khiển ghi dữ liệu lecircn bộ nhớ ngoagravei

P37 RD Tiacuten hiệu điều khiển đọc từ bộ nhớ dữ liệu ngoagravei

bull NGUỒN

Chacircn 40 VCC = 5V plusmn 20

Chacircn 20 GND

bull PSEN (Program Store Enable)

PSEN (chacircn 29) cho pheacutep đọc bộ nhớ chương trigravenh mở rộng đối với caacutec ứng

dụng sử dụng ROM ngoagravei thường được nối đến chacircn OC (Output Control) của

ROM để đọc caacutec byte matilde lệnh PSEN sẽ ở mức logic 0 trong thời gian AT89C51 lấy

lệnhTrong quaacute trigravenh nagravey PSEN sẽ tiacutech cực 2 lần trong 1 chu kỳ maacutey

Matilde lệnh của chương trigravenh được đọc từ ROM thocircng qua bus dữ liệu (Port0) vagrave

bus địa chỉ (Port0 + Port2)

Khi 8951 thi hagravenh chương trigravenh trong ROM nội PSEN sẽ ở mức logic 1

bull ALEPROG (Address Latch Enable Program)

ALEPROG (chacircn 30) cho pheacutep taacutech caacutec đường địa chỉ vagrave dữ liệu tại Port 0

khi truy xuất bộ nhớ ngoagravei ALE thường nối với chacircn Clock của IC chốt (74373

74573)

Caacutec xung tiacuten hiệu ALE coacute tốc độ bằng 16 lần tần số dao động trecircn chip vagrave coacute

thể được dugraveng lagravem tiacuten hiệu clock cho caacutec phần khaacutec của hệ thống Xung nagravey coacute thể

cấm bằng caacutech set bit 0 của SFR tại địa chỉ 8Eh lecircn 1 Khi đoacute ALE chỉ coacute taacutec dụng

khi dugraveng lệnh MOVX hay MOVC Ngoagravei ra chacircn nagravey cograven được dugraveng lagravem ngotilde vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 14: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 7

xung lập trigravenh cho ROM nội (PROG)

bull EA VPP (External Access)

EA (chacircn 31) dugraveng để cho pheacutep thực thi chương trigravenh từ ROM ngoagravei Khi nối

chacircn 31 với Vcc AT89S52 sẽ thực thi chương trigravenh từ ROM nội (tối đa 8KB) ngược

lại thigrave thực thi từ ROM ngoagravei (tối đa 64KB)

Ngoagravei ra chacircn EA được lấy lagravem chacircn cấp nguồn 12V khi lập trigravenh cho ROM

bull RST (Reset)

RST (chacircn 9) cho pheacutep reset AT89C51 khi ngotilde vagraveo tiacuten hiệu đưa lecircn mức 1

trong iacutet nhất lagrave 2 chu kỳ maacutey

bull X1X2

Ngotilde vagraveo vagrave ngotilde ra bộ dao động khi sử dụng coacute thể chỉ cần kết nối thecircm thạch

anh vagrave caacutec tụ như higravenh vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho

AT89C51 lagrave 12Mhz

215 ĐỊNH KỲ CHU KỲ MAacuteY

Một chu kỳ maacutey bao gồm 6 trạng thaacutei (12 xung clock) Một trạng thaacutei bao gồm

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 15: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 8

2 phần ứng với 12 xung clock Phase 1 vagrave Phase 2 Như vậy một chu kỳ maacutey bao

gồm 12 xung clock được biểu diễn từ S1P1 đến S6P2 (State 1 Phase 1 1048774 State 6

Phase 2) Chu kỳ lấy lệnh vagrave thực thi lệnh mocirc tả như higravenh 14

Tiacuten hiệu chốt địa chỉ ALE tiacutech cực 2 lần trong một chu kỳ maacutey (trong khoảng

thời gian S1P2 đến S2P1 vagrave từ S4P2 đến S5P1) Từ đoacute tần số xung tại chacircn ALE bằng

16 tần số thạch anh

1048774 Đối với caacutec lệnh thực thi trong 1 chu kỳ

- Lệnh 1 byte được thực thi tại thời điểm S1P2 sau khi matilde lệnh được chốt vagraveo

thanh ghi lệnh tại S1P1

- Lệnh 2 byte byte thứ 2 được đọc tại thời điểm S4 vagrave sẽ được thực thi tại thời

điểm S4

1048774 Đối với caacutec lệnh thực thi trong 2 chu kỳ

Quaacute trigravenh lấy lệnh thực hiện tại thời điểm S1 của chu kỳ đầu tiecircn (byte magrave lệnh

216TỔ CHỨC BỘ NHỚ

Bộ nhớ của họ MCS-51 coacute thể chia thagravenh 2 phần bộ nhớ trong vagrave bộ nhớ

ngoagravei Bộ nhớ trong bao gồm 4 KB ROM vagrave 128 byte RAM (256 byte trong 8052)

Caacutec byte RAM coacute địa chỉ từ 00h ndash 7Fh vagrave caacutec thanh ghi chức năng đặc biệt (SFR) coacute

địa chỉ từ 80h ndash 0FFh coacute thể truy xuất trực tiếp Đối với 8052 128 byte RAM cao (địa

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 16: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 9

chỉ từ 80h ndash 0FFh) khocircng thể truy xuất trực tiếp magrave chỉ coacute thể truy xuất giaacuten tiếp (xem

thecircm trong phần tập lệnh)

Bộ nhớ ngoagravei bao gồm bộ nhớ chương trigravenh (điều khiển đọc bằng tiacuten hiệu

PSEN) vagrave bộ nhớ dữ liệu (điều khiển bằng tiacuten hiệu RD hay WR để cho pheacutep đọc

hay ghi dữ liệu) Do số đường địa chỉ của MCS-51 lagrave 16 bit (Port 0 chứa 8 bit thấp vagrave

Port 2 chứa 8 bit cao) necircn bộ nhớ ngoagravei coacute thể giải matilde tối đa lagrave 64KB

22 ADC 0809

Bộ ADC 0809 lagrave một thiết bị CMOS tiacutech hợp với một bộ chuyển đổi từ tương tự sang số 8 bit bộ chọn 8 kecircnh vagrave một bocirc logic điều khiển tương thiacutech Bộ chuyển đổi AD 8 bit nagravey dugraveng phương phaacutep chuyển đổi xấp xỉ tiếp Bộ chọn kecircnh coacute thể truy xuất bất kềnh nagraveo trong caacutec ngotilde vagraveo tương tự một caacutenh độc lậpThiết bị nagravey loại trừ khả năng cần thiết điều chỉnh điểm 0 becircn ngoagravei vagrave khả năng điều chỉnh tỉ số lagravem trograven ADC 0809 dễ dagraveng giao tiếp với caacutec bộ vi xử lyacute Sơ đồ chacircn ADC 0809

Higravenh 23-Sơ đồ chacircn ADC Yacute nghĩa caacutec chacircn IN0 đến IN7 8 ngotilde vagraveo tương tự A B C giải matilde chọn một trong 8 ngotilde vagraveo Z-1 đến Z-8 ngotilde ra song song 8 bit ALE cho pheacutep chốt địa chỉ START xung bắt đầu chuyển đổi CLK xung đồng hồ

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 17: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 10

REF (+) điện thế tham chiếu (+)

REF (-) điện thế tham chiếu (-)

VCC nguồn cung cấp

Caacutec đặc điểm củaADC 0809 Độ phacircn giải 8 bit Tổng sai số chưa chỉnh định +- frac12 LSB +- 1 LSB Thời gian chuyển đổi 100us ở tần số 640 kHz Nguồn cung cấp + 5V Điện aacutep ngotilde vagraveo 0 ndash 5V Tần số xung clock 10kHz ndash 1280 kHz Nhiệt độ hoạt động - 40oC đến 85oC Dễ dagraveng giao tiếp với vi xử lyacute hoặc dugraveng riecircng Khocircng cần điều chỉnh zero hoặc đầy thang

Nguyecircn lyacute hoạt độngADC 0809 coacute 8 ngotilde vagraveo tương tự 8 ngotilde ra 8 bit coacute thể chọn 1 trong 8 ngotilde vagraveo tương tự để chuyển đổi sang số 8 bitCaacutec ngotilde vagraveo được chọn bằng caacutech giải matilde Chọn 1 trong 8 ngotilde vagraveo tương tự được thực hiện nhờ 3 chacircn ADDA ADDB ADDC như bảng trạng thaacutei sau

Sau khi kiacutech xung start thigrave bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start ngotilde ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tiacutenh từ cạnh xuống của xung start) Luacutec nagravey bit cơ trọng số lớn nhất (MSB) được đặt lecircn mức 1 tất cả caacutec bit cograven lại ở mức 0 đồng thời tạo ra điện thế coacute giaacute trị Vref2 điện thế nagravey được so saacutenh với điện thế vagraveo in+ Nếu Vin gt Vref2 thigrave bit MSB vẫn ở mức 1+ Nếu Vin lt Vref2 thigrave bit MSB vẫn ở mức 0Tương tự như vậy bit kế tiếp MSB được đặt lecircn 1 vagrave tạo ra điện thế coacute giaacute trị Vref4 vagrave

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 18: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 11

cũng so saacutenh với điện aacutep ngotilde vagraveo Vin Quaacute trigravenh cứ tiếp tục như vậy cho đến khi xaacutec định được bit cuối cugraveng Khi đoacute chacircn EOC lecircn mức 1 baacuteo cho biết đatilde kết thuacutec chuyển đổiTrong suốt quaacute trigravenh chuyển đổi chacircn OE được đặt ở mức 1 muốn đọc dữ liệu ra chacircn OE xuống mức 0Trong suốt quaacute trigravenh chuyển đổi nếu coacute 1 xung start taacutec động thigrave ADC sẽ ngưng chuyển đổiMatilde ra N cho một ngotilde vagraveo tugravey yacute lagrave một số nguyecircn

Trong đoacute Vin điện aacutep ngotilde vagraveo hệ so saacutenhVref(+) điện aacutep tại chacircn REF(+)Vref(-) điện aacutep tại chacircn REF(-)

Vref(+) = Vcc = 5V thigrave đầy thang lagrave 256- Giaacute trị bước nhỏ nhất1 LSB =5(28 -1) = 00196 VbyteVậy với 256 bước Vin = 5VAacutep vagraveo lớn nhất của ADC 0809 lagrave 5V

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 19: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 12

bull Biểu đồ thời gian của ADC 0809

được dugraveng để thực hiện caacutec điện aacutep đầu ra khaacutec 0 - +5V

23 LM35

Higravenh 24 Cảm biến nhiệt

Để đo nhiệt độ được chiacutenh xaacutec tất nhiecircn cần coacute một đầu dograve thiacutech hợp Đầu dograve lagrave một cảm biến nhiệt độ coacute nhiệm vụ vận chuyển từ nhiệt độ qua tiacuten hiệu điện Coacute rất loại cảm biến nhưng dựa vagraveo lyacute thuyết vagrave thực tế của mạch cần thiết kế ta dugraveng phương phaacutep đo bằng IC

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 20: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 13

cảm biến nhiệt độ Caacutec IC cảm biến nhiệt độ coacute độ chiacutenh xaacutec cao dễ tigravem giaacute thanh rẻ Một trong số đoacute lagrave IC LM35 lagrave loại thocircng dụng trecircn thị trường hiện nay đồng thời noacute coacute những đặc tiacutenh lagravem phugrave hợp với thiết kế chi tiết của mạch

Một số tiacutenh chất cơ bản của LM35

- LM35 coacute độ biến thiecircn theo nhiệt độ10mV1oC- 0V tương ứng 0oC- Độ chiacutenh xaacutec cao tiacutenh năng cảm biến rất nhạy ở nhiệt độ 25oC noacute coacute sai số khocircng quaacute

05oC Với tầm đo từ -55oC đến 150oC tiacuten hiệu ra tuyến tiacutenh liecircn tục với những thay đổi của tiacuten hiệu ngotilde vagraveo

- Thocircng số kỹ thuậtTiecircu taacuten cocircng suất thấp

Điện aacutep lagravem việc từ 4V-30V

Đatilde được tiacutech hợp bộ định dograveng lagravem việc becircn trong

24 LCD

Giới thiệu Ngagravey nay thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều caacutec ứng dụng của VĐK LCD coacute rất nhiều ưu điểm so với caacutec dạng hiển thị khaacutec Noacute coacute khả năng hiển thị kiacute tự đa dạng trực quan (chữ số vagrave kiacute tự đồ họa) dễ dagraveng đưa vagraveo mạch ứng dụng theo nhiều giao thức giao tiếp khaacutec nhau tốn rất iacutet tagravei nguyecircn hệ thống vagrave giaacute thagravenh rẽ hellip Tổng Quaacutet Về LCD HD44780 241 Higravenh daacuteng vagrave kiacutech thước Coacute rất nhiều loại LCD với nhiều higravenh daacuteng vagrave kiacutech thước khaacutec nhau trecircn higravenh 1 lagrave loại LCD thocircng dụng

Higravenh 25 Higravenh daacuteng của loại LCD thocircng dụng

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 21: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 14

Khi sản xuất LCD nhagrave sản xuất đatilde tiacutech hợp chiacutep điều khiển (HD44780) becircn trong lớp vỏ vagrave chỉ đưa caacutec chacircn giao tiếp cần thiết Caacutec chacircn nagravey được đaacutenh số thứ tự vagrave đặt tecircn như higravenh 2

Higravenh 26 Sơ đồ chacircn của LCD

242 Chức năng caacutec chacircn

Bảng 24 Chức năng caacutec chacircn của LCD

Chacircn

Kyacute hiệu

Mocirc tả

1 Vss Chacircn nối đất cho LCD khi thiết kế mạch ta nối chacircn nagravey với GND của mạch điều khiển

2 VDD Chacircn cấp nguồn cho LCD khi thiết kế mạch ta nối chacircn nagravey với VCC=5V của mạch điều khiển

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

4 RS Chacircn chọn thanh ghi (Register select) Nối chacircn RS với logic ldquo0rdquo (GND) hoặc logic ldquo1rdquo (VCC) để chọn thanh ghi

+ Logic ldquo0rdquo Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ldquoghirdquo - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ ldquođọcrdquo - read)

+ Logic ldquo1rdquo Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR becircn trong LCD

5 RW Chacircn chọn chế độ đọcghi (ReadWrite) Nối chacircn RW với logic ldquo0rdquo để LCD hoạt động ở chế độ ghi hoặc nối với logic ldquo1rdquo để

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 22: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 15

LCD ở chế độ đọc

6 E Chacircn cho pheacutep (Enable) Sau khi caacutec tiacuten hiệu được đặt lecircn bus DB0-DB7 caacutec lệnh chỉ được chấp nhận khi coacute 1 xung cho pheacutep của chacircn E

+ Ở chế độ ghi Dữ liệu ở bus sẽ được LCD chuyển vagraveo(chấp nhận) thanh ghi becircn trong noacute khi phaacutet hiện một xung (high-to-low transition) của tiacuten hiệu chacircn E

+ Ở chế độ đọc Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phaacutet hiện cạnh lecircn (low-to-high transition) ở chacircn E vagrave được LCD giữ ở bus đến khi nagraveo chacircn E xuống mức thấp

7 - 14

DB0 - DB7

Taacutem đường của bus dữ liệu dugraveng để trao đổi thocircng tin với MPU Coacute 2 chế độ sử dụng 8 đường bus nagravey

+ Chế độ 8 bit Dữ liệu được truyền trecircn cả 8 đường với bit MSB lagrave bit DB7

+ Chế độ 4 bit Dữ liệu được truyền trecircn 4 đường từ DB4 tới DB7 bit MSB lagrave DB7

15 - Nguồn dương cho đegraven nền

16 - GND cho đegraven nền

Ghi chuacute Ở chế độ ldquođọcrdquo nghĩa lagrave MPU sẽ đọc thocircng tin từ LCD thocircng qua caacutec chacircn DBx Cograven khi ở chế độ ldquoghirdquo nghĩa lagrave MPU xuất thocircng tin điều khiển cho LCD thocircng qua caacutec chacircn DBx 243 Sơ đồ khối của HD44780 Để hiểu rotilde hơn chức năng caacutec chacircn vagrave hoạt động của chuacuteng ta tigravem hiểu sơ qua chiacutep HD44780 thocircng qua caacutec khối cơ bản của noacute

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 23: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 16

Higravenh 27 Sơ đồ khối của HD44780

2431 Caacutec thanh ghi

Chiacutep HD44780 coacute 2 thanh ghi 8 bit quan trọng Thanh ghi lệnh IR (Instructor Register) vagrave thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR Để điều khiển LCD người dugraveng phải ldquora lệnhrdquo thocircng qua taacutem đường bus DB0-DB7 Mỗi lệnh được nhagrave sản xuất LCD đaacutenh địa chỉ rotilde ragraveng Người dugraveng chỉ việc cung cấp địa chỉ lệnh bằng caacutech nạp vagraveo thanh ghi IR Nghĩa lagrave khi ta nạp vagraveo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 24: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 17

thanh ghi IR một chuỗi 8 bit chiacutep HD44780 sẽ tra bảng matilde lệnh tại địa chỉ magrave IR cung cấp vagrave thực hiện lệnh đoacute

- Thanh ghi DR Thanh ghi DR dugraveng để chứa dữ liệu 8 bit để ghi vagraveo vugraveng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dugraveng để chứa dữ liệu từ 2 vugraveng RAM nagravey gởi ra cho MPU (ở chế độ đọc) Nghĩa lagrave khi MPU ghi thocircng tin vagraveo DR mạch nội becircn trong chiacutep sẽ tự động ghi thocircng tin nagravey vagraveo DDRAM hoặc CGRAM Hoặc khi thocircng tin về địa chỉ được ghi vagraveo IR dữ liệu ở địa chỉ nagravey trong vugraveng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU =gt Bằng caacutech điều khiển chacircn RS vagrave RW chuacuteng ta coacute thể chuyển qua lại giữ 2 thanh ghi nagravey khi giao tiếp với MPU Bảng sau đacircy toacutem tắt lại caacutec thiết lập đối với hai chacircn RS vagrave RW theo mục điacutech giao tiếp

Bảng 25 Chức năng chacircn RS vagrave RW theo mục điacutech sử dụng

RS RW Chức năng

0 0 Ghi vagraveo thanh ghi IR để ra lệnh cho LCD

0 1 Đọc cờ bận ở DB7 vagrave giaacute trị của bộ đếm địa chỉ ở DB0-DB6

1 0 Ghi vagraveo thanh ghi DR

1 1 Đọc dữ liệu từ DR

2432 Cờ baacuteo bận BF (Busy Flag)

Khi thực hiện caacutec hoạt động becircn trong chiacutep mạch nội becircn trong cần một khoảng thời gian để hoagraven tất Khi

đang thực thi caacutec hoạt động becircn trong chip như thế LCD bỏ qua mọi giao tiếp với becircn ngoagravei vagrave bật cờ BF (thocircng qua chacircn DB7 khi coacute thiết lập RS=0 RW=1) lecircn để baacuteo cho MPU biết noacute đang ldquobậnrdquo Dĩ nhiecircn khi xong việc noacute sẽ đặt cờ BF lại mức 0

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

Như trong sơ đồ khối thanh ghi IR khocircng trực tiếp kết nối với vugraveng RAM (DDRAM vagrave CGRAM) magrave thocircng qua bộ đếm địa chỉ AC Bộ đếm nagravey lại nối với 2 vugraveng RAM theo kiểu rẽ nhaacutenh Khi một địa chỉ lệnh được nạp vagraveo thanh ghi IR thocircng tin được nối

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 25: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 18

trực tiếp cho 2 vugraveng RAM nhưng việc chọn lựa vugraveng RAM tương taacutec đatilde được bao hagravem trong matilde lệnh

Sau khi ghi vagraveo (đọc từ) RAM bộ đếm AC tự động tăng lecircn (giảm đi) 1 đơn vị vagrave nội dung của AC được xuất ra cho MPU thocircng qua DB0-DB6 khi coacute thiết lập RS=0 vagrave RW=1 (xem bảng toacutem tắt RS - RW)

2434 Vugraveng RAM hiển thị DDRAM (Display Data RAM)

Đacircy lagrave vugraveng RAM dugraveng để hiển thị nghĩa lagrave ứng với một địa chỉ của RAM lagrave một ocirc kiacute tự trecircn magraven higravenh vagrave khi bạn ghi vagraveo vugraveng RAM nagravey một matilde 8 bit LCD sẽ hiển thị tại vị triacute tương ứng trecircn magraven higravenh một kiacute tự coacute matilde 8 bit magrave bạn đatilde cung cấp Higravenh sau đacircy sẽ trigravenh bagravey rotilde hơn mối liecircn hệ nagravey

Higravenh 28 Mối liecircn hệ giữa địa chỉ của DDRAM vagrave vị triacute hiển thị của LCD

Vugraveng RAM nagravey coacute 80x8 bit nhớ nghĩa lagrave chứa được 80 kiacute tự matilde 8 bit Những vugraveng RAM cograven lại khocircng dugraveng cho hiển thị coacute thể dugraveng như vugraveng RAM đa mục điacutech Lưu yacute lagrave để truy cập vagraveo DDRAM ta phải cung cấp địa chỉ cho AC theo matilde HEX

2435 Vugraveng ROM chứa kiacute tự CGROM Character Generator ROM

Vugraveng ROM nagravey dugraveng để chứa caacutec mẫu kiacute tự loại 5x8 hoặc 5x10 điểm ảnhkiacute tự vagrave định địa chỉ bằng 8 bit Tuy nhiecircn noacute chỉ coacute 208 mẫu kiacute tự 5x8 vagrave 32 mẫu kiacute tự kiểu 5x10 (tổng cộng lagrave 240 thay vigrave 2^8 = 256 mẫu kiacute tự) Người dugraveng khocircng thể thay đổi vugraveng ROM nagravey

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 26: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 19

Higravenh 29 Mối liecircn hệ giữa địa chỉ của ROM vagrave dữ liệu tạo mẫu kiacute tự

Như vậy để coacute thể ghi vagraveo vị triacute thứ x trecircn magraven higravenh một kiacute tự y nagraveo đoacute người dugraveng phải ghi vagraveo vugraveng DDRAM tại địa chỉ x (xem bảng mối liecircn hệ giữa DDRAM vagrave vị triacute hiển thị) một chuỗi matilde kiacute tự 8 bit trecircn CGROM Chuacute yacute lagrave trong bảng matilde kiacute tự trong CGROM ở higravenh becircn dưới coacute matilde ROM A00

2436 Vugraveng RAM chứa kiacute tự đồ họa CGRAM (Character Generator RAM)

Như trecircn bảng matilde kiacute tự nhagrave sản xuất dagravenh vugraveng coacute địa chỉ byte cao lagrave 0000 để người dugraveng coacute thể tạo caacutec mẫu kiacute tự đồ họa riecircng Tuy nhiecircn dung lượng vugraveng nagravey rất hạn chế Ta chỉ coacute thể tạo 8 kiacute tự loại 5x8 điểm ảnh hoặc 4 kiacute tự loại 5x10 điểm ảnh

244 Tập lệnh của LCD

Trước khi tigravem hiểu tập lệnh của LCD sau đacircy lagrave một vagravei chuacute yacute khi giao tiếp với LCD

Tuy trong sơ đồ khối của LCD coacute nhiều khối khaacutec nhau nhưng khi lập trigravenh điều khiển LCD ta chỉ coacute thể taacutec động trực tiếp được vagraveo 2 thanh ghi DR vagrave IR thocircng qua caacutec chacircn DBx vagrave ta phải thiết lập chacircn RS RW phugrave hợp để chuyển qua lại giữ 2 thanh ghi nagravey (xem bảng 2)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 27: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 20

Với mỗi lệnh LCD cần một khoảng thời gian để hoagraven tất thời gian nagravey coacute thể khaacute lacircu đối với tốc độ của MPU necircn ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hagravenh mới coacute 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 coacute lệnh ghi vagraveo RAM (Điều nagravey giuacutep chương trigravenh gọn hơn)

Caacutec lệnh của LCD coacute thể chia thagravenh 4 nhoacutem như sau

bull Caacutec lệnh về kiểu hiển thị VD Kiểu hiển thị (1 hagraveng 2 hagraveng) chiều dagravei dữ liệu (8 bit 4 bit) hellip

bull Chỉ định địa chỉ RAM nội

bull Nhoacutem lệnh truyền dữ liệu trong RAM nội

bull Caacutec lệnh cograven lại

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

Tecircn lệnh

Hoạt động

Clear

Display

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 0 1

Lệnh Clear Display (xoacutea hiển thị) sẽ ghi một khoảng trống-blank (matilde hiện kiacute tự 20H) vagraveo tất cả ocirc nhớ trong DDRAM sau đoacute trả bộ đếm địa AC=0 trả lại kiểu hiển thị gốc nếu noacute bị thay đổi Nghĩa lagrave Tắt hiển thị con trỏ dời về goacutec traacutei (hagraveng đầu tiecircn) chế độ tăng AC

Return

home

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 0 1

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

Entry

mode set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 0 0 1 [ID] [S]

ID Tăng (ID=1) hoặc giảm (ID=0) bộ đếm địa chỉ hiển thị AC 1 đơn

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 28: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 21

vị mỗi khi coacute hagravenh động ghi hoặc đọc vugraveng DDRAM Vị triacute con trỏ cũng di chuyển theo sự tăng giảm nagravey

S Khi S=1 toagraven bộ nội dung hiển thị bị dịch sang phải (ID=0) hoặc sang traacutei (ID=1) mỗi khi coacute hagravenh động ghi vugraveng DDRAM Khi S=0 khocircng dịch nội dung hiển thị Nội dung hiển thị khocircng dịch khi đọc DDRAM hoặc đọcghi vugraveng CGRAM

Display

onoff

control

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

D Hiển thị magraven higravenh khi D=1 vagrave ngược lại Khi tắt hiển thị nội dung DDRAM khocircng thay đổi

C Hiển thị con trỏ khi C=1 vagrave ngược lại

B Nhấp nhaacutey kiacute tự tại vị triacute con trỏ khi B=1 vagrave ngược lại

Chu kigrave nhấp nhaacutey khoảng 4096ms khi mạch dao động nội LCD lagrave 250kHz

Cursor

or

display

shift

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = 0 0 0 1 [SC] [RL]

Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị sang traacutei magrave khocircng cần hagravenh động ghiđọc dữ liệu Khi hiển thị kiểu 2 dograveng con trỏ sẽ nhảy xuống dograveng dưới khi dịch qua vị triacute thứ 40 của hagraveng đầu tiecircn Dữ liệu hagraveng đầu vagrave hagraveng 2 dịch cugraveng một luacutec Chi tiết sử dụng xem bảng becircn dưới

SC RL Hoạt động

0 0 Dịch vị triacute con trỏ sang traacutei (Nghĩa lagrave giảm AC một đơn vị)

0 1 Dịch vị triacute con trỏ sang phải (Tăng AC lecircn 1 đơn vị)

1 0 Dịch toagraven bộ nội dung hiển thị sang traacutei con trỏ cũng dịch theo

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 29: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 22

1 1 Dịch toagraven bộ nội dung hiển thị sang phải con trỏ cũng dịch theo

Function

set

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

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 lagrave 4 bit (từ bit DB7 đến bit DB0) Khi chọn giao thức 4 bit dữ liệu được truyềnnhận 2 lần liecircn tiếp với 4 bit cao gởinhận trước 4 bit thấp gởinhận sau

N Thiết lập số hagraveng hiển thị Khi N=0 hiển thị 1 hagraveng N=1 hiển thị 2 hagraveng

F Thiết lập kiểu kiacute tự Khi F=0 kiểu kiacute tự 5x8 điểm ảnh F=1 kiểu kiacute tự 5x10 điểm ảnh

Set

CGRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của CGRAM Kiacute hiệu [ACG] chỉ 1 bit của chuỗi dữ liệu 6 bit Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ CGRAM tại địa chỉ đatilde được chỉ định

Set

DDRAM

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

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

Lệnh nagravey ghi vagraveo AC địa chỉ của DDRAM dugraveng khi cần thiết lập tọa độ hiển thị

mong muốn Ngay sau lệnh nagravey lagrave lệnh đọcghi dữ liệu từ DDRAM tại địa chỉ đatilde được chỉ định

Khi ở chế độ hiển thị 1 hagraveng địa chỉ coacute thể từ 00H đến 4FH Khi ở chế độ hiển thị 2 hagraveng địa chỉ từ 00h đến 27H cho hagraveng thứ nhất vagrave từ 40h đến 67h cho hagraveng thứ 2

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 30: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 23

Read BF

and

address

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx =[BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] (RS=0RW=1)

Như đatilde đề cập trước đacircy khi cờ BF bật LCD đang lagravem việc vagrave lệnh tiếp theo (nếu coacute) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho necircn khi lập trigravenh điều khiển phải kiểm tra cờ BF trước khi ghi dữ liệu vagraveo LCD

Khi đọc cờ BF giaacute trị của AC cũng được xuất ra caacutec bit [AC] Noacute lagrave địa chỉ của

CG hay DDRAM lagrave tugravey thuộc vagraveo lệnh trước đoacute

Write

data to

CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Write data] (RS=1 RW=0)

Khi thiết lập RS=1 RW=0 dữ liệu cần ghi được đưa vagraveo caacutec chacircn DBx từ mạch

ngoagravei sẽ được LCD chuyển vagraveo trong LCD tại địa chỉ được xaacutec định từ lệnh ghi địa chỉ trước đoacute (lệnh ghi địa chỉ cũng xaacutec định luocircn vugraveng RAM cần ghi)

Sau khi ghi bộ đếm địa chỉ AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode

Read

data

from CG or

DDRAM

Matilde lệnh DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

DBx = [Read data] (RS=1 RW=1)

Khi thiết lập RS=1 RW=1dữ liệu từ CGDDRAM được chuyển ra MPU thocircng qua caacutec chacircn DBx (địa chỉ vagrave vugraveng RAM đatilde được xaacutec định bằng lệnh ghi địa chỉ trước đoacute)

Sau khi đọc AC tự động tănggiảm 1 tugravey theo thiết lập Entry mode tuy

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 31: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 24

nhiecircn nội dung hiển thị khocircng bị dịch bất chấp chế độ Entry mode

245 Giao tiếp giữa LCD vagrave MPU

- Đặc tiacutenh điện của caacutec chacircn giao tiếp

LCD sẽ bị hỏng nghiecircm trọng hoặc hoạt động sai lệch nếu bạn vi phạm khoảng đặc tiacutenh điện sau đacircy

Bảng 27 Maximun Rating

Chacircn cấp nguồn (Vcc-GND) Min-03V Max+7V

Caacutec chacircn ngotilde vagraveo (DBxEhellip) Min-03V Max(Vcc+03V)

Nhiệt độ hoạt động Min-30C Max+75C

Nhiệt độ bảo quản Min-55C Max+125C

Đặc tiacutenh điện lagravem việc điển higravenh (Đo trong điều kiện hoạt động Vcc = 45V đến 55V T = -30 đến +75C)

Bảng 28 Miền lagravem việc bigravenh thường

Chacircn cấp nguồn Vcc-GND 27V đến 55V

Điện aacutep vagraveo mức cao VIH 22V đến Vcc

Điện aacutep vagraveo mức thấp VIL -03V đến 06V

Điện aacutep ra mức cao (DB0-DB7) Min 24V (khi IOH = -0205mA)

Điện aacutep ra mức thấp (DB0-DB7) Max 04V (khi IOL = 12mA)

Dograveng điện ngotilde vagraveo (input leakage current) ILI

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

Dograveng điện cấp nguồn ICC 350uA(typ) đến 600uA

Tần số dao động nội fOSC190kHz đến 350kHz (điển higravenh lagrave 270kHz)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 32: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 25

246 Khởi tạo LCD

Khởi tạo lagrave việc thiết lập caacutec thocircng số lagravem việc ban đầu Đối với LCD khởi tạo giuacutep ta thiết lập caacutec giao thức lagravem việc giữa LCD vagrave MPU Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trigravenh điều khiển LCD vagrave bao gồm caacutec thiết lập sau

bull Display clear Xoacuteakhocircng xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set Kiểu giao tiếp 8bit4bit số hagraveng hiển thị 1hagraveng2hagraveng kiểu kiacute tự 5x85x10

bull Display onoff control Hiển thịtắt magraven higravenh hiển thịtắt con trỏ nhấp nhaacuteykhocircng nhấp nhaacutey

bull Entry mode set caacutec thiết lập kiểu nhập kiacute tự như Dịchkhocircng dịch tự tănggiảm (Increment)

2461 Mạch khởi tạo becircn trong chiacutep HD44780

Mỗi khi được cấp nguồn mạch khởi tạo becircn trong LCD sẽ tự động khởi tạo cho noacute Vagrave trong thời gian khởi tạo nagravey cờ BF bật lecircn 1 đến khi việc khởi tạo hoagraven tất cờ BF cograven giữ trong khoảng 10ms sau khi Vcc đạt đến 45V (vigrave 27V thigrave LCD đatilde hoạt động) Mạch khởi tạo nội sẽ thiết lập caacutec thocircng số lagravem việc của LCD như sau

bull Display clear Xoacutea toagraven bộ nội dung hiển thị trước đoacute

bull Function set DL=1 8bit N=0 1 hagraveng F=0 5x8

bull Display onoff control D=0 Display off C=0 Cursor off B=0 Blinking off

bull Entry mode set ID =1 Tăng S=0 Khocircng dịch

Như vậy sau khi mở nguồn bạn sẽ thấy magraven higravenh LCD giống như chưa mở nguồn do toagraven bộ hiển thị tắt Do đoacute ta phải khởi tạo LCD bằng lệnh

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 33: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

Chương 3 TIacuteNH TOAacuteN VAgrave THIẾT KẾ PHẦN CỨNG31 Sơ đồ nguyecircn lyacute

Higravenh 31 Sơ đồ nguyecircn lyacute

32 Sơ đồ mạch in

Higravenh 32 Sơ đồ mạch in

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 34: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 27

33 Khối cảm biến

U 3L M 3 5

31

2A

DJ

VIN

V O U T

0V

C 11 u F

V ou tR 17 5

5V

Higravenh 33 Khối cảm biến

Điện trở 75 ohm vagrave tụ 1uF dugraveng để chống nhiễu cho tiacuten hiệu đầu ra của LM35

34 Khối tạo điện aacutep chuẩn

1 2

147

U25A

74HC14

3 4

147

U25B

74HC14C19102

R751K

C2010MF

Higravenh 34-Khối tạo điện aacutep chuẩn

Để tạo điện aacutep chuẩn cho Vref ta sử dụng sơ đồ mạch trecircn

- Để điện aacutep đầu ra ổn định ta chọn tổng trở R = R2+R3+R4 lớn do đoacute ta chọn R=20k- Để dễ điều chỉnh ta chọn biến trở lagrave 10k- Ta coacute điện aacutep nguồn V=5v

IR==025 mAGọi Rdưới lagrave điện trở từ chacircn 2 của biến trở xuống mass

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 35: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 28

Rdưới==256 k =gt chọn R4=22k Chọn R2=18k

35 Sơ đồ nối chacircn cho ADC

2 -1MSB 21

ADD B 24ADD A 25

ADD C 23

VREF(+)12

VREF(-)16

IN31

IN42

IN53

IN64

IN75

START6 2 -5 8

EOC7

OUTPUT ENABLE9

CLOCK10

VCC11

2 -2 20

GND 13

2 -7 142 -6 15

2 -8LSB 17

2 -4 182 -3 19

IN228 IN127 IN026

ALE 22

U18

ADC0809

P24EOC

12

3

RV13

10K

P17P16P15P14P13P12P11P10

P20

Higravenh 35- Sơ đồ nối chacircn ADC

F=

Magrave tần số hoạt động của ADC lagrave 600 ndash 700 Khz

Chọn f= 660 Khz R =10K

=gtC=1

1110000660000=137 10minus12 F

Chọn C = 150 pF

Để coacute thể truy cập ADC thigrave chacircn CS phải ở mức thấp do đoacute ta noacutei chacircn CS xuống mass 36 Sơ đồ mạch xử lyacute trung tacircm 89c51

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 36: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 29

P00

P10P11P12P13P14P15P16P17

P01P02P03P04P05P06P07

P20P21P22P23P24P25P26P27

P30P31P32P33P34P35P36P37

P00P01P02P03P04P05P06P07

P30P31P32P33P34

P36P37

P35

KHOI VI XU LI

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P00AD0 39

P01AD1 38

P02AD2 37

P03AD3 36

P04AD4 35

P05AD5 34

P06AD6 33

P07AD7 32

P101

P112

P123

P134

P145

P156

P167

P178

P30RXD 10

P31TXD 11

P32INT0 12

P33INT1 13

P34T0 14

P37RD 17P36WR 16P35T1 15

VCC40

GND20

P27A15 28

P20A8 21

P21A9 22

P22A10 23

P23A11 24

P24A12 25

P25A13 26

P26A14 27

U4

AT89XX

12

XTAL110592

12

RESETKEY-TRON

R23

10K

C410MF

23456789

1

RP1

4K7

23456789

1

RP2

4K7

RESET

P21

23456789

1RP3

4K7

P17P16P15P14P13P12P11P10

23456789

1RP4

4K7

P27P26P25P24P23P22P21P20

Higravenh36-Sơ đồ xứ lyacute trung tacircm

Khối vi xử liacute đảm nhiệm thực thi mọi cocircng việc nhận dữ liệu từ bộ ADC giatildei matilde tiacuten hiệu vagrave xuất dữ liệu hiện thị ra magraven higravenh LCD đồng thời điều khiển thiết bị khi nhiệt độ đo quaacute ngưỡng cagravei đặt

37 Khối hiển thị

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 37: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 30

LCD 16X2

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW5

RS

4

GND 1VDD2

VEE

3A15 K 16

LCD1LCD16X2

12

3

10K

P0

5P

06

P0

7

P0

0

P0

4P

03

P0

2P

01

P2

6

P2

7

Higravenh 37-Khối hiển thị

Khối hiển thị LCD lagravem nhiệm vụ lấy thocircng tin dữ liệu từ vi xử lyacute để hiển thị thocircng tin cho người dugraveng biết

38 Khối nguồn 5V

C51mF

C61000mF

VI1 VO 3

GND

2

U167805

C71mF

KHOI NGUON

AK

D34LED-Nguon

R85

330

12V

12

J1

DOMINO2

A KD1

1N4007

Higravenh 38-Khối nguồn

Đối với tất cả caacutec mạch sử dụng vi xử liacute thigrave đều phải dugraveng nguồn điện chuẩn lagrave 5V khi dograveng điện được đưa qua diode vagrave sau đoacute qua caacutec tụ nguồn để lọc nguồn vagrave đi vagraveo chacircn số 1 của ic nguồn 7805 vagrave sau đoacute sẽ ic 7805 sẽ xuất ra 1 điện aacutep chuẩn 5V ở chacircn số 3hellip

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 38: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 31

Trong tất cả caacutec mạch nguồn thigrave đều coacute 1 con led baacuteo nguồn dugraveng để biểu thị trạng thaacutei hoạt động của ic nguồn vagrave trecircn led coacute 1 con điện trở dugraveng để hạn dograveng cho led để cho led hoạt động tốt magrave khocircng bị chaacutey bởi aacutep vagrave dograveng

Cocircng thức tiacutenh trở cho led Rled= (Vcc-Vled)Iled= (5V-2V)10mA=03 K = 300 ohm vigrave khocircng coacute điện trở 300 ohm necircn ta chọn trở cho led lagrave 330 ohm

Chương 4 THIẾT KẾ PHẦN MỀM

Chương trigravenh phần mềm

include ltAT89X51Hgt

include ltstdiohgt

includeltstringhgt

define RS P2_7

define RW P3_6RW=0 =gt ghi

define EN P2_6RW=1 =gt doc

RS=0 =gt code

RS=1 =gt data

define LCD_PORT P0

define ADC_PORT P1

define ALE P2_0

define START P2_4

define role P2_1

===========================

void delay_ms(int n)

int kj

for(k=0kltnk++)

for(j=0jlt500j++)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 39: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 32

==========================

void delay_5ms()

int ij

for(i=0ilt250i++)

for(j=0jlt4j++)

===========================

void delay_15ms()

int ij

for(i=0ilt250i++)

for(j=0jlt100j++)

============================

void LCDWriteCmd(unsigned char c) CT con ghi du lieu len LCD

RS=0

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 40: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 33

==============================

void LCDWriteData(unsigned char c) CT con doc du lieu tu LCD

RS=1

RW=0

LCD_PORT=c

EN=1

EN=0

delay_5ms()

=============================

void LCDcursorxy(int x int y)

if((xlt1||xgt2)ampamp(ylt1||ygt16))

x=1

y=1

if(x == 1)

LCDWriteCmd(0x7F+y)

else

LCDWriteCmd(0xBF+y)

===============================

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 41: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 34

void LCD_init() Khoi tao LCD

delay_15ms()

LCDWriteCmd(0x38)

LCDWriteCmd(0x0C)

LCDWriteCmd(0x06)

LCDWriteCmd(0x01) Xoa man hinh LCD

================================

void LCD_clear()

LCDWriteCmd(0x01)

===============================

void LCD_home()

LCDWriteCmd(0x80)

=============================

void LCD_putstr(unsigned char s)

while (s)

LCDWriteData(s)

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 42: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 35

s++

============================

void HienThi_ADC(unsigned char t)

unsigned char v

if(tlt10)

LCDWriteData(t+48)

else if(tlt100)

LCDWriteData(t10+48)

LCDWriteData(t10+48)

else

v=t10

LCDWriteData(v10+48)

LCDWriteData(v10+48)

LCDWriteData(t10+48)

==========================================

void main (void)

unsigned char gt=0 gt la bie^n cho gia tri 8bit ADC

LCD_init()

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 43: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 36

LCDWriteCmd(0x80)

LCD_putstr(NHIET DO DAT35C)

role = 0

while(1)

ALE = 1

START = 1 Bat dau chuyen doi gia tri tu ADC

delay_ms(1) Tao tre de cap nhat du lieu tu ADC

START = 0

ALE = 0

Nhan du lieu da duoc chuyen doi

gt=ADC_PORT

if(gtgt=35)role = 1

else role = 0

LCDWriteCmd(0xC0)

LCD_putstr(Nhiet do la)

HienThi_ADC(gt)

LCDWriteData(223)

LCD_putstr(C)

delay_ms(150)

TAgraveI LIỆU THAM KHẢO

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 44: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 37

[1] Ngyễn Tăng Cường Họ vi điều khiecircn 8051

[2] Ngocirc Diện Tập Vi điều khiển với lập trigravenh C [3] Giaacuteo trigravenh Linh Kiện Điện Tử vagrave Ứng Dụng NXB Giaacuteo Dục

CHƯƠNG 2KIẾN THỨC BỔ TRỢ

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO

Page 45: mach dieu khien nhiet do

MẠCH ĐO VAgrave ĐIỀU KHIỂN NHIỆT ĐỘ Trang 26

TAgraveI LIỆU THAM KHẢO