Tải bản đầy đủ (.pdf) (87 trang)

Thiết kế mạch thí nghiệm vi xử lý tích hợp 89c51 và PIC 16f877a phần vi điều khiển 89c51

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

KHÓA LUẬN TỐT NGHIỆP

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA VẬT LÝ
----------------

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CỬ NHÂN VẬT LÝ

Đề tài:

THIẾT KẾ MẠCH THÍ NGHIỆM VI XỬ LÝ TÍCH HỢP 89C51
VÀ PIC16F877A- PHẦN VI ĐIỀU KHIỂN 89C51
Người hướng dẫn:

Phạm Xuân Trung

Người thực hiện:

Hồ Huyền Lệ Quyên

Đà Nẵng, tháng 5/2013
i


KHÓA LUẬN TỐT NGHIỆP

LỜI CẢM ƠN
Em xin chân thành cám ơn Khoa Vật Lý, trường Đại Học Sư Phạm – Đại Học Đà
Nẵng đã tạo điều kiện cho chúng em thực hiện đề tài luận văn tốt nghiệp này.


Em xin chân thành cảm ơn Thầy Phạm Xuân Trung đã tận tình hướng dẫn, chỉ bảo
chúng em, cảm ơn gia đình, bạn bè và các anh đã giúp đỡ nhiệt tình trong suốt thời
gian thực hiện đề tài.
Em xin chân thành cảm ơn q Thầy Cơ trong khoa đã tận tình giảng dạy, trang bị
cho em những kiến thức quý báu trong những năm học vừa qua.
Xin chân thành cảm ơn các anh chị và bạn bè đã ủng hộ, giúp đỡ và động viên
trong suốt thời gian học tập và nghiên cứu.
Mặc dù em đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép
nhưng chắc chắn sẽ khơng tránh khỏi những thiếu sót.
Rất mọng nhận được sự cảm thơng và tận tình chỉ bảo của quý Thầy Cô và các bạn.
Sinh viên thực hiện
Hồ Huyền Lệ Quyên

ii


KHĨA LUẬN TỐT NGHIỆP

LỜI CAM ĐOAN
Tơi xin cam đoan rằng, số liệu và kết quả trong luận văn này là trung thực và chưa
được sử dụng. Những nội dung trong luận văn này là do tôi thực hiện dưới sự
hướng dẫn trực tiếp của thầy Phạm Xuân Trung.
Tôi xin cam đoan rằng, mọi sự giúp đỡ trong việc thực hiện luận văn này đã được
cảm ơn và các thông tin trích dẫn trong luận văn đều đã được chỉ rõ nguồn gốc.
Đà Nẵng, ngày tháng năm
Sinh viên thực hiện

Hồ Huyền Lệ Quyên

iii



KHÓA LUẬN TỐT NGHIỆP
MỤC LỤC

LỜI CẢM ƠN………………………………………………………………………....i
LỜI CAM ĐOAN……………………………………………………………………..ii
MỤC LỤC ……………………………………………………………………………iii
DANH SÁCH HÌNH…………………………………………………………………vi
DANH SÁCH BẢNG BIỂU………………………………………………………..viii
TỪ VIẾT TẮT………………………………………………………………………..ix
LỜI NĨI ĐẦU…………………………………………………………………………x
CHƯƠNG 1:TỔNG QUAN VI ĐIỀU KHIỂN 89C51…………………………...........1
1.1Cấu trúc phần cứng 89C51 .........................................................................................1
1.1.1

Đơn vị xử lý trung tâm .......................................................................................2

1.1.2

Chức năng chân 89C51 ......................................................................................5

1.1.3

Cấu trúc PORT xuất nhập ..................................................................................8

1.1.4

Tổ chức bộ nhớ ..................................................................................................9


1.1.5

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

1.2Hoạt động RESET ....................................................................................................14
1.3Tóm tắt lệnh ..............................................................................................................16
1.3.1 Các tốn hạng sử dụng trong lệnh ........................................................................16
1.3.2 Các nhóm lệnh ......................................................................................................16
CHƯƠNG 2:TỔNG QUAN VI XỬ LÝ PIC16F877A……………………………….18
2.1Giới thiệu vi điều khiển PIC ................................................................................................... 18
2.1.1

Kiến trúc của PIC .............................................................................................18

2.1.2

RICS và CISC ..................................................................................................19

2.1.3

PIPELINING ....................................................................................................20
iv


KHĨA LUẬN TỐT NGHIỆP
2.2Một vài thơng số về vi điều khiển PIC 16F877A .............................................................. 21
2.2.1

Tổ chức bộ nhớ ................................................................................................22


2.2.2 Thanh ghi của PIC………...…………………………………………………….25
2.3STACK .....................................................................................................................28
2.4Các cổng xuất nhập của PIC16F877A.................................................................................. 28
2.4.1

PORTA.............................................................................................................29

2.4.2

PORTB .............................................................................................................30

2.4.3

PORTC .............................................................................................................30

2.4.4

PORTD.............................................................................................................31

2.4.5

PORTE .............................................................................................................32

2.5Tập lệnh của PIC16F877A .......................................................................................32
2.5.1

Nhóm lệnh di chuyển .......................................................................................32

2.5.2


Nhóm lệnh số học ............................................................................................32

2.5.3

Nhóm lệnh logic ...............................................................................................33

2.5.4

Nhóm lệnh rẽ nhánh .........................................................................................33

2.5.5

Nhóm lệnh điều khiển bit .................................................................................33

2.5.6

Nhóm lệnh đặc biệt ..........................................................................................33

CHƯƠNG 3: THIẾT KẾ MẠCH THÍ NGHIỆM……………………………………34
3.1Thiết kế các board mạch thí nghiệm ..................................................................................... 34
3.2 LED đơn ...................................................................................................................................... 41
3.3 LED 7 đoạn................................................................................................................................. 42
3.4 LCD đơn sắc 16x2 .................................................................................................................... 45
3.4 LCD đơn sắc 16x2 .................................................................................................................... 45
3.4.1 Giới thiệu Text LCD............................................................................................................. 45
3.4.2 Sơ đồ chân ............................................................................................................................... 46

v



KHÓA LUẬN TỐT NGHIỆP
3.4.3 Các chân điều khiển LCD ................................................................................................... 46
3.4.4 Tập lệnh LCD ......................................................................................................................... 48
3.4.5 Giao tiếp 4 bit ......................................................................................................................... 48
3.4.6 Vi điều khiển và Text LCD ................................................................................................ 49
3.5 Bàn phím ma trận ...................................................................................................................... 50
3.6 Ma trận LED 8x8 ...................................................................................................................... 51
3.6.1 IC 74595 .................................................................................................................................. 51
3.6.2 ULN 2803 ................................................................................................................................ 52
3.6.3 Ma trận LED 8x8 ................................................................................................................... 53
3.7 Cổng COM và IC MAX 232 .................................................................................................. 54
3.7.1 Cổng COM .............................................................................................................................. 54
3.7.2 IC MAX 232 ........................................................................................................................... 56
CHƯƠNG 4: THIẾT KẾ CÁC BÀI THÍ NGHIỆM 89C51………………………....57
4.1 Bài thí nghiệm 1: Lập trình điều khiển LED đơn và LED 7 đoạn..........................57
4.1.1 Dụng cụ thí nghiệm .............................................................................................57
4.1.2 Mục đích thí nghiệm ...........................................................................................57
4.1.3 Chương trình ví dụ viết bằng ngôn ngữ ASM.....................................................57
4.1.4 Kiểm tra thực tế ...................................................................................................60
4.2 Bài thí nghiệm 2: 89C51 giao tiếp với LCD 16x2.. Error! Bookmark not defined.
4.2 .1 Dụng cụ thí nghiệm ............................................ Error! Bookmark not defined.
4.2 .2 Mục đích thí nghiệm ........................................... Error! Bookmark not defined.
4.2 .3 Chương trình ví dụ ..............................................................................................63
4.2 .4 Kiểm tra thực tế ..................................................................................................65
4.3 Bài thí nghiệm 3: Sử dụng giao tiếp 89C51 với bàn phím ma trận ........................66
4.3.1 Dụng cụ thí nghiệm .............................................................................................66

vi



KHĨA LUẬN TỐT NGHIỆP
4.3.2 Mục đích thí nghiệm ...........................................................................................66
4.3.3 Chương trình ví dụ ..............................................................................................66
4.3.4 Kiểm tra thực tế ...................................................................................................70
4.4 Bài thí nghiệm 4: Giao tiếp 89C51 với cổng COM UART ..................................71
4.4.1 Dụng cụ thí nghiệm .............................................................................................71
4.4.2 Mục đích thí nghiệm ...........................................................................................71
4.4.3 Chương trình ví dụ ..............................................................................................71
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI .................................................73
TÀI LIỆU THAM KHẢO .........................................................................................74

vii


KHĨA LUẬN TỐT NGHIỆP
DANH SÁCH HÌNH
Hình 1.1: Sơ đồ khối chip của 89C51
Hình 1.2: Sơ đồ chân của 89C51
Hình 1.3: Đơn vị xử lý trung tâm CPU
Hình 1.4: Hoạt động của bus cho chu kỳ tìm nạp lệnh
Hình 1.5: 89C51 ghép với mạch dao động TTL bên ngồi
Hình 1.6: Mạch bên trong của các Port xuất nhập
Hình 1.7: Tóm tắt các khơng gian nhớ của chip 89C51
Hình 1.8: Hai mạch dùng reset hệ thống (a) reset bằng tay (b) reset khi cấp nguồn
Hình 2.1: Kiến trúc Von Neuman và kiến trúc Havard
Hình 2.2: Sơ đồ chân của PIC16F877A
Hình 2.3: Cơ chế pipeling
Hình 2.4: Sơ đồ khối vi điều khiển PIC16F877A
Hình 2.5: Bản đồ bộ nhớ chương trình và ngăn xếp
Hình 2.6: Sơ đồ bộ nhớ dữ liệu PIC16F877A

Hình 2.7: Sơ đồ khối cổng A
Hình 2.8: Sơ đồ khối của chân RB3 đến RB0, chân của RB7 đến RB4 cổng B
Hình 2.9: Sơ đồ khối của chân RC<0:2>, RC<5:7>, và chân RC<3:4> của cổng C
Hình 2.10: Sơ đồ khối của cổng D
Hình 2.11: Sơ đồ khối của cổng E
Hình 3.1: Sơ đồ schematic tồn mạch
Hình 3.2: Sơ đồ mạch in tồn mạch
Hình 3.3: Mạch thực tế tồn mạch
Hình 3.4: Sơ đồ schematic board trung tâm 89C51
Hình 3.5: Sơ đồ mạch in board trung tâm 89C51
Hình 3.6: Mạch thực tế board trung tâm 89C51
Hình 3.7: Sơ đồ schematic board trung tâm PIC16F877A
Hình 3.8: Sơ đồ mạch in board trung tâm PIC16F877A
Hình 3.9: Mạch thực tế board trung tâm PIC16F877A
Hình 3.10: Sơ đồ nguyên lý LED đơn
viii


KHĨA LUẬN TỐT NGHIỆP
Hình 3.11: Các mẫu LED thường gặp
Hình 3.12: Dạng LED 7 đoạn và IC 7447
Hình 3.13: Sơ đồ schematic LCD
Hình 3.14: Hình LCD 16x2
Hình 3.15: Hoạt động của chân RS
Hình 3.16: Trình giao tiếp với Text LCD
Hình 3.17: Sơ đồ schematic ma trận phím
Hình 3.18: Phím nhấn
Hình 3.19: Sơ đồ chân 74HC595
Hình 3.20: Sơ đồ chân ULN 2803
Hình 3.21: Ma trận LED 8x8


ix


KHÓA LUẬN TỐT NGHIỆP
DANH SÁCH BẢNG BIỂU
Bảng 1.1: Bảng so sánh các chip của họ MCS-51
Bảng 1.2: Chức năng các chân Port3 và hai chân P1.0 và P1.1 của Port1
Bảng 1.3: Bảng thanh ghi PSW
Bảng 1.4: Bảng thanh ghi PCON
Bảng 1.5: Bảng giá trị của các thanh ghi sau khi reset hệ thống
Bảng 1.6: Bảng liệt kê các lệnh trong 89C51
Bảng 2.1: Bảng nhóm lệnh di chuyển
Bảng 2.2: Bảng nhóm lệnh số học
Bảng 2.3: Bảng nhóm lệnh logic
Bảng 2.4: Bảng nhóm lệnh rẽ nhánh
Bảng 2.5: Bảng nhóm lệnh điều khiển bit
Bảng 2.6: Bảng nhóm lệnh đặc biệt
Bảng 3.1: Bảng mã cho Led Anode chung
Bảng 3.2: Bảng trạng thái
Bảng 3.3: Bảng sắp xếp các chân Text LCD
Bảng 3.4: Tóm tắt các lệnh ghi vào LCD
Bảng 3.5: Thông số của ULN 2803

x


KHÓA LUẬN TỐT NGHIỆP
TỪ VIẾT TẮT
PIC


: Programable Intelligent Computer

ALU

: Arthmetic Logic Unit

PC

: Program Counter

IR

: Instruction Register

VDT

: Video Display Terminal

CRT

: Cathode Ray Tube

ALE

: Address Latch Enable

PSEN

: Program Store Enable


CY

: Carry Flag

OV

: Overflow Flag

AC

: Auxiliary Carry Flag

SP

: Stack Pointer

DPTR

: Data Pointer

PCON

: Power Control Register

TMOD : Timer Mode Register
TCON

: Timer Control Register


SBUF

: Serial Data Buffer

SCON

: Serial Port Control Register

IE

: Interrupt Enable Register

IP

: Interrupt Priority Register

RICS

: Reduced Instruction Set Computer

CISC

: Complex Instruction Set Computer

SSP

: Synchronous Serial Port

PSP


: Parallel Slave Port

ICSP

: In Circuit Serial Port

SFG

: Special Function Register

GPR

: General Purpose Register

FSG

: File Select Register

MSSP

: Master Synchonous Serial Port
xi


KHÓA LUẬN TỐT NGHIỆP
LỜI NÓI ĐẦU
Ngày nay cũng với sự phát triển của khoa học kỹ thuật, công nghệ điện tử cũng
đang có những bước phát triển vượt bật trong những năm gần đây. Trong đó cơng
nghệ vi điện tử đã có bước phát triển nổi trội. Vào năm 1971 bộ vi xử lý đầu tiên đã ra
đời và kể từ đó đã khơng ngừng được cải thiện về mặt kiến trúc, chức năng,… và hiệu

năng sử dụng. Vì vậy, cơng việc của chúng ta là phải tìm cách khai thác triệt để các
tính năng của vi xử lý để góp phần vào cơng cuộc phát triển cơng nghệ hiện nay.
Và trong khóa luận tốt nghiệp nhóm em đã quyết định chọn đề tài “THIẾT KẾ
MẠCH THÍ NGHIỆM VI XỬ LÝ TÍCH HỢP 89C51 VÀ PIC16F877A- PHẦN
VI ĐIỀU KHIỂN 89C51”. Nội dung chính của đề tài gồm 4 chương:
Chương 1: Tổng quan về vi điều khiển 89C51.
Chương 2: Tổng quan về vi xử lý PIC16F877A.
Chương 3: Thiết kế mạch thí nghiệm.
Chương 4: Thiết kế các bài thí nghiệm.
Trong thời gian ngắn thực hiện đề tài cộng với kiến thức còn nhiều hạn chế, nên
trong khóa luận này khơng tránh khỏi thiếu sót, em rất mong được sự đóng góp ý kiến
của thầy cô và các bạn.
Sinh viên thực hiện
Hồ Huyền Lệ Quyên

xii


KHÓA LUẬN TỐT NGHIỆP
CHƯƠNG 1: TỔNG QUAN VI ĐIỀU KHIỂN 89C51
1.1

Cấu trúc phần cứng 89C51
Chip 8051 có các đặc trưng được tóm tắt như sau:
 4KB ROM
 128 byte RAM
 4 port xuất nhập(I/O port) 8-bit
 2 bộ định thời 16-bit
 Mạch giao tiếp nối tiếp
 Không gian nhớ chương trình( mã) ngồi 64K

 Khơng gian nhớ dữ liệu ngồi 64K
 Bộ xử lý bit( thao tác trên các bít riêng rẽ)
 210 vị trí nhớ được định địa chỉ, mỗi vị trí một bit
 Nhân/chia trong 4µs
Các thành viên khác của học MCS-51 có các tổ hợp ROM(EPROM), RAM trên

chip khác nhau hoặc có thêm bộ định thời thứ ba( xem bảng). Mỗi một IC của họ
MCS-51 cũng có phiên bản CMOS công suất thấp.
Bảng 1.1: Bảng so sánh các chip của họ MCS-51
Chip

Bộ nhớ chương trình trên chip

Bộ nhớ dữ liệu trên chip

Các bộ định thời

8051

4K ROM

128 byte

2

8031

0K

128 byte


2

8751

4K EPROM

128 byte

2

8052

8K ROM

256 byte

3

8032

OK

256 byte

3

8752

8K EPROM


256 byte

3

1


KHĨA LUẬN TỐT NGHIỆP

Hình 1.1: Sơ đồ khối chip của 89C51
Thuật ngữ “89C51” được dùng để chỉ rộng rãi các chip của học MCS-51. Khi
việc thảo luận tập trung vào một cải tiến được chỉ ra rõ ràng. Các đặc trưng vừa nêu
trên được trình bày trong sơ đồ khối

Hình 1.2: Sơ đồ chân của 89C51
1.1.1 Đơn vị xử lý trung tâm
CPU, trái tim của hệ máy tính, quản lý tất cả các hoạt động của hệ và thực hiện
tất cả các thao tác trên dữ liệu. Hầu hết các CPU chỉ bao gồm một tập các mạch logic
thực hiện liên tục hai thao tác: tìm nạp lệnh và thực thi lệnh. CPU có khả năng hiểu và
2


KHÓA LUẬN TỐT NGHIỆP
thực thi các lệnh dựa trên một tập các mã nhị phân, mỗi mã nhị phân biểu thị một thao
tác đơn giản. Các lệnh này thường là các lệnh số học( như cộng, trừ, nhân, chia), các
lệnh logic( như AND, OR, NOT,…), các lệnh di chuyển dữ liệu hoặc các lệnh rẽ
nhánh, được biểu thị bởi một tập các mã nhị phân và được gọi là tập lệnh( instruction
set).
Hình ảnh đơn giản bên trong của CPU: trình bày một tập các thanh ghi(

register) có nhiệm vụ lưu trữ tạm thời các thông tin, một đơn vị số học logic ALU có
nhiệm vụ thực hiện các thao tác trên các thông tin này, một đơn vị giải mã lệnh và điều
khiển có nhiệm vụ xác định các thao tác cần thực hiện và thiết lập các hoạt động cần
thiết để thực hiện thao tác. CPU cịn có hai thanh ghi nữa: thanh ghi lệnh IR lưu trữ mã
nhị phân của lệnh để được thực thi và bộ đếm chương trình PC lưu trữ địa chỉ của lệnh
kế tiếp trong bộ nhớ cần được thực thi.
CPU
Thanh ghi
lệnh( IR)

Bộ đếm chương
trình( PC)

Thanh ghi
Giải mã lệnh
và điều khiển

Bộ số học và
logic

Hình 1.3: Đơn vị xử lý trung tâm CPU
Việc tìm nạp một lệnh từ RAM hệ thống là một trong các thao tác cơ bản nhất
mà CPU thực hiện. Việc tìm nạp lệnh được thực hiện theo các bước sau:
 Nội dung của PC được đặt lên bus địa chỉ
 Tín hiệu điều khiển READ được xác lập( chuyển sang trạng thái tích cực)
3


KHÓA LUẬN TỐT NGHIỆP
 Dữ liệu( opcode của lệnh) được đọc từ RAM và đưa lên bus dữ liệu

 Opcode được chốt vào thanh ghi lệnh bên trong CPU
 PC được tăng để chuẩn bị tìm nạp lệnh kế từ bộ nhớ

CPU
CPU
Bus địa chỉ

N
Bộ đếm ct
Bus dữ liệu

Opcode
Thanh ghi
lệnh

RAM

Xung

N+ 2

Bus điều
khiển

Đọc

Opcode

N+ 1


N
N- 1

Hình 1.4: Hoạt động của bus cho chu kỳ tìm nạp lệnh
Giai đoạn thực thi lệnh bao gồm việc giải mã opcode và tạo ra các tín hiệu điều
khiển, các tín hiệu này điều khiển việc xuất nhập giũa các thanh ghi nội với ALU và
thông báo để ALU thực hiện thao tác đã được xác định. Do các thao tác có tầm thay
đổi rộng, phạm vi dành cho các giải thích bị nêu trên có phần nào bị giới hạn, chỉ áp
dụng được cho các tháo tác đơn giản như tăng nội dung của một thanh ghi. Các lệnh
phức tạp hơn đòi hỏi thêm nhiều bước nữa, chẳng hạn như đọc byte dữ liệu thứ hai và
byte dữ liệu thứ ba để thực hiện thao tác.
Một chuỗi các lệnh được kết hợp để thực hiện một công việc có ý nghĩa được
gọi là một chương trình( program) hay phần mềm( software). Mức độ mà những công
việc được thực hiện đúng và có hiệu quả phàn lớn xác định bởi chất lượng của phần
mềm, không phải bởi sự phức tạp của CPU. Vậy thì các chương trình” điều khiển”
4


KHĨA LUẬN TỐT NGHIỆP
CPU trong khi làm việc đơi khi dẫn đến sai nhầm, chính là do những nhược điểm của
các tác giả chương trình. Các câu như là”máy tính tạo ra một lỗi” là sai. Mặc dù thiết
bị có sự cố là điều không thể tránh được, các lỗi được tạo ra thường là dấu hiệu của
các chương tồi hoặc lỗi của người điều khiển.
1.1.2 Chức năng chân 89C51
Sơ đồ chân của chip 89C51 mơ tả tóm tắt chức năng của từng chân như sau: 32
trong số 40 chân của 89C51 có cơng dụng xuất/nhập, tuy nhiên 24 trong 32 đường này
có 2 mục đích. Mỗi một đường có thể hoạt động xuất/nhập hoặc hoạt động như một
đường địa chỉ/dữ liệu đa hợp.
32 chân trên hình thành 4 port 8-bit. Với các thiết kế yêu cầu một mức tối thiểu
bộ nhớ ngồi khác, ta có thể sử dụng các port này làm nhiệm vụ xuất/nhập. 8 đường

cho mỗi port có thể được xử lí như 1 đơn vị giao tiếp với các thiết bị song song như
máy in, bộ biến đổi D-A… hoặc mỗi đường có thể hoạt động độc lập giao tiếp với một
thiết bị đơn bit như chuyển mạch, LED, BJT, FET cuộn dây, động cơ, loa…
a) PORT0
PORT0 ( các chân từ 32 đến 39 trên 8051) có 2 cơng dụng. Trong các thiết bị
có tối thiểu thành phần, PORT0 được sử dụng làm nhiệm vụ xuất/nhập. Trong các
thiết bị lớn hơn có bộ nhớ ngồi, PORT0 trở thành bus địa chỉ và bus dữ liệu đa hợp
[byte thấp của bus địa chỉ nếu là địa chỉ].
b) PORT1
PORT1 chỉ có 1 cơng dụng là xuất/nhập (các chân từ 1 đến 9 trên 89C51). Các
chân của PORT1 được kí hiệu là P1.0, P1.1…P1.7 và được dùng để giao tiếp với thiết
bị bên ngồi khi có u cầu. Khơng có chức năng nào khác nữa gán cho các chân của
PORT1, nghĩa là chúng chỉ được sử dụng để giao tiếp với các thiết bị ngoại vi.
c) PORT2
PORT2 (các chân từ 21 đến 28 trên 89C51) 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ó bộ nhớ
chương trình ngồi hoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài.

5


KHÓA LUẬN TỐT NGHIỆP
d) PORT3
PORT3 (các chân từ 10 đến 17 của 89C51) có 2 cơng dụng. Khi khơng hoạt
động hoạt động xuất nhập, các chân của PORT3 có nhiều chức năng riêng (mỗi chân
có chức năng riêng liên quan đến các đặc trung cụ thể của 8051).
Bảng dưới đây cho ta chức năng của các chân của PORT3 và 2 chân P1.0, P1.1 của
PORT1.
Bảng 1.2: Chức năng các chân Port3 và hai chân P1.0 và P1.1 của Port1
Bit


Tên

Địa chỉ bit

Chức năng

P3.0

RxD

B0H

Chân nhận dữ liệu của port nối tiếp

P3.1

TxD

B1H

Chân 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


P3.3

INT 1

B3H

Ngõ vào ngắt ngoài 1

P3.4

T0

B4H

Ngõ vào của bộ định thời/ đếm 0

P3.5

T1

B5H

Ngõ vào của bộ định thời/ đếm 1

P3.6

WR

B6H


Điều khiển ghi bộ nhớ dữ liệu ngoài

P3.7

RD

B7H

Điều khiển đọc bộ nhớ dữ liệu ngoài

P1.0

T2

90H

Ngõ vào của bộ định thời/ đếm 2

P1.1

T2EX

91H

Nạp lại/ thu nhận của bộ định thời 2

e) Chân cho phép bộ nhớ chương trình PSEN
89C51 cung cấp cho ta 4 tín hiệu điều khiển bus. Tín hiệu cho phép bộ nhớ
chuong trình PSEN 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

cho truy xuất bộ nhớ chương trình ngồi. Chân này thường nối với chân cho phép OE
của EPROM (hoặc PROM) để cho phép đọc các byle lệnh.
Tín hiệu PSEN ở 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 opcode (mã thao tác) được đọc từ EPROM, qua bus dữ liệu và được
chốt vào thânh ghi lệnh IR của 89C51 để được giải mã.
Khi thực thi 1 chương trình chứa ở ROM nội, PSEN được duy trì ở logic khơng
tích cực (logic 1).
f) Chân cho phép chốt địa chỉ ALE
6


KHÓA LUẬN TỐT NGHIỆP
89C51 sử dụng chân 30, chân xuất tín hiệu cho phép chốt địa chỉ ALE để giải
đa hợp (demultiplexing) 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 để chotts địa chỉ (byte thấp nhất của địa
chỉ 16-bit) vàp 1 thanh ghi ngồi trong suốt ½ đầu của chu kì bộ nhớ (memory cycle).
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 ½ 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 chip 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 giao độ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, 1 xung ALE sẽ bị bỏ qua. Chân ALE còn được
dùng để nhận xung ngõ vào lập trình cho EPROM trên chip đối với các phiên bản của
89C51 có EPROM này.
g) Chân truy xuất ngồi EA
Ngõ vào này (chân31) có thể được nối với 5V (logic 1) hoặc với 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 chương trình cần thực thi chứa ở bộ
nhớ ngồ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 điện 21V cho việc lập trình EPROM nội (nạp EPROM).

h) Chân RESET (RST)
Ngõ vào RST (chân9) là ngõ vào xóa chính (master reset) của 89C51 dùng để
thiết lập lại trạng thái ban đầucho hệ thống hay gọi tắt là reset hệ thống. Khi ngõ vào
này được treo ở logic 1 tối thiểu 2 chu kì máy, các thanh ghi bên trong của 89C51
được nạp các giá trị thích hợp cho việc khởi động lại hệ thống.
i) Các chân XTAL1 và XTAL2
Mạch dao động bên trong chip 89C51 được ghép với thạch anh bên ngoài ở 2
chân XTAL1 và XTAL2 (chân 18 và chân 19). Các tụ ổn định cũng được yêu cầu như
trên hình này. Tân số danh định của thạch anh là 12MHz cho hầu hết các chip. Ở hình
có 1 nguồn xung clock TTL có thể được nối với các chân XTAL1 và XTAL2.

7


KHĨA LUẬN TỐT NGHIỆP

C1

Y1

C2
CAP NP

CRYSTAL

19
18
9

40

VCC

EA/VPP

P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7

P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7

P3.0/RXD
P3.1/TXD
P3.2/INTO
P3.3/INT1
P3.4/TO
P3.5/T1
P3.6/WR
P3.7/RD

XTAL1
XTAL2
RST

PSEN
ALE/PROG

21
22
23
24
25
26
27
28
29
30

20

CAP NP

P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15


39
38
37
36
35
34
33
32

GND

10
11
12
13
14
15
16
17

31

U1
1
2
3
4
5
6

7
8

AT89C51

Hình 1.5: 89C51 ghép với mạch dao động TTL bên ngoài
1.1.3 Cấu trúc PORT xuất nhập
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 1 transistor trường và transistor này nối với chân của port. Khả
năng fanout của các port 1,2,3 là 4 tải vi mạch TTL loại schottky công suất thấp( LS)
còn của PORT0 là 8 tải loại LS.
Lưu ý là điện trở kéo lên (Pull up) sẽ khơng có ở PORT0 (trừ khi port này làm
nhiệm vụ của bus địa chỉ- dữ liệu đa hợp), do vậy 1 điển trở kéo lên bên ngoài phải
được cần đến.
Giá trị của đ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.
Bus nội của 89C51
Đọc
chốt

Kéo lên bên
trong

VCC

Chân
Port

Bộ chốt
của Port

Ghi vào bộ chốt

Hình 1.6: Mạch bên trong của các PORT xuất nhập
8


KHĨA LUẬN TỐT NGHIỆP
Ở đâ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 (như lệnh CPL P1.5) đọc bộ chốt để tránh sự hiểu
nhầm mức điện áp do sự kiện dòng tải tăng. Các lệnh nhập 1-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 hịa 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 1 cách tường minh. Tuy nhiên nếu 1 bộ chốt
PORT bị xóa, 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.
1.1.4 Tổ chức bộ nhớ
Hầu hết các CPU đều có khơng gian nhớ chung cho dữ liệu 1 chương trình.
Điều này cũng hợp lí vì các chương trình thường được lưu trên đĩa và được nạp vào
RAM để thực thi, vậy thì cả 2 dữ liệu và chương trình đều lưu trú trong RAM.
Các chip vi điều khiển hiếm khi được sử dụng giống như các CPU trong các hệ
máy tính, thay vào đó chúng được dùng làm thành phần trung tâm trong các thiết kế
hướng điều khiển, trong đó bộ nhớ có dung lượng giới hạn, khơng có ổ đĩa và hệ điều
hành. Chương trình điều khiển phải thường trú trong ROM.
Do lí do trên, 89C51 có khơng gian bộ nhớ riêng cho chương trình và dữ liệu.
Cả 2 bộ nhớ chương trình và dữ liệu đều đặt bên trong chip, tuy nhiên ta có thể mở
rộng bộ nhớ chương trình và bộ nhớ dữ liệu bằng cách sử dụng các chip nhớ bên ngồi
có dung lượng tối đa là 60K cho bộ nhớ chương trình (hay bộ nhớ mã) và 60K cho bộ
nhớ dữ liệu.
Bộ nhớ nội chip bao gồm ROM (chỉ có ở 8051-8052) và RAM. RAM trên chip

ba gồm vùng RAM đa chức năng, vùng RAM với từng bit được định địa chỉ, các bank
thanh ghi và các thanh ghi chức năng đặc biệt SFR. 2 đặc tính đáng lưu ý là:
(a) Các thanh ghi và các port xuất/nhập được định địa chỉ theo kiểu ánh xạ bộ
nhớ và được truy xuất như 1 vị trí nhớ trong bộ nhớ.
(b) Dùng stack thường trú trong RAM trên chip (RAM nội) vì ở trong RAM
ngồi như đối với các bộ vi xử lí.

9


KHĨA LUẬN TỐT NGHIỆP
FFFF

FFFF

Bộ nhớ
chương
trình được
cho phép
bởi

FF

0

0000

Bộ nhớ
trên chip


Bộ nhớ dữ
liệu được
cho phép
bởi


0000

Bộ nhớ ngồi

Hình 1.7: Tóm tắt các khơng gian nhớ của chip 89C51
1.1.5 Các thanh ghi chức năng đặc biệt( SFR)
Các thanh ghi nội của hầu hết các bộ vi xử lý đều được truy xuất rõ ràng bởi
một tập lệnh. Thí dụ lệnh INCA của chip 6809 tăng nội dung của thanh chứa A bởi 1.
Thao tác được xác định rõ ràng trong opcode của lệnh. Việc truy xuất các thanh ghi
cũng được sử dụng trên 89C51. Lệnh INC A thực hiện cùng công việc trên.
Các thanh ghi nội của 89C51 được cấu hình thành một phần của RAM trên
chip, do vậy mỗi một thanh ghi cũng có một địa chỉ. Điều này hợp lý với 89C51 vì
chip này có rất nhiều thanh ghi. Cũng như các thanh ghi từ R0 đến R7, ta có 21 thanh
ghi chức năng đặc biệt SFR chiếm phần trên của RAM nội từ địa chỉ 80H đến FFH.
Lưu ý là không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà
chỉ có 21 địa chỉ được định nghĩa.

10


KHĨA LUẬN TỐT NGHIỆP
a) Từ trạng thái chương trình PSW
Bảng 1.3: Bảng thanh ghi PSW
Bit

PSW.7
PSW.6
PSW.5
PSW.4
PSW.3

Ký hiệu
CY
AC
F0
RS1
RS0

Địa chỉ
D7H
D6H
D5H
D4H
D3H

PSW.2
PSW.1
PSW.0

0V
P

D2H
D1H
D0H


Mô tả bit
Cờ nhớ
Cờ nhớ phụ
Cờ 0
Chọn dãy thanh ghi( bit1)
Chọn dãy thanh ghi ( bit0)
00= bank 0: địa chỉ từ 00H đến 07H
01= bank 1: địa chỉ từ 08H đến 0FH
10= bank 2: địa chỉ từ 10H đến 17H
11= bank 3: địa chỉ từ 18H đến 1FH
Cờ tràn
Dự trữ
Cờ kiểm tra chẵn lẻ

PSW có địa chỉ là D0H chứa các bit trạng thái có chức năng như trong bảng
b) Thanh ghi B
Thanh ghi B ở địa chỉ F0H đựơc dùng chung với thanh chứa A trong các phép
toán nhân chia. Lệnh MUL AB nhân 2 số 8-bit không dấu chứa trong A và B và chứa
kết quả 16-bit vào cặp thanh ghi B: A( thanh chứa A cất byte thấp và thanh ghi B cất
byte cao).
Lệnh chia DIV AB chia A bởi B, thương số cất trong thanh chứa A và dư số cất trong
thanh ghi B. Thanh ghi B còn được xử lí như 1 thanh ghi nháp. Các bit được định địa
chỉ của thanh ghi B có địa chỉ từ F0H đến F7H.
c) Con trỏ stack
Con trỏ stack SP là 1 thanh ghi 8-bit ở địa chỉ 81H. SP chứa địa chỉ của dữ liệu
hiện đang ở đỉnh của stack. Các lệnh liên quan đến stack bao gồm lệnh cẩ dữ liệu vào
stack và lệnh lấy dữ liệu ra khỏi stack. Việc cất vào stack làm tăng SP trước khi ghi dữ
liệu và việc lấy dữ liệu ra khỏi stack sẽ giảm SP. Vùng stack của 89C51 được giữ
trong RAM nội và được giới hạnh đến các địa chỉ truy xuất được bởi kiểu định địa chỉ

gián tiếp.
d) Con trỏ dữ liệu DPTR: Con trỏ dữ liệu DPTRđược dùng để truy xuất bộ nhớ
chương trình ngồi hoặ bố nhớ dữ liệu ngồi. DPTR là 1 thanh ghi 16-bit có địa chỉ là
82H( DPL, byte thấp) và 83H( DPH, byte cao)

11


KHÓA LUẬN TỐT NGHIỆP
e) Các thanh ghi PORT
Các PORT xuất nhập của 89C51 bao gồm PORT0 tại địa chỉ 80H, PORT1 tại
địa chỉ 90H, PORT2 tại địa chỉ A0H và PORT3 tại địa chỉ B0H. Các PORT0, 2 và 3
không được dùng để xuất nhập nếu ta sử dụng thêm bộ nhớ ngồi hoặc nếu có 1 số đặc
tính đặc biệt của 89C51 được sử dụng( 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
f) Các thanh ghi định thời
89C51 có 2 bộ đếm/định thời( Timer/ Couter) 16-bit để định các khoảng thời
gian hoặc để đếm các sự kiện. Bộ định thời 0 có địa chỉ 8AH( TL0, byte thấp) và 8CH(
TH0, byte cao), bộ định thời 1 có địa chỉ 8BH( TL1, byte thấp) và 8DH( TH1, byte
cao)
Hoạt động của bộ định thời được thiết lập bởi thanh ghi ở chế độ định thời TMOD ở
địa chỉ 89H. Và thanh ghi điều khiểm định thời TCON ở địa chỉ 88H. Chỉ có TCON
được định địa chỉ từng bit.
g) Các thanh ghi của PORT nối tiếp
Bên trong 89C51 có 1 PORT nối tiếp để truyền thông với các thiết bị nối tiếp
như các thiết bị đầu cuối hoặc modem, hoặc để giao tiếp với các IC khác có mạch giao
tiếp nối tiếp( như các thanh ghi dịch chẳng hạn). Một thanh ghi được gọi là bộ đệm dữ
liệu nối tiếp SBUF ở địa chỉ 99H lưu giữ dữ liệu truyền đi và dữ liệu nhận về. Việc ghi
lên SBUF sẽ nạp dữ liệu để truyền và việc đọc SBUF sẽ lấy dữ liệ đã nhận được.

Các chế độ hoạt động khác nhau được lập trình thơng qua thanh ghi điều khiển PORT
nối tiếp SCON ở địa chỉ 98H, thanh ghi này được định địa chỉ từng bit.
h) Các thanh ghi ngắt
89C51 có 1 cấu trúc ngắt với 2 mức ưu tiên và 5 nguyên nhân ngắt. (5 source, 2
priority level interrupt structure). Các ngắt bị vơ hiệu hóa sau khi reset hệ thống và sau
đó được cho phép bằng cách ghi vào thanh ghi cho phép ngắt IEở địa chỉ A8H. Mức
ưu tiên ngắt được thiết lập qua thanh ghi ưu tiên ngắt IP ở địa chỉ B8H. Cả 2 thanh ghi
này đều được định địa chỉ từng bước.

12


KHÓA LUẬN TỐT NGHIỆP

i) Thanh ghi điều khiển nguồn
Thanh ghi điều khiển nguồn PCON có địa chỉ 87H chứa các bit điều khiển được
tóm tắt trong bản.
Bit SMOD tăng gấp đôi tốc độ baud của port nối tiếp khi port này hoạt động ở
chết độ 1,2 hoặc 3. Các bit 4,5 và 6 của PCON không được định nghĩa. Các bit 2 và 3
là các bit cờ đa mục đích dành cho các ứng dụng của người sử dụng.
Các bit điều khiển nguồn, nguồn giảm PD và nghỉ IDL, hợp lệ trong tất cả các
chip thuộc họ MCS-51, nhưng chỉ được thực hiện trong các phiên bản CMOS của
MCS-51. PCON không được định địa chỉ bit.
Chế độ nguồn giảm.
Lệnh thiết lập bit PD bằng 1 sẽ là lệnh sau cùng được thực thi trước khi đi vào
chế độ nguồn giảm. Ở chế đọ nguồn giảm:
(1) Mạch giao động trên chip ngừng hoạt động
(2) Mọi chức năng ngừng hoạt động
(3) Nội dung của RAM trên chip được duy trì
(4) Các chân port duy trì mức logic của chúng

(5) ALE và PSEN được giữ ở mức thấp. Chỉ ra khỏi chế độ này bằng cách reset
hệ thống.
Trong suốt thời gian ở chế độ nguồn giảm, V CC có điện áp là 2V. Cần phải giữ
cho V cc không thấp hơn sau khi đạt được chế độ nguồn giảm và cần phục hồi V cc bằng
5V tối thiểu 10 chu kì dao động trước khi chân RST đạt mức thấp lần nữa.

13


×