Chuong 2 gioi thieu ve cau truc ho vdk 8051

11
Ni dung: Chương 1: Gii thiuvVi xChương 2: Gii thiuvcu trúc caHVi điu khin 8051 Chương 3: Kho sát tplnh và lp trình Vi điu khin 8051 Chương 4: Hot động cabộ định thi Chương 5: Hot động ngt Chương 6: Hot động truyn thông ni tiếp Chương 7: Thiếtkế giao tiếp Chương 2: Cu trúc hvi điu khin 8051 2.1. Gii thiu chung Cùng vi vic phát trin các VXL cho hmáy tính, các hãng cũng chế to các hvi xchuyên dng Vi điu khin (VĐK). VĐK (MicroController) là mt thiếtbtích hp các phntcamthvi xlý lên trên cùng mt Chip. Chương 2: Cu trúc hvi điu khin 8051 2.1. Gii thiu chung VĐKcũng có thcó: – Timer : phcvcho các hot động có tính chu k. – Truyn tin ni tiếp : dùng để kếtnivi các thiết bkhác. – ADC : cho phép xlý các tín hiutương t-s.

description

vi điều khiển cho cơ khí động lực c2

Transcript of Chuong 2 gioi thieu ve cau truc ho vdk 8051

Page 1: Chuong 2 gioi thieu ve cau truc ho vdk 8051

Nội dung:

• Chương 1: Giới thiệu về Vi xử lý

• Chương 2: Giới thiệu về cấu trúc của Họ Vi điềukhiển 8051

• Chương 3: Khảo sát tập lệnh và lập trình Vi điềukhiển 8051

• Chương 4: Hoạt động của bộ định thời

• Chương 5: Hoạt động ngắt

• Chương 6: Hoạt động truyền thông nối tiếp

• Chương 7: Thiết kế giao tiếp

Chương 2: Cấu trúc họ vi điều khiển 8051

2.1. Giới thiệu chung

• Cùng với việc phát triển các VXL cho hệ máy tính, các

hãng cũng chế tạo các hệ vi xử lý chuyên dụng

⇒⇒⇒⇒ Vi điều khiển (VĐK).

• VĐK (MicroController) là một thiết bị tích hợp các

phần tử của một hệ vi xử lý lên trên cùng một Chip.

Chương 2: Cấu trúc họ vi điều khiển 8051

2.1. Giới thiệu chung

VĐK cũng có thể có:

– Timer : phục vụ cho các hoạt động có tính chu kỳ.

– Truyền tin nối tiếp : dùng để kết nối với các thiết

bị khác.

– ADC : cho phép xử lý các tín hiệu tương tự - số.

Page 2: Chuong 2 gioi thieu ve cau truc ho vdk 8051

Chương 2: Cấu trúc họ vi điều khiển 8051

2.2. Giới thiệu chung về họ VĐK 8051

• Hiện nay có hơn 40 công ty sản xuất các loại vi điềukhiển khác nhau của họ 8051.

• Một số công ty có trên 40 version 8051.

• Trên 100 triệu vi điều khiển 8051 được bán ra mỗinăm.

• Họ VĐK MCS-51 được phát triển bởi Intel năm 1980

và sau đó các nhà sản xuất khác như: Siemens, Philips,

Atmel,…

Tóm tắt một số đặc điểm chính của họ 8051:

4K bytes ROM trong.

128 bytes RAM trong.

4 cổng I/O 8-bit.

2 bộ định thời 16 bit.

Giao tiếp nối tiếp.

Quản lý được 64K bộ nhớ chương trình bên ngoài.

Quản lý được 64K bộ nhớ dữ liệu bên ngoài.

Thao tác trên các Bit riêng rẽ.

210 vị trí nhớ được định địa chỉ Bit.

Thực hiện phép nhân/chia trong 4µµµµs.

MCS-51 bao gồm nhiều phiên bản khác nhau, mỗiphiên bản sau tăng thêm một số thanh ghi điều khiển hoạtđộng của MCS-51.

Đặc tính 8051 8031 8751 8052 8032 8752

ROM trên chíp 4K byte 0K 4K 8K 0K 8K byte

RAM 128 byte 128 byte 128 byte 256 byte 256 byte 256 byte

Bộ định thời 2 2 2 3 3 3

Chân vào ra 32 32 32 32 32 32

Page 3: Chuong 2 gioi thieu ve cau truc ho vdk 8051

Cấu trúc bên

trong của MCS-51

Vi điều khiển AT89C51

• AT89C51 là vi điều khiển do Atmel sản xuất, chế tạo

theo công nghệ CMOS.

• 4 KB EEPROM (Electrical Erase Programmable Read

Only Memory), có khả năng tới 1000 chu kỳ ghi xoá.

2.3. Sơ đồ chân

Page 4: Chuong 2 gioi thieu ve cau truc ho vdk 8051

2.3. Sơ đồ chân

�Chân nguồn: Vcc, GND.

�Các cổng vào/ra: P0, P1, P2, P3.

� Chân truy xuất bộ nhớ ngoài: /EA.

�Chân cho phép bộ nhớ chương

trình: /PSEN.

�Chân cho phép chốt địa chỉ: ALE.

�Chân Reset: RST.

�Các chân XTAL1 và XTAL2.

� Chân nguồn:

Vcc = 5V ± 20% : (chân số 40)

GND = 0V : (chân số 20)

� Các cổng vào/ra

• P0 : gồm các chân từ 32 – 39, có 2 công dụng:

� Xuất / nhập: dùng cho các thiết kế nhỏ.

� Bus địa chỉ / dữ liệu đa hợp: khi dùng các

thiết kế lớn, đòi hỏi phải sử dụng bộ nhớngoài thì Port 0 vừa là bus dữ liệu (8 bit) vừa

là bus địa chỉ (8 bit thấp).

� Các cổng vào/ra

• P1 : gồm các chân từ 1-8: Chỉ có chức năng

xuất/nhập.

Tuy nhiên đối với các VĐK: 8032, 8052, 8752 (có

sử dụng bộ định thời thứ 3) thì P1.0 và P1.1 còn làm

ngõ vào cho bộ định thời thứ 3.

Page 5: Chuong 2 gioi thieu ve cau truc ho vdk 8051

� Các cổng vào/ra

• P2 : gồm các chân từ 21 – 28, có 2 công dụng:

� Xuất / nhập: dùng cho các thiết kế nhỏ.

� Bus địa chỉ / dữ liệu đa hợp: khi dùng các

thiết kế lớn, đòi hỏi phải sử dụng bộ nhớngoài thì Port 2 vừa là bus dữ liệu (8 bit) vừa

là bus địa chỉ (8 bit cao). -

• P3 : gồm các chân từ 10 – 17, có 2 công dụng:

� Xuất / nhập.

� Các công dụng khác được mô tả như sau:

Bit Tên Chức năng

P3.0 RxD Ngõ vào port nối tiếp

P3.1 TxD Ngõ ra port nối tiếp

P3.2 /INT0 Ngắt ngoài 0

P3.3 /INT1 Ngắt ngoài 1

P3.4 T0 Ngõ vào của bộ định thời 0

P3.5 T1 Ngõ vào của bộ định thời 1

P3.6 /WR Điều khiển ghi dữ liệu lên bộ nhớ ngoài.

P3.7 /RD Điều khiển đọc từ bộ nhớ dữ liệu ngoài.

� Chân truy xuất bộ nhớ ngoài: /EA (External Access)

• EA (chân 31) dùng để cho phép thực thi chương trình

từ ROM ngoài.

• Khi nối EA với Vcc (5V) , AT89C51 sẽ thực thi chương

trình từ ROM nội.

• Ngược lại, khi nối EA với GND (0V) , AT89C51 sẽ thực

thi chương trình từ ROM ngoài.

• Ngoài ra, chân EA còn được dùng để nhận điện áp

cho việc lập trình (Vpp) EPROM nội.

� Chân cho phép bộ nhớ chương trình: /PSEN

(Program Store Enable)

• PSEN (chân 29): cho phép đọc bộ nhớ chương trình mở

rộng đối với các ứng dụng sử dụng ROM ngoài.

• Thường được nối đến chân OE (Output Enable) của

ROM ngoài để đọc các byte mã lệnh.

• Khi 89x51 thi hành chương trình trong ROM nội, PSEN

sẽ ở mức logic 1.

Page 6: Chuong 2 gioi thieu ve cau truc ho vdk 8051

� Chân cho phép chốt địa chỉ: ALE (Address Latch Enable)

• ALE/ PROG (chân 30) cho phép tách các đường địa chỉ và

dữ liệu tại Port 0 và Port 2.

• Khi truy xuất bộ nhớ ngoài. ALE thường nối với

chân Clock của IC chốt (74373, 74573).

• Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao

động trên chip (12/6 = 2 MHz).

• Ngoài ra, chân này còn được dùng để nhận ngõ vào xung

lập trình cho ROM nội (PROG).

� Chân Reset: RST

• Ngõ vào Reset (chân 9): dùng để thiết lập trạng thái ban

đầu (Reset) cho hệ thống.

• Để thực hiện Reset cần phải giữ ngõ vào RST ở mức cao ít

nhất 2 chu kỳ máy.

� Các chân XTAL1 và XTAL2

• Ngõ vào và ngõ ra bộ dao động, được nối với mạch dao

động bên ngoài (thạch anh).

• Tần số thạch anh thường sử dụng cho AT89C51

khoảng 12Mhz.

Page 7: Chuong 2 gioi thieu ve cau truc ho vdk 8051

2.3. Tổ chức bộ nhớ

Bộ nhớ của MCS-51 bao gồm: bộ nhớ trong và bộ nhớ ngoài

2.3. 1. Tổ chức bộ nhớ trong

Bộ nhớ trong của MCS-51 gồm ROM và RAM.

� RAM bao gồm các vùng nhớ:

• Các bank thanh ghi (từ 00h –1Fh).

• Vùng có thể định địa chỉ hóa từng bit (20h – 2Fh).

• Vùng RAM đa mục đích (địa chỉ byte từ 30h – 7Fh).

• Các thanh ghi chức năng đặc biệt (từ 80h – 0FFh).

Page 8: Chuong 2 gioi thieu ve cau truc ho vdk 8051

RAM Thanh ghi chức năng đặc biệtTổ chức bộ nhớ

dữ liệu�Các bank thanh ghi:

• Có 4 bank thanh ghi có địa chỉ từ: 00h –1Fh.

• Mỗi bank có 8 thanh ghi 8 bit: R0 – R7.

Tổ chức bộ nhớ dữ liệu

�Các bank thanh ghi:

• Việc lựa chọn bank thanh ghi được thực hiện thông

qua thanh ghi PSW (từ trạng thái chương trình).

• Các lệnh sử dụng bank thanh ghi sẽ có code ngắn hơn

và tốc độ nhanh hơn các lệnh tương đương.

Ví dụ: MOV A, R5 ; đọc nội dung tại địa chỉ 05H vào

thanh ghi A. (lệnh này chiếm 1byte).

MOV A, 05H ; (lệnh chiếm 2 byte).

Tổ chức bộ nhớ dữ liệu

� Vùng RAM định địa chỉ từng bit: gồm 16 byte có địa chỉtừ 20h – 2Fh (16 x 8 = 128 bit).

� Vùng RAM đa mục đích: gồm 80 byte có địa chỉ từ30h – 7Fh. Vùng nhớ này, có thể truy xuất mỗi lần 8 bit

bằng cách dùng chế độ địa chỉ trực tiếp hay gián tiếp.

Tổ chức bộ nhớ dữ liệu

Page 9: Chuong 2 gioi thieu ve cau truc ho vdk 8051

� Thanh ghi tích lũy (A hay Acc - Accumulator ):

Là thanh ghi rất quan trọng của VĐK, có chức năng lưu

trữ dữ liệu khi tính toán, hầu hết các phép toán thực

hiện đều thông qua thanh ghi này.

Thanh ghi tích luỹ có thể truy xuất trực tiếp thông qua

địa chỉ E0h (byte) hay truy xuất từng bit thông qua địachỉ bit từ E0h đến E7h.

VD: MOV A,#1

MOV 0E0h,#1 ; có cùng kết quả

Hay: SETB ACC.4

SETB 0E4h ; cũng tương tự

Các thanh ghi chức năng đặc biệt (SFR – Special

Function registers)

� Thanh ghi B:

• Thanh ghi B dùng cho các phép toán nhân, chia và

có thể dùng như một thanh ghi tạm, chứa các kết quảtrung gian.

VD: MUL AB; Nhân hai số nguyên 8 bit, kết quả lưu vào A, B

; A chứa kết quả byte thấp

; B chứa kết quả byte cao

• Thanh ghi B có địa chỉ byte F0h và địa chỉ bit từF0h – F7h.

Các thanh ghi chức năng đặc biệt (SFR – Special

Function registers)

� Thanh ghi con trỏ Stack (SP – Stack Pointer):

• SP là một thanh ghi 8 bit, có địa chỉ 81h. Được sử dụng

để truy cập bộ nhớ ngăn xếp. SP chứa địa chỉ của dữ liệuhiện đang ở đỉnh của ngăn xếp.

• Ngăn xếp là một vùng bộ nhớ RAM được CPU sử dụng

để lưu thông tin tạm thời. Thông tin này có thể là dữliệu, có thể là địa chỉ.

• Khi VĐK được cấp nguồn thì SP có giá 07h. SP có thểđược khởi động lại.

Ví dụ: MOV SP, #5Fh; Vùng Stack bắt đầu có địa chỉ 60h.

Các thanh ghi chức năng đặc biệt (SFR) Hãy biểu diễn ngăn xếp và con trỏ ngăn xếp đối với

đoạn chương trình sau đây. Giả thiết vùng ngăn xếp là

mặc định.

MOV R6, #25H

MOV R1, #12H

MOV R4, #0F3H

PUSH 6

PUSH 1

PUSH 4 Sau PUSH 6 Sau PUSP 1 Sau PUSH 4

0B 0B 0B 0B

0A 0A 0A 0A F3

09 09 09 12 09 12

08 08 25 08 25 08 25

Bắt đầu SP = 07 SP = 08 SP = 09 SP = 0A

Page 10: Chuong 2 gioi thieu ve cau truc ho vdk 8051

Khảo sát ngăn xếp và hãy trình bày nội dung của các thanh

ghi và SP sau khi thực hiện đoạn chương trình sau đây:

POP 3 ; Lấy ngăn xếp trở lại R3

POP 5 ; Lấy ngăn xếp trở lại R5

POP 2 ; Lấy ngăn xếp trở lại R2

Sau POP3 Sau POP 5 Sau POP 2

0B 54 0B 0B 0B

0A F9 0A F9 0A 0A

09 76 09 76 09 76 09

08 6C 08 6C 08 6C 08 6C

Bắt đầu SP = 0B SP = 0A SP = 09 SP = 08

� Thanh ghi con trỏ dữ liệu (DPTR – Data Pointer):

• SP là một thanh ghi 16 bit, có địa chỉ 82h (DPL) và 83h

(DPH). Được sử dụng để truy xuất bộ nhớ chương trình

ngoài hoặc bộ nhớ dữ liệu ngoài.

Ví dụ: MOV A, #55h; nạp giá trị 55H vào A.

MOV DPTR, #1000H; nạp địa chỉ ô nhớ vào DPTR

MOV @DPTR, A; nạp giá trị 55H vào ô nhớ có địa

chỉ chứa trong DPTR(1000H)

Các thanh ghi chức năng đặc biệt (SFR)

� Các Thanh ghi port

Các thanh ghi P0 tại địa chỉ 80h, P1 tại địa chỉ 90h, P2, tại

địa chỉ A0h, P3 tại địa chỉ B0h là các thanh ghi chốt cho 4

port xuất / nhập (Port 0, 1, 2, 3).

Tất cả các thanh ghi này đều cho phép định địa chỉ bit:

P0 từ 80h – 87h, P1 từ 90h – 97h, P2 từ A0h – A7h, P3 từB0h – B7h.

Các địa chỉ bit này có thể thay thế bằng toán tử.

Ví dụ như: 2 lệnh sau là tương đương:

SETB P0.0

SETB 80h

Các thanh ghi chức năng đặc biệt (SFR)

� Các thanh ghi định thời

Dùng để định các khoảng thời gian hoặc đếm các sự kiện.

MCS – 51 có 2 thanh ghi định thời 16 bit:

• Timer 0: TL0 (8Ah) và TH0 (8Ch).

• Timer 1: TL1 (8Bh) và TH1 (8Dh).

Hoạt động định thời được thiết lập bởi các thanh ghi:

• TMOD (Timer Mode Register): thanh ghi chế độ định thời có

địa chỉ 89h.

• TCON (Timer Control register) có địa chỉ 88h, thanh ghi điều

khiển định thời.

Các thanh ghi chức năng đặc biệt (SFR)

Page 11: Chuong 2 gioi thieu ve cau truc ho vdk 8051

� Các thanh ghi của port nối tiếp

Dùng để truyền thông với các thiết bị nối tiếp như: Modem,

VĐK,…

Thanh ghi port nối tiếp gồm có 2 thanh ghi:

• SBUF (Serial Data Buffer – Bộ đệm dữ liệu nối tiếp) có địa

chỉ 99h, dùng để lưu trữ dữ liệu đi và đọc dữ liệu truyền về.

• SCON (Serial Port Control register) có địa chỉ 98h, có chức

năng điều khiển việc truyền thông nối tiếp.

Các thanh ghi chức năng đặc biệt (SFR)

� Các thanh ghi ngắt (Interrupt Register)

Dùng để điều khiển, thiết lập các chế độ khi lập trình ngắt.

Thanh ghi ngắt gồm có 2 thanh ghi:

• IE (Interrupt Enable Register – Thanh ghi cho phép ngắt)

có địa chỉA8h.

• IP (Interrupt Priority Register – Thanh ghi ưu tiên ngắt)

có địa chỉ B8h, có chức năng thiết lập các ngắt ưu tiên.

Các thanh ghi chức năng đặc biệt (SFR)

� Thanh ghi điều khiển nguồn (PCON – Power Control

Register)

Có địa chỉ 87h, được định địa chỉ từng bit, dùng để điều

khiển các chế độ nguồn:

• Chế độ giảm nguồn.

• Chế độ nghỉ

Các thanh ghi chức năng đặc biệt (SFR)

� Từ trạng thái chương trình (PSW – Program State Word)

Có địa chỉ D0h, chứa các bit trạng thái có chức năng:

Các thanh ghi chức năng đặc biệt (SFR)

Bit Ký hiệu Địa chỉ Mô tả Bit

PSW.7 CY D7h Cờ nhớ

PSW.6 AC D6h Cờ nhớ phụ

PSW.5 F0 D5h Cờ 0

PSW.4 RS0 D4h Chọn bank thanh ghi (Bit 1)

PSW.3 RS1 D3h Chọn bank thanh ghi (Bit 0)

PSW.2 OV D2h Cờ tràn

PSW.1 - D1h Dự trữ

PSW.0 P D0h Cờ kiểm tra chẵn lẻ