Chương 1 Cấu trúc phần cứng của AT89C51 thuộc bài giảng Vi điều khiển trình bày tổng quan về phần cứng của AT89C51, đặc điểm phần cứng, cấu trúc chung của một vi điều khiển. Tham khảo nội dung bài giảng để nắm bắt thông tin chi tiết.
Trang 1MÔN HỌC VI ĐIỀU KHIỂN
Khiển AT89C51
AT89C51
Trang 2NỘI DUNG MÔN HỌC
Da ã n n h a ä p
Ch ư ơ n g 1 : Ca á u t ru ù c p h a à n c ư ù n g c u û a AT8 9 C5 1
Ch ư ơ n g 2 : Ta ä p le ä n h AT8 9 c 5 1
Trang 3TỔNG QUAN
- Sơ lược quá trình hình thành quá phát triển của VĐK
- Từ Vi xử lý đến Vi đĐiều khiển
- Cấu trúc chung của một Vi đĐiều
khiển
Trang 4Chương 1: CẤU TRÚC PHẦN CỨNG
CPU
interrupt
control
ROM 0K-8031/8032 4K-8051 8K-8052
128 byte RAM 8032/8052
Time 1 Time 0
Time 2 8032/8052
EA
P0 P1 P2 P3 address/data
TXD * RXD *
INT 1
INT0
Timer 2(8052/8032) Timer1
Timer0 serial port
Trang 5ĐẶC ĐIỂM PHẦN CỨNG
- 4 KB ROM nội.
- 128 Byte RAM nội.
- 4 Port xuất /nhập I/O 8 bit.
- 1 bộ giao tiếp Giao tiếp nối tiếp.
- 2 bộ định thời 16 bit
- 64 KB bộ nhớ chương trình ngoài ( bộ nhớ chương trình = program = code memory)
- 64 KB bộ nhớ dữ liệu ngoàiRAM ngoài ( Bộ nhớ dữ liệu = Data)
Trang 7II I/O (INPUT/OUTPUT)
Trang 9Reset : Dùng để khởi động lại hệ thống
ALE (Cho phép chốt địa chỉ Address Latch Enable) :
Chân này xuất tín hiệu cho phép chốt địa chỉ (byte thấp) của địa chỉ ngoài vào 1 thanh ghi ngoài(bộ đệm) Chân này được nối với chân cho phép của vi mạch chốt bên ngoài
Trang 10ALE
P2
Trang 11• = 0: Cho phép truy xuất bộ nhớ ngoài P2.0 – P2.7 = A8 – A15 ( byte địa chỉ cao)
= 1 : sử dụng 4KROM + 128 byte RAM nội = 21 V : Ghi chương trình vào ROM nội (lập trình)
(cho phép bộ nhớ chương trình Program Store Enable)
Cho phép bộ nhớ chương trình ngoài Nối với Chân của Eprom
= 0: Cho phép bộ nhớ chương trình ngoài
= 1 : Khi thực thi chương trình ở Rom nội
EA
EA
EA EA
PSEN
PSEN
PSEN
Lưu ý : Các PIN của 89C51 là 2 hướng Để truy xuất ta phải :
Trước khi xuất 1 bit ta phải xóa bit đó = 0
Trước khi nhập ta phải set bit đó = 1
Trang 12III BỘ NHỚ (MEMORY)
89C51 có 2 loại bộ nhớ : bộ nhớ trong (ON-CHIP Memmory) và bộ nhớ ngoài (External Memmory)
Bộ nhớ nội : Ở bên trong chip (On-Chip Memory) ROM nội và RAM nội ROM nội (4K) dùng để chứa chương trình khi ta nạp chương trình RAM nội (128 byte) dùng để chứa dữ liệu
Vùng stack thường trú trong RAM trên chip (Ram nội)
Bộ nhớ ngoài : ROM ngoài và RAM ngoài
– ROM ngoài : Nằm bên ngoài chip, thường
dùng EPROM (64 K)
– RAM ngoài : Nằm bên ngoài chip, thường
dùng RAM tĩnh (64K) Khi dùng RAM ngoài thì
việc truy xuất không được linh hoạt, và tốc
tộ truy xuất thấp.Tuy nhiên nó cho ta khả
năng là tăng dung lượng RAM, ROM
Trang 131 Bo ä n h ơ ù n o ä i
ROM: 4K chứa chương trình
RAM: có128 byte bao gồm Các dãy thanh ghi, vùng RAM định địa chỉ bit, vùng RAM đa chức năng, các thanh ghi có chức năng đặt biệt (SFR) 7FH
20H 1FH
30H 2FH
Vùng Ram
Đa dụng
Vùng Ram Định địa chỉ bit
Các bank Ram
FFH
Các thanh ghi có chức năng đặc biệt
Trang 148 thanh ghi R0 - R7 thuộc bank nào được thể hiện qua 2 bit
RS1 RS0 trong thanh ghi PSW
RS1 RS0 Bank được chọn
Trang 15• Vu ø n g RAM đ /c h o a ù b it ( Bit Ad d re s a b le
Lo c a t io n )
• Có 210 vị trí Trong đó ( 20h – 2Fh ) = 16
byte* 8 bit = 128 bit Phần còn lại chứa
trong các thanh ghi chức năng đặc biệt Trong vùng nhớ này ta có thể tác động đến từng bit Đây là 1 đặt trưng mạnh
của các bộ vi điều khiển Các địa chỉ trong vùng nhớ này có thể truy xuất
từng byte hay từng bit tùy theo từng lệnh cụ thể.
• Ví dụ :
• SETB 00h ; bit có đ/c bit 00h thuộc địa
chỉ byte 20h được set = 1
• RAM đ a d u ïn g :
• 80 byte có địa chỉ từ 30h – 7Fh : dùng
để truy xuất thường xuyên với tần số cao, làm stack.
• Bất kỳ vị trí nào trong vùng RAM này
đều có thể truy xuất tự do bằng cách
Trang 16Các thanh ghi chức năng đặc biệt SFR (Special Function Register):
Thanh ghi là 1 byte nhớ hay 1 từ nhớ Có một địa chỉ, thường được gán cho 1 cái tên gắn liền với 1 hoặc vài chức năng cụ thể
Các thanh ghi nội là 1 phần của RAM nội Do đó mỗi thanh ghi có 1 địa chỉ Có 21 thanh ghi có chức năng đặc biệt Trong đó có 1 số thanh ghi có khả năng định địa chỉ bit
Hầu hết các thanh ghi chức năng đặc biệt được truy xuất bằng cách sử dụng sự định địa chỉ địa chỉ trực tiếp
Trang 17+ 4 thanh ghi port P0, P1, P2, P3 : dùng cho các port xuất nhập P0, P1, P2 và P3
+ 6 thanh ghi cho time TMOD, TCON, TH0, TL0, TH1, TL1: dùng cho timer0 và timer 1
+ 2 thanh ghi cho port nối tiếp SBUF, SCON : dùng cho port nối tiếp)
+ 2 Thanh ghi dùng cho ngắt IE, IP : dùng cho ngắt+ 1 thanh ghi con trỏ dữ liệu ngòai DPTR: là thanh ghi 2 buyte DPH + DPL dùng truy xuất bộ nhớ ngòai
+ 1 thanh ghi tích lũy A : là thanh ghi được dùng nhiều nhất Chứa kết quả các phép tóan
+ 1 Thanh ghi phụ B : Dùng chung với thanh chứa A trong các lệnh nhân và chia Ngoài ra thanh ghi B được dùng như
thanh ghi phụ R
+ 1thanh ghi bộ đếm chương trình PC (Program Counter) : Là thanh ghi 2 byte, chỉ ra địa chỉ của lệnh tiếp theo được thực hiện Đối với 89c51, khi bắt đầu thì địa chỉ của lện đầu tiên
Trang 18+ 1 thanh ghi điều khiển nguồn PCON (Power Control) : dùng cho việc tăng đôi tốc độ baud
port nối tiếp và thiết lập chế độ giảm nguồn (power down)
+ 1 thanh ghi con trỏ ngăn xếp SP (Stack Pointer): Nội dung của thanh ghi SP chính là đỉnh hiện hành của Stack ( vùng stack có 32 byte. Nếu ta
không khởi tạo stack thì nó mặc định là 07h). Tốt nhất là
ta khai báo vùng stack lớn hơn 2FH.
+ 1 thanh ghi từ trạng thái chương trình PSW (Program Status Word)
Trang 20- Sử dụng toán tử dot (.) giữa địa chỉ byte và vị trí bit
SETB ACC.7
- Sử dụng ký hiệu tiền định nghĩa JNB TI,$
Trang 21nhớ trong bị vô hiệu hoá
Khi bộ nhớ ngòai được sử dụng, port 0 không làm nhiệm vụ của port xuất nhập mà trở thành byte địac chỉ thấp A0-A7 và byte dữ liệu D0-D7 đa hợp Port 2 được dùng làm byte địa chỉ cao
Trang 22Trong ½ chu kỳ đầu của chu kỳ bộ nhớ, byte thấp của địa chỉ được cung cấp bởi P0 và được chốt nhờ tín hiệu ALE Mạch chốt 74CH373 giữ cho byte thấp của địa chỉ ổn định trong cả chu kỳ bộ nhớ trong ½ chu kỳ sau của bộ nhớ, P0 được sử dụng làm bus dữ liệu và dữ liệu được đọc hay ghi.
Các IC giao tiếp ngọai vi cũng có thể được thêm vào để mở rộng khả năng xuất nhập Chúng trở thành 1 phần
của không gian bộ nhớ dữ liệu ngòai
Trang 23TRUY XUẤT BỘ NHỚ NGÒAI
Truy xuất bộ nhớ chương trình
ngòai
P0
ALE
P2
D0D7 A0A7
A8A15
89C51
74CH373
D Q G
Trang 24ngòai Bộ nhớ dữ liệu ngoài là bộ nhớ đọc/ghi được cho
phép bởi các tín hiệu RD và WR ở các chân P3.7 và P3.6 Lệnh dùng để truy xuất bộ nhớ dữ liệu ngoài là MOVX, sử dụng con trỏ dữ liệu 16 bit DPTR hoặc R0, R1 làm thanh ghi
chứa địa chỉ
P0
ALE
P2
Trang 26
Việc giải mã địa chỉ được thực hiện khi có nhiều Eprom, Ram hoặc cả Rom và Ram ngịai được kết nối với 89c51 Việc giải mã được thực hiện bởi vi mạch 74138
Trang 27Một RAM có thể chiếm không gian nhớ chương
trình và dữ liệu bằng cách nối chân tới ngõ ra cổng AND có các ngõ vào làOE PSEN vàRD
/ W
/ O E
R A M
1 2
3
/ W R
/ R D / P S E N
Hình 1.7 Không gian nhớ chương trình và dữ
liệu gối nhau
Mạch trên cho phép RAM được ghi như là bộ nhớ dữ liệu và được đọc như là bộ nhớ chương trình hoặc dữ liệu Vậy 1 chương trình có thể được nạp vào RAM (bằng cách vào RAM như là bộ nhớ