You are on page 1of 47

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

PHẦN A

GIỚI THIỆU

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
5
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

NHẬN XÉT CỦA GIẢNG VIÊN

--·±¸--

............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................
............................................................................................................

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
6
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

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âtt 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 ắ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, chúng em quyết
định chọn đề tài VI ĐIỀU KHIỂN VỚI QUANG BÁO để phục vụ cho môn đồ án 1. 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 chúng em 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 để chúng em có thể thực hiện tốt hơn cho các lần tiếp theo.
Chúng em xin chân thành cảm ơn./.
Thân chào
.
Tp.HCM tháng 03 – 2010.

Sinh viên thực hiện:


Nguyeãn Ngoïc Luaân
Nguyeãn Traàn Anh Khoa
Giảng viên hướng dẫn: thầy Nguyeãn Ñöùc Ngoïc Hoaøng

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
7
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

MỤC LỤC
PHẦN A : GIỚI THIỆU ...................................................... 5
NHẬN XÉT CỦA GIẢNG VIÊN.................................................... 6
LỜI MỞ ĐẦU TRANG .................................................................7
MỤC LỤC ...................................................................................9
PHẦN B NỘI DUNG ........................................................ 11
Chương I Giới Thiệu Các Linh Kiện Dùng Trong Mạch 12
X VI ĐIỀU KHIỂN ........................................................... 12
I. Khái Niệm Vi Điều Khiển........................................................... 12
II. Giới Thiệu Họ Vi Điều Khiển PIC16F877A ...............................12
II.1 PIC là gì ....................................................................................12
II.2 Tại sau là PIC mà không là các loại vi điều khiểnkhác......... 12
II.3 Bộ vi điều khiển 8 bit PIC16F877A ................... 13
II.3.1 Đặc tính nổi bật của bộ vi xử lý ................. 13
II.3.2 Tổ chức bộ nhớ ........................................... 16
a. Bộ nhớ chương trình .............................................................16
b. Bộ nhớ dữ liệu ........................................................................17
c. Thanh ghi chức năng đặc biệt ...............................................17
d. Thanh ghi mục đích GPR .......................................................20
II.3.3 Stack ............................................................. 20
II.3.4 Các cổng nhập xuất của PIC16F877A ...... 20
a. PORTA .....................................................................................20
b. PORTB .....................................................................................23
c. PORTC .....................................................................................25
d. PORTD ..................................................................................... 27
e. PORTE .....................................................................................28
II.3.5 Các bộ định thời của chip ........................... 29
a. Bộ TIMER0............................................................................... 29
b. Bộ TIMER1 ...............................................................................30
c. Bộ TIMER2 ...............................................................................31
d. ADC ..........................................................................................31
Y IC 74HC138 ................................................................ 32
I. Giới thiệu IC 74HC138 ........................................................................32
II. Sơ đồ chân IC 74HC138 ....................................................................32
III. Chức năng các chân IC 74HC138 ....................................................32
IV. Sơ đồ cấu tạo IC 74HC138 ...............................................................32
V. Bảng sự thật ......................................................................................33
VI. Nguyên tắc hoạt động IC 74HC138 .................................................33
Z LED ma trận ............................................................... 34
I. Hình dạng và cấu tạo của LED ma trận ..........................................34
TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
8
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

II. Nguyên tắc hoạt động của LED ma trận ..........................................35


[ IC ULN2803 ................................................................ 35
\ Dao động thạch anh .................................................. 36
] Điện trở ...................................................................... 36
^ Tụ điện ........................................................................ 36
_ Nút nhấn ..................................................................... 37
CHƯƠNG II NGUYÊN TẮC HOẠT ĐỘNG ...................... 38
I. Sơ đồ khối mạch hiển thị .............................................................38
II. Nguyên tắc hoạt động của đề tài ................................................40
II.1 Hiển thị ký tự trên LED ma trận ................................................40
II.2 Dịch chữ trên LED ma trận ........................................................42
III. Sơ đồ nguyên lý của mạch đề tài .............................................. 43
CHƯƠNG III CODE CỦA ĐỀ TÀI ........................................ 43

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
9
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

PHẦN B

NỘI DUNG

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
10
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

CHƯƠNG I

GIỚI THIỆU CÁC LINH KIỆN DÙNG TRONG MẠCH


- - *** - -
n Vi điều khiển
I 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.
II. Giới thiệu họ vi điều khiển PIC16F877A
II.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 thêm và từ đó hình thành nên
dòng vi điều khiển PIC ngày nay.
II.2 Tại sao là PIC mà không là các họ vi điều khiển khác ??
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:

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
11
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

- 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 t1inh 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.
II.3 Bộ vi điều khiển 8 bit Pic 16f877A
II.3.1 Đặ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ớ RAM 368x8 bytes
+ Bộ nhớ EFPROM 256x8 bytes
Khả năng của bộ vi sử 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|)
+ 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.

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
12
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

+ 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.
+ Cổng truyền thông tin nối tiếp SSP với SPI phương thức chủ và I2C(chủ / phụ).

Sơ đồ chân vi điều khiển PIC16F877A

Hình 1: Sơ đồ chân vi điều khiển PÍC6F877A

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

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
13
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 2: Sơ đồ khối vi
TH: NGUYỄN NGỌC LUÂN
điều khiển PIC6F877A
GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
14
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

II.3.2 Tổ chức bộ nhớ


Cấu trúc bộ nhớ của vi điều khiển PIC16f877A 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 PIC16F877A 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 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

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
15
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 3: Tổ chức bộ nhớ chương trình của PIC16F877A


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
PIC16F877A 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 PIC16F877A nhu sau:

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
16
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
17
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 4: Tổ chức bộ nhớ dữ liệu của PIC16F877A


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.

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à ngắt 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.

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
18
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

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.3.3 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 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 PIC16f877A 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.3.4 Các cổng xuất nhập của PIC16F877A
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 PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC,
PORTD và PORTE.
a). PORTA
PORTA (RPA)bao gồm 6 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 mo6t 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

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
19
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

của mo6t 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 ).
Sơ đồ khối chân RA3:RA0 và chân RA5 và của chân RA4/TOCKI cổng PORTA:

Hình 5: Sơ đồ khối chân RA3 : RA0 của port A

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
20
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 6: Sơ đồ khối chân RA5 của PORTA

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
21
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 7: Sơ đồ khối chân RA4/TOCKI của PORTA

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.
Sơ đồ khối của chân RB3 đến RB0,chân RB7 đến RB4 của cổng B:

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
22
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 8: Sơ đồ khối chân RB3 đến RB0 của PORTB

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
23
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 8: Sơ đồ khối chân RB7 đến RB4 của PORTB

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.
Sơ đồ khối chân RC<0:2> Rc<5:7> và chân RC<3:4> cổng C

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
24
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 10: Sơ đồ khối chân RC<0,2>; RC<5,7> của PORTC

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
25
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 11: Sơ đồ khối chân RC<0,4> của PORTC

d). PORTD
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).
Sơ đồ khối cổng D:

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
26
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 12: Sơ đồ khối cổng PORTD

e). PORTE
PORTE gồm 3 chân I/O: RE0, RE1, RE2 ứng với các chân số 8, 9 và chân số 10.
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.
Sơ đồ khối cổng E

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
27
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 13: Sơ đồ khối cổng PORTE

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


Bộ vi điều khiển PIC16F877A 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 PIC16F877A. 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.

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
28
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 13: 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.

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
29
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 14: 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.

Hình 15: 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ố. PIC16F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0). Hiệu điện thế chuẩn VREF

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
30
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

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.
o IC 74138
I.Giới thiệu IC 74138
IC74138 là loại IC dùng giải mã/giải đa hợp (Decoder/demultiplexer) làm việc được ở
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
(Chip Select) của IC nhớ lưỡng cực.
II. Sơ đồ chân IC74HC138

Hình 16: Sơ đồ chân IC74HC138

III. Chức năng các chân IC74138


¾ VCC, GND: dùng cung cấp nguồn cho Ic hoạt động. VCC được nối đến cực dương của
nguồn (+5V), GND được nối đến cực âm của nguồn (0V).
¾ A0, A1, A2: các ngõ vào chọn trạng thái ngõ ra (có thể coi như đây là các đường địa
chỉ của IC 74138). Tổ hợp trạng thái logic của 3 ngõ vào này sẽ được 8 trạng thái logic
khác nhau ở 8 ngõ ra của IC (23=8).
¾ E1, E2, E3: ngõ vào điều khiển IC. IC chỉ được phép hoạt động bình thường khi cả 3
chân này đều ở múc logic cho phép (cụ thể là E1, E2 ở mức logic thấp (0V) và E3 ở
mức logic cao (+5V). Khi một trong 3 chân này ở mức logic không phù hợp thì IC sẽ bị
cấm ngay lập tức ( tất cả các ngõ ra đều ở mức logic cao) bất chấp trạng thái các ngõ
vào còn lại.
¾ O0 đđến O7: các ngõ ra của IC. Tuỳ thuộc vào trạng thái của các đường địa chỉ ta có
trạng thái ở ngõ ra tương ứng. Khi IC đang hoạt động bình thường ( cả 3 chân điều
khiển đều ở mức logic cho phép ) thì tại một thời điểm nhất điểm nhất định chỉ có một
ngõ ra duy nhất ở mức logic thấp tất cả các ngõ còn lại đều ở mức logic cao.
IV. Sơ đồ cấu tạo IC 74138

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
31
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 17: Sơ đồ cấu tạo IC74HC138

V. Bảng sự thật của IC 74138


INPUT OUTPUT
E1 E2 E3 A0 A1 A2 O0 O1 O2 O3 O4 O5 O6 O7
H X X X X X H H H H H H H H
X H X X X X H H H H H H H H
X X L X X X H H H H H H H H
L L H L L L L H H H H H H H
L L H H L L H L H H H H H H
L L H L H L H H L H H H H H
L L H H H L H H H L H H H H
L L H L L H H H H H L H H H
L L H H L H H H H H H L H H
L L H L H H H H H H H H L H
L L H H H H H H H H H H H L

VI. Nguyên tắc hoạt động của IC 74138


Dựa vào bảng trạng thái ta thấy: chỉ cần một trong 3 chân cho phép (E1, E2, E3) ở
trạng thái cấm thì tất cả các ngõ ra của IC 74138 đều ở mức logic cao bất chấp trạng thái các
chân địa chỉ (A0, A1, A2). Chẳng hạn khi chân E1 ở mức logic cao thì tất cả các ngõ ra của IC
74138 đều ở mức logic cao, bất chấp trạng thái các chân cò lại: E2, E3, A0, A1, A2.

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
32
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Ta nhận thấy khi cả 3 đường địa chỉ đều ở mức logic thấp 00h (với điều kiện là các ngõ vào
điều khiển đều phải ở mức logic thícch hợp để IC hoạt động ) thì chỉ có duy nhất một ngõ ra
O0 ở mức logic thấp, tất cả các ngõ ra còn lại đều ở mức logic cao.
Khi đđịa chỉ đưa vào IC tăng lên một (01h) thì mức logic thấp này được chuyển đến
ngõ ra thứ hai O1 và cũng như trên tất cả các ngõ ra còn lại đều ở mức logic cao.
Khi địa chỉ đưa vào IC là 08h thì mức logic thấp sẽ ở ngõ ra cuối cùng O7
Khi ñòa chæ ñöa vaøo IC laø 08h thì möùc logic thaáp seõ ôû ngoõ ra cuoái cuøng (O7).
Nhö vaäy, möùc logic thaáp ôû ngoõ ra seõ di chuyeån töông öùng vôùi ñòa chæ ñöa vaøo IC.
p LED MATRẬN
I. Hình dạng và cấu tạo của led ma trận.

Hình 18: 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ẽ :

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
33
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

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


II. 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 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.
q IC ULN2803
ULN2803 là IC đệm đảo có 9 chân trong đó có 8 ngõ vào và 8 ngõ ra, dưới đây là hình
dạng và cấu tạo bên trong của 2803:

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
34
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 20: IC đảo ULN2803 và sơ đồ cấu tạo

Bộ đệm đảo dung IC2803 nhằm đảo bít nếu ngõ vào ở mức cao qua 2803 ra sẽ là mức
thấp và ngược lại. ULN2803 chịu dựng mức điện áp từ 6V-15V hơn loai CMOS hay cả
PMOS.
r Dao động thạch anh

Hình 21: Dao động thạch anh


s Điện trở

Hình 22: Điện trở


t Tụ điện

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
35
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 23: Tụ điện.

_ Nút nhấn.

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
36
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

CHƯƠNG II
NGUYÊN TẮC HOẠT ĐỘNG CHUNG

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

Hình 24: Sơ đồ khối mạch hiển thị.


ª 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 78PIC16F877A 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.
ª 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ý:

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
37
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 25: Sơ đồ nguyên lý mạch dao động thạch anh.


ª 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: Sơ đồ nguyên lý bộ Reset


ª Khối xử lý trung tâm: là bộ vi điều khiển PIC16F877A 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ý.
Hình dạng vi điều khiển PIC16F877A:

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
38
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 27: Vi điều khiển PÍC6F877A


ªKhối giải mã: bao gồm hệ thống các IC 74138 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) thông qua các cổng đảo.
ª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ý.
II. Nguyên tắc hoạt động của đề tài
Nguyên tắc hoạt động của đề tài chủ yếu nói đến nguyên tắc hoạt động của led ma trận,
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 ý 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. Để 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 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
PIC16F877A.
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

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
39
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

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 28: 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:

Hình 29: 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

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
40
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

+ Đè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.
II.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 ma trận 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 dã 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.

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
41
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

Hình 30: 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.
III. Sơ đồ nguyên lý

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
42
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

CHƯƠNG III
CODE CỦA ĐỀ TÀI
#include <C:\Program Files\PICC\Devices\16F877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOWDT, HS, NOPUT, NOPROTECT,
NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
#device *=16 ADC= 8 //KHAI BAO CHUYEN DOI ADC
#use delay(clock=20000000)//KHAI BAO THACH ANH
#byte portb=0x06
#byte trisb=0x86
#byte portd=0x08
#byte trisd=0x88
#byte portc=0x07
#byte trisc=0x87
int8 mode;
Int8 ADC_delay ; //KHAI BAO BIEN
#INT_EXT //HAM NGAT RBO
void EXT_ISR() {
mode++;
if (mode==6) mode = 0;
}
int mangcot[]={
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47};//KHAI BAO MANG COT QUET
KY TU
char const manghang1[]={
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
0xD5,0xE3,0x80,0xE3,0xD5,//*
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xF7,0xF7,0xF7,0x80,255,//H
0x80,0xB6,0xB6,0xB6,0xBE,255,//E
0x80,0xBF,0xBF,0xBF,0xFF,255,//L
0x80,0xBF,0xBF,0xBF,0xFF,255,//L
0xC1,0xBE,0xBE,0xBE,0xC1,255,//O
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xE0,0xDF,0xBF,0xDF,0xE0,255,//V
0xFF,0xBE,0x80,0xBE,0xFF,255,//I
0x80,0xB6,0xB6,0xB6,0xBE,255,//E

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
43
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

0xFE,0xFE,0x80,0xFE,0xFE,255,//T
0x80,0xFD,0xFB,0xF7,0x80,255,//N
0x83,0xF5,0xF6,0xF5,0x83,255//A
0x80,0xFD,0xF3,0xFD,0x80,255//M
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE ///122
0x83,0xF5,0xF6,0xF5,0x83,255,//A
0xE0,0xDF,0xBF,0xDF,0xE0,255,//V
0xFF,0xBE,0x80,0xBE,0xFF,255,//I
0x83,0xF5,0xF6,0xF5,0x83,255,//A
0xFE,0xFE,0x80,0xFE,0xFE,255,//T
0xFF,0xBE,0x80,0xBE,0xFF,255,//I
0xC1,0xBE,0xBE,0xBE,0xC1,255,//O
0x80,0xFD,0xFB,0xF7,0x80,255,//N
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x83,0xF5,0xF6,0xF5,0x83,255,//A
0xC1,0xBE,0xBE,0xBE,0xDD,255,//C
0x83,0xF5,0xF6,0xF5,0x83,255,//A
0xBE,0x80,0xBE,0xBE,0xC1,255,//D
0x80,0xB6,0xB6,0xB6,0xBE,255,//E
0x80,0xFD,0xF3,0xFD,0x80,255//M
0xFC,0xFB,0x87,0xFB,0xFC,255,//Y
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xD5,0xE3,0x80,0xE3,0xD5,//*
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
};
char const manghang3[]={
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
0xD5,0xE3,0x80,0xE3,0xD5,//*
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xBE,0x80,0xBE,0xBE,0xC1,255,//D
0xC1,0xBE,0xBE,0xBE,0xC1,255,//O
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x83,0xF5,0xF6,0xF5,0x83,255,//A
0x80,0xFD,0xFB,0xF7,0x80,255,//N
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xFD,0xF3,0xFD,0x80,255//M
0xC1,0xBE,0xBE,0xBE,0xC1,255,//O
0x80,0xFD,0xFB,0xF7,0x80,255,//N
TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
44
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xF7,0xF7,0xF7,0x80,255,//H
0xC1,0xBE,0xBE,0xBE,0xC1,255,//O
0xC1,0xBE,0xBE,0xBE,0xDD,255,//C
0xFF,0xBD,0x80,0xBF,0xFF,255,//1
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
};//101
char const manghang4[]={
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
0xCD,0xB6,0x8E,0xBE,0xC1,//@
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xFD,0xFB,0xF7,0x80,255,//N
0xC1,0xBE,0xB6,0xB6,0xC5,255,//G
0xC0,0xBF,0xBF,0xBF,0xC0,255,//U
0xFC,0xFB,0x87,0xFB,0xFC,255,//Y
0x80,0xB6,0xB6,0xB6,0xBE,255,//E
0x80,0xFD,0xFB,0xF7,0x80,255,//N
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xBF,0xBF,0xBF,0xFF,255,//L
0xC0,0xBF,0xBF,0xBF,0xC0,255,//U
0x83,0xF5,0xF6,0xF5,0x83,255,//A
0x80,0xFD,0xFB,0xF7,0x80,255,//N
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xF7,0xF7,0xC1,0xF7,0xF7,//+
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xFD,0xFB,0xF7,0x80,255,//N
0xC1,0xBE,0xB6,0xB6,0xC5,255,//G
0xC0,0xBF,0xBF,0xBF,0xC0,255,//U
0xFC,0xFB,0x87,0xFB,0xFC,255,//Y
0x80,0xB6,0xB6,0xB6,0xBE,255,//E
0x80,0xFD,0xFB,0xF7,0x80,255,//N
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xF7,0xEB,0xDD,0xBE,255,//K
0x80,0xF7,0xF7,0xF7,0x80,255,//H
0xC1,0xBE,0xBE,0xBE,0xC1,255,//O
0x83,0xF5,0xF6,0xF5,0x83,255,//A
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xBE,0x80,0xBE,0xBE,0xC1,255,//D
TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
45
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

0xE0,0xDF,0xBF,0xDF,0xE0,255,//V
0x80,0xF7,0xEB,0xDD,0xBE,255,//K
0xFF,0xBE,0x80,0xBE,0xFF,255,//I
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xCD,0xB6,0x8E,0xBE,0xC1,//@
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
};//104
char const manghang5[]={
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,//8
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
0xDB,0xD5,0x80,0xD5,0xED,255,//$
0xDB,0xD5,0x80,0xD5,0xED,255,//$
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xF7,0xF7,0xF7,0x80,255,//H
0x83,0xF5,0xF6,0xF5,0x83,255,//A
0x80,0xF6,0xF6,0xF6,0xF9,255,//P
0x80,0xF6,0xF6,0xF6,0xF9,255,//P
0xFC,0xFB,0x87,0xFB,0xFC,255,//Y
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xFD,0xFB,0xF7,0x80,255,//N
0x80,0xB6,0xB6,0xB6,0xBE,255,//E
0xC0,0xBF,0xCF,0xBF,0xC0,255,//W
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xFC,0xFB,0x87,0xFB,0xFC,255,//Y
0x80,0xB6,0xB6,0xB6,0xBE,255,//E
0x83,0xF5,0xF6,0xF5,0x83,255,//A
0x80,0xF6,0xE6,0xD6,0xB9,255,//R
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x8D,0xB6,0xB6,0xB6,0xB9,255,//2
0xC1,0xAE,0xB6,0xBA,0xC1,255,//0
0xFF,0xBD,0x80,0xBF,0xFF,255,//1
0xC1,0xAE,0xB6,0xBA,0xC1,255,//0
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255
};//80
char const manghang6[]={255,255,255,255,255,255,255,255,
TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
46
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
0xEB,0x80,0xEB,0x80,0xEB,//#
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xC0,0xBF,0xCF,0xBF,0xC0,255,//W
0x80,0xB6,0xB6,0xB6,0xBE,255,//E
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xBF,0xBF,0xBF,0xFF,255,//L
0xC1,0xBE,0xBE,0xBE,0xC1,255,//O
0xE0,0xDF,0xBF,0xDF,0xE0,255,//V
0x80,0xB6,0xB6,0xB6,0xBE,255,//E
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xE0,0xDF,0xBF,0xDF,0xE0,255,//V
0x83,0xF5,0xF6,0xF5,0x83,255,//A
0x83,0xF5,0xF6,0xF5,0x83,255,//A
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0x80,0xF6,0xF6,0xFE,0xFE,255//F
0xC1,0xBE,0xBE,0xBE,0xC1,255,//O
0x80,0xB6,0xB6,0xB6,0xBE,255,//E
0xE0,0xDF,0xBF,0xDF,0xE0,255,//V
0x80,0xB6,0xB6,0xB6,0xBE,255,//E
0x80,0xF6,0xE6,0xD6,0xB9,255,//R
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE
0xEB,0x80,0xEB,0x80,0xEB,//#
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255
};
int a,b;
int e,f;
int g,h;
int i,k;
INT L,M;//KHAI BAO BIEN
int w=3000;
void program0();//KHAI BAO CHUONG TRINH CON 0
void program1();//KHAI BAO CHUONG TRINH CON 1
void program2();//KHAI BAO CHUONG TRINH CON 2
void program3();//KHAI BAO CHUONG TRINH CON 3
void program4();//KHAI BAO CHUONG TRINH CON 4
void program5();//KHAI BAO CHUONG TRINH CON 5
void main(){ //CHUONG TRINH CHINH
setup_adc_ports(AN0_AN1_AN3); //KHOI DONG ADC
TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
47
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

setup_adc(adc_clock_internal);
set_adc_channel ( 0 );
ADC_delay = read_adc ( ) ;
trisb=255;
trisd=0;
trisc=0;
enable_interrupts(int_EXT);//CHO PHEP NGAT HOAT DONG.
ext_int_edge(H_TO_L); //XUNG KICH NGAT TU 1 XUONG 0 (HIGH TO LOW)
enable_interrupts(GLOBAL);//CHO PHEP NGAT TOAN CUC
mode = 0;
while (true) {
switch(mode) {
case 0: program0(); break;
case 1: program1(); break;
case 2: program2(); break;
case 3: program3(); break;
case 4: program4(); break;
case 5: program5(); break;
}}}
void program0()//BAT DAU CHUONG TRINH CON 0
{
for(a=0;a<238;a++)
{
for(b=0;b<40;b++)
{
portc=mangcot[b];
portd=manghang1[b+a];
delay_us(50);
portc=0;
portd=255;
}
delay_us(w);
}
for(e=0;e<132;e++)
{
for(f=0;f<40;f++)
{
portc=mangcot[f];
portd=manghang3[f+e];
delay_us(50);
portc=0;
portd=255;
}
delay_us(w);
}
for(g=0;g<235;g++)
TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
48
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

{
for(h=0;h<40;h++)
{
portc=mangcot[h];
portd=manghang4[h+g];
delay_us(50);
portc=0;
portd=255;
}
delay_us(w);
}
for(i=0;i<168;i++)
{
for(k=0;k<40;k++)
{
portc=mangcot[k];
portd=manghang5[k+i];
delay_us(50);
portc=0;
portd=255;
}
delay_us(w);
}
for(l=0;l<160;l++)
{
for(m=0;m<40;m++)
{
portc=mangcot[m];
portd=manghang6[m+l];
delay_us(50);
portc=0;
portd=255;
}
delay_us(w);
}
} //KET THUC CHUONG TRINH CON 0

void program1() //BAT DAU CHUONG TRINH CON 1


{
portc=0;
portd=255;
for(a=0;a<238;a++)
{
for(b=0;b<40;b++)
TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
49
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

{
portc=mangcot[b];
portd=manghang1[b+a];
delay_us(50);
portb=0;
portd=255;
}
delay_us(w);
}
} //KET THUC CHUONG TRINH CON 1

void program2() //BAT DAU CHUONG TRINH CON 2


{
portc=0;
portd=255;
for(e=0;e<132;e++)
{
for(f=0;f<40;f++)
{
portc=mangcot[f];
portd=manghang3[f+e];
delay_us(50);
portc=0;
portd=255;
}
delay_us(w);
}
} //KET THUC CHUONG TRINH CON 2

void program3() //BAT DAU CHUONG TRINH CON 3


{
portc=0;
portd=255;
for(g=0;g<184;g++)
{
for(h=0;h<40;h++)
{
portc=mangcot[h];
portd=manghang4[h+g];
delay_us(50);
portc=0;
portd=255;
}
TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
50
HỌC VIỆN HÀNG KHÔNG VIỆT NAM ĐỒ ÁN MÔN HỌC 1

delay_us(w);
}
} //KET THUC CHUONG TRINH CON 3
void program4() //BAT DAU CHUONG TRINH CON 4
{
portc=0;
portd=255;
for(i=0;i<168;i++)
{
for(k=0;k<40;k++)
{
portc=mangcot[k];
portd=manghang5[k+i];
delay_us(50);
portc=0;
portd=255;
}
delay_us(w);
}
} //KET THUC CHUONG TRINH CON 4
void program5() //BAT DAU CHUONG TRINH CON 5
{
portc=0;
portd=255;
for(l=0;L<160;L++)
{
for(m=0;M<40;M++)
{
portc=mangcot[M];
portd=manghang6[M+l];
delay_us(50);
portc=0;
portd=255;
}
delay_us(w);
}
} //KET THUC CHUONG TRINH CON 5

TH: NGUYỄN NGỌC LUÂN GVHD: Thầy NGUYỄN ĐỨC NGỌC HOÀNG
NGUYỄN TRẦN ANH KHOA http://www.ebook.edu.vn
51

You might also like