Thực tế trong quá trình thi thực hành hay thi vấn đáp, quá trình coi thi vàquản lý thời gian thi còn gặp nhiều khó khăn do đó để khắc phục cũng như cảitiến vấn dề này thi việc ứng dụng t
Trang 1
MỤC LỤC MỤC LỤC 1 A PHẦN MỞ ĐẦU 3 1 Đặt vấn đề 3 2 Phân tích đề tài 3 3 Phạm vi của đề tài và phương hướng mở rộng 3 B PHẦN NỘI DUNG 5 CHƯƠNG 1: KHẢO SÁT QUY TRÌNH THI THỰC HÀNH VÀ THI VẤN ĐÁP TẠI TRƯỜNG ĐẠI HỌC KỸ THUẬT - HẬU CẦN CAND 5 1.1 Khảo sát quy trình thi 5 1.1.1 Đối tượng điều tra 5 1.1.2 Thống kê mô tả đối tượng điều tra 5 a Khảo sát khoa điện tử viễn thông ( K3 ) 5 b Khảo sát khoa công nghệ thông tin ( K2 )5 c Khảo sát bộ môn tiếng anh ( B4 ) 6 d Khảo sát khoa mật mã và an ninh thông tin ( K1 ) 6 e Khảo sát khoa văn thư lưu trữ ( K4 ) 6 1.2 Kết quả khảo sát6 1.3 Xây dựng phương án 8 CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 9 2.1 Sơ đồ tổng quát 9 2.1.1 Sơ đồ khối 9 2.1.2 Chức năng các khối 9 2.2 Các linh kiện sử dụng trong mạch 9 2.2.1 Giới thiệu về vi điều khiển AT89C52 9 a Sơ đồ khối của AT89C52 10
b Mô tả các chân 11
c Các chế độ đặc biệt 13
d Các bít khoá bộ nhớ chương trình 14
e Tóm tắt tập lệnh của AT89c51 15
Trang 2
2.2.2 Giới thiệu LCD 16 a Chức năng các chân của Module LCD 16x2 17
b Mã lệnh của LCD HD4480 19
c Các bit viết tắt trong mã lệnh 23
d Mã Hex LCD 23 CHƯƠNG 3: THIẾT KẾ MẠCH 25
3.1 Thuật toán 25
3.2 Sơ đồ chi tiết các khối 26
3.2.1 Khối nguồn26
3.2.2 Khối hiển thị LCD 27
3.2.3 Khối xử lý AT89C52 28
3.2.4 Khối thao tác 28
3.2.5 Khối chấp hành 29
3.3 Sơ đồ nguyên lý 29
4.1 Các phần mềm dùng trong đề tài 32
4.2 Chương trình cho vi điều khiển 32
D TÀI LIỆU THAM KHẢO 43
Trang 3Hiện nay đã có rất nhiều ứng dụng khoa học được triển khai trong học tập vàgiảng dạy tuy nhiên còn nhiều hạn chế do hầu hết những thiết bị đã được triểnkhai hầu hết là các sản phẩm của thị trường chi phí cao và thiếu tính chủ độngtrong sửa chữa và lắp đặt triển khai Do đó thiết kế thiệt bị tính giờ phục vụ thithực hành trong các trường đại học là một ứng dụng thiết thực với chi phí thấphơn, đồng thời với vai trò là một trường kỹ thuật có sẵn linh kiện và các công cụthực hành, có thể chủ động trong chế tạo phục vụ nhu cầu lắp đặt và sử dụng Thực tế trong quá trình thi thực hành hay thi vấn đáp, quá trình coi thi vàquản lý thời gian thi còn gặp nhiều khó khăn do đó để khắc phục cũng như cảitiến vấn dề này thi việc ứng dụng thiết bị báo giờ tự động thông minh sẽ giảiquyết những vấn đề đặt ra và nâng cao chất lượng các cuộc thi.
- Thiết bị có khả năng chỉnh lại giờ
- Thiết bị có khả năng dừng tạm thời
Yêu cầu:
- Hệ thống làm việc ổn định
- Có khả năng đưa vào ứng dụng trong thực tế
Với thực tế bài toán này chúng ta phải thiết kế 3 thành phần cơ bản:
- Hệ thống điều khiển
- Màn hình hiển thị và đèn báo (chuông báo)
- Hệ thống bàn phím
3 Phạm vi của đề tài và phương hướng mở rộng
Do thời gian đề tài có hạn, kiến thức chuyên ngành và điều kiện cơ sở vật chất
phục vụ cho việc nghiên cứu còn hạn chế nên đề tài thiết kế thiết bị tính giờ phục
Trang 4
vụ thi thực hành và kiểm tra vấn đáp của chúng tôi chỉ nghiên cứu và phục vụcho các giờ kiểm tra thực hành và thi vấn đáp trong Trường Đại học Kỹ thuật -Hậu cần CAND
Phương hướng mở rộng của đề tài:
- Hiện tại, đề tài chỉ được nghiên cứu để áp dụng trong Trường Đại Học KỹThuật - Hậu Cần CAND Đề tài sẽ được nghiên cứu thêm để áp dụng cho tất cảcác trường đại học, cao đẳng, trung cấp có các môn thi vấn đáp và thực hànhtrong phạm vi cả nước
- Thiết kế Module điều chỉnh bằng quét phím ma trận hoặc giao tiếp bàn phímmáy tính có thể lập trình thời gian theo ý muốn của từng khoa, từng trường
- Xây dựng hệ thống đèn báo kèm theo chuông báo không dây sử dụng bộ thuphát sóng
Trang 5
B PHẦN NỘI DUNG
CHƯƠNG 1 KHẢO SÁT QUY TRÌNH THI THỰC HÀNH VÀ THI VẤN
ĐÁP TẠI TRƯỜNG ĐẠI HỌC KT - HC CAND.
1.1 Khảo sát quy trình thi
1.1.1 Đối tượng điều tra
Các học phần, các môn học của các khoa: K2( Khoa Công Nghệ ThôngTin), K3( Khoa Điện Tử Viên Thông), K1( Khoa Mật Mã Và An ninh ThôngTin), K4 ( Khoa Thư Lưu Trữ) và các bộ môn: B4( Bộ Môn Tiếng Anh)
1.1.2 Thống kê mô tả đối tượng điều tra
a Khảo sát khoa điện tử viễn thông ( K3 )
Khoa K3 tổ chức thi thực hành và vấn đáp các học phần: vật liệu và linh kiệnđiện tử, kỹ thuật vi xử lý, multimedia, hệ thống viễn thông, hệ thống thông tinquang, hệ thống bộ đàm, hệ thống thông tin di động… tại phòng thực hành tạinhà 301, 302, 303 nhà D
Quy trình thi do khoa K3 được tổ chức theo kế hoạch như sau:
Một phần thi kéo dài trong 30 Phút bao gồm:
- Phần bốc đề: Học viên bốc thăm hoặc giáo viên chấm thi lựa chọn ngẫu nhiên
1 trong số đề thi được đưa ra
- Phần chuẩn bị của học viên theo nội dung đề thi cho trước: thời gian 10 phút
- Phần trả lời câu hỏi( Thực hành hoặc trả lời theo yêu cầu của giáo viên chấmthi): thời gian 20 phút
- Kết thúc phần thi
b Khảo sát khoa công nghệ thông tin ( K2 )
Khoa K2 tổ chức thi thực hành với máy tính tại các phòng máy 402 nhàD6,402,403 nhà D4 gồm các học phần: hệ điều hành, thực tập cơ sở, lập trìnhweb, thiết kế và đánh giá hiệu năng mạng máy tính, bảo trì hệ thống máy tính…Một phần thi kéo dài trong 30 đến 40 phút tùy theo thi thực hành hoặc thi hếthọc phần bao gồm:
- Phần bốc đề của học viên
- Phần chuẩn bị của học viên: Thời gian 20 đến 30 phút
- Phần chấm điểm và đặt câu hỏi thêm của giáo viên chấm thi: Thời gian 10phút
(Lưu ý: Trong thời gian làm bài có thể xảy ra sự cố thì dừng thời gian làm bài đểsửa chữa máy tính bị lỗi )
Trang 6
- Kết thúc phần thi
c Khảo sát bộ môn bộ môn tiếng anh ( B4 )
Các học phần thi thực hành bao gồm: tiếng anh II, tiếng anh chuyên ngành I,tiếng anh chuyên ngành II
Một phần thi thực hành sẽ được tiến hành trong thời gian 35 phút bao gồm:
- Học viên bốc đề: Học viên bốc ngẫu nhiên trong số đề thi được đưa ra
- Học viên về vị trí chuẩn bị câu trả lời: thời gian 15 phút
- Giáo viên gọi học viên lên làm bài thi
- Học viên trả lời theo topic đã bốc( Giáo viên hỏi thêm câu hỏi theo topic củahọc viên đã bốc): Thời gian 20 phút
- Kết thúc bài thi
d Khảo sát khoa mật mã và an ninh thông tin ( K1 )
Các học phần thi thực hành: tin học văn phòng, máy mã thoại, vv
Một phần thi thực hành trên phòng mật mã bao gồm quy trình như sau:
- Giáo viên phát đề cho học viên
- Học viên làm bài theo yêu cầu của đề thi yêu cầu: Thời gian 20 phút
- Giáo viên chấm thi chấm bài trong thời gian học viên thục hành
- Kết thúc phần thi
e Khảo sát khoa văn thư lưu trữ ( K4 )
Khoa K4 tổ chức thi thực hành trên máy tính với các học phần: kỹ thuật soạnthảo văn bản trên máy tính, nghiệp vụ lưu trữ, quản trị văn phòng vv, tính thờigian theo quy trình như sau:
- Giáo viên phát đề cho từng học viên hoặc học viên bốc đề thi
- Học viên làm bài thi: thời gian kiểm tra là 20 phút, thời gian thi hết học phần
Ghi chú
Trang 7bị có sự cố thí sinhtạm dừng thời gianthi.
Phần chuẩn bị 10 phútPhần làm bài thi 20 phútKết thúc bài thi
Trong thời gian thimáy tính bị lỗi họcviên dừng bài thi đểgiáo viên sửa lỗimáy, tiếp tục bài thisau khi máy hoạtđộng bình thườngtrở lại
Phần làm bài thi 20-30
phútPhần chấm thi và
trả lời câu hỏi thêmcủa giáo viên 10 phút
Học viên về vị tríchuẩn bị câu trả
Giáo viên gọi họcviên lên làm bàithi
Học viên trả lờitheo topic đã bốc(Trả lời câu hỏithêm của giáoviên)
20 phút
Giáo viên phát đềcho từng học viênhoặc học viên bốc
đ ề thi
Trang 8Thời gian kiểm tra
là 20 phút, thời gianthi hết học phần là
30 phút
Học viên làm bàithi
20 phút
Học viên rời khỏi
vị trí làm bài, giáoviên chấm bài thi
20 phút
Trong quá trình thithiết bị gặp sự cốhọc viên tạm dừngphần thi, sau khi sửachữa, học viên tiếptục làm bài
Học viên làm bàitheo yêu cầu của
đề thi kết hợp giáoviên chấm bài thicủa học viên trongkhi làm bài
CHƯƠNG 2 THIẾT KẾ HỆ THỐNG 2.1 Sơ đồ tổng quát
2.1.1 Sơ đồ khối:
Khối nguồn Thông
báo
Trang 9
Hình 2.2.1: Sơ đồ khối
2.1.2 Chức năng các khối
- Khối nguồn: Cung cấp nguồn nuôi tất cả linh kiện trong mạch.
- Khối điều chỉnh: Chức năng của khối này là sử dụng ngắt của 89C52 để
yêu cầu việc điều chỉnh time theo ý của người sử dụng, cài đặt time ban đầu chođồng hồ Tác động bởi các phím bấm (BUTTON)
- Khối đèn báo: Khối này gồm có 1 LED, đèn sáng khi có mức điện áp thay
đổi liên tục ở chân ra của vi điều khiển
- Khối hiển thị: Khối này thực chất là LCD 16x2 để hiển thị time và các
thông tin mà lập trình viên cần hiển thị
- Khối xử lý (vi điều khiển AT89C52): Vi điều khiển 89C52 là trung tâm xử
lý các thông tin của mạch Cụ thể là :
AT89C52 đảm nhiệm việc đọc thời gian, chuyển đổi dữ liệu qua lại giữa RTCvới LCD để có thể hiển thị lên LCD
Điều khiển LCD
Kiểm tra phím bấm
Điều khiển đèn LED
2.2 Các linh kiện sử dụng trong mạch
2.2.1 Giới thiệu về AT89C52
AT89C52 là họ IC vi điều khiển do hãng Atmel sản xuất Các sản phẩmAT89C52 thích hợp cho những ứng dụng điều khiển Việc xử lý trên byte và cáctoán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất
dữ liệu nhanh trên RAM nội Tập lệnh cung cấp một bảng tiện dụng của nhữnglệnh số học 8 bit gồm cả lệnh nhân và lệnh chia Nó cung cấp những hổ trợ mởrộng trên chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt chophép quản lý và kiểm tra bit trực tiếp trong hệ thống điều khiển
AT89C52 cung cấp những đặc tính chuẩn như: 8Kbyte bộ nhớ chỉ đọc cóthể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3 TIMER/
Trang 10
COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bánsong công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP
Các đặc điểm của chip AT89C52 được tóm tắt như sau:
- 8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xoá
- Tần số hoạt động từ: 0Hz đến 24 MHz
- bộ Timer/counter 16 Bit
- 128 Byte RAM nội
- 4 Port xuất /nhập I/O 8 bit
- Giao tiếp nối tiếp
- 64 KB vùng nhớ mã ngoài
- 64 KB vùng nhớ dữ liệu ngoại
- 4 bit cho hoạt động nhân hoặc chia
a Sơ đồ khối của AT89C52
b Mô tả chân AT89C52
Sơ đồ chân AT89C52
Mặc dù các thành viên của họ 89C52 (ví dụ 8751, 89S52, 80C51, DS5000)đều có các kiểu đóng vỏ khác nhau, chẳn (Quad Flat Pakage) và dạng chip không
có chân đỡ LCC (Leadless Chip Carrier) thì chúng đều có 40 chân cho các chức
Trang 11năng khác nhau như vào ra I/O, đọc RD giới hạn như hai hàng chân DIP (DualIn
- LinePakage), dạng vỏ dẹt vuông QPF, ghi WR, địa chỉ, dữ liệu và ngắt Cầnphải lưu ý một số hãng cung cấp một phiên bản 89C52 có 20 chân với số cổngvào ra ít hơn cho các ứng dụng yêu cầu thấp hơn Tuy nhiên vì hầu hết các nhàphát triển sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta chỉ tậptrung mô tả phiên bản này
Hình 2.2.1.b1 Sơ đồ AT89C52
Chức năng của các chân AT 89C52
- Port 0: từ chân 32 đến chân 39 (P0.0 ÷ P0.7) Port 0 có 2 chức năng: trong
các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường
IO, đối với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ vàbus dữ liệu
- Port 1: từ chân 1 đến chân 9 (P1.0 ÷ P1.7) Port 1 là port IO dùng cho giao
tiếp với thiết bị bên ngoài nếu cần
- Port 2: từ chân 21 đến chân 28 (P2.0 ÷ P2.7) Port 2 là một port có tác dụng
kép dùng như các đường xuất/nhập hoặc là byte cao của bus địa chỉ đối với cácthiết bị dùng bộ nhớ mở rộng
- Port 3: từ chân 10 đến chân 17 (P3.0 ÷ P3.7) Port 3 là port có tác dụng kép.
Các chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệđến các đặc tính đặc biệt của AT89C52 như ở bảng sau:
P3.0 RXD Ngõ vào dữ liệu nối tiếp
P3.1 TXD Ngõ xuất dữ liệu nối tiếp
Trang 12
P3.2 INT0 Ngõ vào ngắt cứng thứ 0
P3.3 INT1 Ngõ vào ngắt cứng thứ 1
P3.6 WR Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD Tín hiệu đọc bộ nhớ dữ liệu ngoài
- PSEN (Program store enable): PSEN là tín hiệu ngõ ra có tác dụng cho phép
đọc bộ nhớ chương trình mở rộng và thường được nối đến chân OE của Epromcho phép đọc các byte mã lệnh PSEN ở mức thấp trong thời gian AT89C52 lấylệnh Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu, đượcchốt vào thanh ghi lệnh bên trong AT89C52 để giải mã lệnh Khi AT89C52 thihành chương trình trong ROM nội, PSEN ở mức cao
- ALE (Address Latch Enable): Khi AT89C52 truy xuất bộ nhớ bên ngoài, Port
0 có chức năng là bus địa chỉ và dữ liệu do đó phải tách các đường dữ liệu và địachỉ Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợpcác đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt Tín hiệu ở chân ALE
là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốtđịa chỉ hoàn toàn tự động
- EA (External Access): Tín hiệu vào EA (chân 31) thường được mắc lên mức
1 hoặc mức 0 Nếu ở mức1, AT89C52 thi hành chương trình từ ROM nội Nếu ởmức 0, AT89C52 thi hành chương trình từ bộ nhớ mở rộng Chân EA được lấylàm chân cấp nguồn 21V khi lập trình cho Eprom trong AT89C52
- RST (Reset): Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ máy,
các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống.Khi cấp điện mạch phải tự động reset Các giá trị tụ và điện trở được chọn là:R1=10Ω, R2=220Ω, C=10 µF được mô tả trong hình 2.2.1-b2
Trang 13
Hình 2.2.1-b2 - Sơ đồ chân RST
- Các ngõ vào bộ dao động X1, X2: Bộ tạo dao động được tích hợp bên trong
89C52 Khi sử dụng 89C52, người ta chỉ cần nối thêm thạch anh và các tụ Tần
số thạch anh tùy thuộc vào mục đích của người sử dụng, giá trị tụ thường được chọn là 33p
Hình 2.2.1- b3 Ngõ vào bộ dao động
c Các chế độ đặc biệt
Chế độ nghỉ
Trong chế độ nghỉ, CPU tự đi vào trạng thái ngủ trong khi tất cả các ngoại
vi bên trong chip vẫn tích cực Chế độ này được điều khiển bởi phần mềm Nộidung của RAM trên chip và của tất cả các thanh ghi chức năng đặc biệt vẫnkhông đổi trong khi thời gian tồn tại chế độ này Chế độ nghỉ có thể được kếtthúc bởi một ngắt bất kỳ nào được phép hoặc bằng cách reset cứng
Ta cần lưu ý rằng khi chế độ nghỉ được kết thúc bởi một reset cứng, chip viđiều khiển sẽ tiếp tục bình thường việc thực thi chương trình từ nơi chương trình
bị tạm dừng, trong vòng 2 chu kỳ máy trước khi giải thuật reset phần mềm nắmquyền điều khiển
Ở chế độ nghỉ, phần cứng trên chip cẫm truy xuất RAM nội nhưng cho
phép truy xuất các chân của các port Để tránh khả năng có một thao tác ghi không mong muốn đến một chân port khi chế độ nghỉ kết thúc bằng reset, lệnh
tiếp theo yêu cầu chế độ nghỉ không nên là lệnh ghi đến chân port hoặc đến bộnhớ ngoài
Chế độ nguồn giảm
Trong chế độ này, mạch dao động ngừng hoạt động và lệnh yêu cầu chế độnguồn giảm là lệnh sau cùng được thực thi RAM trên chip và các thanh ghichức năng đặc biệt vẫn duy trì các giá trị của chúng cho đến khi chế độ nguồngiảm kết thúc Chỉ có một cách ra khỏi chế độ nguồn giảm, đó là reset cứng
Trang 14
Việc reset sẽ xác định lại các thanh ghi chức năng đặc biệt nhưng không
làm thay đổi RAM trên chip Việc reset không nên xảy ra (chân reset ở mức tích
cực) trước khi Vcc được khôi phục lại mức điện áp bình thường và phải kéo dàitrạng thái tích cực của chân reset đủ lâu để cho phép mạch dao động hoạt độngtrở lại và đạt trạng thái ổn định
Trạng thái của các chân trong thời gian tồn tại chế độ nghỉ và chế độ nguồngiảm được cho trong bảng sau:
Chế độ
Bộ nhớ Chương trình
AL E
PSE N
PORT O
PORT 1
PORT 2
PORT 3
Nghỉ Bên trong 1 1 Dữ liệu Dữ liệu Dữ liệu Dữ liệuNghỉ Bên ngoài 1 1 Thả nổi Dữ liệu Dữ liệu Dữ liệuNguồn
và được chốt trong khi reset Nếu việc cấp nguồn cho chip không có công dụngreset, mạch chốt được khởi động bằng một giá trị ngẫu nhiên và giá trị này đượcduy trì cho đến khi có tác động reset Điều cần thiết là giá trị được chốt của phải phù hợp vơi mức logic hiện hành ở chân này
1 U U U Không có đặc trưng khóa chương trình
2 P U U Các lệnh MOVC được thực thi từ bộ nhớ
chương trình ngoài không được phép tìm nạplệnh từ bộ nhớ nội, được lấy mẫu và được
chốt khi reset, hơn nữa việc lập trình trên
Trang 15ADD A,soure: cộng toán hạng vào A
SUBB A,soure: trừ bớt A bởi toán hạng nguồn
INC A: tăng giá trị A lên 1
DEC A: giảm A xuống 1
MUL AB: nhân A với B
DIV AB: chia A bởi B
DA ; hiệu đính
Nhóm lệnh logic
ANL A,soure : lệnh nhân logic
ORL A,soure : lệnh cộng logic
XRL A,soure : lệnh xor logic
RL A : quay trái
RR A : quay phải
CLR A : xóa A
Nhóm lệnh di chuyển dữ liệu:
MOV A,soure : di chuyển toán hạng nguồn đến đích
MOVC A,@A+DPTR: di chuyển từ bộ nhớ chương trình
MOVX A,@Ri: di chuyển từ bộ nhớ dữ liệu
Trang 16
PUSH direct: cất vào stack
POP direct: lấy ra stack
XCH A,soure : trao đổi các byte
XCHD A,@Ri: trao đổi các digit thấp
Nhóm lệnh rẽ nhánh:
ACALL addr: gọi chương trình con
RET: quay chương trình con
RETI: quay về từ chương trình phục vụ ngắt
Trang 170= thanh ghi lệnh1=thanh ghi dữ liệu
1=đọc từ LCD module
Các chân điều khiển việc đọc và ghi LCD bao gồm RS, R/W và EN
- RS (chân số 3): Chân lựa chọn thanh ghi (Select Register), chân này cho phép
lựa chọn 1 trong 2 thanh ghi IR hoặc DR để làm việc Vì cả 2 thanh ghi này đềuđược kết nối với các chân Data của LCD nên cần 1 bit để lựa chọn giữa chúng.Nếu RS=0, thanh ghi IR được chọn và nếu RS=1 thanh ghi DR được chọn.Chúng ta đều biết thanh ghi IR là thanh ghi chứa mã lệnh cho LCD, vì thế nếumuốn gởi 1 mã lệnh đến LCD thì chân RS phải được reset về 0 Ngược lại, khi
Trang 18
muốn ghi mã ASCII của ký tự cần hiển thị lên LCD thì chúng ta sẽ set RS=1 đểchọn thanh ghi DR Hoạt động của chân RS được mô tả trong hình 2.2.2.a
Hình 2.2.2a: Hoạt động của chân RS.
- R/W (chân số 4): Chân lựa chọn giữa việc đọc và ghi Nếu R/W=0 thì dữ liệu
sẽ được ghi từ bộ điều khiển ngoài (vi điều khiển AVR chẳng hạn) vào LCD.Nếu R/W = 1 thì dữ liệu sẽ được đọc từ LCD ra ngoài Tuy nhiên, chỉ có duynhất 1 trường hợp mà dữ liệu có thể đọc từ LCD ra, đó là đọc trạng thái LCD đểbiết LCD có đang bận hay không (cờ Busy Flag - BF) Do LCD là một thiết bịhoạt động tương đối chậm (so với vi điều khiển), vì thế một cờ BF được dùng đểbáo LCD đang bận, nếu BF=1 thì chúng ta phải chờ cho LCD xử lí xong nhiệm
vụ hiện tại, đến khi nào BF=0 một thao tác mới sẽ được gán cho LCD Vì thế,khi làm việc với Text LCD chúng ta nhất thiết phải có một chương trình con tạmgọi là wait_LCD để chờ cho đến khi LCD rảnh Có 2 cách để viết chương trìnhwait_LCD Cách 1 là đọc bit BF về kiểm tra và chờ BF=0, cách này đòi hỏi lệnhđọc từ LCD về bộ điều khiển ngoài, do đó chân R/W cần được nối với bộ điềukhiển ngoài Cách 2 là viết một hàm delay một khoảng thời gian cố định nào đó(tốt nhất là trên 1ms) Ưu điểm của cách 2 là sự đơn giản vì không cần đọc LCD,
do đó chân R/W không cần sử dụng và luôn được nối với GND Tuy nhiên,nhược điểm của cách 2 là khoảng thời gian delay cố định nếu quá lớn sẽ làmchậm quá trình thao tác LCD, nếu quá nhỏ sẽ gây ra lỗi hiển thị
- EN (chân số 5): Chân cho phép LCD hoạt động (Enable), chân này cần được
kết nối với bộ điều khiển để cho phép thao tác LCD Để đọc và ghi data từ LCDchúng ta cần tạo một “xung cạnh xuống” trên chân EN, nói theo cách khác,muốn ghi dữ liệu vào LCD trước hết cần đảm bảo rằng chân EN=0, tiếp đến xuất
dữ liệu đến các chân D0÷7, sau đó set chân EN lên 1 và cuối cùng là xóa EN về
0 để tạo 1 xung cạnh xuống
Để hiển thị chữ cái và con số, mã ASCII của các chữ cái từ A đến Z, a đến z vàcác con số từ 0 ÷ 9 được gửi tới các chân D0 ÷ D7 khi RS = 1 Các mã lệnhđược gửi tới LCD để xóa màn hình hoặc đưa con trỏ về đầu dòng…( được liệt kêtrên bảng trên) thông các chân D0 ÷ D7 Có thế sử dụng RS = 0 để kiểm tra bit
cờ bận xem LCD đã sẵn sàng nhận thông tin chưa Khi R/W = 1 và RS = 0: NếuD7 = 1 ( cờ bận bằng 1) - LCD đang bận các công việc bên trong và sẽ không
Trang 19- Thanh ghi DR: Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng RAMDDRAM hoặc CGRAM ( ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng RAMnày gửi ra cho MPU (ở chế độ đọc)
- Cờ báo bận BF: (Busy Flag) Khi đang thực thi các hoạt động bên trong, 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ậpRS=0, R/W=1) lên để cho biết nó đang “bận”
- Bộ đếm địa chỉ AC: (Address Counter) Khi một địa chỉ lệnh được nạp vào thanhghi IR, thông tin được nối trực tiếp cho 2 vùng RAM (việc chọn lựa vùng RAMtươ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ị Bộ nhớ LCD Vùng RAM hiển thịDDRAM: (Display Data RAM)
R S
R/
W
D B0
D B1
D B2
D B3
D B4
D B5
D B6
D B7
Xóa màn
hình
Xóa màn hình đưa con trỏ về
vị trí đầu
1.64ms
Đưa con
trỏ về vị
Đưa con trỏ về vị trí đầu 1.64ms
Trang 20Thiết lập hướng dịch chuyển con trỏ(I/
D), dịch hiển thị(S)
bật tắt chế
độ nhấp nháy con trỏ
Trang 21và địa chỉ của
CGRAM hoặc DDRAM(
tùy vào lệnh trướcđó)
- Định vị trí con trỏ cho DDRAM: di chuyển con trỏ đến một vị trí tùy ý trongDDRAM và vì thế có thể được dùng để chọn vị trí cần hiển thị trên LCD Đểthực hiện lệnh này cần reset RS=0 Bit MSB của mã lệnh (D7) phải bằng 1, 7 bitcòn lại của mã lệnh chính là địa chỉ DDRAM muốn di chuyển đến Ví dụ chúng
ta muốn di chuyển con trỏ đến vị trí thứ 3 trên dòng 2 của LCD (địa chỉ 42)chúng ta cần ghi mã lệnh 0xAA vì 0xAA=10101010 (binary) trong đó bit MSBbằng 1, bảy bit còn lại là 0101010 = 42 địa chỉ của ô nhớ muốn đến
- Ghi dữ liệu vào CGRAM hoặc DDRAM: vì đây không phải là lệnh ghiinstruction mà là 1 lệnh ghi dữ liệu nên chân RS cần được set lên 1 trước khi ghilệnh vào LCD Lệnh này cho phép ghi mã ASCII của một ký tự cần hiển thị vàothanh ghi DDRAM Trường hợp ghi vào CGRAM không được khảo sát