Top Banner
2 ĐẠI HC QUC GIA THÀNH PHHCHÍ MINH ĐẠI HC CÔNG NGHTHÔNG TIN KHOA KTHUT MÁY TÍNH ¸ BÁO CÁO ĐỒ ÁN MÔN HC MATRIX LED NHP TBÀN PHÍM Giáo viên hướng dn : Ths Nguyn Tt Bo Thin Lp : KTMT01 Nhóm thc hin : Nguyn Minh Hùng 06520189 Lê Nguyn Khoa 06520225 Ngô TĐăng Khoa 06520228 Lê Quang Huy 06520202 2008 - 2009
41

ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

Aug 29, 2019

Download

Documents

hoangdien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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

Page 2: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 3: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 4: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 5: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 6: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 7: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 8: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 9: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 10: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 11: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 12: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 13: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 14: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 15: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 16: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 17: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 18: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 19: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 20: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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&lt;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”

Page 21: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 22: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 23: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 24: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

25

CHƯƠNG TRÌNH MẪU

#include <reg52.h> #include "absacc.h" //------------------------------------------------------------------------------------------------ #define begin 1096 #define pb1 0x2001 #define pc1 0x2002 //------------------------------------------------------------------------------------------------ void quetphim(void); void napchuoi(void); void xulyhienchu(void); void hienchu(void); void hienchucuoi(void); void delay_434us(void); void delete(void); void space(void); void X_init(void); void xulychaychu(void); void delay_1s(void); void dinhphim(void); void dinhphimcuoi(void); void tradau(void); void napdau(void); //------------------------ unsigned char phim,phim_temp,dau1=0,dau2=0; unsigned int ramadd,kytu,rac; bit run=0,d=0; //------------------------------------------------------------------------------------------------ unsigned char xdata bangmaduoi[408] = { 0x38,0x06,0x05,0x04,0x05,0x06,0x38,0x00, //A 0x3f,0x24,0x24,0x24,0x24,0x24,0x1b,0x00, //B 0x1f,0x20,0x20,0x20,0x20,0x20,0x11,0x00, //C 0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00, //. 0x00,0x02,0x01,0x3f,0x00,0x00,0x00,0x00, //1 0x3f,0x20,0x20,0x20,0x20,0x20,0x1f,0x00, //D 0x3f,0x24,0x24,0x24,0x24,0x20,0x20,0x00, //E 0x3f,0x04,0x04,0x04,0x04,0x00,0x00,0x00, //F 0x00,0x50,0x30,0x00,0x00,0x00,0x00,0x00, //, 0x31,0x28,0x28,0x28,0x28,0x27,0x00,0x00, //2 0x1f,0x20,0x20,0x20,0x24,0x24,0x3c,0x00, //G 0x3f,0x04,0x04,0x04,0x04,0x04,0x3f,0x00, //H

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 25: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

26

0x20,0x20,0x20,0x3f,0x20,0x20,0x20,0x00, //I 0x00,0x51,0x31,0x00,0x00,0x00,0x00,0x00, //; 0x11,0x20,0x24,0x24,0x24,0x1b,0x00,0x00, //3 0x10,0x20,0x20,0x1f,0x00,0x00,0x00,0x00, //J 0x3f,0x04,0x04,0x0a,0x11,0x20,0x00,0x00, //K 0x3f,0x20,0x20,0x20,0x20,0x20,0x00,0x00, //L 0x00,0x14,0x14,0x14,0x14,0x14,0x00,0x00, //= 0x18,0x14,0x12,0x11,0x3f,0x10,0x00,0x00, //4 0x3f,0x01,0x02,0x04,0x02,0x01,0x3f,0x00, //M 0x3f,0x01,0x02,0x04,0x08,0x10,0x3f,0x00, //N 0x1f,0x20,0x20,0x20,0x20,0x20,0x1f,0x00, //0 0x00,0x00,0x00,0x00,0x1f,0x20,0x40,0x00, //( 0x27,0x24,0x24,0x24,0x24,0x18,0x00,0x00, //5 0x3f,0x04,0x04,0x04,0x04,0x04,0x03,0x00, //P 0x1f,0x20,0x20,0x20,0x28,0x10,0x2f,0x00, //Q 0x3f,0x04,0x04,0x04,0x0c,0x14,0x23,0x00, //R 0x00,0x40,0x20,0x1f,0x00,0x00,0x00,0x00, //) 0x1f,0x24,0x24,0x24,0x24,0x19,0x00,0x00, //6 0x13,0x24,0x24,0x24,0x24,0x24,0x19,0x00, //S 0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00, //T 0x1f,0x20,0x20,0x20,0x20,0x20,0x1F,0x00, //U 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //" 0x00,0x00,0x38,0x04,0x02,0x01,0x00,0x00, //7 0x03,0x0c,0x10,0x20,0x10,0x0c,0x03,0x00, //V 0x1f,0x20,0x10,0x0c,0x10,0x20,0x1f,0x00, //W 0x20,0x11,0x0a,0x04,0x0a,0x11,0x20,0x00, //X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //" 0x1b,0x24,0x24,0x24,0x24,0x1b,0x00,0x00, //8 0x00,0x01,0x02,0x3c,0x02,0x01,0x00,0x00, //Y 0x21,0x30,0x28,0x24,0x22,0x21,0x10,0x00, //Z 0x00,0x37,0x37,0x00,0x00,0x00,0x00,0x00, //! 0x00,0x00,0x24,0x02,0x01,0x00,0x00,0x00, //? 0x13,0x24,0x24,0x24,0x24,0x1f,0x00,0x00, //9 0x00,0x08,0x08,0x3e,0x08,0x08,0x00,0x00, //+ 0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00, //- 0x00,0x22,0x14,0x08,0x14,0x22,0x00,0x00, //x 0x00,0x31,0x31,0x00,0x00,0x00,0x00,0x00, //: 0x1f,0x30,0x28,0x24,0x22,0x21,0x1f,0x00, //0 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 // }; //------------------------ unsigned char xdata bangmatren[408] = { 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00, //A 0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //B 0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //C

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 26: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

27

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //. 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00, //1 0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //D 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00, //E 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00, //F 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //, 0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00, //2 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00, //G 0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00, //H 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00, //I 0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00, //; 0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00, //3 0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //J 0x80,0x00,0x00,0x00,0x00,0x80,0x00,0x00, //K 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //L 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //= 0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00, //4 0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00, //M 0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00, //N 0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //O 0x00,0x00,0x00,0x00,0xc0,0x20,0x10,0x00, //( 0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //5 0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //P 0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //Q 0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //R 0x00,0x10,0x20,0xc0,0x00,0x00,0x00,0x00, //) 0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00, //6 0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //S 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00, //T 0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00, //U 0x00,0x00,0x00,0x00,0x0c,0x20,0x20,0x00, //" 0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //7 0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00, //V 0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00, //W 0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00, //X 0x00,0x20,0x20,0x0c,0x00,0x00,0x00,0x00, //" 0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00, //8 0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00, //Y 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00, //Z 0x00,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00, //! 0x40,0x20,0x20,0x20,0xc0,0x00,0x00,0x00, //? 0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00, //9 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //x 0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00, //:

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 27: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

28

0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00, //0 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 // }; //------------------------ unsigned char xdata bangdautren[80] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0 0x00,0x00,0x04,0x02,0x01,0x00,0x00,0x00, //1 0x00,0x00,0x01,0x02,0x04,0x00,0x00,0x00, //2 0x00,0x00,0x00,0x02,0x01,0x09,0x06,0x00, //3 0x00,0x02,0x01,0x01,0x02,0x02,0x01,0x00, //4 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //5 0x00,0x40,0x20,0x10,0x20,0x40,0x00,0x00, //6 0x00,0x00,0x00,0x00,0x00,0x10,0x90,0x60, //7 0x00,0x10,0x20,0x20,0x20,0x10,0x00,0x00, //8 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //9 }; //------------------------ unsigned char xdata bangdauduoi[80] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //1 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //2 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //3 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //4 0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00, //5 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //6 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //7 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //8 0x00,0x04,0x04,0x04,0x00,0x00,0x00,0x00 //9 }; //------------------------ unsigned char bangspeed[7] = {48,40,32,24,16,8,1}; //------------------------------------------------------------------------------------------------ //------------------------ void X_init(void) { XBYTE[0x6003] = 0x80; XBYTE[0x4003] = 0x80; XBYTE[0x2003] = 0x80; for(ramadd=begin - 96;ramadd<8192;ramadd++) { XBYTE[ramadd] = 0x00; } ramadd = begin;

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 28: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

29

} //------------------------ void main(void) { X_init(); while(1) { if(run == 1) xulychaychu(); if(d == 1) tradau(); quetphim(); switch(phim) { case 54: space();break; case 55: delete();break; case 53: xulychaychu();break; case 60: tradau();break; default: xulyhienchu();break; } } } //------------------------ void quetphim(void) { unsigned char x,b,y=0; for(x = 1; x<16;x<<=1) { P1 = ~(x); b=P1; switch (b) { case 0xE7: phim = 1 ;break;

//0111 0111 phim 1 (1 -A 2 -B 3 -C 4 -. 5 -1) case 0xD7: phim = 6 ;break;

//0111 1011 phim 2 (6-D 7-E 8-F 9-, 10-2) case 0xB7: phim = 11;break;

//0111 1101 phim 3 (11-G 12-H 13-I 14-; 15-3) case 0x77: phim = 55;break;

//0111 1110 phim 4 delete case 0xEB: phim = 16;break;

//1011 0111 phim 5 (16-J 17-K 18-L 19-= 20-4) case 0xDB: phim = 21;break;

//1011 1011 phim 6 (21-M 22-N 23-O 24-( 25-5) case 0xBB: phim = 26;break;

//1011 1101 phim 7 (26-P 27-Q 28-R 29-) 30-6) case 0x7B: phim = 54;break;

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 29: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

30

//1011 1110 phim 8 space case 0xED: phim = 31;break;

//1101 0111 phim 9 (31-S 32-T 33-U 34-" 35-7) case 0xDD: phim = 36;break;

//1101 1011 phim 10 (36-V 37-W 38-X 39-" 40-8) case 0xBD: phim = 41;break;

//1101 1101 phim 11 (41-Y 42-Z 43-! 44-? 45-9) case 0x7D: phim = 60;if(kytu!=350&run == 0)d=~d;break;

//1101 1110 phim 12 danh dau case 0xEE: phim = 51;break;

//1110 0111 phim 13 speed down case 0xDE: phim = 46;break;

//1110 1011 phim 14 (46-+ 47-- 48-* 49-: 50-0) case 0xBE: phim = 52;break;

//1110 1101 phim 15 speed up case 0x7E: phim = 53;if(d==0)run=~run; break;

//1110 1110 phim 16 run //xxxx xxxx default: phim = 0 ; } if(phim!=0) break; } } //------------------------ void xulyhienchu(void) { unsigned char x,k; for(x=0;x<24;x++) { if(phim <51& phim!=0) { x=0;dau1=0;dau2=0; if(phim_temp != phim) { k=0; phim_temp=phim; kytu = (phim-1)*8; napchuoi(); dinhphim(); } else //phim_temp == phim { k++; if(k == 5) {k=0; kytu = (phim-1)*8;} else { kytu += 8;} ramadd -= 16;

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 30: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

31

napchuoi(); dinhphim(); } } else { rac=ramadd; hienchu(); //for 24 lan chiem 0.5s } quetphim(); if(phim > 52) break; //space delete run danhdau } phim_temp=0; } //------------------------ void napchuoi(void) { unsigned char n; for (n=0;n<8;n++) { XBYTE[ramadd] = bangmatren[kytu+n] | bangdautren[dau1+n] | bangdautren[dau2+n]; XBYTE[ramadd+1] = bangmaduoi[kytu+n] | bangdauduoi[dau1+n] | bangdauduoi[dau2+n]; ramadd += 2; } } //------------------------ void delete(void) { dau1=0;dau2=0; if(ramadd != begin) { kytu=400; ramadd -= 16; napchuoi(); ramadd -= 16; dinhphim(); } } //------------------------ void space(void) { dau1=0;dau2=0; kytu = 400;

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 31: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

32

napchuoi(); dinhphim(); } //------------------------ void hienchu(void) { unsigned int chip_port,tren=pc1,duoi=pb1; unsigned char y,cot; chip_port = 0x6000;//chip3 port 1 while(chip_port != 0x2000) { for (y=0;y<3;y++) { for(cot=1;cot>0;cot<<=1) { rac-=2; XBYTE[duoi] = XBYTE[rac+1]; XBYTE[tren] = XBYTE[rac]; XBYTE[chip_port]=~cot; delay_434us(); XBYTE[chip_port]=0xFF; } chip_port++;

//0x6000>0x6001>0x6002>6003;0x4000>0x4001>0x4002>0x4003 } chip_port=chip_port - 0x2003;

//0x6003 - 0x2003 = 0x4000;0x4003 - 0x2003 = 0x2000 } } void hienchucuoi(void) { unsigned int tren=pc1,duoi=pb1; unsigned char cot; for(cot=1;cot>0;cot<<=1) { rac -= 2; XBYTE[duoi] = XBYTE[rac+1]; XBYTE[tren] = XBYTE[rac]; XBYTE[0x6000]=~cot; delay_434us(); XBYTE[0x6000]=0xFF; } } //------------------------

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 32: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

33

void xulychaychu(void) { unsigned char s,speed,h=0; delay_1s(); rac = begin - 96; speed = 3; while(run != 0) { s=bangspeed[speed]; while(run!=0&s!=0) { rac += 96; hienchu(); s--; quetphim(); if (h<48) h++; if((phim >50) & (h==48)) //1s moi nhan tiep phim speed { h=47; switch(phim) { case 51: if(speed !=0)speed--;h=0;break; case 52: if(speed !=6)speed++;h=0;break; default: break; } } } if(rac > ramadd) rac = begin - 96 ; else rac += 2; } delay_1s(); } //------------------------ void dinhphim(void) { unsigned char z; { for(z=0;z<24;z++) //24 lan chiem 0.5s { rac = ramadd; hienchu(); } } } void dinhphimcuoi(void) {

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 33: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

34

unsigned char z; { for(z=0;z<144;z++) //24 lan chiem 0.5s { rac = ramadd; hienchucuoi(); } } } //------------------------ void tradau(void) { dinhphimcuoi(); while(d != 0) { quetphim(); switch(phim) { case 1 :

if(kytu == 0||kytu == 48||kytu == 96||kytu == 176||kytu == 256||kytu == 320 ) {dau1=8 ;napdau();} break; //1 case 6 :

if(kytu == 0||kytu == 48||kytu == 96||kytu == 176||kytu == 256||kytu == 320 ) {dau1=16;napdau();} break; //2 case 11:

if(kytu == 0||kytu == 48||kytu == 96||kytu == 176||kytu == 256||kytu == 320 ) {dau1=24;napdau();} break; //3 case 16:

if(kytu == 0||kytu == 48||kytu == 96||kytu == 176||kytu == 256||kytu == 320 ) {dau1=32;napdau();} break; //4 case 21:

if(kytu == 0||kytu == 48||kytu == 96||kytu == 176||kytu == 256||kytu == 320 ) {dau1=40;napdau();} break; //5 case 26:

if(kytu==0||kytu==48||kytu==176) {dau2=48;napdau();} break; //6 case 31:

if(kytu==176||kytu==256) {dau2=56;napdau();} break; //7

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 34: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

35

case 36: if(kytu==0) {dau2=64;napdau();} break; //8 case 41: if(kytu == 40) {dau2=72;napdau();} break; //9 case 46: if(dau1!=0) {dau1=0;napdau();} else {dau2=0;napdau();} break; //0 default: rac=ramadd;hienchucuoi();break; } } dinhphim(); } //------------------------ void napdau(void) { ramadd -=16; napchuoi(); dinhphimcuoi(); } //------------------------ void delay_434us(void) { TMOD&= 0xF0; TMOD |= 0x01; ET0 = 0; TH0 = 0xFE; TL0 = 0x4E; TF0 = 0; TR0 = 1; while (TF0 == 0); TR0 = 0; } //------------------------ void delay_1s(void) { unsigned char x,y; for(y=0;y<9;y++) {

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 35: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

36

for(x=0;x<250;x++) { delay_434us(); } } }

GVHD: Ths Nguyễn Tất Bảo Thiện ĐỀ TÀI: “MA TRẬN LED NHẬP TỪ BÀN PHÍM”

Page 36: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 37: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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

SPACE

1 A B C .

2 D E F ,

3 G H I ;

4 J K L =

DAU

Page 38: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 39: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 40: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

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”

Page 41: ĐỒ ÁN MÔN HỌC MATRIX LED - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/khoa-hoc-ky-thuat/dien-dien-tu/file_goc_768149.pdf · 7 IC 82C55A Sơ đồ chân Đặc điểm

42