Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 83 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
83
Dung lượng
3,55 MB
Nội dung
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
MỞ ĐẦU
Cùng với sự phát triển đi lên các doanh nghiệp thuộc nhiều thành phần,
trong mọi lĩnh vực rất cần một chỗ đứng trên thị trường, đặc biệt là vấn đề
quảng bá sản phẩm của mình để tăng tính cạnh tranh. Trong đó một hình
thức đóng vai trò hết sức quan trọng cho sự thành công đối với doanh
nghiệp chính là nhờ vào quảng cáo.
Hiện nay có rất nhiều hình thức quảng cáo khác nhau như quảng cáo bằng
pha nô áp phic, biển kẻ vẽ, đề can… Một trong số những hình thức có hiệu
quả nhất và đang được sử dụng rộng rãi đó là thông tin quảng cáo bằng
bảng điện tử. Để làm được một bảng điện tử chúng ta có thể dùng vi xử lý,
dùng IC rời, dùng EPROM, dùng vi điều khiển, hay điều khiển bằng máy
tính... Trong Đồ án tốt nghiệp này em xin trình bày thiết kế Hệ Thống
Quảng Cáo sử dụng vi điều khiển AT89C51.
Trong quá trình học tập ở trường và đặc biệt thời gian thiết kế Đồ án tốt
nghiệp. Đây là dịp có điều kiện tốt nhất để em có thể tìm hiểu về vi điều
khiển AT89C51 cũng như họ vi điều khiển 8051. Được sự hướng dẫn và
đặc biệt quan tâm của thầy Phạm Mạnh Hùng do đó mà em đã chọn đề tài
thiết kế Hệ Thống Quảng Cáo.
Hoµng Quang Lý
-1-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
CHƯƠNG I
TỔNG QUAN VỀ HỌ VI XỬ LÝ 8051
I. NHỮNG ĐẶC ĐIỂM CƠ BẢN HỌ VI XỬ LÝ 8051
1.Tóm tắt về lịch sử của 8051.
Vào năm 1981. Hãng Intel giới thiệu một số bộ vi điều khiển được
gọi là 8051. Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM trên
chíp, hai bộ định thời, một cổng nối tiếp và 4 cổng (đều rộng 8 bit) vào ra
tất cả được đặt trên một chíp. Lúc ấy nó được coi là một “hệ thống trên
chíp”. 8051 là một bộ xử lý 8 bit có nghĩa là CPU chỉ có thể làm việc với 8
bit dữ liệu tại một thời điểm. Dữ liệu lớn hơn 8 bit được chia ra thành các
dữ liệu 8 bit để cho xử lý. 8051 có tất cả 4 cổng vào - ra I/O mỗi cổng rộng
8 bit. Mặc dù 8051 có thể có một ROM trên chíp cực đại là 64 K byte,
nhưng các nhà sản xuất lúc đó đã cho xuất xưởng chỉ với 4K byte ROM
trên chíp 8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất
khác sản xuất và bán bất kỳ dạng biến thể nào của 8051 mà họ thích với
điều kiện họ phải để mã lại tương thích với 8051. Điều này dẫn đến sự ra
đời nhiều phiên bản của 8051 với các tốc độ khác nhau và dung lượng
ROM trên chíp khác nhau được bán bởi hơn nửa các nhà sản xuất. Điều
này quan trọng là mặc dù có nhiều biến thể khác nhau của 8051 về tốc độ
và dung lương nhớ ROM trên chíp, nhưng tất cả chúng đều tương thích với
8051 ban đầu về các lệnh. Điều này có nghĩa là nếu ta viết chương trình
của mình cho một phiên bản nào đó thì nó cũng sẽ chạy với mọi phiên bản
bất kỳ khác mà không phân biệt nó từ hãng sản xuất nào.
Hoµng Quang Lý
-2-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
2. Bộ ví điều khiển 8051
Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051. Hãng Intel
ký hiệu nó như là MCS51
Đặc tính
Số lượng
ROM trên chíp
RAM
4K byte
Bộ định thời
2
Các chân vào - ra
32
Cổng nối tiếp
1
Nguồn ngắt
6
128 byte
Bảng 1.1. Các đặc tính của 8051 đầu tiên
3. Sơ đồ khối chung của họ vi điều khiển 8051
Interrupt control : Điều khiển ngắt.
Other registers : Các thanh ghi khác.
128 Byte RAM : RAM 128 Byte.
Timer 2, 1 , 0 : Bộ định thời 2 , 1 , 0
CPU : Đơn vị điều khiển trung tâm.
Oscillator : Mạch dao động.
Bus control: Điều khiển Bus
I/O ports: Các ports vào/ ra
Serial port: port nối tiếp
Address/data : địa chỉ/ dữ liệu
Hoµng Quang Lý
-3-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
INT 1
INT 0
Timer 2 ( 8032,8052)
Timer 1
T 2 EX
Timer 0
Serial port
Interrupt
Control
128 Byte
RAM
(8032/8052)
Other
registers
ROM
0K - 8031/8032
4K - 8051
8K - 8052
128 Byte
RAM
Timer 2
(8032/8052)
T2
Timer 1
T1
Timer 0
T0
CPU
Oscillator
EA
RST
SERIAL
PORT
I/O Port
Bus control
ALE
PSEN
P0
P1
Address/Data
P2
P3
TXD RXD
Hình 1.1. Bố trí bên trong của sơ đồ khối 8051
II. THÀNH VIÊN HỌ VI XỬ LÝ 8051
1. Bộ vi điều khiển 8052:
Bộ vi điều khiển 8052 là một thành viên khác của họ 8051, 8052 có
tất cả các đặc tính chuẩn của 8051 ngoài ra nó có thêm 128 byte RAM và
một bộ định thời nữa. Hay nói cách khác là 8052 có 256 byte RAM 3 bộ
định thời. và có 8K byte ROM. trên chíp thay vì 4K byte như 8051.
Hoµng Quang Lý
-4-
Tæng quan Vi ®iÒu khiÓn hä 8051
Đặc tính
§å ¸n tèt nghiÖp
8051
8052
8031
ROM trên chíp
4K byte
8K byte
RAM
128 byte
256 byte
128 byte
Bộ định thời
2
3
2
Chân vào - ra
32
32
32
Cổng nối tiếp
1
1
1
Nguồn ngắt
6
8
6
Bảng 1.2. So sánh các đặc tính của các thành viên họ 8051.
Như nhìn thấy từ bảng 1.2 thì 8051 là tập con của 8052. Do vậy tất
cả mọi chương trình viết cho 8051 đều chạy trên 8052 nhưng điều ngược
lại là không đúng.
2. Bộ vi điều khiển 8031:
Một thành viên khác nữa của 8051 là chíp 8031. Chíp này thường
được coi như là 8051 không có ROM trên chíp vì nó có OK byte ROM trên
chíp. Để sử dụng chíp này ta phải bổ xung ROM ngoài cho nó. ROM ngoài
phải chứa chương trình mà 8031 sẽ nạp và thực hiện. So với 8051 mà
chương trình được chứa trong ROM trên chíp bị giới hạn bởi 4K byte, còn
ROM ngoài chứa chương trinh được gắn vào 8031 thì có thể lớn đến 64K
byte. Khi bổ xung cổng, như vậy chỉ còn lại 2 cổng để thao tác. Để giải
quyết vấn đề này ta có thể bổ xung cổng vào - ra cho 8031. Phối phép 8031
với bộ nhớ và cổng vào - ra chẳng hạn với chíp 8255. Ngoài ra còn có các
phiên bản khác nhau về tốc độ của 8031 từ các hãng sản xuất khác nhau.
3. Các bộ vi điều khiển 8051 từ các hãng khác nhau.
Mặc dù 8051 là thành viên phổi biến nhất của họ 8051 nhưng chúng
ta sẽ thấy nó trong kho linh kiện. Đó là do 8051 có dưới nhiều dạng kiểu
bộ nhớ khác nhau như UV - PROM, Flash và NV - RAM mà chúng đều có
Hoµng Quang Lý
-5-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
số đăng ký linh kiện khác nhau. Phiên bản UV-PROM của 8051 là 8751
Phiên bản Flash ROM được bán bởi nhiều hãng khác nhau chẳng hạn của
Atmel corp với tên gọi là AT89C51 còn phiên bản NV-RAM của 8051 do
Dalas Semi Conductor cung cấp thì được gọi là DS5000. Ngoài ra còn có
phiên bản OTP (khả trình một lần) của 8051 được sản xuất bởi rất nhiều
hãng.
3.1. Bộ vi điều khiển 8751
Chíp 8751 chỉ có 4K byte bộ nhớ UV-EPROM trên chíp. Để sử dụng
chíp này để phát triển yêu cầu truy cập đến một bộ đốt PROM cũng như bộ
xoá UV- EPROM để xoá nội dung của bộ nhớ UV-EPROM bên trong 8751
trước khi ta có thể lập trình lại nó. Do một thực tế là ROM trên chíp đối với
8751 là UV-EPROM nên cần phải mất 20 phút để xoá 8751 trước khi nó có
thể được lập trình trở lại. Điều này đã dẫn đến nhiều nhà sản xuất giới thiệu
các phiên bản FLASH ROM và UV-RAM của 8051. Ngoài ra còn có nhiều
phiên bản với các tốc độ khác nhau của 8751 từ nhiều hãng khác nhau.
3.2. Bộ vi điều khiển AT8951 từ Atmel Corporation.
Chíp 8051 phổ biến này có ROM trên chíp ở dạng bộ nhớ Flash.
Điều này là lý tưởng đối với những phát triển nhanh vì bộ nhớ Flash có thể
được xoá trong vài giây trong tương quan so với 20 phút hoặc hơn mà 8751
yêu cầu. Vì lý do này mà AT89C51 để phát triển một hệ thống dựa trên bộ
vi điều khiển yêu cầu một bộ đốt ROM mà có hỗ trợ bộ nhớ Flash. Tuy
nhiên lại không yêu cầu bộ xoá ROM. Lưu ý rằng trong bộ nhớ Flash ta
phải xoá toàn bộ nội dung của ROM nhằm để lập trình lại cho nó. Việc xoá
bộ nhớ Flash được thực hiện bởi chính bộ đốt PROM và đây chính là lý do
tại sao lại không cần đến bộ xoá. Để loại trừ nhu cầu đối với một bộ đốt
PROM hãng Atmel đang nghiên cứu một phiên bản của AT 89C51 có thể
được lập trình qua cổng truyền thông COM của máy tính IBM PC .
Số linh kiện
ROM
Hoµng Quang Lý
RAM
Chân I/O
-6-
Timer
Ngắt
Vcc
Đóng vỏ
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
AT89C51
4K
128
32
2
6
5V
40
AT89LV51
4K
128
32
2
6
3V
40
AT89C1051
1K
64
15
1
3
3V
20
AT89C2051
2K
128
15
2
6
3V
20
AT89C52
8K
256
32
3
8
5V
40
AT89LV52
8K
128
32
3
8
3V
40
Bảng 1.3: Các phiên bản của 8051 từ Atmel (Flash ROM).
Chữ C trong ký hiệu AT89C51 là CMOS.
Cũng có những phiên bản đóng vỏ và tốc độ khác nhau của những
sản phẩm trên đây. Xem bảng 1.4. Ví dụ để ý rằng chữ “C” đứng trước số
51 trong AT 89C51 -12PC là ký hiệu cho CMOS “12” ký hiệu cho 12
MHZ và “P” là kiểu đóng vỏ DIP và chữ “C” cuối cùng là ký hiệu cho
thương mại (ngược với chữ “M” là quân sự ). Thông thường AT89C51 12PC rất lý tưởng cho các dự án của học sinh, sinh viên.
Mã linh kiện
Tốc độ
Số chân
Đóng vỏ
Mục đích
AT89C51-12PC
42MHZ
40
DTP
Thương mại
Bảng 1.4: Các phiên bản 8051 với tốc độ khác nhau của Atmel
3.3. Bộ vi điều khiển DS5000 từ hãng Dallas Semiconductor.
Một phiên bản phổ biến khác nữa của 8051 là DS5000 của hãng
Dallas Semiconductor. Bộ nhớ ROM trên chíp của DS5000 ở dưới dạng
NV-RAM. Khả năng đọc/ ghi của nó cho phép chương trình được nạp vào
ROM trên chíp trong khi nó vẫn ở trong hệ thống (không cần phải lấy ra).
Điều này còn có thể được thực hiện thông qua cổng nối tiếp của máy tính
IBM PC. Việc nạp chương trình trong hệ thống (in-system) của DS5000
thông qua cổng nối tiếp của PC làm cho nó trở thành một hệ thống phát
triển tại chỗ lý tưởng. Một ưu việt của NV-RAM là khả năng thay đổi nội
dung của ROM theo từng byte tại một thời điểm. Điều này tương phản với
bộ nhớ Flash và EPROM mà bộ nhớ của chúng phải được xoá sạch trước
khi lập trình lại cho chúng.
Hoµng Quang Lý
-7-
Tæng quan Vi ®iÒu khiÓn hä 8051
Mã linh kiện
§å ¸n tèt nghiÖp
ROM
RAM
Chân I/O
Timer
Ngắt
Vcc Đóng vỏ
DS5000-8
8K
128
32
2
6
5V
40
DS5000-32
32K
128
32
2
6
5V
40
DS5000T-8
8K
128
32
2
6
5V
40
DS5000T-8
32K
128
32
2
6
5V
40
Bảng 1.5: Các phiên bản 8051 từ hãng Dallas Semiconductor.
Chữ “T” đứng sau 5000 là có đồng hồ thời gian thực.
Lưu ý rằng đồng hồ thời gian thực RTC là khác với bộ định thời
Timer. RTC tạo và giữ thời gian l phút giờ, ngày, tháng - năm kể cả khi tắt
nguồn.
Còn có nhiều phiên bản DS5000 với những tốc độ và kiểu đóng gói
khác nhau. Ví dụ DS5000-8-8 có 8K NV-RAM và tốc đọ 8MHZ. Thông
thường DS5000-8-12 hoặc DS5000T-8-12 là lý tưởng đối với các dự án
của sinh viên.
Mã linh kiện
NV- RAM
Tốc độ
DS5000-8-8
8K
8MHz
DS5000-8-12
8K
12MHz
DS5000-32-8
32K
8MHz
DS5000T-32-12
32K
8MHz (with RTC)
DS5000-32-12
32K
12MHz
DS5000-8-12
8K
12MHz (with RTC)
Bảng 1.6: Một số thành viên của họ 8051
3.4. Phiên bản OTP của 8051.
Các phiên bản OTP của 8051 là các chíp 8051 có thể lập trình được
một lần và được cung cấp từ nhiều hãng sản xuất khác nhau. Các phiên bản
Hoµng Quang Lý
-8-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Flash và NV-RAM thường được dùng để phát triển sản phẩm mẫu. Khi một
sản pohẩm được thiết kế và được hoàn thiện tuyệt đối thì phiên bản OTP
của 8051 được dùng để sản hàng loạt vì nó sẽ hơn rất nhiều theo giá thành
một đơn vị sản phẩm
3.5. Họ 8051 từ Hãng Philips
Một nhà sản xuất chính của họ 8051 khác nữa là Philips Corporation.
Thật vậy, hãng này có một dải lựa chọn rộng lớn cho các bộ vi điều khiển
họ 8051. Nhiều sản phẩm của hãng đã có kèm theo các đặc tính như các bộ
chuyển đổi ADC, DAC, cổng I/0 mở rộng và cả các phiên bản OTP và
Flash.
Hoµng Quang Lý
-9-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
CHƯƠNG II
GIỚI THIỆU VI ĐIỀU KHIỂN AT89C51
1. Sơ Đồ Khối Của Vi Điều Khiển AT89C51
P0.0 - P0.7
P2.0 - P2.7
PORT 0 DRIVE
PORT 0 DRIVE
Vcc
GND
RAM ADD
REGISTER
B
REGISTER
PORT 0
LATCH
RAM
PORT 2
LATCH
FLASH
STACK
POINTER
ACC
BUFFER
TMP1
TMP2
PROGRAM
ADDRESS
REGISTER
PC
INCREMENTER
ALU
INTERRUPT SERIAL PORT
AND TIMER BLOCKS
PROGRAM
COUNTER
PSW
PSEN
ALE/PROG
EA/Vpp
RST
TIMING
INTRUCTION
AND
REGISTER
CONTROL
OSC
DPTR
PORT 1
LATCH
PORT 3
LATCH
PORT 1 DRIVE
PORT 3 DRIVE
P1.0 - P1.7
P3.0 - P3.7
Hình 2.1: Sơ Đồ Khối Của Vi Điều Khiển AT89C51
Hoµng Quang Lý
-10-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
2. Đặc Tinh Của AT89C51
Chip AT89C51 chứa trên 60000 Transistor bao gồm 4Kbyte ROM,
128Byte RAM, 32 đường xuất nhập, 1 Port nối tiếp và 2 bộ định thời 16
Bit. Một số lượng mạch đáng chú ý trong IC đơn. Các thành viên mới được
thêm vào cho họ MCS-51 và các biến thể này gần như có gấp đôi các đặc
trưng này. Tập đoàn Seimens, nguồn sản xuất thứ hai các bộ vi điều khiển
thuộc họ MCS-50 cung cấp Chip SAB80515, một cải tiến của 8051 chứa
trong một vỏ 68 chân, có 6 Port xuất nhập 8-bit, 13 nguồn tạo ra ngắt và
một bộ biến đổi A/D 8-bit với 8 kênh ngõ vào. Họ 8051 là một trong những
bộ vi điều khiển 8-bit mạnh và linh hoạt nhất, đã trở thành bộ vi điều khiển
hàng đầu trong những năm gần đây.
- Cụ thể vi điều khiển 89C51 là 1 IC có tích hợp trên đó hệ vi xử lí.
- IC AT98C51 có 40 chân.
- 4KB ROM trong và có thể ghi xoá được 1000 lần.
- Dải tần số hoạt động từ 0MHz → 24MHz.
- 128x8 bit RAM trong.
- 4 Cổng vào ra 8 bit.
- 2 Bộ định thời 16 bit.
- Có 6 nguyên nhân ngắt.
- Có thể lập trình được qua cổng nối tiếp.
- 210 bit được địa chỉ hoá.
- Giao tiếp nối tiếp.
Hoµng Quang Lý
-11-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
3. Sơ đồ chân và chức năng các chân của Chíp AT89C51
1
P 1.0
Vcc
40
2
P 1.1
P 0.0
39
3
P 1.2
P 0.1 38
4
P 1.3
P 0.2
5
P 1.4
P 0.3 36
6
P 1.5
P 0.4
7
P 1.6
P 0.5 34
8
P 1.7
P 0.6
9
RST
RXD
10
P 3.0
TXD
11
P 3.1
LNT 0
12
P 3.2
LNT 1
13
P 3.3
P 2.7 28
T0
14
P 3.4
P 2.6
T1
15
P 3.5
P 2.5 26
WR
16
P 3.6
P 2.4
RD
17
P 3.7
P 2.3 24
18
XTAL 2
P 2.2
19
XTAL 1
P 2.1 22
20
Vss
P 2.0
INTEL
89C51
37
35
33
P 0.7 32
EA
31
ALE
30
PSEN
29
27
25
23
21
Hình 2.2: Sơ đồ chân và chức năng các chân của Chíp AT89C51
Hoµng Quang Lý
-12-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
- PORT 0 : Nằm trên các chân từ 32 đến 39 có 2 công dụng. Trong
các thiết kế có tối thiểu thành phần thì Port 0 được sử dụng làm nhiệm vụ
xuất/nhập. Trong các thiết kế lớn hơn có bộ nhớ ngoài, Port 0 trở thành Bus
địa chỉ và Bus dữ liệu đa hợp..
- PORT 1 : Nằm trên các chân 1 đến 8, chỉ có một cộng dụng là để
gao tiếp với thiết bị ngoài khi có yêu cầu.
- PORT 2 : Nằm trên các chân 21 đến 28 có 2 công dụng hoặc làm
nhiệm vụ xuất/nhập hoặc là Byte địc chỉ cao của BUS địa chỉ 16 bit cho
các thiết kế có nhiều hơn 256Byte bộ nhớ dữ liệu ngoài.
- PORT 3 : Nằm trên các chân 10 đến 17 có 2 công dụng. một là
chức năng xuất/nhập bình thường còn khi không hoạt động xuất nhập các
chân của PORT 3 có nhiều chức năng riêng . Cụ thể các chức năng của các
chân ở PORT 3 như sau :
Bit
Tên
Địa chỉ Bit
Chức năng
P 3.0
RxD
B0H
Nhận dữ liệu của Port nối tiếp
P 3.1
TxD
B1H
Phát dữ liệu của Port nối tiếp.
P3.2
INT 0
B2H
Ngõ vào ngắt ngoài 0
P 3.3
INT 1
B3H
Ngõ vào ngắt ngoài 1
P 3.4
T0
B4H
Ngõ vào của bộ định thời/đếm 0.
P 3.5
T1
B5H
Ngõ vào của bộ định thời/đếm 1
P 3.6
WR
B6H
Điều khiển ghi bộ nhớ dữ liệu ngoài.
P 3.7
RD
B7H
Điều khiển đọc bộ nhớ dữ liệu ngoài.
Bảng 2.1: Các chức năng của PORT 3
- Chân cho phép bộ nhớ chương trình PSEN
8051 Cung cấp cho ta 4 tín hiệu điều khiển BUS. Tín hiệu cho phép
bộ nhớ chương trình PSEN (Program Store Enable) là tín hiệu xuất trên
chân 29. Đây là tín hiệu điều khiển cho phép ta truy xuất bộ nhớ chương
Hoµng Quang Lý
-13-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
trình ngoài. Chân này thường được nối với chân cho phép xuất OE ( Output
Enable) của EPROM hoặc ROM để cho phép đọc các Byte lệnh.
Tín hiệu PSEN ở mức Logic 0 trong suất thời gian tìm nạp lệnh, các
mã nhị phân của chương trình hay mã thao tác (Opcode) được đọc từ
EPROM qua BUS dữ liệu và được chốt vào thanh ghi IR của 8051 để được
giải mã.
Khi thực thi một chương trình chứa ở ROM nội PSEN được duy trì
ở mức Logic tích cực 1.
- Chân cho phép chốt địa chỉ ALE.
Chân này nằm trên chân 30 của 8051 là chân xuất tín hiệu cho phép
chốt địa chỉ ALE (Address Latch Enable) để giải đa hợp. Bus dữ liệu và
Bus địa chỉ. Khi Port 0 được sử dụng làm Bus địa chỉ/dữ liệu đa hợp chân
ALE xuất tín hiệu để chôt địa chỉ ( Byte thấp của địa chỉ 16bit) vào một
thanh ghi ngoài trong suốt 1/2 đầu chu kỳ bộ nhớ. Sau khi điều này đã được
thực hiện các chân của Port 0 sẽ xuất nhập dữ liệu hợp lệ trong suốt 1/2 thứ
2 của chu kỳ bộ nhớ.
Tín hiệu ALE có tần số bằng 1/6 tần số của mạch dao động bên trong
vi điều khiển và có thể được dùng làm xung Clock cho phần còn lại của hệ
thống. Nếu mạch dao động có tần số 12MHz, tín hiệu ALE có tần số
2MHz. Ngoại lệ duy nhất là trong thời gian thực thi lệnh MOVX, một xung
ALE sẽ bị bỏ qua. Chân ALE còn được dùng để nhận xung ngõ vào lập
trình cho EPROM trên CHIP đối với các phiên bản của 8051 có EPROM
này.
- Chân truy xuất ngoài EA.
Ngõ vào này ở chân 31 có thể được nối với nguồn +5V (Logic 1)
hoặc GND (Logic 0). Nếu chân này nối lên 5V , 8051/8052 thực thi
Hoµng Quang Lý
-14-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
chương trình trong ROM nội( chương trình nhỏ hơn 4K/8K). Nếu chân này
nối với GND( và chân PSEN cũng ở mức Logic 0), chương trình cần thực
thi chứa ở bộ nhớ ngoài. Đối với 8031/8032 chân EA phải ở mức Logic 0
vì chúng không có bộ nhớ chương trình trên CHIP. Nếu chân EA ở mức
Logic 0 đối với 8051/8052, ROM nội bên trong CHIP được vô hiệu hoá và
chương trình cần thực thi chứa ở EPROM bên ngoài.
Các phiên bản EPROM của 8051 còn sử dụng chân EA làm chân
nhận điện áp cấp nguồn 21VPP cho việc lập trình EPROM nội ( Nạp
EPROM).
- Chân RESET ( RST).
Ngõ vào RST ở chân 9 là ngõ vào xoá chính (Master reset) của 8051
dùng để thiết lập lại trạng thái ban đầu cho hệ thống hay còn gọi tắt là
Reset hệ thống. Khi ngõ vào này được treo ở mức Logic 1 tối thiểu hai chu
kỳ máy , các thanh ghi bên trong của 8051 được nạp các giá trị thích hợp
cho việc khở dộng lại hệ thống.
- Các chân thạch anh XTAL 1 và XTAL 2.
Nằm trên chân 18 và 19 của CHIP, 2 chân này được dùng để nối với
thạch anh ngoài nhằm tái tạo dao động và xác định tần số làm việc cho
mạch dao động ở bên trong CHIP. Kết hợp với thạch anh có thêm 2 tụ gốm
để ổn định tần số dao động. Tần số danh định của thạch anh là 12MHz cho
hầu hết các CHIP của họ MCS - 51.
Hoµng Quang Lý
-15-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
IC 1
8051
Oscillator
18
C1
30pF
19
X1
12MHz
C2
30pF
Hình 2.3: Mạch dao động Thạch Anh XTAL 1 và XTAL 2
Hoặc ta cũng có thể dùng một nguồn xung CLOCK TTL để tạo dao
động cho 8051 như mạch sau :
TTL
Oscillator
18
IC 1
8051
Oscillator
19
74LS04
Hình 2.4: Mạch dao động
4. Cấu trúc của PORT In/Out.
- Sơ đồ cấu trúc bên trong của chân PORT xuất/nhập như sau :
Hoµng Quang Lý
-16-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
8051 Internal bus
VDD
Read
latch
Write
to Latch
Interrnal
Pull-up
Read
pin
Porrt
pin
Q
D
Port
Latch
Hình 2.5: Cấu trúc của PORT In/Out
Việc ghi đến 1 chân của Port sẽ nạp dư liệu vào bộ chốt của Port,
ngõ ra Q của bộ chốt điều khiển một Transistor trường và Transistor này
nối với chân của Port. Khả năng phân chia đầu ra (Fan - out) của các Port
1, 2 và 3 là 4 tải vi mạch TTL loại Schottky công suất thấp (LS) còn của
Port 0 là 8 tải loại LS.
Lưu ý là điện trở kéo lên (Pull Up) không có ở Port 0 ( trừ khi port
này làm nhiệm vụ của Port địa chỉ dữ liệu đa hợp) Do vậy phải nối thêm
một điện trở kéo lên bên ngoài cho Port 0.
Giá trị điện trở này phụ thuộc vào đặc tính ngõ vào của thành phần
ghép nối với chân của Port.
Ở đây ta thấy có 2 khả năng " Đọc bộ chốt" và "Đọc chân port". Các
lệnh yêu cầu thao tác đọc - sửa - ghi, đọc bộ chốt để tránh nhầm mức điện
áp do sự hiẻu nhầm điện áp do sự kiện dòng tải tăng. Các lệnh nhập một Bit
của Port, đọc chân port. Trong trường hợp này bộ chốt của port phải chứa 1
nếu không FET sẽ được kích bão hoà và điều này kéo ngõ ra xuống mức
thấp. Việc Reset hệ thống sẽ set tất cả các bộ chốt port. Do vậy các chân
port có thể được dùng làm các ngõ nhập mà không cần phải SET các bộ
chốt port một cách tường minh. Tuy nhiên nếu một bộ chốt port bị xoá
(như CLR P1.5). Chân Port không thể làm nhiệm vụ tiếp theo là ngõ nhập
trừ khi trước tiên ta phải SET bộ chốt ( như SETB P1.5).
Hoµng Quang Lý
-17-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
5. Tổ chức bộ nhớ
§Þa
chØ
Byte
§Þa
chØ
Byte
§Þa chØ Bit
( Bit Address )
80 Byte
7F
Vïng RAM ®a dông
(General Purpose RAM)
Bit addressable locations
30
2F
7F 7E 7D 7C 7B 7A 79 78
2E
77 76 75 74 73 72 71 70
2D
6F 6E 6D 6C 6B 6A 69 68
2C
67 66 65 64 63 62 61 60
2B
5F 5E 5D 5C 5B 5A 59 58
2A
56 56 55 54 53 52 51 50
29
4F 4E 4D 4C 4B 4A 49 48
28
47 46 45 44 43 42 41 40
27
3F 3E 3D 3C 3B 3A 39 38
26
37 36 35 34 33 32 31 30
25
2F 2E 2D 2C 2B 2A 29 28
24
27 26 25 24 23 22 21 20
23
1F 1E 1D 1C 1B 1A 19 18
22
17 16 15 14 13 12 11 10
21
0F 0E 0D 0C 0B 0A 09 08
20
07 06 05 04 03 02 01 00
1F
BANK 3
8
BANK 2
8
BANK 1
8
Defauk register
Bank for R0 - R7
8
32 Byte
18
17
10
0F
08
07
00
§Þa chØ Bit
( Bit Address )
FF
F0
EF EE ED EC EB EA E9 E8
B
E0
E7 E6 E5 E4 E3 E2 E1 E0
ACC
D0
D7 D6 D5 D4 D3 D2 D1 D0
PSW
B8
BF BE BD BC BB BA B9 B8
IP
B0
B7 B6 B5 B4 B3 B2 B1 B0
P3
A8
AF AE AD AC AB AA A9 A8
IE
A0
A7 A6 A5 A4 A3 A2 A1 A0
P2
99
98
Not bit addressable
9F 9E 9D 9C 9B 9A 99 98
SBUF
SCON
90
97 96 95 94 83 92 91 90
P1
8D
8C
8B
8A
89
88
87
Not bit addressable
TH1
Not bit addressable
TH0
Not bit addressable
TL1
Not bit addressable
TL0
Not bit addressable
TMOD
8F 8E 8D 8C 8B 8A 89 88 TCON
Not bit addressable
PCON
83
82
81
80
Not bit addressable
Not bit addressable
Not bit addressable
87 86 85 84 83 82 81 80
RAM
Thanh ghi chøc
n¨ng ®Æc biÖ t
(CÊu tróc RAM néi)
Hình 2.6: Tổ chức bộ nhớ RAM
Bộ nhớ bên trong 89C51 bao gồm ROM và RAM.
Hoµng Quang Lý
-18-
DPH
DPL
SP
P0
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
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 thanh ghi (BANK) và các thanh ghi chức năng đặc
biệt ( Special Funtion Registers).
89C50 có bộ nhớ theo cấu trúc : 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 64K Byte bộ nhớ chương trình
và 64KByte bộ nhớ dữ liệu mở rộng.
RAM bên trong 89C51 được phân chia như sau :
- Các 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
Mọi địa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự
do dùng kiểu địa chỉ trực tiếp hay gián tiếp.
Hoặc truy xuất dùng cách địa chỉ gián tiếp qua R0 hay R1.
- RAM có thể truy xuất từng bit.
89C51 chứa 210 bit được địa chỉ hoá từng bit, trong đó 128 bit chứa
ở cá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, xoá, nhân, cộng... với 1
lệnh đơn. Ngoài ra các Port cũng có thể truy xuất được từng bit làm đơn
giản phần mềm xuất nhập từng bit.
- Các thanh ghi (BANK).
Hoµng Quang Lý
-19-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Bộ lệnh 89C51 hỗ trợ 8 thanh ghi có tên là từ 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
07F. Lệnh sau đây sẽ đọc nội dung ở địa chỉ 05H vào thanh ghi tích luỹ.
MOV A,R5
Đây là lệnh 1Byte dùng địa chỉ thanh ghi. Tuy nhiên có thể thi hành
bằng lệnh 2Byte dùng địa chỉ trực tiếp nằm trong Byte rhứ 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.
Thanh ghi tích cực bằng cách thay đổi các bit trong từng 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ớ 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 Function
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 năng đặc biệt được định nghĩa sẵn các địa
chỉ.
- Thanh ghi trạng thái chương trình.
Thanh ghi trạng thái chương trình PSW (Program Status Word) ở địa
chỉ D0H chứa các bit trạng thái như bảng sau :
BIT
KÝ HIỆU
ĐỊA CHỈ
Ý NGHĨA
PSW .7
CY
D7H
Cờ nhớ.
PSW .6
AC
D6H
Cờ nhớ phụ.
Hoµng Quang Lý
-20-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
PSW .5
F0
D5H
Cờ 0.
PSW .4
RS1
D4H
Bit 1 chọn Bank thanh ghi.
Bit 0 chọn Bank thanh ghi.
00 = Bank 0 : Địa chỉ 00H - 07H.
PSW .3
RS0
D3H
01 = Bank 1 : Địa chỉ 08H - 0FH.
10 = Bank 2 : Địa chỉ 10H - 17H,
11 = Bank 3 : Địa chỉ 18H - 1FH
PSW .2
0V
D2H
Cờ tràn.
PSW .1
_
D1H
Dự trữ.
PSW .0
P
D0H
Cờ Parity chẵn lẻ.
Bảng 2.2: Bảng Thanh ghi trạng thái chương trình
+ Cờ nhớ : C = 1 Nếu phép toán cộng có tràn hoặc phép toán trừ có mượn
và ngược lại C = 0.
Ví dụ : Nếu thanh ghi A có giá trị FF thì lệnh sau : ADD A,#1 .
Phép cộng này có tràn nên bit C = 1 và kết quả trong thanh ghi A = 00H.
Cờ nhớ có thể xem lầ thanh ghi 1 bit cho các luận lý thi hành trên bit
ANL C,25H
+ Cờ nhớ phụ : Khi cộng các số BCD, cờ nhớ phụ AC = 1. Nếu kết quả 4
bit thấp trong khoảng 0AH đến 0FH, ngược lại AC = 0.
+ Cờ 0 : Cờ 0 là cờ đa dụng dành cho các ứng dụng của người dùng.
+ Các bit chọn Bank thanh ghi truy xuất :
Các bit chọn Bank thanh ghi (RS0 và RS1) xác định Bank thanh ghi
được truy xuất. Chúng được xoá sau khi RESET hệ thống và được thay đổi
bằng phần mềm nếu cần.
Ví dụ : Lệnh sau cho phép Bank thanh ghi 3 và di chuyển nội dung
của Bank thanh ghi R7 (địa chỉ byte 1Fh) vào thanh ghi A :
Hoµng Quang Lý
-21-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
SETB RS1
SETB RS0
MOV A,R7
- Thanh ghi B.
Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi tích luỹ A
cho các phép toán nhân và chia. Lệnh MUL AB sẽ nhân các giá trụ không
dấu 8bit trong A và B rồi trả kết quả về 16bit trong A (Byte thấp) và B
(Byte cao). Lệnh DIV AB sẽ chia A cho B rồi trả kết quả nguyên trong A
và phần dư trong B. Thanh ghi cũng có thể xem như thanh ghi đệm đa
dụng.
- Con trỏ ngăn xếp.
Con trỏ ngăn xếp SP là một thanh ghi 8 bit ở địa chỉ 18H. Nó chứa
địa chỉ của Byte dữ liệu hiện hành trên đỉnh của ngăn xếp. Các lệnh trên
ngăn xếp bao gồm các lệnh cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi
ngăn xếp.. Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ
liệu và lệnh lấy dữ liệu ra khỏi ngăn xếp. Lệnh cất dữ liệu vào ngăn xếp sẽ
làm giảm SP. Ngăn xếp của 89C51 được cất giữ trong RAM nội và giới
hạn các địa chỉ có thể truy xuất bằng các địa chỉ gián tiếp, chúng là
128Byte đầu của 89C51.
Để khởi động SP với ngăn xếp bắt đầu tại địa chỉ 60H, ta dùng lệnh sau :
MOV SP,#5FH
Nếu không dùng lệnh khởi động SP hoặc khi RESET lại 89C51 thì
SP sẽ bắt đầu tại địa chỉ mặc định là 07H và dữ liệu đầu tiên sẽ được cất
vào ô nhớ ngăn xếp có địa chỉ là 08H. Ngăn xếp được truy xuất trực tiếp
bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu hoặc truy
xuất ngầm bằng lệnh gọi chương trình con ACALL, LCALL và các lệnh
Hoµng Quang Lý
-22-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
trở về RET, RETI để lưu trữ giá trị của bộ đếm chương trình khi bắt đầu
thực hiện chương trình con và lấy lại khi kết thúc chương trình con.
- Con trỏ dữ liệu DPRT ( Data Pointer).
Con trỏ DPTR được dùng để truy xuất bộ nhớ ngoài, DPTR là một
thanh ghi 16bit ở địa chỉ 28H (DPL , Byte thấp) và 83H ( DPH , Byte cao).
Ba lệnh sau sẽ ghi 55H vào RAM ngoài ở địa chỉ 1000H
MOV A,#55H
MOV DPTR,#1000H
MOVX @DPTR,A
Lệnh đầu tiên sử dụng kiểu định địa chỉ tức thời để nạp hằng dữ liệu
55H vào thanh ghi chứa A. Lệnh thứ 2 cũng sử dụng kiểu định địa chỉ tức
thời, lần nạp hằng địa chỉ 16bit 1000H cho con trỏ dữ liệu DPTR. Lệnh thứ
3 sử dụng kiểu định địa chỉ gián tiếp di chuyển giá trị 55H chứa trong A
đến RAM ngoài tại địc chỉ chứa trong DPTR (1000H).
- Các thanh ghi PORT.
Các Port xuất nhập của 89C51 bao gồm Port 0 tại địa chỉ 80H, Port 1
tại địa chỉ 90H, Port 2 tại địa chỉ A0H và Port 3 tại địa chỉ B0H. các Port
0,2,3 không được dùng để xuất nhập nếu sử dụng thêm bộ nhớ ngoài hoặc
nếu có một số đặc tính đặc biệt của 89C51 được sử dụng ( như là ngắt, Port
nối tiếp.....).P1.2 đến P1.7, ngược lại, luôn luôn là các đường xuất nhập đa
mục đích hợp lệ.
Tất cả các Port đều được định địa chỉ từng bit nhằm cung cấp các
khả năng giao tiếp mạnh.
Thí dụ ta có một động cơ một cuộn dây và một mạch kích dùng
Transistor nối tới bit 7 của Port 1, động cơ có thể ngưng hay chạy chỉ nhờ
vào
Hoµng Quang Lý
-23-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
+B
+5V
§éng
c¬
8051 Internal bus
VDD
Read
latch
Interrnal
Pull-up
Read
pin
Porrt
pin 1.7
D Q
Port
Latch
Write
to Latch
Hinh 2.7: Một lệnh đơn của 8051.
SETB P1.7 sẽ làm động cơ chạy và lệnh CLR P1.7 làm động cơ
ngưng.
Các lệnh trên sử dụng toán tử (dot) để định chỉ 1 bit trong 1Byte cho
phép định địa chỉ từng bit.
Trình dịch hợp ngữ thực hiện biến dổi dạng ký hiệu thành địa chỉ
thực tế nghĩa là 2 lệnh sau sẽ tương đương
CLR P.17 tương đương với lệnh CLR 97H.
- Các thanh ghi định thời (Timer)
89C51 chưa 2 bộ định thời 2 bộ định thời/ đếm 16bit đượ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 (TL0 : 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ỉ hoá từng bit.
Hoµng Quang Lý
-24-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
- Các thanh ghi 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 ghi điều khiển port nối tiếp SCON ở địa chỉ 98H.
- Các thanh ghi ngắt.
Thực tế ở 8051 chỉ có 5 ngắt dành cho người dùng, song nhiều tài
liệu kỹ thuật của các nhà sản xuất vẫn nói rằng có 6 ngắt vì họ tính cả lệnh
reset. Bố trí sáu ngắt của 8051 như sau:
-Reset: khi chân reset được kích hoạt thì 8051 nhày về địa chỉ 0000
-Hai ngắt dành cho bộ định thời time 0 và time 1 . Đia chỉ ở bảng
vector ngắt của hai ngắt này tương ứng với time 0 và time 4 là 000B4 và
001B4
Hai ngắt phần cứng dành cho các thiết bị bên ngoài nối tới chân 12
(P3.2) và 13 (P3.2) của cổng P3 là INTO và INT1 tương ứng. Các ngắt
ngoài cũng còn được gọi là EX1 và EX2. Vị trí nhớ trong bảng vector ngắt
của hai ngắt INT0 và INT1 này là 0003H và 0013H
Truyền thống nối tiếp có một ngắt cho cả thu lẫn phát. Địa chỉ nủa
ngắt này trong bảng vector ngắt 0023H
Bảng vector ngắt của 8051
Ngắt
Đỉa chỉ ROM (Hexa)
Chân
RESET
0000
9
Ngắt phần cứng ngoài (INTO)
0003
12 (P3 : 2)
Ngắt bọ timer 0 (TFO)
0008
Ngắt phần cứng ngoài 1 (INT1)
0013
Hoµng Quang Lý
-25-
12 (P3 : 3)
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Ngắt bộ timer 1 (TF1)
0018
Ngắt COM nối tiếp (R1 và T1)
0023
ORG 0
; Địa chỉ bắt đầu của ROM khi khơi động lại
LJMP MAIN ;bỏ qua bảng vector ngắt
;……… Chương trình khởi động lại
ORG30H
MAIN:
….
END
Bảng 2.3: Bảng vector ngắt của 8051
- Cho phét ngắt và cấm ngắt
Khi reset thì tất cả mọi ngắt bị cấm, có nghĩa là không có ngắt nào
được bộ vi điều khiển đáp ứng nếu chúng được kích hoạt. các ngắt phải
được cho phép bằng phần mềm để bộ vi điều khiển có thể đáp ứng được.
Có 1 thanh ghi được gọi là cho phép ngắt IE (Interrup Enable), chịu trách
nhiệm về việc cho phép ngắt và cấm các ngắt IE là thanh ghi có thể định
địa chỉ bit.
Thanh ghi cho phét ngắt IE
Hoµng Quang Lý
-26-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
D7
D0
EA
----
EA
IE.7
ET2
ES
ET1
EX1
ET0
EX0
Nếu EA=0 thì không ngắt nào được báo nhận
Nếu EA=1 thì từng nguồn ngắt sẽ được mở hoạc cấm
bằng cách bật hoặc xóa bit cho phét tương ứng
--
IE.6
ET2
IE.5
Dự phòng cho tương lại
Cho phép hoặc cấm ngắt chàn hoặc thu của timer 2 (89C52)
ES
IE.4
Cho phép hoặc cấm cổng nối tiếp
ET1
IE.3
Cho phép hoặc cấm ngắt tràn của time 1
EX1
IE.2
Cho phép hoặc cấm ngắt ngoài 1
ET0
IE.1
Cho phép hoặc cấm ngắt tràn của time 0
EX0
IE.0
Cho phép hoặc cấm ngắt ngoài 0
* Các bit này có thể dung ở các bộ vi điều khiển có đặc tính mới trong
tương lai
Bảng 2.4: Thanh ghi cho phét ngắt IE
- Các bước thực hiện khi cho phép một ngắt
• Để cho phép 1 ngắt, trình tự thực hiện các bước như sau
• bit D7 của thanh ghi IE là EA phải được bật lên cao cho phét các bit còn
lại của thanh ghi có hiệu lực.
• Nếu EA=1 thì tất cả mọi ngắt đều được phép và sẽ được đáp ứng nếu
các bit tương ứng của các ngắt này trong IE có mức cao.
• Nếu EA=0 thì không có ngắt nào được đáp ứng cho dù bit tương ứng
trong IE có giá trị cao.
- Thanh ghi điều khiển công suất.
Thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa các bit
điều khiển.
Hoµng Quang Lý
-27-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
- Tín hiệu RESET.
89C51 có ngõ vào RESET (RST) tác động ở mức cao trong khoảng
thời gian 2 chu kỳ sau đó xuống mức thấp để 89C51 bắt đầu làm việc. RST
có thể kích tay bằng một phím nhấn thường mở. sơ đồ mạch RESET như
hình
Sau khi RESET hệ thống được tóm lược như sau :
Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC
được RESET tại địa chỉ 0000H. Nội dung của RAM trong chip không bị
thay đổi bởi tác động của ngõ vào RESET.
RESET
INTEL
89C51
+ 5V
C1
10/16
9
R2
100Ω
RST
R1
10KΩ
H×nh 1a : M¹ch RESET cho 89C51
Hình 2.8: Mạch RESET
Bảng giá trị của các thanh ghi sau khi RESET hệ thống :
THANH GHI
NỘI DUNG
Bộ đếm chương trình
0000H
Thanh chứa A
00H
Hoµng Quang Lý
-28-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Thanh ghi B
00H
PSW
00H
SP
07H
DPTR
0000H
Port 0 – 3
xxx00000B
xx000000B
IP
0xx00000B
Các thanh ghi định
00H
SCON
00H
SBUF
00H
PCON (HMOS)
0xxxxxxxB
PCON (CMOS)
0xxx0000B
Bảng 2.5: Bảng giá trị của các thanh ghi sau khi RESET hệ thống
6. Hoạt Động Của Thanh Ghi TIME
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 port nối tiếp trong 89C51.
Trong các ứng dụng định khoảng time, người ta lập trình timer ở
những khoảng đều đặn và đặt cờ tràn timer. Cờ được dung để đồ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
(Vi 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:
Hoµng Quang Lý
-29-
Tæng quan Vi ®iÒu khiÓn hä 8051
SFR
§å ¸n tèt nghiÖp
Mục đích
Địa chỉ
Địa chỉ hóa từng
bit
TCON
Điều khiểm timer
88H
Có
TMOD
Chế độ timer
89H
Không
TLO
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 nghi chức năng của timer trong 8031
Bảng 2.6: Các Thanh nghi chức năng của timer trong 8031
Thanh Ghi Chế Độ Timer (TMOD):
Cả hai bộ định thời timer 0 và timer 1 đều dùng chung một thanh
nghi được gọi là TMOD để thiết lập các chế độ làm việc khác nhau của bộ
định thời. Thanh ghi TMOD là thanh nghi 8 bít gồm có 4 bít dành cho bộ
timer0 và 4 bít dành cho timer 1. Trong đó hai bít thấp của chúng dung để
thiết lập chế độ của bộ định thời, còn 2 bít cao dung để xác định phép toán.
Dưới đây chung ta sẽ tìm hiểu về các phét toán.
Bít
Tên
Timer
Mô tả
7
Gate
1
Bít mở công, khi lên 1 timer chỉ
6
C/T
1
Bít chọn chế độ Count/ Timer
1=bộ đếm sự kiện
0 = Bộ định khoảng thời gian
5
M1
1
Bít 1 của chế độ mode
4
M0
0
Bít 0 của chế độ mode
3
GATE
0
Bít mở cổng , khi lên 1 timer
chỉ chạy khi INTO ở mức cao
2
C/T
0
Bít chọn chế độ Count/ Timer
1
M1
0
Bít 1 của chế độ mode
Hoµng Quang Lý
-30-
Tæng quan Vi ®iÒu khiÓn hä 8051
0
M0
§å ¸n tèt nghiÖp
0
Bít 0 của chế độ mode
Tóm tắt thanh nghi chức năng TMOD
Bảng 2.7: Tóm tắt thanh nghi chức năng TMOD
Thanh Ghi Điều Khiển Timer (TCON)
Thanh nghi TCON chứa các bít trạng thái và các bít điều khiển cho timer 1,
timer 0.
Bít
Ký
Địa chỉ
Mô tả
hiệu
TCON 7
TF1
8FH
Cơ bản tràn timer 1. Đặt bởi phần cứng
khi tràn, được xóa bở 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
Bít điều khiển timer 1 chạy đặt xóa bằng
phần mềm để cho timể chạy ngừng
TCON 5
TF0
8DH
Cờ báo tràn timer 0
TCON 4
TR0
8CH
Bít đ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 hoạc phần cứng khi CPU chỉ
đến chương trình phục vụ ngắt
TCON 2
IT1
Hoµng Quang Lý
8AH
Cờ kiểu ngắt 1 bên ngoài. đặt xóa bằng
-31-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
phần mềm để ngắt ngoài tich cực cạnh xuống
mức thấp
TCON 1
IE0
89H
Cờ cạnh ngắt 0 bên ngoài
TCON 0
IT0
88H
Cờ cạnh ngắt 0 bên ngoài
Bảng 2.8: Các thanh nghi chức năng của timer trong 8031
Chúng ta đã biết công dụng của các cờ TR0 và TR1 để bật/tắt các bộ
định thời. Các bít này thuộc thanh ghi điều khiển bộ định thời TCON (Time
Control). Đây là thanh ghi 8 bít như bảng trên giời thiệu, bốn bít cao dùng
để lưu các TF, TR cho cả timer 0 và time 1. Còn bốn bít thấp được thiết
lập dành cho điều khiển bít ngắt. Cũng cần lưu ý rằng thanh ghi TCON là
thanh nghi có thể định địa chỉ bít được lên hoàn toàn có thể thay các lệnh
như “SETB TR1” và “CLR TR1” bằng các lệnh tương ứng như “SET
TCON.6” và CLR TCON.6”, xem bảng sau.
Đôi vơi timer 0
SETB TR0 = SETB TCON.4
SETB TR0 = CLR TCON.4
SETB TF0 = SETB TCON.5
CLR TF0 = CLR TCON.5
Đôi với Timer 1
SETB TR1 = SETB TCON.6
CLR TR1 = CLR TCON.6
SETB TF1 = SETB TCON.7
CLR TF1 = CLR TCON.7
Bảng 2.9: Các lệnh tương ứng đối với thanh ghi điều khiển bộ định thờ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
trinh để đặ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 bít được kiểm tra và xóa, các
thanh ghi timer được đọc và cập nhật… theo dõi hỏi các ứng dụng.
Hoµng Quang Lý
-32-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
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 bít (Chế độ 1) có
xung nhịp từ bộ dao động trên chíp 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 bít chế độ Timer 0. Dĩ nhiên, timer không thật
sự bắt đầu định thời cho đến khi bít đ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µm có thể được khởi động bằng các khơi động
giá trị cho TH1/TL1 là FF9CH
MOV TL1 , #9CH
MOV TH1 , #0FFH
Rồi timer được cho chạy bằng cách đặt bít điều khiển chạy như sau:
SETB TR1
Cờ báo tràn được tự động đặt lên một sau 100µm. Phần mềm có thể
đời trong 100µm 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 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
7. Bộ Đếm Chương Trinh Và Không Gian ROM Của 8051
Một thanh ghi quan trọng khác của 8051 là bộ đếm chương trình. Bộ
đếm chương trình có nhiệm vụ trỏ đến địa chỉ của lệnh kế tiếp cần được
thực hiện. mỗi khi CPU nhận mã lệnh từ bộ nhớ ROM, thì bộ đếm chương
Hoµng Quang Lý
-33-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
trình tăng lên để trỏ đến lệnh kế tiếp. Bộ đếm chương trình 8051 rộng
16bít, điều đó có nghĩa là, 8051 có thể truy cập được địa chỉ chương trình
từ 0000 đến FFFFH, tổng cộng là 64Kb. Tuy nhiên không phải thành viên
nào của 8051 cũng có đủ 64Kb ROM/Chíp. Vấn đề tiếp theo là, khi 8051
được bật nguồn thì địa chỉ khởi đầu được bắt đầu từ đâu?
Địa chỉ bắt đầu khi 8051 được bật nguồn
Mỗi họ vi điều khiển khi được bật nguồn đều được bắt đầu từ
những địa chỉ khác nhau. Đối với 8051 địa chỉ bắt đầu từ 0000. Bật nguồn
có nghĩa là cấp điện áp Vcc đến chân reset, nói cách khác khi 8051 được
cấp nguồn, thì bộ đếm chương trình có giá trị 0000. điều naỳ có nghĩa nó sẽ
thực hiện mã lệnh đầu tiên được lưu ở ROM 0000. Tại sao lại ở vị trí này
của bộ nhớ ROM? Đó là nhờ chỉ dẫn ORG ở chương trình nguồn. Dưới đây
là toàn bộ trinh tự hoạt động của bộ đếm chương trinh trong quá trình nhận
và thực thi một chương trình mẫu.
Mã Chương trinh Ở ROM
Để hiểu rõ hơn về bộ đếm chương trình, chung ta sẽ xem xét hoạt
động của bộ đếm chương trình mỗi khi nhận và thực hiện lệnh. Ta khảo
sátmột tệp liệt kê của chương trình mẫu được lưu ở ROM. Như có thể thấy
mã lệnh và toán hạng của từng lệnh được liệt kể ở bên trái của tệp liệt kê.
Địa chỉ ROM
00000
00000
00002
00004
00006
00008
0000A
Ngôn Ngữ Máy
7D25
7F34
7400
2D
2F
2412
80EF
Hoµng Quang Lý
Hợp Ngữ
MOV R5, #25H
MOV R7, #34H
MOV A,#0
ADD A, R5
ADD A, R7
ADD A, #12H
HERE: SUMP HERE
Bảng 2.10: Mã Chương trinh Ở ROM
-34-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Sau khi chương trình được lạp vào ROM của họ 8051, như
AT89C51 thì mã lệnh và toán hạng được đặt luôn bắt đầu từ địa chỉ 0000.
Nội dung ROM của chương trình trên. Được giời thiệu ở bảng sau ở địa chỉ
0000 .
Nội dung ROM của chương trinh trên Địa Chỉ
0000
được giởi thiểu ở bảng sau. Tại địa chỉ 0000 có
0001
mã 7D là mà lệnh chuyển một giá trị vào thanh
0002
ghi R5, còn địa chỉ 0001, chứa toán hạng (Giá trị
0003
250000) Cần được chuyển vào R5. Do vậy lệnh
0004
“MOV R5 #25H” có mã lệnh là “7D25” trong
0005
đó 7D là mã lệnh còn 25 là toán hạng. Tương tự
mã máy “7F 34” được ghi ở địa chỉ 0002 và 0003 0006
biêu diễn mà lệnh và toán hạng của lệnh “MOV
R7, #34H” cũng như vậy, mã máy “74 00” tại địa
chỉ 0004 và 0005 là biểu diễn lệnh “MOV A, #0”
ô nhớ 0006 có mã 2D là mã lệnh của “ADD A,
R5”, còn ô nhớ 007 có nội dung 2F là mã lệnh
của “ADD A, R7” mã lệnh của lệnh “ADD A,
#12H” được đặt ở ô nhớ 0008 và toán hạng 12H
Mã lệnh
7D
25
7F
34
74
00
2D
0007
2F
0008
24
0009
12
000A
80
000B
FE
Bảng 2.11: Nội dung
ROM
được đặt ở ô nhớ 0009. Ô nhớ 000A có mã lệnh
của lệnh SJMP và địa chỉ đích của nó được đặt ở
ô nhớ 000B.
Trình Tự Thực Hiện Chương Trình
Giả sử chương trình trên đã được ghi vào ROM của 8051 thì trình tự
các bước hoạt động khi được cấp nguồn như sau:
•
Khi 8051 được bật nguồn bộ đếm chương trình PC có nội dung 0000
và bắt đầu
Hoµng Quang Lý
-35-
Tæng quan Vi ®iÒu khiÓn hä 8051
•
§å ¸n tèt nghiÖp
Nạp mã lệnh đầu tiên từ vị trí nhớ đầu tiên 0000 của ROM chương
trình. Đối với chương trình nêu trên đó là mã 7D(Chuyển một toán
hạng vào R5). Khi thực hiện
•
Mã lệnh CPU nhận giá trị 25 và chuyển vào R5. Đến đây việc thực
hiện một lệnh được kết thúc. Sau đó bộ đếm chương trình được tăng
lên để trỏ tới ô nhớ 0002 (PC = 0002), tại đây có chứa mã 7Flà mã của
lệnh chuyển một toán hạng vào R7 “MOV R7” ,…..
Khi thực hiện mã lệnh 7F thì giá trị 34H được chuyển vào R7 sau đó
PC được tăng lên 0004
•
Ô nhớ 0004 chứa mã lệnh của lệnh “MOV A, #0”, lệnh này được
thựchiện và sau đó pC được tăng lên 2 đơn vi: PC = 0006, lưy ý tất cả
các lệnh nêu trên đều là các lệnh 2byte
•
Với PC= 0006, bộ đếm chương trình trỏ tới vị trí kế kiếplà : “ADD A,
R5” Đây là lệnh 1 byte, sau khi thực hiện lệnh PC = 0007
•
Ngăn nhớ 0007 chưa mã 2F là mã lệnh của “ADD A,R7” Đây là lệnh
1Byte sau khi thực hiện PC được tăng lên 0008 quá trình này cứ tiếp
tục cho đến khi tất cả mọi lệnh đều được nhận và thực hiện. Do bộ
đếm chương trình có ý nghĩa và có cách thức làm việc như vậy lên ở
một số bộ vi xử lý, đặc biệt là dòng Intel X86, bộ đếm chương trình
còn được gọi là con trỏ lệnh IP
Bản Đố Nhớ ROM của họ 8051
Điểm cần chú ý là không có thành viên nào của họ 8051 có thể truy
cập được trên 64kb mã lệnh, vì bộ đếm chương trình của 8051 là 16bit (Dải
địa chỉ từ 0000 đến FFFFH)
Điểm lưu ý số 2 là lệnh đâu tiên của Rom chương trình đều đặt ở
0000, còn lệnh cuối cùng phục thuộc vào dung lượng của ROM/Chíp của
Hoµng Quang Lý
-36-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
mỗi thành viên của họ 8051. Như vậy 8751 và AT98C51 với 4 kb ROM thì
dải địa chỉ sẽ từ 0000 đến 0FFFH do đó, ngăn nhớ đầu tiên có địa chỉ 0000
và ngăn nhớa cuối cùng có địa chi 0FFFH
Với 4k byte không gian nhớ ROM trên Chíp ta có 4096 byte bằng
1000H ở dạng Hexa (4*1024 = 4096D = 1000H). Bộ nhớ này được sắp xếp
trong các ngăn nhớ từ 0000 đến 0FFFH. Lưy ý không luôn là ngăn nhớ đầu
tiên.
Với 32K byte nhớ ta có 32768 byte (32*1024 ). Chuyển 32768 về số
hexa ta nhân được 8000H.
0FFF
1FFF
7FFF
Hình 2.9: Dải địa chỉ của ROM trên Chip của một số thành viên họ 8051
Hoµng Quang Lý
-37-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
CHƯƠNG III
CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ CỦA 8051
CPU có thể truy cập dữ liệu theo nhiều cách khác nhau. Dữ liệu có
thể ở trong một thanh ghi hoặc trong bộ nhớ hoặc được cho như một giá trị
tức thời các cách truy cập dữ liệu khác nhau được gọi là các chế độ đánh
địa chỉ. Phần này chúng ta bàn luận về các chế độ đánh địa chỉ của 8051
Các chế độ đánh địa chỉ khác nhau của bộ vi xử lý được xác định
như nó được thiết kế và do vậy khi lập trình không thể đánh địa chỉ khác
nhau là:
1. tức thời
2. Theo thanh ghi
4. gián tiếp qua thanh ghi
3. Trực tiếp
5. Theo chỉ số
I .CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ TỨC THỜI VÀ THEO THANH GHI
1 Chế độ đánh địa chỉ tức thời
Trong chế độ đánh địa chỉ này, toán hạng nguồn là một hằng số và
như tên gọi, của nó thì khi một lệnh được hợp dịch toán hạng đi tức thi
ngay sau mã lệnh. Lưu ý rằng trước dữ liệu tức thời phải được đặt dấu
‘’(#)’’ chế độ đánh địa chỉ này có thể được dùng để nạp thông tin vào bất
kỳ thanh ghi nào kể cả thanh ghi con trỏ dữ liệu DPTR.
DPTR là 16 bit nó cũng có thể được truy cập như 2 thanh ghi 8 bit
DPH và DPL trong đó DPH là byte cao và DPL là byte thấp. Xét đoạn mã
dưới đây:
2. chế độ đánh địa chỉ theo thanh ghi:
Chế độ đánh địa chỉ theo thanh ghi là sử dụng các thanh ghi để dữ
liệu cần được thao tác các .ví dụ về đánh địa chỉ theo thanh ghi như sau:
Hoµng Quang Lý
-38-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Các thanh ghi nguồn và đích phải phù hợp về kích thước.
Hay nói cách khác, nếu viết “ MOV DPTR, A” sẽ cho một lỗi vì
nguồn là thanh ghi 8 bit và đích lại là thanh ghi 16 bit.
Để ý rằng ta có thể chuyển dữ liệu giữa thanh ghi tích luỹ A và thanh
ghi Rn (n từ 0 đến 7) nhưng việc chuyển dữ liệu giữa các thanh ghi Rn thì
không được phép. Ví dụ, lệnh “MOV R4, R7” là không hợp lệ.
Trong hai chế độ đánh địa chỉ đầu tiên, các toán hạng có thể hoặc ở
bên trong thanh ghi hoặc được gắn liền với lệnh. Trong hầu hết các chương
trình dữ liệu cần được xử lý thường ở trong một số ngăn của bộ nhớ RAM
hoặc trong ROM .Rất nhiều cách để truy cập dữ liệu này mà phần tiếp theo
sẽ xét đến.
II. TRUY CẬP BỘ NHỚ SỬ DỤNG CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ KHÁC
NHAU
1 Chế độ đánh địa chỉ trực tiếp.
Như đã nói ở trong 8051 có 128 byte bộ nhớ RAM. Bộ nhớ RAM
được gán các địa chỉ từ 00 đến FFH và được phân địachỉ như sau:.
•
Các ngăn nhớ từ 00 đến 1FH được gán cho các băng thanh ghi và
ngăn xếp.
•
Các ngăn nhớ từ 20H đến 2FH được dành cho không gian đánh địa
chỉ theo bit để lưu các dữ liệu 1 bit.
•
Các ngăn nhớ từ 30H đến 7FH là không gian để lưu dữ liệu có kích
thước 1byte.
Mặc dù toàn bộ byte của bộ nhớ RAM có thể được truy cập bằng chế
độ đánh địa chỉ trực tiếp, nhưng chế độ này thường được sử dụng nhất để
truy cập các ngăn nhớ RAM từ 30H đến 7FH. Đây là do một thực tế là các
ngăn nhớ dành cho băng ghi được truy cập bằng thanh ghi theo các tên gọi
của chúng là R0 - R7 còn các ngăn nhớ khác của RAM thì không có tên
Hoµng Quang Lý
-39-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
như vậy. Trong chế độ đánh địa chỉ trực tiếp thì dữ liệu ở trong một ngăn
nhớ RAM mà địa chỉ của nó được biết và địa chỉ này được cho như là một
phần của lệnh. Khác với chế độ đánh địa chỉ tức thì mà toán hạng tự nó
được cấp với lệnh. Dấu (# 0 là sự phân biệt giữa hai chế độ đánh địa chỉ.
Như đã nói ở trước thì các ngăn nhớ trừ 0 đến 7 của RAM được cấp
cho bằng 0 của các thanh ghi R0 - R7. Các thanh ghi này có thể được truy
cập theo 2 cách như sau:
MOV A, 4 ; Hai lệnh này giống nhau đều sao nội dung thanh ghi
R4 vào A
MOV A, R4
MOV A, 7 ; Hai lệnh này đều như nhau là sao nội dung R7
vào thanh ghi A
MOV A,R7
Mặc dù sử dụng các tên R0 - R7 dễ hơn các địa chỉ bộ nhớ của chúng
nhưng các ngăn nhớ 30H đến 7FH của RAM không thể được truy cập theo
bất kỳ cách nào khác là theo địa chỉ của chúng vì chúng không có tên.
2 Các thanh ghi SFSR và các địa chỉ của chúng.
Trong các thanh ghi được nói đến từ trước đến giờ ta thấy rằng các
thanh ghi R0 - R7 là một phần trong 128 byte của bộ nhớ RAM. Vậy còn
các thanh ghi A, B, PSW và DPTR là một bộ phận của nhóm các thanh ghi
nhìn chung được gọi là các thanh ghi đặc biệt SFR (Special Funtion
Register). Có rất nhiều thanh ghi với chức năng đặc biệt và chúng được sử
dụng rất rộng rãi mà ta sẽ trình bày ở các chương sáu. Các thanh ghi FR có
thể được truy cập theo tên của chúng (mà dễ hơn rất nhiều) hoặc theo các
địa chỉ của chúng. Ví dụ địa chỉ của thanh ghi A là EOH và thanh ghi B là
FOH như cho ở trong bảng III.2.1 Hãy để ý đến những cặp lệnh có cùng ý
nghĩa dưới đây:
Hoµng Quang Lý
-40-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
MOV 0E0H, #55H
; Nạp 55H vào thanh ghi A(A=55H)
MOV A,
;
#55H
MOV 0F0H, #25H
; Nạp 25H vào thanh ghi B ( B = 25)
MOV 3, #25H
;
Bảng 3.1 dưới đây liệt kê các thanh ghi chức năng đặc biệt SFR của
8051 và các địa chỉ của chúng. Cần phải lưu ý đến hai điểm sau về các địa
chỉ của SFR:
•
Các thanh ghi SFR có địa chỉ nằm giữa 80H và FFH các địa chỉ này ở
trên 80H, vì các địa chỉ từ 00 đến 7FH là địa chỉ của bộ nhớ RAM bên
trong 8051.
•
không phải tất cả mọi địa chỉ từ 80H đến FFH đều do SFH sử dụng,
nhưng vị trí ngăn nhớ từ 80H đến FFH chưa dùnglà để dữ trữ và lập
trình viên 8051 cũng không được sử dụng.
Lệnh
Tên
Địa chỉ
ACC*
Thanh ghi tích luỹ (thanh ghi tổng ) A
0E0H
B*
Thanh ghi B
0F0H
PSW*
Từ trạng thái chương trình
0D0H
SP
Con trỏ ngăn xếp
81H
DPTR
Con trỏ dữ liệu hai byte
DPL
Byte thấp của DPTR
82H
DPH
Byte cao của DPTR
83H
P0*
Cổng 0
80H
P1*
Cổng 1
90H
P2*
Cổng 2
0A0H
P3*
Cổng 3
0B0H
IP*
Điều khiển ưu tiên ngắt
0B8H
IE*
Điều khiển cho phép ngắt
A08H
TMOD
Điều khiển chế độ bộ đếm/ Bộ định thời
89H
TCON*
Điều khiển bộ đếm/ Bộ định thời
88H
Hoµng Quang Lý
-41-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
T2CON*
Điều khiển bộ đếm/ Bộ định thời 2
0C8H
T2MOD
Điều khiển chế độ bộ đếm/ Bộ định thời 2
0C9H
TH0
Byte cao của bộ đếm/ Bộ định thời 0
8CH
TL0
Byte thấp của bộ đếm/ Bộ định thời 0
8AH
TH1
Byte cao của bộ đếm/ Bộ định thời 1
8DH
TL1
Byte thấp của bộ đếm/ Bộ định thời 1
8BH
TH2
Byte cao của bộ đếm/ Bộ định thời 2
0CDH
TL2
Byte thấp của bộ đếm/ Bộ định thời 2
0CCH
RCAP2H
Byte cao của thanh ghi bộ đếm/ Bộ định thời 2
0CBH
RCAP2L
Byte thấp của thanh ghi bộ đếm/ Bộ định thời 2
0CAH
SCON*
Điều khiển nối tiếp
98H
SBUF
Bộ đệm dữ liệu nối tiếp
99H
PCON
Điều khiển công suất
87H
Bảng 3.1 Các địa chỉ của thanh ghi chức năng đặc biệt SFR
*Các thanh ghi có thể đánh địa chỉ theo bit.
Xét theo chế độ đánh địa chỉ trực tiếp thì cần phải lưu ý rằng giá trị
địa chỉ được giới hạn đến 1byte, 00 - FFH. Điều này có nghĩa là việc sử
dụng của chế độ đánh địa chỉ này bị giới hạn bởi việc truy cập các vị trí
ngăn nhớ của RAM và các thanh ghi với địa chỉ được cho bên trong 8051.
3 Ngăn xếp và chế độ đánh địa chỉ trực tiếp.
Một công dụng chính khác của chế độ đánh địa chỉ trực tiếp là ngăn
xếp. Trong họ 8051 chỉ có chế độ đánh địa chỉ trực tiếp là được phép đẩy
vào ngăn xếp. Do vậy, một lệnh như “PVSH A” là không hợp lệ. Việc đẩy
thanh ghi A vào ngăn xếp phải được viết dưới dạng “PUAH 0E0H” với
0E0H là địa chỉ của thanh ghi A. Tương tự như vậy để đẩy thanh ghi R3
vào ngăn xếp ta phải viết là “PUSH 03”. Chế độ đánh địa chỉ trực
tiếp phải được sử dụng cho cả lệnh POP. Vì dụ “POP 04” sẽ kéo đỉnh của
ngăn xếp vào thanh ghi R4 rãnh 0.
Hoµng Quang Lý
-42-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
4 Chế độ đánh địa chỉ gián tiếp thanh ghi.
Trong chế độ này, một thanh ghi được sử dụng như một con trỏ đến
dữ liệu. Nếu dữ liệu ở bên trong CPU thì chỉ các thanh ghi R0 và R1 được
sử dụng cho mục đích này. Hay nói cách khác các thanh ghi R2 - R7 không
có thể dùng được để giữ địa chỉ của toán hạng nằm trong RAM khi sử dụng
chế độ đánh địa chỉ này khi Ro và R1 được dùng như các con trỏ, nghĩa là
khi chúng giữ các địa chỉ của các ngăn nhớ RAM thì trước chúng phải đặt
dấu (@) như chỉ ra dưới đây.
MOV A, @ R0
; Chuyển nội dung của ngăn nhớ RAM có
địa chỉ trong RO và A
MOV @ R1, B
; Chuyển nội dung của B vào ngăn nhớ
RAM có địa chỉ ở R1
Lưu ý rằng R0 cũng như R1 luôn có dấu “@” đứng trước. Khi không
có dấu này thì đó là lệnh chuyển nội dung các thanh ghi Ro và R1 chứ
không phải dữ liệu ngăn nhớ mà địa chỉ có trong R0 và R1.
DJNZ R2, AGAIN ; Lặp lại cho đến khi bộ đếm = 0.
5. ưu điểm của chế độ đánh địa chỉ gián tiếp thanh ghi.
Một trong những ưu điểm của chế độ đánh địa chỉ gián tiếp thanh ghi
là nó làm cho việc truy cập dữ liệu năng động hơn so với chế độ đánh địa
chỉ trực tiếp.
6. Hạn chế của chế độ đánh địa chỉ gián tiếp thanh ghi trong 8051.
Như đã nói ở phần trước rằng R0 và R1 là các thanh ghi duy nhất có
thể được dùng để làm các con trỏ trong chế độ đánh địa chỉ gián tiếp thanh
ghi. Vì R0 và R1 là các thanh ghi 8 bit, nên việc sử dụng của chúng bị hạn
chế ở việc truy cập mọi thông tin trong các ngăn nhớ RAM bên trong (các
ngăn nhớ từ 30H đến 7FH và các thanh ghi SFR). Tuy nhiên, nhiều khi ta
Hoµng Quang Lý
-43-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
cần truy cập dữ liệu được cất trong RAM ngoài hoặc trong không gian mã
lệnh của ROM trên chip. Hoặc là truy cập bộ nhớ RAM ngoài hoặc ROM
trên chíp thì ta cần sử dụng thanh ghi 16 bit đó là DPTR.
7. Chế độ đánh địa chỉ theo chỉ số và truy cập bộ nhớ ROM trên chíp.
Chế độ đánh địa chỉ theo chỉ số được sử dụng rộng rãi trongviệc truy
cập các phân tử dữ liệu của bảng trong không gian ROM chương trình của
8051. Lệnh được dùng cho mục đích này là “Move A, @ A + DPTR”.
Thanh ghi 16 bit DPTR là thanh ghi A được dùng để tạo ra địa chỉ của
phân tử dữ liệu được lưu cất trong ROM trên chíp. Do các phân tử dữ liệu
được cất trong không gian mã (chương trình) của ROM trên chip của 8051,
nó phải dùng lệnh Move thay cho lệnh Mov (chủ C ở cuối lệnh là chỉ mà
lệnh Code). Trong lệnh này thì nội dung của A được bổ xung vào thanh ghi
16 bit DPTR để tạo ra địa chỉ 16 bit của dữ liệu cần thiết.
8 Bảng xắp xếp và sử dụng chế độ đánh địa chỉ theo chỉ số.
Bảng xắp xế là khái niệm được sử dụng rất rộng rãi trong lập trình
các bộ vi xử lý. Nó cho phép truy cập các phần từ của một bảng thường
xuyên được sử dụng với thao tác cực tiểu. Như một ví dụ, hãy giả thiết rằng
đối với một ứng dụng nhất định ta cần x 2 giá trị trong phạm vi 0 đến 9. Ta
có thể sử dụng một bảng xắp xếp thay cho việc tính toán nó.
CHƯƠNG IV: ỨNG DỤNG
I. Bài toán:
Yêu cầu thiết kế mạch quảng cáo điều khiển:
•
Ma trận LED 8x56 được cấu trúc từ 7 ma trận LED 8x8
•
Hiển thị dòng chữ theo yêu cầu (Trôi từ phải qua trái)
•
Dùng vi điều khiển AT89C51
Hoµng Quang Lý
-44-
Tæng quan Vi ®iÒu khiÓn hä 8051
•
§å ¸n tèt nghiÖp
IC giải mã 74HC595, IC đệm cột ULN2803, đệm hàng
dùng Transistor
II. Sơ dồ khối và các chức năng của hệ quảng cáo
1.Sơ dồ khối của hệ quảng cáo
Khối
VI ĐIỀU
XUẤT
BỘ ĐỆM
Nguồn
KHIỂN
DỮ
NGÕ RA
AT89C5
LLIỆU
HÀNG
1
LIỆU
HÀNG
Hàng
BẢNG ĐÈN
Cột
GIẢI
BỘ ĐỆM
MÃ CỘT
NGÕ RA
(quét cột)
CỘT
Hình 4.1.: Sơ dồ khối của hệ quảng cáo
2.Chức năng các khối
a Khối nguồn.
- Biến áp 220V/9VAC /2A
- Cầu chỉnh lưu (D7-D10) làm nhiệm vụ chỉnh lưu cả chu kỳ
- Tụ C29,C30,C31 làm nhiệm vụ triệt nhiễu
- LM7850C làm nhiệm vụ ổn áp nguồn ra 5v rồi cấp cho mạch điều khiển
- nguồn cấp cho mạch có thể dùng ngồn của máy tính thông qua cổng USB
-Điện trở R24 có nhiệm vụ hạn chế dòng
Hoµng Quang Lý
-45-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
b. Khối điều khiển trung tâm là vi điều khiển AT89C51
Chương trình lập trình sẵn được nạp vào trong vi điều khiển 8951 sẽ
điều khiển các khối Xuất dữ liệu hàng, và giải mã cột thông qua các Port
của vi điều khiển
c. Khối Xuất dữ liệu hàng
Khối này làm nhiệm vụ xuất dữ liệu chứa trong vi điều khiển ra hàng
của bảng đèn LED ma trận để điều khiển các bóng đèn của LED ma trận
hiển thị dòng thông báo mong muốn. Dữ liệu xuất ra ở hàng phải đồng bộ
với hoạt động của khối quét cột
d. Khối giải mã cột (quét cột)
Theo nguyên lý hoạt động của mạch, tại mỗi thời điểm chỉ cho
phép các đèn ở một cột được sáng. Như vậy cần tạo ra một khối quét cột
làm nhiệm vụ lựa chọn cột được phép sáng tại mỗi thời điểm. Khối này sẽ
nhận điều khiển trực tiếp từ vi điều khiển thông qua một Port xuất khác.
e. Khối đệm ngõ ra hàng, ngõ ra cột
Các khối này làm nhiệm vụ cách li tải với các mạch ở trước nó. Bộ
đệm còn có chức năng làm tăng dòng điện của các đầu ra, trước khi cho nối
vào các chân hàng (anod) và các chân cột (cathod) của bảng đèn LED ma
trận
f. Bảng đèn LED ma trận
Đây là khối hiển thị thông tin quảng cáo. Bảng đèn sẽ nhận đồng thời
tín hiệu điều khiển từ khối xử lý hàng ( xuất dữ liệu hàng và bộ đệm hàng)
và khối xử lý cột ( khối quét cột, và bộ đệm cột). Để từ đó sẽ cho phép đèn
nào sáng, đèn nào
tắt, nhằm hiển thị ra những thông tin quảng cáo mong muốn
III . THIẾT KẾ CHI TIẾT CÁC KHỐI
Hoµng Quang Lý
-46-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
1.Thiết kế chi tiết khối nguồn
D7
D9
220VAC
9VAC
1N4007
1N4007
1N4007
R24
1N4007
K100
D8
D10
C29
470µF/25V
In
-47-
Out
Gnd
C30
470µF/25V
Hình 4.2: Thiết kế chi tiết khối nguồn
Hoµng Quang Lý
7805
C31
100µF/25V
C32
104
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Linh kiện sử dụng thiết kế khối nguồn gồm có:
•
01 biến áp 220VAC/9VAC/ 2A
•
Gồm 4 Diot 1N4007(1A)
•
2 tụ 470 µF/25v, 1 tụ 100 µF/16v ,1 tụ 104 và 1 điện trở 100Ω
•
1 IC ổn áp LM 7805C/TO có cấu trúc bên trong như hình. IC làm
nhiệm vụ nhận điện áp vào 11v/DC
•
Điện áp 11v/DC là từ đầu ra của cầu chỉnh lưu ,được đưa vào dầu vào
của IC7805 và đầu ra được ổn áp 5v /1A cấp cho mạch điều khiển làm
việc.
.
Hình 4.3: Cấu trúc của IC7805
2. Thiết thiết khối đệm hàng
Linh kiện gồm có:
•
08 transistor (2N2222)
•
08 điện trở 1K và 08 điên trở 100Ω
Hoµng Quang Lý
-48-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
V C
R
C
C
1
P 2 . 0
Q C 1
2 N 2 2 2 2
1 K
R
C
9
A n o d e
0
A n o d e
1
A n o d e
2
A n o d e
3
A n o d e
4
A n o d e
5
A n o d e
6
A n o d e
7
K 1 0 0
R
C
2
V C
P 2 . 1
C
Q C 2
2 N 2 2 2 2
R
C
1 0
1 K
R
C
3
V C
P 2 . 2
Q C 3
2 N 2 2 2 2
1 K
R
C
4
V C
P 2 . 3
K 1 0 0
C
C
Q C 4
2 N 2 2 2 2
R
C
1 1
K 1 0 0
R
C
1 2
1 K
R
C
5
V C
P 2 . 4
C
Q C 5
2 N 2 2 2 2
1 K
K 1 0 0
R
C
1 3
K 1 0 0
R
C
6
V C
P 2 . 5
1 K
R
C
7
V C
P 2 . 6
C
8
V C
P 2 . 7
C
Q C 8
2 N 2 2 2 2
1 K
R
C
1 4
K 1 0 0
C
Q C 7
2 N 2 2 2 2
1 K
R
C
Q C 6
2 N 2 2 2 2
R
C
1 5
K 1 0 0
R
C
1 6
K 1 0 0
Hình 4.4: Thiết kế khối đệm hàng
Bảng LED ma trận trong thiết kế này gồm có 8 hàng sẽ lấy dữ liệu từ
1 Port của vi điều khiển 89C51. Trong thiết kế này Port 2 được chọn làm
Port xuất dữ liệu hàng. Như vậy khối xuất dữ liệu hàng thực chất là Port 2
của vi điều khiển (có 8 chân tương ứng với 8 hàng của ma trận LED). Dữ
liệu xuất này được điều khiển bởi chương trình nạp trong vi điều khiển.
3. Thiết kế khối giải mã cột chi tiết (quét cột)
* Linh kiện gồm có:
•
07 IC(74HC595)
•
07 IC (ULN2803)
Hoµng Quang Lý
-49-
Tæng quan Vi ®iÒu khiÓn hä 8051
U
1 4
C
L O C
G
K
N
I
S D
R C L K
S R C L K
1 0
1 3
D
1 4 5
S D
1 2
1 1
§å ¸n tèt nghiÖp
C L R
G
Q
Q
Q
Q
Q
Q
Q
Q
O
H
G
F
E
D
C
B
A
9
C
9 - C
1 6
7
6
5
4
3
2
1
1 5
U
1
2
3
4
5
6
7
8
I
I
I
I
I
I
I
I
1 0
7 4 H C
U 1 4 6
C
9 - C
C
L O C
V C
1 6
1 4
K
1 2
1 1
C
G N
D
S D
S D
R C L K
S R C L K
1 0
1 3
C L R
G
Q
Q
Q
Q
Q
Q
Q
Q
O
H
G
F
E
D
C
B
A
9
C
1 6 - C
U
U
2 4
7
6
5
4
3
2
1
1 5
1
2
3
4
5
6
7
8
C
1 6 - C
2 4
1 4
C
L O C
K
1 2
1 1
V C
C
G N
D
S D
I
S D
R C L K
S R C L K
1 0
1 3
C L R
G
Q
Q
Q
Q
Q
Q
Q
Q
O
H
G
F
E
D
C
B
A
9
C
2 5 - C
U
U
3 2
7
6
5
4
3
2
1
1 5
1
2
3
4
5
6
7
8
C
2 5 - C
3 2
1 4
C
L O C
K
1 2
1 1
V C
C
G N
D
S D
I
1 0
1 3
C L R
G
7 4 H C
U 1 4 9
C
3 3 - C
4 0
1 4
C
L O C
K
1 2
1 1
V C
C
G N
D
S D
I
4 1 - C
4 8
1 4
C
L O C
K
1 2
1 1
V C
C
G N
D
S D
9
C
3 3 - C
4 0
7
6
5
4
3
2
1
1 5
1
2
3
4
5
6
7
8
Q
Q
Q
Q
Q
Q
Q
Q
O
H
G
F
E
D
C
B
A
9
C
4 1 - C
I
S D
C L R
G
Q
Q
Q
Q
Q
Q
Q
Q
O
H
G
F
E
D
C
B
A
9
C
4 9 - C
C
4 9 - C
5 6
1 4
C
L O C
K
1 2
1 1
V C
C
G N
D
S D
I
S D
R C L K
S R C L K
1 0
1 3
C L R
G
Q
Q
Q
Q
Q
Q
Q
Q
O
H
G
F
E
D
C
B
A
9
C
7
6
5
4
3
2
1
1 5
5 7 - C
C
U
U
U
U
U
U
U
U
U
T
T
T
T
T
T
T
T
1
2
3
4
5
6
7
8
O
O
O
O
O
O
O
O
U
U
U
U
U
U
U
U
T
T
T
T
T
T
T
T
1
2
3
4
5
6
7
8
O
O
O
O
O
O
O
O
U
U
U
U
U
U
U
U
T
T
T
T
T
T
T
T
1
2
3
4
5
6
7
8
O
O
O
O
O
O
O
O
U
U
U
U
U
U
U
U
T
T
T
T
T
T
T
T
1
2
3
4
5
6
7
8
O
O
O
O
O
O
O
O
U
U
U
U
U
U
U
U
T
T
T
T
T
T
T
T
1
2
3
4
5
6
7
8
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
1
1
1
1
1
1
1
9
6
5
4
3
2
1
0
1
1
1
1
1
1
1
1
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
2
2
2
2
2
1
1
1
4
3
2
1
0
9
8
7
1
1
1
1
1
1
1
1
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
3
3
3
2
2
2
2
2
2
1
0
9
8
7
6
5
1
1
1
1
1
1
1
1
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
4
3
3
3
3
3
3
3
0
9
8
7
6
5
4
3
1
2
3
4
5
6
7
8
1
1
1
1
1
1
1
1
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
4
4
4
4
4
4
4
4
8
7
6
5
4
3
2
1
1
1
1
1
1
1
1
1
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
5
5
5
5
5
5
5
4
6
5
4
3
2
1
0
9
O M
L N 2 8 0 3
1 5 9
N
N
N
N
N
N
N
N
C
5 9 5
1
2
3
4
5
6
7
8
N
N
N
N
N
N
N
N
I
I
I
I
I
I
I
I
1 0
7 4 H
O
O
O
O
O
O
O
O
1
1
1
1
1
1
1
1
O M
C
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
8
7
6
5
4
3
2
1
L N 2 8 0 3
1 5 8
U
U
6 4
1
2
3
4
5
6
7
8
N
N
N
N
N
N
N
N
I
I
I
I
I
I
I
I
5 9 5
T
T
T
T
T
T
T
T
C
C
C
C
C
C
C
C
O M
C
1 0
7 4 H C
U 1 5 1
1
2
3
4
5
6
7
8
N
N
N
N
N
N
N
N
I
I
I
I
I
I
I
I
1
2
3
4
5
6
7
8
U
U
U
U
U
U
U
U
8
7
6
5
4
3
2
1
L N 2 8 0 3
1 5 7
U
U
5 6
7
6
5
4
3
2
1
1 5
O
O
O
O
O
O
O
O
1
1
1
1
1
1
1
1
O M
C
1 0
1
2
3
4
5
6
7
8
N
N
N
N
N
N
N
N
I
I
I
I
I
I
I
I
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
L N 2 8 0 3
1 5 6
U
U
4 8
7
6
5
4
3
2
1
1 5
5 9 5
R C L K
S R C L K
1 0
1 3
O
H
G
F
E
D
C
B
A
T
T
T
T
T
T
T
T
L N 2 8 0 3
1 5 5
U
U
1 0
S D
C L R
G
7 4 H C
U 1 5 0
Q
Q
Q
Q
Q
Q
Q
Q
5 9 5
R C L K
S R C L K
1 0
1 3
C
S D
U
U
U
U
U
U
U
U
O M
C
5 9 5
R C L K
S R C L K
N
N
N
N
N
N
N
N
I
I
I
I
I
I
I
I
1 0
7 4 H C
U 1 4 8
O
O
O
O
O
O
O
O
O M
C
5 9 5
1
2
3
4
5
6
7
8
L N 2 8 0 3
1 5 4
I
I
I
I
I
I
I
I
1 0
7 4 H C
U 1 4 7
N
N
N
N
N
N
N
N
C
5 9 5
I
1 5 3
1
2
3
4
5
6
7
8
O M
L N
2 8 0 3
Hình 4.5: Thiết kế khối giải mã cột chi tiết
Bảng đèn trong thiết kế có 56 cột. Theo nguyên lý hoạt động của
khối giải mã cột, tại một thời điểm khối giải mã cột chỉ được đưa ra tín hiệu
điều khiển cho 1 cột được phép sáng. Và các cột sẽ được lần lươt lựa chọn
để được phép sáng.
Hoµng Quang Lý
-50-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Để thực hiện được chức năng này, chúng ta sẽ sử dụng IC 74HC595
* IC 74HC595
IC 74HC595 là loại IC dùng giải mã /giải đa hợp làm việc được với
tần số cao, nó đặc biệt thích hợp khi dùng làm bộ giải mã địa chỉ tác động
vào chân chọn IC của các IC nhớ lưỡng cực.
•
IC74HC595 có sơ đồ chân như sau:
Hình 4.6: Sơ đồ chân của IC74HC595
•
Sơ đồ hoạt động của IC 74HC595
Hình 4.7: Sơ đồ hoạt động của IC 74HC595
•
Chức năng các chân cua IC
Hoµng Quang Lý
-51-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Ta có các chân 1, 2, 3, 4, 5, 6, 7, 15 là các chân đầu ra của IC. Tùy
thuộc vào trạng thái của các đường địa chỉ mà ta có các trạng thái ở ngõ ra
tương úng. Khi IC hoạt động bình thường thì tại một thời điểm chỉ có môt
ngõ ra duy nhất ở trạng thái mức logic thấp, tất cả các ngõ ra còn lại ở mức
logic cao.
- Chân 8 nối với đất.
- Chân 9 dùng để nối với tâng sau
- Chân 10 có tác dụng reset các bít của thanh ghi dịch
-Chân 11 là chân cấp xung cho IC
-Chân 12 là chân chốt dữ liệu. Trạng thái của tín hiệu sẽ đuợc lưu lại
trong một khoảng thời gian nhằm ổn định trạng thái đầu ra cho tới khi có
tác động của xung chôt tiếp theo.
-Chân13 là chân cho phép IC hoạt động, chân này tích cực ở mức
thấp. Vì chỉ có 1 IC do vậy chân này được nối đât ( IC luôn hoạt động)
-Chân 16 nối với dương nguồn
4. Khối thúc công xuất cột (đệm ngõ ra cộT)
Hoµng Quang Lý
-52-
Tæng quan Vi ®iÒu khiÓn hä 8051
C
9 - C
1 6
U
1
2
3
4
5
6
7
8
C
1 6 - C
2 4
1
2
3
4
5
6
7
8
3 3 - C
C
4 1 - C
C
4 9 - C
C
5 7 - C
N
N
N
N
N
N
N
N
U
U
U
U
U
U
U
U
T
T
T
T
T
T
T
T
1
2
3
4
5
6
7
8
O
O
O
O
O
O
O
O
U
U
U
U
U
U
U
U
T
T
T
T
T
T
T
T
1
2
3
4
5
6
7
8
O
O
O
O
O
O
O
O
U
U
U
U
U
U
U
U
T
T
T
T
T
T
T
T
1
2
3
4
5
6
7
8
O
O
O
O
O
O
O
O
U
U
U
U
U
U
U
U
T
T
T
T
T
T
T
T
1
2
3
4
5
6
7
8
O
O
O
O
O
O
O
O
U
U
U
U
U
U
U
U
T
T
T
T
T
T
T
T
1
2
3
4
5
6
7
8
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
1
1
1
1
1
1
1
9
6
5
4
3
2
1
0
1
1
1
1
1
1
1
1
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
2
2
2
2
2
1
1
1
4
3
2
1
0
9
8
7
1
1
1
1
1
1
1
1
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
3
3
3
2
2
2
2
2
2
1
0
9
8
7
6
5
1
1
1
1
1
1
1
1
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
4
3
3
3
3
3
3
3
0
9
8
7
6
5
4
3
1
1
1
1
1
1
1
1
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
4
4
4
4
4
4
4
4
8
7
6
5
4
3
2
1
1
1
1
1
1
1
1
1
8
7
6
5
4
3
2
1
C
C
C
C
C
C
C
C
5
5
5
5
5
5
5
4
6
5
4
3
2
1
0
9
M
1
2
3
4
5
6
7
8
O
N
N
N
N
N
N
N
N
C
U
O
O
O
O
O
O
O
O
1
1
1
1
1
1
1
1
M
L N 2 8 0 3
1 5 9
I
I
I
I
I
I
I
I
1 0
1
2
3
4
5
6
7
8
8
7
6
5
4
3
2
1
M
1
2
3
4
5
6
7
8
O
C
1
2
3
4
5
6
7
8
T
T
T
T
T
T
T
T
C
C
C
C
C
C
C
C
L N 2 8 0 3
1 5 8
U
U
6 4
N
N
N
N
N
N
N
N
I
I
I
I
I
I
I
I
1 0
U
U
U
U
U
U
U
U
8
7
6
5
4
3
2
1
M
1
2
3
4
5
6
7
8
O
C
1
2
3
4
5
6
7
8
O
O
O
O
O
O
O
O
1
1
1
1
1
1
1
1
L N 2 8 0 3
1 5 7
U
U
5 6
N
N
N
N
N
N
N
N
I
I
I
I
I
I
I
I
1 0
1
2
3
4
5
6
7
8
M
1
2
3
4
5
6
7
8
O
C
1
2
3
4
5
6
7
8
T
T
T
T
T
T
T
T
L N 2 8 0 3
1 5 6
U
U
4 8
N
N
N
N
N
N
N
N
I
I
I
I
I
I
I
I
1 0
U
U
U
U
U
U
U
U
M
1
2
3
4
5
6
7
8
O
C
1
2
3
4
5
6
7
8
O
O
O
O
O
O
O
O
L N 2 8 0 3
1 5 5
U
U
4 0
N
N
N
N
N
N
N
N
I
I
I
I
I
I
I
I
1 0
C
O
C
U
U
3 2
1
2
3
4
5
6
7
8
L N 2 8 0 3
1 5 4
I
I
I
I
I
I
I
I
1 0
2 5 - C
N
N
N
N
N
N
N
N
C
U
U
1
2
3
4
5
6
7
8
C
1 5 3
I
I
I
I
I
I
I
I
1 0
§å ¸n tèt nghiÖp
1
2
3
4
5
6
7
8
O
L N
M
2 8 0 3
Hình 4.8: Khối thúc công xuất cột
Hoµng Quang Lý
-53-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Do dòng ra khỏi bộ giải mã là rất nhỏ không đủ công suất cung cấp
cho ma trận led do đó chúng ta phải nối cácđầu ra của bộ giải mã với một
khối khuếch đại công suất. Trong bài thiết kế này chúng em sử dụng IC
ULN2803 để khuếch đại và đệm cho ngõ ra cột
•
Sơ đồ chân của IC ULN2803 :
Hình 4.9: Sơ đồ chân của IC ULN2803
•
Sơ đồ cấu tạo và hoạt động của IC ULN2803 là :
Hình 4.10: Sơ đồ cấu tạo và hoạt động của IC ULN2803
Hoµng Quang Lý
-54-
Tæng quan Vi ®iÒu khiÓn hä 8051
•
§å ¸n tèt nghiÖp
Nguyên lý hoạt động của IC ULN2803 :
Thực chất của IC là các transistor được mắc theo kiểu darlington sau
đó được mắc qua một cổng đảo và mắc với một diode bảo vệ rồi đi xuống
đât qua chân số 9.
5. Khối hiển thị
-Điện áp vào board là: 3v
-Dòng vào board là:240 mA
-Thực chất tại một thời điểm chỉ có một cột được phép sáng( tức là 8
led được sáng còn lại đều tắt)
- Thông số áp và dòng nói ở trên chính là kết quả đo từ một cột
J8
A n o d e 1 .0
C 1
A n o d e 1 .1
C 2
A n o d e 1 .2
C 3
A n o d e 1 .3
C 4
1
1
1
1
1
2
2
1
3
5
7
9
1
3
5
7
9
1
3
2
4
6
8
1
1
1
1
1
2
2
2
A n o d e 1 .4
0
2
4
6
8
0
2
4
C 5
A n o d e 1 .5
C 6
A n o d e 1 .6
C 7
A n o d e 1 .7
C 8
Led 1
Led tương đương trong mạch
Hoµng Quang Lý
-55-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Led thực
Hình 4.11: Mô tả ma trận LED
Hoµng Quang Lý
-56-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
J8
A n o d e 1 .0
C 1
A n o d e 1 .1
C 2
A n o d e 1 .2
C 3
A n o d e 1 .3
C 4
A n o d e 5 .0
C 33
A n o d e 5 .1
C 34
A n o d e 5 .2
C 35
A n o d e 5 .3
C 36
1
3
5
7
9
11
13
15
17
19
21
23
J9
2
4
6
8
10
12
14
16
18
20
22
24
A n o d e 1 .4
A n o d e 2 .0
C 5
A n o d e 1 .5
C 9
A n o d e 2 .1
C 6
A n o d e 1 .6
C 10
A n o d e 2 .2
C 7
A n o d e 1 .7
C 11
A n o d e 2 .3
C 8
C 12
1
3
5
7
9
11
13
15
17
19
21
23
J10
2
4
6
8
10
12
14
16
18
20
22
24
A n o d e 2 .4
A n o d e 3 .0
C 13
A n o d e 2 .5
C 17
A n o d e 3 .1
C 14
A n o d e 2 .6
C 18
A n o d e 3 .2
C 15
A n o d e 2 .7
C 19
A n o d e 3 .3
C 16
C 20
1
3
5
7
9
11
13
15
17
19
21
23
Led 1
Led 2
Led 3
J11
J12
J14
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
A n o d e 5 .4
A n o d e 6 .0
C 37
A n o d e 5 .5
C 41
A n o d e 6 .1
C 38
A n o d e 5 .6
C 42
A n o d e 6 .2
C 39
A n o d e 5 .7
C 43
A n o d e 6 .3
C 40
C 44
1
3
5
7
9
11
13
15
17
19
21
23
Led 5
2
4
6
8
10
12
14
16
18
20
22
24
A n o d e 6 .4
A n o d e 7 .0
C 45
A n o d e 6 .5
C 49
A n o d e 7 .1
C 46
A n o d e 6 .6
C 50
A n o d e 7 .2
C 47
A n o d e 6 .7
C 51
A n o d e 7 .3
C 48
C 52
Led 6
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
A n o d e 3 .4
2
4
6
8
10
12
14
16
18
20
22
24
A n o d e 7 .4
C 21
A n o d e 3 .5
C 22
A n o d e 3 .6
C 23
A n o d e 3 .7
C 24
C 53
A n o d e 7 .5
C 54
A n o d e 7 .6
C 55
A n o d e 7 .7
Led 7
J13
A n o d e 4 .0
C 25
A n o d e 4 .1
C 26
A n o d e 4 .2
C 27
A n o d e 4 .3
C 28
1
3
5
7
9
11
13
15
17
19
21
23
2
4
6
8
10
12
14
16
18
20
22
24
A n o d e 4 .4
C 29
A n o d e 4 .5
C 30
A n o d e 4 .6
C 31
A n o d e 4 .7
C 32
Led 4
Hình 4.12: Khối hiển thị
Ma trận LED trong thiết kế được ghép bởi 7 ma trận LED 8x8 (8 hàng và
56 cột). Mỗi ma trận LED 8x8 có 16 chân, trong đó 8 anod và 8 cathod. Để ghép
được thành 1 ma trận 8x56 và điều khiển được bảng đèn hiện chữ, chạy chữ,
chúng ta cần phải ghép nối như sau:
-
Nối 7 chân anod có cùng vị trí trong mỗi LED lại với nhau và lấy đó làm một
chân anod chung cho bảng ma trận mới. Như thế ta sẽ được 8 chân anod
(hàng) của ma trận LED 8x56
-
56 chân kathod của 7 ma trận 8x8 sẽ là 56 cathod của ma trận LED 8x56
Trong mỗi LED ma trận 8x8 có:
Các chân Anod theo thứ tự từ trên xuống là: 8,3,16,5,9,15,10,13
Các chân cathod theo thứ tự từ phải qua trái là: 1,2,6,14,7,12,11,4
Hoµng Quang Lý
-57-
C 56
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
6. Khối Điều Khiển Trung Tâm
Linh kiện gồm có:
01 Chip 89C51 (Cấu trúc bên trong được giới thiệu ở Chương II)
1 Mạch dao động thạch anh được kết nối như hình vẽ gồm có 1 thạch anh
12MHZ, 2 tụ 33p ổn định tần số dao động và xác định tần số cho mạch
1 mạnh reset được mắc như hình vẽ gồm có 1 công tắc reset, 1 tụ 10µF, một điện
trờ 10K, 1 điốt bảo vệ 1N4007
VCC
XT AL2
Y3
C
XTAL1
1
VCC
R3
R E S IS T O R S IP 9
GND
GND
VCC
P 2 .0
P 2 .1
P 2 .2
P 2 .3
P 2 .4
P 2 .5
P 2 .6
P 2 .7
R 22
4 .7 k
1
2
3
4
5
6
7
8
D5
LED
GND
1
2
3
4
5
6
VCC
GND
XTA L1
XTA L2
RST
19
18
9
VCC
31
P 2 .0 /A 8
P 2 .1 /A 9
P 2 .2 /A 1 0
P 2 .3 /A 1 1
P 2 .4 /A 1 2
P 2 .5 /A 1 3
P 2 .6 /A 1 4
P 2 .7 /A 1 5
P 1 .0
P 1 .1
P 1 .2
P 1 .3
P 1 .4
P 1 .5
P 1 .6
P 1 .7
P 0 .0 /A D
P 0 .1 /A D
P 0 .2 /A D
P 0 .3 /A D
P 0 .4 /A D
P 0 .5 /A D
P 0 .6 /A D
P 0 .7 /A D
0
1
2
3
4
5
6
7
P 3 .0 /R XD
P 3 .1 /TXD
P 3 .2 /IN T O
P 3 .3 /IN T 1
P 3 .4 /T O
P 3 .5 /T1
P 3 .6 /W R
P 3 .7 /R D
XTA L1
XTA L2
RST
PSEN
A L E /P R O G
E A /V P P
A T89C 51
39
38
37
36
35
34
33
32
10
11
12
13
14
15
16
17
P 0 .0
P 0 .1
P 0 .2
P 0 .3
P 0 .4
P 0 .5
P 0 .6
P 0 .7
HEADER 8
30
SW 1
HEADER 8
VCC
Hình 4.13: Khối điều khiển trung tâm
-58-
1
2
3
4
5
6
7
8
29
USB
Hoµng Quang Lý
1
2
3
4
5
6
7
8
D a ta
C LO C K
20
J8
21
22
23
24
25
26
27
28
40
C 26
33p
VCC
12Mhz
GND
33p
U2
9
8
7
6
5
4
3
2
J10
C 27
D6
RST
R eset
GND
C 28
1N 4007
R 23
1 0 u F /1 6 V
10K
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Chip 89C51 là một hệ vi tính 8 bit đơn chíp CMOS có hiệu suất cao, công
suất tiêu thụ nguồn thấp
- Là IC có tính hợp trên đó hệ vi xử lý
-có 40 chân
- 4Kb ROM ,có thể ghi xóa 1000 lần
- 128x8 bit Ram trong
- 4 cổng vào ra 8 bit (32 đường xuất nhập)
- 2 bộ định thời / đếm 16 bit, 1 cấu trúc ngắt 2 mức ưu tiên
- Có 6 nguyên nhân ngắt
- Có thể lập trình được qua công nối tiếp
-Có tó210 bit được địa chỉ hóa
-Dải tần số hoạt động từ 0MHz dến 24MHz
7. Nguyên lý toàn mạch
7.1.Linh kiện cần cho thiết kế này là:
- 01 IC AT89C51 loại 40 chân PDIP
- 07 IC 74HC595 (đây là bẩy ic dùng cho mạch giải mả cột)
- 07 IC ULN2803 (là các ic được dùng ở khối đệm cột hay chính là khối
thúc công suất cột)
- 14 dế có 16 chân (dùng để cấy IC 74HC595 và IC ULN2803)
- 14 bộ đế rắc cắm 7dùng cho board led , 7dùng cho board điều khiển và 7
đoạn cáp dùng để kết nối giữa hai board này.
- 01 điện trở kéo 4,7k dùng để cấu hình cho Port o khi cần thiết là cổng vào
- 03 đế cắm 8 chân(chờ sẵn) được kết nối với các cổng còn lại của thiết kế
dùng để phục vụ cho phát triển mở rộng kích thước board led.
Hoµng Quang Lý
-59-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
- 08 transistor 2N2222 (dung để làm khối đệm hay thúc công suất hàng)
cách kết nối bộ đệm được trình bày ở thiết kế chi tiết khối đệm(sơ đồ
nguyên lý)
- 08 điện trở 1k dùng trong khối đệm hàng.
- 16 điện trở 150Ω dùng trong khối đệm hàng.
- 01 công RESET.
-01 tụ 10µF/16V dùng trong mạch reset.
- 01điện trở 10k, 01`điện trở 4,1k dùng trong mạch reset.
- 05 diot 1N4007 1A dùng trong mạch reset và chỉnh lưu cầu.
- 01thạch anh 12Mhz dùng trong mạch giao động.
-02 tụ 33p dùng trong mạch giao động.
- 02 tụ 470µF/25V, 01 tụ100µF/16V, 01 tụ 104 và tất cả các tụ này
đượcdùng trong khối nguồn.
-01 điện trở 100Ω(dùng cho khối ngồn)
- 01 IC ổn áp LM7805C/TO dùng trong khối ngồn đầu ra của IC này là
5v/DC
- 01 biến áp 220vAC/9Vac điện áp 9v/AC này cáp tới cầu chỉnh lưu
- 01 rắc USB dược gắn vào đường nguồn cấp 5v/DC cho board mạch điều
khiển, để ta có thể sử nguồn từ cổng USB của máy tinh .
- 01 rắc cắm được gắn vào đưởng nguồn 9v/AC ,(rắc này lấy điện áp
9v/AC cấp cho mạch chỉnh lưu cầu.
- 14 đế cắm 24 chân để phục vụ cho việc gắn các ma trận led (8x8) vào
board led thành ma trận led( 8x56).Việc dùng đế cắm 2 4 chân là vì bảng
led(8x8) có trúc 8chân anode và 16 chân cathod gồm hai mầu xanh, đỏ
Hoµng Quang Lý
-60-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
.Trong thiết kế này tôi chỉ quan tâm đếnmầu đỏ có nghĩa còn thừa 8 chân
mầu xanh.
- 07 ma trận led(8x8) có24 chân để ghép thành ma trận (8x56)
7.2. Sơ đồ nguyên lý toàn mạch và công cụ thiết kế mạch in
-Giao diện phần mềm hỗ trợ thiết kế sơ đồ nguyên lý ORCAD.9.2 dùng
CARTURE CIS
Hình 4.14: Giao diện ORCAD 9.2 CARTURE CIS
-Giao điện phần mềm hỗ trợ thiết kế chuyển mạch nguyên lý sang mạch in
bằng ORCAD 9.2 dùng LAYOUT PLUS
Hoµng Quang Lý
-61-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Hình 4.15: Giao diện ORCAD 9.2 LAYOUT PLUS
Hoµng Quang Lý
-62-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
U 145
R E S IS T O R S IP 9
GND
GND
VCC
P 2.0
P 2.1
P 2.2
P 2.3
P 2.4
P 2.5
P 2.6
P 2.7
21
22
23
24
25
26
27
28
R 22
4 .7 k
1
2
3
4
5
6
7
8
D5
LE D
J8
GND
1
2
3
4
5
6
P 2 .0 /A 8
P 2 .1 /A 9
P 2 .2 /A 1 0
P 2 .3 /A 1 1
P 2 .4 /A 1 2
P 2 .5 /A 1 3
P 2 .6 /A 1 4
P 2 .7 /A 1 5
19
18 XTA L1
9 XTA L2
RST
VCC
31
VCC
VCC
GND
10
13 C LR
G
D a ta
C LOC K
C 9 -C 1 6
C LO C K
HEADER 8
VCC
GND
14
HEADER 8
20
OUT
3
10
13 C LR
G
C 1 6 -C 2 4
14
C LO C K
12
11 R C LK
SR C LK
C 32
C 2 5 -C 3 2
14
C LO C K
12
11 R C LK
SR C LK
VCC
GND
C 30
4 7 0 u F /2 5 V
10
13 C LR
G
D 10
J12
Anode
Anode
Anode
Anode
4
5
6
7
Anode
Anode
Anode
Anode
0
1
2
3
Anode
Anode
Anode
Anode
4
5
6
7
1
3
5
7
9
11
13
15
17
19
1N 4007
2
4
6
8
10
12
14
16
18
20
U 153
1
2
3
4
5
6
7
8
10
SDO
QH
QG
QF
QE
QD
QC
QB
QA
9
C 1 6 -C 2 4
7
6
5
4
3
2
1
15
1
2
3
4
5
6
7
8
10
SDO
QH
QG
QF
QE
QD
QC
QB
QA
9
1
2
3
4
5
6
7
8
10
SDO
QH
QG
QF
QE
QD
QC
QB
QA
9
J13
C1
C2
C3
C4
Anode
Anode
Anode
Anode
0
1
2
3
C5
C6
C7
C8
Anode
Anode
Anode
Anode
4
5
6
7
J14
1
3
5
7
9
11
13
15
17
19
2
4
6
8
10
12
14
16
18
20
C9
C 10
C 11
C 12
A node
A node
A node
A node
0
1
2
3
C 13
C 14
C 15
C 16
A node
A node
A node
A node
4
5
6
7
1
3
5
7
9
11
13
15
17
19
2
4
6
8
10
12
14
16
18
20
Led 2
Led 3
J15
J16
J17
2
4
6
8
10
12
14
16
18
20
C 25
C 26
C 27
C 28
Anode
Anode
Anode
Anode
0
1
2
3
C 29
C 30
C 31
C 32
Anode
Anode
Anode
Anode
4
5
6
7
1
3
5
7
9
11
13
15
17
19
Led 4
2
4
6
8
10
12
14
16
18
20
C 33
C 34
C 35
C 36
A node
A node
A node
A node
0
1
2
3
C 37
C 38
C 39
C 40
A node
A node
A node
A node
4
5
6
7
1
3
5
7
9
11
13
15
17
19
Led 5
2
4
6
8
10
12
14
16
18
20
C 17
C 18
C 19
C 20
VCC
C 41
C 42
C 43
C 44
R eset
C 28
1 0 u F /1 6 V
GND
1N 4007
R 23
10K
Anode
Anode
Anode
Anode
0
1
2
3
Anode
Anode
Anode
Anode
4
5
6
7
1
3
5
7
9
11
13
15
17
19
2
4
6
8
10
12
14
16
18
20
C LO C K
12
11 R C LK
SR C LK
VCC
GND
C 49
C 50
C 51
C 52
SDI
10
13 C LR
G
1
2
3
4
5
6
7
8
SDO
QH
QG
QF
QE
QD
QC
QB
QA
9
7
6
5
4
3
2
1
15
C 4 1 -C 4 8
14
C LO C K
12
11 R C LK
SR C LK
VCC
GND
SDI
1
2
3
4
5
6
7
8
10
10
13 C LR
G
SDO
QH
QG
QF
QE
QD
QC
QB
QA
9
1
2
3
4
5
6
7
8
10
74H C 595
U 151
C 4 9 -C 5 6
14
C LO C K
12
11 R C LK
SR C LK
VCC
GND
C 53
C 54
C 55
C 56
SDI
10
13 C LR
G
74H C 595
SDO
QH
QG
QF
QE
QD
QC
QB
QA
9
7
6
5
4
3
2
1
15
IN 1
IN 2
IN 3
IN 4
IN 5
IN 6
IN 7
IN 8
IN 1
IN 2
IN 3
IN 4
IN 5
IN 6
IN 7
IN 8
IN 1
IN 2
IN 3
IN 4
IN 5
IN 6
IN 7
IN 8
QC1
2N 2222 R C 9
1K
VCC
QC2
2N 2222 R C 10
1K
O U T1
O U T2
O U T3
O U T4
O U T5
O U T6
O U T7
O U T8
18
17
16
15
14
13
12
11
C 16
C 15
C 14
C 13
C 12
C 11
C 10
C9
QC3
2N 2222 R C 11
1K
QC4
2N 2222 R C 12
1K
18
17
16
15
14
13
12
11
C 24
C 23
C 22
C 21
C 20
C 19
C 18
C 17
Anode 3
QC5
2N 2222 R C 13
1K
Anode 4
QC6
2N 2222 R C 14
P 2 .6
QC7
2N 2222 R C 15
1K
IN 1
IN 2
IN 3
IN 4
IN 5
IN 6
IN 7
IN 8
VCC
RC8
P 2 .7
QC8
2N 2222 R C 16
K 100
O U T1
O U T2
O U T3
O U T4
O U T5
O U T6
O U T7
O U T8
18
17
16
15
14
13
12
11
C 40
C 39
C 38
C 37
C 36
C 35
C 34
C 33
18
17
16
15
14
13
12
11
C 48
C 47
C 46
C 45
C 44
C 43
C 42
C 41
18
17
16
15
14
13
12
11
C 56
C 55
C 54
C 53
C 52
C 51
C 50
C 49
COM
IN 1
IN 2
IN 3
IN 4
IN 5
IN 6
IN 7
IN 8
O U T1
O U T2
O U T3
O U T4
O U T5
O U T6
O U T7
O U T8
COM
U LN 2803
U 159
C 5 7 -C 6 4
1
2
3
4
5
6
7
8
10
IN 1
IN 2
IN 3
IN 4
IN 5
IN 6
IN 7
IN 8
COM
U LN 2803
O U T1
O U T2
O U T3
O U T4
O U T5
O U T6
O U T7
O U T8
Anode 6
K 100
1K
COM
Anode 5
K100
VCC
RC7
O U T1
O U T2
O U T3
O U T4
O U T5
O U T6
O U T7
O U T8
K 100
VCC
RC6
1K
C 32
C 31
C 30
C 29
C 28
C 27
C 26
C 25
K100
VCC
RC5
P 2 .4
P 2 .5
18
17
16
15
14
13
12
11
Anode 2
K 100
VCC
RC4
Anode 1
K100
VCC
RC3
P 2 .2
P 2 .3
O U T1
O U T2
O U T3
O U T4
O U T5
O U T6
O U T7
O U T8
Anode 0
K100
COM
Hình 4.16: Sơ đồ nguyên lý toàn mạch
-63-
P 2 .0
P 2 .1
COM
Led 7
Hoµng Quang Lý
VCC
RC1
RC2
COM
U LN 2803
U 158
C 4 9 -C 5 6
7
6
5
4
3
2
1
15
C8
C7
C6
C5
C4
C3
C2
C1
U LN 2803
U 157
C 4 1 -C 4 8
74H C 595
U 150
C 45
C 46
C 47
C 48
Led 6
D6
RST
14
C 21
C 22
C 23
C 24
J18
SW 1
C 3 3 -C 4 0
18
17
16
15
14
13
12
11
U LN 2803
U 156
C 3 3 -C 4 0
7
6
5
4
3
2
1
15
O U T1
O U T2
O U T3
O U T4
O U T5
O U T6
O U T7
O U T8
U LN 2803
U 155
C 2 5 -C 3 2
7
6
5
4
3
2
1
15
IN 1
IN 2
IN 3
IN 4
IN 5
IN 6
IN 7
IN 8
U LN 2803
U 154
74H C 595
U 149
Led 1
1
3
5
7
9
11
13
15
17
19
C 9 -C 1 6
7
6
5
4
3
2
1
15
10
GND
0
1
2
3
SDI
1 0 0 u F /1 6 V 1 0 4
1N 4007
QH
QG
QF
QE
QD
QC
QB
QA
9
74H C 595
U 148
GND
Anode
Anode
Anode
Anode
SDI
10
13 C LR
G
VCC
C 31
SDI
12
11 R C LK
SR C LK
U 160
IN
SDO
74H C 595
U 147
L M 7 8 0 5 C /T O
C 29
4 7 0 u F /25 V
SDI
74H C 595
U 146
K100W
1N 4007
12
11 R C LK
SR C LK
VCC
GND
GND
D8
Jack A C
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
30
A L E /P R O G
1
1N 4007
C LO C K
29
PSEN
R 24
D9
1
2
10
11
12
13
14
15
16
17
P 3 .0 /R XD
P 3 .1 /T X D
P 3 .2 /IN T O
P 3 .3 /IN T 1
P 3 .4 /T O
P 3 .5 /T 1
P 3 .6 /W R
P 3 .7 /R D
AT89C 51
D7
J11
P 0 .0
P 0 .1
P 0 .2
P 0 .3
P 0 .4
P 0 .5
P 0 .6
P 0 .7
E A /V P P
GND
USB
39
38
37
36
35
34
33
32
P 0 .0 /A D 0
P 0 .1 /A D 1
P 0 .2 /A D 2
P 0 .3 /A D 3
P 0 .4 /A D 4
P 0 .5 /A D 5
P 0 .6 /A D 6
P 0 .7 /A D 7
P 1.0
P 1.1
P 1.2
P 1.3
P 1.4
P 1.5
P 1.6
P 1.7
XTA L1
XTA L2
RST
14
9
8
7
6
5
4
3
2
U2
40
C 26
33p
J10
VCC
12Mhz
33p
R3
D a ta
GND
C 27
VCC
XTAL2
Y3
C
XT A L1
1
VCC
J9
Anode
Anode
Anode
Anode
Anode
Anode
Anode
Anode
0
1
2
3
4
5
6
7
1
2
3
4
5
6
7
8
HEADER 8
Anode 7
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
7.3.Board điều khiển (mạch đồng 2 lớp).
Hình 4.17: Board điều khiển (mạch In 2 lớp)
Hoµng Quang Lý
-64-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Hình 4.18: Board mạch sơ đồ chân
7.4. Board hiển thị (mạch đồng khối hiển thị)
Hình 4.19:
Board
hiển thị (mạch In)
7.5. Nguyên lý hoạt động
của toàn
mạch:
Hoµng Quang Lý
-65-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
--Bảng đèn trong thiết kế này gồm có 7ma trận LED 8x8, tức là bảng
đèn gồm có 8 hàng và 56 cột
-Để dữ liệu từ vi điều khiển đưa ra hiển thị được trên bảng đèn theo
một trật tự nhất định (hiển thị đúng chữ hoặc đúng hình ảnh) thì dữ liệu gửi
ra này phải được đồng bộ với tín hiệu quét cột.
--Khi dữ liệu từ ô nhớ đầu tiên gởi ra bảng đèn thì chỉ có cột đèn đầu
tiên là được phép sáng (có sự cho phép của tín hiệu quét cột), các cột còn
lại không được phép sáng (không có sự cho phép của tín hiệu quét cột).
Tương tự như thế, khi dữ liệu từ ô nhớ thứ hai gởi ra thì chỉ có cột thứ hai
của bảng đèn là được phép sáng, các cột còn lại thì không, cho đến cột thứ
56 được hiển thị dữ liệu từ ô nhớ thứ 56 Đây được tính là một lần quét
Như vậy, xét tại một thời điểm nhất định thì chỉ có một cột LED
được phép sáng (LED nào trong cột được phép sáng thì do dữ liệu từ vi
điều khiển gởi đến qua Port P2 quyết định). Nhưng do quét với tần số cao
và nhờ vào sự lưu ảnh của mắt mà ta thấy được các chữ một cách liên tục,
không bị chớp tắt.
--Sau khi quét 56 ô nhớ lưu giữ trong bộ nhớ ROM của vi điều khiển
đủ lâu (đủ thời gian để người xem có thể đọc được chữ trên bảng đèn, bằng
cách quét đi quét lại nhiều lần) thì vi điều khiển sẽ điều khiển chuyển sang
quét 56 ô nhớ kế tiếp (dữ liệu được dịch đi một ô nhớ). Khi dịch chuyển
dữ liệu ở các ô nhớ thì hiển thị trên bảng đèn sẽ tạo cho ta cảm giác như
các chữ dịch đi một cột. Khi ô nhớ cuối cùng trong bảng dữ liệu được truy
xuất, vi điều khiển sẽ quay trở lại truy xuất ô nhớ đầu tiên.
Quá trình cứ thế tiếp tục và ta sẽ thấy được dòng chữ di chuyển trên
bảng đèn. Và dòng chữ sẽ được chạy vòng.
IV. THIẾT KẾ CHƯƠNG TRÌNH CHO VI ĐIỀU KHIỂN
Hoµng Quang Lý
-66-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
1.Nguyên lý hoạt động
Theo nguyên lý và thiết kế phần cứng của mạch quảng cáo, chúng ta
sẽ xây dựng thuật toán cho chương trình điều khiển để nạp vào vi điều
khiển AT89C51.
Trong sơ đồ nguyên lý, dữ liệu từ Port 2 sẽ được xuất ra hàng, còn
Port3 sẽ có chân được sử dụng làm chân địa chỉ đưa vào IC 74HC595 để
tiến hành giải mã cột. Như vậy mục đích của chương trình sẽ là .
- Điều khiển các cột (dịch các cột để đảm bảo tại mỗi thời điểm chỉ
có một cột được phép sáng, và sáng theo thứ tự).
- Đồng thời với việc điều khiển cột là xuất dữ liệu ra hàng tương
ứng, để hiện chữ (dữ liệu đã được nhập từ trước trong bộ nhớ ROM của
89C51)
- Điều khiển quét Led, tạo hình ảnh liên tục
- Điều khiển để dòng chữ chạy từ phải qua trái
Đầu tiên cần phải khai báo dữ liệu (nạp dữ liệu vào các ô nhớ của
Rom 8951) theo từng byte, mỗi byte chính là mã của một cột (gồm 8 led),
khi byte đó được xuất ra ứng với cột được phép sáng thì với bít 1 led sẽ
sáng, bít 0 led sẽ tắt. Các byte này sẽ được cất vào các ô nhớ liên tiếp của
bộ nhớ Rom của vi điều khiển 8951, khi chúng ta muốn truy xuất dữ liệu
thì chỉ việc truy xuất vào các ô nhớ đã đánh địa chỉ.
Dữ liệu được truy xuất, đưa ra Port 0 để hiển thị chữ bằng cách sau:
Theo nguyên tắc: địa chỉ = bộ đếm + con trỏ
Con trỏ mà chúng ta sử dụng ở đây là con trỏ dữ liệu DPTR. Đầu
tiên con trỏ sẽ được đặt ở địa chỉ đầu bảng dữ liệu, bộ đếm là đếm địa chỉ
offset , chúng ta sẽ dùng thanh chứa A chứa địa chỉ này. Và lệnh sau sẽ truy
xuất vào dữ liệu:
Hoµng Quang Lý
-67-
Tæng quan Vi ®iÒu khiÓn hä 8051
MOVC
§å ¸n tèt nghiÖp
A, @A+DPTR
Khi đó chỉ việc xuất dữ liệu từ thanh chứa A ra Port 0 là được.
Ở đây bộ đếm được dùng là bộ đếm giảm, giá trị thanh chứa được
Bắt đầu
gán đầu tiên là 56Một khung 56 cột (56 byte dữ liệu ) sẽ được quét rất
nhanh và quét làm nhiều lần để mắt ta có thể thấy được hình ảnh một cách
Thiết lập các trạng thái
rõ nét ( hiện tượng lưu ảnh trênban
võng
đầumạc ). Khi quét xong số lần quét đã
định, con trỏ sẽ tăng lên 1, và công việc sẽ được lặp lại. Lúc đó hình ảnh sẽ
dịch chuyển (đó là do dữ liệu đã dịch đi ). Khi con trỏ đến một vị trí mà dữ
Thiết lập con trỏ dữ liệu
liệu đã được truy xuất hết, chúng ta sẽ đặt nó quay trở về vị trí ban đầu. Và
DPTR
công việc cứ thế được lặp lại. Trên bảng quảng cáo chúng ta sẽ được thấy
một dòng chữ chạy từ phải qua trái, rồi mất đi và lại hiện ra
Truy xuất bảng dữ liệu
Đồng thời với việc xuất dữ liệu ra hàng chúng ta cũng phải tạo một
bộ đếm 56 để giải mã cột, bộ đếm hoạt động gần như cùng lúc với xuất dữ
Xuất dữ liệu quét cột
liệu.
2. Lưu Đồ Thuật Toán
Xuất dữ liệu ra hàng
Kiểm tra hết
khung hình
Y
Tăng con trỏ dữ liệu DPTR
để dịch ảnh tạo cảm giác
chữ trôi trên bảng đèn
N
Kiểm tra hết nội
dung quảng cáo
Y
Kiểm tra RESET
Hoµng Quang Lý
Y
-68Kết thúc
N
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
N
3.Chương trinh và nạp chương trình cho chíp AT89C51
Giao diện phần KEIL
Hoµng Quang Lý
-69-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Hình 4.20: Giao diện phần KEIL
Dùng mạch nạp ROM và chạy chương trinh có là proload v2.1 for
89series programmer của hãng Sun Rom chương trình được down load
trrực tiếp từ Web của hãng Sun Rom.http://www surom.com-Dùng phần
mềm Keil mởFile để viết chương trình tên chương trrinh phải có đuôi
- asm nếu viết bằng hợp ngữ ,nếu viết bằng ngôn ngữ c thì tên
chương trình phải có đuôi .c
- Chương trrình được viết thành công ta tiến hành dịch sang file
hex ,rồi nạp vào ROM trrên chípAT89c51
-Mạch nạp chương trình cho ROM trên chíp AT89... có ảnh dưới đây
Hoµng Quang Lý
-70-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
-Hình ảnh nạp thành công chương trình điều khiển hiển thị dòng chữ
(KHOA ĐIEN TU VIEN THONG ĐAI HOC BACH KHOA HA NOI )
trôi từ trái qua phải
-Chương trình có kich thước là:393 byte
Hình 4.21: Giao diện hỗ trợ mạch nạp chương trình
cho ROM/CHIP AT89C51
Từ nguyên lý hoạt động và lưu đồ thuật toán ta có thể xây dựng chương
trinh ASSEMBLY sau đây là mã nguồn của chương trình
CHƯƠNG TRÌNH CHẠY DÒNG CHỮ QUẢNG CÁO
CHAR
EQU P2
CLOCK
EQU P3.7
INPUT
EQU P3.6
; THIET LAP 1
MOV R4, # 38H
Hoµng Quang Lý
-71-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
AGAIN:
SETB INPUT
CLR CLOCK
CPL CLOCK
MOV R4,#38
DJNZ R4,AGAIN
;----------------------------SCAN:
MOV DPTR,#DU_LIEU
MOV R0,#255
;DO DAI DU LIEU
;----------------------------;XU LY TROI
SCAN1:
INC
DPTR
MOV 30H,DPH
;SAVE DPTR
MOV 31H,DPL
;QUYET LAP LAI
SCAN2:
MOV R2,#20
;SO LAN QUYET
;-----------------------------SCAN3:
Setb
INPUT
;CHUYEN 0 VAO
CLR CLOCK
CPL CLOCK
MOV R3,#57
Hoµng Quang Lý
;SO LAN DICH
-72-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
SCAN4:
MOV A,#0 ;CHUYEN DU LIEU
MOVC
A,@A+DPTR
MOV CHAR,A
CALL DELAY
INC
DPTR
Clr
INPUT
;CHUYEN 1 VAO
CLR CLOCK
CPL CLOCK
;-----------------------------DJNZ R3,SCAN4 ;QUYET LAI DOAN
;-----------------------------MOV DPH,30H
MOV DPL,31H
;LOAD DPTR
DJNZ R2,SCAN3
;-----------------------------DJNZR0,SCAN1
JMP SCAN
;QUYET VO HAN
;-----------------------------;CHUONG TRINH CON
DELAY:
PUSH 05
PUSH 06
MOV R6,#10
; Tre theo R6
LOOP1:
Hoµng Quang Lý
-73-
Tæng quan Vi ®iÒu khiÓn hä 8051
MOV R5,#10
§å ¸n tèt nghiÖp
;
DJNZ R5,$
DJNZ R6,LOOP1
POP 06
POP 05
RET
;----------------------------;DOAN DU LIEU
;HIEN THI DONG CHU:' Khoa dien tu vien thong dai hoc bach khoa ha noi'
DU_LIEU:
DB
0,0,0,0,0,0
DB
0,0,0,0,0,0
DB
0,0,0,0,0,0
DB
0,0,0,0,0,0
DB
0,0,0,0,0,0
DB
0,0,0,0,0,0
DB
0,0,0,0,0,0
DB
0,0,0,0,0,0
DB
0,0,0,0,0,0
DB
7FH,08H,14H,22H,41H ;CHU_K:
DB
0
DB
7FH,08H,08H,08H,7FH ;CHU_H:
DB
0
DB
3EH,41H,41H,41H,3EH
DB
0
Hoµng Quang Lý
;CHU_O
-74-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
DB
7CH,06H,05H,06H,7CH;CHU_A
DB
0,0,0,0
DB
08H,7FH,49H,41H,3EH
DB
0
DB
41H,7FH,41H
DB
0
DB
7FH,49H,49H,49H;,49H
DB
0
DB
7FH,04H,08H,10H,7FH
DB
0,0,0,0
DB
01H,01H,7FH,01H,01H
DB
0
DB
3FH,40H,40H,40H,3FH
DB
0,0,0,0
DB
1FH,20H,40H,20H,1FH
DB
0
DB
41H,7FH,41H
DB
0
DB
7FH,49H,49H,49H;,49H
DB
0
DB
7FH,04H,08H,10H,7FH
DB
0,0,0,0
DB
01H,01H,7FH,01H,01H
DB
0
DB
7FH,08H,08H,08H,7FH
Hoµng Quang Lý
;CHU_D
;CHU_I:
;CHU_E:
;CHU_N:
;CHU_T:
;CHU_U:
;CHU_V:
;CHU_I:
;CHU_E:
;CHU_N:
;CHU_T:
;CHU_H:
-75-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
DB
0
DB
3EH,41H,41H,41H,3EH
DB
0
DB
7FH,04H,08H,10H,7FH
DB
0
DB
3EH,41H,49H,3AH,08H
DB
0,0,0,0
DB
08H,7FH,49H,41H,3EH
DB
0
DB
7CH,06H,05H,06H,7CH
DB
0
DB
41H,7FH,41H
DB
0,0,0,0
DB
7FH,08H,08H,08H,7FH
DB
0
DB
3EH,41H,41H,41H,3EH
DB
0
DB
3EH,41H,41H,41H,22H
DB
0,0,0,0
DB
7FH,49H,49H,49H,36H
DB
0
DB
7CH,06H,05H,06H,7CH
DB
0
DB
3EH,41H,41H,41H,22H
DB
0
DB
7FH,08H,08H,08H,7FH
DB
0,0,0,0
DB
7FH,08H,14H,22H,41H ;CHU_K:
DB
0
DB
7FH,08H,08H,08H,7FH ;CHU_H:
DB
0
Hoµng Quang Lý
;CHU_O:
;CHU_N:
;CHU_G:
;CHU_D
;CHU_A
;CHU_I:
;CHU_H:
;CHU_O:
;CHU_C:
;CHU_B:
;CHU_A
;CHU_C:
;CHU_H:
-76-
Tæng quan Vi ®iÒu khiÓn hä 8051
DB
3EH,41H,41H,41H,3EH
DB
0
DB
7CH,06H,05H,06H,7CH
DB
0,0,0,0
§å ¸n tèt nghiÖp
;CHU_O
;CHU_A
Board
DB
7FH,08H,08H,08H,7FH
DB
0
DB
7CH,06H,05H,06H,7CH
DB
0,0,0,0
DB
7FH,04H,08H,10H,7FH
DB
0
DB
3EH,41H,41H,41H,3EH
DB
0
DB
41H,7FH,41H
DB
0
DB
0,0,0,0,0,0
DB
0,0,0,0,0,0
;CHU_H:
;CHU_A
;CHU_N:
;CHU_O:
;CHU_I:
END
4. Kết quả hệ thống quảng cáo
Hoµng Quang Lý
-77-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
Hình 4.22: Kết quả sản phẩm
Hoµng Quang Lý
-78-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
KẾT LUẬN
Sau thời gian thực hiện đề tài tốt nghiệp với sự hướng dẫn tận tình của các
thầy cô trong bộ môn CNĐT, đặc biệt là sự chỉ bảo và giúp đỡ tận tình của
thầy Phạm Mạnh Hùng cùng những cố gắng của bản thân Tôi đã hoàn
thành đề tài tốt nghiệp thiết kế Hệ Thống Quảng Cáo dùng vi điều khiển
AT89C51.
Đánh giá kết quả thực hành ứng dụng vi điều khiển AT89C51.
Vì thời gian hạn chế,mà khối lượng công việc phải thực hiện của đề tài thì
rất nhiều, cộng với sự hiểu biết của Tôi về họ vi điều khiển 8051 còn hạn
hẹp.Cho nên kết quả mới chỉ đạt được ở mức thí nghiệm.
Tuy nhiên với sản phẩm này vẫn chỉ là mô hình thí nghiệm. Vậy để phát
triển đề tài thành sản phẩm tiêu dùng thực sự yêu thích, Tôi rất mong được
sự chỉ bảo của các Thầy Cô và bạn bè.
Những hướng phát triển cho đề tài
- Mở rộng kích thước bảng Led theo yêu cầu sử dụng.
- Khối hiển thì sẽ hiển thị các mầu sắc khác nhau.
- Có nhiều chế độ chạy khác nhau .
- Kết nối với máy tính để tiện cho việc thay đổi nội dung chương trình.
Cuối cùng em xin gửi lời cảm ơn chân thành chân thành nhất tới Thầy
Phạm Mạnh Hùng - Giảng viên hướng dẫn trực tiếp cùng toàn thể các Thầy
Cô trong khoa Điện tử Viễn thông và Trường Đại Học Bách Khoa Hà Nội.
Tôi xin chân thành cảm ơn các bạn đã giúp đỡ tôi trong quá trình học tập
tại Trường đại học Bách khoa Hà Nội.
Hoµng Quang Lý
-79-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
TÀI LIỆU THAM KHẢO
•
Họ vi điều khiển 8051
Tác giả: Tống văn On, Hoàng Đức Hải
•
Cấu trúc và lập trình họ vi điều khiển 8051
Tác giả: Nguyễn Tăng Cường, Phạm Quốc Thắng
•
Website www.diendandientu.com
Hoµng Quang Lý
-80-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
MỤC LỤC
MỞ ĐẦU..................................................................................................................1
CHƯƠNG I..............................................................................................................2
TỔNG QUAN VỀ HỌ VI XỬ LÝ 8051.................................................................2
I. NHỮNG ĐẶC ĐIỂM CƠ BẢN HỌ VI XỬ LÝ 8051..............................2
1.Tóm tắt về lịch sử của 8051..........................................................................2
2. Bộ ví điều khiển 8051..................................................................................3
RAM.........................................................................................................................3
3. Sơ đồ khối chung của họ vi điều khiển 8051..............................................3
II. THÀNH VIÊN HỌ VI XỬ LÝ 8051.......................................................4
1. Bộ vi điều khiển 8052:.................................................................................4
Chân vào - ra.................................................................................................5
2. Bộ vi điều khiển 8031:.................................................................................5
3. Các bộ vi điều khiển 8051 từ các hãng khác nhau......................................5
3.1. Bộ vi điều khiển 8751........................................................................6
3.2. Bộ vi điều khiển AT8951 từ Atmel Corporation.................................6
Chân I/O...........................................................................................................6
3.3. Bộ vi điều khiển DS5000 từ hãng Dallas Semiconductor...................7
Mã linh kiện.....................................................................................................8
Mã linh kiện..............................................................................................8
3.4. Phiên bản OTP của 8051...................................................................8
3.5. Họ 8051 từ Hãng Philips...................................................................9
CHƯƠNG II...........................................................................................................10
GIỚI THIỆU VI ĐIỀU KHIỂN AT89C51............................................................10
1. Sơ Đồ Khối Của Vi Điều Khiển AT89C51...............................................10
2. Đặc Tinh Của AT89C51............................................................................11
Hoµng Quang Lý
-81-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
3. Sơ đồ chân và chức năng các chân của Chíp AT89C51 ..........................12
4. Cấu trúc của PORT In/Out.........................................................................16
5. Tổ chức bộ nhớ..........................................................................................18
Bảng 2.5: Bảng giá trị của các thanh ghi sau khi RESET hệ thống..............29
6. Hoạt Động Của Thanh Ghi TIME.............................................................29
7. Bộ Đếm Chương Trinh Và Không Gian ROM Của 8051.........................33
CHƯƠNG III..........................................................................................................38
CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ CỦA 8051..........................................................38
I .CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ TỨC THỜI VÀ THEO THANH GHI. 38
1 Chế độ đánh địa chỉ tức thời ......................................................................38
2. chế độ đánh địa chỉ theo thanh ghi:...........................................................38
II. TRUY CẬP BỘ NHỚ SỬ DỤNG CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ
KHÁC NHAU.............................................................................................39
1 Chế độ đánh địa chỉ trực tiếp......................................................................39
2 Các thanh ghi SFSR và các địa chỉ của chúng...........................................40
3 Ngăn xếp và chế độ đánh địa chỉ trực tiếp. ..............................................42
4 Chế độ đánh địa chỉ gián tiếp thanh ghi.....................................................43
5. ưu điểm của chế độ đánh địa chỉ gián tiếp thanh ghi................................43
6. Hạn chế của chế độ đánh địa chỉ gián tiếp thanh ghi trong 8051.............43
7. Chế độ đánh địa chỉ theo chỉ số và truy cập bộ nhớ ROM trên chíp........44
8 Bảng xắp xếp và sử dụng chế độ đánh địa chỉ theo chỉ số........................44
CHƯƠNG IV: ỨNG DỤNG.................................................................................44
I. Bài toán: ..................................................................................................44
II. Sơ dồ khối và các chức năng của hệ quảng cáo.....................................45
1.Sơ dồ khối của hệ quảng cáo......................................................................45
2.Chức năng các khối ....................................................................................45
Hoµng Quang Lý
-82-
Tæng quan Vi ®iÒu khiÓn hä 8051
§å ¸n tèt nghiÖp
III . THIẾT KẾ CHI TIẾT CÁC KHỐI......................................................46
1.Thiết kế chi tiết khối nguồn........................................................................47
2. Thiết thiết khối đệm hàng ........................................................................48
3. Thiết kế khối giải mã cột chi tiết (quét cột).............................................49
* IC 74HC595.............................................................................................51
4. Khối thúc công xuất cột (đệm ngõ ra cộT)................................................52
5. Khối hiển thị...............................................................................................55
6. Khối Điều Khiển Trung Tâm.....................................................................58
7. Nguyên lý toàn mạch................................................................................59
7.1.Linh kiện cần cho thiết kế này là:......................................................59
-Giao diện phần mềm hỗ trợ thiết kế sơ đồ nguyên lý ORCAD.9.2 dùng
CARTURE CIS...........................................................................................61
.....................................................................................................................61
-Giao điện phần mềm hỗ trợ thiết kế chuyển mạch nguyên lý sang mạch in
bằng ORCAD 9.2 dùng LAYOUT PLUS...................................................61
.....................................................................................................................62
7.3.Board điều khiển (mạch đồng 2 lớp).....................................................64
7.4. Board hiển thị (mạch đồng khối hiển thị)............................................65
7.5. Nguyên lý hoạt động của toàn mạch:...................................................65
IV. THIẾT KẾ CHƯƠNG TRÌNH CHO VI ĐIỀU KHIỂN.......................66
1.Nguyên lý hoạt động...................................................................................67
2. Lưu Đồ Thuật Toán....................................................................................68
3.Chương trinh và nạp chương trình cho chíp AT89C51.............................69
4. Kết quả hệ thống quảng cáo.......................................................................77
KẾT LUẬN............................................................................................................79
Hoµng Quang Lý
-83-
[...]... (Logic 0) Nu chõn ny ni lờn 5V , 8051/ 8052 thc thi Hoàng Quang Lý -14- Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp chng trỡnh trong ROM ni( chng trỡnh nh hn 4K/8K) Nu chõn ny ni vi GND( v chõn PSEN cng mc Logic 0), chng trỡnh cn thc thi cha b nh ngoi i vi 8031/8032 chõn EA phi mc Logic 0 vỡ chỳng khụng cú b nh chng trỡnh trờn CHIP Nu chõn EA mc Logic 0 i vi 8051/ 8052, ROM ni bờn trong CHIP... quan Vi điều khiển họ 8051 Đồ án tốt nghiệp 2 c Tinh Ca AT89C51 Chip AT89C51 cha trờn 60000 Transistor bao gm 4Kbyte ROM, 128Byte RAM, 32 ng xut nhp, 1 Port ni tip v 2 b nh thi 16 Bit Mt s lng mch ỏng chỳ ý trong IC n Cỏc thnh vi n mi c thờm vo cho h MCS-51 v cỏc bin th ny gn nh cú gp ụi cỏc c trng ny Tp on Seimens, ngun sn xut th hai cỏc b vi iu khin thuc h MCS-50 cung cp Chip SAB80515, mt ci tin ca 8051. .. 1 v XTAL 2 Nm trờn chõn 18 v 19 ca CHIP, 2 chõn ny c dựng ni vi thch anh ngoi nhm tỏi to dao ng v xỏc nh tn s lm vic cho mch dao ng bờn trong CHIP Kt hp vi thch anh cú thờm 2 t gm n nh tn s dao ng Tn s danh nh ca thch anh l 12MHz cho hu ht cỏc CHIP ca h MCS - 51 Hoàng Quang Lý -15- Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp IC 1 8051 Oscillator 18 C1 30pF 19 X1 12MHz C2 30pF Hỡnh 2.3: Mch dao... TTL to dao ng cho 8051 nh mch sau : TTL Oscillator 18 IC 1 8051 Oscillator 19 74LS04 Hỡnh 2.4: Mch dao ng 4 Cu trỳc ca PORT In/Out - S cu trỳc bờn trong ca chõn PORT xut/nhp nh sau : Hoàng Quang Lý -16- Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp 8051 Internal bus VDD Read latch Write to Latch Interrnal Pull-up Read pin Porrt pin Q D Port Latch Hỡnh 2.5: Cu trỳc ca PORT In/Out Vic ghi n 1 chõn... CLR TF1 7 B m Chng Trinh V Khụng Gian ROM Ca 8051 Mt thanh ghi quan trng khỏc ca 8051 l b m chng trỡnh B m chng trỡnh cú nhim v tr n a ch ca lnh k tip cn c thc hin mi khi CPU nhn mó lnh t b nh ROM, thỡ b m chng Hoàng Quang Lý -33- Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp trỡnh tng lờn tr n lnh k tip B m chng trỡnh 8051 rng 16bớt, iu ú cú ngha l, 8051 cú th truy cp c a ch chng trỡnh t 0000 n... trờn ó c ghi vo ROM ca 8051 thỡ trỡnh t cỏc bc hot ng khi c cp ngun nh sau: Khi 8051 c bt ngun b m chng trỡnh PC cú ni dung 0000 v bt u Hoàng Quang Lý -35- Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Np mó lnh u tiờn t v trớ nh u tiờn 0000 ca ROM chng trỡnh i vi chng trỡnh nờu trờn ú l mó 7D(Chuyn mt toỏn hng vo R5) Khi thc hin Mó lnh CPU nhn giỏ tr 25 v chuyn vo R5 n õy vic thc hin mt lnh c... mch kớch dựng Transistor ni ti bit 7 ca Port 1, ng c cú th ngng hay chy ch nh vo Hoàng Quang Lý -23- Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp +B +5V Động cơ 8051 Internal bus VDD Read latch Interrnal Pull-up Read pin Porrt pin 1.7 D Q Port Latch Write to Latch Hinh 2.7: Mt lnh n ca 8051 SETB P1.7 s lm ng c chy v lnh CLR P1.7 lm ng c ngng Cỏc lnh trờn s dng toỏn t (dot) nh ch 1 bit trong 1Byte... 8051 - Cho phột ngt v cm ngt Khi reset thỡ tt c mi ngt b cm, cú ngha l khụng cú ngt no c b vi iu khin ỏp ng nu chỳng c kớch hot cỏc ngt phi c cho phộp bng phn mm b vi iu khin cú th ỏp ng c Cú 1 thanh ghi c gi l cho phộp ngt IE (Interrup Enable), chu trỏch nhim v vic cho phộp ngt v cm cỏc ngt IE l thanh ghi cú th nh a ch bit Thanh ghi cho phột ngt IE Hoàng Quang Lý -26- Tổng quan Vi điều khiển họ 8051. .. nh kim tra trng thỏi ca cỏc ngừ vo hoc gi s kin ra cỏc ngừ ra Cỏc ng dng khỏc cú th s dng vic to xung nhp u n ca timer o thi gian trụi qua gia hai s kin (Vi d o rng xung) Truy xut cỏc timer ca 89C51 dựng sỏu thanh ghi chc nng c bit cho trong bng sau: Hoàng Quang Lý -29- Tổng quan Vi điều khiển họ 8051 SFR Đồ án tốt nghiệp Mc ớch a ch a ch húa tng bit TCON iu khim timer 88H Cú TMOD Ch timer 89H Khụng... 2.1: Cỏc chc nng ca PORT 3 - Chõn cho phộp b nh chng trỡnh PSEN 8051 Cung cp cho ta 4 tớn hiu iu khin BUS Tớn hiu cho phộp b nh chng trỡnh PSEN (Program Store Enable) l tớn hiu xut trờn chõn 29 õy l tớn hiu iu khin cho phộp ta truy xut b nh chng Hoàng Quang Lý -13- Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp trỡnh ngoi Chõn ny thng c ni vi chõn cho phộp xut OE ( Output Enable) ca EPROM hoc ROM cho ... quan Vi điều khiển họ 8051 Đồ án tốt nghiệp CHNG I TNG QUAN V H VI X Lí 8051 I NHNG C IM C BN H VI X Lí 8051 1.Túm tt v lch s ca 8051 Vo nm 1981 Hóng Intel gii thiu mt s b vi iu khin c gi l 8051. .. t hóng sn xut no Hoàng Quang Lý -2- Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp B vớ iu khin 8051 B vi iu khin 8051 l thnh vi n u tiờn ca h 8051 Hóng Intel ký hiu nú nh l MCS51 c tớnh S... RXD Hỡnh 1.1 B trớ bờn ca s 8051 II THNH VI N H VI X Lí 8051 B vi iu khin 8052: B vi iu khin 8052 l mt thnh vi n khỏc ca h 8051, 8052 cú tt c cỏc c tớnh chun ca 8051 ngoi nú cú thờm 128 byte