BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM
KHOA ĐIỆN - ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN MÔN HỌC 2
NGÀNH:CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
Đề tài:
ĐO NHIỆT ĐỘ DÙNG IC SỐ DS18B20
HIỂN THỊ LCD GIAO TIẾP MÁY TÍNH
TP. HỒ CHÍ MINH-1/2012
GVHD: Phạm Văn Khoa
SVTH : Lê Ngọc Tuấn – Nguyễn Phúc Viên
MSSV : 08119070 08119073
Đạ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ỆTNAM
Độ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…
(Dành cho người hướng dẫn)
1. Họ tên sinh viên : ……………………………………………………………………………
MSSV:
…………………………….……………………………………… … MSSV:……
2. Tên đề tài :
………………………………………………………………………………………………
………………………………………………………………………………………………
3. Người hướng dẫn :
………………………………………………………………………………………………
…………………………………………
4. Những ưu điểm của Đồ án :
…………………………………………………………………………………………………
…
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
Những thiếu sót của Đồ án:
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
5. Đề nghị : Được bảo vệ: Bổ sung để được bảo vệ: Không được bảo vệ:
6. Các câu hỏi sinh viên phải trả lời trước Tổ chấm ĐAMH:
a)……………………………………………………………………………………………
………………………………………………………………………………………………
b)……………………………………………………………………………………………
……………………………………………………………………………………………………
c)
……………………………………………………………………………………………………
……………………………………………………….…………………
Đánh giá Điểm (Số và chữ):………………………………
CHỮ KÝ và HỌ TÊN
Đồ án môn học 2 Trang 1
Phần A
GIỚI THIỆU
LỜI NÓI ĐẦU
Phần A: Giới thiệu
Đồ án môn học 2 Trang 2
Lời đầu tiên nhóm thực hiện đề tài xin cảm ơn thầy cô giáo chuyên ngành điện
tử, cảm ơn thầy Phạm Văn Khoa đã hướng dẫn tận tình nhóm thực hiện đề tài trong quá
trình thực hiện đồ án này.
Trong quá trình sản xuất ở các nhà máy,xí nghiệp hiện nay,việc đo và khống chế nhiệt độ
tự động là một yêu cầu hết sức cần thiết và quan trọng.Vì nếu nắm bắt được nhiệt độ làm
việc của các hệ thống,dây chuyền sản xuất giúp chúng ta biết được tình trạng làm việc
của các yêu cầu.Và có những xử lí kịp thời tránh được những hư hỏng và sự cố có thể
xảy ra.
Do kiến thức còn hạn hẹp và trình độ về chuyên môn còn hạn chế nên sẽ khó
tránh khỏi những thiếu sót,khuyết điểm.Rất mong được sự đóng góp ý kiến và chỉ bảo
nhiệt tình từ phía các thầy cô để đề tài được hoàn thiện hơn.
Tp.HCM, Tháng 1 năm 2012
MỤC LỤC
Phần A GIỚI THIỆU Trang
Lời nói đầu 2
Phần A: Giới thiệu
Đồ án môn học 2 Trang 3
Mục lục 3
Liệt kê bảng 5
Liệt kê hình 5
Phần B Nội dung
Chương 1: Lý thuyết thiết kế 8
1.1. Giới thiệu khái quát về PIC 18F77A 8
1.2. Giới thiệu về IC số DS18B20 10
1.3. Gới thiệu LCD HD44780 15
1.4. RS232 31
Chương 2: Sơ đồ khối 36
2.1. Sơ đồ khối 36
2.2. Chức năng các khối 36
2.3. Thiết kế các khối 36
Chương 3: Thiết kế và thi công 38
3.1. Sơ đồ nguyên lý 38
3.2. Sơ đồ mạch in 42
3.3. Linh kiện sử dụng trong mạch 42
Chương 4: Phần mềm 43
4.1. Lưa đồ giải thuật 43
4.2. Phân tích chương trình 46
Phần A: Giới thiệu
Đồ án môn học 2 Trang 4
Chương 5: Kết quả 47
5.1. Kết quả thi công 47
5.2. Dao diện chương trình giao tiếp 48
Chương 6: Kết luận 49
6.1. Kết quả đạt được 49
6.2. Chưa đạt và hướng phát triển 49
Phần C Phụ lục và tài liệu tham khảo
1. Phụ lục 51
2. Tài liệu tham khảo 63
3. Lời kết 63
Liệt kê bảng
Bảng 1.1: Chức năng của các chân LCD
Bảng 1.2: RS-R/W
Bảng 1.3: Tập lệnh LCD
Phần A: Giới thiệu
Đồ án môn học 2 Trang 5
Bảng 1.4: Hoạt động lệnh Cursor or display shift
Bảng 1.5: Tập lệnh LCD
Bảng 1.6: Maximun Rating
Bảng 1.7: Miền làm việc bình thường
Bảng 1.8: Thời gian tác động Write
Bảng 1.9: Thời gian tác động Read
Bảng 1.10: Đặc tính kĩ thuật
Bảng 1.11: Chức năng từng chân của cổng Com
Liệt kê hình
Hình 1.1: PIC 18F77A
Hình 1.2: DS18B20
Hình 1.3: Mã nội dung 64-bit của DS18B20
Hình 1.4: Kết nối DS18B20 với vi xử lí
Hình 1.5: Hình dạng LCD
Hình 1.6: Sơ đồ chân LCD
Hình 1.7: Các khối cơ bản
Hình 1.8: Giản đồ xung cập nhật AC
Hình 1.9: Mối liên hệ giữa địa chỉ của DDRAM và vị trí hiển thị của LCD
Hình 1.10: Mối liên hệ giữa địa chỉ của ROM và dữ liệu tạo mẫu kí tự
Hình 1.11: Vùng ROM kí tự
Hình 1.12: Mối liên hệ giữa địa chỉ của CGRAM, dữ liệu của CGRAM,mã kí tự
Hình 1.13: Hoạt động dịch trái và dịch phải nội dung hiển thị
Hình 1.14: Kiểu con trỏ, kiểu kí tự và nhấp nháy kí tự
Hình 1.15: Viết LCD
Hình 1.16: Đọc LCD
Hình 1.17: Lưu đồ khởi tạo LCD
Hình 1.18: Đường truyền RS 232
Hình 1.19: Khung dữ liệu
Hình 1.20: Quá trình truyền dữ liệu
Hình 1.21: Cổng Com
Hình 1.21: Sơ đồ chân
Hình 1.21: Sơ đồ mạch giao tiếp
Hình 2.1: Sơ đồ khối
Hình 3.1: Khối điều khiển
Hình 3.2: Khối hiển thị
Hình 3.3: Khối nguồn
Hình 3.4: Khối giao tiếp
Hình 3.5: Khối Reset,Switch
Hình 3.6: Mạch Layout
Hình 4.1: Giải thuật vi điều khiển
Phần A: Giới thiệu
Đồ án môn học 2 Trang 6
Hình 4.2: Giải thuật Match Rom
Hình 5.1: Hình ảnh thực tế của mạch
Hình 5.2: Giao diện chương trình giao tiếp PC
Phần A: Giới thiệu
Đồ án môn học 2 Trang 7
Phần B
NỘI DUNG
Phần B: Nội dung
Đồ án môn học 2 Trang 8
Chương 1: LÝ THUYẾT THIẾT KẾ
1.1 Giới thiệu khái quát về Pic 16F887A
1.1.1 Đặc tính của vi điều khiển Pic 16F887A
- Sử dụng công nghệ tích hợp cao RISC CPU.
- Người sử dụng có thể lập trình với 35 câu lệnh đơn giãn.
- Tất cả các câu lệnh đều được thực hiện trong một chu kỳ ngoại trừ một số
lệnh rẽ nhánh được thực hiện trong 2 chu kỳ lệnh.
- Tốc độ hoạt động là: Xung đồng hồ vào DC 20MHz.
- Chu kỳ thực hiện trong 200ns.
- Bộ nhớ chương trình flash 8Kx 14words.
- Bộ nhớ Ram 368x8bytes.
- Bộ nhớ EFPROM 256x8 bytes.
1.1.2 Chức năng của Pic 16F877A
- Khả năng ngắt: lên tới 15 nguồn ngắt trong và ngắt ngoài.
- Ngăn nhớ Stack đọc phân chia làm 8 mức.
- Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp
- Nguồn khởi động lại (POR).
- Bộ tạo xung thời gian(PWRT) và bộ tạo dao động (OST).
- Bộ đếm xung thời gian(WDT) với nguồn dao động trên chip nguồn dao
động (RC) hoạt động đáng tin cậy.
- Có mạch chương trình bảo vệ.
- Phương thức cất giữ SLEEP.
- Có bản lựa chọn dao động công nghệ CMOS FLASH/EFPROM nguồn nuôi
thấp , tốc độ cao.
- Thiết kế hoàn toàn tĩnh.
- Mạch chương trình nối tiếp có hai chân.
- Xử lý đọc/ghi tới bộ nhớ chương trình.
- Dải điện thế hoạt động rộng 2V đến 5.5V.
- Nguồn sử dụng hiện tại 2.5mA.
- Công suất tiêu thụ: <0.6mA với 5V, 4MHz. 20uA với nguồn 3V , 32KHz
,<1uA với nguồn dự phòng.
1.1.3 Đặc tính nổi bật của thiết bị ngoại vi trên chip
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 9
- Timer0: 8 bit với bộ định thời , bộ đếm với hệ số tỉ lệ trước.
- Timer1: 16 bit với bộ định thời , bộ đếm với hệ số tỉ lệ trước, có khả năng
tăng trong khi ở chế độ SLEEP qua xung đồng hồ được cung cấp bên ngoài.
- Timer2: 8 bit với bộ định thời , bộ đếm 8 bit với hệ số tỉ lệ trước , hệ số tỉ lệ
sau.
- Có 2 chế độ bắt giữ , so sánh, và điều chế độ rộng xung(PWM).
- Chế độ bắt giữ với 16 bit, với tốc độ 12,5ns, chế độ so sánh với 16 bit tốc
độ xử lý cực đại là 200ns, chế độ điều chế độ rộng xung với 10 bit.
- Bộ chuyển đổi tin hiệu số sang tương tự với 10 bit.
- Cổng truyền thông nối tiếp SSP và SPI phương thức chủ tớ và I2C
- Bộ truyền nhận thông tin đồng bộ, dị bộ (USART/SCR) có khả năng hiện 9 bit
địa chỉ .
- Cổng phụ song song PSP với 8 bit mở rộng với RD , WR , CS điều khiển
1.1.4 Sơ đồ và chức năng của các chân Pic 16F887A
Hình 1.1 Pic 16F877A
1.2. Giới thiệu về cảm biến nhiệt độ DS18B20
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 10
1.2.1. Giới thiệu:
- DS1820 là một sản phẩm của công ty Dallas (Hoa Kỳ), đây cũng là công ty đóng
góp nhiều vào việc cho ra đời bus một dây và các cảm biến một dây. Hình dạng
bên ngoài của cảm biến một dây DS1820 được mô tả trên hình 1.2, trong đó dạng
vỏ TO-92 với 3 chân là dạng thường gặp và được dùng trong nhiều ứng dụng, còn
dạng vỏ SOIC với 8 chân được dùng để đo nhiệt độ bề mặt, kể cả da người.
Hình 1.2 DS18B20
1.2.2. Chức năng của DS18B20
• Sử dụng giao diện một dây nên chỉ cần có một chân ra để truyền thông.
• Độ phân giải khi đo nhiệt độ là 9,10,11 bit. Dải đo nhiệt độ -55
o
C đến 125
o
C,
từng bậc 0,5
o
C, có thể đạt độ chính xác đến 0,0625
o
C bằng việc hiệu chỉnh qua
phần mềm.
• Rất thích hợp với các ứng dụng đo lường đa điểm vì nhiều đầu đo có thể được
nối trên một bus, bus này được gọi là bus một dây (1-wire bus.
• Không cần thêm linh kiện bên ngoài.
• Điện áp nguồn nuôi có thể thay đổi trong khoảng rộng, từ 3,0 V đến 5,5 V một
chiều và có thể được cấp thông qua đường dẫn dữ liệu.
• Dòng tiêu thụ tại chế độ nghỉ cực nhỏ.
• Thời gian lấy mẫu và biến đổi thành số tương đối nhanh, không quá 200 ms.
• Mỗi cảm biến có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trên
chip (on chip), giá trị nhị phân được khắc bằng tia laze.
- Đầu đo nhiệt độ số DS1820 đưa ra số liệu để biểu thị nhiệt độ đo được dưới
dạng mã nhị phân 9 bit. Các thông tin được gửi đến và nhận về từ DS1820 trên
giao diện 1-wire, do đó chỉ cần hai đường dẫn gồm một đường cho tín hiệu và
một đường làm dây đất là đủ để kết nối vi điều khiển đến điểm đo. Nguồn nuôi
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 11
cho các thao tác ghi/đọc/chuyển đổi có thể được trích từ đường tín hiệu, không
cần có thêm đường dây riêng để cấp điện áp nguồn.
- Mỗi vi mạch đo nhiệt độ DS1820 có một mã số định danh duy nhất, được khắc
bằng laser trong quá trình chế tạo vi mạch nên nhiều vi mạch DS1820 có thể cùng
kết nối vào một bus 1-wire mà không có sự nhầm lẫn. Đặc điểm này làm cho việc
lắp đặt nhiều cảm biến nhiệt độ tại nhiều vị trí khác nhau trở nên dễ dàng và với
chi phí thấp. Theo chuẩn 1-wire độ dài tối đa cho phép của bus là 300 m. Số
lượng các cảm biến nối vào bus không hạn chế.
- Để nâng cao độ phân giả lên trên 9 bit ta phải tính toán thêm bằng phần mềm dựa
trên các số liệu lưu trữ trên các thanh ghi nhiệt độ, COUNT REMAIN và COUNT
PER C trong nhóm các thanh ghi nháp (scratchpad). việc tính toán dựa theo
phương trình sau:
- Khi sử dụng phương trình này cảm biến một dây DS1820 được nâng cấp trở
thành một cảm biến nhiệt độ có độ phân giải cao.
Bộ nhớ ROM 64–BIT
- Mỗi cảm biến nhiệt độ DS1820 có một dãy mã 64 bit duy nhất được lưu trữ trong
bộ nhớ ROM từ khi sản xuất bằng kỹ thuật laze. Ý nghĩa của 64 bit mã được giải
thích trên hình 1.3:
Hình 1.3 Nội dung dãy mã 64-bit trên bộ nhớ ROM
Như vậy dãy mã được chia ra thành 3 nhóm, trong đó:
+Tám bit đầu tiên là mã định danh họ một dây, mã của DS1820 là 10h.
+48 bit tiếp theo là mã số xuất xưởng duy nhất, nghĩa là mỗi cảm biến DS1820
chỉ có một số mã.
+Tám bit có ý nghĩa nhất là byte mã kiểm tra CRC (cyclic redundancy check),
byte này được tính toán từ 56 bit đầu tiên của dãy mã trên ROM.
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 12
Hình 1.4 Kết nối DS18B20 với vi xử lí
1.2.3. Cách truy xuất DS18B20
- Để truy cập lên cảm biến một dây DS1820 ta phải sử dụng hai nhóm lệnh: các
lệnh ROM và các lệnh chức năng (function commands) bộ nhớ, các lệnh này có
thể được mô tả ngắn gọn như sau:
- Sau khi thiết bị chủ (thường là một vi điều khiển) phát hiện ra một xung presence
pulse, nó có thể xuất ra một lệnh ROM. Có 5 loại lệnh ROM, mỗi lệnh dài 8 bit.
Thiết bị chủ phải đưa ra lệnh ROM thích hợp trước khi đưa ra một lệnh chức năng
để giao tiếp với cảm biến DS18S20.
Lệnh ROM
- READ ROM (33h)
- Cho phép đọc ra 8 byte mã đã khắc bằng laser trên ROM, bao gồm: 8 bit mã định
tên linh kiện (10h), 48 bit số xuất xưởng, 8 bit kiểm tra CRC. Lệnh này chỉ dùng
khi trên bus có 1 cảm biến DS1820, nếu không sẽ xảy ra xung đột trên bus do tất
cả các thiết bị tớ cùng đáp ứng.
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 13
- MATCH ROM (55h)
- Lệnh này được gửi đi cùng với 64 bit ROM tiếp theo, cho phép bộ điều khiển bus
chọn ra chỉ một cảm biến DS1820 cụ thể khi trên bus có nhiều cảm biến DS1820
cùng nối vào. Chỉ có DS1820 nào có 64 bit trên ROM trung khớp với chuỗi 64 bit
vừa được gửi tới mới đáp ứng lại các lệnh về bộ nhớ tiếp theo. Còn các cảm biến
DS1820 có 64 bit ROM không trùng khớp sẽ tiếp tục chờ một xung reset. Lệnh
này được sử dụng cả trong trường hợp có một cảm biến một dây, cả trong trường
hợp có nhiều cảm biến một dây.
- SKIP ROM (CCh)
- Lệnh này cho phép thiết bị điều khiển truy nhập thẳng đến các lệnh bộ nhớ của
DS1820 mà không cần gửi chuỗi mã 64 bit ROM. Như vậy sẽ tiết kiệm được thời
gian chờ đợi nhưng chỉ mang hiệu quả khi trên bus chỉ có một cảm biến.
- SEARCH ROM (F0h)
- Lệnh này cho phép bộ điều khiển bus có thể dò tìm được số lượng thành viên tớ
đang được đấu vào bus và các giá trị cụ thể trong 64 bit ROM của chúng bằng một
chu trình dò tìm.
- ALARM SEARCH (ECh)
- Tiến trình của lệnh này giống hệt như lệnh Search ROM, nhưng cảm biến DS1820
chỉ đáp ứng lệnh này khi xuất hiện điều kiện cảnh báo trong phép đo nhiệt độ cuối
cùng. Điều kiện cảnh báo ở đây được định nghĩa là giá trị nhiệt độ đo được lớn
hơn giá trị TH và nhỏ hơn giá trị TL là hai giá trị nhiệt độ cao nhất và nhiệt độ
thấp nhất đã được đặt trên thanh ghi trong bộ nhớ của cảm biến.
Lệnh chức năng bộ nhớ
- Sau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnh ROM để định
địa chỉ cho các cảm biến một dây đang được đấu vào bus, thiết bị chủ sẽ đưa ra
các lệnh chức năng DS1820. Bằng các lệnh chức năng thiết bị chủ có thể đọc ra và
ghi vào bộ nhớ nháp (scratchpath) của cảm biến DS1820. khởi tạo quá trình
chuyển đổi giá trị nhiệt độ đo được và xác định chế độ cung cấp điện áp nguồn.
Các lệnh chức năng có thể được mô tả ngắn gọn như sau:
- WRITE SCRATCHPAD (4Eh)
- Lệnh này cho phép ghi 2 byte dữ liệu vào bộ nhớ nháp của DS1820. Byte đầu tiên
được ghi vào thanh ghi TH (byte 2 của bộ nhớ nháp) còn byte thứ hai được ghi vào
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 14
thanh ghi TL (byte 3 của bộ nhớ nháp). Dữ liệu truyền theo trình tự đầu tiên là bit
có ý nghĩa nhất và kế tiếp là những bit có ý nghĩa giảm dần. Cả hai byte này phải
được ghi trước khi thiết bị chủ xuất ra một xung reset hoặc khi có dữ liệu khác
xuất hiện.
- READ SCRATCHPAD (BEh)
- Lệnh này cho phép thiết bị chủ đọc nội dung bộ nhớ nháp. Quá trình đọc bắt đầu
từ bit có ý nghĩa nhất của byte 0 và tiếp tục cho đến byte thứ 9 (byte 8 - CRC).
Thiết bị chủ có thể xuất ra một xung reset để làm dừng quá trình đọc bất kỳ lúc
nào nếu như chỉ có một phần của dữ liệu trên bộ nhớ nháp cần được đọc.
- COPYSCRATCHPAD (48h)
- Lệnh này copy nội dung của hai thanh ghi TH và TL (byte 2 và byte 3) vào bộ nhớ
EEPROM. Nếu cảm biến được sử dụng trong chế dộ cấp nguồn l bắt đầu việc đo.
- CONVERT T (44h)
- Lệnh này khởi động một quá trình đo và chuyển đổi giá trị nhiệt độ thành số (nhị
phân). Sau khi chuyển đổi giá trị kết quả đo nhiệt độ được lưu trữ trên thanh ghi
nhiệt độ 2 byte trong bộ nhớ nháp Thời gian chuyển đổi không quá 200 ms, trong
thời gian đang chuyển đổi nếu thực hiện lệnh đọc thì các giá trị đọc ra đều bằng 0.
- READ POWER SUPPLY (B4h)
- Một lệnh đọc tiếp sau lệnh này sẽ cho biết DS1820 đang sử dụng chế độ cấp
nguồn như thế nào, giá trị đọc được bằng 0 nếu cấp nguồn bằng chính đường dẫn
dữ liệu và bằng 1 nếu cấp nguồn qua một đường dẫn riêng.
1.3. Gới thiệu LCD HD44780
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 15
1.3.1 Hình dáng và kích thước:
- Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, trên hình 1.6
là hai loại LCD thông dụng.
Hình 1.5 Hình dạng LCD
- Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780) bên trong
lớp vỏ và chỉ đưa các chân giao tiếp cần thiết. Các chân này được đánh số thứ tự
và đặt tên như hình 1.7
Hình 1.6 Sơ đồ chân LCD
1.3.2 Chức năng của các chân
Bảng 1.1 Chức năng của các chân LCD
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 16
* Ghi chú : Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thông tin từ LCD thông qua
các chân DBx.
- Còn khi ở chế độ “ghi”, nghĩa là MPU xuất thông tin điều khiển cho LCD thông
qua các chân DBx.
1.3.3 Các khối cơ bản của nó.
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 17
Hình 1.7 Các khối cơ bản
1.3.3.1 Các thanh ghi :
- Chíp HD44780 có 2 thanh ghi 8 bit quan trọng : Thanh ghi lệnh IR (Instructor
Register) và thanh ghi dữ liệu DR (Data Register)
- Thanh ghi IR : Để điều khiển LCD, người dùng phải “ra lệnh” thông qua 8 đường
bus DB0-DB7. Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng. Người
dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR. Nghĩa là, khi
ta nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng mã lệnh tại địa
chỉ mà IR cung cấp và thực hiện lệnh đó.
VD : Lệnh “hiển thị màn hình” có địa chỉ lệnh là 00001100 (DB7…DB0)
Lệnh “hiển thị màn hình và con trỏ” có mã lệnh là 00001110
- Thanh ghi DR : Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng RAM
DDRAM hoặc CGRAM(ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng RAM
này gởi ra cho MPU (ở chế độ đọc). Nghĩa là,khi MPU ghi thông tin vào DR,
mạch nội bên trong chíp sẽ tự động ghi thông tin này vào DDRAM hoặc
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 18
CGRAM. Hoặc khi thông tin về địa chỉ được ghi vào IR, dữ liệu ở địa chỉ này
trong vùng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU.
Bằng cách điều khiển chân RS và R/W chúng ta có thể chuyển qua lại giữ 2
thanh ghi này khi giao tiếp với MPU. Bảng sau đây tóm tắt lại các thiết lập đối
với hai chân RS và R/W theo mục đích giao tiếp.
Bảng 1.2 RS-R/W
1.3.3.2 Cờ báo bận BF: (Busy Flag)
- Khi thực hiện các hoạt động bên trong chíp, mạch nội bên trong cần một khoảng
thời gian để hoàn tất. Khi đang thực thi các hoạt động bên trong chip như thế,
LCD bỏ qua mọi giao tiếp với bên ngoài và bật cờ BF (thông qua chân DB7 khi
có thiết lập RS=0, R/W=1) lên để báo cho MPU biết nó đang “bận”. Dĩ nhiên, khi
xong việc, nó sẽ đặt cờ BF lại mức 0.
*Bộ đếm địa chỉ AC : (Address Counter)
- Như trong sơ đồ khối, thanh ghi IR không trực tiếp kết nối với vùng RAM
(DDRAM và CGRAM) mà thông qua bộ đếm địa chỉ AC. Bộ đếm này lại nối
với 2 vùng RAM theo kiểu rẽ nhánh. Khi một địa chỉ lệnh được nạp vào thanh
ghi IR, thông tin được nối trực tiếp cho 2 vùng RAM nhưng việc chọn lựa vùng
RAM tương tác đã được bao hàm trong mã lệnh.
Sau khi ghi vào (đọc từ) RAM, bộ đếm AC tự động tăng lên (giảm đi) 1 đơn vị và
nội dung của AC được xuất ra cho MPU thông qua DB0-DB6 khi có thiết lập
RS=0 và R/W=1 (xem bảng tóm tắt RS - R/W).
- Lưu ý: Thời gian cập nhật AC không được tính vào thời gian thực thi lệnh mà
được cập nhật sau khi cờ BF lên mức cao (not busy), cho nên khi lập trình hiển
thị, bạn phải delay một khoảng tADD khoảng 4uS-5uS (ngay sau khi BF=1) trước
khi nạp dữ liệu mới. Xem thêm hình bên dưới.
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 19
Hình 1.8 Giản đồ xung cập nhật AC
1.3.3.4 Vùng RAM hiển thị DDRAM : (Display Data RAM)
- Đây là vùng RAM dùng để hiển thị, nghĩa là ứng với một địa chỉ của RAM là
một ô kí tự trên màn hình và khi bạn ghi vào vùng RAM này một mã 8 bit, LCD
sẽ hiển thị tại vị trí tương ứng trên màn hình một kí tự có mã 8 bit mà bạn đã
cung cấp. Hình sau đây sẽ trình bày rõ hơn mối liên hệ này :
Hình 1.9 Mối liên hệ giữa địa chỉ của DDRAM và vị trí hiển thị của LCD
- Vùng RAM này có 80x8 bit nhớ, nghĩa là chứa được 80 kí tự mã 8 bit. Những
vùng RAM còn lại không dùng cho hiển thị có thể dùng như vùng RAM đa mục
đích.
Lưu ý là để truy cập vào DDRAM, ta phải cung cấp địa chỉ cho AC theo mã HEX
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 20
1.3.3.5 Vùng ROM chứa kí tự CGROM: Character Generator ROM
- Vùng ROM này dùng để chứa các mẫu kí tự loại 5x8 hoặc 5x10 điểm ảnh/kí tự,
và định địa chỉ bằng 8 bit. Tuy nhiên, nó chỉ có 208 mẫu kí tự 5x8 và 32 mẫu kí
tự kiểu 5x10 (tổng cộng là 240 thay vì 256 28= mẫu kí tự). Người dùng không
thể thay đổi vùng ROM này.
Hình 1.10 Mối liên hệ giữa địa chỉ của ROM và dữ liệu tạo mẫu kí tự.
- Như vậy, để có thể ghi vào vị trí thứ x trên màn hình một kí tự y nào đó, người
dùng phải ghi vào vùng DDRAM tại địa chỉ x (xem bảng mối liên hệ giữa
DDRAM và vị trí hiển thị) một chuỗi mã kí tự 8 bit trên CGROM. Chú ý là trong
bảng mã kí tự trong CGROM ở hình bên dưới có mã ROM A00.
Ví dụ : Ghi vào DDRAM tại địa chỉ “01” một chuỗi 8 bit “01100010” thì trên
LCD tại ô thứ 2 từ trái sang (dòng trên) sẽ hiển thị kí tự “b”.
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 21
Hình 1.11 Vùng ROM kí tự
1.3.3.6 Vùng RAM chứa kí tự đồ họa CGRAM : (Character Generator RAM)
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 22
- Như trên bảng mã kí tự, nhà sản xuất dành vùng có địa chỉ byte cao là 0000 để
người dùng có thể tạo các mẫu kí tự đồ họa riêng. Tuy nhiên dung lượng vùng
này rất hạn chế: Ta chỉ có thể tạo 8 kí tự loại 5x8 điểm ảnh, hoặc 4 kí tự loại 5x10
điểm ảnh.
Để ghi vào CGRAM, hãy xem hình 6 bên dưới.
Hình 1.12 Mối liên hệ giữa địa chỉ của CGRAM, dữ liệu của CGRAM, và mã kí
tự.
1.3.4 Tập lệnh của LCD :
Chương 1: Lí thuyết thiết kế
Đồ án môn học 2 Trang 23
- Trước khi tìm hiểu tập lệnh của LCD, sau đây là một vài chú ý khi giao tiếp với
LCD
- Tuy trong sơ đồ khối của LCD có nhiều khối khác nhau, nhưng khi lập trình điều
khiển LCD ta chỉ có thể tác động trực tiếp được vào 2 thanh ghi DR và IR thông qua
các chân DBx, và ta phải thiết lập chân RS, R/W phù hợp để chuyển qua lại giữ 2
thanh ghi này.
- Với mỗi lệnh, LCD cần một khoảng thời gian để hoàn tất, thời gian này có thể khá
lâu đối với tốc độ của MPU, nên ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD
thực thi xong lệnh hiện hành mới có thể ra lệnh tiếp theo.
- Địa chỉ của RAM (AC) sẽ tự động tăng (giảm) 1 đơn vị, mỗi khi có lệnh ghi vào
RAM.
* Các lệnh của LCD có thể chia thành 4 nhóm như sau :
• Các lệnh về kiểu hiển thị. VD : Kiểu hiển thị (1 hàng / 2 hàng), chiều dài
dữ liệu (8 bit / 4 bit), …
• Chỉ định địa chỉ RAM nội.
• Nhóm lệnh truyền dữ liệu trong RAM nội.
• Các lệnh còn lại .
Bảng 1.3 Tập lệnh LCD
Chương 1: Lí thuyết thiết kế