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

Nghiên cứu thiết kế KIT thí nghiệm vi điều khiển

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.1 MB, 74 trang )

Trường Đại học Công Nghiệp Hà Nội 1 Khoa Điện Tử
MỤC LỤC
DANH MỤC HÌNH VẼ 3
DANH MỤC BẢNG 4
LỜI MỞ ĐẦU 6
Trong thời gian thực hiện đề tài, em nhận được sự giúp đỡ nhiệt tình, quý báu của
các thầy cô giáo và các bạn đồng nghiệp. Tuy nhiên, do thời gian có hạn, đề tài
không tránh khỏi những thiếu sót. Rất mong sự chỉ bảo, góp ý, phê bình của quí
thầy cô và các bạn 7
Phần 1: TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN 8
CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ HỌ VI ĐIỀU KHIỂN 8051 8
CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ AT89S52 13
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.
13
Hình 2.4 Cấu trúc của các chân trên Port 2 15
Bảng 2.1 Chức năng của Port 3 15
Hình 2.5 Mạch Reset 16
17
Hình 2.6 Mạch tạo dao động 17
VCC, GND 17
Bảng 2.2 Thanh ghi trạng thái chương trình 18
Bảng 2.3 Thanh ghi TMOD 19
Bảng 2.4 Thanh ghi T2CON 21
Bảng 2.5 Thanh ghi T2MOD 22


Hình 2.7 Mô tả hoạt động của cổng nối tiếp 24
Phần 2: NỘI DUNG THIẾT KẾ 28
CHƯƠNG 1: GIỚI THIỆU CÁC KHỐI VÀ CÁC THIẾT BỊ TRONG MẠCH 28
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 2 Khoa Điện Tử
Hình 1.9 Led phát và led thu hồng ngoại 40
Hình 1.10 LCD 16X2 41
Bảng 1.4 Bảng mã lệnh của LCD 43
Hình 1.12 Sơ đồ chân led 7 đoạn 43
Bảng 1.5 Mã hiện thị led 7 đoạn A chung 44
Hình 1.13 Cấu tạo của led matrix 45
CHƯƠNG 2: CÁC VÍ DỤ MINH HỌA CHO CÁC MODUL 57
Phần 3: KẾT LUẬN 72
TÀI LIỆU THAM KHẢO 74
DANH MỤC KÍ HIỆU, CHỮ VIẾT TẮT.
AC Auxiliary Carry Flag Cờ nhớ phụ
A/D Analog/Digital Tương tự/số
ALE Address Latch Enable Tín hiệu điều khiển chốt địa chỉ
CLK Clock Xung đồng hồ
CP/RL2 Capture/ Reload Select Chế độ thu nhận
CPU Central Processing Unit Đơn vị xử lý trung tâm
CS Chip Select Chọn chip
CTS Clear to Send Xoá để gửi
C/T Timer/Counter Bộ định thời/ đếm
DCD Data Carrier Detect Tách tín hiệu mang dữ liệu
DCE Data Comnication Equipment Thiết bị tiếp nhận
DPTR Data Pointer Con trỏ ngăn xếp
DTR Data Terminal Realy Đầu cuối dữ liệu

DSR Data Set Realy Dữ liệu sẵn sàng
DTE Data Terminal Equipment Thiết bị đầu cuối
EA External Access Tín hiệu cho phép chọn bộ nhớ
EIA Electronics Industry Asscociation Hiệp hội công nghiệp điện tử
EN Enable Chân cho phép
GND Ground Đất
I2C Intergrated Circuit Chuẩn giao tiếp I2C
IE Interupt Enable Thanh ghi cho phép ngắt
I/O Input/Output Vào/Ra
INT Interrrupt Ngắt
IP Interrupt priority Thanh ghi ưu tiên ngắt
ISR Interrupt Service Routine Chương trình con phục vụ ngắt
LCHCLK Latch Clock Xung cock chốt dữ liệu
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 3 Khoa Điện Tử
DANH MỤC HÌNH VẼ
Hình 2.1 Sơ đồ chân của 89S52
15
Hình 2.2 Cấu trúc của các chân port 0
16
Hình 2.1 Cấu trúc của các chân trên port 1 và port 3
16
Hình 2.4 Cấu trúc của các chân trên Port 2
17
Hình 2.5 Mạch Reset
19
Hình 2.6 Mạch tạo dao động
19

Hình 2.7 Mô tả hoạt động của cổng nối tiếp
27
Hình 1.1 Sơ đồ chân của AT89s52
32
Hình 1.2 Sơ đồ chân ADC 804
34
Hình 1.3 Sơ đồ chân IC 74HC595
37
Hình 1.4 Sơ đồ chân của LM358
38
Hình 1.5 Sơ đồ đầu nối và hình dạng thực tế của DB-9 của RS23
39
Hình 1.6 Sơ đồ chân và hình dạng thực tế của MAX232
40
Hình 1.7 Sơ đồ chân DS1307
41
Hình 1.8 Hình dạng led đơn
43
Hình 1.9 Led phát và led thu hồng ngoại
44
Hình 1.10 LCD 16X2
45
Hình 1.11 Sơ đồ chân của LCD 16X2
46
Hình 1.12 Sơ đồ chân led 7 đoạn
48
Hình 1.13 Cấu tạo của led matrix
50
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO

SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 4 Khoa Điện Tử
Hình 1.8 Sơ đồ khối nguồn
51
Hình 1.9 Sơ đồ khối vi điều khiển
51
Hình 1.10 Sơ đồ khối quét led đơn
52
Hình 1.11 Sơ đồ khối quét led 7 thanh
53
Hình 1.12 Sơ đồ khối LCD
55
Hình 1.13 Sơ đồ khối quét led ma trận
56
Hình 1.14 Sơ đồ khối cổng COM
57
Hình 1.15 Sơ đồ khối hiển thị thời gian thực
58
Hình 1.16 Sơ đồ khối chuyển đổi ADC
59
Hình 1.17 Sơ đồ khối ngắt hồng ngoại
60
Hình 1.18 Sơ đồ khối ma trận phím
61

DANH MỤC BẢNG
Bảng 1.1 Các đặc tính của 8051 đầu tiên
14
Bảng 2.1 Chức năng của Port 3
18

Bảng 2.2 Thanh ghi trạng thái chương trình
21
Bảng 2.3 Thanh ghi TMOD
23
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 5 Khoa Điện Tử
Bảng 2.4 Thanh ghi T2CON
24
Bảng 2.5 Thanh ghi T2MOD
25
Bảng 2.6 Chế độ hoạt động của timer 2
27
Bảng 2.7 Chức năng thanh ghi điều khiển SCON
28
Bảng 2.8 Thanh ghi cho phép ngắt IE
31
Bảng 2.9 Thanh ghi ưu tiên ngắt IP
31
Bảng 1.1 Chức năng các chân Port3
33
Bảng 1.2 Quan hệ điện áp V ref/2 với Vin
36
Bảng 1.3 Tổ chức bộ nhớ của từng thanh ghi
42
Bảng 1.4 Bảng mã lệnh của LCD
47
Bảng 1.5 Mã hiện thị led 7 đoạn A chung
49

Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 6 Khoa Điện Tử
LỜI MỞ ĐẦU
Ngày nay công nghệ 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 nhỏ
chúng ta đều thấy sự hiện diện của vi điều khiển. Các bộ vi điều khiển có khả năng xử
lý nhiều hoạt động phức tạp mà chỉ cần sử dụng một chip vi mạch nhỏ, nó đã thay thế
các hệ thống điều khiển lớn và phức tạp bằng những mạch điện nhỏ và gọn nhẹ, dễ
dàng thao tác và sử dụng.
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 việc phát triển thông tin. Đó chính là sự ra đời của hàng loạt thiết bị hiện đại trong
ngành viễn thông, truyền hình, đặc biệt là sự ra đời và phát triển của Internet đã góp
phần đưa con người đến đỉnh cao của nền văn minh nhân loại chính vì 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 đặc biệt là ngành
kỹ thuật điện tử rất quan tâm. Đó chính là một nhu cầu cần thiết và cấp bách đối với
mỗi sinh viên. Đề tài này được thực hiện chính là đáp ứng nhu cầu đó. 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 chúng là một
điều rất phức tạp. Các bộ vi điều khiển chủ yếu vẫn phụ thuộc vào con người đó là
chương trình hay phần mềm. Hiện nay đã có những loại máy tính rất thông minh có
thể giải quyết được những bài toán phức tạp trong vài phần triệu giây nhưng thành
quả đạt được cũng 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 cũng chỉ như những vật vô tri. Khi nói đến vi điều khiển
cũng giống như máy tính bao gồm hai phần: phần cứng và phần mềm.
Các bộ vi điều khiển phát triển theo thời gian cùng với sự phát triển của công nghệ
bán dẫn đã phát triển rất nhanh. Từ bộ vi điều khiển 4 bit đơn giản đã phát triển lên bộ
vi điều khiển 32 bit. Với công nghệ tiên tiến hiện nay các máy tính có thể suy nghĩ và
hành động gần giống con người nhưng để tiếp cận và hiểu được công nghệ này cần
phải nghiên cứu trong thời gian rất dài.

Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 7 Khoa Điện Tử
Để tìm hiểu bộ vi điều khiển một cách khoa học và mang lại hiệu quả làm nền tảng
cho sự phát triển sau này thì việc trang bị những kiến thức về vi điều khiển cho sinh
viên là rất cần thiết.
Xuất phát từ thực tiễn này em đã chọn đề tài “Nghiên cứu thiết kế KIT thí nghiệm vi
điều khiển”.
Đề tài của em gồm 3 phần:
Phần I: TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN
Phần II: NỘI DUNG THIẾT KẾ
Phần III: KẾT LUẬN
Em xin chân thành cảm ơn thầy giáo thạc sĩ Bồ Quốc Bảo cùng các thầy các cô và các
bạn sinh viên trong trường đã giúp em hoàn thành đồ án này.
Trong thời gian thực hiện đề tài, em nhận được sự giúp đỡ nhiệt tình, quý báu của các
thầy cô giáo và các bạn đồng nghiệp. Tuy nhiên, do thời gian có hạn, đề tài không
tránh khỏi những thiếu sót. Rất mong sự chỉ bảo, góp ý, phê bình của quí thầy cô và
các bạn
Sinh viên thực hiện:
Mai Thị Minh Trang
Lớp: Điện Tử 1_ K11
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 8 Khoa Điện Tử
Phần 1: TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN
CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ HỌ VI ĐIỀU KHIỂN
8051
0.1 Sơ lược về vi điều khiển

Năm 1976, hãng Intel giới thiệu bộ vi điều khiển 8748 – mở đầu cho họ vi điều
khiển MCS-48. 8748 là một vi mạch chứa hơn 17.000 transistor bao gồm một CPU, 1
kbyte bộ nhớ EPROM, 64B RAM, một bộ đếm/định thời 8 bit và 27 chân vào/ra.
8748 và các vi điều khiển tiếp theo của nó trong họ MCS-48 đã được sử dụng phổ
biến trong các ứng dụng hướng điều khiển như máy giặt, ôtô, các thiết bị ngoại vi của
máy tính… Sau 8748, các bộ vi điều khiển mới liên tục được các hãng sản xuất như
Intel, Atmel, Siemens… giới thiệu cho các ứng dụng nhúng.
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
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 9 Khoa Điện Tử
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 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.
0.2 Sơ lược về các khối trong vi điều khiển
0.2.1 Bộ nhớ
Bộ nhớ là một bộ phận của vi điều khiển chức năng của nó là lưu trữ dữ liệu.
Hoạt động của bộ nhớ được so sánh với tủ lớn có nhiều ngăn kéo, cần đánh dấu ngăn
kéo để không xảy ra sự nhầm lẫn và nội dung được truy cập một cách thuận lợi chính
xác.
Bộ nhớ bao gồm các địa chỉ và việc định địa chỉ để có thể lựa chọn chính xác
một trong các ô nhớ ngoài ra còn cần đến khả năng ghi dữ liệu lên ô nhớ. Với mức
logic bằng 1 có nghĩa là việc ghi đọc đã hoàn tất và ngược lại. Bộ nhớ là phần tử đầu
tiên ta cần nắm rõ để làm việc với vi điều khiển.
Bộ nhớ được tạo ra từ các vi mạch nhớ ROM và RAM.
ROM (Read Only Memory) bộ nhớ chỉ đọc, nội dung bên trong không bị mất khi
mất nguồn nuôi. ROM dùng để chứa các chương trình điều khiển hệ thống như
chương trình kiểm tra các thiết bị khi bật nguồn, chương trình trao đổi thông tin với
các thiết bị ngoại vi như bàn phím, màn hình…
RAM (Random Access Memory) bộ nhớ truy cập ngẫu nhiên, bộ nhớ có thể ghi/đọc
được, ta có thể đọc, xóa thông tin từ bộ nhớ, ghi thông tin mới vào bộ nhớ. Thông tin
trong RAM sẽ bị mất khi mất nguồn nuôi, RAM để lưu trữ toán hạng mã lệnh, kết quả
của chương trình khi nó đang thực hiện. RAM có dung lượng là 1, 2, 4, 8, 16, 32, 64,
128, 256, 512MB.
0.2.2 Đơn vị xử lí trung tâm
Giả sử đã có ít nhất là 3 ô nhớ ta thêm vào một khối có cấu tạo đặc biệt, khối này có
khả năng thực hiện các phép toán cộng, trừ, nhân, chia và di chuyển nội dung từ ô nhớ
này đến ô nhớ khác. Khối ta vừa thêm vào gọi là “đơn vi xử lí trung tâm” và ô nhớ
của nó gọi là các thanh ghi. Do đó những thanh ghi là những ô nhớ và vai trò của nó là
hỗ trợ ta thực hiện nhiều phép toán bất kì trên dữ liệu được tìm thấy trên vi điều khiển.
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11

Trường Đại học Công Nghiệp Hà Nội 10 Khoa Điện Tử
Như vậy hiện tại có hai khối thực hiện độc lập (bộ nhớ và bộ xử lí trung tâm) được kết
nối với nhau.
0.2.3 BUS hệ thống
Các đường dẫn để di chuyển dữ liệu từ khối này sang khối khác gọi là bus. Về mặt
vật lí bus là một nhóm các đường dẫn có thể có 8,16 hoặc nhiều hơn. Bus chia làm 3
loại: bus điều khiển, bus địa chỉ và bus dữ liệu.
Bus điều khiển là các đường dây mang tín hiệu điều khiển hoạt động hoặc phản ánh
trạng thái của các khối như /RD (read - đọc bộ nhớ hoặc thiết bị vào), /WR (write -
ghi dữ liệu vào bộ nhớ hoặc xuất ra thiết bị ra), INT (interrup – ngắt vi xử lí để trao
đổi dữ liệu)…
Bus dữ liệu là các đường dây mang số liệu mà vi xử lí đang trao đổi với bộ nhớ hoặc
thiết bị vào ra
Bus địa chỉ bao gồm số đường dẫn tương xứng với dung lượng bộ nhớ ta muốn định
địa chỉ. Bus địa chỉ mang thông tin về địa chỉ ô nhớ. Bus địa chỉ để truyền địa chỉ từ
CPU tới bộ nhớ còn bus dữ liệu để kết nối tất cả các khối trong vi điều khiển.
0.2.4 Khối vào ra
Có ba loại cổng là vào, ra, cổng hai chiều. Khi làm việc với cổng trước tiên ta phải
chọn cổng cần giao tiếp sau đó truyền dữ liệu tới hoặc nhận dữ liệu từ cổng. Khi làm
việc cổng đóng vai trò như một ô nhớ ghi vào hoặc đọc ra từ các cổng nó được chỉ ra
trên các chân của vi điều khiển.
0.2.5 Truyền thông cổng nối tiếp
Bên cạnh các khối ở trên ta bổ sung thêm khả năng truyền thông với thế giới bên
ngoài. Tuy nhiên cách truyền thông có phần hạn chế. Điểm hạn chế cơ bản là số lượng
đường dẫn cần được dùng để truyền dữ liệu. Khi có hai đường dẫn truyền và nhận dữ
liệu tách biệt nhau ta sẽ có khả năng truyền và nhận dữ liệu cùng một lúc. Vì thế gọi là
chế độ song công, khối cho phép thực hiện việc truyền thông này gọi là khối truyền
thông nối tiếp. Không giống với truyền song song dữ liệu được truyền từng bit một,
hoặc là một chuỗi các bit vì vậy mà có thuật ngữ truyền thông nối tiếp. Sau khi nhận
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC

BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 11 Khoa Điện Tử
dữ liệu ta chuyển sang bước đọc dữ liệu từ bên nhận và lưu vào bộ nhớ. Dữ liệu tới bộ
nhớ thông qua bus để tới ô nhớ truyền rồi tới khối nhận phù hợp.
0.2.6 Bộ định thời
Đây là khối cung cấp cho ta thông tin về thời gian, khoảng thời gian mà một sự kiện
tồn tại Khối cơ bản của bộ định thời là bộ đếm tự do, thực tế bộ đếm này là một
thanh ghi mà giá trị của nó tăng thêm một sau những khoảng thời gian bằng nhau ta có
thể xác định được khoảng thời gian đã trôi qua là bao nhiêu. Đây là phần quan trọng
của vi điều khiển ứng dụng quan trọng trong ngắt.
0.2.7 Watchdog
Đây là bộ đếm tự do khác, trong trường hợp chương trình gặp bất thường nó sẽ
khởi động lại vi điều khiển khi đạt giá trị đếm cực đại. Điều này sẽ dẫn tới kết quả
thực hiện lại chương trình một lần nữa và lần này sẽ chạy chính xác. Nó là phần tử
quan trọng làm cho chương trình trở nên tin cậy hơn mà không cần sự giám sát của
người dùng.
0.2.8 Bộ chuyển đổi tương tự sang số
Vì các tín hiệu bên ngoài thường khác về bản chất với dạng tín hiệu mà vi điều khiển
có thể hiểu được (mức ‘0’ và ‘1’) nên khi đó cần phải chuyển đổi thành một dạng mà
vi điều khiển có thể hiểu được, nhiệm vụ này được thực hiện bởi khối chuyển đổi
tương tự sang số hay gọi là ADC. Khối này có nhiệm vụ chuyển đổi thông tin dưới
dạng một vài giá trị tương tự thành một số nhị phân và đưa tới đơn vị xử lý trung tâm,
lúc này đơn vị xử lý trung tâm có thể xử lý.
0.3 Giới thiệu về họ vi điều khiển 8051
Năm 1981, hãng Intel giới thiệu bộ vi điều khiển 8051, bộ vi điều khiển này có 128
byte RAM, 4 kbyte ROM, hai bộ định thời, một cổng nối tiếp và bốn cổng vào/ra song
song, tất cả được đặt trên một chip. 8051 là bộ xử lý 8 bit có nghĩa là CPU chỉ có thể
làm việc với 8 bit tại một thời điểm. Dữ liệu lớn hơn 8 bit được chia ra thành các dữ
liệu 8 bit để xử lý.

Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 12 Khoa Điện Tử
8051 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc có thể xóa và lập
trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3 TIMER/COUNTER 16 Bit, 5
vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bán song công, 1 mạch dao động
tạo xung Clock và bộ dao động ON-CHIP.
Bảng 2.1 Các đặc tính của 8051 đầu 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
.
• 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
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 13 Khoa Điện Tử
CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ AT89S52
2.1. Sơ đồ chân và chức năng của AT89S52
Hình 2.1 Sơ đồ chân của 89S52.
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
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 từ chân 32 đến chân 39 (P0.0 _ P0.7) 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 được sử dụng
khi 8051 giao tiếp với thiết bị ngoài có kiến trúc bus như các vi mạch nhớ, mạch
PIO
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 14 Khoa Điện Tử
Hình 2.2 Cấu trúc của các chân 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).
Hình 2.2 Cấu trúc của các chân trên port 1 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.
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 15 Khoa Điện Tử
Hình 2.4 Cấu trúc của 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.1.
Bảng 2.1 Chức năng của Port 3.
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 bên ngoài 1
P3.4 T0 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
• PSEN (Program store enable)
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 16 Khoa Điện Tử
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ằn 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 (Port 0).
• Chân /EA (External Access)
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.
Hình 2.5 Mạch Reset.
• XTAL1, XTAL2
AT89S52 có một bộ dao động trên chip, nó thường được nối với bộ dao động thạch
anh có tần số lớn nhất là 33MHz, thông thường là 12MHz.
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 17 Khoa Điện Tử
Hình 2.6 Mạch tạo dao động.
• VCC, GND
AT89S52 dùng nguồn một chiều có dải điện áp từ 4v đến 5,5v được cấp qua chân 40
và chân 20
2.2. Bộ nhớ chương trình
AT89S52 có 8kbyte Flash ROM trên chip, khi chân /EA (chân số 31) được đặt ở mức

logic cao (+5v), bộ vi điều khiển sẽ thực hiện chương trình trong bộ nhớ này bắt đầu
từ địa chỉ 0000H. Số lần lập trình cho bộ nhớ này khoảng 1000 lần. Khi chân /EA ở
mức logic thấp, bộ nhớ chương trình sẽ thực hiện ở bộ nhớ ngoài (EPROM ngoài) tuy
nhiên cần có mạch phối ghép AT89S52.
2.3. Bộ nhớ dữ liệu
Bộ nhớ dữ liệu ngoài là RAM được đọc hoặc được ghi bởi tín hiệu /RD và /WR.
RAM bên trong AT89S52 được phân chia như sau :
Các bank thanh ghi có địa chỉ từ 00H đến 1FH: 32 byte thấp của bộ nhớ nội được
dành cho các bank thanh ghi. Bộ lệnh 8951 hỗ trợ 8 thanh ghi có tên là R0 – R7 và
mặc định sau khi reset hệ thống thanh ghi có địa chỉ từ 00H – 07H. Do có 4 bank
thanh ghi nên tại một thời điểm chỉ có một bank được truy xuất bởi thanh ghi R0 –
R7.
RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH: AT89S52 có 128 bit chứa các
byte định địa chỉ. Các bit có thể được đặt xóa bằng phần mềm với 1 lệnh đơn. RAM
đa dụng từ 30H đến 7FH.
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 18 Khoa Điện Tử
Các thanh ghi chức năng đặc biệt từ 80H đến FFH.
AT89S52 có 21 thanh ghi chức năng ở vùng trên của RAM nội từ địa chỉ 80H đến
FFH.
Thanh ghi trạng thái chương trình.
Bảng 2.2 Thanh ghi trạng thái chương trình.
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ọ bank thanh ghi
00= Bank 0 địa chỉ: 0H÷07H
01= Bank 1 địa chỉ: 08H÷0FH
10= Bank 2 địa chỉ: 10H÷1FH
11= Bank 3 địa chỉ: 18H÷1FH
PSW.2 0V D2H cờ tràn
PSW.1 - D1H dự trữ
PSW.0 P D0H cờ chẵn lẻ
2.4. Hoạt động định thời
2.4.1. Giới thiệu
Các bộ định thời (Timer) được sử dụng rất rộng rãi trong các ứng dụng đo lường và
điều khiển. Có thể coi bộ định thời n bit được tạo bởi n Flip-Flop mắc nối tiếp với
nhau. Đầu vào của bộ định thời là đầu vào của Flip-Flop đầu tiên, đầu ra báo tràn
(Over Flow) của bộ định thời phản ánh trạng thái tràn của nó. Đầu ra của các Flip-
Flop phản ánh giá trị hiện thời của bộ đếm. Tuỳ thuộc vào ứng dụng đầu vào của bộ
định thời có thể lấy nguồn xung lấy từ xung nhịp của vi điều khiển hoặc là lấy từ
nguồn xung từ bên ngoài đưa đến. Vi điều khiển AT89S52 có ba bộ định thời 16 bit
trong đó có hai bộ Timer 0 và Timer 1 có bốn chế độ hoạt động, Timer 2 có ba chế độ
hoạt động. Các bộ định thời được dùng để khẳng định thời gian (hẹn giờ), đếm sự kiện
xảy ra bên ngoài 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.
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 19 Khoa Điện Tử
Trong các ứng dụng định khoảng thời gian, Timer được lập trình sao cho sẽ tràn sau
một khoảng thời gian và thiết lập cờ tràn bằng 1. Cờ tràn được sử dụng bởi chương
trình để thực hiện một hành động tương ứng như kiểm tra trạng thái của các ngõ vào
hoặc gửi các sự kiện ra các ngõ ra.
Đếm sự kiện dùng để xác định số lần xảy ra của một sự kiện. Trong ứng dụng này

người ta tìm cách quy các sự kiện thành sự chuyển mức 1 xuống 0 trên các chân T0
hoặc T1 hoặc T2 để dùng Timer tương ứng đếm các sự kiện đó.
Dựa trên chức năng này, các bộ định thời có thể được thiết lập trình để tạo xung nhịp,
đo thời gian trôi qua giữa hai sự kiện (ví dụ đo độ rộng xung…).
2.4.2. Các thanh ghi của bộ định thời
2.4.2.1. Các thanh ghi của timer 0 và timer 1
Thanh ghi chế độ định thời (TMOD)
Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho Timer 0 và
Timer 1.
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 8 bit để 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.
Bảng 2.3 Thanh ghi TMOD.
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 20 Khoa Điện Tử
GATE1 C/#T1 M1 M0 GATE0 C/#T0 M1 M0
Bit Tên Timer Mô tả
7 GATE1 1
Bit mở cổng cho timer 1, khi được đặt
bằng 1 thì timer 1 chỉ chạy khi chân INT1 ở
mức cao. Nếu bit này được đặt là 0 thì
hoạt động của timer 1 không bị ảnh
hưởng bởi mức logic trên chân INT1
6 C/#T1 1
Bit chọn chế độ timer/couter của timer 1.
1= bộ đếm sự kiện.
0= bộ định khoảng thời gian.
5 M1 1 Bit 1 chọn chế độ (mode) của timer 1

4 M0 1
Bit 0 chọn chế độ của timer 1:
00: chế độ 0 - timer 13 bit
01: chế độ 1 - timer 16 bit
10: chế độ 2 - timer 8 bit tự nạp lại
11: chế độ 3 - tách timer
3 GATE0 0
Bit mở cổng cho timer 0. Khi được đặt
bằng 1 thì timer 0 chỉ chạy khi chân INT0 ở
mức cao.
2 C/#T0 0 Bit chọn chế độ couter/timer của timer 0
1 M1 0 Bit 1 chon chế độ của timer 0
0 M0 0 Bit 0 chọn chế độ của timer 0
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
7
6
5
4
3
2
1
0
Trường Đại học Công Nghiệp Hà Nội 21 Khoa Điện Tử
Bảng 2.4 Thanh ghi T2CON.
TF2 EXF2 RCLK TCLK EXEN2 TR2 C/#T2 CP/#RL2
TF2: Cờ báo tràn của timer 2. TF2 không được thiết lập khi TCLK hoặc RCLK được
đặt bằng 1.
EXF2: Cờ ngắt ngoài của timer 2. EXF2 = 1 khi xảy ra sự nạp lại hoặc thu nhận.

EXF2 = 1 cũng gây ra ngắt do Timer 2 nếu như ngắt này được lập trình cho phép.
RCLK: Bit chọn timer cung cấp xung nhịp cho đường nhận của cổng nối tiếp.
TCLK: Bit chọn timer cung cấp xung nhịp cho đường truyền của cổng nối tiếp.
EXEN2: Bit điều khiển hoạt động của Timer 2. Khi EXEN2=1 việc nạp lại hoặc thu
nhận (Capture) diễn ra khi có sự chuyển trạng thái từ 1 sang 0 ở chân T2EX nếu
Timer 2 không sử dụng để cung cấp tốc độ Baud cho cổng nối tiếp.
TR2: Bit điều khiển hoạt động của timer 2 (tương tự như TR0, 1).
C/#T2: Bit chọn chế độ đếm hoặc định thời của Timer 2 (tương tự như C/#T0,1).
CP/#RL2: Bit chọn chế độ thu nhận hay nạp lại của Timer 2.
Khi CP/#RL2C được thiết lập bằng 1 việc thu nhận được thực hiện khi có sườn xuống
ở chân T2EX và bit EXEN1 được đặt là 1.
Khi CP/#RL2C được đặt bằng 0, việc nạp lại được thực hiện khi có sườn xuống ở
chân T2EX và bit EXEN2 được đặt là 1. Nếu RCLK hoặc TCLK = 1, bit này được bỏ
qua, Timer 2 tự nạp lại khi tràn.
2.4.2.2. Thanh ghi T2MOD
Thanh ghi TMOD có địa chỉ 0C9H, thanh ghi này không định địa chỉ bit.
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
T2CON.7 T2CON.6 T2CON.5 T2CON.4 T2CON.3 T2CON.2 T2CON.1 T2CON.0
Trường Đại học Công Nghiệp Hà Nội 22 Khoa Điện Tử
Bảng 2.5 Thanh ghi T2MOD.
- - - - - - T2OE DCEN
Bit Ký hiệu Mô tả
T2MOD.7 Không sử dụng
T2MOD.6 Không sử dụng
T2MOD.5 Không sử dụng
T2MOD.4 Không sử dụng
T2MOD.3 Không sử dụng
T2MOD.2 Không sử dụng

T2MOD.1 T2OE
Cho phép đầu ra khi sử dụng Timer 2 để chế tạo
xung (chế tạo xung – clock out).
T2MOD.0 DCEN
Bit cho phép Timer 2 hoạt động như bộ đếm
tiến/lùi
Thanh ghi TH2 và TL2, RCAP2H và RCAP2L.
Cũng giống như TH0, TH1 và TL0, TL1 chứa giá trị đếm của Timer 2, tuy nhiên khác nhau
là timer 0, 1 có thể dùng THx để chứa giá trị nạp lại còn Timer 2 dùng RCAP2H và RCAP2L
để chứa giá trị cần nạp lại.
2.4.3. Các chế độ hoạt động của bộ định thời
2.4.3.1. Các chế độ của Timer 0 và Timer 1
+ Chế độ 0:
Chế độ 0 là chế độ định thời 13 bit (8 bit của TH và 5 bit cao của TL) để chứa các giá
trị đếm, 3 bit thấp của TL không được sử dụng.
+ Chế độ 1:
Trong chế độ 1, bộ Timer dùng cả hai thanh ghi TH và TL để chứa giá trị đếm, vì vậy
chế độ này được gọi là chế độ định thời 16 bit. Với chế độ 1, giá trị lớn nhất mà Timer
chưa được là 65535 (tương ứng với FFFFFH), khi đếm quá giá trị này sẽ xảy ra tràn,
khi cờ tràn TF sẽ được đặt bằng 1. Sau khi xảy ra tràn nếu muốn Timer tiếp tục đếm,
chương trình phải có câu lệnh nạp lại giá trị khởi tạo sau khi đã dừng Timer bằng cách
xoá bit TR.
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
T2MOD.7
T2MOD.6
T2MOD.5
T2MOD.4
T2MOD.3

T2MOD.2
T2MOD.1
T2MOD.0
Trường Đại học Công Nghiệp Hà Nội 23 Khoa Điện Tử
+ Chế độ 2:
Trong chế độ 2 bộ Timer dùng TL để chứa các giá trị đếm và TH để chứa các giá trị
nạp lại vì vậy chế độ này được gọi là chế độ tự nạp lại 8 bit. Sau khi đếm quá 255 sẽ
xảy ra tràn, khi đó TF được đặt bằng 1 đồng thời giá trị của timer tự động được nạp lại
bằng nội dung của TH.
+ Chế độ 3:
Trong chế độ 3, Timer 0 được tách thành 2 bộ Timer hoạt động độc lập. Timer thứ
nhất với nguồn xung clock được lấy từ bộ chia tần hoặc trên chip hoặc từ bộ tạo xung
bên ngoài qua chân T0 .
Giá trị đếm của Timer chứa trong TL0, khi xảy ra tràn, cờ TF0 được đặt bằng 1 và gây
ra ngắt do timer 0 (nếu được đặt).
Bộ Timer thứ hai với nguồn xung clock được lấy từ bộ chia tần trên chip. Việc điều
khiển hoạt động của Timer thứ hai chỉ là việc đặt giá trị của bit TR0. Giá trị đếm của
Timer chứa trong TH0, khi xảy ra tràn cờ TF được đặt bằng 1 và gây ra ngắt do Timer
1 (nếu được đặt).
Khi Timer 0 được tách thành 2 Timer 8 bit thì timer 1 vẫn có thể hoạt động bình
thường ở các chế độ 0, 1, 2. Tuy nhiên khi xảy ra tràn cờ TF1 không được thiết lập
bằng 1. Như vậy trong trường hợp này Timer 1 chỉ có thể sử dụng cho các ứng dụng
không cần thiết ngắt (TF1=1), chẳng hạn tốc độ Baud cho port nối tiếp.
2.4.3.2. Các chế độ hoạt động của Timer 2
Timer 2 có ba chế độ hoạt động đó là chế độ thu nhận (Capture), chế độ tự nạp lại
(Auto-reload) và chế độ cung cấp tốc độ baud cho cổng nối tiếp (Baud Rate
Generator).
Bảng 2.6 Chế độ hoạt động của timer 2.
RCLK+TCLK TR2 CP/#RL2 Chế độ
0 0 1 16 bit Auto-reload:16 bit tự nạp lại

0 1 1 16 bit Capture:16 bit thu nhận
1 X 1
Baud Rate Generator:cung cấp tốc
độ baud.
X X 0 Off
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Trường Đại học Công Nghiệp Hà Nội 24 Khoa Điện Tử
2.5. Cổng nối tiếp
2.5.1. Giới thiệu
AT89S52 có một cổng nối tiếp (UART) trên chip có thể hoạt động ở nhiều chế độ
khác nhau với các tốc độ khác nhau. Chức năng chủ yếu của cổng nối tiếp là chuyển
đổi song song sang nối tiếp với dữ liệu xuất và chuyển đổi nối tiếp sang song song với
dữ liệu nhận.
Dữ liệu đi và về hoàn toàn độc lập với nhau, do đó có thể truyền nhận đồng thời, và
cổng nối tiếp có đặc tính như vậy còn gọi là cổng song cổng (Full Duplex).
Hình 2.7 Mô tả hoạt động của cổng nối tiếp.
2.5.2. Các thanh ghi của cổng nối tiếp
Thanh ghi điều khiển cổng nối tiếp (SCON-Serial Controller).
Thanh ghi điều khiển cổng nối tiếp SCON ở địa chỉ 98H chứa bít trạng thái và bit
điều khiển cổng nối tiếp. Các bit điều khiển đặt chế độ hoạt động cho cổng nối tiếp,
các bít trạng thái có thể được kiểm tra bằng phần mềm hoặc có thể được lập trình để
tạo ngắt.
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11
Cổng RS232Máy tính
Bộ
chuyển

mức
89S52
Trường Đại học Công Nghiệp Hà Nội 25 Khoa Điện Tử
Bảng 2.7 Chức năng thanh ghi điều khiển SCON
Bit Kí hiệu Địa chỉ Mô tả
SCON.7 SM0 9FH Bit 0 chọn chế độ cho cổng nối tiếp
SCON.6 SM1 9EH Bit 1 chọn chế độ cho cổng nối tiếp
SCON.5 SM2 9DH Bit 2 chọn chế độ cho cổng nối tiếp
SCON.4 REN 9CH Bit cho phép thu,đặt bằng 1 để nhận kí tự
SCON.3 TB8 9BH Bit truyền thứ 9 dùng trong UART 9 bit
SCON.2 RB8 9AH Bit nhận thứ 9 dùng trong UART 9 bit
SCON.1 TI 99H Cờ ngắt truyền
SCON.0 RI 98H Cờ ngắt nhận
Thanh ghi đệm truyền nhận ở cổng nối tiếp (SBUF-Serial Buffer)
Thanh ghi này có chức năng đệm các kí tự khi chúng được nhận về từ cổng nối
tiếp hoặc truyền đi từ cổng nối tiếp, việc truyền nhận thực chất là việc truy xuất thanh
ghi này.
2.5.3. Các chế hoạt động của cổng nối tiếp
• Chế độ 0: là chế độ cổng nối tiếp được dùng như một thanh ghi dịch 8 bit. Dữ
liệu được truyền /nhận nối tiếp trên chân RXD, chân TXD được dùng để phát xung
clock dịch bit. Khi truyền nhận các byte dữ liệu 8 bit, bit có giá trị thấp nhất LSB
được truyền /nhận trước tiên và bit có giá trị cao MSB được truyền nhận sau cùng.
Việc truyền nhận dữ liệu được bắt đầu bằng việc ghi 1byte dữ liệu vào SBUF còn việc
nhận dữ liệu bắt đầu khi bit REN đặt ở mức 1 và cờ thu RI =0. Tốc độ baud cố định
bằng Fosc/12.
• Chế độ 1: là chế độ dữ liệu truyền nối tiếp trên chân TXD và nhận nối tiếp trên
RXD, chế độ giao tiếp với máy tính qua công COM. Khung truyền dữ liệu gồm 10bit,
ngoài 8bit dữ liệu còn có 1bit start(ở mức thấp) và 1bit stop(ở mức cao).
Tốc độ baud của cổng nối tiếp trong chế độ 1 có thể được cung cấp bởi Timer 1
và Timer 2 hoặc đồng thời cả 2 bộ Timer nếu muốn tần số này sẽ tạo được các tốc độ

baud chuẩn với sai số bằng 0.
• Chế độ 2: là chế độ khung truyền dữ liệu gồm 11 bit, bắt đầu bằng bit Start,
tiếp theo là 8 bit dữ liệu, bit dữ liệu thứ 9, cuối cùng là bit Stop. Chế độ này dùng để
kiểm tra chẵn lẻ trong khung truyền để giảm bit lỗi đường truyền.
Đồ án tốt nghiệp CBHD: Th.S BỒ QUỐC
BẢO
SV: Mai Thị Minh Trang – ĐT1 – K11

×