Tải bản đầy đủ (.docx) (80 trang)

Quang báo hiển thị trên led ma trận giao tiếp máy tính

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.38 MB, 80 trang )

BẢN NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 1
Tên đề tài: “Quang bo hiển thị trên led ma trn giao tip my tnh”
Nhận xét của giáo viên hướng dẫn 1:















Hưng Yên, ngày… tháng… năm 2013
Giáo viên hướng dẫn 1
1
BẢN NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 2
Tên đề tài:“Quang bo hiển thị trên led ma trn giao tip my tnh”
Nhận xét của giáo viên hướng dẫn 2:
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………


…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
Hưng Yên, ngày… tháng… năm 2013
Giáo viên hướng dẫn 2
2
BẢN NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Tên đề tài: “Quang bo hiển thị trên led ma trn giao tip my tnh”
Nhận xét của giáo viên phản biện:
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
Hưng Yên, ngày… tháng… năm 2013

Giáo viên phản biện
3
MỤC LỤC
4
LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn các thầy cô giáo trong trường đặc biệt là các
thầy cô giáo trong khoa Điện-Điện Tử trường ĐHSPKT Hưng Yên đã tận tình dạy dỗ
chúng em trong những năm học vừa qua.
Xin bày tỏ lòng biết ơn sâu sắc tới thầy Bùi Trung Thành đã tận tình hướng
dẫn và giúp đỡ chúng em, tạo mọi điều kiện thuận lợi để chúng em hoàn thành đồ án
tốt nghiệp này.
Chúng em xin cảm ơn các thầy cô giáo trong khoa và các bạn giúp đỡ chúng em
trong lúc thực hiện đồ án tốt nghiệp.
LỜI NÓI ĐẦU
5
Thông tin liên lạc là vấn đề được quan tâm trong xã hội. Ngay từ ngày xưa, con
người đã biết vận dụng những gì đã có sẵn để truyền tin như lửa, âm thanh, các dấu
hiệu…
Ngày nay, với sự phát triển của xã hội thì ngày càng có nhiều cách tiếp cận với
những thông tin mới. Ta có thể biết được thông tin qua báo chí, truyền hình, mạng
internet, qua các pano, áp phích… Thông tin cần phải được truyền đi nhanh chóng,
kịp thời và phổ biến rộng rãi trong toàn xã hội. Và việc thu thập thông tin kịp thời,
chính xác là yếu tố hết sức quan trọng trong sự thành công của mọi lĩnh vực. Các thiết
bị tự động được điều khiển từ xa qua một thiết bị chủ hoặc được điều khiển trực tiếp
qua hệ thống máy tính.
Việc sử dụng vi điều khiển để điều khiển hiển thị có rất nhiều ưu điểm mà các
phương pháp truyền thống như panô, áp phích không có được như việc điều chỉnh
thông tin một cách nhanh chóng bằng cách thay đổi chương trình. Với những lý do
trên, nhóm thực hiện đề tài đưa ra một cách thức nữa phục vụ thông tin là dùng quang
báo. Nội dung nghiên cứu của đề tài chính là tạo ra một bảng quang báo ứng dụng

trong việc hiển thị thông tin ở các nơi công cộng như công ty, nhà ga,siêu thị,nhà
hàng,công viên…
Thực hiện đề tài “Quang bo hiển thị trên led ma trn giao tip my tnh”
như là một cách để chúng em tìm hiểu về lĩnh vực này.
Chúng em rất mong nhận được ý kiến đóng góp của quý thầy cô và các bạn
sinh viên để đề tài thêm phần hoàn thiện.
NHÓM THỰC HIỆN ĐỒ ÁN
Hoàng Văn Tài
Lưu Thị Phương Thảo
PHẦN I: MỞ ĐẦU
6
 Giới thiệu chung
Để thiết kế một mạch quang báo 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 qua 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, 74573…). 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, 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.Phương án này
giúp thay đổi nội dung một cách nhanh chóng và dễ dàng.

Xuất phát từ thực tế đó chúng em thực hiện đề tài: “Quang bo hiển thị trên led
ma trn giao tip my tnh”. Là những sinh viên theo học chuyên ngành Điện Tử
Công Nghiệp của khoa ĐIỆN – ĐIỆN TỬ, trong quá trình thiết kế chúng em cũng gặp
không ít khó khăn nhưng không vì thế mà không thể vượt qua những khó khăn về kiến
thức, kinh nghiệm. Ngược lại những va chạm thực tế làm cho con người thêm bản
lĩnh, tự tin cùng những kiến thức đã có là hành trang khi chúng ta bước chân ra khỏi
giảng đường.
Đồ án được giới hạn trong phạm vi nội dung sau:
Chương I: Cơ sở lý thuyết
Chương II : Thiết kế và thi công mạch
Chương III: Kiểm thử và chỉnh sửa.
 Tóm tắt nội dung đề tài
7
- Nghiên cứu, tìm phương án điều khiển và xử lý dữ liệu cho bảng led ma trận
hiển thị.
- Nghiên cứu và tìm phương án để xử lý giao tiếp máy tính và bảng quang báo.
- Thi công bảng quang báo hiển thị đơn sắc kích thước 16×128 điểm ảnh.
- Thi công mạch giao tiếp giữa máy tính và bảng quang báo.
- Lập trình C# .NET winform để truyền nhận dữ liệu từ máy tính và mạch
quang báo.
 Ứng dụng
Về lý luận: Đề tài là sản phẩm nghiên cứu của nhóm sinh viên với những
chuyên môn khác nhau, ý nghĩa về sự thống nhất, kết hợp hài hòa giữa những con
người chung nhiệt huyết, đánh dấu bước ngoặt sau 4 năm ngồi trên ghế giảng đường
đại học.
Về thực tiễn: Hằng ngày chúng ta nhin thấy những biển quang cáo hay những
bảng thông báo tất cả những cái đó là ứng dụng của quang báo mà tạo nên làm cho nó
chạy lên chạy xuống, ngang dọc nhiều màu sắc, linh động, hình ảnh đẹp, có thể nhảy
múa với đầy đủ các hiệu ứng mới lạ trước mắt người xem Như vậy quang báo ngày
nay đã được sử dụng nhiều vào các lĩnh vực khác nhau như : giới thiệu sản phẩm,

thông báo tin tức, dịch vụ của mình đến với người tiêu dùng khắp mọi nơi.
PHẦN II: NỘI DUNG
8
CHƯƠNG I: CƠ SỞ LÝ THUYẾT
1.1. Tìm hiểu về led ma trận.
1.1.1. Cấu tạo của LED ma trận.
Bảng hiển thị ma trận LED 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 như 16x16 hay 32x32…
Hình 1.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 16 số chân của led matrix.
9
Hình 1.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.
1.1.2.
Nguyên tắc hiển thị trên LED ma trận.
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ự.
10
1.1.3. Phương pháp điều khiển quét LED.
 Phương pháp quét cột
• Giới thiệu chung về phương pháp quét cột.
Phương pháp quét cột là phương pháp mà trong một khoảng thời gian xác định
chỉ cho một cột được tích cực hiển thị trong khi các cột khác đều tắt, các cột được quét
(tích cực) tuần tự ở các khoảng thời gian kế tiếp nhau được lặp lại nhiều lần với tốc độ
> 24 hình/1s sẽ cho ta một hình ảnh liên tục cần hiển thị lên trên màn hình led ma trận.
• Quá trình thực hiện quét cột.
Dữ liệu của cột thứ nhất được đưa ra hàng sau đó tích cực cột thứ nhất như vậy
dữ liệu của cột thứ nhất được hiển thị trên màn hình led ma trận, tiếp tục dữ liệu của
cột thứ hai được đưa ra hàng sau đó tích cực cột thứ hai lúc này dữ liệu của hàng thứ
hai được hiển thị trên man hình led ma trận, cứ như vậy cho đến dữ liệu của cột cuối
cùng được đưa ra hàng sau đó tích cực cột cuối cùng. Cứ như thế quá trình trên được
lặp đi lặp lại > 24lần/1s, đến đây chúng ta quan sát được một hình ảnh liên tục hiển thị
trên màn hình led ma trận.
V dụ
Hiển thị chữ A lên màn hình Led ma trận (hàng được tích cực ở mức 1, cột
được tích cực ở mức 0).
Hình 1.3: Hiển thị chữ A trên led ma trận dùng phương pháp quét cột
Quá trình đưa dữ liệu ra hàng và cột được tiến hành đồng thời với các giá trị
theo bảng dưới đây:
11

Dữ liệu đưa vào các hàng
H8H7H6H5H4H3H2H1

Cột được chọn
tích cực
(mức 0)
Dữ liệu thứ nhất 11111000 C1
Dữ liệu thứ 2 00100100 C2
Dữ liệu thứ 3 00100010 C3
Dữ liệu thứ 4 00100100 C4
Dữ liệu thứ 5 11111000 C5
Dữ liệu thứ 6 00000000 C6
Dữ liệu thứ 7 00000000 C7
Dữ liệu thứ 8 00000000 C8
Như vậy toàn bộ dữ liệu của chữ A đã được đưa ra hiển thị trên màn hình Led
ma trận. Quá trình trên được diễn ra rất nhanh > 24lần/s nên chúng ta có cảm giác nó
diễn ra một cách đồng thời, nhờ đó chúng ta quan sát được trên màn hình Led ma
trậnlà một chữ A liên tục.
Phương pháp quét cột thích hợp cho các bảng quang báo sử dụng Led ma
trậncó số lượng cột ít hơn số lượng hàng, vì thời gian sáng của LED khi quét cột lớn
hơn thời gian sáng của LED khi quét hàng. Như vậy điện áp nguồn cung cấp được sử
dụng trong quét cột nhỏ hơn điện áp nguồn cung cấp sử dụng trong quét hàng. Trong
phương pháp quét cột việc đưa dữ liệu ra hàng và tạo bảng mã là khá dễ dàng cho
người lập trình.
Với ma trận 8*8 thì thời gian sáng của 1 cột là 1/8 chu kỳ quét, thời gian tắt là
7/8 chu kỳ, chính vì thế Led sẽ sáng không rõ nếu làm việc với dòng và áp định mức.
Để tăng cường độ sáng thì phải tăng áp và dòng. Bình thường Led làm việc với dòng
từ 10mA đến 20mA và áp là 2V , nhưng với phương pháp quét cho 1 Led 8*8 thì dòng
phải tăng lên khoảng 8 lần từ 80mA đến 160mA tương ứng.
Cách tính toán như sau: Với dòng làm việc bình thường (không quét) chọn là
20mA, áp làm việc định mức 2V. Khi đó điện trở của mỗi led là:
R
LED

= U/I = 100(Ohm).
Khi dùng phương pháp quét Led thì dòng tức thời phải bằng 160mA, khi đó dòng
trung bình:
I
LED-TB
= 20(mA)
12
Suy ra điện áp cung cấp cho Led là:
V
LED-LED
= 16(V)
Thường thì chọn dòng thấp hơn nên áp cung cấp sẽ thấp khoảng từ 9V đến 12V.
Với cách quét cột này thì nó có những mặt ưu điểm cũng như những nhược điểm
sau:
* Ưu điểm:
 Khi mở rộng kết nối thêm led thì chỉ cần kết nối song song 8 hàng và dùng thanh ghi
dịch rất đơn giản do số lượng đường điều khiển ít .
 Mỗi một thời điểm chỉ có 1 cột sáng nên dòng tiêu thụ thấp.
 Mạch điện đơn giản.
* Khuyết điểm:
 Bị giới hạn số lượng cột vì khi mở rộng càng nhiều cột thì thời gian tắt của led tăng
thêm =>tăng dòng quá lớn nguy hiểm cho led và led sáng không rõ sinh ra hiện tượng
chập chờn. Giả sử có 100 cột thì cho dù quét nhanh hay quét chậm thì thời gian sáng
của mỗi cột bằng 1/100, thời gian tắt bằng 99/100.
 Phương pháp quét hàng
• Giới thiệu chung về phương pháp quét hàng.
Quét hàng là phương pháp mà trong một khoảng thời gian xác định chỉ cho một
hàng được tích cực hiển thị trong khi các hàng khác đều tắt, các hàng được quét (tích
cực) tuần tự ở các khoảng thời gian kế tiếp nhau được lặp lại nhiều lần với tốc độ >
24hình /1s sẽ cho ta một hình ảnh liên tục cần hiển thị lên trên màn hình led ma trận.

• Quá trình thực hiện quét hàng:
13
Hình 1.4: Quy trình đưa dữ liệu ra 8 cột cho led ma trận.
Quét hàng sử dụng thanh ghi dịch là tương đối phức tạp cho người lập trình
trong việc đưa dữ liệu ra cột. Dữ liệu lần lượt được đưa vào chân Data
in
của thanh ghi
dịch sau đó tác động xung clock dữ liệu đươc dịch đi. Việc thực hiện quét hàng được
thực hiện theo lưu đồ giải thuật ở hình 1.4.
Dữ liệu của hàng thứ nhất được đưa ra cột sau đó tích cực hàng thứ nhất, như
vậy dữ liệu của hàng thứ nhất được hiển thị trên màn hình led ma trận, tiếp tục dữ liệu
của hàng thứ hai được đưa ra cột sau đó tích cực hàng thứ hai lúc này dữ liệu của hàng
thứ hai được hiển thị trên màn hình led ma trận, cứ như vậy cho đến dữ liệu của hàng
cuối cùng được đưa ra cột sau đó tích cực hàng cuối cùng. Cứ như thế quá trình trên
được lặp đi lặp lại > 24lần/1s, đến đây chúng ta quan sát được một hình ảnh liên tục
hiển thị trên màn hình led ma trận.
14
V dụ
Hiển thị chữ A lên màn hình Led ma trận (hàng được tích cực ở mức 1, cột
được tích cực ở mức 0).
Hình 1.5: Hiển thị chữ A trên led ma trận dùng phương pháp quét hàng
Quá trình đưa dữ liệu ra hàng và cột được tiến hành đồng thời với các giá trị
theo bảng dưới đây:
Như vậy toàn bộ dữ liệu của chữ A đã được đưa ra hiển thị trên màn hình Led
ma trận. Quá trình trên được diễn ra rất nhanh > 24lần/s nên chúng ta có cảm giác nó
diễn ra một cách đồng thời, nhờ đó mà chúng ta quan sát được trên màn hình Led ma
trận là một chữ A liên tục.
Phương pháp quét hàng thích hợp cho các bảng quang báo sử dụng Led ma trận
có số lượng hàng nhỏ hơn số lượng cột, vì thời gian sáng của Led khi quét hàng lâu
hơn thời gian sáng của Led khi quét cột. Như vậy điện áp nguồn cung cấp được sử

dụng trong quét hàng nhỏ hơn điện áp nguồn cung cấp sử dụng trong quét cột. Tuy
15
Dữ liệu đưa vào các cột
C8C7C6C5C4C3C2C1
Hàng được chọn tích
cực
(mức 1)
Dữ liệu thứ nhất 11111111 H1
Dữ liệu thứ 2 11111011 H2
Dữ liệu thứ 3 11110101 H3
Dữ liệu thứ 4 11101110 H4
Dữ liệu thứ 5 11101110 H5
Dữ liệu thứ 6 11100000 H6
Dữ liệu thứ 7 11101110 H7
Dữ liệu thứ 8 11101110 H8
nhiên trong phương pháp quét hàng thì việc đưa dữ liệu ra cột và tạo bảng mã là khó
khăn hơn trong phương pháp quét cột.
Với cách quét hàng thì thời gian sáng của led là 1/8 thời gian tắt là 7/8.
Khi tăng thêm led => số cột tăng lên thì thời gian sáng và tắt của mỗi led vẫn
không đổi. Nhưng chu kì quét sẽ tăng lên vì phải tốn thêm thời gian gửi dữ liệu ra các
cột, càng nhiều cột thì càng tốn thời gian gửi dữ liệu.
1.1.4. Phương pháp tạo hiệu ứng chữ chạy trên ma trận LED.
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.
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í
(54, 43, 32,21,10)
Sau mỗi lần 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.

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ừ
16
Chuỗi “ AB ”: 00h, 00h, 00h, 00h, 00h, 7Eh, 09h, 09h, 09h, 7Eh, 00h, 7Fh,
49h,49h,49h, 36h,00h, 00h, 00h, 00h
1.2. Vi điều khiển PIC16F877A
1.2.1. Giới thiệu PIC16F877A
PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là “máy
tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều khiển đầu
tiên của họ: PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển
CPU1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và từ đó hình
thành nên dòng vi điều khiển PIC ngày nay.
1.2.2. Sự phổ biến của PIC16F877A
Trên thị trường có rất nhiều họ vi điều khiển như 8051, Motorola 68HC, AVR,
ARM Tuy nhiên, hiện nay PIC đang được sử dụng rộng rãi ở Việt Nam vì những
nguyên nhân sau:
- Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam.
- Giá thành không quá đắt.
- Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập.
- Là sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển
mang tính truyền thống: họ vi điều khiển 8051.
- Hiện nay tại Việt Nam cũng như trên thế giới, PIC được sử dụng khá rộng rãi.
Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như:

số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng
trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn…
- Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp
chương trình từ đơn giản đến phức tạp…
- Các tính năng đa dạng của vi điều khiển PIC không ngừng được phát triển.
1.2.3. Kiến trúc PIC
Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiến trúc:
kiến trúc Von-Neumann và kiến trúc Harvard.
17
Hình 1.6: Kiến trúc Harvard và kiến trúc Von-Neuman
Tổ chức phần cứng của PIC được thiết kế theo kiến trúc Harvard. Điểm khác
biệt giữa kiến trúc Harvard và kiến trúc Von-Neumann là cấu trúc bộ nhớ dữ liệu và bộ
nhớ chương trình.
Đối với kiến trúc Von-Neuman, bộ nhớ dữ liệu và bộ nhớ chương trình nằm
chung trong một bộ nhớ, do đó ta có thể tổ chức, cân đối một cách linh hoạt bộ nhớ
chương trình và bộ nhớ dữ liệu. Tuy nhiên điều này chỉ có ý nghĩa khi tốc độ xử lí của
CPU phải rất cao,vì với cấu trúc đó, trong cùng một thời điểm CPU chỉ có thể tương
tác với bộ nhớ dữ liệu hoặc bộ nhớ chương trình. Như vậy có thể nói kiến trúc Von-
Neumann không thích hợp với cấu trúc của một vi điều khiển.
Đối với kiến trúc Harvard, bộ nhớ dữ liệu và bộ nhớ chương trình tách ra thành
hai bộ nhớ riêng biệt. Do đó trong cùng một thời điểm CPU có thể tương tác với cả hai
bộ nhớ, như vậy tốc độ xử lí của vi điều khiển được cải thiện đáng kể. Một điểm cần
chú ý nữa là tập lệnh trong kiến trúc Harvard có thể được tối ưu tùy theo yêu cầu kiến
trúc của vi điều khiển mà không phụ thuộc vào cấu trúc dữ liệu. Ví dụ, đối với vi điều
khiển dòng 16Fxxx, độ dài lệnh luôn là 14 bit (trong khi dữ liệu được tổ chức thành
từng byte), còn đối với kiến trúc Von-Neumann, độ dài lệnh luôn là bội số của 1 byte
(do dữ liệu được tổ chức thành từng byte). Đặc điểm này được minh họa cụ thể trong
hình 2.3.
1.2.4. RISC VÀ CISC
Như đã trình bày ở trên, kiến trúc Harvard là khái niệm mới hơn so với kiến trúc

Von-Neumann. Khái niệm này được hình thành nhằm cải tiến tốc độ thực thi của một
vi điều khiển. Qua việc tách rời bộ nhớ chương trình và bộ nhớ dữ liệu, bus
chương trình và bus dữ liệu, CPU có thể cùng một lúc truy xuất cả bộ nhớ chương trình
18
và bộ nhớ dữ liệu, giúp tăng tốc độ xử lí của vi điều khiển lên gấp đôi. Đồng thời cấu
trúc lệnh không còn phụ thuộc vào cấu trúc dữ liệu nữa mà có thể linh động điều chỉnh
tùy theo khả năng và tốc độ của từng vi điều khiển. Và để tiếp tục cải tiến tốc độ thực
thi lệnh, tập lệnh của họ vi điều khiển PIC được thiết kế sao cho chiều dài mã lệnh luôn
cố định (ví dụ đối với họ 16Fxxxx chiều dài mã lệnh luôn là 14 bit) và cho phép thực
thi lệnh trong một chu kì của xung clock ( ngoại trừ một số trường hợp đặc biệt như
lệnh nhảy, lệnh gọi chương trình con … cần hai chu kì xung đồng hồ). Điều này có
nghĩa tập lệnh của vi điều khiển thuộc cấu trúc Harvard sẽ ít lệnh hơn, ngắn hơn, đơn
giản hơn để đáp ứng yêu cầu mã hóa lệnh bằng một số lượng bit nhất định. Vi điều
khiển được tổ chức theo kiến trúc Harvard còn được gọi là vi điều khiển RISC
(Reduced Instruction Set Computer) hay vi điều khiển có tập lệnh rút gọn. Vi điều
khiển được thiết kế theo kiến trúc Von-Neuman còn được gọi là vi điều khiển CISC
(Complex Instruction Set Computer) hay vi điều khiển có tập lệnh phức tạp vì mã lệnh
của nó không phải là một số cố định mà luôn là bội số của 8 bit (1 byte).
1.2.5. Các dòng PIC và sự lựa chọn PIC
* Các kí hiệu của vi điều khiển PIC
- PIC12xxxx: độ dài lệnh 12 bit
- PIC16xxxx: độ dài lệnh 14 bit
- PIC18xxxx: độ dài lệnh 16 bit
- C:PIC có bộ nhớ EPROM (chỉ có 16C84 là EEPROM)
- F: PIC có bộ nhớ flash
- LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp LV: tương tự như LF, đây là
kí hiệu cũ.
Bên cạnh đó một số vi điệu khiển có kí hiệu xxFxxx là EEPROM, nếu có thêm
chữ A ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là flash).Ngoài
ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC. Ở Việt Nam phổ biến nhất là

các họ vi điều khiển PIC do hãng Microchip sản xuất.
* Cách lựa chọn PIC
Trước hết cần chú ý đến số chân của vi điều khiển cần thiết cho ứng dụng. Có
nhiều vi điều khiển PIC với số lượng chân khác nhau, thậm chí có vi điều khiển chỉ có
8 chân, ngoài ra còn có các vi điều khiển 28, 40, 44 … chân.
19
Cần chọn vi điều khiển PIC có bộ nhớ flash để có thể nạp xóa chương trình
được nhiều lần hơn. Tiếp theo cần chú ý đến các khối chức năng được tích hợp sẵn
trong vi điều khiển, các chuẩn giao tiếp bên trong. Sau cùng cần chú ý đến bộ nhớ
chương trình mà vi điều khiển cho phép. Ngoài ra mọi thông tin về cách lựa chọn vi
điều khiển PIC có thể được tìm thấy trong cuốn sách “Select PIC guide” do nhà sản
xuất Microchip cung cấp.
1.2.6. Hình dạng và sơ đồ chân PIC 16F877A
Hình 1.7:Vi điều khiển PIC16F877A/PIC16F874A và các dạng sơ đồ chân
Chức năng cc chân của PIC 16F877A
Chân OSC1/CLK1(13): ngõ vào kết nối với dao động thạch anh hoặc ngõ vào nhận
xung clock từ bên ngoài.
Chân OSC2/CLK2(14): ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock.
Chân (1) có 2 chức năng:
- : ngõ vào reset tích cực ở mức thấp.
20
-Vpp: ngõ vào nhận điện áp lập trình khi lập trình cho PIC.
Chân RA0/AN0(2), RA1/AN1(3), RA2/AN2(3): có 2 chức năng
- RA0,1,2: xuất/ nhập số.
- AN 0,1,2: ngõ vào tương tự của kênh thứ 0,1,2.
Chân RA2/AN2/VREF-/CVREF+(4): xuất nhập số/ ngõ vào tương tự của kênh thứ 2/
nhõ vào điện áp chuẩn thấp của bộ AD/ ngõ vào điện áp chẩn cao của bộ AD.
Chân RA3/AN3/VREF+(5): xuất nhập số/ ngõ vào tương tự kênh 3/ ngõ vào điện áp
chuẩn (cao) của bộ AD.
Chân RA4/TOCK1/C1OUT(6): xuất nhập số/ ngõ vào xung clock bên ngoài cho

Timer 0/ ngõ ra bộ so sánh 1.
Chân RA5/AN4/ / C2OUT(7): xuất nhập số/ ngõ vào tương tự kênh 4/ ngõ vào
chọn lựa SPI phụ/ ngõ ra bộ so sánh 2.
Chân RB0/INT (33): xuất nhập số/ ngõ vào tín hiệu ngắt ngoài.
Chân RB1(34), RB2(35): xuất nhập số.
Chân RB3/PGM(36): xuất nhập số/ cho phép lập trình điện áp thấp ICSP.
Chân RB4(37), RB5(38): xuất nhập số.
Chân RB6/PGC(39): xuất nhấp số/ mạch gỡ rối và xung clock lập trình ICSP.
Chân RB7/PGD(40): xuất nhập số/ mạch gỡ rối và dữ liệu lập trình ICSP.
Chân RC0/T1OCO/T1CKI(15): xuất nhập số/ ngõ vào bộ giao động Timer1/ ngõ vào
xung clock bên ngoài Timer 1.
Chân RC1/T1OSI/CCP2(16) : xuất nhập số/ ngõ vào bộ dao động Timer 1/ ngõ vào
Capture2, ngõ ra compare2, ngõ ra PWM2.
Chân RC2/CCP1(17): xuất nhập số/ ngõ vào Capture1 ,ngõ ra compare1, ngõ ra
PWM1.
Chân RC3/SCK/SCL(18): xuất nhập số/ ngõ vào xung clock nối tiếp đồng bộ, ngõ ra
chế độ SPI./ ngõ vào xung clock nối tiếp đồng bộ, ngõ ra của chế độ I2C.
21
Chân RC4/SDI/SDA(23): xuất nhập số/ dữ liệu vào SPI/ xuất nhập dữ liệu I2C.
Chân RC5/SDO(24): xuất nhập số/ dữ liệu ra SPI.
Chân RC6/TX/CK(25): xuất nhập số/ truyền bất đồng bộ USART/ xung đồng bộ
USART.
Chân RC7/RX/DT(26): xuất nhập số/ nhận bất đồng bộ USART.
Chân RD0-7/PSP0-7(19-30): xuất nhập số/ dữ liệu port song song.
Chân RE0/ /AN5(8): xuất nhập số/ điều khiển port song song/ ngõ vào tương tự 5.
Chân RE1/ /AN6(9): xuất nhập số/ điều khiển ghi port song song/ ngõ vào tương
tự kênh thứ 6.
Chân RE2/ /AN7(10): xuất nhấp số/ Chân chọn lụa điều khiển port song song/ ngõ
vào tương tự kênh thứ 7.
Chân VDD(11, 32) và VSS(12, 31): là các chân nguồn của PIC.

1.2.7. Một vài thông số về PIC 16F877A
-Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài
14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock.
-Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns.
- Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368 byte RAM và bộ nhớ dữ
liệu EEPROM với dung lượng 256 byte.
- Số PORT I/O là 5: PORTA, PORTB, PORTC, PORTD và PORTE.
- Dải điện thế hoạt động rộng: 2.0V đến 5.5V
- Nguồn điện sử dụng hiện tại 25mA
*Các đặc tính ngoại vi bao gồm các khối chức năng sau:
- Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.
- Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa
vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.
- Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.
22
- Hai bộ Capture/so sánh/điều chế độ rông xung.
- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.
- Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
- Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển
RD, WR, CS ở bên ngoài.
Các đặc tính Analog:
- 8 kênh chuyển đổi ADC 10 bit.
- Hai bộ so sánh.
*Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
- Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.
- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.
- Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.
- Khả năng tự nạp chương trình với sự điều khiển của phần mềm.
- Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial
Programming)

thông qua 2 chân.
- Watchdog Timer với bộ dao động trong.
- Chức năng bảo mật mã chương trình.
- Chế độ Sleep.
- Có thể hoạt động với nhiều dạng Oscillator khác nhau.
1.3. IC 74HC595
IC 74HC595 là loại IC dùng giải mã /giải đa hợp làm việc được với tần số cao,
nó đặc biệt thích hợp khi dùng làm bộ giải mã địa chỉ tác động vào chân chọn IC của
các IC nhớ lưỡng cực.
23
Hình 1.8: Sơ đồ chân IC 74HC595
1.3.1. Chức năng các chân của IC 74HC595
- Chân 14(DS) : đầu vào dữ liệu nối tiếp . Tại 1 thời điểm xung clock chỉ đưa
vào được 1 bit.
- Q0=>Q7 (output): trên các chân (15,1,2,3,4,5,6,7) xuất dữ liệu khi chân chân
13 tích cực ở mức thấp và có một xung tích cực ở sườn âm tại chân chốt 12.
- Chân 13 (OE:output-enable):Chân cho phép tích cực ở mức thấp (0) .Khi ở
mức cao, tất cả các đầu ra của 74595 trở về trạng thái cao trở, không có đầu ra
nào được cho phép.
- Chân 9(Q7’): Chân dữ liệu nối tiếp . Nếu dùng nhiều 74595 mắc nối tiếp nhau
thì chân này đưa vào đầu vào của con tiếp theo khi đã dịch đủ 8bit.
- Chân 11(SH_CP): Chân vào xung clock . Khi có 1 xung clock tích cực ở sườn
dương(từ 0 lên 1) thì 1bit được dịch vào ic.
- Chân 12(ST_CP) : xung clock chốt dữ liệu . Khi có 1 xung clock tích cực ở
sườn dương thì cho phép xuất dữ liệu trên các chân output . lưu ý có thể xuất dữ
liệu bất kỳ lúc nào bạn muốn ,ví dụ đầu vào chân 14 dc 2 bit khi có xung clock ở
chân 12 thì dữ liệu sẽ ra ở chân Qa và Qb (chú ý chiều dịch dữ liệu từ Qa=>Qh)
- Chân 10(MR): khi chân này ở mức thấp(mức 0) thì dữ liệu sẽ bị xóa trên chip)
- Chân 16(VCC):Chân cấp nguồn cho IC. Điện áp nguồn cấp khoảng 2v –6v
- Chân 8(GND): nối mass.

1.3.2.Thông số kỹ thuật
24
Bảng 1.1:Thông số của IC 74HC595
Đây là ic đầu ra hoạt động ở 2 mức 0 &1 dòng ra tầm 35mA . điện áp hoạt động
<=7V . Công suất trung bình 500Mw.
Bảng 1.2: Tần số đáp ứng của 74HC595
1.3.3. Nguyên lý hoạt động của IC74HC595.
Dữ liệu sau khi đưa vào chân DS của IC, bit dữ liệu đó sẽ được dịch ứng với
sườn dương của xung nhịp, từ mức thấp đến cao (LOW TO HIGH) đưa tới chân
SH_CP

, dữ liệu vào tại mỗi thanh ghi sẽ được đưa sang thanh ghi lưu trữ khi có một
sườn dương của xung nhịp đi vào chân ST_CP. Xung đồng hồ tại chân ST_CP phải
xuất hiện trước xung nhịp vào chân ST_CP
.
Mỗi xung clock đưa vào chân ST_CP
tương ứng với một bit dữ liệu vào chân DS, 8 xung ứng với 8bit dữ liệu đưa vào,
chúng được lưu trong thanh ghi lưu trữ. Khi một tín hiệu tích cực mức 0 đưa vào chân
OE thì 8bit dữ liệu này sẽ được đưa ra 8 đầu ra song song. Khi có 8bit dữ liệu tiếp theo
25

×