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

đồ án môn học 1 thiết kế mạch quang báo dùng vi điều khiển

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

§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐIỆN-ĐIỆN TỬ
ĐỒ ÁN MÔN HỌC1
THIẾT KẾ MẠCH QUANG BÁO
DÙNG VI ĐIỀU KHIỂN
GVHD : ĐẬU TRỌNG HIỂN
SVTH : LÊ XUÂN TÌNH 06119047
LƯƠNG CÔNG DANH 0611903
TP Hồ Chí Minh Ngày 17 Tháng 7 Năm 2009
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
1
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
MỤC LỤC
Lời nói đầu……………………………………………………… ……2
Chương 1 GIỚI THIỆU 89C51…………………………….…… 4
Chương 2-GIỚI THIỆU MẠCH QUANG BÁO…………………15
I.Tổng quan
II.Chức năng từng khối
Chương 3 MẠCH QUANG BÁO DÙNG
VI ĐIỀU KHIỂN 89C51…………………………………18
I.Nguyên lý làm việc của mạch quang báo
I.1Giới thiệu bảng đèn quang báo
I.2 Nguyên tắc làm sáng đèn LED 8x8
I.3 Nguyên tắc quét bảng ma trận LED
I.4 Phương pháp tạo hiệu ứng chử chạy
II. Sơ đồ nguyên lý
III. Linh kiện sử dụng trong mạch
IV. Lưu đồ giải thuật


V. Mã nguồn chương trình
Chương 4 – GIỚI THIỆU CÁC LINH KIỆN ………… …24
I. IC 74HC595
II. IC ULN 2803
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
2
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
III. Transistor A1015
Chương 5 –THI CÔNG MẠCH QUANG BÁO…………… …29
I.Sơ đồ mạch in
II.Ưu điểm và khuyết điểm của mạch trên
III. HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
LỜI NÓI ĐẦU
Ngày nay, cùng với sự phát triển của khoa học kỹ thuật, nhất là trong lĩnh vực
Điện tử - Tin học - Viễn thông, việc đưa thông tin quảng cáo đến với người tiêu dùng,
đến với xó hội trở nên dễ dàng và nhanh chóng. Thông qua nhiều hình thức quảng cáo
khác nhau mà các doanh nghiệp giới thiệu sản phẩm của mình đến mọi người.
Trong nhiều hình thức đa dạng của Thông tin quảng cáo như: báo, đài, tivi, tờ
rơi, áp phích. thì việc dùng Bảng thông tin điện tử là một cách đơn giản và hiệu quả để
quảng cáo. Chúng ta bắt gặp rất nhiều bảng thông tin như vậy trong thực tế. Khi đi
vào một hiệu sách, bạn có thể biết được hiệu sách đó bán loại sách gì, giá cả ra sao là
nhờ vào bảng đèn quang báo rất bắt mắt trước cửa hiệu. Hoặc khi vào sân bay, bạn
biết được giờ giấc các chuyến bay, các thông báo ngắn của phi trường, cũng là nhờ
vào quang báo. Và khi đi trên đường phố lúc về đêm, bạn sẽ bắt gặp cùng với ánh đèn
màu là rất nhiều các bảng quang báo lớn với các hình ảnh sinh động nhưly bia Tiger
đang trào bọt, hay các hình ảnh, logo hiện lên với đủ kiểu (từ trên xuống, từ trái sang).
Qua đó ta thấy rằng, bảng thông tin điện tử đã được ứng dụng rộng rãi trong
nhiều lĩnh vực khác nhau như: giới thiệu sản phẩm, thông báo tin tức, làm biển hiệu
Với ứng dụng rộng rãi như vậy, việc tìm hiểu và thiết kế một bảng thông tin như vậy

đã thôi thúc em thực hiện đề tài “thiết kế mạch quang báo dùng Vi Điều Khiển”
Giới hạn đề tài
Như đã giới thiệu, bảng thông tin điên tử có thể hiển thị được các hình ảnh cử
động, chứ không chỉ gúi gọn trong việc hiển thị chữ. Tuy nhiên, do điều kiện và thời
gian có hạn nên đề tài chỉ giới hạn ở việc hiển thị chữ chạy.
************************************************************************************
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
3
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
Chương 1
Vi Điều Khiển 8 bit 89C51
I. IC XỬ LÝ TRUNG TÂM 89C51:
1.Sơ đồ chân 89C51:
89c51 là IC vi điều khiển (Microcontroller) do hãng Atmel sản xuất. IC này có đặc
điểm như sau:
• 4k byte ROM,128 byte RAM nội.
• 4 Port I/O 8 bit.
• 2 bộ đếm/ định thời 16 bit.
• Giao tiếp truyền dữ liệu nối tiếp.
• 64k byte bộ nhớ bên ngoài dung để lưu chương trình điều khiển.
• 64k byte bộ nhớ bên ngoài dung để lưu dữ liệu.
• 210 bit có thể truy xuất từng bit
• Có các lệnh xử lý bit.
Sơ lược về các chân của 89C51:
Hình 2-1. Sơ đồ chân 89C51
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
4
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================

Chức năng của các chân 89C51:
Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7). Port 0 có 2 chức năng: trong các thiết kế
cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đối với thiết kế lớn
có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu.
Port 1: từ chân 1 đến chân 8 (P1.0 _ P1.7). Port 1 chỉ có chức năng dung làm các đường
điều khiển xuất nhập IO
Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7). Nếu không dùng bộ nhớ mở rộng bên
ngoài thì port 2 dùng làm các đường điều khiển IO.Nếu dung bộ nhớ mở rộng bên ngoài thì
port 2 có chức năng là bus địa chỉ cao A0 – A15.
Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có 2 chức năng.Các chân
port này có nhiều chức năng , các công dụng chuyển đổi có liên hệ đặc biệt của 89C51 như ở
bảng sau:
PSEN (Program store enable):
PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình mở
rộng thường được nối đến chân OE\ của Eprom cho phép đọc các byte mã lệnh.
PSEN ở mức thấp trong thời gian 89C51 lấy lệnh. Các mã lệnh của chương trình được
đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong 89C51 để giải mã
lệnh. Khi 89C51 thi hành chương trình trong EPROM nội PSEN ở mức logic 1.
ALE (Address Latch Enable):
Khi 89C51 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và dữ liệu
(AD7 – AD0) do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30
dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng
với IC chốt.
Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp
nên chốt địa chỉ hoàn toàn tự động.
EA\ (External Access):
Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0.
Nếu ở mức 1 thì vi điều khiển thi hành chương trình từ bộ nhớ nội.
Nếu ở mức 0 thì vi điều khiển thi hành chương trình từ bộ nhớ ngoại.
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử

5
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
RST (Reset):
Ngõ vào chân 9 là ngõ vào Reset.Khi cấp điện cho hệ thống hoặc nhấn nút reset thì
mạch sẽ reset vi điều khiển.Khi reset thì tín hiệu reset phải ở mức cao ít nhất 2 chu kì máy.
Các ngõ vào bộ dao động Xtal1, Xtal2:
Bộ tạo dao động được tích hợp bên trong 89C51. Khi sử dụng 89C51, người ta chỉ cần
nối thêm tụ thạch anh và các tụ. Tần số tụ thạch anh thường là 12 Mh – 24 Mh.

2. Cấu trúc bên trong của 89C51
B1. Sơ đồ khối bên trong 89C51:
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
6
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
Hình 2-3. Cấu trúc bên trong của vi điều khiển

Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
7
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
B2. Tổ chức bộ nhớ.
Hình 2-4. Bảng tóm tắt các vùng nhớ 89C51
RAM bên trong 89C51 được phân chia như sau:
Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
 RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH
 RAM đa dụng từ 30H đến 7FH.
 Các thanh ghi chức năng từ 80H đến FFH.
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử

8
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiĨn
===========================================================================
Hình 2-5. Cấu trúc bộ nhớ Ram bên trong vi điều khiển
- Bộ nhớ trong 89C51 bao gồm ROM và RAM. RAM trong 89C51 bao gồm nhiều thành
phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và các
thanh ghi chức năng đặc biệt.
- 89C51 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho chương
trình và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong 8951 nhưng 8951 vẫn có thể
kết nối với 64K byte bộ nhớ chương trình và 64K byte dữ liệu.
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
9
7F 7E
7D 7C 7B 7A
79
78
2F
77
76 75 74 73 72 71 70
2E
6F
6E
6D 6C 6B 6A
69
68
2D
67 66 65 64 63 62 61 60
2C
5F
5E

5D 5C 5B 5A
59
58
2B
57
56 55 54 53 52 51 50
2A
4F 4E
4D 4C 4B 4A
49
48
29
47
46 45 44 43 42 41 40
28
3F 3E
3D 3C 3B 3A
39
38
27
37
36 35 34 33 32 31 30
26
2F 2E
2D 2C 2B 2A
29
28
25
27
26 25 24 23 22 21 20

24
1F 1E
1D 1C 1B 1A
19 18
23
17
16 15 14 13 12 11 10
22
0F
0E
0D 0C 0B 0A
09
08
21
07 06 05 04 03 02 07
1
00
20
Bank 3
1F
18
Bank 217
10
Bank 10F
08
Bank thanh ghi 0
(mặc đònh cho R0-R7)
07
00
RAM đa dụng

7F
30
RAM
Đòa chỉ bit
87 86 85 84 83 82 81 80
80
P0
không được đòa chỉ hóa bit
81
SP
không được đòa chỉ hóa bit
82
DPL
không được đòa chỉ hóa bit
83
DPH
không được đòa chỉ hóa bit
87
PCON
8F 8E
8D 8C 8B 8A
89 88
88
TCON
không được đòa chỉ hóa bit
89
TMOD
không được đòa chỉ hóa bit
8A
TL0

không được đòa chỉ hóa bit
8B
TL1
không được đòa chỉ hóa bit
8C
TH0
97 96 95 94 93 92 91 90
90
P1
9F 9E
9D 9C 9B 9A
99 98
98
SCON
không được đòa chỉ hóa bit
99
SBUF
A7 A6 A5 A4 A3 A2 A1 A0
A0
P2
AF – – A
C
A
B
A
A
A9 A8
A8
IE
– – – BC BB BA B9 B8

B8
IP
E7 E6 E5 E4 E3 E2 E1 E0
E0
ACC
D7 D6 D5 D4 D3 D2 – D0
D0
PSW
B7 B6 B5 B4 B3 B2 B1 B0
B0
P3
F7 F6 F5 F4 F3 F2 F1 F0
F0
B
CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT
Đòa chỉ bit
không được đòa chỉ hóa bit
8D
TH1
FF
Địa chỉ
byte
Địa chỉ
byte
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
Bộ nhớ bên trong 89C51 bao gồm ROM và RAM. RAM bao gồm nhiều thành phần: phần
lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi chức
năng đặc biệt.
89C51 có bộ nhớ theo cấu trúc Harvard: có những vùng nhớ riêng biệt cho chương trình

và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong 89C51 nhưng 89C51 vẫn có thể
kết nối với 64 k byte bộ nhớ chương trình và 64 k byte bộ nhớ dữ liệu mở rộng.
Ram bên trong 89C51 được phân chia như sau:
• Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
• Ram địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH.
• Ram đa dụng từ 30H đến 7FH.
• Các thanh ghi chức năng đặc biệt từ 80H đến FFH.
Ram đa dụng:
Vùng nhớ Ram đa dụng gồm có 80 byte địa chỉ từ 30H – 7FH .Vùng nhớ bank thanh
ghi 32 byte từ 00H – 1FH cũng có thể dung làm vùng nhớ Ram đa dụng. Mọi địa chỉ trong
vùng Ram đa dụng đều có thể truy xuất tự do dùng kiểu địa chỉ trực tiếp hoặc gián tiếp. Bộ
nhớ ngan xếp của vi điều khiển dùng bộ nhớ Ram nội nên dung lượng bộ nhớ ngăn xếp nhỏ
trong khi đó các bộ vi xử lý bên ngoài làm bộ nhớ ngăn xếp nên dung lượng tùy ý mở rộng.
Ram có thể truy xuất từng bit:
89C51 chứa 210 bit được địa chỉ hóa từng bit, trong đó 128 bit chứa ở các byte có địa
chỉ từ 20H đến 2FH, các bit còn lại chứa trong nhóm thanh ghi chức năng đặc biệt.
Ýtưởng truy xuất từng bit bằng phần mềm là một đặc tính mạnh của vi điều khiển nói
chung. Các bit có thể được đặt, xóa, and, or,… với 1 lệnh đơn. Ngoài ra các port cũng có thể
truy xuất được từng bít làm đơn giản phần mềm xuất nhập từng bit.
Các bank thanh ghi:
Bộ lệnh 89C51 hỗ trợ 8 thanh ghi có tên là R0 đến R7 và theo mặc định (sau khi reset
hệ thống), các thanh ghi nàyở các địa chỉ 00H đến 07H.
Đây là lệnh 1 byte dùng địa chỉ thanh ghi. Tuy nhiên có thể thi hành bằng lệnh 2 byte
dùng địa chỉ trực tiếp nằm trong byte thứ 2: MOV A, 05H.
Lệnh dùng các thanh ghi R0 đến R7 thì sẽ ngắn hơn và nhanh hơn nhiều so với lệnh
tương ứng dùng địa chỉ trực tiếp.
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
10
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================

Bank thanh ghi tích cực bằng cách thay đổi các bit trong từ trạng thái chương trình
(PSW). Giả sủ thanh ghi thứ 3 đang được truy xuất, lệnh sau đây sẽ di chuyển nội dung của
thanh ghi A vào ô nhớ ram có địa chỉ 18H:
MOV R0, A.
Các thanh ghi có chức năng đặc biệt:
89C51 có 21 thanh ghi chức năng đặc biệt (SFR: Special Funtion Register) ở vùng trên của
RAM nội từ địa chỉ 80H đến FFH.
Chú ý: tất cả 128 địa chỉ từ 80H đến FFH không được định nghĩa, chỉ có 21 thanh ghi chức
năng đặc biệt được định nghĩa sẵn các địa chỉ.
Các thanh ghi port xuất nhập:
Các port của 89C51 bao gồm port 0 ở địa chỉ 80H, port 1 ở địa chỉ 90H, port 2 ở địa chỉ
A0H, và port3 ở địa chỉ B0H. tất cả các port này đều có thể truy xuất từng bit nên rất thuận
tiện trong khả năng giao tiếp.
Các thanh ghi timer:
89C51 có chứa 2 bộ định thời/ đếm 16 bit được dùng cho việc định thời hoặc đếm sự
kiện. Timer 0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: byte cao). Timer 1 ở địa chỉ
8BH (TL1: byte thấp) và 8DH (TH1: byte cao). Việc khởi động timer được Set bởi Timer
Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển timer (TCON) ở địa chỉ 88H, chỉ có
TCON được địa chỉ hóa từng bit.
Các thanh ghi port nối tiếp:
89C51 chứa một port nối tiếp dành cho việc trao đổi thông tin với các thiết bị nối tiếp
như máy tính, modem hoặc giao tiếp nối tiếp với các IC khác. Một thanh ghi gọi là bộ đệm
dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả 2 dữ liệu truyền và dữ liệu nhận. Khi truyền
dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode vận hành khác nhau
được lập trình qua thanh ghi điều khiển port nối tiếp SCON ở địa chỉ 98H.
Các thanh ghi ngắt:
89C51 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bị cấm sau khi reset hệ
thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt (IE) ở địa chỉ A8H, cả 2
thanh ghi được địa chỉ hóa từng bit.
Thanh ghi điều khiển công suất:

Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
11
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
Thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa các bit điều khiển.
Tín hiệu Reset:
89C51 có ngõ vào reset RST tác động ở mức cao trong khoảng thời gian 2 chu kỳ, sau
đó xuống mức thấp để 89C51 bắt đầu làm việc. RST có thể kích bằng tay bằng một phím
nhấn thường mở, sơ đồ mạch reset như hình trên (hình a)
sau khi reset hệ thống được tóm tắt như sau:
Thanh ghi Nội dung
Đếm chương trình PC
Thanhghi tích lũy A
Thanh ghi B
Thanh ghi trạng thái
SP
DPTR
Port 0 đến Port 3
IP
IE
Các thanh ghi định thời
0000H
00H
00H
00H
07H
0000H
FFH
XXX0000 B
0XX00000 B

00H
Hoạt động thanh ghi TIMER
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
12
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
89C51 có hai timer 16 bit, mỗi timer có bốn cách làm việc. Người ta sử dụng các timer
để:
• Định khoảng thời gian.
• Đếm sự kiện.
• Tạo tốc độ baud cho port nối tiếp trong 89C51.
Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những khoảng
đều đặn và đặt cờ tràn timer. Cờ được dùng để đồng bộ hóa chương trình để thực hiện một
tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra các ngõra. Các ứng
dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa
hai sự kiện (ví dụ đo độ rộng xung ).
Truy xuất các timer của 89C51 dùng sáu thanh ghi chức năng đặc biệt cho trong bảng
sau:
SFR Mục Đích Địa chỉ Địa chỉ hóa từng bit
TCON Điều khiển Timer 88H Có
TMOD Chế độ Timer 89H Không
TL0 Byte thấp của Timer 0 90H Không
TL1 Byte thấp của Timer 1 91H Không
TH0 Byte cao của Timer 0 92H Không
TH1 Byte cao của Timer 1 93H Không
Các thanh ghi chức năng của timer trong 8031.
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
13
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================

Thanh ghi chế độ timer (TMOD):
Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho Timer 0, và
Timer 1.
Bit Tên Time
r
Mô tả
7 GATE 1 Bit mở cổng, khi lên 1 timer chỉ chạy khi INT1 ở mức
cao
6 C/T 1 Bit chọn chế độ Count/Timer
1 = bộ đếm sự kiện
0 = bộ định khoảng thời gian
5 M1 1 Bit 1 của chế độ mode
4 M0 1 Bit 0 của chế độ mode
3 GATE 0 Bit mở cổng, khi lên 1 timer chỉ chạy khi INT0 ở mức
cao
2 C/T 0 Bit chọn chế độ Count/Timer
1 M1 0 Bit 1 của chế độ mode
0 M0 0 Bit 0 của chế độ mode
Tóm tắt thanh ghi chức năng TMOD.
Thanh ghi điều khiển timer(TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho Timer 1, Timer 0.
Bit Ký hiệu Địa chỉ Mô tả
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
14
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
TCON.7 TF1 8FH Cờ báo tràn timer 1. Đặt bởi phần cứng khi tràn,
được xóa bởi phần mềm, hoặc phần cứng khi bộ
xử lý chỉ đến chương trình phục vụ ngắt.
TCON.6 TR1 8EH Bit điều khiển timer 1 chạy đặt xóa bằng phần

mềm để cho timer chạy ngưng.
TCON.5 TF0 8DH Cờ báo tràn Timer 0.
TCON.4 TR0 8CH Bit điều khiển Timer 0 chạy
TCON.3 IE1 8BH Cờ cạnh ngắt 1 bên ngoài. Đặt bởi phần cứng
khi phát hiện một cạnh xuống ở INT1 xóa bằng
phần mềm họăc phần cứng khi CPU chỉ đến
chương trình phục vụ ngắt.
TCON.2 IT1 8AH Cờ kiểu ngắt 1 bên ngoài. Đặt xóa bằng phần
mềm để ngắt ngoài tích cực cạnh xuống /mức
thấp.
TCON.1 IE0 89H Cờ cạnh ngắt 0 bên ngòai
TCON.0 IT0 88h Cờ kiểu ngắt 0 bên ngoài
Khởi động và truy xuất thanh ghi timer:
Thông thường các thanh ghi được khởi động một lần đầu ở chương trình để đặt ở chế
độ làm việc đúng. Sau đó, trong thân chương trình, các thanh ghi timer được cho chạy, dừng,
các bit được kiểm tra và xóa, các thanh ghi timer được đọc và cập nhật…. theo đòi hỏi các
ứng dụng.
TMOD là thanh ghi thứ nhất được khởi động vì nó đặt chế độ hoạt động. Ví dụ, các
lệnh sau khởi động Timer 1 như timer 16 bit (chế độ 1) có xung nhịp từ bộ dao động tên chip
cho việc định khoảng thời gian:
MOV TMOD, #1B
Lệnh này sẽ đặt M1 = 1 và M0 = 0 cho chế độ 1, C/ T= 0 và GATE = 0 cho xung nhịp
nội và xóa các bit chế độ Timer 0. Dĩ nhiên, timer không thật sự bắt đầu định thời cho đến
khi bit điều khiển chạy TR1 được đặt lên 1.
Nếu cần số đếm ban đầu, các thanh ghi TL1/TH1 cũng phải được khởi động. Một
khoảng 100s có thể được khởi động bằng cách khởi động giá trị cho TH1/TL1 là FF9CH:
MOV TL1, #9CH
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
15
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn

===========================================================================
MOV TH1, #0FFH
Rồi timer được cho chạy bằng cách đặt bit điều khiển chạy như sau:
SETB TR1
Cờ báo tràn được tự động đặt lên 1 sau 100s. Phần mềm có thể đợi trong 100 s bằng
cách dùng lệnh rẽ nhánh có điều kiện nhảy đến chính nó trong khi cờ báo tràn chưa được đặt
lên 1:
WAIT: JNB TF1, WAIT
Khi timer tràn, cần dừng timer và xóa cờ báo tràn trong phần mềm:
CLR TR1
CLR TF1
Ngắt ( INTERRUPT)
Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời
chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác.
Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều
khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết sự kiện
đó trong khi một chương trình khác đang thực thi.
Tổ chức ngắt của 89C51:
Có 5 nguồn ngắt ở 89C51: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port nối tiếp. Tất cả
các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được cho phép từng cái một
bằng phần mềm.
Khi có hai hoặc nhiều ngắt đồng thời, hoặc một ngắt xảy ra khi một ngắt khác đang
được phục vụ, có cả hai sự tuần tự hỏi vòng và sơ đồ ưu tiên hai mức dùng để xác định việc
thực hiện các ngắt. Việc hỏi vòng tuần tự thì cố định nhưng ưu tiên ngắt thì có thể lập trình
được.
Cho phép và cấm ngắt :
Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặt biệt có
định địa chỉ bit IE ( Interrupt Enable : cho phép ngắt ) ở địa chỉ A8H.
Bit Ký hiệu Địa chỉ bit Mô tả
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử

16
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
IE.7 EA AFH Cho phép / Cấm toàn bộ
IE.6 _ AEH Không được mô tả
IE.5 ET2 ADH Cho phép ngắt từ Timer 2
(8052)
IE.4 ES ACH Cho phép ngắt port nối tiếp
IE.3 ET1 ABH Cho phép ngắt từ Timer 1
IE.2 EX1 AAH Cho phép ngắt ngoài 1
IE.1 ET0 A9H Cho phép ngắt từ Timer 0
IE.0 EX0 A8H Cho phép ngắt ngoài 0
Tóm tắt thanh ghi IE
Các cờ ngắt :
Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại cờ đó được đặt lên một để
xác nhận ngắt.
Ngắt Cờ Thanh ghi SFR và vị trí bit
Bên ngoài 0 IE0 TCON.1
Bên ngoài 1 IE1 TCON.3
Timer 1 TF1 TCON.7
Timer 0 TF0 TCON.5
Port nối tiếp TI SCON.1
Port nối tiếp RI SCON.0
Các lọai cờ ngắt
Các vectơ ngắt :
Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi là vector ngắt. Nó là địa chỉ bắt
đầu của ISR cho nguồn tạo ngắt, các vector ngắt được cho ở bảng sau
Ngắt Cờ Địa chỉ vector
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
17

§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
Reset hệ thống RST 0000H
Bên ngoài 0 IE0 0003H
Timer 0 TF0 000BH
Bên ngoài 1 IE1 0013H
Timer 1 TF1 001BH
Port nối tiếp TI và RI 0023H
Timer 2 002BH
Vector reset hệ thống (RST ở địa chỉ 0000H) được để trong bảng này vì theo nghĩa này,
nó giống ngắt : nó ngắt chương trình chính và nạp cho PC giá trị mới.
************************************************************************************
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
18
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
CHƯƠNG 2
GIỚI THIỆU MẠCH QUANG BÁO
I. Tổng quan
Để thiết kế một mạch quang báo thì có nhiều phương án để lựa chọn như: dùng
EEPROM, dùng máy tính điều khiển trực tiếp, dùng vi xử lý, vi điều khiển.
Khi sử dụng EEPROM để lưu trữ thông tin hiển thị kết hợp với các IC giải đa hợp
(Demultiplexer) để điều khiển qua trình hiển thị trên màn hình. ưu điểm của EEPROM là
thông tin không bị mất khi không có nguồn cấp và khi muốn thay đổi nội dung bản tin ta chỉ
việc lập trình lại cho EEPROM (thay đổi phần mềm). Việc thay đôi như vậy xem ra có vẻ
đơn giản, nhưng ta cần có mạch nạp và phần mềm điều khiển. Việc tháo lắp nhiều sẽ dẫn đến
hỏng hóc không đáng có.
Khi vi xử lý được sử dụng trong mạch thì mạch sẽ có thêm nhiều tính năng hơn
nhưng giá thành cho một sản phẩm cũng vì thế mà tăng lên. Một mạch vi xử lý cần có thêm
EEPROM(để lưu chương trình điều khiển), RAM và các IC giao tiếp ngoại vi khác(8255,

74373…). Một kít vi xử lý như vậy sẽ đem lại cho bảng thông tin những tính năng như:
việc cập nhật nội dung hiển thị sẽ dễ dàng hơn(không cần tháo IC ra) bằng các nhập chương
trình mới vào RAM, các hiệu ứng đặc biệt về màu sắc cũng được thực hiện dễ dàng. Tuy
nhiên như đã nói ở trên, do vấn đề giá thành cao nên phương án này không được chọn.
Dùng máy tính để điều khiển bảng tin cũng là một phương án. Nhưng do kích thước
máy tính lớn chiếm nhiều diện tích, lại đắt tiền nên ta không sử dụng.
Phương án được lựa chọn là dùng Vi Điều Khiển. Vì sao lại chọn Vi Điều Khiển?
Thứ nhất: Ngày nay Vi Điều Khiển được sử dụng rộng rãi trong các ứng dụng
hướng điều khiển do kích thước gọn, khả năng tích hợp cao nhiều tính năng trong một con
Vi Điều Khiển khiến cho mạch điện tử trở nên đơn giản hơn nhiều.
Thứ hai: Giá thành của Vi Điều Khiển không quá đắt như Vi xử lý. Trên thế giới
hiện có rất nhiều nhà sản xuất Vi Điều Khiển (ATMEL, ZILOG, MicroChip, Motorola,
Cypress…). Sự cạnh tranh của các nhà sản xuất về giá thành và khả năng tích hợp đem lại
lợi ích cho người sử dụng.
Thứ ba: Vi Điều Khiển được coi như một “small computer” hay System On Chip
(SoC). Bên trong vi điều khiển bao gồm CPU, ROM , RAM, EEPOM, các giao tiếp ngoại vi,
các khối số học và tương tự (ADC,DAC, op-amp, bộ so sánh…) tuỳ theo từng loại.
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
19
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
Tại Viêt Nam, thị trường Vi Điều Khiển khá sôi động. Chỉ cần vào một của hàng điện
tử bất kỳ ta đều có thể mua được một con Vi Điều Khiển ưng ý. Về công cụ phát triển cho Vi
Điều Khiển ta có thể tìm thấy rất nhiều trên mạng Internet, trên các diễn đàn về điện tử trong
và ngoài nước, hầu hết đều là các tiện ích miễn phí dành cho người sử dụng …
Sau một thời gian nghiên cứu về Vi Điều Khiển, mà cụ thể là dòng Vi Điều Khiển,
em quyết định chọn Vi Điều Khiển 89C51 để thực hiện đề tài “thiết kế mạch quang báo dùng
Vi Điều Khiển ”.
II.CHỨC NĂNG TỪNG KHỐI TRONG MẠCH
QUANG BÁO

Sơ đồ khối mạch quang báo
• KHỐI DAO ĐỘNG: tạo xung nhịp dao động cho Vi Điều Khiển. Sử dụng thạch anh
tần số 12MHz .
• KHỐI GIẢI MÃ ĐỊA CHỈ CỘT :
Nhận tín hiệu từ Vi Điều Khiển, từ đó đưa ra tín hiệu cho phép cột LED nào trên
bảng đèn (ma trận LED) được phép sáng. Tại mỗi thời điểm chỉ có một cột LED được
phép sáng.Tín hiệu sau đó được đưa qua bộ đệm dòng cho cột. IC được sử dụng cho
bộ giải mã cột là 74HC595 - Ghi dịch 8 bit vào nối tiếp ra song song
• KHỐI GIẢI MÃ HÀNG VÀ CHỐT DỮ LIỆU RA HÀNG:
Nhận tín hiệu từ Vi Điều Khiển. Dử liệu sau đó được đưa qua bộ đệm dòng cho
hàng sử dụng 8 con Transistor A1015 để phun dũng ra hàng
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
20
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
• KHỐI CÁC BỘ ĐỆM DềNG CHO CỘT VÀ HÀNG :
Được sử dụng đề đảm bảo độ sáng của các LED trân màn hình là đồng đều khi chỉ
1 LED sáng hay cả 8 LED của một cột đều sáng. Sử dụng transistor(A1015) và các IC
đệm chuyên dụng(ULN2803).
ĐỆM DềNG CHO HÀNG:
-Để tớnh dũng điện cho IC đệm dũng hàng thỡ bạn phải xem độ dài quang bỏo của
bạn là bao nhiờu, trờn một hàng cú bao nhiờu con Led.
VD: Trờn của bạn đang là 8x32 có 32 Led nằm trờn một hàng, giả sử tại một thời
điểm nào đó cả 32 Led này đều sỏng, mỗi Led coi là 20mA, như vậy ta cần một
dũng điện ra hàng >= 32*20mA = 640mA. (Cho một hàng)
Bộ đệm dũng này cũn cú thể gọi là bộ phun dũng.
ĐỆM DềNG CHO CỘT:
- Để tớnh dũng điện cột thỡ bạn phải xem là quang bỏo của bạn rộng bao nhiờu,
trờn một cột cú bao nhiờu Led.
VD: Của bạn đang có 8 Led trên một cột như vậy dũng tối đa của 1cột là 8*20mA

= 160mA. Bộ đệm dũng của cột phải > = 160mA. Bộ này cũn cú thể gọi là bộ hỳt
dũng.
• KHỐI ĐIỀU KHIỂN TRUNG TÂM (89C51):
Gồm vi điều khiển cú nhiệm vụ xuất tớn hiệu điều khiển khối quột và khối cụng suất
để cung cấp sự điều khiển cho led ma trận
• KHỐI CẤP NGUỒN: có nhiệm vụ cấp đủ nguồn cho mạch điện nhưng bản thân nó
không bị quá dòng.
******************************************************************
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
21
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
CHƯƠNG 3
MẠCH QUANG BÁO DÙNG
VI ĐIỀU KHIỂN 89C51
I. Nguyªn lý lµm viÖc cña m¹ch quang b¸o
Mạch điện sử dụng Vi Điều Khiển nên về phần cứng khá đơn giản.
Khối điều khiển trung tâm sử dụng Vi Điều Khiển 89C51.
Khối giải mã dữ liệu hàng sử dụng 8 con transistor cú chức năng giống như cổng NOT.
Khối giải mã địa chỉ cột sử dụng IC 74HC595, đây là thanh ghi dịch 8-bit vào nối tiếp ra song song.
Ta sử dụng IC này nhằm mục đích tiết kiệm chân giaotiếp giữa IC giải mã với Vi Điều Khiển. Chân
DATA-IN (14) để đưa dữ liệu nối tiếpvào, chân CLK (11) đưa xung đồng hồ dịch bit, chân
LATCH(12) để chốt dữ liệu được gửi ra. 8 đầu ra được nối đến 8 cột của bảng LED thông qua mạch
đệm dòng.
Nguyên lý hoạt động: Chương trình phần mềm chứa trong Vi Điều Khiển làm
nhiệm vụ điều khiển chính mọi hoạt động của mạch. Chương trình phần mềm gồm có
nhiều chương trình con: chương trình hiển thị, chương trình cập nhật.
I.1 Giới thiệu về bảng LED ma trận
Trước khi đi vào nguyên lý hoạt động của mạch ta tìm hiểu qua về bảng ma trận LED
được sử dụng trong đề tài.

Bảng hiển thị ma trận LED (dot-matrix display) có rất nhiều loại và đủ kích cỡ to nhỏ
khác nhau, mỗi bảng gồm có rất nhiều LED đơn được ghép lại với nhau trong một khối.
Trong khối đó các LED đơn được sắp sếp theo các hàng và các cột, tại mỗi giao điểm của
hàng với cột là một LED đơn, và người ta thường phân biệt các loại bảng LED theo số hàng
và cột. Một bảng LED 5x7 tức là có 5 cột dọc và 7 hàng ngang, tổng cộng sẽ có 5x7=35
LED đơn được ghép lại. Cũng như vậy một bảng 8x8 là có 8 hàng và 8 cột, do 64 LED đơn
ghép lại. Và nhiều loại cỡ to hơn như 16x16 hay 32x32…
Trên thị trường ta thường thấy các bảng LED cỡ lớn, dài hàng mét với đủ kích cỡ.
Các bảng LED đó là do hàng nghìn LED đơn ghép lại. Khi thiết kế những bảng LED to như
vậy ta cần chú ý đến sự đồng đều về độ sáng của các LED để việc hiển thị được đồng đều.
Bên cạnh đó vấn đề cấp nguồn cho mạch cũng cần được chú ý và thiết kế cho phù hợp.
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
22
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
Trong đề tài này em sử dụng hai bảng LED 8x8 cho việc hiển thị, sử dụng ma trận 5x7 cho
việc hiển thị mỗi một ký tự.
Sau đây là sơ đồ ghép nối của hai loại bảng LED thông dụng là 5x7 và 8x8.
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
23
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
Bảng ma trận LED có hai loại, loại có các cột là các chân Anode, còn hàng là các
chân Cathode và loại kia thì ngược lại các cột là Cathode, hàng là Anode. Khi sử dụng LED
ta cần chú ý điều này để điều khiển cho đúng. Khi đóng vỏ, sự phân bố chân các hàng và cột
là không theo thứ tự (do tính phức tạp trong ghép nối), do đó ta cần tìm hiểu kỹ để mắc mạch
cho đúng.
Dưới đây là sơ đồ chân của bảng LED 8x8 được dùng trong đề tài.
• Các số gạch chân là hàng
• Các số không gạch chân là cột

Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
24
§å ¸n m«n m«n häc 1 GVHD: §Ëu Träng HiÓn
===========================================================================
I.2.
Nguyờn tắc làm sáng đèn trên bảng LED
Khi muốn làm sáng LED đơn, ta cần đưa điên áp dương vào chân Anode và
điện áp âm
vào chân Cathode với giá trị thích hợp, khi đó LED sáng. Giá trị điện áp
và dòng điện tuỳ
thuộc vào màu sắc từng loại LED. Dòng chảy qua các LED để đảm
bảo độ sáng bình thường là từ 10mA cho đến 25mA.
Khi ta muốn làm sáng một điểm trên bảng ma trận LED ta cũng làm tương tự. Xét
với bảng LED 5x7 dưới đây (H1.3).
Sinh viªn: Lª Xu©n T×nh _L¬ng C«ng Danh Khoa Điện_Điện tử
25

×