TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
BÁO CÁO ĐỒ ÁN MÔN HỌC MATRIX LED NHẬP TỪ BÀN PHÍM.pdf
1. 2
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
–––Ë———
BÁO CÁO ĐỒ ÁN MÔN HỌC
MATRIX LED
NHẬP TỪ BÀN PHÍM
Giáo viên hướng dẫn: Ths Nguyễn Tất Bảo Thiện
Lớp: KTMT01
Nhóm thực hiện:
Nguyễn Minh Hùng 06520189
Lê Nguyễn Khoa 06520225
Ngô Tự Đăng Khoa 06520228
Lê Quang Huy 06520202
2008 - 2009
2. 3
Mục lục
Mục lục...................................................................................................trang 3
Giới thiệu về đồ án .................................................................................trang 4
Phần I: Các linh kiện được sử dụng ........................................................trang 5
IC AT89C52 ......................................................................................trang 6
IC 82C55A.........................................................................................trang 7
IC 74HC373.......................................................................................trang 8
IC 74HC138.......................................................................................trang 9
IC 6264 (Ram 8Kx8bit) .....................................................................trang 10
Phần II: Thiết kế và thi công mạch .........................................................trang 11
Mạch vi điều khiển AT89C52............................................................trang 12
Mạch chốt 74HC373 và chọn chip 74HC138.....................................trang 13
Mạch Ram 6264 và 82C55A..............................................................trang 14
Mạch khuếch đại (amplifier) và bàn phím 4x4...................................trang 15
Mạch nguồn và khối hiển thị..............................................................trang 16
Phần III: Các lệnh tiêu biểu trong Keil C và chương trình mẫu ..............trang 17
Lưu đồ giải thuật................................................................................trang 18
Các lệnh tiêu biểu trong Keil C..........................................................trang 19
Lập trình sử dụng RAM trong Keil C.................................................trang 21
Các nguyên lý cơ bản về quét led và bàn phím ..................................trang 23
Chương trình mẫu..............................................................................trang 25
Phần IV: Sản phẩm thu được, ưu và khuyết điểm...................................trang 37
Sơ đồ bàn phím..................................................................................trang 38
Hướng dẫn sử dụng matrixled............................................................trang 39
Ưu điểm và khuyết điểm sản phẩm....................................................trang 41
Sơ đồ mạch ........................................................................................trang 42
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
3. 4
Giới thiệu về đồ án:
Hiện nay trong đời sống thì quảng cáo bằng hình thức quang báo không
còn mới mẽ gì. Nó có thể được sử dụng để quảng cáo tên nhãn hiệu sản phẩm,
tên của một công ty hay tên của một cửa hàng nào đó.
Trong đó có quang báo dùng Led Ma Trận, dù quang báo dùng Led Ma
Trận chiếm không nhiều nhưng nó cũng đóng góp một phần vào việc tuyên
truyền, quảng cáo hay thông tin đến người tiêu dùng nói riêng và cả nước nói
chung. Đặc điểm lớn nhất của “Quang báo dùng Led Ma Trận” là có thể nhập
trực tiếp từ bàn phím những ký tự mà mình mong muốn, việc này ở các hình
thức quang báo khác không có, cái hay của nó là thông tin được cập nhật bất cứ
lúc nào, có thể hiện thị nhanh nhất các thông tin mới nhất để mọi người nắm bắt.
Trong đồ án này, dù quy mô không lớn nhưng tính chất đặc biệt của Led
Ma Trận không mất. Để hiểu sâu hơn về đề tài, xin xem tiếp phần sau:
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
4. 5
PHẦN I:
CÁC LINH KIỆN
ĐƯỢC SỬ DỤNG
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
5. 6
IC AT89C52
Sơ đồ chân
Đặc điểm
AT89C52 là một IC họ MSC-51, các IC họ này có đặc điểm chung như sau:
• 4KB EPROM bên trong, ở đây chúng ta sử dụng AT89C52 có 8KB
EPROM.
• 128 byte RAM nội.
• 4 Port I/O (input/output), mỗi port 8bit.
• 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.
• Xử lý Boolen (hoạt động trên bit đơn).
• 210 vị trí nhớ có thể định vị bit.
• 4us cho hoạt động nhân hay chia.
AT89C52 có 32 port I/O rất thuận tiện việc quét led hiển thị, nhưng trong đồ án này,
chúng ta sử dụng thêm IC Ram 6264 để lưu trữ tạm thời dữ liệu được nhập từ bàn phím.
Công việc này lấy đi 14 chân I/O của vi xử lý vì thế không đủ port để quét led, ta phải sử
dụng với IC chọn chip kèm IC mở port để thực hiện việc quet led hiển thị này.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
6. 7
IC 82C55A
Sơ đồ chân
Đặc điểm
IC 82C55A là một IC để mở rộng port cho Microprocessor, nó giao tiếp với
Microprocessor thông qua 3 bus: Bus dữ liệu bit D7-D0, bus địa chỉ A1-A0 và bus điều khiển
RD,WR,CS,Reset. Mã lệnh, thông tin trạng thái và dữ liệu đều được truyền trên 8 đường
dữ liệu D7-D0. Bảng trạng thái của 82C55A:
IC 82C55A có 3 Port I/O là Port A, Port B, Port C mỗi Port 8 bit. Các Port này được
điều khiển là nhập hay xuất thông qua thanh ghi điều (control register) khiển do
Microprocessor (AT89C52) gửi đến từ trước. Port hay thanh ghi điều khiển được chọn qua 2
bit A1-A0. Người lập trình phải điền khiển các bit này từ Microprocessor (AT89C52).
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
7. 8
IC 74HC373
Sơ đồ chân
Đặc điểm
74HC373 là một IC chốt địa chỉ tốc độ cao sử dụng công nghệ cổng CMOS, không
gây ồn, tiêu thụ công suất thấp.
Khi ngõ vào Latch Enable cho phép chốt (G) ở mức cao thì ngõ ra Q sẽ thay đổi theo
ngõ vào D, khi Latch Enable (G) xuống thấp thì các ngõ ra Q sẽ được giữ lại đến khi Latch
Enable trở lại mức cao. Bảng trạng thái 74HC373:
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
8. 9
IC 74HC138
Sơ đồ chân
Đặc điểm
74HC138 là IC giải mã 3 - 8 gồm 3 ngõ vào địa chỉ (A1, A2, A3) có trọng số nhị phân
và 8 ngõ ra tích cực mức thấp Y0-Y7, 3 ngõ vào cho phép E1, E2 tích cực thấp và E3 tích
cực cao. Bảng trạng thái 74HC138:
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
9. 10
IC 6264 (RAM 8Kx8bit)
Sơ đồ chân
Đặc điểm
IC 6264 là một ram tĩnh CMOS hiệu suất cao được tổ chức bởi 8192*8bit (8Kx8bit)
với các chân A0-A12 là bus địa chỉ. Bộ nhớ Ram là bộ nhớ dễ thay đổi, bất kỳ ô nhớ nào
cũng có thể truy xuất dễ dàng thông qua bus địa chỉ, thời gian truy xuất các ô nhớ là như
nhau. Khác với bộ nhớ ROM, bộ nhớ RAM sẽ bị mất khi nguồn điện cung cấp bị ngắt.
Dễ dàng mở rộng bởi chân chọn chip tích cực thấp CE1, một chân chọn chip tích cực
cao CE2 và một chân OE tích cực thấp. Tín hiệu cho phép ghi tích cực mức thấp WE điều
khiển việc đọc/ghi của bộ nhớ.
IC có 8 ngõ vào/ra của bus dữ liệu được dùng chung là I/O0 – I/O7.
RAM thường được dùng trong các hệ thống điều khiển tự động để lưu trữ dữ liệu tạm
thời.Bộ nhớ Ram có 2 loại là SRAM và DRAM:
• SRAM còn gọi là Static Ram hay Ram tĩnh. Đây là loại Ram lưu trữ dữ
liệu đến khi nào nguồn không còn. SRAM thực chất là những flip flop (FF), trong mỗi
FF là một phần tử nhớ đại diện cho 1 bit.
• DRAM còn gọi là Dynamic Ram hay Ram động. Loại ram này phải luôn
được làm “tươi” tức là phải nạp dữ liệu cho Ram trong 1 khoảng thời gian nhất định,
nếu không Ram sẽ bị mất dữ liệu. Trong khi làm “tươi” Ram ô nhớ đó không được
phép truy xuất.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
10. 11
PHẦN II:
THIẾT KẾ
VÀ THI CÔNG MẠCH
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
11. 12
MẠCH VI ĐIỀU KHIỂN AT89C52
Sơ đồ mạch
Mô tả
Mạch này gồm 2 mạch nhỏ là tạo xung và reset. Khi cấp nguồn điện áp trên R34 (chân
9 của AT89C52) lên mức cai 5V (=Vcc), sau đó sẽ xuống mức 0V do tụ C8 bắt đầu nạp. Nếu
ta ấn phím reset (JP2) thì áp trên R34 sẽ tăng gần = Vcc nhờ cầu phân áp R33 và R34 ghim
một mức áp cố định (+5V).
Vì sử dụng Ram ngoài nên P2 và P0 đóng vai trò là các bus địa chỉ, P3 thì sử dụng các
chân RD, WR để điểu khiển chế độ hoạt động của RAM và 82C55A.
P1 để quét và nhận bàn phím ma trận 4*4 (16 phím).
Ở đây ra sử dụng Ram 6264 chỉ có 13 bit địa chỉ, P2 P0 có 16 bit, ta dùng 3 bit còn lại
để điều khiển IC giải mã chọn chip.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
12. 13
MẠCH CHỐT 74HC373
& CHỌN CHIP 74HC138
Sơ đồ mạch
Mô tả
74HC138 là IC dùng chọn chip Ram, hay 8255. Ở đây chúng ta sử dụng 1 IC Ram
6264 với 3 IC 82C55A tổng cộng là 4 chip. CE cho Ram, CS1-CS3 cho các IC 8255. A, B và
C là các ngõ điều khiển được nối với AT89C52.
74HC373 là IC chốt dùng chốt địa chỉ khi sử dụng ram, ta nối các đầu vào với P0 của
AT89C52 để chốt khi P0 là bus địa chỉ, và giữ các địa chỉ này cho Ram hoạt động khi P0
chuyển từ bus địa chỉ sang bus dữ liệu. Đồng thời chốt 2 bit A1, A0 để sử dụng và điều khiển
82C55A.
Các đầu ra A0-A7 được nối với các đầu vào dữ liệu của Ram 6264 và A1-A0 nối với
A1-A0 của 82C55A. Chân LE là chân xung để chọn chốt hay không chốt, chân này nối với
chân xung ALE của AT89C52 để nó tự điều khiển khi được cấp lệnh.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
13. 14
MẠCH RAM 6264
VÀ 82C55A
Sơ đồ mạch
Mô tả
Như đã đề cập, Ram 6264 có 13 bit địa chỉ, 8 bit được nối với P0 thông qua mạch chốt
74HC373, D0-D7 là bus dữ liệu vào và ra nối với P0 của AT89C52 (P0 đóng 2 vai trò bus
địa chỉ và dữ liệu) các chân OE và WE được nối với RD và WR của AT89C52 để điều
khiển khi Read hay Write. CE là chân chọn chip tích cực thâp, chân này nối với IC giải mã
74HC138 để điều khiển khi cần.
82C55A được sử dụng và truy xuất như 1 RAM ngoại, nó có bus địa chỉ là A1-A0,
bus dữ liệu là D0-D7 và bus điều khiển là chân đọc RD, ghi WR, chọn chip CS.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
14. 15
MẠCH KHUẾC ĐẠI (AMPLIFIER)
Theo K2: ta có –Vcc + IcRc + Vce + Vled = 0
ð Rc = (5 – 0.2 - 2) / 20 = 140 ohm (150 ohm)
Ở đây ta dùng Transistor C1815 có độ khuếch đại b = 70 – 700 và dòng tối Icmax =
150 mA nên:
Ta lại có: K2: -5 +IbRb + Vbe + Vled = 0
ð Rb = (5 – 0.7 – 2) / 0.28 = 8.2K
BÀN PHÍM 4x4
Mô tả
Bàn phím được xây dựng trên cơ sở quét hàng và
cột, được nối với port P1 của IC AT89C52.
Chức năng của các phím:
ð SPACE BAR: chèn 1 khoảng trắng.
ð DELETE: xóa ký tự gần nhất
ð RUN/STOP: cho phép chạy chương trình
vừa nhập hoặc dừng chương trình đang
chạy.
ð SPEED UP: tăng tốc chạy chương trình.
ð SPEED DOWN: giảm tốc chạy chương
trình.
ð 10 phím còn lại nhập chữ, số và các dấu,
mỗi phím có thể nhập đc 5 ký tự
ð Còn 1 phím trống.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
15. 16
MẠCH NGUỒN
Chúng ta có thể dùng adapter 5V hay acquy 12V-24V rồi đưa qua IC 7805, IC này có
tác dụng chuyển đổi nguồn từ 9V-24V thành 5V.
KHỐI HIỂN THỊ
Gồm 12 khối led ma trận ML2008 (8x8) ghép với nhau. Mỗi khối led sẽ có 8 hàng dọc
tương ứng với 8 đầu anot, 8 hàng ngay tương ứng với 8 đầu catot. Khi muốn sáng Led nào
thì ta chỉ cần cấp mức 1(5V) ở đầu anot và cấp mức 0(0V) ở đầu Catot của led cần sáng.
Để có thể hiển thị ta ghép 6 khối Led với nhau trên cùng 1 hàng, như vậy ta có 6 khối
cột và 2 khối hàng.
Trên cùng 1 khối cột ta nối âm với âm, vậy ta có 6 khối cột âm, mỗi khối 8 bit. Trên
cùng 1 khối hàng ta nối dương với dương, vậy ta có 2 khối hàng dương, mỗi khối 8 bit.6 khối
cột âm nối với 6 port của 2 IC 8255, 2 khối hàng dương nối với 2 port của 8255 thứ 3.
Sơ đồ chân của khối matrix led MI08 (8x8):
16 l 0.0 1.4 l 1
15 l 0.1 1.6 l 2
14 l 1.1 0.6 l 3
13 l 0.7 0.5 l 4
12 l 1.3 1.7 l 5
11 l 0.2 0.3 l 6
10 l 0.4 1.5 l 7
9 l 1.0 1.2 l 8
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
16. 17
PHẦN III:
CÁC LỆNH TIÊU BIỂU
TRONG KEIL C
& CHƯƠNG TRÌNH MẪU
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
17. 18
LƯU ĐỒ GIẢI THUẬT
BEGIN
NHẬP
PHÍM
CÓ
PHÍM?
PHÍM
KÝ TỰ
NẠP
RAM
HIỂN
THỊ
NO
YES
END
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
18. 19
CÁC LỆNH TIÊU BIỂU
TRONG KEIL C
Khai báo biến:
Bit x; kiểu dữ liệu 1 bit
Char data; kiểu dữ liệu 8 bit có dấu, bit đầu là dấu -127 … 128
Unsigned char x; kiểu dữ liệu 8 bit không dấu 0 … 255
Int x; kiểu dữ liệu 16 bit có dấu
Unsigned int x; kiểu dữ liệu 16 bit không dấu
Vòng lặp
For(x;x < 100;x++)
{
…;
}
For(;;) vòng lặp vô hạn (super loop)
{
…;
}
While(x != 100)
{
…;
x++;
}
While(1) vòng lặp vô hạn (super loop)
{
…;
}
Các lệnh luận lý (boolean) – cho ra giá trị fail(0) or true(1)
x<b; bé hơn
x>b;
x<=b; bé hơn hay bằng
x>=b;
x==b; bằng
x!=b; không bằng
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
19. 20
Lệnh điều kiện
If(x > 0)
{
…;
}
Else
{
…;
}
Switch(x)
{
case 0: …;break;
case 10; …;break;
case 11; …;break
….;
default: ….;break;
}
Các lệnh toán tử (operator)
x++ :x=x+1; x-- : x=x-1
x+=b: x=x+b; x-=b: x=x-b;
x*=b: x=x*b; x/=b: x=x/b;
Các lệnh dịch bit:
1<<x : dịch trái 1 bit;
x>>1: dịch phải 1 bit;
x<<=1: x=1<<x;
x<<=1: x=x>>1;
Định nghĩa các biến
#define A 2000: A=2000 trong suốt chương trình.
#define ouput_port P3: khi sử dụng output_port xem như sử dụng P3.
Sbit P1^0 = P: khi ta sử dụng biến “P” thì xem như đang sử dụng P1^0.
#type unsigned char tByte:
Khi sử dụng tByte xem chương trình sẽ hiểu là unsigned char
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
20. 21
LẬP TRÌNH SỬ DỤNG RAM/ROM
TRONG KEIL C
Cách 1 :Vào Target, chọn Memory Model là Large , khi đó mọi biến bạn khai báo đều
được lưu trữ trong RAM ngoài.Cách này đơn giản nhưng có nhược điểm là không quản lý
được biến, compiler sẽ tự định địa chỉ cho biến của bạn.
Cách 2 :Chọn Memory Model là small. Khi đó , biến nào khai báo ở dạng xdata thì sẽ
hiểu là RAM ngoài.
VD : unsigned char xdata Dulieu[10];
cách này thường được sử dụng rộng rãi, tuy nhiên RAM của bạn phải bắt đầu từ địa chỉ
0x0000.
Cách 3 : Nếu vùng địa chỉ của RAM không bắt đầu từ 0x0000 , chẳng hạn bạn sử
dụng mạch giải mã để đặt địa chỉ cho RAM bắt đầu từ 0x8000 , khi đó ta có thể sử dụng thư
viện "absacc.h" ,ví dụ khai báo như sau :
#include "absacc.h"
....
#define baseaddr 0x8000
void InitRAM()
{
unsigned char i;
for(i=0;i<10;i++)
XBYTE[baseaddr+i]=i; // Ghi vào RAM ngoài 10 giá trị , bắt đầu từ
// 0x8000
}
Lúc lấy giá trị ra, bạn có thể gọi : x=XBYTE[address];
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
21. 22
Với các khai báo như trên, compiler sẽ hiểu là sử dụng RAM ngoài, và việc trao đổi
thông tin với RAM ngoài sẽ được VĐK thực hiện bằng lệnh movx, các xung ALE,RD,WR sẽ
họat động theo nhịp clock để trao đổi với RAM.
Đọc
1- CPU phát địa chỉ ra bus địa chỉ. Bộ nhớ nhận được địa chỉ này, sẵn sàng phát byte
dữ liệu ra bus dữ liệu, nhưng vì /OE chưa tích cực nên các chân Di (D1, D2, ..., Dm) của bộ
nhớ vẫn còn ở trạng thái Hi-Z (tổng trở cao).
2- CPU kích hoạt tín hiệu /RD (/RD nối tới chân /OE của bộ nhớ) -> /OE tích cực ->
bộ nhớ xuất dữ liệu ra bus dữ liệu.
3- CPU cất (copy) dữ liệu từ bus dữ liệu vào thanh ghi.
4- CPU bỏ kích hoạt /RD -> /OE trở lại mức ko tích cực -> ngõ ra bộ nhớ trở lại trạng
thái Hi-Z.
Ghi
1- CPU phát địa chỉ ra bus địa chỉ.
2- CPU phát dữ liệu từ thanh ghi ra bus dữ liệu.
3- CPU kích hoạt /WR (/WR nối tới /WE của bộ nhớ) -> /WE tích cực -> bộ nhớ ghi
dữ liệu ở bus dữ liệu vào ô nhớ có địa chỉ chỉ định bởi bus địa chỉ.
4- CPU bỏ kích hoạt /WR -> /WE trở lại mức ko tích cực.
Đối với 8051
Chân /PSEN thường được nối tới chân /OE của ROM ngoài chứa chương trình. Khi
8051 đọc chương trình, thì chân /PSEN sẽ được kích hoạt (giống như tín hiệu /RD nói trên).
Chân /RD và /WR thường nối tới /OE và /WE của RAM ngoài.
/CE là chân chọn chip (giống như /CS). Trong 1 hệ vi xử lý có nhiều thiết bị (bộ nhớ
hay I/O) sử dụng chung bus dữ liệu, tại 1 thời điểm chỉ có tối đa 1 thiết bị được giao tiếp với
bus dữ liệu thôi (nếu có nhiều hơn 1, thì sẽ xảy ra tranh chấp bus). Mạch giải mã địa chỉ sẽ
điều khiển các chân /CE (hay /CS) của các thiết bị này để chỉ định thiết bị nào được giao tiếp
với bus dữ liệu. /CE của thiết bị nào ở mức tích cực thì thiết bị ấy được phép giao tiếp với
bus dữ liệu, còn không thì các đường dữ liệu Di của thiết bị sẽ ở trạng thái Hi-Z.
Ram 6264 có 8192 ô nhớ 8 bit, ta dùng 700 ô nhớ đầu chứa bảng mã, còn 7492 ô nhớ,
mỗi chữ cái chiếm 14 ô nhớ. Vậy ta có thể ghi được 7492/14 = 535 ký tự.
**)Đối với 82C55A thì cách sử dụng cũng như RAM và ROM ngoài, chỉ khác là
82C55A chỉ có 4 địa chỉ của port A, B, C và Control registor.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
22. 23
CÁC NGUYÊN LÝ CƠ BẢN VỀ
QUÉT LED VÀ BÀN PHÍM
Đề tài của chúng ta là “Ma trận led nhập từ bàn phím”, như vậy 2 thiết bị không thể
thiếu là bàn phím và led ma trận.
Ma trận bàn phím 4x4
(Cấu tạo chung cho các thiết bị matrix)
Cách hoạt động của bàn phím là khi ta cấp Vcc 5V cho đầu “A” và bấm phím thứ 1 thì
đo được ở đầu 1 là 5V, tương tự cho các phím khác. Như vậy để nhận được 16 phím thì ta
phải cấp Vcc lần lượt cho 4 đầu “A, B, C, D” hay ngược lại lần lượt cho “1, 2, 3, 4”. Điều
chú ý ở đây là phải cấp lần lượt chứ không thể cấp 1 lúc 4 đầu đều là VCC, như thế sẽ không
thể phân biệt được các hàng hay các cột. Hay ngược lại chúng ta có thể cấp 0V cho đầu “A”
còn tất cả các đầu kia đều là “5V”, như vậy khi phím 1 được ấn thì cả 2 đầu “A” và “1” đều
đo được là 0V, các đầu còn lại vẫn 5V.
Nếu “A, B, C, D, 1, 2, 3, 4” lần lượt nối với P3.0 – P3.7 của AT89C52 thì ta có thể
làm như sau:
Ta đặt P3.0 = 1(A=1), các chân kia =0, khi ấn phím nào trên hàng A thì cột đó sẽ = 1,
ta chia thành 4 trường hợp. Sau đó P3.0 = 0 và P3.1 =1, ta lại có 4 trường hợp, sau 4 lần cho
A B C D ta có 16 trường hợp.
Còn 1 phương pháp khác được gọi là dịch bit. Đầu tiên ta set P1 = 00000001 (hay
11111110 cũng được) sau đó dịch 1 bit thành 00000010 > 00000100 > 00001000 với điều
kiện là P1 không được lớn hơn 00010000 = 16.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
23. 24
Ma trận led 8x8
(Cấu tạo tương tự như ma trận bàn phím được nói ở trên)
Muốn đèn nào sáng ta cấp Vcc 5V cho hàng anot chứa đèn đó (1-8) và 0V cho cột
catot chứa đèn đó (9-16). Nhưng để hiện chữ chúng ta không thể cấp từng cái như thế được.
Nguyên lý để hiện chữ trên ma trận led là chúng ta quét từng cột hay từng hàng, quét cột hay
hàng là tùy mỗi người. Ở đây ta sẽ xét quét cột:
Đầu tiên chúng ta phải bảng mã hóa các chữ, bảng này chúng ta có thể vẽ ra trên giấy
rồi tính. Ví dụ chữ A cột đầu tiên là 000111100 = 0x1C (tính từ 1 > 8). Ta phải cấp
P1=0x1C.
Sau đó P2.0 (cột số 9) bằng 0, tiếp theo cấp dữ liệu cột thứ 2 (P) rồi cho cột thứ 2 = 0,
cứ như thế ta sẽ có được chữ A. Theo hiện tượng lưu ảnh ở mắt người ta sẽ thấy được chữ A,
thời gian sáng của mỗi cột thường là 1ms – 5ms tùy mỗi người, nhanh quá sẽ không kịp sáng
và không thấy gì, chậm quá thì không đủ tần số, chúng ta sẽ thấy chớp chớp.
Chú ý là khi 1 cột = 0 thì các cột kia phải = 1 nếu không thì dữ liệu của cột này sẽ
được đưa vào cho tất cả các cột, khi đó không thấy được chữ mà chỉ thấy nó sáng 1 kiểu.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
36. 37
PHẦN IV:
SẢN THU ĐƯỢC
ƯU & KHUYẾT ĐIỂM
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
37. 38
SƠ ĐỒ BÀN PHÍM
Bàn phím có tổng cộng 16 phím, trong đó có 10 phím là để đánh và hiển thị các ký tự,
5 phím chức năng và 1 phím bỏ trống
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
5
M N O (
5
M N O (
6
P Q R )
7
S T U “
8
V W X ”
9
Y Z ! ?
0
+ - x :
SPEED
DOWN
SPEED
UP
RUN/
STOP
DEL
SPA
CE
1
A B C .
2
D E F ,
3
G H I ;
4
J K L =
DAU
38. 39
HƯỚNG DẪN
SỬ DỤNG MATRIXLED
Các phím từ số 0 đến 9 là các phím ký tự, mỗi phím có thể đánh được 5 ký tự được vẽ
trên mỗi phím và thứ tự hiện các ký tự lần lượt như sau:
• Phím số “1”: A B C . 1
• Phím số “2”: C D E , 2
• Phím số “3”: G H I ; 3
• Phím số “4”: J K L = 4
• Phím số “5”: M N O ( 5
• Phím số “6”: P Q R ) 6
• Phím số “7”: S T U “ 7
• Phím số “8”: V W X ” 8
• Phím số “9”: Y Z ! ? 9
• Phím số “0”: + - x : 0
Khi ấn 1 trong các phím ký tự thì ký tự đầu của phím sẽ hiển thị lên phía cuối của ma
trận led. Trong vòng 1 giây sau đó, nửa giây đầu ta không thể thao tác bất kỳ phím nào, việc
này nhằm hạn chế dính phím, nửa giây sau nếu ấn lại phím vừa ấn thì ký tự thứ hai sẽ hiển
thị thay vào vị trí ký tự thứ nhất trên ma trận led, còn nếu ấn phím khác thì phía ma trận led
lúc này sẽ có hai ký tự: ký tự của phím lúc đầu được đẩy lên và thay vào là ký tự của phím
mới này. Sau đó sẽ bắt đầu chu kỳ 1 giây như ở trên, nếu hết chu kỳ này chúng ta không ấn
gì thì phím kế tiếp sẽ được coi là một ký tự mới.
Một phím khi được nhấn nhiều lần các ký tự sẽ lần lượt hiện như đã nói. Sau khi hiện
ký tự thứ 5, nếu ta ấn tiếp tục thì sẽ quay lại ký tự đầu tiên.
Phím “DEL” là xóa ký tự cuối cùng, “SPACE” là thêm 1 khoảng trắng sau ký tự cuối
cùng. Khi ấn 2 phím này được ấn cũng có 0.5s không thao tác.
Phím “RUN/STOP” để chạy hay đoạn chương trình mình vừa nhập hay dừng đoạn
chương trình đang chạy và trở về hiển thị chữ nhằm thay đổi 1 phần nội dung nếu muốn.
Trước khi bắt đầu chạy chương trình và sau khi dừng trở về chương trình cũ sẽ có một
khoảng thời gian là 1s ma trận led không hiển thị.
Phím “SPEED DOWN” và “SPEED UP” là 2 phím chức năng có tác dụng tăng giảm
tốc độ chạy của chương trình khi đang chạy, 2 phím này chỉ hoạt động khi chạy chương
trình. Có 7 cấp tốc độ, khi ấn chạy chương trình thì mặc định là cấp thứ 4, muốn thay đổi tốc
độ thì ấn 1 trong 2 phím này. Khi 1 trong 2 phím được ấn thì tốc độ được thay đổi nhưng
chúng ta phải chờ 1s sau để có thể tiếp tục thay đổi tốc độ, 1 giây này nếu có phím tốc độ thì
sẽ không có hiệu lực, chỉ có hiệu lực với phím “RUN/STOP” khi ta muốn thoát khỏi chương
trình.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
39. 40
Phím “DAU” dùng đánh dấu Tiếng Việt cho ký tự vừa được nhập, ấn phím này chỉ
khi đang đánh ký tự, không ấn được khi đang ở chế độ “RUN”.
Khi phím “DAU” được ấn,matrix led sẽ chuyển sang chế độ nhập dấu cho ký tự gần
nhất, lúc này ký tự gần nhất vẫn hiển thị còn các ký tự trước đó sẽ mất đi và ta tiến hành nhập
dấu cho ký tự hiển thi. Cách đánh dấu theo chuẩn Unicode qua con số, có thể sửa dấu nếu
đánh sai dấu và bỏ dấu bằng phím “0”, các dấu không thể đánh trong 1 ký tự nếu ta ấn thì
không có thay đổi. Trong lúc đang ở chế độ đánh dấu thì những phím không liên quan khi
được ấn sẽ không có hiệu lực.
Từ chế độ đánh dấu chuyển sang chế độ nhập ký tự cũng bằng phím “DAU”. Một điều
lưu ý là khi tao nhập một ký tự mới thì chỉ có thể điều chỉnh dấu của ký tự đó, không thể điều
chỉnh dấu của ký tự trước đó, muốn điều chỉnh dấu thì xóa và đánh lại. Sau khi space và
delete thì không thể vào chế độ đánh dấu.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”
40. 41
ƯU ĐIỂM
Ø Thao tác vận hành đơn giản.
Ø Linh kiện dễ tìm.
Ø Sử dụng nguồn DC 5V nên khá an toàn.
Ø Có thể nhập dấu theo chuẩn Unicode.
KHUYẾT ĐIỂM
Ø Giá thành sản phẩm còn khá đắt.
Ø Mạch phức tạp.
Ø Chân P0 điện áp ra rất thấp, cần điện trở để kích.
Ø Ánh sáng yếu.
GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”