Tải bản đầy đủ (.doc) (28 trang)

BÀI TẬP LỚN NGOẠI VI GHÉP NỐI Đề tài: TÌM HIỂU VỀ LED MATRIX (MẠCH QUẢNG BÁ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.03 MB, 28 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG CAO ĐẲNG KINH TẾ - KĨ THUẬT
BÀI TẬP LỚN NGOẠI VI GHÉP NỐI
Đề tài:
TÌM HIỂU VỀ LED MATRIX
(MẠCH QUẢNG BÁ)
Sinh viên thực hiện: Hà Anh Dũng
Lương Văn Dũng
Giáo viên hướng dẫn: Lê Minh Tân
Vũ Đình Thanh
Tháng 12 Năm 2012
MỤC LỤC
LỜI NÓI ĐẦU 2
CHƯƠNG I: Giới thiệu đề tài mạch quảng bá 4
CHƯƠNG II: Linh kiện cơ bản sử dụng trong mạch 6
2.1. Giới thiệu về vi điều khiển 89C51 6
2.1.1. Các đặc điểm của hệ vi xử lý 89C51 6
2.1.2. Cơ bản về cấu tạo của AT89C51 7
2.1.3. Các thanh ghi chức năng đặc biệt (SFR) 12
2.2. Giới thiệu về Led Ma trận 16
2.2.1. Sơ đồ cấu tạo của Led Ma trận 16
2.2.2. Nguyên tắc làm sáng đèn trên bảng Led Matrix 18
2.2.3. Nguyên tắc quét bảng ma trận led 18
2.2.4. Nguyên tắc tạo hiệu ứng chạy từ phải sang trái 21
3.1. Sơ đồ mạch 23
3.1.2. Giới thiệu về phần mềm hỗ trợ 23
3.1.3. Phần mềm giới thiệu viết code 26
3.1.4. Sản phẩm mạch trên mô phỏng 27
KẾT LUẬN 29
1
LỜI NÓI ĐẦU


Ngày nay nền công nghệ ứng dụng vi sử lý vào đời sống ngày càng khá phổ
biến và không ngừng được phát truyển trong nhiều lĩnh vực như điều khiển tự
động, trang trí quảng cáo, các đèn giao thông…đặc biệt chúng ta hay bắt gặp nhất
là ứng dụng trong quảng cáo của vi sử lý. Những biển quảng bá rất nổi bật làm
chúng ta không khỏi tò mò . đó chính là thành công của người thiết kế.Tính ưu việt
của nó thể hiện ở chỗ:
- Dễ dàng sử dụng trong các thiết bị điện tử hoặc hệ thống điện tử số.
- Chi phí nâng cấp thấp và cần rất ít linh kiện cho việc bảo dưỡng bảo hành.
- Mang lại hiệu quả kinh tế cao.
Vi điều khiển mang lại nhiều lợi nhuận lại có sức cạnh tranh cao do chất
lượng cao mang lại được sử dụng rộng dãi, càng tăng tính hấp dẫn về người dùng
đồng thời cũng mang lại nhiều lợi nhuận cho các nhà sản xuất. Đó là động lực để vi
điều khiển tăng trưởng cả về số lượng và chất lượng.
Trong thời gian làm đồ án, chúng em đã nhận được sự giúp đỡ nhiệt tình của
thầy cô cùng với sự nỗ lực của cả nhóm chúng em đã hoàn thành được để tài của
mình và về cơ bản đã đáp ứng được yêu cầu của đề tài. Đó là tìm hiểu về led matrix
(mạch quảng bá) chúng em rất mong nhận được sự gióp ý của các thầy cô và các
bạn để đề tài được hoàn thiện hơn
Chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện: Hà Anh Dũng
Lương Văn Dũng
2
CHƯƠNG I:
GIỚI THIỆU ĐỀ TÀI ĐÈN LED MATRIX (MẠCH QUẢNG BÁ)
Trong thời buổi khoa hoc công nghệ phát triện không ngừng với sức sang
tạo không giới hạn con người đã làm ra những cuộc đại cách mạng về công
nghệ.Đã tạo ra những phát minh thành quả trong sản xuất và đời sống nhàm
phục vụ những nhu cầu của con người được thỏa mãn.Ngành điện tử cũng là
một ngành khoa học nên cũng không thể nằm ngoài sự phát triển đó .Các thiết
bị điện tử không còn quá xa vời với con người mà nó ngày càng được sử dụng

vào các nhu cầu của con người.Chúng ta sẽ không phải thấy những biển quảng
cáo thô cứng thụ động bằng việc cắt dán chữ mà thay vào đó là những biển
quảng cáo sinh động,bắt mắt và đặc biệt có thể linh động trong quảng cáo.
Để thiết kế một mạch quảng bá thì có nhiều phương án để lựa chọn như:
dùng EEPROM, dùng máy tính điều khiển trực tiếp, dùng vi xử lý, vi điều
khiển.
Khi sử dụng EEPROM để lưu trữ thông tin hiển thị kết hợp với các IC giải
đa hợp (Demultiplexer) để điều khiển quá trình hiển thị trên màn hình. ưu điểm
của EEPROM là thông tin không bị mất khi không có nguồn cấp và khi muốn
thay đổi nội dung bản tin ta chỉ việc lập trình lại cho EEPROM (thay đổi phần
mềm). Việc thay đôi như vậy xem ra có vẻ đơn giản, nhưng ta cần có mạch nạp
và phần mềm điều khiển. Việc tháo lắp nhiều sẽ dẫn đến hỏng hóc không đáng
có.
Khi vi xử lý được sử dụng trong mạch thì mạch sẽ có thêm nhiều tính năng
hơn nhưng giá thành cho một sản phẩm cũng vì thế mà tăng lên. Một mạch vi
xử lý cần có thêm EEPROM(để lưu chương trình điều khiển), RAM và các IC
giao tiếp ngoại vi khác(8255, 74373…). Một kít vi xử lý như vậy sẽ đem lại
cho bảng thông tin những tính năng như: việc cập nhật nội dung hiển thị sẽ dễ
dàng hơn(không cần tháo IC ra) bằng các nhập chương trình mới vào RAM,
3
các hiệu ứng đặc biệt về màu sắc cũng được thực hiện dễ dàng. Tuy nhiên như
đã nói ở trên, do vấn đề giá thành cao nên phương án này không được chọn.
Dùng máy tính để điều khiển bảng tin cũng là một phương án. Nhưng do
kích thước máy tính lớn chiếm nhiều diện tích, lại đắt tiền nên ta không sử
dụng.
Phương án được lựa chọn là dùng Vi Điều Khiển. Vì sao lại chọn Vi Điều
Khiển?
Thứ nhất: Ngày nay Vi Điều Khiển được sử dụng rộng rãi trong các ứng
dụng hướng điều khiển do kích thước gọn, khả năng tích hợp cao nhiều tính
năng trong một con Vi Điều Khiển khiến cho mạch điện tử trở nên đơn giản

hơn nhiều.
Thứ hai: Giá thành của Vi Điều Khiển không quá đắt như Vi xử lý. Trên
thế giới hiện có rất nhiều nhà sản xuất Vi Điều Khiển (ATMEL, ZILOG,
MicroChip, Motorola, Cypress…). Sự cạnh tranh của các nhà sản xuất về giá
thành và khả năng tích hợp đem lại lợi ích cho người sử dụng.
Thứ ba: Vi Điều Khiển được coi như một “small computer” hay System
On Chip (SoC). Bên trong vi điều khiển bao gồm CPU, ROM , RAM, EEPOM,
các giao tiếp ngoại vi, các khối số học và tương tự (ADC,DAC, op-amp, bộ so
sánh…) tuỳ theo từng loại.
Tại Viêt Nam, thị trường Vi Điều Khiển khá sôi động. Chỉ cần vào một của
hàng điện tử bất kỳ ta đều có thể mua được một con Vi Điều Khiển ưng ý. Về
công cụ phát triển cho Vi Điều Khiển ta có thể tìm thấy rất nhiều trên mạng
Internet, trên các diễn đàn về điện tử trong và ngoài nước, hầu hết đều là các
tiện ích miễn phí dành cho người sử dụng …
Sau một thời gian nghiên cứu về Vi Điều Khiển, mà cụ thể là dòng Vi Điều
KhiểnAT89CXX . Nhóm Em quyết định chọn Vi Điều Khiển AT89C51 để thực
hiện đề tài “thiết kế , chế tạo mạch Quảng Bá”
4
CHƯƠNG II: LINH KIỆN CƠ BẢN SỬ DỤNG TRONG MẠCH
2.1.GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 89C51
2.1.1 CÁC ĐẶC ĐIỂM CỦA HỆ VI XỬ LÝ 89C51
Vi điều khiển (VĐK) là một hệ vi xử lý được tổ chức trong một chíp. Bao gồm:
+ 40 chân
+ 4 kbyte ROM. 1, có thể ghi xoá được 1000 lần
+ 4 kbyte EPROM.
+ Dải tần số hoạt động từ 0MHz đến 24Mhz
+ 4 port xuất nhập (I/O) 8 bit
+ 128 byte RAM
+ Mạch giao tiếp nối tiếp
+ Không gian nhớ Data ngoài 64k byte.

+ Bộ xử lý bit thao tác trên các bit riêng.
+ 210 vị trí nhớ định địa chỉ, mỗi vị trí một bit.
+ Các thanh ghi chức năng, cơ chế điều khiển ngắt .
+ Các bộ thời gian dùng trong limh vực chia tần số và tạo thời gian thực.
+ Bộ vi điều khiển có thể nạp chương trình để điều khiển các thiết bị thông tin,
viễn thông thiết bị đo lường,thiết bị điều chỉnh cũng như các ứng dụng trong công
nghệ thông tin và kỹ thuật điều khiển tự động. có thể xem bộ VĐK như một hệ
VXL on-chíp đối với AT89C51, nó có đầy đủ chức năng của một hệ VXL 8 bit,
được điều khiển bởi một hệ lệnh, có số lệnh đủ mạnh, cho phép lập trình bằng hợp
ngữ (Assemply).
5
2. 1.2 CƠ BẢN VỀ CẤU TẠO CỦA AT89C51
Hình 1.1 : Sơ đồ chân của 89C51
6
Hình 1.2 : Sơ đồ khối của 89C51
+ GND(chân 20): Chân nối với 0v
+ Port 0(chân 32 – chân 29)
7
+ Port 0 là port xuất nhập 8 bit hai chiều. Port 0 còn được cấu hình làm bus địa
chỉ( byte thấp) và bus dữ liệu đa hợp trong khi truy xuất bộ nhớ dữ liệu ngoài và
bộ nhớ chương trình ngoài. Port cũng nhận các byte mã trong khi lập trình cho.
Flash và xuất các byte mã trong khi kiểm tra chương trình ( các điện trở kéo lên
bên ngoài được cần đến trong khi kiểm tra chương trình).
+ Port 1( chân 1- 8): port 1 là port xuất nhập 8 bit hai chiều. Port1 cũng nhận byte
địa chỉ thấp trong thời gian lập trình cho Flash.
+ Port 2 ( chân 21 – 28): Port 2 là port xuất nhập 8 bit hai chiều. Port 2 tạo ra các
byte cao của bus địa chỉ trong thời gian tìm nạp lệnh từ bộ nhớ chương trình ngoài
và trong thời gian truy xuất bộ nhớ dữ liệu ngoài, sử dụng các địa chỉ 16 bit. Trong
thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 8 bit, port 2 phát các
nội dung của các thanh ghi đặc biệt, port 2 cũng nhận các bits địa chỉ cao và vài tín

hiệu điều khiển trong thời gian lập trình cho Flash và kiểm tra chương trình.
+ Port 3 ( chân 10- 17): Port 3 cũng nhận một vài tín hiêu điều khiển cho việc lập
trình Flash và kiểm tra chương trình. Port 3 là port xuất nhập 8 bit hai chiều, port 3
cũng còn làm các chức năng khác của AT89C51. các chức năng này được nêu như
sau:
Chân Tên Chức năng
P3.0 RxD Ngõ vào port nối tiếp
P3.1 TxD Ngõ ra port nối tiếp
P3.2 INT0 Ngõ vào ngắt ngoài 0
P3.3 INT1 Ngõ vào ngắt ngoài 1
P3.4 T0 Ngõ vào bên ngoài của bộ định thời 1
P3.5 T1 Ngõ vào bên ngoài của bộ định thời 0
P3.6 WR Điều khiển ghi bộ nhớ dữ liệu ngoài
P3.7 RD Điều khiển đọc bộ nhớ dữ liệu ngoài
+ RST ( chân 9) Ngõ vào reset. Mức cao trên chân này trong hai chu kỳ máy trong
khi bộ dao động đang hoạt động sẽ reset AT89C51
+ ALE/PROG( chân 30) ALE là một xung ngõ ra để chốt byte thấp của địa chỉ
trong khi xuất bộ nhớ ngoài. Chân này cũng làm ngõ vào chân lập trình (PROG)
8
trong thời gian lạp trình cho Flash. Khi hoạt động bình thường xung ngõ ra luôn có
tần số không đổi là 1/6 tần số của mạch dao động, có thể được dùng cho các mục
đích định thời bên ngoài. Khi cần, hoạt động chân ALE có thể được vô hiệu hoá
bằng cách set bit 0 của thanh ghi chức năng đặc biệt có địa chỉ 8Eh. Khi bit này
được set, ALE chỉ tích cực trong thời gian thực hiện lệnh MOVX hoặc MOVC.
Ngược lại chân này sẽ được kéo lên cao. Việc set bit không cho phép hoạt động
chôt byte thấp của địa chỉ sẽ không có tác dụng nếu bộ vi điều khiển đang ở chế độ
thực thi chương trình ngoài.
+ PSEN(chân 29): PSEN (program Store Enable) là xung điều khiển truy xuất
chương trình ngoài. Khi AT89C51 đang thực thi chương trình từ bộ nhớ chương
trình ngoài, PSEN được kích hoạt hai lần mỗi chu kỳ máy, nhưng hai hoạt động

PSEN sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài.
+ EA vpp(chân 31): Là chân cho phép truy xuất bộ nhớ chương trình ngoài ( địa chỉ
từ 0000h tới FFFFH). EA = 0 cho phép truy xuát bộ nhớ chương trình ngoài, ngược
lại EA = 1 sẽ thực thi chương trình bên trong chip. Tuy nhiên, lưu ý rằng nếu bít
khoá 1 được lập trình EA được chốt bên trong khi reset
+ XTAL1& XTAL2: Là hai ngõ vào ra của hai bộ khuyếch đại đảo của mạch dao
động, được cấu hình để dùng như một bộ tạo dao động trên chip
Hình1.3: Bộ tạo dao động
9
Bộ nhớ bên trong chip bao gồm ROM, RAM va EPROM. RAM trên chip
bao gồm vùng RAM đa chức năng, vùng RAM với từng bit được định địa chỉ, các
dây thanh ghi (bank) và các thanh ghi chức năng đặc biệt.
Có 2 đặc tính đáng lưu ý:
+ Các thanh ghi và các port I/O được định địa chỉtheo kiểu ánh xạ bộ nhớ và được
truy xuất như một vị trí nhớ trong bộ nhớ.
+ Vùng track thường trú trong RAM trên chip thay vì ở trong RAM ngoài như đối
với các bộ vi xử lý.
Vùng RAM đa mục đích:
Có 80 byte, địa chỉ từ 30H đến 7FH
Bất cứ vị trí nào trong vùng RAM ta đều có thể truy xuấttụ do bằng cách sử dụng
định địa chỉ trực tiếp hoặc gián tiếp.
Ví dụ:
+ Kiểu định địa chỉ trực tiếp:
MOV A,5FH ;Đọc nội dung tại địa chỉ 5FH của RAM
+ Kiểu định địa chỉ gián tiếp: (Qua các thanh ghi R0,R1)
MOV R0,#5FH ; Di chuyển giá trị5FH vào thanh ghi R0
MOV A,@R0 ; Di chuyển dữ liệu trỏ tới R0 và thanh chứa A
Vùng RAM định địa chỉ:
Chip 8951 chứa 210 vi trí định địa chỉ in đó có 128 byte chứa trong các byte ở địa
chỉ 20H đến 2FH (16 byte x 8 = 128 bits), phần còn lại chứa trong các thanh ghi

chức năng đặc biệt.
Công dụng: + Truy xuất các bit riêng rẽ thông qua các phần mền.
+ Các port có thể địng địa chỉ từng bit, làm đơn giản việc giao tiếp
băng phần mền với các thiết bị xuất nhập đơn bit.
Ví dụ:
+ Set bit trực tiếp:
SETB 67H; lệnh làm nhiệm vụ set bit 67H bằng 1
10
+ Hoặc ta có thẻ sử dụng lệnh sau để set bít 67H là bit lớn nhất của byte 2CH:
ORL A,#10000000B ; Tác dụng set bit
2.1.3 Các thanh ghi chức năng đặc biệt (SFR)
Không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chit có 21
địa chỉ được định nghĩa.
Các thanh ghi chức năng đặc biệt bao gồm:
+ Tử trạng thái chương trình PSW: có địa chỉ là D0H
+ Thanh ghi B: Có địa chỉ F0Hđược dùng chung với thanh chứa A trong các phép
toán nhân và chia.
+ Con trỏ Stack (SP) : là thanh ghi 8 bit ở địa chỉ 81H, nó chứa địa chỉ của dữ liệu
hiện đang ở đỉnh của stack.
+ Con trỏ dữ liệu DPTR:
Dùng để truy xuất bộ nhớ chương trình ngoài hoặc bộ nhớ dữ liệu ngoài.
DPTR là thanh ghi 16 bit có địa chỉ 82H (byte thấp ) và 83H (byte cao).
Ví dụ:
MOV A,#55H ;Nạp hằng dữ liệu 55H và thanh chứa A
MOV DPTR,%1000 ;Nạp hằng địa chỉ 16 bit 1000H cho con trỏ DPTR
MOV @DPTR,A ;Chuyển dữ liệu từ A vao RAM ngoài tai địa chỉ DPTR trỏ tới.
+ Các thanh ghi port:
- Port 0 : địa chỉ 80H
- Port 1 : địa chỉ 90H
- Port 2 : địa chỉ A0H

- Port 3 : địa chỉ B0H
+ Các thanh ghi định thời:
IC 8951 có 2 bộ định thời/đếm dùng để định khoảng thời gian hoặc đếm các sự
kiện.
- Bộ định thời 0: địa chỉ 8AH (TL0 ) va 8CH (TH0)
- Bộ định thời 1: địa chỉ 8bH (TL1 ) va 8DH (TH1)
11
Hoạt động của bộ định thời được thiết lậpbởi thanh ghi chế độ định thời TMOD ở
địa chỉ 89H và thanh ghi đieèu khiển bộ định thời TCON ở địa chỉ 88H (chỉ có
TCON được định địa chỉ từng bit)
+ Các thanh ghi của port nối tiếp: Chip 8951 có 1 port nối tiếp để truyền thông với
các thiết bị như các thiết bị đầu cuối hoặc model
+ Các thanh ghi ngắt: có một cấu trúc ngắt với 2 mức ưu tiên và 5 nguyên nhân
ngắt. Các ngắt bị vô hiệu hoá sau khi Reset hệ thống và được phép bằng cách vào
thanh ghi IE ở địa chỉA8H. Mức ưu tiên ngắt được thiết lập bơit thanh ghi IP ở địa
chỉ B8H.
+ Thanh ghi điều khiển nguồn: PCON có địa chỉ 87H
Bảng vector ngắt của 8051
Ngắt Đỉa chỉ ROM (Hexa) Chân
RESET 0000 9
Ngắt phần cứng ngoài (INTO) 0003 12 (P3 : 2)
Ngắt bọ timer 0 (TFO) 0008
Ngắt phần cứng ngoài 1 (INT1) 0013 12 (P3 : 3)
Ngắt bộ timer 1 (TF1) 0018
Ngắt COM nối tiếp (R1 và T1) 0023
Bảng 1: Bảng vector ngắt của 8051
- Cho phét ngắt và cấm ngắt
Khi reset thì tất cả mọi ngắt bị cấm, có nghĩa là không có ngắt nào được bộ
vi điều khiển đáp ứng nếu chúng được kích hoạt. các ngắt phải được cho phép bằng
phần mềm để bộ vi điều khiển có thể đáp ứng được. Có 1 thanh ghi được gọi là cho

phép ngắt IE (Interrup Enable), chịu trách nhiệm về việc cho phép ngắt và cấm các
ngắt IE là thanh ghi có thể định địa chỉ bit.
12
Tín hiệu RESET.
89C51 có ngõ vào RESET (RST) tác động ở mức cao trong khoảng thời gian
2 chu kỳ sau đó xuống mức thấp để 89C51 bắt đầu làm việc. RST có thể kích tay
bằng một phím nhấn thường mở. sơ đồ mạch RESET như hình 2.8
Sau khi RESET hệ thống được tóm lược như sau :
Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được
RESET tại địa chỉ 0000H. Nội dung của RAM trong chip không bị thay đổi bởi tác
động của ngõ vào RESET
9
RST
INTEL
89C51
R1
10K

R2
100

C1
10/16
+ 5V
RESET
H×nh 1a : M¹ch RESET cho 89C51
Hình 1.4: Mạch RESET
13
Bảng giá trị của các thanh ghi sau khi RESET hệ thống :
THANH GHI NỘI DUNG

Bộ đếm chương trình 0000H
Thanh chứa A 00H
Thanh ghi B 00H
PSW 00H
SP 07H
DPTR 0000H
Port 0 – 3 xxx00000B
IP
xx000000B
0xx00000B
Các thanh ghi định
00H
SCON 00H
SBUF 00H
PCON (HMOS) 0xxxxxxxB
PCON (CMOS) 0xxx0000B
Bảng 2: Bảng giá trị của các thanh ghi sau khi RESET hệ thống
2.2 . GIỚI THIỆU VỀ LED MA TRẬN
2.2.1. SƠ ĐỒ CẤU TẠO CỦA LED MA TRÂN
Bảng hiển thị ma trận LED (diot-matrix display) có rất nhiều loại và đủ kích
cỡ to nhỏ khác nhau, mỗi bảng gồm có rất nhiều LED đơn được ghép lại với nhau
trong một khối. Trong khối đó các LED đơn được sắp sếp theo các hàng và các cột,
tại mỗi giao điểm của hàng với cột là một LED đơn, và người ta thường phân biệt
các loại bảng LED theo số hàng và cột. Một bảng LED 5x7 tức là có 5 cột dọc và 7
hàng ngang, tổng cộng sẽ có 5x7=35 LED đơn được ghép lại. Cũng như vậy một
bảng 8x8 là có 8 hàng và 8 cột, do 64 LED đơn ghép lại. Và nhiều loại cỡ to hơn
14
như16x16hay32x32…
Hình 2.1: Minh họa một bảng led matrix 8x8:
Sơ đồ cấu tạo: một ma trận led có 16 chân được sắp xếp theo thứ tự 8 hàng

8 cột được đánh số từ 1 đến 8, số chân của led được đánh từ 1 đến 16 theo sơ đồ
hình vẽ.
15
Hình 2.2: Sơ đồ ghép nối của bảng led matrix 8x8:
Khi đóng vỏ, sự phân bố chân các hàng và cột là không theo thứ tự (do tính
phức tạp trong ghép nối), do đó ta cần tìm hiểu kỹ để mắc mạch cho đúng, nên
theo thứ tự đó ta có các chân số cột gồm: 13,3,4,10,6,11,15,16;các chân số hang
theo thứ tự là: 9,14,8,12,1,7,2,5. Bảng ma trận LED có hai loại, loại có các cột là
các chân Anode, còn hàng là các chân Cathode và loại kia thì ngược lại các cột là
Cathode, hàng là Anode. Khi sử dụng LED ta cần chú ý điều này để điều khiển
cho đúng.
2.2.2
NGUYÊN TẮC LÀM SÁNG ĐÈN TRÊN BẢNG LED MATRIX
Khi muốn làm sáng LED đơn, ta cần đưa điên áp dương vào chân Anode
và điện áp âm
vào chân Cathode với giá trị thích hợp, khi đó LED sáng. Giá trị
điện áp và dòng điện tuỳ
thuộc vào màu sắc từng loại LED. Dòng chảy qua các
LED để đảm bảo độ sáng bình thường là từ 10mA cho đến 25mA.
Khi ta muốn
làm sáng một điểm trên bảng ma trận LED ta cũng làm tương tự.
16
2.2.3 NGUYÊN TẮC QUÉT BẢNG MA TRẬN LED MATRIX
Trong đề tài này em sử dụng 4 bảng LED 8x8 ghép lại thành một bảng cỡ 8x32
(8 hàng và 32 cột). Để hiển thị ký tự lên bảng LED, ở đây ta dùng phương pháp
quét cột và xuất dữ liệu hàng. Quá trình quét cột là ta gửi tín hiệu cho phép đến
từng cột trong từng thời điểm. Cùng lúc đó ta gửi dữ liệu hàng đến 7 hàng. Trong
đề tài này tín hiệu cho phép cột là mức logic ‘0’, và dữ liệu hàng tương ứng là mức
‘1’ hay ‘1’ của từng hàng, mức ‘0’ ứng với LED sáng (on) và mức ‘1’ là tắt (off).
- Đầu tiên ta đưa dữ liệu cần hiển thị đến 7 hàng, ví dụ 11100110

- Kích hoạt cột thứ nhất và các LED tương ứng sẽ sáng. Tạo một thời gian trễ, sau
đó tắt cột thứ nhất.
- Gửi tiếp giá trị dữ liệu 7 hàng của cột thứ 2, kích hoạt cột thứ 2, tạo trễ và lại tắt
cột thứ 2.
- Quá trình quét đó cứ tiếp diễn cho đến khi quét hết 32 cột của bảng LED. Việc
quét hiển thị này diễn ra trong thời gian rất ngắn, cỡ vài chục ms, ta sẽ thấy hình
ảnh hay chữ hiển thị trên bảng LED. Tuy rằng trong mỗi thời điểm chỉ có một cột
được sáng nhưng do thời gian quét rất nhanh và do hiện tương lưu ảnh trong võng
mạc của mắt nên ta thấy hình ảnh xuất hiện liên tục. Tần số quét cần phải đảm bảo
sao cho đủ hoặc lớn hơn 24hình/s. Thường ta chọn tần số quét từ 40Hz đến 100Hz
hoặc có thể lớn hơn.
Dữ liệu hiển thị của hàng được lấy từ EEPROM hoặc từ Flash ROM của Vi Điều
Khiển hay từ ROM ngoài.
Trạng thái của một LED sẽ được quyết định bởi tín hiệu điện áp đi vào đồng
thời cả 2 chân. Ví dụ để LED sáng thì điện áp 5V phải đưa vào chân dương và
chân âm phải được nối mass, LED sẽ tắt khi chân âm nối với điện áp mức cao.
Với đề tài này, chúng em chọn loại ma trận LED 8x8 để hiển thị.Ta có sơ đồ
nguyên lý của Ma trận LED 8x8:
17
Hình 2.3: Sơ đồ nguyên lý led matric
Để ma trận có thể sáng như hình vẽ (hiển thị một phần của chữ ABCD):
Hình 2.4: hiển thị chữ trên Led matric
Một minh họa: Cho xuất mã quét nhanh , các mã hình lần lượt cho xuất trên Port p2,
Port p3, Port p0 ( LED 1,LED 2, LED 3)
18
Đèn LED thứ nhất Đèn LED thứ hai Đèn LED thứ ba
Hình 2.5 Mô phỏng về 3 đèn LED
2.2.4. NGUYÊN TẮC TẠO HIỆU ỨNG CHẠY TỪ PHẢI SANG TRÁI VÀ
TỪ PHẢI SANG TRÁI
Sau khi đã hiển thị được hình ảnh lên bảng LED. Bây giờ ta sẽ tìm hiểu

cách tạo hiệu ứng chữ chạy trên bảng LED. Thủ thuật ở đây là quét và hiển thị
một hình ảnh trong một thời gian nhất định, sau đó ta dịch dữ liệu của các cột sang
trái một vị trí, khi đó ta sẽ tạo được hiệu ứng chữ chạy trên bảng LED.
Đề tài này ta sử dụng mạch mẫu là bảng LED 8x32, sử dụng 32 byte RAM
làm bộ đệm cho màn hình, lưu giá trị dữ liệu hàng của 32 cột. Bộ đệm được khai
báo trong RAM nội của chip 89C2051 là một mảng gồm 32 phần tử.
Chương trình hiển thị làm nhiệm vụ đọc dữ liệu từ các vị trí 0 đến 32 của bộ
đệm và đưa ra màn hình hiển thị. Hiệu ứng chữ chạy được tạo ra bằng cách dịch
giá trị các phần tử đi một vị trí (65,54, 43, 32,21,10 ). Sau mỗi lần
19
dịch ta lại gọi chương trình hiển thị. Khi đó trên bảng LED ta sẽ quan sát được
hiệu ứng chữ chạy.
2.6 Mô phỏng mạch chạy từ trái qua phải
2.7 Mô phỏng mạch chạy từ trái qua phải
Sau đây là đoạn chương trình viết cho xuất mã quét trên p2, p3, p0 và mã hình
xuất trên Port p1.
h1b: ;đặt tên nhãn dùng cho lệnh nhẩy mov r0,
#11111110b ; đặt trị khởi đầu dùng cho lệnh quay vòng mov r1,
#00h ; đặt trị khởi đầu dùng cho lệnh lấy mã hình hay chữ ll1b: mov a,
r0 ; chuyển trị trong r0 vào thanh a rr a ; cho 8 bit trong a quay vòng qua hường
phải mov r0,
a ; chuyển trị trong thanh a ra r0 mov p1,
r0 ; cho xuất trị trong thanh a ra Port p1
mov a,
r1 ; chuyển trị trong thanh r1 vào thanh a movc a,
@a + dptr ; truy lấy mã hình trong bảng cho cất vào thanh a mov p2,
inc r1 ; tăng trị trong thanh r1 lên +1 để lấy mã hình tiếp theo mov a,
20
a ; cho xuất mã hình trên Port p0
inc r1 ; lại tăng trị trong r1 lên +1 call del1 ; gọi chương trình làm chậm mov p1,

#11111111b ; tắt 8 bit trên Port p1 mov p0,
#00h ; tắt 8 bit trên Port p0 mov p2,
#00h ; tắt 8 bit trên Port p2 mov p3,
#00h ; tắt 8 bit trên Port p3 call del1 ; gọi chương trình làm chậm cjne r0,
#11111110b, ll1b ; so sánh mã quét để chọn hướng nhẩy
ret ; quay lại sau lệnh call
VD: Di chuyển ký tự trên ma trận Led
Di chuyển chuỗi “AB” trên ma trận Led từ trái sang phải:
- Tính toán dữ liệu hiển thị
Giả sử cần hiển thị chuỗi “AB”:
Chữ ‘A’: 7Eh, 09h, 09h, 09h, 7Eh
Chữ ‘B’: 7Fh, 49h,49h,49h, 36h
Giữa chữ A và B có một cột trống để phân biệt.
Chuỗi “AB”: 7Eh, 09h, 09h, 09h, 7Eh, 00h, 7Fh, 49h,49h,49h, 36h
Có thể thêm khoảng trắng trước và sau chuỗi để chuỗi hiện ra từ từ
Chuỗi “ AB ”: 00h, 00h, 00h, 00h, 00h, 7Eh, 09h, 09h, 09h, 7Eh, 00h, 7Fh,
49h,49h,49h, 36h,00h, 00h, 00h, 00h
Khai báo biến:
DB 00h, 00h, 00h, 00h, 00h
DB 7Eh, 09h, 09h, 09h, 7Eh, 00h
DB 7Fh, 49h, 49h, 49h, 36h, 00h
DB 00h, 00h, 00h
Như vậy, một ký tự cần hiển thị trên ma trận Led cần 6 byte và 5 byte 00h đầu chuỗi,
3 byte 00h cuối chuỗi một chuỗi dài 50 ký tự sẽ cần số byte lưu trữ cho mã Led là:
50*6 + 5 + 3 = 308 byte. Dung lượng này có thể thay đổi tùy theo người lập trình.
21
3.1 SƠ ĐỒ MẠCH
3.1.2, Giới Thiệu Về Phần Mền Hỗ Trợ
Phần mềm Proteus là phần mềm cho phép mô phỏng hoạt động của mạch
điện tử bao gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi

điều khiển như MCS-51, PIC, AVR, …
Phần mềm bao gồm 2 chương trình: ISIS cho phép mô phỏng mạch và
ARES dùng để vẽ mạch in.
- Thực thi mạch bằng cách nhấn vào nút Start ở đáy màn hình
- Cửa sổ chương trình sau khi khởi động:
Hình 3.1 Cửa sổ chương trình phần mềm
Các thao tác cơ bản
Sử dụng thanh công cụ chuẩn:
22
Hình 3.2 Của sổ Phần Mềm
Cửa sổ lấy linh kiện:
Hình 3.3 Cửa sổ linh kiện
23
3.1.2, Phần Mềm Giới Thiệu viết code
Trên thực tế ở ngoài mạch thật . để làm 1 mạch thật chạy led ta phải sử dụng bộ
nạp . sau khi viết song code sẽ nap trực tiếp vào mạch
Nhưng trên mô phỏng ta chỉ cần sử dụng phần mềm midepack02518 để viết code
Sau khi viết song code. Ta có thể tìm đường link tới là mạch đã được nạp code
Hình 3.4 , Thanh hỗ trợ phần mềm viết code
Hình 3.5 cửa sổ phần mềm viết code
24

×