Tải bản đầy đủ (.doc) (101 trang)

Thiết kế bộ KIT thí nghiệm vi điều khiển 8051

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 (1.47 MB, 101 trang )

1
MỤC LỤC
MỤC LỤC.................................................................................................................................................1
Danh mục các từ viết tắt.........................................................................................................................2
Danh mục hình vẽ....................................................................................................................................4
Danh mục bảng biểu................................................................................................................................5
MỞ ĐẦU..................................................................................................................................................6
CHƯƠNG 1 : GIỚI THIỆU VỀ VI ĐIỀU KHIỂN.............................................................................................8
CHƯƠNG 2 – HỌ VI ĐIỀU KHIỂN 8051...................................................................................................11
Bảng 2.1: Các đặc tính của 8051 đầu tiên..............................................................................................11
Bảng 2.2: Số chu kì máy WDT đếm tùy theo giá trị S0,S1,S2..................................................................15
Bảng 2.3: Thời gian tràn của WDT.........................................................................................................16
Mặc dù các thành viên của họ 8051 (ví dụ 8751, 89S52, 89C51, DS5000) đều có các kiểu đóng vỏ khác
nhau, chẳng hạn như hai hàng chân DIP (Dual In-Line Pakage), dạng vỏ dẹt vuông QPF (Quad Flat
Pakage) và dạng chip không có chân đỡ LLC (Leadless Chip Carrier) thì chúng đều có 40 chân cho các
chức năng khác nhau như vào ra I/O, đọc , ghi , địa chỉ, dữ liệu và ngắt. Cần phải lưu ý một số hãng
cung cấp một phiên bản 8051 có 20 chân với số cổng vào ra ít hơn cho các ứng dụng yêu cầu thấp
hơn. Tuy nhiên vì hầu hết các nhà phát triển sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên
ta chỉ tập trung mô tả phiên bản này.....................................................................................................16
Bảng 2.4 Chức năng của Port.................................................................................................................19
Bảng 2.9: Chế độ hoạt động của Timer 2...............................................................................................29
Bảng 2.10: Bảng chức năng thanh ghi IE................................................................................................31
Bảng 2.11: Bảng chức năng thanh ghi IP...............................................................................................32
CHƯƠNG 3 - THIẾT KẾ KÍT THÍ NGHIỆM VI ĐIỀU KHIỂN 8051................................................................36
Bảng 3.1: Bảng mã hiện thị dành cho led 7 đoạn Anot chung...............................................................43
Bảng 3.2: Bảng mã lệnh của LCD...........................................................................................................51
Bảng 3.3: Chức năng các chân DB-9 của RS232.....................................................................................56
Bảng 3.4: Bảng kích thước bước của ADC0804......................................................................................62
CHƯƠNG 4 : THIẾT KẾ ỨNG DỤNG TRÊN KIT.........................................................................................81
Kết luận.................................................................................................................................................99
Tài liệu tham khảo...............................................................................................................................101




2
Danh mục các từ viết tắt
AC
A/D

Auxiliary Carry Flag
Analog/Digital

ALE

Address Latch Enable

CLK
CP/RL2
CPU
CS
CTS
C/T
DCD
DCE
DPTR
DTR
DSR
DTE
EA
EIA
EN
GND

I2C
IE
I/O
INT
IP
ISR
LCHCLK
MCU
OV
OE
P
PCON

Cờ nhớ phụ
Tương tự/số
Tín hiệu điều khiển chốt địa

chỉ
Clock
Xung đồng hồ
Capture/ Reload Select
Chế độ thu nhận
Central Processing Unit
Đơn vị xử lý trung tâm
Chip Select
Chọn chip
Clear to Send
Xoá để gửi
Timer/Counter
Bộ định thời/ đếm

Data Carrier Detect
Tách tín hiệu mang dữ liệu
Data Comnication Equipment Thiết bị tiếp nhận
Data Pointer
Con trỏ ngăn xếp
Data Terminal Realy
Đầu cuối dữ liệu
Data Set Realy
Dữ liệu sẵn sàng
Data Terminal Equipment
Thiết bị đầu cuối
Tín hiệu cho phép chọn bộ
External Access
nhớ
Electronics Industry
Hiệp hội công nghiệp điện tử
Asscociation
Enable
Chân cho phép
Ground
Đất
Intergrated Circuit
Chuẩn giao tiếp I2C
Interupt Enable
Thanh ghi cho phép ngắt
Input/Output
Vào/Ra
Interrrupt
Ngắt
Interrupt priority

Thanh ghi ưu tiên ngắt
Chương trình con phục vụ
Interrupt Service Routine
ngắt
Latch Clock
Xung cock chốt dữ liệu
Micro Control unit
Vi điều khiển
Over Flag
Cờ tràn
Output Enable
Chân cho phép
Port
Cổng
Power Control Register
Thanh ghi điều khiển nguồn


3
PD
POF

Power Down
Power Off Flag

PSEN

Program Store Enable

PSoC

PSW
RAM
RD
RL
RS
ROM
RST
RTS
SBUF
RXD

Program System on Chip
Program Status Word
Random Access Memory
Read
Ring Indicator
Register Select
Read only Memory
Reset
Reques To Send
Serial Buffer
Receiver Data

SCON

Srerial Control

SCL
SDA
SP

SQW
SFCLK
SQH
TXD

Serial Clock
Serial Data
Stack pointer
Square Wave
Shift Receiver Clock Input
Serial Data Outputs
Transmitted Data
Universal Ansynchronous

nối tiếp
Dây truyền xung clock
Đầu vào dữ liệu nối tiếp
Con trỏ ngăn xếp
Ngõ tạo xung phụ
Chân vào xung clock
Chân dữ liệu nối tiếp
Dữ liệu gửi
Truyền nhận nối tiếp

Receiver And Transmision
Watch dog timer

Bộ định thời giám sát

UART

WDM

Giảm áp
Cờ tắt nguồn
Chân điều khiển đọc chương
trình
Bộ điều chỉnh
Từ trạng thái chương trình
Bộ nhớ truy cập ngẫu nhiên
Đọc
Báo chuông
Chọn thanh ghi
Bộ nhớ chỉ đọc
Thiết lập lại
Yêu cầu gửi
Thanh ghi đệm
Dữ liệu nhận
Thanh ghi điều khiển cổng


4
Danh mục hình vẽ


5
Danh mục bảng biểu
MỤC LỤC.................................................................................................................................................1
Danh mục các từ viết tắt.........................................................................................................................2
Danh mục hình vẽ....................................................................................................................................4
Danh mục bảng biểu................................................................................................................................5

MỞ ĐẦU..................................................................................................................................................6
CHƯƠNG 1 : GIỚI THIỆU VỀ VI ĐIỀU KHIỂN.............................................................................................8
CHƯƠNG 2 – HỌ VI ĐIỀU KHIỂN 8051...................................................................................................11
Bảng 2.1: Các đặc tính của 8051 đầu tiên..............................................................................................11
Bảng 2.2: Số chu kì máy WDT đếm tùy theo giá trị S0,S1,S2..................................................................15
Bảng 2.3: Thời gian tràn của WDT.........................................................................................................16
Mặc dù các thành viên của họ 8051 (ví dụ 8751, 89S52, 89C51, DS5000) đều có các kiểu đóng vỏ khác
nhau, chẳng hạn như hai hàng chân DIP (Dual In-Line Pakage), dạng vỏ dẹt vuông QPF (Quad Flat
Pakage) và dạng chip không có chân đỡ LLC (Leadless Chip Carrier) thì chúng đều có 40 chân cho các
chức năng khác nhau như vào ra I/O, đọc , ghi , địa chỉ, dữ liệu và ngắt. Cần phải lưu ý một số hãng
cung cấp một phiên bản 8051 có 20 chân với số cổng vào ra ít hơn cho các ứng dụng yêu cầu thấp
hơn. Tuy nhiên vì hầu hết các nhà phát triển sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên
ta chỉ tập trung mô tả phiên bản này.....................................................................................................16
Bảng 2.4 Chức năng của Port.................................................................................................................19
Bảng 2.9: Chế độ hoạt động của Timer 2...............................................................................................29
Bảng 2.10: Bảng chức năng thanh ghi IE................................................................................................31
Bảng 2.11: Bảng chức năng thanh ghi IP...............................................................................................32
CHƯƠNG 3 - THIẾT KẾ KÍT THÍ NGHIỆM VI ĐIỀU KHIỂN 8051................................................................36
Bảng 3.1: Bảng mã hiện thị dành cho led 7 đoạn Anot chung...............................................................43
Bảng 3.2: Bảng mã lệnh của LCD...........................................................................................................51
Bảng 3.3: Chức năng các chân DB-9 của RS232.....................................................................................56
Bảng 3.4: Bảng kích thước bước của ADC0804......................................................................................62
CHƯƠNG 4 : THIẾT KẾ ỨNG DỤNG TRÊN KIT.........................................................................................81
Kết luận.................................................................................................................................................99
Tài liệu tham khảo...............................................................................................................................101


6

MỞ ĐẦU

Ngày nay kĩ thuật vi điều khiển đã trở nên quen thuộc trong các ngành kỹ
thuật và trong dân dụng. Từ các dây truyền sản xuất lớn đến các thiết bị gia dụng
chúng ta đều thấy sự hiện diện của vi điều khiển. Vi điều khiển không những góp
phần vào kỹ thuật điều khiển mà còn góp phần to lớn vào phát triển thông tin.
Đó là sự ra đời của hàng loạt thiết bị viễn thông và truyền hình hiện đại, đặc biệt
sự ra đời của mạng internet – góp phần đưa con người lên đỉnh cao của nền văn
minh nhân loại.
Chính vì các lí do trên, việc tìm hiểu khảo sát vi điều khiển là điều mà các
sinh viên ngành điện tử chúng em hết sức quan tâm . Các bộ điều khiển sử dụng
vi điều khiển tuy đơn giản nhưng để vận hành và sử dụng được lại là một điều rất
phức tạp. Phần công việc sử lý chính vẫn là con người đó chính là chương trình
hay phần mềm. Tuy chúng ta thấy các máy tính ngày nay cực kỳ thông minh,
giải quyết các bài toán phức tạp trong vài phần triệu giây nhưng đó cũng đều là
dựa trên sự hiểu biết của con người. Nếu không có sự tham gia của con người thì
hệ thống vi điều khiển cũng chỉ là một vật vô tri. Do vậy khi nói đến vi điều
khiển cũng như máy tính bao gồm phần cứng và phần mềm.
Các bộ vi điều khiển theo thời gian cũng phát triển rất nhanh cùng với công
nghệ bán dẫn, từ các bộ Vi điều khiển 4 bit đơn giản tới các bộ vi điều khiển 32
bit. Bộ vi điều khiển 8 bit là cơ sở để chúng ta tìm hiểu và sử dụng các bộ vi điều
khiển tối tân hơn, đây chính là bước đầu tiên để chúng ta tìm hiểu sâu vào lĩnh
vực này.
Để tìm hiểu bộ vi điều khiển một cách khoa học và mang lại hiệu quả cao
làm nền tảng cho việc xâm nhập công nghệ tối tân hơn. Việc trang bị những kiến


7
thức về vi điều khiển cho sinh viên là hết sức cần thiết. Xuất phát từ thực tế này,
nên em đã chọn đồ án “ Thiết kế bộ KIT thí nghiệm vi điều khiển 8051”.
Nội dung chính của đồ án bao gồm 4 chương:
Chương 1: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN

Chương 2: HỌ VI ĐIỀU KHIỂN 8051
Chương 3: THIẾT KẾ KÍT THÍ NGHIỆM VI ĐIỀU KHIỂN 8051
Chương 4: THIẾT KẾ ỨNG DỤNG TRÊN KIT
Do thời gian có hạn, cùng lượng kiến thức còn hạn chế nên khi hoàn thiện
đồ án không tránh khỏi nhứng thiếu sót, có những câu văn chưa được lưu loát
kính mong thây, cô thông cảm góp ý để hoàn thiện hơn nữa.
Sau cùng em xin chân thành cảm ơn cô giáo VŨ THỊ THU HƯƠNG đã tận
tình chỉ bảo giúp đỡ em hoàn thành được đồ án tốt nghiệp. Em cũng xin chân
thành cảm ơn các thầy cô giáo trong khoa Điện Tử - Trường Đại Học Công
Nghiệp Hà Nội tận tình giảng dạy và hướng dẫn em trong suốt thời gian học tập.
Sinh viên thực hiện
Trần Mạnh Hào


8

CHƯƠNG 1 : GIỚI THIỆU VỀ VI ĐIỀU KHIỂN
1.1 Khái niệm vi điều khiển
Vi điều khiển là những vi mạch điện tử tích hợp (chip) mà bạn có thể lập
trình để thực hiện những nhiệm vụ mà bạn muốn. Khác với vi xử lý, các vi điều
khiển ngoài chức năng xử lý dữ liệu thuật toán…nó còn được tích hợp các bộ
chức năng đặc biệt khác, các vi điều khiển ngõ vào để nhận và xuất dữ liệu, các
bộ timer xử lý thời gian, các bộ trao đổi dữ liệu theo một số chuẩn giao tiếp,
thậm chí có một số loại vi điều khiển còn có cả bộ chuyển đổi AD, bộ điều khiển
động cơ…
Vi điều khiển (MCU – viết tắt của cụm từ ‘Micro Control Unit’) có thể
được coi như một máy tính thu nhỏ trên một chip, nó có thể hoạt động với vài
linh kiện phụ trợ ở bên ngoài.Vi điều khiển khác với vi xử lý ở những điểm sau:
- Về phần cứng: Vi xử lý cần ghép thêm các thiết bị ngoại vi bên ngoài
như bộ nhớ và các thiết bị ngoại vi khác để có thể tạo thành một bản mạch hoàn

chỉnh. Với vi điều khiển bản thân nó là một hệ máy tính hoàn chỉnh với CPU, bộ
nhớ, mạch giao tiếp, các bộ định thời và mạch điều khiển ngắt được tích hợp bên
trong.
- Về ứng dụng: Các bộ vi xử lý chủ yếu được dùng làm CPU trong các
máy tính còn các bộ vi điều khiển dùng làm trong các ứng dụng hướng điều
khiển.
- Về các đặc trưng tập lệnh: Do ứng dụng khác nhau nên các bộ vi xử lý
và vi điều khiển cũng có những yêu cầu khác nhau đối với tập lệnh của chúng.
Tập lệnh của các vi xử lý thường mạnh về các kiểu địa chỉ với các lệnh cung cấp
các hoạt động trên các lượng dữ liệu lớn như 1 byte, ½ byte, word, double


9
word…Ở các vi điều khiển, các tập lệnh rất mạnh trong việc xử lý các kiểu dữ
liệu nhỏ như bit hoặc một vài bit.

1.2 Lịch sử phát triển của vi điều khiển
Trong những thập niên cuối thế kỉ XX, bước đột phá lớn nhất trong công nghệ
điện tử là việc công ty Intel cho ra đời bộ vi xử lý đầu tiên. Phát minh này cho
phép tạo ra các ứng dụng theo một công thức khác: phần cứng+phần mềm=ứng
dụng. Điều này có nghĩa là muốn có một ứng dụng khác thì chỉ cần thay đổi
phần mềm mà có thể giữ nguyên phần cứng.
Bộ vi xử lý sau đó được phát triển theo hai hướng.
- Tăng tấc độ xử lý để phục vụ cho các hệ thống máy tính đòi hỏi tính toán
với tốc độ cao
- Tích hợp trên bộ nhớ, giao tiếp ngoại vi và một số tài nguyên khác trong
cùng một vi mạch, vi mạch đó được gọi là vi điều khiển.
Vi điều khiển có khả năng tương tự như khả năng của vi xử lý, nhưng cấu trúc
phần cứng giành cho người sử dụng đơn giản hơn nhiều. Vi điều khiển ra đời
mang lại sự tiện lợi đối với người sử dụng, họ không cần nắm vững một khối

kiến thức quá lớn như với người sử dụng vi xử lý, mạch điện mà người sử dụng
phải thiết kế cũng trở nên đơn giản, không đòi hỏi tính toán phức tạp như dây
truyền tự động loại nhỏ, các robot có chức năng đơn giản, máy giặt, ô-tô...
Sau đây, là một số loại vi điều khiển tiêu biểu:
- Vi điều khiển 8051,bộ vi điều khiển đầu tiên của họ MCS-51 và là chuẩn
công nghệ cho nhiều họ vi điều khiển được sản xuất sau này.


10
- AVR: đây là sản phẩm của công ty Atmel (Hoa Kỳ) đây là một bộ xử lý
có kiến trúc kiểu Harvard, nghĩa là đơn vị xử lý trung tâm có bộ nhớ chương
trình và một bô nhớ dữ liệu tách biệt. Bộ vi điều khiển AVR có nhiều khả năng
để giảm năng lượng tiêu thụ. Đây là một trong những ưu điểm lớn của họ vi điều
khiển này.
- PIC: là họ vi điều khiển RISC. PIC bắt nguồn là chữ viết tắt của
“Programmable Intelligent Computer”(máy tính khả trình thông minh) la một
sản phẩm của hãng General Intruments đặt cho dòng sản phẩm đầu tiên của họ là
PIC1650. Lúc này PIC1650 được dùng để giao tiếp vói các thiết bị ngoại vi cho
máy chủ 16bit CP1600, vì vậy người ta cũng gọi PIC với cái tên ”Peripheral
Interface Controller” (Bộ điều khiển giao tiếp ngoại vi). CP 1600 là một CPU tốt
nhưng lại kém về các hoạt động xuất/nhập, và vì vậy PIC-8bit được phát triển
vào năm 1975 để hỗ trợ hoạt động xuất nhập cho CPU 1600. PIC sử dụng
microcode đơn giản đặt trong ROM, và mặc dù cụm từ RISC chưa được sử dụng
thời bấy giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy
một lệnh một chu kỳ máy(4 chu kỳ cua dao động).


11

CHƯƠNG 2 – HỌ VI ĐIỀU KHIỂN 8051

2.1 Giới thiệu về họ vi điều khiển 8051
2.1.1 Lịch sử phát triển
Vào năm 1980 Intel công bố chíp 8051(80C51), bộ vi điều khiển dầu tiên
của họ vi điều khiển MCS-51. Nó bao gồm 4Kb ROM, 128 byte RAM, 32 đường
xuất nhập , 1 Port nối tiếp và 2 bộ định thời 16 bit. Tiếp theo đó là sự ra đời của
chip 8052, 8053, 8055 với nhiều tính năng được cải tiến.
Đặc tính

Số lượng

ROM

4 Kbyte

RAM

128 byte

Bộ định thời

2

Chân vào/ra

32

Cổng nối tiếp

1


Nguồn ngắt

6

Bảng 2.1: Các đặc tính của 8051 đầu tiên
Hiện nay Intel không còn cung cấp các loại vi điều khiển họ MCS-51 nữa,
thay vào đó các nhà sản xuất khác như Atmel, Philips/signetics, AMD, Siements,
Semiconductors... được cấp phép làm nhà cung cấp thứ hai cho các chip của họ
MSC-51. Chip Vi điều khiển được sử dụng rộng rãi trên thế giới cũng như ở Việt
Nam hiện nay là vi điều khiển của hãng Atmel với nhiều chủng loại vi điều
khiển khác nhau.


12
Hãng Atmel có các chip vi điều khiển có tính năng tương tự như chip vi
điều khiển MCS-51 của Intel, các mã số được thay đổi chút ít khi được Atmel
sản xuất. Mã số 80 trở thành 89, chẳng hạn 80C52 của Intel khi sản xuất ở Atmel
mã số thành 89C52( mã số đầy đủ: AT89C52) với tính năng chương trình tương
tự như nhau. Tương tự 8051, 8053, 8055 có mã số tương đương ở Atmel là:
89C51, 89C53, 89C55. Vi điều khiển Atmel sau này ngày càng được cải tiến và
được bổ sung thêm nhiều chức năng tiện lợi hơn cho người dùng..
Các phiên bản của họ 8051
-Bộ vi điều khiển 8751
-Bộ vi điều khiển AT8951
-Bộ vi điều khiển DS5000
-Bộ vi điều khiển OPT
2.1.2 Đặc điểm nổi bật
Các Chip họ vi điều khiển 8051được bán rộng rãi trên thị trường với nhiều
tính năng được bổ sung tích hợp sẵn trên Chip, kiểu cách đóng gói đa dạng,
nhiều chủng loại, giá thành phù hợp.

Chương trình phần mềm dành cho các Chip của họ 8051 là như nhau, ta có
thể dùng trình dịch Keil C51 của Keil để biên dịch các tập tin nguồn viết bằng
ngôn ngữ C. Vì vậy người lập trình có rất nhiều thuận lợi khi sử dụng các tập
lệnh.
Các Chip của họ vi điều khiển 8051 đều có thể lập trình được nhiều lần bằng
bộ lập trình chuyên dụng, mạch nạp đơn giản. Ví dụ, các Chip 89Sxx có chế độ
nạp nối tiếp với mạch nạp đơn giản có khả năng nạp ngay trên bo mạch mà
không cần tháo Chip vi điều khiển sang mạch khác để nạp chương trình.


13
Do đó việc lập trình thuận lợi,có thể dùng Chip của họ 8051 để thiết kế và
lắp ráp mạch trong công nghiệp. Đặc biệt với nhất là với các bạn sinh viên dễ
tiếp cận, nghiên cứu và làm các mạch thí nghiệm.
2.2 Kiến trúc phần cứng
2.2.1 Sơ đồ khối và chức năng các khối

Hình 2.1: Sơ đồ khối của 8051
Bộ vi điều khiển họ 8051 gồm các khối chức năng chính sau:
- CPU ( Central processing unit) bao gồm:
Thanh ghi tích lũy A
Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia.


14
Đơn vọ logic học( ALU:Arithmetic Logical Unit ).
Thanh ghi từ trạng thái chương trình(PSW:Progrm Status Word ).
Bốn băng thanh ghi.
Con trỏ ngăn xếp.
- Bộ nhớ chương trình (bộ nhớ ROM) gồm 8 Kbyte Flash

- Bộ nhớ dữ liệu( bộ nhớ RAM) gồm 256 byte.
- Bộ UART(Universal Ansychronous Reciever and Tranmitter) có chức năng
truyền nhận nối tiếp, AT89S52 có thể giao tiếp với cổng nối tiếp của máy tính
thông qua bộ UART
- 3 bộ Timer/Counter 16 bit thực hiện các chức năng định thời và đếm các sự
kiện.
- WDM( Watch Dog Timer): WDM được dùng để phục hồi lại hoạt động của
CPU khi nó bị treo bởi một nguyên nhân nào đó. WDM ở AT89S52 gồm 1 bộ
Timer 14 bit, 1 bộ Timer 7 bit, thanh ghi WDTPRG( WDT Programable) điều
khiển Timer 7 bit và 1 thanh ghi chức năng WDTRST (WDT Register). Bình
thường WDT không hoạt động( bị cấm), để cho phép WDT, các giá trị 1Eh vá
E1H cần phải được ghi liên tiếp vào thanh ghi WDTRST. Timer 14 bit của WDT
sẽ đếm tăng dần sau mỗi chu kì đồng hồ cho đến giá trị 16383 thì xảy ra tràn.
Khi xảy ra tràn chân Reset sẽ được đặt ở mức cao trong khoảng thời gian
98*Tosc ( Tosc=1/Fosc ) và AT89S52 sẽ đượ reset. Khi WDT hoạt động , ngoại
trừ Reset phần cứng và Reset do WDT tràn thì không có cách nào cấm được
WDT, vì vậy khi sử dụng WDT thì các đoạn mã của chương trình phải được đặt
trong các khe thời gian giữa các lần WDT được khởi tạo lại.

Thanh ghi WDTPRG:
-

-

-

-

-


S2

S1

S0


15
bit7

bit 0

Tùy theo các giá trị khác nhau được ghi vào S0,S1,S2 sẽ có số chu kì máy
mà WDT sẽ đếm cho trong bảng 2.4 và thời gian tràn ( time-out) của WDT
trong bảng 2.5
S2

S1

S0

0

0

0

0

0


1

0

1

0

0

1

1

1

0

0

1

0

1

1

1


0

1

1

1

Machine Cyle Count

Bảng 2.2: Số chu kì máy WDT đếm tùy theo giá trị S0,S1,S2

S2

S1

S0

0

0

0

16.38 ms

12.28 ms

9.82 ms


0

0

1

32.77 ms

24.57 ms

19.66 ms

0

1

0

65.54 ms

49.14 ms

39.32 ms

0

1

1


131.01 ms

98.28 ms

76.64 ms

=12Mhz

16Mhz

=20Mhz


16
1

0

0

262.14 ms

196.56 ms

157.28 ms

1

0


1

524.29 ms

393.12 ms

314.56 ms

1

1

0

1.45 s

788.24 ms

629.17 ms

1

1

1

2.1 s

1.57 s


1.25

Bảng 2.3: Thời gian tràn của WDT
-Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong
- Bộ chia tần số với hệ số chia là 12
- 4 cổng xuất nhập với 32 chân.
- Bộ lập trình (ghi chương trình lên Flash ROM ) cho phép người sử dụng có thể
nạp các chương trình lên chip mà không cần các bộ nạp chuyên dụng.
2.2.2 Sơ đồ chân và đóng gói

Hình 2.2 : 89S52 dạng DIP
Mặc dù các thành viên của họ 8051 (ví dụ 8751, 89S52, 89C51, DS5000)
đều có các kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP (Dual InLine Pakage), dạng vỏ dẹt vuông QPF (Quad Flat Pakage) và dạng chip không


17
có chân đỡ LLC (Leadless Chip Carrier) thì chúng đều có 40 chân cho các chức
năng khác nhau như vào ra I/O, đọc RD , ghi WR , địa chỉ, dữ liệu và ngắt. Cần
phải lưu ý một số hãng cung cấp một phiên bản 8051 có 20 chân với số cổng vào
ra ít hơn cho các ứng dụng yêu cầu thấp hơn. Tuy nhiên vì hầu hết các nhà phát
triển sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta chỉ tập trung
mô tả phiên bản này.
- Port 0( P0.0=>P0.7)
Port 0 gồm 8 chân, ngoài chức năng xuất nhập, port 0 còn là bus đa hợp
dữ liệu và địa chỉ( AD0-AD7), chức năng này sẽ được sử dụng khi 89c52 giao
tiếp với các thiết bị ngoài có kiến trúc Bus như các vi mạch nhớ, mạch PIO…

Hình 2.3 Sơ đồ cấu tạo của Port 0.
-Port 1 (P1.0-P1.7)

Port 1: Từ chân 1 đến chân 9 (P1.0 _ P1.7). Port 1 là port IO dùng cho giao
tiếp với thiết bị bên ngoài nếu cần, Port 1 có thể xuất nhập theo bit và theo byte.
Riêng dòng 89Sxx, ba chân P1.5, P1.6, P1.7 được dùng để nạp ROM theo
chuẩn ISP. Hai chân P1.0 và P1.1 được dùng cho bộ timer 2. Sơ đồ kết nối
AT89S52 với cổng song song để nạp chương trình (file .hex).


18

Hình 2.4.Cấu trúc của các chân trên Port1 và Port 3
- Port 2 (P2.0-P2.7)
Port 2: Từ chân 21 đến chân 28 (P2.0 _P2.7). Port 2 là một Port có tác dụng
kép dùng như các đường xuất/nhập hoặc là byte cao của bus địa chỉ đối với các
thiết bị dùng bộ nhớ mở rộng.

Hình 2.5. Cấu trúc các chân trên Port 2
- Port 3 (P3.0-P3.7)
Port 3: Từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có tác dụng kép.
Các chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ
đến các đặc tính đặc biệt của 89S52 như ở bảng 2.6


19
Bit

Tên

Chức năng

P3.0


RXD

Dữ liệu nhận cho Port nối tiếp

P3.1

TXD

Dữ liệu truyền cho Port nối tiếp

P3.2

INT0

Ngắt bên ngoài 0

P3.3

INT1

Ngắt ngoài 1

P3.4

TO

Ngõ vào của Timer/counter0

P3.5


T1

Ngõ vào của Timer/counter1

P3.6

/WR

Xung ghi bộ nhớ dữ liệu ngoài.

P3.7

/RD

Xung đọc bộ nhớ dữ liệu ngoài.

Bảng 2.4 Chức năng của Port
- PSEN (Program stre enable)
PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc chương trình ở bộ nhớ
ngoài và thường được nối đến chân OE để cho phép đọc các byte mã lệnh trên
ROM ngoài. Nối với chân PSEN ở mức thấp trong thời gian 89S52 lấy lệnh. Các
mã lệnh của chương trình được đọc từ EPROM qua bus dữ liệu, được chốt vào
thanh ghi lệnh bên trong 89S52 để giải mã lệnh. Khi 89S52 thi hành chương
trình trong ROM nội, PSEN ở mức cao.
- ALE (Address Latch Enable )
ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 lần tần số dao động
của vi điều khiển. Tín hiệu ALE được dùng để cho phép vi mạch chốt bên ngoài
như 74373, 74573 chốt byte địa chỉ thấp ra khỏi bus đa hợp địa chỉ/dữ liệu
( Port0).

- Chân /EA (Extetnal Access)


20
Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài
vi điều khiển. Nếu /EA ở mức cao (nối với Vcc), thì vi điều khiển thi hành
chương trình trong ROM nội. Nếu /EA ở mức thấp (nối với GND) thì vi điều
khiển thi hành chương trình từ bộ nhớ ngoài.
- RST (Reset )
Ngõ vào RST trên chân 9 là ngõ reset của 8051. Khi tín hiệu này được đưa
lên mức cao (trong ít nhất hai chu kỳ máy ), các thanh ghi trong vi điều khiển
được tải những giá trị thích hợp để khởi động hệ thống.
- XTAL1, XTAL2:
Hai chân này được nối song song với thạch anh tần số max=33 Mhz. Để
tạo dao động cho bộ vi điều khiển.
- Vcc, GND : cung cấp nguồn nuôi cho vi điều khiển qua chân 20 và 40. Có dải
điện áp 1 chiều có dải điện áp từ 4V đến 5,5V.
2.2.3 Bộ tạo dao động
AT89S52 có một bộ chia tần số bên trong chip, bộ này sẽ cung cấp cho vi
điều khiển xung clock cho các khối trên chip từ nguồn dao động bên ngoài qua 2
chân XTAL1 và XTAL2. Bộ chia tần có thể hoạt động ở hai chế độ:
Chế độ X1(chế độ mặc định) thạch anh được chia 12 lần, nghĩa là nếu 1
lệnh trong một chu kì máy và tần số thạch anh là 12MHz thì thời gian thực hiện
lệnh là 1us.


21
Chế độ X2 : Ở chế độ này thạch anh được chia 6 lần, chế độ này được đặt
bằng cách đặt các bit ở thanh ghi CLKCON0 và thanh ghi CLKCON1


Hình 2.6: Mạch tạo dao động dùng thạch anh
2.2.4 Mạch Reset
Có bốn cách để Reset lần lượt là Reset khi cấp nguồn,Reset bởi WDT,
Reset bằng phần mềm và Reset bằng mạch ngoài qua chân RST. AT89S52 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 để nó bắt đầu làm việc .RST có thể được kick bằng tay bởi một
nút bấm thông thường.
V C

C

7

C

A P

C

S W

R
R

1

9

Hình 2.7: Sơ đồ mạch Reset của AT89S52



22
2.3 Hoạt động vào ra
AT89S52 có 4 cổng vào ra song song, lần lượt là P0, P1, P2, P3. Mỗi cổng
có 8 tín hiệu (nên còn được gọi là cổng 8 bit), mỗi tín hiệu gọi là 1 bit và có tên
là Px.y. Trong đó x là số thứ tự cổng (0-> 3), y là số thứ tự của bit (0-> 7).
Hầu hết các cổng đều tích hợp và thêm một số chức năng nào đó (ví dụ
như ngắt ngoài, cổng truyền thông nối tiếp, đầu vào đếm sự kiện…). Trong phần
lớn trường hợp, khi sử dụng tính năng kiêm nhiệm, người dùng không nên sử
dụng cổng đó ở chức năng vào ra thông thường nữa. Ngoại vi on chip nắm quyền
điều khiển mức logic tại cổng đó.
Tất cả các cổng đều là cổng hai chiều, tức là có thể dùng làm cổng vào
hoặc cổng ra. Cổng vào để đọc dữ liệu từ bên ngoài, cổng RS dùng để điều khiển
ngoại vi bên ngoài.
Chiều vào/ra là độc lập giữa các cổng, thậm chí giữa các bit trong cùng
một cổng. Sau khi Reset tất cả các cổng đều là cổng vào ra.
Các thanh ghi SFR liên quan.
Mỗi cổng liên quan đến một thanh ghi chức năng đặc biệt 8 bit (SFR) có
tên trùng với tên cổng, lần lượt là P0, P1, P2, P3.
Trước khi sử dụng cổng phải cấu hình hướng vào/ra cho cổng.
Để cấu hình cổng vào (Input Port), người ta phải ghi các giá trị logic “1”
lên bit trong thanh ghi SFR tương ứng. Sau đó có thể đọc mức logic tại cổng
bằng cách đọc thanh ghi cổng SFR tương ứng.


23
2.4 Hoạt động định thời
2.4.1 Giới thiệu về hoạt động định thời
Các bộ định thời sử dụng rất rộng rãi trong các ứng dụng đo lường và vi điều
khiển.Bộ điều khiển AT89C52 có ba bộ định thời 16 bit trong đó hai bộ Timer 0

và Timer 1 có bốn chế độ hoạt động, Timer 2 có 3 chế độ hoạt động. Các bộ định
thời được dùng để định khoảng thời gian (hẹn giờ), đếm sự kiện xảy ra bên ngoài
bộ vi điều khiển hoặc tạo tốc độ baud cho cổng nối tiếp của vi điều khiển.
-Thanh ghi của Timer 0 và Timer 1
+ Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho
Timer 0 và Timer 1.
GATE1 C/#T1

M1

M0

GATE0

C/#T0

M1

bit 7

M0
bit 0

Hình 2.8: Thanh ghi TMOD của Timer 0 và Timer 1.
Bit

Ký hiệu

7


GATE1

Chức năng
Bit điều khiển cổng.Khi set lên 1, bộ định thời chỉ hoạt động
trong khi INT1 ở mức cao

6

C/#T1

Bit chọn chức năng đếm hoặc định thời
1=đếm sự kiện
0=định thời trong 1 khoảng thời gian

5

M1

Bit chọn chế độ thứ nhất

4

M0

Bit chọn chế độ thứ 2
00 chế độ 0 – Timer 13 bit


24
01 chế độ 1 – Timer 16 bit

10 chế độ 2 – 8 bit tự động nạp lại
11 chế độ 3 – tách Timer
3

GATE0

Bit điều khiển cổng cho bộ định thời 0

2

C/#T0

Bit chọn chức năng đếm hoặc định thời cho bộ định thời 0

1

M1

Bit chọn chế độ thứ nhất cho bộ định thời 0

0

M0

Bit chọn chế độ thứ 2 cho bộ định thời 0

Bảng 2.5: Thanh ghi chức năng TMOD
Thanh ghi chứa giá trị của các bộ định thới của Timer 0 và Timer 1 là
THx và TLx, là thanh ghi 8bit để chứa giá trị khởi tạo hoặc giá trị hiện thời của
Timer. Thanh ghi này không được định địa chỉ bit.

+ Thanh ghi điều khiển Timer (TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển Timer 0 và
Timer 1.
TCON7 TCON6 TCON5 TCON4 TCON3 TCON2 TCON1 TCON0
TF1

TR1

TF0

TR0

IT1

IE1

IT0

IE0

Hình 2.8: Thanh ghi TCON
Bit

Kí hiệu

TCON.7 TF1

Chức năng
Cờ báo tràn của Timer1, được đặt bởi phần cứng khi
có tràn,được xóa bởi phần cứng hoặc mềm khi bộ xử

lí chỉ đến chương trình ngắt

TCON.6 TR1

Bít diều khiển Timer hoạt động

TCON.5 TF0

Cờ báo tràn Timer 0

TCON.4 TR0

Bít điều khiển Timer 0 hoạt động


25
TCON.3 IT1

Cờ ngắt do Timer 1

TCON.2 IE1

Cờ ngắt ngoài 1

TCON.1 IT0

Cờ ngắt do Timer 0

TCON.0 IE0


Cờ ngắt ngoài 0

Bảng 2.6 Chức năng thanh ghi TCON
+ Các thanh ghi chứa giá trị của các bộ định thời
Các Timer 0 và Timer 1 đều là các Timer 16 bit , mỗi Timer có 2 thanh
ghi 8 bit dùng để chứa giá trị khởi tạo hoặc giá trị hiện thời của các Timer. Cụ
thể Timer 0 có TH0 và TL0, Timer 1 có TH1 và TL1 .Các thanh ghi này không
được định địa chỉ bit.
- Các thanh ghi của Timer 2
+ Thanh ghi T2CON
Bit

Kí hiệu

Địa
chỉ

Mô tả

T2CON.7 TF2

CFH

Cờ báo tràn của Timer2, được đặt khi tràn và
xóa bằng phần mềm, không được thiết lập khi
TCLK hoặc RCLK được đặt bằng 1

T2CON.6 EXF2

CEH


Cờ ngắt ngoài của Timer2, được xóa bởi phần
mềm.

T2CON.5 RCLK

CDH

Bit chọn Timer cung cấp xung nhịp cho
đường nhận của cổng nối tiếp.

T2CON.4 TCLK

CCH

Bit chọn Timer cung cấp xung nhịp cho
đường truyền của cổng nối tiếp.

T2CON.3 EXEN2

CBH

Bit điều khiển hoạt động của Timer2.

T2CON.2 TR2

CAH

Bit điều khiển hoạt động của Timer2.


T2CON.1 C/#T2

C9H

Bit chọn chế độ đếm hoặc định thời của
Timer2

T2CON.0 CP/#RL2 C8H

Bit chọn chế độ thu nhận hay nạp lại của
Timer2


×