You are on page 1of 56

HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

PHẦN I
GIỚI THIỆU

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 3


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN


·á¸
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 4


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN


·á¸
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 5


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

LỜI MỞ ĐẦU
---¹±º---
Ngày nay với sự phát triển vượt bậc của xã hội, đặc biệt là trong các ngành kỹ
thuật. Khi mà các sản phẩm mới liên tục ra đời, những vât liệu nổi trội hơn, công nghệ
mới cũng ra đời… Song song đó thì nhu cầu của con người đối với sự tiến bộ của xã hội
cũng ngày càng khắc khe hơn. Đặc biệt khi ngành công nghệ số, trí tuệ nhân tạo ra đời nó
cũng len lõi mọi lĩnh vực của xã hội. Ví dụ điển hình là tronh lĩnh vực quản bá truyền
thông. Khi nhu cầu của các nhà kinh doanh ngày càng cao hơn về việc quảng cáo các sản
phẩm, dịch vụ của mình đến với người tiêu dùng khắp mọi nơi và từ đó lĩnh vực này cũng
liên tục cải thiện. Khi máy tính ra đời đặc biệt là công nghệ số thì lĩnh vực truyền thông
đã có những bước phát triển đáng kể, các loại hình quảng cáo như pano, apphich, bản
hiệu,…đã dần nhường chỗ cho các bảng điện tử đầy đủ màu sắc. Và đặc biệt hơn chúng
có thể gửi đến mọi người các thông điệp đặc sắc, phong phú mà trước đây thì công nghệ
chưa cho phép. Chẳng hạn như: 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. Khi mà quá trình đô thị hoá ngày
càng nhanh cùng với sự phát triển của các toà nhà, cao ốc,…thì không gian ngày càng thu
hẹp và tất nhiên những biển quảng cáo khổ rộng đã dần được thay thế bằng các bảng điện
tử, led, LCD,…
Khi bạn bước vào một ngân hàng, một cửa hiệu hay bất chợt đi trên đường bạn
cũng có thể bắt gặp những dòng chữ đầy màu sắc chạy qua chạy lại thể hiện đầy đủ các
thông điệp mà nhà kinh doanh muốn gửi đến tất cả mọi người. Đáp ứng nhu cầu đó và
cũng để hiểu thêm về công nhệ cũng như quá trình thiết kế thi công các loại bảng led
quảng cáo, tôi quyết định chọn đề tài VI ĐIỀU KHIỂN VỚI QUANG BÁO để phục vụ
cho môn đồ án 2. Trong quá trình thực hiện đề tài do lượng kiến thức khổng lồ nhưng sự
hiểu biết của tôi là có hạn nên không thể khai thác được hết các công năng của vi điều
khiển mà chỉ sử dụng một vài chức năng cơ bản. Và cũng chưa có nhiều kinh nghiệm
trong quá trình thực hiện các đề tài, tất nhiên cũng không thể tránh được những sai xót.
Rất mong nhận được những đóng góp chân thành của quý thầy cô và các bạn để có thể
thực hiện tốt hơn cho các lần tiếp theo.
Xin chân thành cảm ơn./.
Tp Hồ Chí Minh tháng 01 - 2011
Sinh viên thực hiện

Nguyễn Ngọc Luân

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 6


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

MỤC LỤC
PHẦN I GIỚI THIỆU ..............................................................................................1
Nhận xét của giáo viên hướng dẫn ..........................................................................4
Nhận xét của giáo viên phản biện ............................................................................5
Lời nói đầu .................................................................................................................6
Mục lục.......................................................................................................................7
PHẦN II NỘI DUNG ................................................................................................9
Chương I Giới thiệu các linh kiện dùng trong đề tài .....................................10
I. Khối xử lý trung tâm – vi điều khiển ........................................................10
I.1 Khái niệm vi điều khiển .....................................................................10
I.2 Giới thiệu họ vi điều khiển PIC 16F887 ...........................................10
I.2.1 PIC là gì? ....................................................................................10
I.2.2 Tại sao là PIC mà không là các họ vi điều khiển khác ..........10
I.2.3 Bộ vi điều khiển 8bit PIC 16F887 ............................................11
II. IC giao tiếp máy tính MAX 232...............................................................29
II.1 Tổng quan chuẩn RS232 ..................................................................29
II.1.1 Đặt vấn đề .................................................................................29
II.1.2 Ưu điểm của chuẩn RS232 .....................................................30
II.1.3 Những đặc điểm cần lưu ý trong chuẩn RS232.....................30
II.1.4 Các mức điện áp đường truyền ..............................................30
II.1.5 Chuẩn RS232 trên máy tính ...................................................30
II.1.6 Quá trình truyền nhận dữ liệu................................................31
II.2 Sơ đồ kết nối IC MAX232 ................................................................32
III. Ram mở rộng ...........................................................................................33
III.1 Giới thiệu..........................................................................................33
III.2 Sơ đồ chân IC HM62256ALP.........................................................33
III.3 Giải thích sơ đồ chân.......................................................................34
III.4 Sơ đồ khối HM62256ALP ...............................................................35
III.5 Nguyên lý hoạt động truy xuất dữ liệu của HM62256ALP .........35
III.5.1 Quá trình ghi dữ liệu vào Ram .............................................35
III.5.2 Quá trình đọc dữ liệu từ ram ................................................36
IV. IC ghi dịch 74HC595 ...............................................................................36
IV.1 Giới thiệu ..........................................................................................36
IV.2 Sơ đồ chân ........................................................................................36
IV.3 Giải thích sơ đồ chân .......................................................................37
V. Led ma trận ...............................................................................................38
V.1 Hình dạng và cấu tạo ........................................................................38
V.2 Nguyên lý hoạt động .........................................................................39
Chương II Nguyên lý hoạt động của đề tài ...........................................................41
I. Sơ đồ khối hiễn thị ......................................................................................41
I.1 Bộ nguồn..............................................................................................41
I.2 Bộ dao động thạch anh.......................................................................41

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 7


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

I.3 Bộ reset ................................................................................................42


I.4 Khối xử lý trung tâm ..........................................................................42
I.5 Khối giải mã cột ..................................................................................42
I.6 Khối giải mã hang ..............................................................................42
I.7 Khối hiển thị .......................................................................................42
I.8 Khối giao tiếp máy tính ......................................................................42
II. Nguyên tắc hoạt động của đề tài .............................................................42
II.1 Nguyên tắc hoạt động của led ma trận ...........................................43
II.1.1 Hiển thị ký tự trên led ma trận...............................................43
II.1.2 Dịch chữ trên led ma trận .......................................................45
II.2 Nguyên tắc truyền nhận dữ liệu từ máy tính .................................46
PHẦN III PHỤ LỤC ...............................................................................................47
Phụ lục A Chương trình điều khiển ......................................................................48
Phụ lục B Sơ đồ mạch in hai mặt...........................................................................58

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 8


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

PHẦN II
NỘI DUNG

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 9


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

CHƯƠNG I
GIỚI THIỆU CÁC LINH KIỆN DÙNG TRONG
ĐỀ TÀI
·n¸

I. Khối xử lý trung tâm - vi điều khiển


I.1 Khái niệm vi điều khiển
Để hiểu khái niệm về bộ vi điều khiển, ta có thể làm phép so sánh với bộ vi xử lý
công dụng chung nhu sau:
Ta biết rằng, các bộ vi xử lý công dụng chung như họ INTEL X 86 ( 8086,80286,
80386, 80486 và PENTIUM) hoặc họ MOTOROLA 680x0( 6800, 68010,
68020,68030,68040 v v..) không có Ram , Rom và không có các các cổng ra vào trên
Chip…với lý do đó mà chúng được gọi là các bộ vi xử lý công dụng chung.
Một nhà thiết kế hệ thống sử dụng một bộ vi xử lý công dụng chung chẳng hạn
như Pentium hay 68040 sẽ phải bổ xung them RAM, ROM, các cổng vào ra và các bộ
định thời ngoài để làm cho chúng hoạt động được. Mặc dù việc bổ xung các RAM, ROM,
các cổng vào ra sẽ làm cho hệ thống cồng kềnh lên nhưng nó lại có ưu điểm khi sử dụng
các bộ vi xử lý này là rất linh hoạt. Chẳng hạn như người thiết kế có thể quyết định về số
lượng RAM, ROM, và các cổng vào ra cấn thiết sao cho phù hợp với khả năng, mục đích
sử dụng của hệ thống.
Điều này không thể có đối với các bộ vi điều khiển. Bởi vì, một vi điều khiển đã
có một CPU cùng với một số lượng RAM, ROM, các cổng vào ra và một bộ định thời
trên cùng một chip. Hay nói cách khác là bộ vi xử lý, RAM, ROM, các cổng vào ra và
một bộ định thời được nhúng trên một chip. Do vậy người thiết kế không thể bổ xung
thêm bộ nhớ ngoài, số các cổng vào ra hoặc bộ định thời cho nó. Với số lượng RAM,
ROM và các cổng vào ra có định như vậy là một mặt hạn chế xong nó lại thật sự lý tưởng
đối với những ứng dụng mang tính chuyên biệt, tối ưu về giá thành, tối ưu về không
gian…
Hiện nay trên thị trường có các bộ vi điều hiển 8 Bit chính là 6811 của Motorola,
8051 của Intel, Z8 của Xilog và PIC16X của Microchip Technology. Mỗi loại trên đểu có
một tâp lệnh và thanh ghi duy nhất, nên chúng đều không tương thích lẫn nhau. Cũng có
những bộ vi điều khiển 16 bít và 32 bít được sản xuất ra bởi các hãng sản xuất khác nhau.
I.2 Giới thiệu họ vi điều khiển PIC16F887
I.2.1 PIC là gì ??
PIC là viết tắt của “Programable Inteled ma trậnigent Computer”, có thể tạm dịch
là “máy tính thông minh khả trình” do hãng Genenral Intrument đặ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 CP1600. Vi điều khiển này sau đó được nghiêm cứu phát triển
I.2.2 Tại sao là PIC mà không là các họ vi điều khiển khác ??

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 10


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hiện nay trên thị trường có rất nhiều họ vi điều khiển như 8051, Motorola 68HC,
AVR, ARM,… Ngoài họ 8051 được hướng dẫn một cách căn bản ở một số trường đại
học, bản thân người viết đã chọn họ vi điều khiển PIC để mở rộng vốn kiến thức và phát
triển các ứng dụng trên công cụ này vì các 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
- Số lượng người sử dụng họ vi điều khiển PIC: hiện nay tại Việt Nam cũng như
trên thế giới, họ vi điều khiển này sử dụng khá rộng rãi. Điều này tạo 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ố 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, và các t1inh năng này không ngừng
phát triển.
Ngày nay, các bộ vi điều khiển đang có ứng dụng ngày càng rộng rãi trong các lĩnh
vực kỹ thuật và đời sống xã hội, đặc biệt là trong kỹ thuật tự động hóa và điều khiển từ
xa. Giờ đây với nhu cầu chuyên dụng hóa, tối ưu (thời gian, không gian, giá thành), bảo
mật, tính chủ động trong công việc…ngày càng đòi hỏi khắt khe. Việc đưa ra công nghệ
mới trong lĩnh vực chế tạo mạch điện tử để đáp ứng những yêu cầu trên là hoàn toàn cấp
thiết mang tính thực tế cao
I.2.3 Bộ vi điều khiển 8 bit PIC16F887
I.2.3.a Đặc tính nổi bật của bộ vi xử lý
+ Sử dụng công nghệ tích hợp cao RISC CPU
+ Người sử dụng có thể lập trình với 35 câu lệnh đơn giản.
+ Tất cả các câu lệnh thực hiện trong một chu kỳ lệnh ngoại trừ một số câu lệnh rẽ
nhánh thực hiện trong hai chu ký lệnh.
+ Tốc độ hoạt động là : - Xung đồng hồ vào là DC – 20MHz - Chu kỳ lệnh thực
hiện trong 200ns
+ Bộ nhớ chương trình Flash 8Kx14 words
+ Bộ nhớ SRAM 368x8 bytes
+ Bộ nhớ EFPROM 256x8 bytes
+ Số port I/O 35 ports
Khả năng của bộ vi xử lý này
+ Khả năng ngắt (lên tới 14 nguồn ngắt trong và ngắt ngoài)
+ Ngăn nhớ Stack được phân chia làm 8 mức
+ Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp.
+ Nguồn khởi động lại ( POR)
+ Bộ tạo thời gian (PWRT) và bộ tạo dao động (OST|)

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 11


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

+ Bộ đếm xung thời gian (WDT) với nguồn dao động trên chip (nguồn dao động
RC) hoạt động đáng tin cậy.
+ Có mã chương trình bảo vệ.
+ Phương thức cất giữ Sleep
+ Thiết kế hoàn toàn tĩnh.
+ 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 đặt tính nổi bật của thiết bị ngoại vi trên chip
+ TIMER0: 8 bit của bộ định thời, bộ đếm với hệ số tỷ lệ trước.
+ TIMER1: 16 bit của bộ định thời, bộ đếm với hệ số tỷ lệ trước, có khả năng tăng
trong khi ở chế độ Sleep qua xung đồng hồ được cung cấp bên ngoài.
+ TIMER2: 8 bit của bộ định thời, bộ đếm với 8 bit của hệ số tỷ lệ trước, hệ số tỷ lệ
sau.
+ Bộ chuyển đổi tín hiệu số sang tương tự với 10 bit.
2
+ Cổng truyền thông tin nối tiếp SSP với SPI phương thức chủ và I C(chủ / phụ).
Sơ đồ chân vi điều khiển PIC16F877A

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 12


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 1: Sơ đồ chân PIC 16F887

Sơ đồ khối vi điều khiển PIC16f877A

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 13


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 2: Sơ đồ khối PIC 16F887


I.2.3.b Tổ chức bộ nhớ
Cấu trúc bộ nhớ của vi điều khiển PIC16F887 bao gồm bộ nhớ chương trình
(Programmemory) và bộ nhớ dữ liệu (Data Memory)
a). Bộ nhớ chương trình
Bộ nhớ chương trình của vi điều khiển PIC16F887 là bộ nhớ Flash, dung lượng
bộ nhớ 8K word (1 word = 14 bit) và được phân chia làm nhiều trang ( từ page 0 đến

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 14


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

page 3). Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192 lệnh (vì
một lệnh sau khi mã hoá sẽ có dung lượng 1 word (14 bit))
Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình
có dung lượng 13 bit
Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h
(Interrupt vector).
Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hoá bởi
bộ đếm chươ trình.
Bảng bộ nhớ chương trình và các ngăn xếp

Hình 3: Tổ chức bộ nhớ PIC 16F887


b). Bộ nhớ dữ liệu.
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank. Đối với
PIC16F887 bộ nhớ dữ liệu chia làm 4 bank. Mỗi bank có dung lượng 128 byte, bao gồm
các thanh ghi có chức năng đặc biệt SFG (Spencial Function Register) nằm ở các vùng
địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose Register) nằm ở các
vùng địa chỉ cón lại trong bank. Các thanh ghi SFG thường xuyên được sử dụng (ví dụ
như thanh ghi STATUS) sẽ được đặt ở tất cả các bank của bộ đếm dữ liệu giúp thuận tiện
trong quá trình truy xuất và làm giảm bớt lệnh của chương trình. Sơ đồ cụ thể của bộ nhớ
dữ liệu PIC16F887 nhu sau:

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 15


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 4: Bộ nhớ dữ liệu.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 16


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

c). Thanh ghi chức năng đặc biệt


Đây là các thanh ghi được sử dụng bởi CPU hoặc được dùng để thiết lặp và điều
khiển các khối chức năng đựoc tích hợp bên trong vi điều khiển. Có thể phân chia SFR
làm hai loại: thanh ghi SFR lien quan đến các chức năng bên trong CPU và thanh ghi
SFR dùng để thiết lặp và điều khiển các khối chức năng bên ngoài ( ví dụ như ADC,
PWM,…). Các thanh ghi lien quan đến chức năng bên trong:
¾ Thanh ghi SATUS (03h, 83h, 103h, 183h): thanh ghi chứa kết quả thưc hiện
phép toán của khối ALU, trạng thái reset và các bit chọn bank cần truy suất trong bộ nhớ
dữ liệu.

¾ Thanh ghi OPTION_REG (81h, 181h) thanh ghi này cho phép đọc và ghi,
cho phép điều khiển chức năng puled ma trận-up của các chân PORTB, xác lập các tham
số về xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Timer0.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 17


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

¾ Thanh ghi INTCON (0Bh, 8Bh, 10Bh, 18Bh) thanh ghi cho phép đọc và ghi,
chứa các bit điều khiển và các bit cờ hiệu khi Timer0 bị tràn, ngắt ngoại vi RB0/INT và
ngắt interrupt-on-change tại các chân của PORTB.

¾ Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chi tiết các ngắt của các khối
chức năng ngoại vi.

¾ Thanh ghi PIR1 (0Ch) chứa cờ ngắt của các khối chức năng ngọai vi, các ngắt
này được cho phép bởi các bit điều khiển chứa trong thanh ghi PEI1.

¾ Thanh ghi PIE2 (8Dh): chứa các bit điều khiển các ngắt của các khối chức
năng CCP2, SSP bus, ngắt của bộ so sánh và nga81t ghi vào bộ nhớ EEPROM.

¾ Thanh ghi PIR2 (0Dh): chứa các cờ ngắt của các khối chức năng ngoại vi, các
ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2.

¾ Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chế độ reset
của vi điều khiển.

d). Thanh ghi mục đích chung GPR


Các thanh ghi này có thể được truy xuất trực tiếp hoặc gián tiếp thông qua thanh
ghi FSG (File Select Rersister). Đây là các thanh ghi dữ liệu thông thường, người sử dụng
có thể tuỳ theo mục đích chương trình mà có thể dùng các thanh ghi này dể chứa các biến
số, hằng số, kết quả hoặc các tham số phục vụ cho chương trình.
II.2.3.c Stack
Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là một vùng
nhớ đặc biệt không cho phép đọc hay ghi. Khi có lệnh gọi chương trình con thực thi hay
khi một ngắt xảy ra làm chương trình bị rẽ nhánh, giá trị bộ đếm chương trình PC tự động
được vi điều khiển cất vào stack. Khi một trong các lệnh RETURN, RETFILE hay

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 18


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

RETLW được thực thi, giá trị PC sẽ tự động được lấy ra từ trong stack, vi điều khiển sẽ
thực hiện tiếp chương trình theo đúng quy trình định trước.
Bộ nhớ Stack trong vi điều khiển PIC16F887 có khả năng chứa được 8 địa chỉ và
hoạt động theo theo cơ chế xoay vòng. Nghĩa là giá trị cất vào bộ nhớ Stack lần thứ 9 sẽ
ghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất vào bộ nhớ Stack lần thứ 10 sẽ
ghi đè lên giá trị cất vào Stack lần thứ 2.
Không có cờ hiệu nào cho biết trạng thái Stack, do đó ta không biết khi nào Stack
tràn.
II.2.3.d Các cổng xuất nhập của PIC16F887
Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương
tác với thế giớ bên ngoài. Sự tương tác này rất đa dạng và thông qua quá trình tương tác
đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng.
Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tuỳ theo
cách bố trí và chức năng của vi điều khiển mà số lượng các chân và số lương cổng nhập
xuất có thể khác nhau. Bên cạnh đó do vi điều khiển được tích hợp sẵn bên trong các đặc
tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một số
chân xuất nhập còn có thêm các chức năng khác để thực hiện sự tác động của các đặc tính
ngoại vi nêu trên đối với thế giới bên ngoài. Chức năng của từng chân xuất nhập trong
mỗi cổng hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR
liên quan đến chân xuất nhập đó.
Vi điều khiển PIC16F887 có 5 cổng xuất nhập, bao gồm PORTA, PORTB,
PORTC, PORTD và PORTE.
a). PORTA
PORTA (RPA) bao gồm 8 I/O pin. Đây là các chân “hai chiều” (bidirectional
pin), nghĩa là có thể xuất và nhập được. Chức năng I/O này được điều khiển bởi thanh ghi
TRISA (địa chỉ 85h). Muốn xác lập chức năng của một chân trong PORTA là input, ta
“set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn
xác lập chức năng của một chân trong PORTA là outout, ta “clear” bit điều khiển tương
ứng với chân đó trong thanh ghi TRISA. Thao tác này hoàn toàn tương tự đối với các
PORT và các thanh ghi điều khiển tương ứng TRIS ( đối với PORTA là TRISA, đối với
PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD và đối với
PORTE là TRISE ). Bên cạnh đó PORTA cón là ngõ ra của bộ ADC, bộ so sánh, ngõ vào
analog ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP ( Master
Synchronous Serial Port ).

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 19


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

b). PORTB
PORTB (RPB) gồm 8 pin I/O. thanh ghi điều khiển xuất nhập tương ứng là
TRISB. Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp
chương trình cho vi điều khiển với các chế độ nạp khác nhau. PORTB còn liên quan đến
ngắt ngoại vi và bộ Timer0. PORTB có được tích hợp chức năng điện trở kéo lên được
điều khiển bởi chương trình.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 20


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 5: Sơ đồ khối PORTB <RB3:RB0>

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 21


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 6: Sơ đồ khối PORTB <RB7:RB4>


c). PORTC
PORTC gồm 8 pin I/O : RC0 đến RC3 ứng với các chân từ số 15 đến số 18; RC4
đến RC7 ứng với các chân từ số 23 đến số 26 .
Thanh ghi điều khiển xuất nhập tương ứng là TRISC. Bên cạnh đó PORTC cón chứa các
chân chức năng của bộ so sánh, bộ Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp IC2,
SPI, SSP, USART.

d). PORTD

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 22


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

PORTD gồm 8 pin I/O: RD0, RD1, RD2, RD3 ứng với các chân số 19, 20, 21 và
chân số 22 của vi điều khiển, RD4 đến RD7 ứng với các chân số 27 đến chân số 30.
Thanh ghi điều khiển xuất nhập tương ứng là TRISD ( địa chỉ 88h ). PORTD còn là cổng
xuất dữ liệu của chuẩn giao tiếp PSP (Paraled ma trậnel Slave Port).

Hình 7: Sơ đồ khối PORTD <RD4:RD0>

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 23


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 8: Sơ đồ khối PORTD<RD7:RD5>


e). PORTE
PORTE gồm 4 chân I/O: RE0, RE1, RE2, RE3 ứng với các chân số 8, 9,10 và
chân số 1.Thanh ghi điều khiển xuất nhập tương ứng là TRISE (địa chỉ 89h ). Các chân
của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân điều khiển của
chuẩn giao tiếp PSP.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 24


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 9: Sơ đồ khối PORTE RE3

Hình 10: Sơ đồ khối PORTE<RE2:RE0>

II.2.3.e Các bộ định thời của chip

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 25


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Bộ vi điều khiển PIC16F887 có 3 bộ định thời Timer đó là: Timer0, Timer1,


Timer2.
a). Bộ Timer0:
Đây là một trong ba bộ đếm hoặc bộ định thời của vi điều khiển PIC16F887.
Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần (prescaler) 8 bit. Cấu trúc của Timer0
cho phép ta lựa chọn xung clock tác động và cạnh tich cực của xung clock. Ngắt Timer0
sẽ xuất hiện khi Timer0 bị tràn. Bit TMR0IE ( INTCON<5>) là bit điều khiển của
Timer0. TMR0IE=1 cho phép ngắt Timer0 tác động, TMR0IE=0 không cho phép ngắt
Timer0 tác động.

Hình 11: Sơ đồ khối bộ TIMER0


b). Bộ Timer1:
Timer1 là bộ định thời 16 bit, giá trị của Timer1 sẽ được lưu trong thanh ghi
(TMR1H:TMR1L). cờ ngắt của Timer1 là bit TMR1IF. Bit điều khiển của Timer1 sẽ là
TMR1IE.
Tương tự như Timer0, timer1 cũng có hai chế độ hoạt động: chế độ định thời
(Timer) với xung kích là xung clock của osciled ma trậnator (tần số của Timer bằng ¼
tần số của osciled ma trậnator) và chế độ đếm (counter) với xung kích là xung phản ánh
các sự kiện cần đếm lầy từ bên ngoài thộng qua chân RCO/T1OSO/T1CKI (cạnh tác
động là cạnh lên). Việc lựa chọn chế độ hoạt động của Timer được điểu khiển bởi bit
TMR1CS.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 26


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 12: Sơ đồ khối bộ TIMER1

c). Bộ Timer2:
Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chia tần prescaler và
postscaler. Thanh ghi chứa giá trị đếm của Timer2 là TMR2. Bit cho phép ngắt Timer2
tác động là TMR2ON. Cờ ngắt của Timer2 là bit TMR2IF. Xung ngõ vào được đưa qua
bộ chia tần số prescaler 4 bit (với các tỉ số chia tần là 1:1, 1:4 hoặc 1:16) và được điều
khiển bởi các bit T2CKPS1:T2CKPS0.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 27


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 13: Sơ đồ khối bộ TIMER2

d). ADC
ADC ( Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạng tương
tự và số. PIC16F887 có 14 ngõ vào analog (RA5:RA0, RE2:RE0và RB5:RB0). Hiệu điện
thế chuẩn VREF có thể được chọn là Vdd, Vss hay hiệu điện thế chuẩn được xác lập trên hai
chân RA2 và RA3. Kết quả chuyển đổi từ tí hiệu tuơng tự sang tín hiệu số là 10 bit số
tương ứng và được lưu trong 2 thanh ghi ADRESH:ADRESL. Khi không sử dụng bộ
chuyển đổi ADC, các thanh ghi này có thề sử dụng như các thanh ghi thông thường khác.
Khi quá trình chuyển đổi hoàn tất, kết quả sẽ được lưu vào 2 thanh ghi
ADRESH:ADRESL.

Hình 14: Sơ đồ khối bộ chuyển đổi Analog

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 28


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

II. GIAO TIẾP MÁY TÍNH IC MAX232


Ngày nay các thiết bị đo lường, điều khiển ... đều phải giao tiếp với máy tính để
quan sát thông số và chế độ hoạt động của thiết bị như thế nào? Chuẩn giao tiếp được coi
là đơn giản và dễ dùng đó là RS232. Hầu như các thiết bị đều được giao tiếp với máy tính
thông qua chuẩn này.

Hình 15: IC MAX 232

II.1 Tổng quan chuẩn RS232


II.1.1 Đặt vấn đề
Vấn đề giao tiếp giữa PC và vi điều khiển rất quan trọng trong các ứng dụng điều khiển,
đo lường... Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ thuật được sử dụng
rộng rãi để ghép nối các thiết bị ngoại vi với máy tính.Nó là một chuẩn giao tiếp nối tiếp
dùng định dạng không đồng bộ, kết nối nhiều nhất là 2 thiết bị , chiều dài kết nối lớn nhất
cho phép để đảm bảo dữ liệu là 12.5 đến 25.4m, tốc độ 20kbit/s đôi khi là tốc độ
115kbit/s với một số thiết bị đặc biệt. Ý nghĩa của chuẩn truyền thông nối tiếp nghĩa là
trong một thời điểm chỉ có một bit được gửi đi dọc theo đường truyền.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 29


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Có hai phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B và
RS232C. Nhưng cho đến nay thì phiên bản RS232B cũ thì ít được dùng còn RS232C hiện
vẫn được dùng và tồn tại thường được gọi là tên ngắn gọn là chuẩn RS232
Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C được gọi là cổng
Com. Trên main máy tính có loại 9 chân hoặc lại 25 chân tùy vào đời máy và main của
máy tính. Việc thiết kế giao tiếp với cổng RS232 cũng tương đối dễ dàng, đặc biệt khi
chọn chế độ hoạt động là không đồng bộ và tốc độ truyền dữ liệu thấp.
II.1.2 Ưu điểm của giao diện nối tiếp RS232
+ Khả năng chống nhiễu của các cổng nối tiếp cao
+ Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện
+ Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp
II.1.3 Những đặc điểm cần lưu ý trong chuẩn RS232
+ Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là +-12V. Hiện nay
đang được cố định trở kháng tải trong phạm vi từ 3000 ôm - 7000 ôm
+ Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ +-3V đến 12V
+ Tốc độ truyền nhận dữ liệu cực đại là 100kbps
+ Các lối vào phải có điện dung nhỏ hơn 2500pF
+ Trở kháng tải phải lớn hơn 3000 ôm nhưng phải nhỏ hơn 7000 ôm
+ Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232
không vượt qua 15m
+ Các giá trị tốc độ truyền dữ liệu chuẩn :
50,75,110,750,300,600,1200,2400,4800,9600,19200,28800,38400....56600,115200 bps
II.1.4 Các mức điện áp đường truyền
RS 232 sử dụng phương thức truyền thông không đối xứng, tức là sử dụng tín hiệu điện
áp chênh lệch giữa một dây dẫn và đất. Do đó ngay từ đầu tiên ra đời nó đã mang vẻ lỗi
thời của chuẩn TTL, nó vấn sử dụng các mức điện áp tương thích TTL để mô tả các mức
logic 0 và 1. Ngoài mức điện áp tiêu chuẩn cũng cố định các giá trị trở kháng tải được
đấu vào bus của bộ phận và các trở kháng ra của bộ phát.
Mức điện áp của tiêu chuẩn RS232C ( chuẩn thường dùng bây giờ) được mô tả như sau:
+ Mức logic 0 : +3V , +12V
+ Mức logic 1 : -12V, -3V
Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến. Chính vì từ -
3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic từ
thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một
thơì gian ngắn hợp lý. Điều này dẫn đến việc phải hạn chế về điện dung của các thiết bị
tham gia và của cả đường truyền. Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài của
dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2 Kbps .
II.1.5 Cổng RS232 trên PC
Hầu hết các máy tính cá nhân hiện nay đều được trang bị ít nhất là 1 cổng Com hay cổng
nối tiếp RS232. Số lượng cổng Com có thể lên tới 4 tùy từng loại main máy tính. Khi đó
các cổng Com đó được đánh dấu là Com 1, Com 2, Com 3...Trên đó có 2 loại đầu nối
được sử dụng cho cổng nối tiếp RS232 loại 9 chân (DB9) hoặc 25 chân (DB25). Tuy hai
loại đầu nối này có cùng song song nhưng hai loại đầu nối này được phân biệt bởi cổng

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 30


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

đực (DB9) và cổng cái (DB25)


Ta xét sơ đồ chân cổng Com 9 chân:

Hình 16: Cổng Com

Trên là các kí hiệu chân và hình dạng của cổng DB9


Chức năng của các chân như sau:
+ chân 1 : Data Carrier Detect (DCD) : Phát tín hiệu mang dữ liệu
+ chân 2: Receive Data (RxD) : Nhận dữ liệu
+ chân 3 : Transmit Data (TxD) : Truyền dữ liệu
+ chân 4 : Data Termial Ready (DTR) : Đầu cuối dữ liệu sẵn sàng được kích hoạt bởi bộ
phận khi muốn truyền dữ liệu
+ chân 5 : Singal Ground ( SG) : Mass của tín hiệu
+ chân 6 : Data Set Ready (DSR) : Dữ liệu sẵn sàng, được kích hoạt bởi bộ truyền khi nó
sẵn sàng nhận dữ liệu
+ chân 7 : Request to Send : yêu cầu gửi,bô truyền đặt đường này lên mức hoạt động khi
sẵn sàng truyền dữ liệu
+ chân 8 : Clear To Send (CTS) : Xóa để gửi ,bô nhận đặt đường này lên mức kích hoạt
động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu
+ chân 9 : Ring Indicate (RI) : Báo chuông cho biết là bộ nhận đang nhận tín hiệu rung
chuông
II.1.6 Quá trình truyền nhận dữ liệu
II.1.6.a Quá trình truyền dữ liệu
Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ. Do vậy nên tại
một thời điểm chỉ có một bit được truyền (1 kí tự). Bộ truyền gửi một bit bắt đầu (bit
start) để thông báo cho bộ nhận biết một kí tự sẽ được gửi đến trong lần truyền bit tiếp
the . Bit này luôn bắt đầu bằng mức 0.. Tiếp theo đó là các bit dữ liệu (bits data) được gửi
dưới dạng mã ASCII( có thể là 5,6,7 hay 8 bit dữ liệu) Sau đó là một Parity bit ( Kiểm tra
bit chẵn, lẻ hay không) và cuối cùng là bit dừng - bit stop có thể là 1, 1,5 hay 2 bit dừng.
II.1.6.b Tốc độ Baud
Đây là một tham số đặc trưng của RS232. Tham số này chính là đặc trưng cho quá trình
truyền dữ liệu qua cổng nối tiếp RS232 là tốc độ truyền nhận dữ liệu hay còn gọi là tốc
độ bit. Tốc độ bit được định nghĩa là số bit truyền được trong thời gian 1 giây hay số bit

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 31


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

truyền được trong thời gian 1 giây. Tốc độ bit này phải được thiết lập ở bên phát và bên
nhận đều phải có tốc độ như nhau ( Tốc độ giữa vi điều khiển và máy tính phải chung
nhau 1 tốc độ truyền bit)
Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ Baud. Tốc độ Baud
liên quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn tả bit được truyền
còn tôc độ bit thì phản ánh tốc độ thực tế mà các bit được truyền.Vì một phần tử báo hiệu
sự mã hóa một bit nên khi đó hai tốc độ bit và tốc độ baud là phải đồng nhất
Một số tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600,
19200, 28800, 38400, 56000, 115200 … Trong thiết bị họ thường dùng tốc độ là 19200
Khi sử dụng chuẩn nối tiếp RS232 thì yêu cầu khi sử dụng chuẩn là thời gian chuyển mức
logic không vượt quá 4% thời gian truyền 1 bit. Do vậy, nếu tốc độ bit càng cao thì thời
gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic càng phải nhỏ. Điều này làm
giới hạn tốc Baud và khoảng cách truyền.
II.1.6.c Bit chẵn lẻ hay Parity bit
Đây là bit kiểm tra lỗi trên đường truyền. Thực chất của quá trình kiểm tra lỗi khi truyền
dữ liệu là bổ xung thêm dữ liệu được truyền để tìm ra hoặc sửa một số lỗi trong quá trình
truyền . Do đó trong chuẩn RS232 sử dụng một kỹ thuật kiểm tra chẵn lẻ.
Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để ch thấy số lượng các bit "1"
được gửi trong một khung truyền là chẵn hay lẻ.
Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi chả hạn như 1,3,,5,7,9... Nếu như một bit
chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường hợp không mắc lỗi vì thế
không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi này không được sử dụng trong
trường hợp có khả năng một vài bit bị mắc lỗi.
II.2 Sơ đồ kết nối dùng IC Max 23
Max232 là IC chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi. Max232 là IC
của hãng Maxim. Đây là IC chay ổn định và được sử dụng phổ biến trong các mạch giao
tiếp chuẩn RS232. Mỗi đầu truyền ra và cổng nhận tín hiệu đều được bảo vệ chống lại sự
phóng tĩnh điện. Ngoài ra Max232 còn được thiết kế với nguồn +5V cung cấp nguồn
công suất nhỏ.
Mạch giao tiếp như sau :

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 32


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 17: Sơ đồ kết nối cổng com với Max 232


III. RAM MỞ RỘNG
III.1 Giới thiệu
Do dung lượng ram của PIC16f887 là 256byte không đủ lưu trữ cho những chuỗi dài quá
50 ký tự. Vì mỗi ký tự cần 5 byte để lưu trữ, 50 ký tự sẽ cần 250 byte. Do đó ta phải tăng
dung lượng ram cho vi điều khiển bằng cách giao tiếp thêm với ram ngoài. IC ram sử
dụng trong đề tài là IC HM62256ALP với dung lượng là 15 bit địa chỉ và 1 byte lưu trữ.
Điều này có nghĩa là ta sẽ có 215 địa chỉ tương đương 32Kbit địa chỉ, ứng với mỗi địa chỉ
ta lưu được một byte dữ liệu. Như vậy nếu ta dùng ram 62256 để lưu dữ liệu nhập từ bàn
phím với mỗi ký tự cần 5 byte thì ta sẽ lưu được:

215/5 = 65536 ký tự.


Như vậy nếu sử dụng ram ngòai thì ta sẽ tăng kích thước ram của Vi điều khiển lên rất
nhiều lần, sẽ đủ cho những ứng dụng đòi hỏi hiển thị chuỗi ký tự lớn hơn 250 ký tự.
III.2 Sơ đồ chân IC HM62256ALP

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 33


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 18: IC RAM HM62256ALP


III.3 Giả thích sơ đồ chân

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 34


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Các chân A0 đến A14 là các chân địa chỉ giúp ta xác định địa chỉ lưu vào hay đọc
ra của ram.
Các chân I/O0 đến I/O7 là các chân data lưu hay đọc từ ram.
Chân WE (Write Enable) tích cực mức thấp là chân cho phép ghi, khi chân này ở
mức 0 thì cho phép ghi dữ liệu từ các chân I/O0 đến I/O7 vào ma trận nhớ của ram.
Chân OE (Output Enable) tích cực mức thấp là chân cho phép đọc, khi chân này ở
mức 0 thì cho phép đọc dữ liệu từ các chân I/O0 đến I/O7 từ ma trận nhớ của ram ra
ngoài.
Chân CS (Chip Select) tích cực mức thấp là chân chọn chip, khi chân này ở mức 0
thì chip được chọn, các chức năng đọc và ghi ở trên có thể thực hiện được. Khi chân này
ở mức 1 thì chip không được chọn, các chức năng đọc và ghi ở trên không thể thực hiện.
Chân VCC và chân GND là các chân nguồn cấp cho ram hoạt động.
III.4 Sơ đồ khối

Hình 19: Sơ đồ khối HM62256ALP

III.5 Nguyên lý hoạt động truy xuất của IC 62256


III.5.1 Quá trình ghi dữ liệu vào ram
- Đầu tiên ta phải chọn chip bằng cách xóa chân CS về mức 0V.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 35


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

- Bước hai ta định địa chỉ trong ram, nơi mà ta muốn ghi dữ liệu vào, địa chỉ được
xác định bằng các chân từ A0 đến A14. Ví dụ ta muốn lưu tại địa chỉ 10 trong ma trận
nhớ ta cho các chân từ A14 đến A4 bằng 0V, chân A3=1, chân A2=0, chân A1=1, chân
A0=0, như vậy ta được 000000000001010 hệ nhị phân và bằng 10 hệ thập phân.
- Sau khi định địa chỉ cần lưu ta tiến hành đưa dữ liệu cần lưu vào ram, dữ liệu
được đưa vào ram sẽ là dữ liệu 8bit từ 0 đến 255, dữ liệu này sẽ được đưa vào thông qua
các chân I/O0 đến I/O7. Ví dụ ta muốn lưu giá trị 14 vào ram thì dữ liệu tại các chân I/O0
đến I/O7 như sau I/O7=I/O6=I/O5=I/O4=0, I/O3=I/O2=I/O1=1, I/O0=0 tương ứng
0b00001110 = 14
- Cuối cùng là ghi giá trị ở trên vào ram bằng cách cho chân WE = 0, nhưng ta
phải cấm quá trình đọc bằng cách cho chân OE=1.
III.5.2 Quá trình đọc dữ liệu từ ram
Quá trình đọc cũng tương tự quá trình ghi nhưng ở quá trình ghi thì dữ liệu cần
ghi được đưa vào các chân I/O0 -> I/O7 thì ở quá trình đọc ta đọc dữ liệu về cũng tại các
chân này.
Giả sử tại địa chỉ 10 của ram đã tồn tại dữ liệu 14, thì quá trình đọc thực hịên như
sau:
- Đầu tiên chọn chip bằng cách cho chân CS=0;
- Sau đó định địa chỉ cần đọc (địa chỉ 10) bằng các chân A0 ->A14: ta đưa giá trị
000000000001010 vào các chân A0 -> A14 theo thứ tự từ cao xuống thấp.
- Tiếp đến thực hiện đọc bằng cách cho bit OE=0, nhưng ta phải cấm quá trình ghi,
cho bit WE=1
- Khi bit OE=0 thì các chân I/O0 ->I/O7 sẽ chứa giá trị lưu trong Ram là 14, khi đó
ta thực hiện đọc về hay hiện ra led …tùy ý để kiểm tra.

IV. IC GHI DỊCH 74HC595


IV.1 Giới thiệu
Đây là IC ghi dịch nối tiếp sang song song. IC được ứng dụng để tăng số lượng chân
output cho vi điều khiển. Có nhiều phương pháp để tăng số lượng chân , ví dụ như dùng
IC giải mã, tuy nhiên IC ghi dịch 74HC595 được lựa chọn như là một giải pháp vì các
nguyên nhân sau:
- Số lượng chân điều khiển luôn cố định là 4 chân: nếu dùng giải mã thì số lựong chân
điều khiển sẽ tăng theo số lượng chân ngõ ra (khi phải ghép nhiều IC lại với nhau). Trong
khi dùng ghi dịch thì số lượng chân điều khiển luôn là cố định ngay cả khi cần ghép
nhiều IC lại với nhau.
- Cho phép điều khiển linh họat và ổn định hơn: giữa các thanh ghi dịch và ngõ ra có
một “chốt”. Điều này cho phép thay đổi linh hoạt dữ liệu trong các thanh ghi dịch và ổn
định trạng thái logic ngõ ra.
IV.2 Sơ đồ chân

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 36


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 20: IC 74HC595


74HC595 là IC ghi dịch nối tiếp sang song với 8 ngõ ra Q0:Q7 và bộ chốt dữ liệu 8 bit.
IV.3 Giải thích sơ đồ chân:
- Chân Q0 ->Q7 là các chân dữ liệu ngõ ra.
- Chân DS (chân 14) là chân dịch dữ liệu, dữ liệu được đưa vào các thanh ghi dịch
bên trong IC thông qua chân này.
- Chân OE (Output Enable) là chân cho phép xuất dữ liệu song song, tích cực mức
thấp, khi chân này ở mức 0 thì quá trình ghi dịch đựơc thực hiện, nhưng khi chân
này ở mức 1 thì quá trình này bị cấm dữ liệu vẫn dịch được vào thanh ghi của IC
nhưng quá trình xuất ra các chân Q0 ->Q7 thì bị cấm.
- Chân ST_CP (chân 12) là chân điều khiển chốt dữ liệu, khi chân này ở mức 1 thì
dữ liệu trong thanh ghi của IC sẽ được xuất ra ngoài thông qua các chân Q0 ->
Q7.
- Chân SH_CP (chân 11) là chân Clock xung tác động cho quá trình dịch, khi ta
đưa một bit data vào chân DS thì bit dữ liệu này vẫn chưa thể dịch ngay vào thanh
ghi của IC mà ta phải tác đông một xung Clock vào chân này thì quá trình dịch
mới thực hiện được, tức bit data trên mới chứa vào thanh ghi của IC.
- Chân MR (chân 10) tích cực mức thấp, đây là chân xóa dữ liệu khi chân này ở
mức 0 thì tất cá các bit Q0 -> Q7 sẽ bị xóa về 0.
- Chân Q7’ (chân 9) chân đưa dữ liệu nối tiếp ra ngoài dùng khi ghép nhiều IC nối
tiếp với nhau.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 37


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 21: Sơ đồ khối 74HC595


Ta có thể điều khiển được một hoặc nhiều IC 74HC595 ghép với nhau thông qua 3 chân
DS, ST_CP,SH_CP. Điều này cho phép mở rộng một cách vô hạn số lượng chân ngõ ra
của vi điều khiển. Tuy nhiên nhược điểm của nó là thời gian truy xuất các ngõ ra chậm
hơn so với việ truy xuất trực tiếp, vì dữ liệu phải được đưa từng bit vào IC trước khi cho
xuất ra ngoài.

V. LED MATRẬN
V.1. Hình dạng và cấu tạo của led ma trận.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 38


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 22: Led ma trận

Ma trận led bao gồm nhiều led đơn bố trí thành hàng và cột trong một vỏ.Các tín
hiệu điều khiển cột được nối với Anode của tất cả các led trên cùng một cột. Các tín hiệu
điểu khiển hàng cũng được nối với Cathode của tất cả các led trên cùng một hàng như
hình vẽ :

Hình 23: Cấu tạo Led ma trận


V.2 Nguyên lý hoạt động
Khi có một tín hiệu điều khiển ở cột và hàng, các chân Anode của các led trên cột
tương ứng được cấp điện áp cao, đồng thời các chân Cathode của các led trên hàng tương
ứng được được cấp điện áp thấp. Tuy nhiên lúc đó chỉ có một led sáng, vì nó có đồng thời
điện thế cao trên Anode và điện thế thấp trên Cathode. Như vậy khi có một tín hiệu điều
khiển hàng và cột, thì tại một thời điểm chỉ có duy nhất một led tại chỗ gặp nhau của

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 39


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

hàng và cột là sáng. Các bảng quang báo với số lượng led lớn hơn cũng được kết nối theo
cấu trúc như vậy.
Trong trường hợp ta muốn cho sáng đồng thời một số led rời rạc trên ma trận, để
hiện thị một kí tự nào đó, nếu trong hiển thị tĩnh ta phải cấp áp cao cho Anode và áp thấp
cho Cathode, cho các led tương ứng mà ta muốn sáng. Nhưng khi đó một số led ta không
mong muốn cũng sẽ sáng, miễn là nó nằm tại vị trí gặp nhau của các cột và hàng mà ta
cấp nguồn.Vì vậy trong điều khiển led ma trận ta không thể sử dụng phương pháp hiển
thị tĩnh mà phải sử dụng phương pháp quét (hiển thị động), có nghĩa là ta phải tiến hành
cấp tín hiệu điều khiển theo dạng xung quét trên các hàng và cột có led cần hiển thị. Để
đảm cho mắt nhìn thấy các led không bị nháy, thì tần số quét nhỏ nhất cho mỗi chu kì là
khoảng 20HZ (50ms). Trong lập trình điều khiển led ma trận bằng vi xử lý ta cũng phải
sử dụng phương pháp quét như vậy.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 40


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

CHƯƠNG II
NGUYÊN LÝ HOẠT ĐỘNG CỦA ĐỀ TÀI
·o¸

I. Sơ đồ khối mạch hiển thị

Hình 24: Sơ đồ khối đề tài


I.1 Bộ nguồn: làm nhiệm vụ cung cấp điện áp cho toàn mạch.
Bộ nguồn được sử dụng trong đề tài là bộ nguồn PC. Sở dĩ dùng bộ nguồn PC thay cho
việc thiết kế bộ nguồn sử dụng IC ổn áp 78xx vì:
- Bộ nguồn PC có tính ổn định cao nhằm bảo vệ tốt cho bộ vi điều khiển.
- Dùng lâu dài.
- Có khả năng chịu đựng tốt với thời tiết.
- Có nhiều mức điện áp khác nhau thuận tiện cho việc sử dụng.
- Có công suất lớn vì vậy có thể sử dụng chung cho nhiều mạch khác nhau.
I.2 Bộ dao động: là bộ dao động thạch anh cung cấp trực tiếp cho vi điều khiển
Sơ đồ nguyên lý:

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 41


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 25: Sơ đồ kết nối thạch anh.


I.3 Bộ reset: làm nhiệm vụ khởi động lại chế độ ban đầu của khối xử lý trung tâm.

Hình 26: Bộ reset PIC


I.4 Khối xử lý trung tâm: là bộ vi điều khiển PIC16F887 chứa phần mềm lập
trình sau khi đã biên dịch làm nhiệm vụ điều khiển toàn bộ hê thống mạch nguyên lý.
I.5 Khối giải mã cột: bao gồm hệ thống 4 IC 74HC595 ghép nối tiếp làm nhiệm
vụ giải mã dữ liệu từ khối xử lý trung tâm đưa vào hệ thống hiển thị (ma trận led).
I.6 Khối giải mã hàng: bao gồm hệ thống 8 Transistor B562 làm nhiệm vụ
khuếch đại dòng lấy trực tiếp từ PortB của khối xử lý trung tâm cấp cho 8 hàng của hệ
thống led ma trận.
I.7 Khối hiển thị: là hệ thống các ma trận led 8x8 làm nhiệm vụ hiển thị thông tin
từ khối xử lý trung tâm sau khi được xử lý.
I.8 Khối giao tiếp: dùng chuẩn giao tiếp RS232 thông qua IC Max 232 làm
nhiệm vụ truyền nhận nối tiếp từ máy tính điều khiển dữ liệu hiển thị trên bảng led đồng
thời nhận dữ liệu từ khối xử lý gửi về phục vụ việc điều khiển
II. Nguyên tắc hoạt động
Nguyên tắc hoạt động của đề tài chủ yếu nói đến 2 nguyên tắc: hoạt động của led
ma trận và nguyên tắc truyền nhận từ máy tính ghi vào ram nhớ. Ngoài ra các bộ phận
khác về nguyên tắc hoạt động chỉ đơn thuần chỉ là bộ phận trung gian để chuyển đổi ý

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 42


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

tưởng trực quang (phần mềm) sang ngôn ngữ hệ thống và điều khiển hê thống một các
linh hoạt.
II.1 Nguyên tắc led ma trận:
Để tìm hiểu nguyên tắc hoạt động của led ma trận ta cần tìm hiểu hai phần quan
trọng: phần 1 là tìm hiểu cách hiển thị chữ hay ký tự, hình ảnh trên led ma trận (quét led
ma trận) và phần 2 là tìm hiểu các hiệu ứng trên led ma trận như dịch ký tự.
II.1.1 Hiển thị ký tự trên led ma trận
Dựa trên nguyên tắc như quét màn hình, ta có thể thực hiện việc hiển thị ma trận
đèn bằng cách quét theo hàng và quét theo cột. Mỗi led trên led ma trận có thể coi như
một điểm ảnh. Địa chỉ của mỗi điểm ảnh này được xác định đồng thời bởi mạch giải mã
hàng và giải mã cột, điểm ảnh này sẽ được xác định trạng thái nhờ dữ liệu đưa ra từ bộ vi
điều khiển PIC16F887.
Như vậy tại mỗi thời điểm chỉ có trạng thái của một điểm ảnh được xác định. Tuy
nhiên khi xác định địa chỉ và trạng thái của điểm ảnh tiếp theo thì các các điểm ảnh còn
lại sẽ chuyển về trạng thái tắt (nếu led đang sang thì sẽ tắt dần). Vì thế để hiển thị được
toàn bộ hình ảnh của ma trận đèn, ta có thể quét led ma trận nhiều lần với tốc độ quét rất
lớn, lớn hơn nhiều lần thời gian kịp tắt của đèn. Mắt người chỉ nhận biết tối đa 24 hình/s
do đó nếu tốc độ quét rất lớn thì nó sẽ không nhận ra được sự thay đổi nhỏ của đèn mà sẽ
thấy được toàn bộ hình ảnh cần hiển thị.

Hình 27: Sơ đồ đơn giản của Led ma trận 4x4


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ả
hai 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 của led
phải được nối đất, led sẽ tắt khi không có điện áp đưa vào chân dương.
Để đơn giản và dễ hiểu hơn ta hãy xét ví dụ sau:

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 43


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

Hình 28: Hiện chữ trên Led ma trận 8x8.


Ở trên là hình ảnh của 3 led ma trận 8x8 ghép nối tiếp nhau và chúng đang hiển
thị một phần chữ ADIDAS.
Nguyên tắc hiển thị như sau:
Đầu tiên ta quét led ma trận thứ nhất
Thực hiện quét dòng và cột:
- Chọn cột 1, đưa điện áp cột 1 về 0V
- Sau đó chọn và quét lần lượt các hàng 1, 2, 3, 4, 5, 6, 7, 8:
+ Đèn 1 tắt Æđiện áp đưa vào hàng 1 là 0V
+ Đèn 2 tắt Æđiện áp đưa vào hàng 2 là 0V
+ Đèn 3 sáng Æđiện áp đưa vào hàng 3 là 5V
+ Đèn 4 sáng Æđiện áp đưa vào hàng 4 là 5V
+ Đèn 5 sáng Æđiện áp đưa vào hàng 5 là 5V
+ Đèn 6 sáng Æđiện áp đưa vào hàng 6 là 5V
+ Đèn 7 sáng Æđiện áp đưa vào hàng 7 là 5V
+ Đèn 8 sáng Æđiện áp đưa vào hàng 8 là 5V
- Chọn cột 2, nối đất đồng thời bỏ chọ cột 1. Sau đó quét lần lượt các hàng 1, 2, 3,
4, 5, 6, 7, 8
+ Đèn 1 tắt Æđiện áp đưa vào hàng 1 là 0V
+ Đèn 2 sáng Æđiện áp đưa vào hàng 2 là 5V
+ Đèn 3 tắt Æđiện áp đưa vào hàng 3 là 0V
+ Đèn 4 sáng Æđiện áp đưa vào hàng 4 là 5V
+ Đèn 5 tắt Æđiện áp đưa vào hàng 5 là 0V
+ Đèn 6 tắt Æđiện áp đưa vào hàng 6 là 0V
+ Đèn 7 tắt Æđiện áp đưa vào hàng 7 là 0V
+ Đèn 8 tắt Æđiện áp đưa vào hàng 8 là 0V
- Tiếp tục quét các cột từ 3 đến 8 bằng cách như trên, sau đó chuyển sang quét đèn
led thứ hai và thứ ba một cách tương tự.
- Để mắt người nhận biết được toàn bộ hình ảnh của ma trận ta phải tiến hành quét
nhiều lần. Do mắt người không phân biệt được sự thay đổi ảnh nếu ảnh đó quét
với tốc độ 24 hình/s nên nếu ta quét ảnh với tốc độ lớn hơn hoặc bằng 24 hình/s
thì ảnh sẽ chạy liên tục và không bị giật.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 44


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

II.1.2 Dịch chữ trên led ma trận


Sau khi tìm hiểu được cách hiển thị ký tự trên led ma trận, bây giờ ta sẽ tìm hiểu
làm thế nào các ký tự có thể nhảy múa trên led thô cứng như vậy ??
Để hiểu rõ hơn vấn đề ta xét ví dụ dịch ký tự A trên led ma trận 5x7 bên dưới.
Như bên dưới thì ta thấy có 7 trạng thái của led ma trận, và ta thấy hình như ký tự
A xuất hiện dần từ bên phải sang trái qua các led ma trận, nếu như ta cho các led ma trận
xuất hiện một cách riêng lẽ từ lần 0 đến lần 7 với tốc độ rất nhanh thì ta sẽ thấy ký tự A
được dịch từ trái sang phải. Vậy là mắt bạn đã bị đánh lừa. Đấy là trực quang phần cứng,
nhưng bây giờ làm thế nào để làm được điều đó??. Lưu ý là ở đây ta không dùng 7 led
ma trận, cho mỗi led ma trận sáng như bên dưới và kéo led ma trận để đánh lừa mắt đâu.
Ở đây ta chỉ có một led ma trận và dĩ nhiên ta không đánh lừa mắt như trên được,
mà ta dùng phần cứng làm cho led hiển thị như bên dưới với tốc độ rất nhanh. Ta sẽ thực
hiện như sau: sẽ có 7 trạng thái ta quan tâm như bên dưới, thực chất là ta cũng sẽ làm
công việc hiển thị được ký tự A trên led ma trận mà phần trên đã trình bày và bây giờ là
dịch ký tự A. Ta thấy lần 0 thì led không hiện gì cả nhưng ta vẫn thực hiện công việc quét
hàng như đã trình bày ở đây ta chỉ quét 5 cột thay vì 8 cột. Lần 1 thì cột bên phải sáng tất
nhiên là ta cũng sẽ quét 5 cột, tưng tự cho các lần còn lại. Tóm lại khi thiết kế thì ta sẽ
cho led ma trận hiện 7 lần khác nhau từ lần 0 đến lần 6 và trong một lần như vậy ta sẽ
quét 5 cột để led ma trận hiển thị các ký tự mong muốn. Khi thiết kế phầm mềm thì chỉ
việc dịch trái mảng hàng chứa bộ mã hoá ký tự đi 1 ứng với mỗi lần hiển thị là xong.

Hình 29: Dịch chữ trên led ma trận.

Như vậy ta đã tìm hiểu được cách hiển thị và dịch ký tự trên led ma trận. Nếu như
khéo léo trong cách kết nối các led ma trận và mã hoá ký tự kèm theo sự linh hoạt trong
phần mền ta có thể làm cho các led ma trận không những hiển thị được các thông điệp
mong muốn mà ta có thể làm cho led ma trận nhảy múa theo các hình dạng ngỗ nghĩnh.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 45


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

II.2 Nguyên tắc truyền nhận dữ liệu từ máy tính:


Vấn đề kết nối giữa máy tính và khối xử lý đã được đề cặp ở trên, nên sẽ không được
nhắc lại ở đây, phần này chỉ để cập việc nhập ký tự, nhận ký tự và xuất ra led.
Đầu tiên khi ta nhập một ký tự trên máy tính, thông qua một phần mềm có sẵn, thì vi điều
khiển sẽ nhận về mã ASCII của ký tự ta nhập VD: mã ASCII của A là 65. Để hiển thị ký
tự lên Led thì ta phải tra dịch từ mã ASCII sang bảng mã đã được dịch sẵn sau đó lưu các
mã đó vào trong ram.
Để kết thúc quá trình nhập ta ấn phím “ ~ ” trên bàn phím, khi ta ấn phím này sẽ có một
cờ báo cho vi điều khiển biết kết thúc quá trình nhập và lưu vào trong ram. Khi đó vi điều
khiển sẽ chuyển sang quá trình hiển thị dữ liệu vừa lưu được trong ram ra led.

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 46


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

PHẦN III
PHỤ LỤC

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 47


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

PHỤ LỤC A
CHƯƠNG TRÌNH ĐIỂU KHIỂN
#include <16F887.h>
#include <def_88.h>
#fuses hs,NOWDT,NOPROTECT,NOLVP
#device 16F877a*=16 ADC=8
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)

#define latch_573_low PIN_A0 //LATCH cua 573 mang 8 bit dia chi thap
#define latch_573_high PIN_A1 //LATCH cua 573 mang 8 bit dia chi cao
#define CE_RAM PIN_A2 //Chip Select enable ram 62256
#define WE_RAM PIN_A3 //Write enable ram 62256
#define OE_RAM PIN_A4 //Read Enable ram 62256

#define clk PIN_c0


#define latch PIN_c2
#define data1 PIN_c1

//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
// KHAI BAO CHUONG TRINH CON
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

void send_595(int32 temp); //Chuong trinh gui du lieu ra 4 IC 595 dieu khien quet cot
void write_data_to_ram(char data,int32 vitri);//Chuong trinh cap nhat vao ram thong qua
ma ASCII
void write_ram(int16 address,int8 data);//Chuong trinh ghi vao ram
int8 read_ram(int16 address);

int8 const wait1[]={


0xF7,0xF7,0xF7,0xF7,0xF7,//-
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xD5,0xE3,0x80,0xE3,0xD5,//* 10
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xD5,0xE3,0x80,0xE3,0xD5,//* 10
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xD9,0xB6,0xB6,0xB6,0xCD,//S 51
0xFC,0xFB,0x87,0xFB,0xFC,//Y
0xD9,0xB6,0xB6,0xB6,0xCD,//S 51

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 48


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

0xFE,0xFE,0x80,0xFE,0xFE,//T
0x80,0xB6,0xB6,0xB6,0xBE,//E
0x80,0xFD,0xF3,0xFD,0x80,//M
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xFF,0xBE,0x80,0xBE,0xFF,//I
0xD9,0xB6,0xB6,0xB6,0xCD,//S
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xC0,0xBF,0xBF,0xBF,0xC0,//U
0x80,0xF6,0xF6,0xF6,0xF9,//P
0xBE,0x80,0xBE,0xBE,0xC1,//D
0x83,0xF5,0xF6,0xF5,0x83,//A
0xFE,0xFE,0x80,0xFE,0xFE,//T
0xFF,0xBE,0x80,0xBE,0xFF,//I
0x80,0xFD,0xFB,0xF7,0x80,//N
0xC1,0xBE,0xB6,0xB6,0xC5,//G
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xBE,0x80,0xBE,0xBE,0xC1,//D
0x83,0xF5,0xF6,0xF5,0x83,//A
0xFE,0xFE,0x80,0xFE,0xFE,//T
0x83,0xF5,0xF6,0xF5,0x83,//A
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xF6,0xF6,0xF6,0xF9,//P
0x80,0xBF,0xBF,0xBF,0xFF,//L
0x80,0xB6,0xB6,0xB6,0xBE,//E
0x83,0xF5,0xF6,0xF5,0x83,//A
0xD9,0xB6,0xB6,0xB6,0xCD,//S
0x80,0xB6,0xB6,0xB6,0xBE,//E
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xC0,0xBF,0xCF,0xBF,0xC0,//W
0x83,0xF5,0xF6,0xF5,0x83,//A
0xFF,0xBE,0x80,0xBE,0xFF//I
};
int8 const wait2[]={
0xFE,0xFE,0x80,0xFE,0xFE,//T
0xFF,0xBE,0x80,0xBE,0xFF,//I
0x80,0xFD,0xFB,0xF7,0x80,//N
0xC1,0xBE,0xB6,0xB6,0xC5,//G
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xD9,0xB6,0xB6,0xB6,0xCD,//S
0x80,0xB6,0xB6,0xB6,0xBE,//E
0xE0,0xDF,0xBF,0xDF,0xE0,//V
0x80,0xB6,0xB6,0xB6,0xBE,//E
0x80,0xF6,0xE6,0xD6,0xB9,//R
0x83,0xF5,0xF6,0xF5,0x83,//A

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 49


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

0x80,0xBF,0xBF,0xBF,0xFF,//L
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xD9,0xB6,0xB6,0xB6,0xCD,//S
0x80,0xB6,0xB6,0xB6,0xBE,//E
0xC1,0xBE,0xBE,0xBE,0xDD,//C
0xC1,0xBE,0xBE,0xBE,0xC1,//O
0x80,0xFD,0xFB,0xF7,0x80,//N
0xD9,0xB6,0xB6,0xB6,0xCD,//S
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xFE,0xFE,0x80,0xFE,0xFE,//T
0x80,0xF7,0xF7,0xF7,0x80,//H
0x83,0xF5,0xF6,0xF5,0x83,//A
0x80,0xFD,0xFB,0xF7,0x80,//N
0x80,0xF7,0xEB,0xDD,0xBE,//K
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xE0,0xDF,0xBF,0xDF,0xE0,//V
0x80,0xB6,0xB6,0xB6,0xBE,//E
0x80,0xF6,0xE6,0xD6,0xB9,//R
0xFC,0xFB,0x87,0xFB,0xFC,//Y
0x80,0xFD,0xF3,0xFD,0x80,//M
0xC0,0xBF,0xBF,0xBF,0xC0,//U
0xC1,0xBE,0xBE,0xBE,0xDD,//C
0x80,0xF7,0xF7,0xF7,0x80,//H
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xD5,0xE3,0x80,0xE3,0xD5,//* 10
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xD5,0xE3,0x80,0xE3,0xD5,//* 10
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xF7,0xF7,0xF7,0xF7,0xF7//-
};
//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
//******************BANG MA ASCII****************
//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
int8 const font1[]={
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE 0 ->32
0xFF,0xFF,0xA0,0xFF,0xFF,//! 1
0xFF,0xFF,0xF8,0xF4,0xFF,//' 2
0xEB,0x80,0xEB,0x80,0xEB,//# 3
0xDB,0xD5,0x80,0xD5,0xED,//$ 4
0xD8,0xEA,0x94,0xAB,0x8D,//% 5
0xC9,0xB6,0xA9,0xDF,0xAF,//& 6
0xFF,0xFF,0xF8,0xF4,0xFF,//' 7
0xFF,0xE3,0xDD,0xBE,0xFF,//( 8 ->40
0xFF,0xBE,0xDD,0xE3,0xFF,//) 9

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 50


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

0xD5,0xE3,0x80,0xE3,0xD5,//* 10
0xF7,0xF7,0xC1,0xF7,0xF7,//+ 11
0xFF,0xA7,0xC7,0xFF,0xFF,//, 12
0xF7,0xF7,0xF7,0xF7,0xF7,//- 13
0xFF,0x9F,0x9F,0xFF,0xFF,//x 14
0xFF,0xC9,0xC9,0xFF,0xFF,/// 15
0xC1,0xAE,0xB6,0xBA,0xC1,//0 16
0xFF,0xBD,0x80,0xBF,0xFF,//1 17
0x8D,0xB6,0xB6,0xB6,0xB9,//2 18 ->50
0xDD,0xBE,0xB6,0xB6,0xC9,//3 19
0xE7,0xEB,0xED,0x80,0xEF,//4 20
0xD8,0xBA,0xBA,0xBA,0xC6,//5 21
0xC3,0xB5,0xB6,0xB6,0xCF,//6 22
0xFE,0x8E,0xF6,0xFA,0xFC,//7 23
0xC9,0xB6,0xB6,0xB6,0xC9,//8 24
0xF9,0xB6,0xB6,0xD6,0xE1,//9 25
0xFF,0xC9,0xC9,0xFF,0xFF,//: 26
0xFF,0xA4,0xC4,0xFF,0xFF,//// 27
0xF7,0xEB,0xDD,0xBE,0xFF,//< 28 ->60
0xEB,0xEB,0xEB,0xEB,0xEB,//= 29
0xFF,0xBE,0xDD,0xEB,0xF7,//> 30
0xFD,0xFE,0xAE,0xF6,0xF9,//? 31
0xCD,0xB6,0x8E,0xBE,0xC1,//@ 32
0x83,0xF5,0xF6,0xF5,0x83,//A 33
0xBE,0x80,0xB6,0xB6,0xC9,//B 34
0xC1,0xBE,0xBE,0xBE,0xDD,//C 35
0xBE,0x80,0xBE,0xBE,0xC1,//D 36
0x80,0xB6,0xB6,0xB6,0xBE,//E 37
0x80,0xF6,0xF6,0xFE,0xFE,//F 38 ->70
0xC1,0xBE,0xB6,0xB6,0xC5,//G 39
0x80,0xF7,0xF7,0xF7,0x80,//H 40
0xFF,0xBE,0x80,0xBE,0xFF,//I 41
0xDF,0xBF,0xBE,0xC0,0xFE,//J 42
0x80,0xF7,0xEB,0xDD,0xBE,//K 43
0x80,0xBF,0xBF,0xBF,0xFF,//L 44
0x80,0xFD,0xF3,0xFD,0x80,//M 45
0x80,0xFD,0xFB,0xF7,0x80,//N 46
0xC1,0xBE,0xBE,0xBE,0xC1,//O 47
0x80,0xF6,0xF6,0xF6,0xF9,//P 48 ->80
0xC1,0xBE,0xAE,0xDE,0xA1};//Q 49 ->50x5=250 byte ky tu

int8 const font2[]={


0x80,0xF6,0xE6,0xD6,0xB9,//R 0 ->82
0xD9,0xB6,0xB6,0xB6,0xCD,//S 1 83

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 51


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

0xFE,0xFE,0x80,0xFE,0xFE,//T 2
0xC0,0xBF,0xBF,0xBF,0xC0,//U 3
0xE0,0xDF,0xBF,0xDF,0xE0,//V 4
0xC0,0xBF,0xCF,0xBF,0xC0,//W 5
0x9C,0xEB,0xF7,0xEB,0x9C,//X 6
0xFC,0xFB,0x87,0xFB,0xFC,//Y 7
0x9E,0xAE,0xB6,0xBA,0xBC,//Z 8 ->90
0xFF,0x80,0xBE,0xBE,0xFF,//[ 9
0xFD,0xFB,0xF7,0xEF,0xDF,//\ 10
0xFF,0xBE,0xBE,0x80,0xFF,//] 11
0xFB,0xFD,0xFE,0xFD,0xFB,//^ 12
0x7F,0x7F,0x7F,0x7F,0x7F,//_ 13
0xFF,0xFF,0xF8,0xF4,0xFF,//' 14
0xDF,0xAB,0xAB,0xAB,0xC7,//a 15
0x80,0xC7,0xBB,0xBB,0xC7,//b 16
0xFF,0xC7,0xBB,0xBB,0xBB,//c 17
0xC7,0xBB,0xBB,0xC7,0x80,//d 18 ->100
0xC7,0xAB,0xAB,0xAB,0xF7,//e 19
0xF7,0x81,0xF6,0xF6,0xFD,//f 20
0xF7,0xAB,0xAB,0xAB,0xC3,//g 21
0x80,0xF7,0xFB,0xFB,0x87,//h 22
0xFF,0xBB,0x82,0xBF,0xFF,//i 23
0xDF,0xBF,0xBB,0xC2,0xFF,//j 24
0xFF,0x80,0xEF,0xD7,0xBB,//k 25
0xFF,0xBE,0x80,0xBF,0xFF,//l 26
0x83,0xFB,0x87,0xFB,0x87,//m 27
0x83,0xF7,0xFB,0xFB,0x87,//n 28 ->110
0xC7,0xBB,0xBB,0xBB,0xC7,//o 29
0x83,0xEB,0xEB,0xEB,0xF7,//p 30
0xF7,0xEB,0xEB,0xEB,0x83,//q 31
0x83,0xF7,0xFB,0xFB,0xF7,//r 32
0xB7,0xAB,0xAB,0xAB,0xDB,//s 33
0xFF,0xFB,0xC0,0xBB,0xBB,//t 34
0xC3,0xBF,0xBF,0xDF,0x83,//u 35
0xE3,0xDF,0xBF,0xDF,0xE3,//v 36
0xC3,0xBF,0xCF,0xBF,0xC3,//w 37
0xBB,0xD7,0xEF,0xD7,0xBB,//x 38 ->120
0xF3,0xAF,0xAF,0xAF,0xC3,//y 39
0xBB,0x9B,0xAB,0xB3,0xBB,//z 40
0xFB,0xE1,0xE0,0xE1,0xFB,//^ 41
0xE3,0xE3,0xC1,0xE3,0xF7,//->42
0xF7,0xE3,0xC1,0xE3,0xE3,//<-43
0xEF,0xC3,0x83,0xC3,0xEF,// 44 ->126 //45x5=225 words
};

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 52


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
// Bang du lieu dich cot
//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
int32 const cot[]={
0xffffffFE,0xffffffFD,0xffffffFB,0xffffffF7,
0xffffffEF,0xffffffDF,0xffffffBF,0xffffff7F,
0xffffFEff,0xffffFDff,0xffffFBff,0xffffF7ff,
0xffffEFff,0xffffDFff,0xffffBFff,0xffff7Fff,
0xffFEffff,0xffFDffff,0xffFBffff,0xffF7ffff,
0xffEFffff,0xffDFffff,0xffBFffff,0xff7Fffff,
0xFEffffff,0xFDffffff,0xFBffffff,0xF7ffffff,
0xEFffffff,0xDFffffff,0xBFffffff,0x7Fffffff,
};
//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
// Khai bao bien, hang
//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
char data;
int32 ngat=0;
int stop=0;
int8 i=0,j=0;
int16 k=0,n=0,t=0;
int speed=6;
int32 delay=500;
int32 sizeram=0;
//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
// chuong trinh ngat
//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
#int_RDA //Ngat nhan du lieu tu RS232
void rs232()
{
ngat++; //tang dan theo tung ky tu nhap vao
delay_us(10);
data=getc();//doc tung ky tu
putc(data);
if(data==126)
{
stop=1;//neu ky tu nhap vao la '~' thi khong ghi vao ram tien hanh xuat ra led
sizeram=(ngat*5);
ngat=0;
}
else
{
stop=0;
sizeram=0;

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 53


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

write_data_to_ram(data,ngat);
}
}
//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
// CHUONG TRINH CHINH
//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
void main()
{
enable_interrupts(INT_RDA);//Cho phep ngat RS232
enable_interrupts(GLOBAL);//cho phep ngat toan cuc
while(true)
{
WHILE(stop= =1)
{
for(j=0;j<(sizeram-32);j++)
{
for(n=0;n<=speed;n++)//toc do
{
for (t=0;t<=31;t++)
{

output_b(read_ram(0x0000+t+j));
send_595(cot[t]); //guidulieu
delay_us(delay);
output_b(0xff);
send_595(0xffffffff);
delay_us(10);
}
}
}
}
WHILE (stop==0)
{
for (k=0;k<=351;k++) //trabangma
{
for(n=0;n<=speed;n++)//toc do
{
for (t=0;t<=31;t++)
{

if(k<176)output_b(wait1[k+t]);
if(k>175)output_b(wait2[((k-176)+t)]);
send_595(cot[t]); //guidulieu
delay_us(delay);

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 54


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

output_b(0xff);
send_595(0xffffffff);
delay_us(10);

}
}
}
}

}
}
//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
//CHUONG TRINH CON
//= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
void send_595(int32 temp)
{
int16 i;
for(i=0;i<=31;i++)
{
if(bit_test(temp,31)) //NEU FLAG_BIT==1 THI DATA=1
output_high(data1); //bit 1
else output_low(data1); //bit 0
output_low(clk);//tao xung clock dich data vao thanh ghi
DELAY_US(1);
output_high(clk);
temp=temp<<1; // Dich trai 1 bit
}
output_low(latch); //Chot du lieu ra 4 IC 595
output_high(latch);
}
void write_ram(int16 address,int8 data)
{
output_high(CE_RAM); //khoa RAM
//= = = = = = thiet lap dia chi cho RAM: = = = = = = = = = //
output_high(latch_573_low ); //latch_573_low cho phep xac lap 8bit thap dia
chi RAM
output_d( address ); //xuat 8bit thap dia chi RAM
output_low( latch_573_low ); //latch_573_low, chot 8bit thap dia chi RAM

address=address>>8;

output_high(latch_573_high ); //LE=1, cho phep xac lap 8bit cao dia chi
RAM

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 55


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

output_d( address ); //xuat 8bit cao dia chi RAM


output_low( latch_573_high ); //LE=0,chot 8bit cao cua ram

output_low(CE_RAM); //mo RAM


//= = = = = = ghi gia tri vao RAM: = = = = = = = = = = = //
output_low(WE_RAM); //chuyen sang che do ghi, WE=0
output_d(data); //ghi gia tri vao RAM
output_high(CE_RAM); //khoa RAM
output_high(we_ram); //khoa ghi ram
// = = = = = = End write_ram function = = = = = = = = = = = = = //
}
//End Write_ram
int8 read_ram(int16 address)
{
int8 data;
output_high(WE_RAM); //Write enable ram = 1 not allow Write data to
ram
output_low(OE_RAM); //Read enable ram = 0 Chuyen sang che do doc
data tu ram

// = = = = = = = thiet lap dia chi cho RAM: = = = = = = = = = //

output_high( latch_573_low ); //Latch_573_low = 1, cho phep chot 8 bit


thap address to ram
output_d( address ); //xuat 8bit thap dia chi RAM
output_low( latch_573_low ); //Latch_573_low = 0, chot 8bit thap dia chi
RAM

address=address>>8;

output_high( latch_573_high ); //Latch_573_high = 1, cho phep chot 8bit


cao address to ram
output_d( address ); //Xuat lap 8bit cao dia chi RAM
output_low( latch_573_high ); //Latch_573_high = 0, chot 8bit cao dia chi
RAM
// = = = = = Qua trinh doc ram tai dia chi address = = = = = = = =//
output_low( CE_RAM ); //mo RAM
data=input_d(); //doc gia tri tu RAM
delay_us(3);
output_high( CE_RAM ); //khoa RAM
return(data);
// = = = = = End Read Ram Function = = = = = //
}
//End Read_ram

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 56


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

void write_data_to_ram(char data,int32 vitri)


{
int8 ramtam[5];
int32 tam,i,j;
int32 address=0;
for(i=0;i<5;i++)
{
if((data-32)<50)
{
tam=(data-32)*5;
ramtam[i]=font1[tam+i];
}
if((data-32)>49)
{
tam=(data-82)*5;
ramtam[i]=font2[tam+i];
}

}
for(j=0;j<5;j++)//ghi 5 byte trong bien tam "ramtam" vao ram
{
address=((vitri-1)*5+j);//dinh dia chi cho ram
write_ram(address,ramtam[j]);//ghi vao ram
}
}
//End write_data_to_ram

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 57


SVTH: Nguyễn Ngọc Luân
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 2

PHỤ LỤC B
SƠ ĐỒ MẠCH IN 2 LỚP

GVHD: thầy Phạm Hùng Kim Khánh http://www.ebook.edu.vn Trang 58


SVTH: Nguyễn Ngọc Luân

You might also like