Một trongnhững ứ ngdụ ng phổ biến trong quảng cáo là thô ng tinđược hiể n thị trên 
led ma trận, để giúp người học hiể u được nguyê n lý điều khiể n ledma trận như thế nào thì 
trong hệ thố ng có thiết kế giao tiếp với 4 led ma trận 8x8 hai màu xanh và đỏ. Sơ đồ 
nguyên lý trìnhbàyở hình6-1và hình trên bộ thínghiệ m là 6-2.
                
              
                                            
                                
            
 
            
                 25 trang
25 trang | 
Chia sẻ: maiphuongdc | Lượt xem: 2280 | Lượt tải: 5 
              
            Bạn đang xem trước 20 trang tài liệu Thực tập Vi xử lý - Hệ thống vi điều khiển dùng bộ nhớ trong, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 1 
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT 
KHOA ĐIỆN TỬ – BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 
___________________________ 
THỰC TẬP VI XỬ LÝ 
TRƯƠNG NGỌC ANH 
NĂM 2007 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 2 
LỜI GIỚI THIỆU 
Sau khi đã tìm hiểu kiến thức về vi điều khiển thì bạn có thể bắt đầu thực hiện các 
bài thực hành đối với vi điều khiển để giúp bạn hiểu rõ hơn những gì bạn đã đọc. 
Các ứng dụng của điều khiển rất đa dạng nên trong chương này sẽ giới thiệu đến 
các bạn một bộ thí nghiệm vi điều khiển tương đối đầy đủ các yêu cầu phần cứng và rất 
nhiều chương trình điều khiển có thể giúp bạn thực hành, thí nghiệm và có thể tự nghiên 
cứu, tự học. 
Bộ thí nghiệm vi điều khiển này có thể sử dụng được nhiều loại vi điều khiển 
89C51, 89C52, 89S51, 89S52, 89S8252, 89C1051, 89C2051 và 89C4051. Bộ thí nghiệm có 
thể nạp chương trình cho nhiều loại vi điều khiển như vừa nêu ra ở trên. 
Đặc biệt là vi điều khiển 89S51, 89S52 và 89S8252 có thể nạp chương trình ngay 
trong hệ thống đang chạy – điều này tiết kiệm cho bạn không phải mất nhiều thời gian 
trong quá trình gắn vào bo nạp rồi sau khi nạp xong lại gắn vào bo chạy nếu không đúng 
phải làm đi làm lại nhiều lần đối với họ 89C – dĩ nhiên 89C vẫn có thể làm được nhưng 
mạch điện khá phức tạp. Điều tiện lợi thứ 2 là đối với 89C bạn tháo gắn IC trên các 
socket nạp và nếu bạn gắn ngược thì có thể làm hỏng IC, còn 89S thì do không cần tháo 
gắn nên điều này sẽ không xảy ra. 
Chương trình sử dụng cho bộ thí nghiệm này là MCS_52 rất dễ sử dụng, cho phép 
bạn soạn thảo và biên dịch chương trình một cách nhanh chóng, dễ dàng tìm ra lỗi trong 
chương trình. 
Các phần tiếp theo sẽ trình bày chi tiết cấu hình bộ thí nghiệm, cách sử dụng 
chương trình và cung cấp các bài thí nghiệm thực hành có thể phục vụ cho các bạn tự thực 
hành. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 3 
HỆ THỐNG VI ĐIỀU KHIỂN DÙNG BỘ NHỚ TRONG. 
Vi điều khiển 89XX có 4 port (từ port 0 đến port 3) được nối với các pinheader. Sơ 
đồ nguyên lý như hình 1 và hình bố trí linh kiện trong bộ thí nghiệp như hình 8-2. 
Trong hình 2 có 1 socket để gắn vi điều khiển vào thực hiện các thí nghiệm, chiều 
gắn IC vào giống như hình trên. Có 4 jumper [JP] để giao tiếp tín hiệu vào ra. 
Hình 1. Sơ đồ mạch của hệ thống. 
Hình 2. Hình ảnh thực tế của module vi điều khiển. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 4 
1. GIAO TIẾP VỚI LED ĐƠN 
Một trong những ứng dụng đơn giản để sử dụng 4 port của vi điều khiển xuất dữ liệu 
làm quen với lập trình ta có một hệ thống 32 led đơn có kết nối với 4 pinheader 8 chân. 
Khi muốn dùng port 1 để điều khiển 8 led thì chỉ cần dùng một bus dây 8 sợi kết nối 
2 pinheader 8 chân từ hệ thống vi điều khiển đến hệ thống led đơn. 
Sơ đồ mạch của 32 led đơn (do giống nhau nên chỉ trình bày 8 led) như hình 8-3 và 
sơ đồ bố trí linh kiện như hình 1-1: 
Hình 1-1. Sơ đồ nguyên lý của 32 led. 
Hình 1-2. Sơ đồ linh kiện trên bộ thí nghiệm của 32 led đơn. 
4 pinheader dùng để kết nối với 32 led, ngõ vào mức 1 thì led sáng, mức 0 led 
tắt. Do sử dụng led 10 ly và để tăng cường độ sáng nên trong mạch sử dụng các IC 
đệm 2803 và dùng nguồn 12V và điện trở hạn dòng cho mỗi led là 1k. 
Chức năng của khối hiển thị led đơn dùng để kết nối với 4 port của vi điều khiển 
thực hiện các chương trình điều khiển led làm quen với lập trình vi điều khiển. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 5 
2. GIAO TIẾP TRỰC TIẾP VỚI 2 LED 7 ĐOẠN 
Trong thực tế có nhiều ứng dụng trong ta chỉ sử dụng một hay hai led 7 đoạn như hệ 
thống đếm giây, đếm sản phẩm, hệ thống hẹn giờ nên trong hệ thống thí nghiệm này có 
thiết kế thêm phần giao tiếp với 2 led 7 đoạn loại anode chung để tiện cho việc sử dụng. 
Sơ đồ mạch giao tiếp của 2 led đã qua điện trở hạn dòng và có 2 pinheader để nhận tín 
hiệu như hình 8-5 và hình trên bộ thí nghiệm như hình 8-6 
Hình 2-1. Sơ đồ nguyên lý của 2 led 7 đoạn. 
 Hình 2-2. Sơ đồ linh kiện trên bộ thí nghiệm của 2 led 7 đoạn. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 6 
3. GIAO TIẾP VỚI 8 LED 7 ĐOẠN THEO PHƯƠNG PHÁP QUÉT 
Hình 3-1. Sơ đồ giao tiếp với led 7 đoạn. 
Hình 3-2. Sơ đồ linh kiện trên bộ thí nghiệm của 8 led 7 đoạn. 
Trong các ứng dụng điều khiển, nhiều thông tin được nhập từ bàn phím cũng như các 
thông tin hiển thị trên các led 7 đoạn ví dụ như thiết lập nhiệt độ khống chế và đo nhiệt độ 
của một hệ thống. 
Trong bộ thí nghiệm có thiết kế giao tiếp với 8 led 7 đoạn loại anode chung theo 
phương pháp quét. Sơ đồ nguyên lý của led 7 đoạn và ma trận phím như hình 8-5 và hình 
8-6. 
Để điều khiển 8 led 7 đoạn phải dùng 16 đường điều khiển: 8 đường điều khiển 7 
đoạn a, b, c, d, e, f, g, dp và 8 đường điều khiển đóng ngắt 8 transistor. 
Tại mỗi một thời điểm ta chỉ cho 1 tranistor dẫn và 7 transistor còn lại tắt, dữ liệu 
gởi ra sẽ sáng trên led tương ứng với transistor dẫn. Sau đó cho 1 transistor khác dẫn và 
gởi dữ liệu hiển thị cho led đó, quá trình điều khiển này diễn ra lần lượt cho đến khi hết 8 
led. 
Với tốc độ gởi dữ liệu nhanh và do mắt có lưu ảnh nên ta nhìn thấy 8 led sáng cùng 
1 lúc. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 7 
* Mã quét: mức logic 0 thì transistor dẫn, mức logic 1 thì transistor ngắt. 
MÃ HEX Mã quét điều khiển các transistor 
FEh 1 1 1 1 1 1 1 0 Transistor 1 ON 
FDh 1 1 1 1 1 1 0 1 Transistor 2 ON 
FBh 1 1 1 1 1 0 1 1 Transistor 3 ON 
F7h 1 1 1 1 0 1 1 1 Transistor 4 ON 
EFh 1 1 1 0 1 1 1 1 Transistor 5 ON 
DFh 1 1 0 1 1 1 1 1 Transistor 6 ON 
BFh 1 0 1 1 1 1 1 1 Transistor 7 ON 
7Fh 0 1 1 1 1 1 1 1 Transistor 8 ON 
* Mã 7 đoạn: trong hệ thống sử dụng led 7 đoạn loại Anode chung nên mức logic 0 
thì led sáng và mức logic 1 thì led tắt. 
Số hex dp g f e d c b a Mã số hex 
0 1 1 0 0 0 0 0 0 C0 
1 1 1 1 1 1 0 0 1 F9 
2 1 0 1 0 0 1 0 0 A4 
3 1 0 1 1 0 0 0 0 B0 
4 1 0 0 1 1 0 0 1 99 
5 1 0 0 1 0 0 1 0 92 
6 1 0 0 0 0 0 1 0 82 
7 1 1 1 1 1 0 0 0 F1 
8 1 0 0 0 0 0 0 0 80 
9 1 0 0 1 0 0 0 0 90 
A 1 0 0 0 1 0 0 0 88 
B 1 0 0 0 0 0 1 1 83 
C 1 1 0 0 0 0 1 0 C2 
D 1 0 1 0 0 0 0 1 A1 
E 1 0 0 0 0 1 1 0 86 
F 1 0 0 0 1 1 1 0 8E 
Các mã khác bạn có thể tự thiết lập. 
Các transistor và các điện trở gắn bên dưới bo mạch nên bạn sẽ không nhìn thấy trong hình. 
Trong hệ thống thí nghiệm này bàn phím có thể phục vụ cho hệ thống 2 để nhập các mã 
lệnh và các thông số nhưng cũng có thể phục vụ cho các thí nghiệm làm quen với bàn phím. 
Với led 7 đoạn thì có thể cho phép hiển thị chữ và số - khi đó có rất nhiều chương 
trình ứng dụng có thể thực hiện được trên hệ thống này như chương trình đếm sản phẩm, 
chương trình đếm tần số, chương trình đồng hồ số, chương trình đồng hồ thể thao … 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 8 
4. ỨÙNG DỤNG GIAO TIẾP VỚI MA TRẬN 24 PHÍM 
Trong bộ thí nghiệm có một ma trận 8x3 tạo thành một bàn phím có 24 phím giao 
tiếp với IC 8279 chuyên về quét phím kết nối với hệ thống II nhưng cũng có thể hoạt động 
giao tiếp với hệ thống I bằng cách chuyển 12 switch sang vị trí off để cách ly với IC 8279 
như hình 4-1 và hình trên bộ thí nghiệm là 4-2. 
Bàn phím tổ chức theo dạng ma trận 8 hàng và 3 cột nên tổng số phím là 24 phím được 
kết nối với một switch màu đỏ. Khi thực hiện các thí nghiệm liên quan đến bàn phím thì bạn 
phải chuyển 12 switch sang vị trí off 
Hình 4-1. Sơ đồ giao tiếp với 24 phím. 
Hình 4-2. Sơ đồ linh kiện trên bộ thí nghiệm của 24 phím. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 9 
5. ỨNG DỤNG GIAO TIẾP VỚI THANH GHI DỊCH 8 BIT 6B595. 
Để mở rộng thêm số lượng tín hiệu điều khiển có thể sử dụng nhiều phương pháp, 
một phương pháp đơn giản nhất là sử dụng thanh ghi dịch. Trong bộ thí nghiệm này có sử 
dụng một thanh ghi dịch 6b595 có sơ đồ nguyên lý như hình 8-11 và hình trên bộ thí 
nghiệm như 8-12. 
Hình 5-1. Sơ đồ giao tiếp với ma trận led 8x8. 
Hình 5-2. Hình trên bộ thí nghiệm. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 10 
6. GIAO TIẾP VỚI LED MA TRẬN LED 8X8 
 Một trong những ứng dụng phổ biến trong quảng cáo là thông tin được hiển thị trên 
led ma trận, để giúp người học hiểu được nguyên lý điều khiển led ma trận như thế nào thì 
trong hệ thống có thiết kế giao tiếp với 4 led ma trận 8x8 hai màu xanh và đỏ. Sơ đồ 
nguyên lý trình bày ở hình 6-1 và hình trên bộ thí nghiệm là 6-2. 
Hình 6-1a. Sơ đồ giao tiếp với ma trận led 8x8. 
Các hàng sử dụng IC đệm 2803 và transistor, còn các cột sử dụng thanh ghi dịch 
6B595. Led ma trận có 2 màu xanh và đỏ có 8 đường điều khiển hàng và 5 đường điều 
khiển cột màu xanh và 5 đường điều khiển cột màu đỏ – tổng cộng là 18 đường được kết 
nối với 3 pinheader. 
Với phần cứng đã thiết kế ở trên sử dụng led ma trận 8x8 có 2 màu xanh và đỏ, để 
điều khiển led ma trận sáng ta tiến hành gởi dữ liệu ra hàng và mã quét ra cột. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 11 
Hình 6-1b. Sơ đồ giao tiếp với ma trận led 8x8 (tiếp theo). 
Hình 6-2. Hình ảnh thật bố trí trên bộ thí nghiệm. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 12 
7. MẠCH THU PHÁT HỒNG NGOẠI 
Sơ đồ mạch thu phát hồng ngoại như hình 7-1 và hình trên bộ thí nghiệm như hình 7-
2. 
Hình 7-1. Sơ đồ mạch thu phát hồng ngoại. 
Hình 7-2. Hình mạch thu phát trên bộ thí nghiệm. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 13 
8. GIAO TIẾP ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC CÔNG SUẤT NHỎ 
Có nhiều loại động cơ bước nhưng trong hệ thống này chỉ sử dụng động cơ bước loại 
nhỏ, mạch điện giao tiếp để điều khiển động cơ bước sử dụng IC giao tiếp 2803. 
Động cơ bước sử dụng là loại có 4 cuộn dây – có 5 đầu dây ra hoặc 6 đầu dây ra. 
Nếu là loại 5 đầu thì có 1 đầu dây chung và 4 đầu dây còn lại sẽ nhận tín hiệu điều khiển, 
còn loại 6 đầu dây ra thì trong đó sẽ có 2 đầu dây chung nên nối lại thành 1 đầu dây 
chung. 
Sơ đồ bố trí linh kiện của IC 2803 để giao tiếp với động cơ bước như hình 8-1 và 
hình trên bộ thí nghiệm như hình 8-2. 
 Hình 8-1. Sơ đồ nguyên lý điều khiển động cơ bước. 
 Hình 8-2. Sơ đồ giao tiếp với động cơ bước trên bộ thí nghiệm. 
Mã điều khiển động cơ bước hãy xem trong chương trình điều khiển. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 14 
9. GIAO TIẾP VỚI ADC VÀ DAC 
Hình 9-1. Sơ đồ giao tiếp ADC 7109. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 15 
* Hệ thống ADC: trên bộ thí nghiệm có thiết kế mạch giao tiếp với 4 IC ADC 
7109: mỗi ADC 12 bit được kết nối đa hợp và có thể và một IC DAC 0808. Sơ đồ nguyên 
lý như hình 9-1 và sơ đồ bố trí linh kiện trên hệ thống như hình 9-2. 
Hình 9-2. hình của ADC 7109 trên bộ thí nghiệm. 
Trong sơ đồ trên sử dụng ADC7109 có thể chuyển đổi 1 kênh dữ liệu ngõ vào tương 
tự. Các đường tín hiệu điều khiển bao gồm: 
- 12 đường dữ liệu số truyền tải kết quả chuyển đổi từ tương tự sang số: B11- B0 – tín 
hiệu ra. 
- 1 đường tín hiệu điều khiển chọn kênh: CE\ – tác động mức thấp. 
- 2 đường tín hiệu cho biết cực tính của tính hiệu vào âm hay dương và 1 đường trạng 
thái – tín hiệu ra. 
Tần số xung clock để ADC chuyển đổi được cung cấp từ mạch dao động đã tích hợp 
bên trong và gắn thêm tụ thạch anh bên ngoài có tần số 3.55 MHz - theo sổ tay tra cứu IC. 
* Hệ thống DAC 8 bit: sơ đồ nguyên lý của hệ thống DAC như hình 9-3 và sơ đồ bố 
trí linh kiện như hình 9-4. 
Trong sơ đồ sử dụng 2 IC DAC0808 có chức năng chuyển đổi tín hiệu số 8 bit sang 
tín hiệu tương tự cộng lại có thể tạo thành DAC 16 bit nhưng trong hệ thống chỉ sử dụng 
12bit, 12 đường D11 – D0 dùng để nhận dữ liệu số từ hệ thống điều khiển. 
Độ phân giải của DAC 0808 được điều chỉnh bằng biến trở. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 16 
Hình 9-3. Sơ đồ giao tiếp DAC 8 bit. 
Hình 9-4. Sơ đồ DAC 8 bit bốn kênh trên bộ thí nghiệm. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 17 
10. GIAO TIẾP VỚI REAL TIME 12C887 
Sơ đồ mạch của Realtime DS12C887 như hình 10-1 và hình trên bộ thí nghiệm như 
hình 10-2. 
Hình 10-1. Giao tiếp với real time 12c887. 
Hình 10-2. Hình Real Time 12C887 trên bộ thí nghiệm. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 18 
11. LCD VỚI 8051 
I. MÔ TẢ CÁC CHÂN CỦA LCD. 
 LCD được nói trong mục này có 14 chân, chức năng của các chân được cho 
trong bảng 12.1. Vị trí của các chân được mô tả trên hình 12.1 cho nhiều LCD khác 
nhau. 
1. Chân VCC, VSS và VEE: Cấp dương nguồn +5V và đất tương ứng thì VEE được 
dùng để điều khiển độ tương phản của LCD. 
2. Chân chọn thanh ghi RS (Register Select): 
Có hai thanh ghi rất quan trọng bên trong LCD, chân RS được dùng để chọn 
các thanh ghi này như sau: Nếu RS = 0 thì thanh ghi mà lệnh được chọn để cho 
phép người dùng gửi một lệnh chẳng hạn như xoá màn hình, đưa con trỏ về đầu 
dòng v.v… Nếu RS = 1 thì thanh ghi dữ liệu được chọn cho phép người dùng gửi dữ 
liệu cần hiển thị trên LCD. 
3. Chân đọc/ ghi (R/W). 
Đầu vào đọc/ ghi cho phép người dùng ghi thông tin lên LCD khi R/W = 0 
hoặc đọc thông tin từ nó khi R/W = 1. 
4. Chân cho phép E (Enable). 
Chân cho phép E được sử dụng bởi LCD để chốt thông tin hiện hữu trên 
chân dữ liệu của nó. Khi dữ liệu được cấp đến chân dữ liệu thì một xung mức cao 
xuống thấp phải được áp đến chân này để LCD chốt dữ liệu trên các chân dữ liệu. 
Xung này phải rộng tối thiểu là 450ns. 
5. Chân D0 - D7: 
Đây là 8 chân dữ liệu 8 bít, được dùng để gửi thông tin lên LCD hoặc đọc 
nội dung của các thanh ghi trong LCD. 
Để hiển thị các chữ cái và các con số, chúng ta gửi các mã ASCII của các 
chữ cái từ A đến Z, a đến f và các con số từ 0 - 9 đến các chân này khi bật RS = 1. 
Cũng có các mã lệnh mà có thể được gửi đến LCD để xoá màn hình hoặc 
đưa con trỏ về đầu dòng hoặc nhấp nháy con trỏ. Bảng 12.2 liệt kê các mã lênh. 
Chúng ta cũng sử dụng RS = 0 để kiểm tra bít cờ bận để xem LCD có sẵn 
sàng nhân thông tin. Cờ bận là D7 và có thể đượcđọc khi R/W = 1 và RS = 0 như 
sau: 
Nếu R/W = 1, RS = 0 khi D7 = 1 (cờ bận 1) thì LCD bận bởi các công việc 
bên trong và sẽ không nhận bất kỳ thông tin mới nào. Khi D7 = 0 thì LCD sẵn sàng 
nhận thông tin mới. Lưu ý chúng ta nên kiểm tra cờ bận trước khi ghi bất kỳ dữ liệu 
nào lên LCD. 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 19 
Bảng 11.1: Mô tả các chân của LCD. 
Chân Ký hiệu I/O Mô tả 
1 VSS - Đất 
2 VCC - Dương nguồn 5v 
3 VEE - Cấp nguồn điều khiển phản 
4 RS I RS = 0 chọn thanh ghi lệnh. RS = 1 chọn 
thanh dữ liệu 
5 R/W I R/W = 1 đọc dữ liệu. R/W = 0 ghi 
6 E I/O Cho phép 
7 DB0 I/O Các bít dữ liệu 
8 DB1 I/O Các bít dữ liệu 
9 DB2 I/O Các bít dữ liệu 
10 DB3 I/O Các bít dữ liệu 
11 DB4 I/O Các bít dữ liệu 
12 DB5 I/O Các bít dữ liệu 
13 DB6 I/O Các bít dữ liệu 
14 DB7 I/O Các bít dữ liệu 
15 A - Chân cấp nguồn cho backlight 
16 K - Chân cấp mass cho backlight 
Hình 11-1: Nối ghép LCD. 
P2.1 
D0 
P1.7 
P2.0 
P2.2 
D7 
R/W E RS VSS 
VEE 
VC
+5
v 
10K 
POT 
LCD 
8051 
P1.0 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 20 
Bảng 11.2: Các mã lệnh LCD. 
Mã (Hex) Lệnh đến thanh ghi của LCD 
1 Xoá màn hình hiển thị 
2 Trở về đầu dòng 
4 Giả con trỏ (dịch con trỏ sang trái) 
6 Tăng con trỏ (dịch con trỏ sang phải) 
5 Dịch hiển thị sang phải 
7 Dịch hiển thị sang trái 
8 Tắt con trỏ, tắt hiển thị 
A Tắt hiển thị, bật con trỏ 
C Bật hiển thị, tắt con trỏ 
E Bật hiển thị, nhấp nháy con trỏ 
F Tắt con trỏ, nhấp nháy con trỏ 
10 Dịch vị trí con trỏ sang trái 
14 Dịch vị trí con trỏ sang phải 
18 Dịch toàn bộ hiển thị sang trái 
1C Dịch toàn bộ hiển thị sang phải 
80 Ép con trỏ Vũ đầu dòng thứ nhất 
C0 Ép con trỏ Vũ đầu dòng thứ hai 
38 Hai dòng và ma trận 5 ´ 7 
 Bảng 11.3: Danh sách liệt kê các lệnh và địa chỉ lệnh của LCD. 
Lệnh 
R
S 
R
/W
D
B
7 
D
B
6 
D
B
5 
D
B
4 
D
B
3 
D
B
2 
D
B
1 
D
B
0 
Mô tả Thời gian 
thực 
hiện 
Xoá màn 
hình 
0 0 0 0 0 0 0 0 0 1 Xoá toàn bộ màn hình và đặt 
địa chỉ 0 của DD RAM vào bộ 
đếm địa chỉ 
1.64 ms 
Trở về 
đầu dòng 
0 0 0 0 0 0 0 0 1 - Đặt địa chỉ 0 của DD RAM như 
bộ đếm địa chỉ. Trả hiển thị 
dịch về vị trí gốc DD RAM 
không thay đổi 
1.64 ms 
Đặt chế 
độ truy 
nhập 
0 0 0 0 0 0 0 1 1/D S Đặt hướng chuyển dịch con trỏ 
và xác định dịch hiển thị các 
thao tác này được thực hiện khi 
đọc và ghi dữ liệu 
40 ms 
Điều 
khiển 
Bật/tắt 
hiển thị 
0 0 0 0 0 0 1 D C B Đặt Bật/ tắt màn hình (D) Bật/ 
tắt con trỏ (C) và nhấp nháy ký 
tự ở vị trí con trỏ (B) 
40 ms 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 21 
Dịch hiển 
thị và con 
trỏ 
0 0 0 0 0 1 S/C R/L - - Dịch con trỏ và dịch hiển thị 
mà không thay đổi DD RAM 
40 ms 
Đặt chức 
năng 
0 0 0 0 1 DL N F - - Thiết lập độ dài dữ liệu (DL) 
số dòng hiển thị (L) và phòng 
ký tự (F) 
40 ms 
Đặt địa 
chỉ 
CGRAM 
0 0 0 1 AGC Thiết lập địa chỉ C6 RAM dữ 
liệu CG RAM được gửi đi và 
nhận sau thiết lập này 
40 ms 
Thiết lập 
địa chỉ 
DD RAM 
0 0 1 ADD Thiết lập địa chỉ DD RAM dữ 
liệu DD RAM được gửi và 
nhận sau thiết lập này 
40 ms 
Cờ bận 
đọc và 
địa chỉ 
0 1 BF ADD Cờ bận đọc (BF) báo hoạt 
động bên trong đang được thực 
hiện và đọc nội dung bộ đếm 
địa chỉ 
40 ms 
Ghi dữ 
liệu CG 
hoặc DD 
RAM 
1 0 Ghi dữ liệu Ghi dữ liệu vào DD RAM hoặc 
CG RAM 
40 ms 
Đọc dữ 
liệu CG 
hoặc DD 
RAM 
1 1 Đọc dữ liệu Đọc dữ liệu từ DD RAM hoặc 
CG RAM 
40 ms 
Ghi chú: 
1. Thời gian thực là thời gian cực đại khi tần số fCP hoặc fosc là 250KHz 
2. Thời gian thực thay đổi khi tần số thay đổi. Khi tần số fEP hay fosc Là 270kHz thì 
thời gian thực hiện được tính 250/270 ´ 40 = 35ms v.v… 
3. Các ký hiệu viết tắt trong bảng là: 
4. 
DD RAM RAM dữ liệu hiển thị (Display Data RAM) 
CG RAM RAM máy phát ký tự (character Generator) 
ACC Địa chỉa của RAM máy phát ký tự 
ADD Địa chỉ của RAM dữ liệu hiển thị phù hợp với địa chỉ con trỏ. 
AC Bộ đếm địa chỉ (Address Counter) được dùng cho các địa chỉ DD RAM và CG RAM. 
1/D = 1 Tăng 1/D = 0 Giảm 
S = 1 Kèm dịch hiển thị 
S/C = 1 Dịch hiển thị S/C = 0 Dịch con trỏ 
R/L = 1 Dịch sang phải R/L = 0 Dịch trái 
DL = 1 8 bít DL = 0 4 bít 
N = 1 2 dòng N = 1 1 dòng 
F = 1 Ma trận điểm 5 ´ 10 F = 0 Ma trận điểm 5 ´ 7 
BF = 1 Bận BF = 0 Có thể nhận lệnh 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 22 
Hình 11-2: Phân khe thời gian của LCD. 
16 ´ 2 LCD 
80 
C0 
81 
C0 
82 
C2 
83 
C3 
84 
C4 
85 
C5 
86 
C6 
Through 
Through 
8F 
CF 
20 ´ 1 LCD 80 81 82 83 Đến 93 
20 ´ 2 LCD 
80 
C0 
81 
C0 
82 
C2 
83 
C3 
Đến 93 
Đến D3 
20 ´ 4 LCD 80 
C0 
94 
D4 
81 
C0 
95 
D5 
82 
C2 
96 
D6 
83 
C3 
97 
D7 
Đến 93 
Đến D3 
Đến A7 
Đến E7 
20 ´ 2 LCD 
80 
C0 
81 
C0 
82 
C2 
83 
C3 
Đến A7 
Đến E7 
Chú ý: Các dữ liệu ở 
dạng số hex. 
Hình 11-3: Các địa chỉ con trỏ đối với một số LCD. 
 tPwh = Enable pulse width = 450 ns (minimum) 
 tDSW = Data set up time = 195 ns (minimum) 
 tH = Data hold time 10 ns (minimum) 
 tAS = Set up time prior to E (going high) for both RS and R/W = 140 ns (minimum) 
 tAH = Hold time afterr E has come down for both RS and R/W = 10 ns (minimum) 
Data 
tDSW 
tPWH 
tH 
tAH W/R 
E 
RS 
tAS 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 23 
CÁC MODULE CHƯƠNG TRÌNH 
 GHI_LENH: ; Gửi lệnh đến LCD 
 MOV P1, A ; Sao chép thanh ghi A đến cổng P1 
 CLR P2.0 ; Đặt RS = 0 để gửi lệnh 
 CLR P2.1 ; Đặt R/W = 0 để ghi dữ liệu 
 SETB P2.2 ; Đặt E = 1 cho xung cao 
 CLR P2.2 ; Đặt E = 0 cho xung cao xuống thấp 
 RET 
GHI_DLIEU: ; Ghi dữ liệu ra LCD 
 MOV P1, A ; Sao chép thanh ghi A đến cổng P1 
 SETB P2.0 ; Đặt RS = 1 để gửi dữ liệu 
 CLR P2.1 ; Đặt R/W = 0 để ghi 
 SETB P2.2 ; Đặt E = 1 cho xung cao 
 CLR P2.2 ; Đặt E = 0 cho xung cao xuống thấp 
 RET 
 DL_100US: MOV R3, # 50 ; 100 mS 
 DJNZ R3, $ 
 RET 
DL_41MS: MOV R4, # 100 ; 4.1 mS 
 X2: MOV R5, # 200 
X1: DJNZ R5, X1 
 DJNZ R4, X2 
 RET 
KHOI_TAO_LCD: 
 MOV A,#38h ;8 BIT - 2 HANG - 5X7 
 CALL GHI_LENH 
 CALL DL_41MS 
 MOV A,#38h 
 CALL GHI_LENH 
 CALL DL_100US 
 MOV A,#38h 
 CALL GHI_LENH 
 CALL DELAY 
 MOV A,#0Ch ;BAT LCD ON - LAM CURSOR TAT 
 CALL GHI_LENH 
 CALL DELAY 
 MOV A,#01h ;XOA MAN HINH 
 CALL GHI_LENH 
 CALL DELAY 
 MOV A,#06h ;CURSOR TU DONG DICH SANG PHAI 
 CALL GHI_LENH 
 CALL DELAY 
 MOV A,#0Fh ;HIEN THI CON TRO - CURSOR 
 CALL GHI_LENH 
 CALL DELAY 
 RET 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 24 
* CÁCH 1: 
HIEN_THI: 
 MOV A,#80h ;THIET LAP DIA CHI CHO LCD – HANG 1 
 CALL GHI_LENH 
 CALL DELAY 
 MOV A, # “O” ; Hiển thị chữ O 
 CALL GHI_DLIEU ; Gọi chương trình con hiển thij DISPLAY 
 CALL DELAY ; Tạo độ trễ cho LCD 
 MOV A,#0C0h ;THIET LAP DIA CHI CHO LCD – HANG 2 
 CALL GHI_LENH 
 CALL DELAY 
 MOV A, # “K” ; Hiển thị chữ K 
 CALL GHI_DLIEU ; Gọi DISPLAY 
 CALL DELAY ; Tạo độ trễ cho LCD 
* CÁCH 2: 
DULIEU EQU P2 
HIEN_THI: 
 MOV A, # “O” ; Hiển thị chữ O 
 CALL GHI_DLIEU 
 MOV A, # “K” ; Hiển thị chữ K 
 CALL GHI_DLIEU 
;********************************************************* 
; GUI LENH/DULIEU RA LCD 
;********************************************************* 
GHI_LENH: 
 SETB EN ;CHO PHEP LCD 
 CLR RS ;RS = 0 : NHAN LENH 
 MOV DULIEU,A 
 JMP TIEP 
GHI_DULIEU: 
 SETB EN ;CHO PHEP LCD 
 SETB S ;RS = 1: NHAN DU LIEU 
 MOV DULIEU,A 
TIEP: 
 CLR EN 
 NOP 
DOI_LCD: 
 SETB EN 
 CLR RS 
 SETB RW ;CHO PHEP GHI/DOC 
 MOV DULIEU,#0FFh ;P2 DONG VAI TRO LA NGO VAO DU LIEU 
 MOV A,DULIEU 
 JB ACC.7,DOI_LCD ;KIEM TRA bit #7 - CO BAN - DOC/GHI DU LIEU XONG CHUA 
 CLR EN 
 CLR RW 
 RET 
Tài liệu thực hành môn Vi Xử Lý 
GV: Trương Ngọc Anh Trang 25 
* CHƯƠNG TRÌNH MẪU: 
VD1: 
ORG 00H 
CALL KHOI_TAO_LCD 
CALL HIEN_THI 
JMP $ 
;CAC CHUONG TRINH CON THEO CÁC MODULE TRÊN 
VD2: 
ORG 00H 
CALL KHOI_TAO_LCD 
 MOV A, # “O” ; Hiển thị chữ O 
 CALL GHI_DLIEU 
MOV A, # “K” ; Hiển thị chữ K 
CALL GHI_DLIEU 
JMP $ 
;CAC CHUONG TRINH CON THEO CÁC MODULE TRÊN 
VD3: 
 Hãy viết chương trình hiển thị chữ O hàng 1, chữ K hàng 2 
VD4: 
 Hãy viết chương trình hiển thị tên của mình ỡ giữa LCD. 
            Các file đính kèm theo tài liệu này:
 thuc_tap_vi_xu_ly_chuong_trinh_moi_2004_.pdf thuc_tap_vi_xu_ly_chuong_trinh_moi_2004_.pdf