đo nhiệt độ dùng ic số ds18b20 hiển thị lcd giao tiếp máy tính
Trang 1KHOA Đ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
Trang 2Đạ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
Trang 3Phần A GIỚI THIỆU
LỜI NÓI ĐẦU
Trang 4Lờ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
Trang 5Mụ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
Trang 6Chươ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
Trang 7Bả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.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
Trang 8Hì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
Trang 9Phần B NỘI DUNG
Trang 10Chươ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
Trang 11
- 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
Trang 121.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 độ -55oC đến 125oC, từng bậc 0,5oC, có thể đạt độ chính xác đến 0,0625oC 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à
Trang 13cho 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
Trang 14Hì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
Trang 15- 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
Trang 16thanh 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
- 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
Trang 171.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
Trang 18* Ghi chú : Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thông tin từ LCD thông qua
Trang 19Hì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
Trang 20CGRAM 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
Trang 21Hì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
Trang 221.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
Trang 23Hì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)
Trang 24- 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ự.
Trang 25- 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
Trang 26Hình 1.13 Hoạt động dịch trái và dịch phải nội dung hiển thị
Trang 27Hình 1.14 Kiểu con trỏ, kiểu kí tự và nhấp nháy kí tự
Bảng 1.4 Hoạt động lệnh Cursor or display shift
Trang 28Bảng 1.5 Tập lệnh LCD
Trang 291.3.5 Giao tiếp giữa LCD và MPU :
1.3.5.1 Đặc tính điện của các chân giao tiếp :
- LCD sẽ bị hỏng nghiêm trọng, hoặc hoạt động sai lệch nếu bạn vi phạm khoảng
đặc tính điện sau đây:
Bảng 1.6 Maximun Rating
- Đặc tính điện làm việc điển hình: (Đo trong điều kiện hoạt động Vcc = 4.5V đến 5.5V, T = -30 đến +75C)
Trang 30Bảng 1.7 Miền làm việc bình thường
1.3.5.2 Bus Timing:
Hình 1.15 Viết LCD
Trang 31Bảng 1.8 Thời gian tác động Write
Hình 1.16 Đọc LCD Bảng 1.9 Thời gian tác động Read