SlideShare a Scribd company logo
1 of 88
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -1-
Đề tài thiết kế Hệ Thống Quảng Cáo.
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, hai bộ định
thời, một cổng nối tiếp và 4 cổng 8 bit. Tất cả đều được tích hợp trên một
chíp. Lúc bấy giờ, bộ vi điều khiển như vậy được coi là một “hệ thống trên
chíp”. 8051 là một bộ xử lý 8 bit, tức là CPU chỉ có thể làm việc với 8 bit
dữ liệu. Dữ liệu lớn hơn 8 bit được chia ra thành các dữ liệu 8 bit để xử lý.
8051 có tất cả 4 cổng I/O mỗi cổng rộng 8 bit, có thể có một ROM trên
chíp cực đại là 64 K byte. Tuy nhiên, lúc đó các nhà sản xuất đã 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ã chương trình tương
thích với 8051. Từ đó dẫn đến sự ra đời nhiều phiên bản của 8051 với các
tốc độ khác nhau. Tuy nhiên, điều quan trọng là mặc dù có nhiều biến thể
của 8051, như khác nhau về tốc độ và dung lượng nhớ ROM trên chíp,
nhưng tất cả các lệnh đều tương thích với 8051 ban đầu. Điều này có nghĩa
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -2-
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.
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
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
Đặc tính Số lượng
ROM trên chíp 4K byte
RAM 128 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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -3-
I/O ports: Các ports vào/ ra
Serial port: port nối tiếp
Address/data : địa chỉ/ dữ liệu
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:
Interrupt
Control
Timer 2 ( 8032,8052)
Timer 1
Timer 0
Serial port
INT 1
INT 0
CPU
Oscillator Bus control
EA
RST
ALE
PSEN
I/O Port SERIAL
PORT
RXDTXD
P 0 P 1 P 2 P 3
Address/Data
Other
registers
128 Byte
RAM
128 Byte
RAM
(8032/8052)
ROM
0K - 8031/8032
4K - 8051
8K - 8052
Timer 0
Timer 1
Timer 2
(8032/8052)
T 0
T 1
T 2
T 2 EX
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -4-
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.
Đặc tính 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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -5-
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ó
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ộ
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -6-
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 RAM Chân I/O Timer Ngắt Vcc Đóng vỏ
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.
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -7-
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.
Mã linh kiện ROM RAM Chân I/O Timer Ngắt Vcc Đóng vỏ
DS5000-8
DS5000-32
DS5000T-8
DS5000T-8
8K
32K
8K
32K
128
128
128
128
32
32
32
32
2
2
2
2
6
6
6
6
5V
5V
5V
5V
40
40
40
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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -8-
DS5000-8-12
DS5000-32-8
DS5000T-32-12
DS5000-32-12
DS5000-8-12
8K
32K
32K
32K
8K
12MHz
8MHz
8MHz (with RTC)
12MHz
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
Flash và NV-RAM thường được dùng để phát triển sản phẩm mẫu. Khi một
sản phẩ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ì giá thành một đơn vị sản phẩm sẽ
rẻ hơn.
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.
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -9-
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
P1.0 - P1.7
PORT 1
LATCH
ALU
PORT 1 DRIVE
P0.0 - P0.7
PORT 0 DRIVE
RAM ADD
REGISTER
ALE/PROG
RST
EA/Vpp
PSEN
INTRUCTION
REGISTER
OSC
TIMING
AND
CONTROL
PSW
B
REGISTER
TMP2
ACC
RAM
GND
Vcc
P3.0 - P3.7
PORT 2
LATCH
PORT 0
LATCH
INTERRUPT SERIAL PORT
AND TIMER BLOCKS
PORT 3
LATCH
PORT 3 DRIVE
TMP1
STACK
POINTER
FLASH
DPTR
PROGRAM
COUNTER
PC
INCREMENTER
BUFFER
PROGRAM
ADDRESS
REGISTER
P2.0 - P2.7
PORT 0 DRIVE
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -10-
Hình 2.1: Sơ Đồ Khối Của Vi Điều Khiển AT89C51
2. Đặc Tính Của AT89C51
Chíp 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 Chíp 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 AT89C51 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.
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -11-
3. Sơ đồ chân và chức năng các chân của Chíp AT89C51
Hình 2.2: Sơ đồ chân và chức năng các chân của Chíp AT89C51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 21
22
23
24
27
26
25
28
29
34
30
31
33
32
35
36
37
38
40
39
P 1.0
P 1.1
P 1.2
P 1.3
P 1.4
P 1.5
P 1.6
P 1.7
RST
P 3.0
P 3.1
P 3.2
P 3.3
P 3.4
P 3.5
P 3.6
P 3.7
XTAL 2
XTAL 1
Vss
Vcc
P 0.0
P 0.1
P 0.2
P 0.3
P 0.4
P 0.5
P 0.6
P 0.7
EA
ALE
PSEN
P 2.7
P 2.6
P 2.5
P 2.4
P 2.3
P 2.2
P 2.1
P 2.0
RXD
TXD
LNT 0
LNT 1
T 0
T 1
WR
RD
INTEL
89C51
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -12-
- 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 địa 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 T 0 B4H Ngõ vào của bộ định thời/đếm 0.
P 3.5 T 1 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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -13-
- 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
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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -14-
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
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ởi độ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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -15-
để ổ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.
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 :
Hình 2.4: Mạch dao động
4. Cấu trúc của PORT In/Out.
Oscillator
18 19
X1
12MHz C2
30pF
C1
30pF
IC 1
8051
IC 1
8051
19
18
TTL
Oscillator
74LS04
Oscillator
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -16-
- Sơ đồ cấu trúc bên trong của chân PORT xuất/nhập như sau :
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
VDD
QD
Write
to Latch
Read
latch
Read
pin
Interrnal
Pull-up
Port
Latch
Porrt
pin
8051 Internal bus
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -17-
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).
5. Tổ chức bộ nhớ
7F
77
6F
67
5F
56
4F
47
3F
37
2F
27
1F
17
0F
07
7E
76
6E
66
5E
56
4E
46
3E
36
2E
26
1E
16
0E
06
7D
75
6D
65
5D
55
4D
45
3D
35
2D
25
1D
15
0D
05
7C
74
6C
64
5C
54
4C
44
3C
34
2C
24
1C
14
0C
04
7B
73
6B
63
5B
53
4B
43
3B
33
2B
23
1B
13
0B
03
7A
72
6A
62
5A
52
4A
42
3A
32
2A
22
1A
12
0A
02
79
71
69
61
59
51
49
41
39
31
29
21
19
11
09
01
78
70
68
60
58
50
48
40
38
30
28
20
18
10
08
00
2F
2E
2D
2C
2B
2A
29
28
27
26
25
24
23
22
21
20
1F
18
17
10
0F
08
07
00
BANK 3
BANK 2
BANK 1
Defauk register
Bank for R0 - R7
30
7F
Vïng RAM ®a dông
(General Purpose RAM)
RAM
(CÊu tróc RAM néi)
87 86 85 84 83 82 81 80
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
8F 8E 8D 8C 8B 8A 89 88
97 96 95 94 83 92 91 90
9F 9E 9D 9C 9B 9A 99 98
Not bit addressable
Thanh ghi chøc
n¨ng ®Æc biÖt
A7 A6 A5 A4 A3 A2 A1 A0
AF AE AD AC AB AA A9 A8
B7 B6 B5 B4 B3 B2 B1 B0
BF BE BD BC BB BA B9 B8
D7 D6 D5 D4 D3 D2 D1 D0
E7 E6 E5 E4 E3 E2 E1 E0
EF EE ED EC EB EA E9 E8
Not bit addressable
80
81
82
83
87
88
89
8A
8B
8C
8D
90
98
99
A0
A8
B0
B8
D0
E0
F0
FF
P0
SP
DPL
DPH
PCON
TCON
TMOD
TL0
TL1
TH0
TH1
P1
SCON
SBUF
P2
IE
P3
IP
PSW
ACC
B
§Þa
chØ
Byte
§Þa chØ Bit
( Bit Address )
§Þa
chØ
Byte
§Þa chØ Bit
( Bit Address )
8
8
8
8
32ByteBitaddressablelocations80Byte
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -18-
Hình 2.6: Tổ chức bộ nhớ RAM
Bộ nhớ bên trong 89C51 bao gồm ROM và RAM.
RAM bao gồm nhiều thành phần : Phần lưu trữ đa dụng, phần lưu trữ
địa chỉ hóa từng bit, các thanh ghi (BANK) và các thanh ghi chức năng đặc
biệt ( Special Funtion Registers).
AT89C50 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
AT89C51 nhưng AT89C51 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 AT89C51 đượ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.
AT89C51 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 quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -19-
Ý 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).
Bộ lệnh AT89C51 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 thanh ghi trạng
thái chương trình (PSW)
Giả sử băng 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.
AT89C51 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.
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ỉ.
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -20-
- 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ụ.
PSW .5 F0 D5H Cờ 0.
PSW .4 RS1 D4H Bit 1 chọn Bank thanh ghi.
PSW .3 RS0 D3H
Bit 0 chọn Bank thanh ghi.
00 = Bank 0 : Địa chỉ 00H - 07H.
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.
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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -21-
+ 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.
Lệnh sau cho phép Bank thanh ghi 3 và di chuyển nội dung của thanh ghi
R7 (địa chỉ byte 1Fh) vào thanh ghi A :
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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -22-
địa chỉ có thể truy xuất bằng các địa chỉ gián tiếp, chúng là 128Byte đầu
của AT89C51.
Để 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 AT89C51
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
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, 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.
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -23-
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
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.
VDD
QD
Write
to Latch
Read
latch
Read
pin
Interrnal
Pull-up
Port
Latch
Porrt
pin 1.7
8051 Internal bus
§éng
c¬
+B
+5V
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -24-
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 đổ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)
AT89C51 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.
- Các thanh ghi nối tiếp.
AT89C51 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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -25-
-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 1 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 12 (P3 : 3)
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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -26-
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ó một
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
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ép các bit
còn lại của thanh ghi có hiệu lực.
D7 D0
EA ---- ET2 ES ET1 EX1 ET0 EX0
EA IE.7 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 Dự phòng cho tương lại
ET2 IE.5 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ể dùng ở các bộ vi điều khiển có đặc tính mới trong
tương lai
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -27-
• 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.
- Tín hiệu RESET.
AT89C51 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 để AT89C51 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:
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 chíp không bị thay đổi
bởi tác động của ngõ vào RESET.
Hình 2.8: Mạch RESET
9 RST
INTEL
89C51
R1
10KΩ
R2
100Ω
C1
10/16
+ 5VRESET
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -28-
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
Thanh ghi B 00H
PSW 00H
SP 07H
DPTR 0000H
Port 0 – 3 xxx00000B
IP
xx000000B
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
AT89C51 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ổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -29-
• 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 dùng để đồng bộ hóa
chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ
vào hoặc gửi sự kiện ra các ngõ ra. Các ứng dụng khác có thể sử dụng việc
tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện
(Vi dụ đo độ rộng xung).
Truy xuất các timer của AT89C51 dùng sáu thanh ghi chức năng đặc
biệt cho trong bảng sau:
SFR Mục đích Địa chỉ Địa chỉ hóa từng
bit
TCON Điều khiể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 để
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -30-
thiết lập chế độ của bộ định thời, còn 2 bít cao dùng để 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 = 0, Set TRx
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 = 0, Set TRx
2 C/T 0 Bít chọn chế độ Count/ Timer
1 M1 0 Bít 1 của chế độ mode
0 M0 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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -31-
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ý
hiệu
Địa chỉ Mô tả
TCON 7 TF1 8FH Cơ bản tràn timer 1. Đặt bởi phần cứng khi
được xóa bở phần mềm, hoặc phần cứng khi
ử 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
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
khi phát hiện một cạnh xuống ở INT1 xóa
phần mềm hoạc phần cứng khi CPU chỉ đến
ng trình phục vụ ngắt
TCON 2 IT1 8AH Cờ kiểu ngắt 1 bên ngoài. đặt xóa bằng
mềm để ngắt ngoài tich cực cạnh xuống
thấp
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -32-
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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -33-
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.
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 Trình Và Không Gian ROM Của 8051
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -34-
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
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ộ trình tự hoạt động của bộ đếm chương trình 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, 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át mộ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 Ngôn Ngữ Máy Hợp Ngữ
00000 7D25 MOV R5, #25H
00000 7F34 MOV R7, #34H
00002 7400 MOV A,#0
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -35-
Địa Chỉ Mã lệnh
0000 7D
0001 25
0002 7F
0003 34
0004 74
0005 00
0006 2D
0007 2F
0008 24
0009 12
000A 80
000B FE
Bảng 2.11: Nội dung ROM
Sau khi chương trình được nạ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 trinh trên
được giới thiệu ở bảng sau. Tại địa chỉ 0000 có
mã 7D là mà lệnh chuyển một giá trị vào thanh
ghi R5, còn địa chỉ 0001, chứa toán hạng (Giá trị
250000) Cần được chuyển vào R5. Do vậy lệnh
“MOV R5 #25H” có mã lệnh là “7D25” trong
đó 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
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
đượ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.
00004 2D ADD A, R5
00006 2F ADD A, R7
00008 2412 ADD A, #12H
0000A 80EF HERE: SUMP HERE
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -36-
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
• 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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -37-
Đ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
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ớ 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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -38-
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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -39-
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 3. Trực tiếp
4. gián tiếp qua thanh ghi 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.
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:
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -40-
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 được truy cập bằng thanh ghi theo các tên gọi của
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -41-
chúng là R0 - R7 còn các ngăn nhớ khác của RAM thì không có tên 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 (#) 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, R4
MOVA, 4
Hai lệnh này giống nhau đều sao nội dung thanh ghi R4 vào A
MOV A, 7;
MOV A,R7
Hai lệnh này đều như nhau là sao nội dung R7 vào thanh ghi A
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ững cặp lệnh có cùng ý nghĩa dưới đây:
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -42-
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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -43-
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
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.
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -44-
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ư “PUSH 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.
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 R0 và A
MOV @ R1, B
Chuyển nội dung của B vào ngăn nhớ RAM có địa chỉ ở R1
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -45-
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.
DJNZR2, 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
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à “Movc 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 Movc 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.
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -46-
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 x2
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
• 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
VI ĐIỀU
KHIỂN
AT89C5
1
Hàng
BẢNG ĐÈN
Cột
XUẤT
DỮ
LLIỆU
LIỆU
HÀNG
BỘ
ĐỆM
NGÕ RA
HÀNG
GIẢI
MÃ
CỘT
(quét
BỘ
ĐỆM
NGÕ RA
CỘT
Khối
Nguồn
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -47-
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 nguồ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
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)
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -48-
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
1.Thiết kế chi tiết khối nguồn
Hình 4.2: Thiết kế chi tiết khối nguồn
Gnd
OutIn 7805
220VAC 9VAC 1N4007 1N4007
1N40071N4007
D9 D7
D8
D10
100µF/25V
C31
C29
470µF/25V 470µF/25V
C30
R24
K100
104
C32
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -49-
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 đầ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Ω
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -50-
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)
P2.7
Anode 5
VCC
QC2
2N2222
VCC
P2.6
Anode 2
RC5
1K
RC13
K100
VCC
P2.1
VCC
RC2
1K
QC5
2N2222
P2.5
QC4
2N2222
QC1
2N2222
RC3
1K
RC1
1K
QC6
2N2222
VCC
RC14
K100
Anode 3
Anode 6
P2.4
RC10
K100
P2.0
RC11
K100
RC8
1K
QC3
2N2222
RC7
1K
Anode 4
P2.3
VCC
QC8
2N2222
VCC
Anode 7
Anode 0
RC9
K100
QC7
2N2222
P2.2
RC4
1K
RC12
K100
Anode 1
RC6
1K
VCC
RC16
K100
RC15
K100
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -51-
• 07 IC (ULN2803)
Hình 4.5: Thiết kế khối giải mã cột chi tiết
C33-C40
C23
C26
C46
C13
U150
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
CLOCK
C18
VCC
C33
U145
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
C25-C32
C2
C52
U153
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
U158
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C7
C38
C16-C24
CLOCK
C30
C10
U157
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C12
C22
C25
C45
CLOCK
GND
VCC
C1
C6
C51
C17
C37
C56
C9
C29
C49-C56
C16
C11
C21
VCC
C44
U156
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
CLOCK
U148
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
C32
GND
C5
VCC
GND
VCC
C36
C55
VCC
C48
C50
GND
C43
CLOCK
C28
C15
CLOCK
C4
C20
C40
C9-C16
C41-C48
GND
C35
U155
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
U149
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
C33-C40
U159
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C54
U146
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
GND
GND
C42
U151
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
U147
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
C49-C56
U154
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C24
C27
C47
C14
C25-C32
C41
CLOCK
C49
C8
C9-C16
C19
C57-C64
C34
C31
C3
C53
C39
C16-C24
C41-C48
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -52-
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 để được phép
sáng.
Để 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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -53-
Hình 4.7: Sơ đồ hoạt động của IC 74HC595
• Chức năng các chân của IC
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)
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -54-
-Chân 16 nối với dương nguồn 5V DC
4. Khối thúc công xuất cột (đệm ngõ ra cộT)
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -55-
C23
C26
C46
C13
C18
C33
C2
C52
U153
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
U158
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C7
C38
C30
C10
U157
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C12
C22
C25
C45
C1
C6
C51
C17
C37
C56
C9
C29
C49-C56
C16
C11
C21
C44
U156
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C32
C5
C36
C55
C48
C50
C43
C28
C15
C4
C20
C40
C9-C16
C41-C48
C35
U155
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C33-C40
U159
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C54
C42
U154
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C24
C27
C47
C14
C25-C32
C41
C49
C8
C19
C57-C64
C34
C31
C3
C53
C39
C16-C24
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -56-
Hình 4.8: Khối thúc công xuất cột
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 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à :
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -57-
Hình 4.10: Sơ đồ cấu tạo và hoạt động của IC ULN2803
• 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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -58-
Led thực Led tương đương trong mạch
Hình 4.11: Mô tả ma trận LED
Anode 1.4
C2
C7
C6
C1
Anode 1.3
J8
Led 1
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
Anode 1.0
Anode 1.2
C5
Anode 1.7
Anode 1.6
Anode 1.1
C4
C3
C8
Anode 1.5
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -59-
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ó 24 chân, trong đó 8 anod và 16 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à: A1,A2,A3,A4,A5,A6,A7,A8
C13
Anode 3.4
Anode 4.4
Anode 4.6
Anode 1.4
Anode 5.5
C45 C49
Anode 2.7 Anode 3.3
Anode 5.0
C28
Anode 4.0
C2 C14
C40
Anode 6.7
C29
J14
Led 7
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
C7
C55
Anode 3.2
C35
Anode 2.1
C17
Anode 6.6 Anode 7.2
C31
C34
Anode 6.1
C12
C23
C53
J10
Led 3
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
Anode 5.4
C6
Anode 6.0
C44
Anode 2.6
C1
C22
Anode 7.7
J13
Led 4
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
Anode 5.3
C27
C43
C54
C21
Anode 1.3
J8
Led 1
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
Anode 6.5
Anode 1.0
Anode 4.7
Anode 4.2
J11
Led 5
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
Anode 2.0
Anode 7.1
Anode 2.5
Anode 3.7
C33
Anode 1.2
C11
Anode 5.2
C48
Anode 4.5
C52
C5
C16
C39
Anode 3.1
Anode 6.4
Anode 7.6
Anode 1.7
Anode 3.6
C42
J9
Led 2
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
Anode 4.1
Anode 2.4
C25
C20
Anode 6.3
C37
Anode 1.6
Anode 7.0
Anode 2.3
Anode 1.1
Anode 7.5
J12
Led 6
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
C10
Anode 5.7
C51
Anode 3.5
C38
C4
C56
Anode 3.0
Anode 6.2
C9
C30C26
C24
Anode 5.1
C41
C3
C8
C15 C19
Anode 7.4
C32
Anode 4.3
Anode 1.5
C36
C47
Anode 2.2
C18
Anode 7.3
Anode 5.6
C46 C50
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -60-
Các chân cathod theo thứ tự từ phải qua trái là: K12,K22,K32,K42,K52,K62,K72,K82
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
J8
USB
1
2
3
4
5
6
R23
10K
RST
C28
10uF/16V
RST
P2.0
Data
C
R3
RESISTOR SIP 9
12
3
4
5
6
7
8
9
GND
C27
33p
P0.5
J10
HEADER 8
1
2
3
4
5
6
7
8
P2.5
HEADER 8
1
2
3
4
5
6
7
8CLOCK
VCC
P0.2
P2.1
Y3
12Mhz
P2.6
GND
P0.6
VCC
VCC
GND
P2.2
P2.7
U2
AT89C51
9
18
19
20
29
30
31
40
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST
XTAL2
XTAL1
GND
PSEN
ALE/PROG
EA/VPP
VCC
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INTO
P3.3/INT1
P3.4/TO
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
VCC
P0.3
P0.7
XTAL1
VCC
XTAL1
GND
R22
4.7k
P0.1
P2.3
GND
XTAL2
C26
33p
XTAL2
D6
1N4007
P0.4
D5
LED
P0.0
P2.4
SW1
Reset
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -61-
Hình 4.13: Khối điều khiển trung tâm
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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -62-
- 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.
- 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 được
dùng trong khối nguồn.
-01 điện trở 100Ω(dùng cho khối nguồ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 tính.
- 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.
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -63-
- 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, đỏ
.Trong thiết kế này tôi chỉ quan tâm đến mầ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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -64-
-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
Hình 4.15: Giao diện ORCAD 9.2 LAYOUT PLUS
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -65-
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -66-
GND
GND
C32
C35
C31
P0.1
C4
C33-C40
Anode 4
C7
Anode 4
C
R3
RESISTOR SIP 9
12
3
4
5
6
7
8
9
C12
C53
GND
VCC
C36
Anode 3
P0.6
RC6
1K
QC7
2N2222
Anode 5
Anode 3
C12
VCC
Anode 3
VCC
C50
J13
Led 2
2
4
6
8
10
12
14
16
18
20
1
3
5
7
9
11
13
15
17
19
VCC
C42
C41
Anode 6
RC15
K100
RC4
1K
U151
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
SW1
Reset
C17
Anode 2
J10
HEADER 8
1
2
3
4
5
6
7
8
C27
33p
C55
Anode 0
Anode 0
C55
CLOCK
RC14
K100
RC3
1K
QC4
2N2222
C16
C24
C46
P2.5
RC16
K100
P2.6
GND
C27
C47
C22
RC12
K100
RC9
K100
HEADER 8
1
2
3
4
5
6
7
8
C25-C32
C50
Anode 7
U157
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
VCC
GND
C19
Anode 1
P2.1
C8
C3
C27
Anode 2
CLOCK
Anode 2
Anode 2
C56
U153
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
U146
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
U156
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C31
C34
C8
C32
P0.7
C11
CLOCK
Anode 5
Anode 7
Anode 3
Anode 6
C39
C13
C37
C16-C24
C41-C48
Anode 6
Anode 6
C32
104
P0.4
P2.1
C18
C42
C3
C33-C40
VCC
VCC
C54
Anode 5
Y3
12Mhz
P2.6
C23
C26
C46
GND
C23
C47
P2.5
C9-C16
Anode 4
VCC
GND
VCC
C18
C41
C28
C49-C56
C4
D10
1N4007
Anode 1
Anode 1
RC2
1K
XTAL2
U147
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
RC13
K100
C15
C33
C33
Anode 0
Anode 0
C9
QC5
2N2222
J14
Led 3
2
4
6
8
10
12
14
16
18
20
1
3
5
7
9
11
13
15
17
19
C25-C32
CLOCK
C49
Anode 4
GND
C38
Anode 7
Anode 6
P2.0
C7
C16-C24
C38
GND
C14
C57-C64
Anode 3
Anode 3
R23
10K
C43
P2.2
D6
1N4007
Anode 3
C2
C10
C30
C19
QC1
2N2222
C53
Anode 0
C49
C22
C48
P2.7
U148
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
P2.4
C9-C16
C25
C45
C24
P0.0
Anode 7
Anode 7
U2
AT89C51
9
18
19
20
29
30
31
40
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST
XTAL2
XTAL1
GND
PSEN
ALE/PROG
EA/VPP
VCCP1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INTO
P3.3/INT1
P3.4/TO
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
Anode 0
R24
K100W
D9
1N4007
VCC
C5
C29
RST
Anode 2
XTAL1
Anode 2
D8
1N4007
C14
Anode 1
C31
100uF/16V
VCC
C34
Anode 5
CLOCK
Anode 5
C52
XTAL1
VCC
Anode 5
RC10
K100
D7
1N4007
Anode 4
C17
C37
VCC
C15
C39
Data
C6
GND
Anode 6
U149
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
Anode 6
R22
4.7k
QC6
2N2222
P2.3
Anode 0
U145
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
Anode 4
C9
C29
C44
J12
Led 1
2
4
6
8
10
12
14
16
18
20
1
3
5
7
9
11
13
15
17
19
J11
Jack AC
1
2
C1
Anode 1
C10
J15
Led 4
2
4
6
8
10
12
14
16
18
20
1
3
5
7
9
11
13
15
17
19
C52
Anode 1
QC3
2N2222
VCC
P0.5
C21
VCC
C44
C25
J17
Led 6
2
4
6
8
10
12
14
16
18
20
1
3
5
7
9
11
13
15
17
19
P2.3
Anode 4
RC7
1K
CLOCK
Anode 4
VCC
GND
Anode 7
C20Anode 3
Anode 3
XTAL2
C13
GND
C35
Anode 2
Data
C1
U155
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
CLOCK
Anode 0
Anode 0
C51
U158
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
C30
470uF/25V
RC11
K100
RC8
1K
J16
Led 5
2
4
6
8
10
12
14
16
18
20
1
3
5
7
9
11
13
15
17
19
Anode 5
QC8
2N2222
RC1
1K
C26
33p
C5
VCC
C36
GND
C6
C30
Anode 7
Anode 7
D5
LED
VCC
C45
P2.4
Anode 7
C48
C11
GND
C51
Anode 2
Anode 2
QC2
2N2222
Anode 1
VCC
U154
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
GND
C43
C16
C40
P0.2
Anode 5
Anode 5
U150
74HC595
9
10
13
14
11
12
15
1
2
3
4
5
6
7
SDO
CLR
G
SDI
SRCLK
RCLK
QA
QB
QC
QD
QE
QF
QG
QH
C56
RC5
1K
VCC
U160
LM7805C/TO
1 3
IN OUT
C29
470uF/25V
C28
C21
C54
U159
ULN2803
10
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8C28
10uF/16V
P2.7
VCC
C49-C56
Anode 6
J8
USB
1
2
3
4
5
6
RST
VCC
Anode 6
P0.3
C20
C40
C26
P2.2
C41-C48
CLOCK
Anode 1
C2 Anode 1 J9
HEADER 8
1
2
3
4
5
6
7
8
J18
Led 7
2
4
6
8
10
12
14
16
18
20
1
3
5
7
9
11
13
15
17
19
P2.0
Anode 4
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -67-
Hình 4.16: Sơ đồ nguyên lý toàn mạch
7.3.Board điều khiển (mạch đồng 2 lớp).
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -68-
Hình 4.17: Board điều khiển (mạch In 2 lớ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)
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -69-
7.5. Nguyên lý hoạt động của toàn mạch:
--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.
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -70-
IV. THIẾT KẾ CHƯƠNG TRÌNH CHO VI ĐIỀU KHIỂN
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ỏ
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -71-
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:
MOVC A, @A+DPTR
Khi đó chỉ việc xuất dữ liệu từ thanh chứa A ra Port 2 là được.
Ở đây bộ đếm được dùng là bộ đếm giảm, giá trị thanh chứa được
gán đầu tiên là 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 rõ nét ( hiện tượng
lưu ảnh trên võng mạ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ữ liệu đã được truy
xuất hết, chúng ta sẽ đặt nó quay trở về vị trí ban đầu. Và 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
Đồ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ữ
liệu.
2. Lưu Đồ Thuật Toán
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -72-
N
N
Bắt đầu
Thiết lập các trạng thái
ban đầu
Thiết lập con trỏ dữ liệu
DPTR
Truy xuất bảng dữ liệu
Xuất dữ liệu quét cột
Kiểm tra hết
khung hình
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
Kiểm tra hết nội
dung quảng cáo
Kết thúc
N
Xuất dữ liệu ra hàng
Kiểm tra RESET
Y
Y
Y
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -73-
3.Chương trinh và nạp chương trình cho chíp AT89C51
Giao diện phần KEIL
Hình 4.20: Giao diện phần KEIL
Dùng mạch nạp ROM và chạy chương trình 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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -74-
- 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 trên chíp AT89c51
-Mạch nạp chương trình cho ROM trên chíp AT89... có ảnh dưới đây
-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
Tổng quan Vi điều khiển họ 8051 Đồ án tốt
nghiệp
Hoàng Quang Lý -75-
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ
Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ

More Related Content

What's hot

Toàn tập về orcad
Toàn tập về orcadToàn tập về orcad
Toàn tập về orcadDavid Trần
 
Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5Mr Giap
 
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...Nguyen Vietnam
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 5 tập lệnh lập trình
Lập trình PLC S7 1200 tiếng Việt-Chuong 5 tập lệnh lập trìnhLập trình PLC S7 1200 tiếng Việt-Chuong 5 tập lệnh lập trình
Lập trình PLC S7 1200 tiếng Việt-Chuong 5 tập lệnh lập trìnhXuân Thủy Nguyễn
 
Báo cáo chuyên đề HỆ THỐNG SCADA QUẢN LÝ, GIÁM SÁT ĐIỆN NĂNG
Báo cáo chuyên đề HỆ THỐNG SCADA QUẢN LÝ, GIÁM SÁT ĐIỆN NĂNG Báo cáo chuyên đề HỆ THỐNG SCADA QUẢN LÝ, GIÁM SÁT ĐIỆN NĂNG
Báo cáo chuyên đề HỆ THỐNG SCADA QUẢN LÝ, GIÁM SÁT ĐIỆN NĂNG nataliej4
 
Bài tập thảo luận KTTC1
Bài tập thảo luận KTTC1Bài tập thảo luận KTTC1
Bài tập thảo luận KTTC1Hùng Hữu
 
Cẩm nang thi GSAT Samsung 2017
Cẩm nang thi GSAT Samsung 2017Cẩm nang thi GSAT Samsung 2017
Cẩm nang thi GSAT Samsung 2017giang nguyen le
 
Đồ Án Điều Khiển Động Cơ Bước Dùng IC Số _08304012092019
Đồ Án Điều Khiển Động Cơ Bước Dùng IC Số _08304012092019Đồ Án Điều Khiển Động Cơ Bước Dùng IC Số _08304012092019
Đồ Án Điều Khiển Động Cơ Bước Dùng IC Số _08304012092019hanhha12
 
Cách tạo chân linh kiện trong Orcad Layout P1
Cách tạo chân linh kiện trong Orcad Layout P1Cách tạo chân linh kiện trong Orcad Layout P1
Cách tạo chân linh kiện trong Orcad Layout P1Vuong Do
 
Báo cáo thực tập chuyên ngành điện công nghiệp, 9 điểm
Báo cáo thực tập chuyên ngành điện công nghiệp, 9 điểmBáo cáo thực tập chuyên ngành điện công nghiệp, 9 điểm
Báo cáo thực tập chuyên ngành điện công nghiệp, 9 điểmLuanvantot.com 0934.573.149
 
Bài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự độngBài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự độngNguyễn Nam Phóng
 

What's hot (20)

Hệ thống điều khiển đóng mở cửa tự động thông minh bằng PLC
Hệ thống điều khiển đóng mở cửa tự động thông minh bằng PLCHệ thống điều khiển đóng mở cửa tự động thông minh bằng PLC
Hệ thống điều khiển đóng mở cửa tự động thông minh bằng PLC
 
Đề tài: Điều khiển thu thập dữ liệu cho hệ thống băng tải, HOT
Đề tài: Điều khiển thu thập dữ liệu cho hệ thống băng tải, HOTĐề tài: Điều khiển thu thập dữ liệu cho hệ thống băng tải, HOT
Đề tài: Điều khiển thu thập dữ liệu cho hệ thống băng tải, HOT
 
Toàn tập về orcad
Toàn tập về orcadToàn tập về orcad
Toàn tập về orcad
 
Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5Đồ án thi công mạch LED Cube 5x5x5
Đồ án thi công mạch LED Cube 5x5x5
 
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 5 tập lệnh lập trình
Lập trình PLC S7 1200 tiếng Việt-Chuong 5 tập lệnh lập trìnhLập trình PLC S7 1200 tiếng Việt-Chuong 5 tập lệnh lập trình
Lập trình PLC S7 1200 tiếng Việt-Chuong 5 tập lệnh lập trình
 
Báo cáo chuyên đề HỆ THỐNG SCADA QUẢN LÝ, GIÁM SÁT ĐIỆN NĂNG
Báo cáo chuyên đề HỆ THỐNG SCADA QUẢN LÝ, GIÁM SÁT ĐIỆN NĂNG Báo cáo chuyên đề HỆ THỐNG SCADA QUẢN LÝ, GIÁM SÁT ĐIỆN NĂNG
Báo cáo chuyên đề HỆ THỐNG SCADA QUẢN LÝ, GIÁM SÁT ĐIỆN NĂNG
 
Bài tập thảo luận KTTC1
Bài tập thảo luận KTTC1Bài tập thảo luận KTTC1
Bài tập thảo luận KTTC1
 
Đề tài: Đo và điều khiển tốc độ động cơ dùng 8051, HAY
Đề tài: Đo và điều khiển tốc độ động cơ dùng 8051, HAYĐề tài: Đo và điều khiển tốc độ động cơ dùng 8051, HAY
Đề tài: Đo và điều khiển tốc độ động cơ dùng 8051, HAY
 
ĐỒ ÁN: Thiết kế mạch đếm sản phẩm dùng cảm biến hồng ngoại!
ĐỒ ÁN: Thiết kế mạch đếm sản phẩm dùng cảm biến hồng ngoại!ĐỒ ÁN: Thiết kế mạch đếm sản phẩm dùng cảm biến hồng ngoại!
ĐỒ ÁN: Thiết kế mạch đếm sản phẩm dùng cảm biến hồng ngoại!
 
Cẩm nang thi GSAT Samsung 2017
Cẩm nang thi GSAT Samsung 2017Cẩm nang thi GSAT Samsung 2017
Cẩm nang thi GSAT Samsung 2017
 
Đồ Án Điều Khiển Động Cơ Bước Dùng IC Số _08304012092019
Đồ Án Điều Khiển Động Cơ Bước Dùng IC Số _08304012092019Đồ Án Điều Khiển Động Cơ Bước Dùng IC Số _08304012092019
Đồ Án Điều Khiển Động Cơ Bước Dùng IC Số _08304012092019
 
Cách tạo chân linh kiện trong Orcad Layout P1
Cách tạo chân linh kiện trong Orcad Layout P1Cách tạo chân linh kiện trong Orcad Layout P1
Cách tạo chân linh kiện trong Orcad Layout P1
 
Chương 1 tq kt robot new
Chương 1 tq kt robot newChương 1 tq kt robot new
Chương 1 tq kt robot new
 
Bìa báo cáo
Bìa báo cáoBìa báo cáo
Bìa báo cáo
 
Đề tài: Thiết kế hệ thống đo độ ẩm, HAY, 9đ
Đề tài: Thiết kế hệ thống đo độ ẩm, HAY, 9đĐề tài: Thiết kế hệ thống đo độ ẩm, HAY, 9đ
Đề tài: Thiết kế hệ thống đo độ ẩm, HAY, 9đ
 
Báo cáo thực tập chuyên ngành điện công nghiệp, 9 điểm
Báo cáo thực tập chuyên ngành điện công nghiệp, 9 điểmBáo cáo thực tập chuyên ngành điện công nghiệp, 9 điểm
Báo cáo thực tập chuyên ngành điện công nghiệp, 9 điểm
 
Bài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự độngBài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự động
 
Đề tài: Thiết kế mạch điều khiển máy bơm nước tự động, HAY
Đề tài: Thiết kế mạch điều khiển máy bơm nước tự động, HAYĐề tài: Thiết kế mạch điều khiển máy bơm nước tự động, HAY
Đề tài: Thiết kế mạch điều khiển máy bơm nước tự động, HAY
 
Bài tập môn giao tiếp
Bài tập môn giao tiếpBài tập môn giao tiếp
Bài tập môn giao tiếp
 

Similar to Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ

Lập trình C cho 8051
Lập trình C cho 8051Lập trình C cho 8051
Lập trình C cho 8051chilacaiten
 
Chuong 2 gioi thieu ve cau truc ho vdk 8051
Chuong 2 gioi thieu ve cau truc ho vdk 8051Chuong 2 gioi thieu ve cau truc ho vdk 8051
Chuong 2 gioi thieu ve cau truc ho vdk 8051Bút Chì
 
[Giao trinh] vi dieu-khien_8051 - dh tra vinh
[Giao trinh]   vi dieu-khien_8051 - dh tra vinh[Giao trinh]   vi dieu-khien_8051 - dh tra vinh
[Giao trinh] vi dieu-khien_8051 - dh tra vinhcry_viem
 
Tailieu.vncty.com thiet-ke-dong-ho-thoi-gian-thu
Tailieu.vncty.com   thiet-ke-dong-ho-thoi-gian-thuTailieu.vncty.com   thiet-ke-dong-ho-thoi-gian-thu
Tailieu.vncty.com thiet-ke-dong-ho-thoi-gian-thuTrần Đức Anh
 
ky thuat vi xu lychuong4.ppt
ky thuat vi xu lychuong4.pptky thuat vi xu lychuong4.ppt
ky thuat vi xu lychuong4.pptChienNguyenViet
 
Giao trinh 8051.doc
Giao trinh 8051.docGiao trinh 8051.doc
Giao trinh 8051.docLê Hùng
 
Thiết kế đồng hồ thời gian thực sử dụng DS1307, hiển thị trên 6 Led 7 thanh v...
Thiết kế đồng hồ thời gian thực sử dụng DS1307, hiển thị trên 6 Led 7 thanh v...Thiết kế đồng hồ thời gian thực sử dụng DS1307, hiển thị trên 6 Led 7 thanh v...
Thiết kế đồng hồ thời gian thực sử dụng DS1307, hiển thị trên 6 Led 7 thanh v...Thư Viện Số
 
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien tiểu minh
 
Đề tài Lập trình C cho họ vi điều khiển 8051
Đề tài Lập trình C cho họ vi điều khiển 8051Đề tài Lập trình C cho họ vi điều khiển 8051
Đề tài Lập trình C cho họ vi điều khiển 8051Brooklyn Abbott
 
Lap trinh-vdk-89 s52
Lap trinh-vdk-89 s52Lap trinh-vdk-89 s52
Lap trinh-vdk-89 s52Cu Luc
 
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505Nguyen Luc
 
2.stm32 f10e
2.stm32 f10e2.stm32 f10e
2.stm32 f10eBchBlack
 
Lap trinh-c-cho-vdk
Lap trinh-c-cho-vdkLap trinh-c-cho-vdk
Lap trinh-c-cho-vdkHiepsvd Bk
 
Viết Ngôn Ngữ Lập Trình 8051 PIC AVR
Viết Ngôn Ngữ Lập Trình 8051 PIC AVRViết Ngôn Ngữ Lập Trình 8051 PIC AVR
Viết Ngôn Ngữ Lập Trình 8051 PIC AVRMr Giap
 
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.doc
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.docĐố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.doc
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.docmokoboo56
 

Similar to Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ (20)

Lập trình C cho 8051
Lập trình C cho 8051Lập trình C cho 8051
Lập trình C cho 8051
 
Vdk 8051
Vdk 8051 Vdk 8051
Vdk 8051
 
Chuong 2 gioi thieu ve cau truc ho vdk 8051
Chuong 2 gioi thieu ve cau truc ho vdk 8051Chuong 2 gioi thieu ve cau truc ho vdk 8051
Chuong 2 gioi thieu ve cau truc ho vdk 8051
 
Atmel avr
Atmel avrAtmel avr
Atmel avr
 
[Giao trinh] vi dieu-khien_8051 - dh tra vinh
[Giao trinh]   vi dieu-khien_8051 - dh tra vinh[Giao trinh]   vi dieu-khien_8051 - dh tra vinh
[Giao trinh] vi dieu-khien_8051 - dh tra vinh
 
Tailieu.vncty.com thiet-ke-dong-ho-thoi-gian-thu
Tailieu.vncty.com   thiet-ke-dong-ho-thoi-gian-thuTailieu.vncty.com   thiet-ke-dong-ho-thoi-gian-thu
Tailieu.vncty.com thiet-ke-dong-ho-thoi-gian-thu
 
ky thuat vi xu lychuong4.ppt
ky thuat vi xu lychuong4.pptky thuat vi xu lychuong4.ppt
ky thuat vi xu lychuong4.ppt
 
Giao trinh 8051.doc
Giao trinh 8051.docGiao trinh 8051.doc
Giao trinh 8051.doc
 
Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051
 
Thiết kế đồng hồ thời gian thực sử dụng DS1307, hiển thị trên 6 Led 7 thanh v...
Thiết kế đồng hồ thời gian thực sử dụng DS1307, hiển thị trên 6 Led 7 thanh v...Thiết kế đồng hồ thời gian thực sử dụng DS1307, hiển thị trên 6 Led 7 thanh v...
Thiết kế đồng hồ thời gian thực sử dụng DS1307, hiển thị trên 6 Led 7 thanh v...
 
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien
Ky thuat vi dieu khien ----- Thiet ke he thong voi vi dieu khien
 
Đề tài Lập trình C cho họ vi điều khiển 8051
Đề tài Lập trình C cho họ vi điều khiển 8051Đề tài Lập trình C cho họ vi điều khiển 8051
Đề tài Lập trình C cho họ vi điều khiển 8051
 
Bao cao vdk_va_pic
Bao cao vdk_va_picBao cao vdk_va_pic
Bao cao vdk_va_pic
 
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đĐề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
 
Lap trinh-vdk-89 s52
Lap trinh-vdk-89 s52Lap trinh-vdk-89 s52
Lap trinh-vdk-89 s52
 
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505
 
2.stm32 f10e
2.stm32 f10e2.stm32 f10e
2.stm32 f10e
 
Lap trinh-c-cho-vdk
Lap trinh-c-cho-vdkLap trinh-c-cho-vdk
Lap trinh-c-cho-vdk
 
Viết Ngôn Ngữ Lập Trình 8051 PIC AVR
Viết Ngôn Ngữ Lập Trình 8051 PIC AVRViết Ngôn Ngữ Lập Trình 8051 PIC AVR
Viết Ngôn Ngữ Lập Trình 8051 PIC AVR
 
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.doc
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.docĐố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.doc
Đố Án Thiết Kế, Xây Dựng Hệ Thống Phun Sương Làm Mát Tự Động.doc
 

More from Dịch vụ viết thuê Luận Văn - ZALO 0932091562

Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 

More from Dịch vụ viết thuê Luận Văn - ZALO 0932091562 (20)

Nghiên Cứu Thu Nhận Pectin Từ Một Số Nguồn Thực Vật Và Sản Xuất Màng Pectin S...
Nghiên Cứu Thu Nhận Pectin Từ Một Số Nguồn Thực Vật Và Sản Xuất Màng Pectin S...Nghiên Cứu Thu Nhận Pectin Từ Một Số Nguồn Thực Vật Và Sản Xuất Màng Pectin S...
Nghiên Cứu Thu Nhận Pectin Từ Một Số Nguồn Thực Vật Và Sản Xuất Màng Pectin S...
 
Phát Triển Cho Vay Hộ Kinh Doanh Tại Ngân Hàng Nông Nghiệp Và Phát Triển Nông...
Phát Triển Cho Vay Hộ Kinh Doanh Tại Ngân Hàng Nông Nghiệp Và Phát Triển Nông...Phát Triển Cho Vay Hộ Kinh Doanh Tại Ngân Hàng Nông Nghiệp Và Phát Triển Nông...
Phát Triển Cho Vay Hộ Kinh Doanh Tại Ngân Hàng Nông Nghiệp Và Phát Triển Nông...
 
Nghiên Cứu Nhiễu Loạn Điện Áp Trong Lưới Điện Phân Phối.doc
Nghiên Cứu Nhiễu Loạn Điện Áp Trong Lưới Điện Phân Phối.docNghiên Cứu Nhiễu Loạn Điện Áp Trong Lưới Điện Phân Phối.doc
Nghiên Cứu Nhiễu Loạn Điện Áp Trong Lưới Điện Phân Phối.doc
 
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...
 
Xây Dựng Công Cụ Sinh Dữ Liệu Thử Tự Động Cho Chương Trình Java.doc
Xây Dựng Công Cụ Sinh Dữ Liệu Thử Tự Động Cho Chương Trình Java.docXây Dựng Công Cụ Sinh Dữ Liệu Thử Tự Động Cho Chương Trình Java.doc
Xây Dựng Công Cụ Sinh Dữ Liệu Thử Tự Động Cho Chương Trình Java.doc
 
Phát Triển Công Nghiệp Huyện Điện Bàn Tỉnh Quảng Nam.doc
Phát Triển Công Nghiệp Huyện Điện Bàn Tỉnh Quảng Nam.docPhát Triển Công Nghiệp Huyện Điện Bàn Tỉnh Quảng Nam.doc
Phát Triển Công Nghiệp Huyện Điện Bàn Tỉnh Quảng Nam.doc
 
Phát Triển Kinh Tế Hộ Nông Dân Trên Địa Bàn Huyện Quảng Ninh, Tỉnh Quảng Bình...
Phát Triển Kinh Tế Hộ Nông Dân Trên Địa Bàn Huyện Quảng Ninh, Tỉnh Quảng Bình...Phát Triển Kinh Tế Hộ Nông Dân Trên Địa Bàn Huyện Quảng Ninh, Tỉnh Quảng Bình...
Phát Triển Kinh Tế Hộ Nông Dân Trên Địa Bàn Huyện Quảng Ninh, Tỉnh Quảng Bình...
 
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...
 
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...
 
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...
 
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...
 
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...
 
Hoàn Thiện Công Tác Huy Động Vốn Tại Ngân Hàng Tmcp Công Thương Việt Nam Chi ...
Hoàn Thiện Công Tác Huy Động Vốn Tại Ngân Hàng Tmcp Công Thương Việt Nam Chi ...Hoàn Thiện Công Tác Huy Động Vốn Tại Ngân Hàng Tmcp Công Thương Việt Nam Chi ...
Hoàn Thiện Công Tác Huy Động Vốn Tại Ngân Hàng Tmcp Công Thương Việt Nam Chi ...
 
Ánh Xạ Đóng Trong Không Gian Mêtric Suy Rộng.doc
Ánh Xạ Đóng Trong Không Gian Mêtric Suy Rộng.docÁnh Xạ Đóng Trong Không Gian Mêtric Suy Rộng.doc
Ánh Xạ Đóng Trong Không Gian Mêtric Suy Rộng.doc
 
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...
 
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...
 
Giải Pháp Marketing Cho Dịch Vụ Ngân Hàng Điện Tử Tại Ngân Hàng Tmcp Hàng Hải...
Giải Pháp Marketing Cho Dịch Vụ Ngân Hàng Điện Tử Tại Ngân Hàng Tmcp Hàng Hải...Giải Pháp Marketing Cho Dịch Vụ Ngân Hàng Điện Tử Tại Ngân Hàng Tmcp Hàng Hải...
Giải Pháp Marketing Cho Dịch Vụ Ngân Hàng Điện Tử Tại Ngân Hàng Tmcp Hàng Hải...
 
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...
 
Kiểm Soát Rủi Ro Tín Dụng Trong Cho Vay Ngành Xây Dựng Tại Nhtmcp Công Thương...
Kiểm Soát Rủi Ro Tín Dụng Trong Cho Vay Ngành Xây Dựng Tại Nhtmcp Công Thương...Kiểm Soát Rủi Ro Tín Dụng Trong Cho Vay Ngành Xây Dựng Tại Nhtmcp Công Thương...
Kiểm Soát Rủi Ro Tín Dụng Trong Cho Vay Ngành Xây Dựng Tại Nhtmcp Công Thương...
 
Diễn Ngôn Lịch Sử Trong Biên Bản Chiến Tranh 1-2 -3- 4.75 Của Trần Mai Hạnh.doc
Diễn Ngôn Lịch Sử Trong Biên Bản Chiến Tranh 1-2 -3- 4.75 Của Trần Mai Hạnh.docDiễn Ngôn Lịch Sử Trong Biên Bản Chiến Tranh 1-2 -3- 4.75 Của Trần Mai Hạnh.doc
Diễn Ngôn Lịch Sử Trong Biên Bản Chiến Tranh 1-2 -3- 4.75 Của Trần Mai Hạnh.doc
 

Recently uploaded

30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...Nguyen Thanh Tu Collection
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfXem Số Mệnh
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...Nguyen Thanh Tu Collection
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfXem Số Mệnh
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...hoangtuansinh1
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxTrnHiYn5
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàNguyen Thi Trang Nhung
 
các nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ emcác nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ emTrangNhung96
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạowindcances
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxDungxPeach
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfNguyen Thanh Tu Collection
 
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdfGiáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf4pdx29gsr9
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...Nguyen Thanh Tu Collection
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phươnghazzthuan
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietNguyễn Quang Huy
 
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...Nguyen Thanh Tu Collection
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnpmtiendhti14a5hn
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngYhoccongdong.com
 

Recently uploaded (20)

30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
 
các nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ emcác nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ em
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdfGiáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net Viet
 
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiện
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 

Đề tài: Thiết kế Hệ Thống Quảng Cáo, HAY, 9đ

  • 1. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -1- Đề tài thiết kế Hệ Thống Quảng Cáo. 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, hai bộ định thời, một cổng nối tiếp và 4 cổng 8 bit. Tất cả đều được tích hợp trên một chíp. Lúc bấy giờ, bộ vi điều khiển như vậy được coi là một “hệ thống trên chíp”. 8051 là một bộ xử lý 8 bit, tức là CPU chỉ có thể làm việc với 8 bit dữ liệu. Dữ liệu lớn hơn 8 bit được chia ra thành các dữ liệu 8 bit để xử lý. 8051 có tất cả 4 cổng I/O mỗi cổng rộng 8 bit, có thể có một ROM trên chíp cực đại là 64 K byte. Tuy nhiên, lúc đó các nhà sản xuất đã 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ã chương trình tương thích với 8051. Từ đó dẫn đến sự ra đời nhiều phiên bản của 8051 với các tốc độ khác nhau. Tuy nhiên, điều quan trọng là mặc dù có nhiều biến thể của 8051, như khác nhau về tốc độ và dung lượng nhớ ROM trên chíp, nhưng tất cả các lệnh đều tương thích với 8051 ban đầu. Điều này có nghĩa
  • 2. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -2- 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. 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 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 Đặc tính Số lượng ROM trên chíp 4K byte RAM 128 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
  • 3. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -3- I/O ports: Các ports vào/ ra Serial port: port nối tiếp Address/data : địa chỉ/ dữ liệu 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: Interrupt Control Timer 2 ( 8032,8052) Timer 1 Timer 0 Serial port INT 1 INT 0 CPU Oscillator Bus control EA RST ALE PSEN I/O Port SERIAL PORT RXDTXD P 0 P 1 P 2 P 3 Address/Data Other registers 128 Byte RAM 128 Byte RAM (8032/8052) ROM 0K - 8031/8032 4K - 8051 8K - 8052 Timer 0 Timer 1 Timer 2 (8032/8052) T 0 T 1 T 2 T 2 EX
  • 4. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -4- 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. Đặc tính 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
  • 5. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -5- 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ó 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ộ
  • 6. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -6- 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 RAM Chân I/O Timer Ngắt Vcc Đóng vỏ 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.
  • 7. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -7- 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. Mã linh kiện ROM RAM Chân I/O Timer Ngắt Vcc Đóng vỏ DS5000-8 DS5000-32 DS5000T-8 DS5000T-8 8K 32K 8K 32K 128 128 128 128 32 32 32 32 2 2 2 2 6 6 6 6 5V 5V 5V 5V 40 40 40 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
  • 8. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -8- DS5000-8-12 DS5000-32-8 DS5000T-32-12 DS5000-32-12 DS5000-8-12 8K 32K 32K 32K 8K 12MHz 8MHz 8MHz (with RTC) 12MHz 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 Flash và NV-RAM thường được dùng để phát triển sản phẩm mẫu. Khi một sản phẩ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ì giá thành một đơn vị sản phẩm sẽ rẻ hơn. 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.
  • 9. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -9- 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 P1.0 - P1.7 PORT 1 LATCH ALU PORT 1 DRIVE P0.0 - P0.7 PORT 0 DRIVE RAM ADD REGISTER ALE/PROG RST EA/Vpp PSEN INTRUCTION REGISTER OSC TIMING AND CONTROL PSW B REGISTER TMP2 ACC RAM GND Vcc P3.0 - P3.7 PORT 2 LATCH PORT 0 LATCH INTERRUPT SERIAL PORT AND TIMER BLOCKS PORT 3 LATCH PORT 3 DRIVE TMP1 STACK POINTER FLASH DPTR PROGRAM COUNTER PC INCREMENTER BUFFER PROGRAM ADDRESS REGISTER P2.0 - P2.7 PORT 0 DRIVE
  • 10. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -10- Hình 2.1: Sơ Đồ Khối Của Vi Điều Khiển AT89C51 2. Đặc Tính Của AT89C51 Chíp 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 Chíp 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 AT89C51 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.
  • 11. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -11- 3. Sơ đồ chân và chức năng các chân của Chíp AT89C51 Hình 2.2: Sơ đồ chân và chức năng các chân của Chíp AT89C51 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 27 26 25 28 29 34 30 31 33 32 35 36 37 38 40 39 P 1.0 P 1.1 P 1.2 P 1.3 P 1.4 P 1.5 P 1.6 P 1.7 RST P 3.0 P 3.1 P 3.2 P 3.3 P 3.4 P 3.5 P 3.6 P 3.7 XTAL 2 XTAL 1 Vss Vcc P 0.0 P 0.1 P 0.2 P 0.3 P 0.4 P 0.5 P 0.6 P 0.7 EA ALE PSEN P 2.7 P 2.6 P 2.5 P 2.4 P 2.3 P 2.2 P 2.1 P 2.0 RXD TXD LNT 0 LNT 1 T 0 T 1 WR RD INTEL 89C51
  • 12. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -12- - 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 địa 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 T 0 B4H Ngõ vào của bộ định thời/đếm 0. P 3.5 T 1 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
  • 13. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -13- - 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 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
  • 14. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -14- 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 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ởi độ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
  • 15. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -15- để ổ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. 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 : Hình 2.4: Mạch dao động 4. Cấu trúc của PORT In/Out. Oscillator 18 19 X1 12MHz C2 30pF C1 30pF IC 1 8051 IC 1 8051 19 18 TTL Oscillator 74LS04 Oscillator
  • 16. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -16- - Sơ đồ cấu trúc bên trong của chân PORT xuất/nhập như sau : 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 VDD QD Write to Latch Read latch Read pin Interrnal Pull-up Port Latch Porrt pin 8051 Internal bus
  • 17. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -17- 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). 5. Tổ chức bộ nhớ 7F 77 6F 67 5F 56 4F 47 3F 37 2F 27 1F 17 0F 07 7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06 7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 15 0D 05 7C 74 6C 64 5C 54 4C 44 3C 34 2C 24 1C 14 0C 04 7B 73 6B 63 5B 53 4B 43 3B 33 2B 23 1B 13 0B 03 7A 72 6A 62 5A 52 4A 42 3A 32 2A 22 1A 12 0A 02 79 71 69 61 59 51 49 41 39 31 29 21 19 11 09 01 78 70 68 60 58 50 48 40 38 30 28 20 18 10 08 00 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 18 17 10 0F 08 07 00 BANK 3 BANK 2 BANK 1 Defauk register Bank for R0 - R7 30 7F Vïng RAM ®a dông (General Purpose RAM) RAM (CÊu tróc RAM néi) 87 86 85 84 83 82 81 80 Not bit addressable Not bit addressable Not bit addressable Not bit addressable Not bit addressable Not bit addressable Not bit addressable Not bit addressable 8F 8E 8D 8C 8B 8A 89 88 97 96 95 94 83 92 91 90 9F 9E 9D 9C 9B 9A 99 98 Not bit addressable Thanh ghi chøc n¨ng ®Æc biÖt A7 A6 A5 A4 A3 A2 A1 A0 AF AE AD AC AB AA A9 A8 B7 B6 B5 B4 B3 B2 B1 B0 BF BE BD BC BB BA B9 B8 D7 D6 D5 D4 D3 D2 D1 D0 E7 E6 E5 E4 E3 E2 E1 E0 EF EE ED EC EB EA E9 E8 Not bit addressable 80 81 82 83 87 88 89 8A 8B 8C 8D 90 98 99 A0 A8 B0 B8 D0 E0 F0 FF P0 SP DPL DPH PCON TCON TMOD TL0 TL1 TH0 TH1 P1 SCON SBUF P2 IE P3 IP PSW ACC B §Þa chØ Byte §Þa chØ Bit ( Bit Address ) §Þa chØ Byte §Þa chØ Bit ( Bit Address ) 8 8 8 8 32ByteBitaddressablelocations80Byte
  • 18. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -18- Hình 2.6: Tổ chức bộ nhớ RAM Bộ nhớ bên trong 89C51 bao gồm ROM và RAM. RAM bao gồm nhiều thành phần : Phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các thanh ghi (BANK) và các thanh ghi chức năng đặc biệt ( Special Funtion Registers). AT89C50 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 AT89C51 nhưng AT89C51 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 AT89C51 đượ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. AT89C51 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.
  • 19. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -19- Ý 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). Bộ lệnh AT89C51 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 thanh ghi trạng thái chương trình (PSW) Giả sử băng 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. AT89C51 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. 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ỉ.
  • 20. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -20- - 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ụ. PSW .5 F0 D5H Cờ 0. PSW .4 RS1 D4H Bit 1 chọn Bank thanh ghi. PSW .3 RS0 D3H Bit 0 chọn Bank thanh ghi. 00 = Bank 0 : Địa chỉ 00H - 07H. 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. 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
  • 21. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -21- + 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. Lệnh sau cho phép Bank thanh ghi 3 và di chuyển nội dung của thanh ghi R7 (địa chỉ byte 1Fh) vào thanh ghi A : 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
  • 22. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -22- địa chỉ có thể truy xuất bằng các địa chỉ gián tiếp, chúng là 128Byte đầu của AT89C51. Để 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 AT89C51 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 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, 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.
  • 23. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -23- 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 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. VDD QD Write to Latch Read latch Read pin Interrnal Pull-up Port Latch Porrt pin 1.7 8051 Internal bus §éng c¬ +B +5V
  • 24. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -24- 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 đổ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) AT89C51 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. - Các thanh ghi nối tiếp. AT89C51 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
  • 25. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -25- -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 1 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 12 (P3 : 3) 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
  • 26. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -26- 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ó một 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 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ép các bit còn lại của thanh ghi có hiệu lực. D7 D0 EA ---- ET2 ES ET1 EX1 ET0 EX0 EA IE.7 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 Dự phòng cho tương lại ET2 IE.5 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ể dùng ở các bộ vi điều khiển có đặc tính mới trong tương lai
  • 27. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -27- • 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. - Tín hiệu RESET. AT89C51 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 để AT89C51 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: 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 chíp không bị thay đổi bởi tác động của ngõ vào RESET. Hình 2.8: Mạch RESET 9 RST INTEL 89C51 R1 10KΩ R2 100Ω C1 10/16 + 5VRESET
  • 28. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -28- 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 Thanh ghi B 00H PSW 00H SP 07H DPTR 0000H Port 0 – 3 xxx00000B IP xx000000B 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 AT89C51 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
  • 29. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -29- • 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 dùng để đồng bộ hóa chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra các ngõ ra. Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (Vi dụ đo độ rộng xung). Truy xuất các timer của AT89C51 dùng sáu thanh ghi chức năng đặc biệt cho trong bảng sau: SFR Mục đích Địa chỉ Địa chỉ hóa từng bit TCON Điều khiể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 để
  • 30. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -30- thiết lập chế độ của bộ định thời, còn 2 bít cao dùng để 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 = 0, Set TRx 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 = 0, Set TRx 2 C/T 0 Bít chọn chế độ Count/ Timer 1 M1 0 Bít 1 của chế độ mode 0 M0 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
  • 31. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -31- 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ý hiệu Địa chỉ Mô tả TCON 7 TF1 8FH Cơ bản tràn timer 1. Đặt bởi phần cứng khi được xóa bở phần mềm, hoặc phần cứng khi ử 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 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 khi phát hiện một cạnh xuống ở INT1 xóa phần mềm hoạc phần cứng khi CPU chỉ đến ng trình phục vụ ngắt TCON 2 IT1 8AH Cờ kiểu ngắt 1 bên ngoài. đặt xóa bằng mềm để ngắt ngoài tich cực cạnh xuống thấp
  • 32. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -32- 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
  • 33. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -33- 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. 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 Trình Và Không Gian ROM Của 8051
  • 34. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -34- 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 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ộ trình tự hoạt động của bộ đếm chương trình 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, 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át mộ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 Ngôn Ngữ Máy Hợp Ngữ 00000 7D25 MOV R5, #25H 00000 7F34 MOV R7, #34H 00002 7400 MOV A,#0
  • 35. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -35- Địa Chỉ Mã lệnh 0000 7D 0001 25 0002 7F 0003 34 0004 74 0005 00 0006 2D 0007 2F 0008 24 0009 12 000A 80 000B FE Bảng 2.11: Nội dung ROM Sau khi chương trình được nạ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 trinh trên được giới thiệu ở bảng sau. Tại địa chỉ 0000 có mã 7D là mà lệnh chuyển một giá trị vào thanh ghi R5, còn địa chỉ 0001, chứa toán hạng (Giá trị 250000) Cần được chuyển vào R5. Do vậy lệnh “MOV R5 #25H” có mã lệnh là “7D25” trong đó 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 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 đượ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. 00004 2D ADD A, R5 00006 2F ADD A, R7 00008 2412 ADD A, #12H 0000A 80EF HERE: SUMP HERE
  • 36. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -36- 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 • 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
  • 37. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -37- Đ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 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ớ 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
  • 38. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -38- 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
  • 39. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -39- 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 3. Trực tiếp 4. gián tiếp qua thanh ghi 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. 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:
  • 40. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -40- 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 được truy cập bằng thanh ghi theo các tên gọi của
  • 41. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -41- chúng là R0 - R7 còn các ngăn nhớ khác của RAM thì không có tên 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 (#) 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, R4 MOVA, 4 Hai lệnh này giống nhau đều sao nội dung thanh ghi R4 vào A MOV A, 7; MOV A,R7 Hai lệnh này đều như nhau là sao nội dung R7 vào thanh ghi A 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ững cặp lệnh có cùng ý nghĩa dưới đây:
  • 42. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -42- 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
  • 43. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -43- 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 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.
  • 44. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -44- 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ư “PUSH 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. 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 R0 và A MOV @ R1, B Chuyển nội dung của B vào ngăn nhớ RAM có địa chỉ ở R1
  • 45. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -45- 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. DJNZR2, 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 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à “Movc 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 Movc 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.
  • 46. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -46- 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 x2 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 • 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 VI ĐIỀU KHIỂN AT89C5 1 Hàng BẢNG ĐÈN Cột XUẤT DỮ LLIỆU LIỆU HÀNG BỘ ĐỆM NGÕ RA HÀNG GIẢI MÃ CỘT (quét BỘ ĐỆM NGÕ RA CỘT Khối Nguồn
  • 47. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -47- 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 nguồ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 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)
  • 48. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -48- 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 1.Thiết kế chi tiết khối nguồn Hình 4.2: Thiết kế chi tiết khối nguồn Gnd OutIn 7805 220VAC 9VAC 1N4007 1N4007 1N40071N4007 D9 D7 D8 D10 100µF/25V C31 C29 470µF/25V 470µF/25V C30 R24 K100 104 C32
  • 49. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -49- 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 đầ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Ω
  • 50. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -50- 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) P2.7 Anode 5 VCC QC2 2N2222 VCC P2.6 Anode 2 RC5 1K RC13 K100 VCC P2.1 VCC RC2 1K QC5 2N2222 P2.5 QC4 2N2222 QC1 2N2222 RC3 1K RC1 1K QC6 2N2222 VCC RC14 K100 Anode 3 Anode 6 P2.4 RC10 K100 P2.0 RC11 K100 RC8 1K QC3 2N2222 RC7 1K Anode 4 P2.3 VCC QC8 2N2222 VCC Anode 7 Anode 0 RC9 K100 QC7 2N2222 P2.2 RC4 1K RC12 K100 Anode 1 RC6 1K VCC RC16 K100 RC15 K100
  • 51. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -51- • 07 IC (ULN2803) Hình 4.5: Thiết kế khối giải mã cột chi tiết C33-C40 C23 C26 C46 C13 U150 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH CLOCK C18 VCC C33 U145 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH C25-C32 C2 C52 U153 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 U158 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C7 C38 C16-C24 CLOCK C30 C10 U157 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C12 C22 C25 C45 CLOCK GND VCC C1 C6 C51 C17 C37 C56 C9 C29 C49-C56 C16 C11 C21 VCC C44 U156 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 CLOCK U148 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH C32 GND C5 VCC GND VCC C36 C55 VCC C48 C50 GND C43 CLOCK C28 C15 CLOCK C4 C20 C40 C9-C16 C41-C48 GND C35 U155 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 U149 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH C33-C40 U159 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C54 U146 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH GND GND C42 U151 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH U147 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH C49-C56 U154 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C24 C27 C47 C14 C25-C32 C41 CLOCK C49 C8 C9-C16 C19 C57-C64 C34 C31 C3 C53 C39 C16-C24 C41-C48
  • 52. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -52- 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 để được phép sáng. Để 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
  • 53. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -53- Hình 4.7: Sơ đồ hoạt động của IC 74HC595 • Chức năng các chân của IC 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)
  • 54. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -54- -Chân 16 nối với dương nguồn 5V DC 4. Khối thúc công xuất cột (đệm ngõ ra cộT)
  • 55. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -55- C23 C26 C46 C13 C18 C33 C2 C52 U153 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 U158 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C7 C38 C30 C10 U157 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C12 C22 C25 C45 C1 C6 C51 C17 C37 C56 C9 C29 C49-C56 C16 C11 C21 C44 U156 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C32 C5 C36 C55 C48 C50 C43 C28 C15 C4 C20 C40 C9-C16 C41-C48 C35 U155 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C33-C40 U159 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C54 C42 U154 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C24 C27 C47 C14 C25-C32 C41 C49 C8 C19 C57-C64 C34 C31 C3 C53 C39 C16-C24
  • 56. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -56- Hình 4.8: Khối thúc công xuất cột 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 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à :
  • 57. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -57- Hình 4.10: Sơ đồ cấu tạo và hoạt động của IC ULN2803 • 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
  • 58. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -58- Led thực Led tương đương trong mạch Hình 4.11: Mô tả ma trận LED Anode 1.4 C2 C7 C6 C1 Anode 1.3 J8 Led 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Anode 1.0 Anode 1.2 C5 Anode 1.7 Anode 1.6 Anode 1.1 C4 C3 C8 Anode 1.5
  • 59. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -59- 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ó 24 chân, trong đó 8 anod và 16 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à: A1,A2,A3,A4,A5,A6,A7,A8 C13 Anode 3.4 Anode 4.4 Anode 4.6 Anode 1.4 Anode 5.5 C45 C49 Anode 2.7 Anode 3.3 Anode 5.0 C28 Anode 4.0 C2 C14 C40 Anode 6.7 C29 J14 Led 7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 C7 C55 Anode 3.2 C35 Anode 2.1 C17 Anode 6.6 Anode 7.2 C31 C34 Anode 6.1 C12 C23 C53 J10 Led 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Anode 5.4 C6 Anode 6.0 C44 Anode 2.6 C1 C22 Anode 7.7 J13 Led 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Anode 5.3 C27 C43 C54 C21 Anode 1.3 J8 Led 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Anode 6.5 Anode 1.0 Anode 4.7 Anode 4.2 J11 Led 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Anode 2.0 Anode 7.1 Anode 2.5 Anode 3.7 C33 Anode 1.2 C11 Anode 5.2 C48 Anode 4.5 C52 C5 C16 C39 Anode 3.1 Anode 6.4 Anode 7.6 Anode 1.7 Anode 3.6 C42 J9 Led 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Anode 4.1 Anode 2.4 C25 C20 Anode 6.3 C37 Anode 1.6 Anode 7.0 Anode 2.3 Anode 1.1 Anode 7.5 J12 Led 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 C10 Anode 5.7 C51 Anode 3.5 C38 C4 C56 Anode 3.0 Anode 6.2 C9 C30C26 C24 Anode 5.1 C41 C3 C8 C15 C19 Anode 7.4 C32 Anode 4.3 Anode 1.5 C36 C47 Anode 2.2 C18 Anode 7.3 Anode 5.6 C46 C50
  • 60. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -60- Các chân cathod theo thứ tự từ phải qua trái là: K12,K22,K32,K42,K52,K62,K72,K82 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 J8 USB 1 2 3 4 5 6 R23 10K RST C28 10uF/16V RST P2.0 Data C R3 RESISTOR SIP 9 12 3 4 5 6 7 8 9 GND C27 33p P0.5 J10 HEADER 8 1 2 3 4 5 6 7 8 P2.5 HEADER 8 1 2 3 4 5 6 7 8CLOCK VCC P0.2 P2.1 Y3 12Mhz P2.6 GND P0.6 VCC VCC GND P2.2 P2.7 U2 AT89C51 9 18 19 20 29 30 31 40 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 GND PSEN ALE/PROG EA/VPP VCC P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 VCC P0.3 P0.7 XTAL1 VCC XTAL1 GND R22 4.7k P0.1 P2.3 GND XTAL2 C26 33p XTAL2 D6 1N4007 P0.4 D5 LED P0.0 P2.4 SW1 Reset
  • 61. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -61- Hình 4.13: Khối điều khiển trung tâm 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
  • 62. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -62- - 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. - 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 được dùng trong khối nguồn. -01 điện trở 100Ω(dùng cho khối nguồ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 tính. - 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.
  • 63. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -63- - 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, đỏ .Trong thiết kế này tôi chỉ quan tâm đến mầ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
  • 64. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -64- -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 Hình 4.15: Giao diện ORCAD 9.2 LAYOUT PLUS
  • 65. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -65-
  • 66. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -66- GND GND C32 C35 C31 P0.1 C4 C33-C40 Anode 4 C7 Anode 4 C R3 RESISTOR SIP 9 12 3 4 5 6 7 8 9 C12 C53 GND VCC C36 Anode 3 P0.6 RC6 1K QC7 2N2222 Anode 5 Anode 3 C12 VCC Anode 3 VCC C50 J13 Led 2 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 VCC C42 C41 Anode 6 RC15 K100 RC4 1K U151 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH SW1 Reset C17 Anode 2 J10 HEADER 8 1 2 3 4 5 6 7 8 C27 33p C55 Anode 0 Anode 0 C55 CLOCK RC14 K100 RC3 1K QC4 2N2222 C16 C24 C46 P2.5 RC16 K100 P2.6 GND C27 C47 C22 RC12 K100 RC9 K100 HEADER 8 1 2 3 4 5 6 7 8 C25-C32 C50 Anode 7 U157 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 VCC GND C19 Anode 1 P2.1 C8 C3 C27 Anode 2 CLOCK Anode 2 Anode 2 C56 U153 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 U146 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH U156 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C31 C34 C8 C32 P0.7 C11 CLOCK Anode 5 Anode 7 Anode 3 Anode 6 C39 C13 C37 C16-C24 C41-C48 Anode 6 Anode 6 C32 104 P0.4 P2.1 C18 C42 C3 C33-C40 VCC VCC C54 Anode 5 Y3 12Mhz P2.6 C23 C26 C46 GND C23 C47 P2.5 C9-C16 Anode 4 VCC GND VCC C18 C41 C28 C49-C56 C4 D10 1N4007 Anode 1 Anode 1 RC2 1K XTAL2 U147 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH RC13 K100 C15 C33 C33 Anode 0 Anode 0 C9 QC5 2N2222 J14 Led 3 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 C25-C32 CLOCK C49 Anode 4 GND C38 Anode 7 Anode 6 P2.0 C7 C16-C24 C38 GND C14 C57-C64 Anode 3 Anode 3 R23 10K C43 P2.2 D6 1N4007 Anode 3 C2 C10 C30 C19 QC1 2N2222 C53 Anode 0 C49 C22 C48 P2.7 U148 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH P2.4 C9-C16 C25 C45 C24 P0.0 Anode 7 Anode 7 U2 AT89C51 9 18 19 20 29 30 31 40 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 GND PSEN ALE/PROG EA/VPP VCCP1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 Anode 0 R24 K100W D9 1N4007 VCC C5 C29 RST Anode 2 XTAL1 Anode 2 D8 1N4007 C14 Anode 1 C31 100uF/16V VCC C34 Anode 5 CLOCK Anode 5 C52 XTAL1 VCC Anode 5 RC10 K100 D7 1N4007 Anode 4 C17 C37 VCC C15 C39 Data C6 GND Anode 6 U149 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH Anode 6 R22 4.7k QC6 2N2222 P2.3 Anode 0 U145 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH Anode 4 C9 C29 C44 J12 Led 1 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 J11 Jack AC 1 2 C1 Anode 1 C10 J15 Led 4 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 C52 Anode 1 QC3 2N2222 VCC P0.5 C21 VCC C44 C25 J17 Led 6 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 P2.3 Anode 4 RC7 1K CLOCK Anode 4 VCC GND Anode 7 C20Anode 3 Anode 3 XTAL2 C13 GND C35 Anode 2 Data C1 U155 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 CLOCK Anode 0 Anode 0 C51 U158 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 C30 470uF/25V RC11 K100 RC8 1K J16 Led 5 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 Anode 5 QC8 2N2222 RC1 1K C26 33p C5 VCC C36 GND C6 C30 Anode 7 Anode 7 D5 LED VCC C45 P2.4 Anode 7 C48 C11 GND C51 Anode 2 Anode 2 QC2 2N2222 Anode 1 VCC U154 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 GND C43 C16 C40 P0.2 Anode 5 Anode 5 U150 74HC595 9 10 13 14 11 12 15 1 2 3 4 5 6 7 SDO CLR G SDI SRCLK RCLK QA QB QC QD QE QF QG QH C56 RC5 1K VCC U160 LM7805C/TO 1 3 IN OUT C29 470uF/25V C28 C21 C54 U159 ULN2803 10 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8C28 10uF/16V P2.7 VCC C49-C56 Anode 6 J8 USB 1 2 3 4 5 6 RST VCC Anode 6 P0.3 C20 C40 C26 P2.2 C41-C48 CLOCK Anode 1 C2 Anode 1 J9 HEADER 8 1 2 3 4 5 6 7 8 J18 Led 7 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 P2.0 Anode 4
  • 67. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -67- Hình 4.16: Sơ đồ nguyên lý toàn mạch 7.3.Board điều khiển (mạch đồng 2 lớp).
  • 68. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -68- Hình 4.17: Board điều khiển (mạch In 2 lớ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)
  • 69. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -69- 7.5. Nguyên lý hoạt động của toàn mạch: --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.
  • 70. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -70- IV. THIẾT KẾ CHƯƠNG TRÌNH CHO VI ĐIỀU KHIỂN 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ỏ
  • 71. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -71- 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: MOVC A, @A+DPTR Khi đó chỉ việc xuất dữ liệu từ thanh chứa A ra Port 2 là được. Ở đây bộ đếm được dùng là bộ đếm giảm, giá trị thanh chứa được gán đầu tiên là 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 rõ nét ( hiện tượng lưu ảnh trên võng mạ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ữ liệu đã được truy xuất hết, chúng ta sẽ đặt nó quay trở về vị trí ban đầu. Và 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 Đồ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ữ liệu. 2. Lưu Đồ Thuật Toán
  • 72. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -72- N N Bắt đầu Thiết lập các trạng thái ban đầu Thiết lập con trỏ dữ liệu DPTR Truy xuất bảng dữ liệu Xuất dữ liệu quét cột Kiểm tra hết khung hình 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 Kiểm tra hết nội dung quảng cáo Kết thúc N Xuất dữ liệu ra hàng Kiểm tra RESET Y Y Y
  • 73. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -73- 3.Chương trinh và nạp chương trình cho chíp AT89C51 Giao diện phần KEIL Hình 4.20: Giao diện phần KEIL Dùng mạch nạp ROM và chạy chương trình 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
  • 74. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -74- - 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 trên chíp AT89c51 -Mạch nạp chương trình cho ROM trên chíp AT89... có ảnh dưới đây -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
  • 75. Tổng quan Vi điều khiển họ 8051 Đồ án tốt nghiệp Hoàng Quang Lý -75-