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

Thiết kế mạch đồng hồ số sử dụng vi điều khiển AT89C51

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 (2.05 MB, 86 trang )

LỜI CẢM ƠN
Với lòng biết ơn sâu sắc, em xin cảm ơn thầy giáo ThS. Vũ Văn Diện,
người đã hết lòng hướng dẫn và ủng hộ tinh thần cho em cũng như định hướng cho
em những phương pháp lập trình và cung cấp tài liệu tham khảo, để em có thể
hồn thành tốt đề tài đồ án của mình.
Em xin gửi lời cảm ơn tới các thầy, cô đã giảng dạy em trong suốt quá trình
học tập tại trường, và đặc biệt là các thầy, cô giảng viên trong bộ mơn Truyền
Thơng Và Mạng Máy Tính – Khoa Cơng Nghệ Thông Tin – Trường ĐH Công
Nghệ Thông Tin Và Truyền Thông – ĐH Thái Nguyên.
Xin cảm ơn các bạn đã nhiệt tình giúp đỡ tơi rất nhiều về tài liệu cũng như
những kiến thức liên quan để tơi hồn thành tốt đồ án này.
Em xin chân thành cảm ơn !
Sinh viên

Dương Văn Miêu

1


LỜI CAM ĐOAN
Để hoàn thành đồ án tốt nghiệp đúng thời gian quy định và đáp ứng được
yêu cầu đề ra, em đã cố gắng tìm hiểu, học hỏi, tích lũy kiến thức đã học. Em có
tham khảo một số tài liệu đã nêu trong phần “Tài liệu tham khảo” nhưng không
sao chép nội dung từ bất kỳ đồ án nào khác.
Em xin cam đoan những lời khai trên là đúng, mọi thơng tin sai lệch em xin
hồn tồn chịu trách nhiệm.
Sinh viên

Dương Văn Miêu

2




MỤC LỤC
LỜI CẢM ƠN ........................................................................................................ 1
LỜI CAM ĐOAN .................................................................................................. 2
MỤC LỤC.............................................................................................................. 3
DANH MỤC HÌNH ẢNH ..................................................................................... 5
LỜI MỞ ĐẦU ........................................................................................................ 7
CHƯƠNG I: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 8051 VÀ CÁC LINH KIỆN
ĐIỆN TỬ SỬ DỤNG TRONG MẠCH ................................................................. 8
1.1 Tổng quan về 8051 ....................................................................................... 8
1.1.1 Giới thiệu vi điều khiển AT89C51 ........................................................ 8
1.1.2 Cấu trúc bên trong vi điều khiển.......................................................... 17
1.1.3 Ram chức năng và các thanh ghi đặc biệt............................................ 18
1.2 Giới thiệu IC thời gian thực RTC (Real Time Clock ) DS1307................. 24
1.2.1 Giới thiệu chung về DS1307 ............................................................... 24
1.2.2 Cơ chế hoạt động và chức năng các chân củaDS1307 ........................ 26
1.2.3 Sơ đồ địa chỉ RAM và RTC................................................................. 27
1.3 KHẢO SÁT LCD 16x2 .............................................................................. 33
1.3.1 Gới thiệu chung về LCD 16x2............................................................. 33
1.3.2 Chức năng các chân của LCD 16x2 .................................................... 33
1.3.3 Bảng tập lệnh của LCD........................................................................ 35
CHƯƠNG II: THIẾT KẾ MẠCH MÔ PHỎNG VÀ LƯU ĐỒ THUẬT TỐN 36
2.1 Giới thiệu phần mềm thiết kế mơ phỏng proteus ....................................... 36
2.1.1 Giới thiệu ............................................................................................. 36
2.1.2 Các thao tác cơ bản ........................................................................... 37
2.1.3 Cách vẽ mạch in................................................................................... 43
2.2 Thiết kế mạch mô phỏng trên proteus ........................................................ 47
2.2.1 Khối nguồn .......................................................................................... 47


3


2.2.2 Khối điều khiển trung tâm ................................................................... 48
2.2.3 Khối tạo thời gian thực ........................................................................ 49
2.2.4 Khối hiển thị ........................................................................................ 49
2.2.5 Khối giao tiếp phím bấm ..................................................................... 50
2.2.6 Mạch mơ phỏng ................................................................................... 51
2.2.7 Lưu đồ thuật toán................................................................................. 52
CHƯƠNG III: THIẾT KẾ MẠCH IN VÀ THI CÔNG MẠCH THẬT.............. 54
3.1 Thiết kế mạch in ......................................................................................... 54
3.2 Thi công mạch thật ..................................................................................... 55
3.2.1 Lựa chọn linh kiện ............................................................................... 55
3.2.2 Thi công mạch ..................................................................................... 59
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ........................................................... 62
TÀI LIỆU THAM KHẢO.................................................................................... 63
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ................................................. 64

4


DANH MỤC HÌNH ẢNH
Hình 1.1 Sơ đồ khối AT89C51 ............................................................................ 10
Hình1.2 Sơ đồ chân AT89C51............................................................................. 11
Hình 1.3 Mạch reset tác động bằng tay và tự động reset khi khởi động máy ...... 13
Hình 1.4 Xung clock ............................................................................................ 14
Hình 1.5 Tổ chức bộ nhớ ..................................................................................... 17
Hình 1.6 Truy xuất bộ nhớ mã ngồi ................................................................... 21
Hình 1.7 Truy xuất bộ nhớ dữ liệu ngồi ............................................................. 22
Hình 1.8 Sự giải mã địa chỉ.................................................................................. 23

Hình 1.9 Manual Reset......................................................................................... 23
Hình 1.10 IC thời gian thực DS1307 ................................................................... 25
Hình 1.11 Chân của IC thời gian thực DS1307 ................................................... 26
Hình 1.12 Sơ đồ khối của DS1307....................................................................... 27
Hình 1.13 Sơ đồ địa chỉ RAM và RTC của DS1307 ........................................... 27
Hình 1.14 Tổ chức các thanh ghi thời gian .......................................................... 28
Hình 1.15 Số BCD ............................................................................................... 29
Hình 1.16 LCD 16x2............................................................................................ 33
Hình 2.1 Khởi động chương trình Proteus ........................................................... 36
Hình 2.2 Giao diện chương trình Proteus ............................................................ 37
Hình 2.3 Thanh cơng cụ ....................................................................................... 37
Hình 2.4 Sử dụng thanh linh kiện ........................................................................ 38
Hình 2.5 Các nút mơ phỏng ................................................................................. 39
Hình 2.6 Thêm linh kiện mới từ thư viện............................................................. 39
Hình 2.7 Cửa sổ lấy linh kiện............................................................................... 40
Hình 2.8 Mở thư viện ISIS................................................................................... 41
Hình 2.9 Lấy linh kiện từ thư viện ISIS............................................................... 41
Hình 2.10 Chọn linh kiện để vẽ mạch.................................................................. 42
5


Hình 2.11 Xác định đầu nối dây dẫn.................................................................... 42
Hình 2.12 Nối dây dẫn ......................................................................................... 43
Hình 2.13 Vẽ mạch in .......................................................................................... 43
Hình 2.14 Định dạng đường bao của bo mạch..................................................... 44
Hình 2.15 Chọn chế độ vẽ mạch Auto ................................................................. 45
Hình 2.16 Cửa sổ Autorouter ............................................................................... 45
Hình 2.17 Chỉnh sửa thơng số của mạch.............................................................. 46
Hình 2.18 Sơ đồ khối tổng quát ........................................................................... 47
Hình 2.19 Khối nguồn.......................................................................................... 48

Hình 2.20 Khối điều khiển trung tâm................................................................... 48
Hình 2.21 Khối tạo thời gian thực........................................................................ 49
Hình 2.22 Khối hiển thị........................................................................................ 50
Hình 2.23 Khối giao tiếp phím bấm..................................................................... 51
Hình 2.24 Mạch mơ phỏng................................................................................... 51
Hình 2.25 Lưu đồ thuật tốn ................................................................................ 52
Hình 3.1 Mạch in.................................................................................................. 54
Hình 3.2 Mạch in 3D............................................................................................ 55
Hình 3.3 IC ổn áp 7805 ........................................................................................ 56
Hình 3.4 Tụ điện .................................................................................................. 57
Hình 3.5 Hình dạng của điện trở trong thiết bị điện tử. ....................................... 57
Hình 3.6 Nút bấm button...................................................................................... 57
Hình 3.7 Biến trở.................................................................................................. 58
Hình 3.8 Thạch anh .............................................................................................. 58
Hình 3.9 Pin CMOS ............................................................................................. 58
Hình 3.10 Mạch in ra giấy.................................................................................... 59
Hình 3.11 Bo mạch đồng ..................................................................................... 59
Hình 3.12 Mạch thực tế (mặt trước)..................................................................... 60
Hình 3.13 Mạch thực tế (mặt sau)........................................................................ 61
6


7


LỜI 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. Vi điều khiển ngày càng được ứng dụng rộng rãi, 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 nó đã góp phần đưa con người lên
đỉnh cao của nền văn minh nhân loại.
Do vậy, việc tìm hiểu về vi điều khiển 8051 và ứng dụng của nó đang được
nhiều người quan tâm. Vì thế, em đã lựa chọn đề tài: “Thiết kế mạch đồng hồ số sử
dụng vi điều khiển AT89C51.” với sự hướng dẫn của thầy giáo ThS. Vũ Văn Diện
Em xin chân cảm ơn sự giúp đỡ và hướng dẫn tận tình của thầy giáo ThS.
Vũ Văn Diện cùng các thầy cô giáo trong bộ mơn đã giúp đỡ em hồn thành đề tài
này.
Em xin chân thành cảm ơn!

8


CHƯƠNG I: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 8051 VÀ CÁC LINH KIỆN
ĐIỆN TỬ SỬ DỤNG TRONG MẠCH
1.1 Tổng quan về 8051
Vào năm 1981 hãng Intel giới thiệu bộ vi điều khiển được gọi là 8051. Bộ
vi điều khiển này có 128 byte RAM, 4K byte ROM trên chip, hai bộ định thời, một
cổng nối tiếp và 4 cổng (độ rộng 8 bit) vào – ra tất cả được đặt trên một chip. Vi
điều khiển 8051 là một bộ xử lý 8 bit có nghĩa là CPU chỉ có thể làm việc với 8 bit
dữ liệu 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ý. Vi điều khiển 8051 đã trở lên phổ biến sau khi Intel cho phép các nhà sản
xuất khác sản xuất và bán các dạng biến thể của 8051, điều này dẫn đến sự ra đời
nhiều phiên bản của 8051 với các tốc độ khác nhau và dung lượng ROM trên chip
khác nhau. Mặc dù có nhiều biến thể khác nhau của 8051 về tốc độ và dung lượng
nhớ ROM trên chip, nhưng tất cả chúng đều tương thích với 8051 ban đầu về các
lệnh, điều này có nghĩa là nếu viết chương trình của mình cho một phiên bản nào
của 8051 thì nó cũng sẽ chạy với mọi phiên bản khác mà không phân biệt nó được
sản xuất từ hãng nào.

MCS-51 là họ IC vi điều khiển do hãng Intel sản xuất. Các IC tiêu biểu cho
họ là 8051 và 8031. Các sản phẩm MCS-51 thích hợp cho những ứng dụng điều
khiển. Việc xử lý trên Byte và các toán số học ở cấu trúc dữ liệu nhỏ được thực
hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội. Tập lệnh cung cấp
một bảng tiện dụng của những lệnh số học 8 Bit gồm cả lệnh nhân và lệnh chia. Nó
cung cấp những hỗ trợ mở rộng trên Chip dùng cho những biến một Bit như là
kiểu dữ liệu riêng biệt cho phép quản lý và kiểm tra Bit trực tiếp trong điều khiển
và những hệ thống logic đòi hỏi xử lý luận lý.
1.1.1 Giới thiệu vi điều khiển AT89C51
AT89C51 cung cấp những đặc tính chuẩn như sau: 4 KB bộ nhớ chỉ đọc có
thể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 2
9


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. Thêm
vào đó, AT89C51 được thiết kế với logic tĩnh cho hoạt động đến mức không tần số
và hỗ trợ hai phần mềm có thể lựa chọn những chế độ tiết kiệm công suất, chế độ
chờ (IDLE MODE) sẽ dừng CPU trong khi vẫn cho phép RAM, timer/counter,
port nối tiếp và hệ thống ngắt tiếp tục hoạt động. Chế độ giảm công suất sẽ lưu nội
dung RAM nhưng sẽ treo bộ dao động làm mất khả năng hoạt động của tất cả
những chức năng khác cho đến khi Reset hệ thống.
 Các đặc điểm của AT89C51 đượctóm tắt như sau
 4 KB bộ nhớ có thể lập trình lại nhanh, có khả năng tới 1000 chu kỳ ghi xoá
 Tần số hoạt động từ: 0Hz đến 24 MHz
 3 mức khóa bộ nhớ lập trình
 2 bộ Timer/counter 16 Bit
 128 Byte RAM nội.
 4 Port xuất /nhập I/O 8 bit.
 Giao tiếp nối tiếp.

 64 KB vùng nhớ mã ngoài
 64 KB vùng nhớ dữ liệu ngoại.
 Xử lý Boolean (hoạt động trên bit đơn).
 210 vị trí nhớ có thể định vị bit.
 4 μs cho hoạt động nhân hoặc chia.



10


1.1.1.1 Sơ đồ khối của AT89C51

11


12


Hình 1.1 Sơ đồ khối AT89C51
Các thanh ghi có trong vi điều khiển bao gồm
 Khối ALU đi kèm với thanh ghi temp 1, temp 2 và thanh ghi trạng thái
PSM.
 Bộ điều khiển logic.
 Vùng nhớ RAM và vùng nhớ Flash Rom lưu trữ chương trình.
 Mạch tạo dao động.
 Khối xử lý ngắt, truyền dữ liệu, khối Time/Counter.
 Thanh ghi A, B, dptr và 4 port có chốt đệm.
 Thanh ghi bộ đếm chương trình PC.
 Con trỏ dữ liệu dptr.

 Thanh ghi con trỏ ngăn xếp SP
 Thanh ghi lệnh IR.
 Các thanh ghi hỗ trợ để quản lý địa chỉ bộ nhớ bên trong và bên ngoài.
1.1.1.2 Sơ đồ chân AT89C51

13


Hình1.2 Sơ đồ chân AT89C51
1.1.1.3 Chức năng các chân của AT89C51
AT89C51 có tất cả 40 chân có chức năng như các đường xuất nhập. Trong
đó có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể
hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần
của các bus dữ liệu và bus địa chỉ.
 Vcc (40): Chân cung cấp điện (5V).
 GND (20): Chân nối đất (0V).
 Các Port:
 Port 0 (32-39):
Port 0 là port xuất nhập 8-bit hai chiều.
14


Port 0 cịn được cấu hình làm bus địa chỉ (byte thấp) và bus dữ liệu đa hợp
trong khi truy xuất bộ nhớ dữ liệu ngoài và bộ nhớ chương trình ngồi.
Port 0 cũng nhận các byte mã trong khi lập trình cho Flash và xuất các byte
mã trong khi kiểm tra chương trình (Các điện trở kéo lên bên ngồi được cần đến
trong khi kiểm tra chương trình).
 Port 1(1-8) :
Port 1 là port xuất nhập 8-bit hai chiều. Port 1 cũng nhận byte địa chỉ thấp
trong thời gian lập trình cho Flash.

 Port 2 (21-28):
Port 2 là port xuất nhập 8-bit hai chiều.
Port 2 tạo ra các byte cao của bus địa chỉ trong thời gian tìm nạp lệnh từ bộ
nhớ chương trình ngồi và trong thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng
các địa chỉ 16-bit. Trong thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa
chỉ 8-bit, Port 2 phát các nội dung của thanh ghi chức năng đặc biệt P2. Port 2
cũng nhận các bít địa chỉ cao và vàitín hiệu điều khiển trong thời gian lập trình cho
Flash và kiểm tra chương trình.
 Port 3 (10-17) :
Port 3 là Port xuất nhập 8-bit hai chiều. Port 3 cũng còn làm các chức năng
khác của AT89C51. Các chức năng này được liệt kê như sau:
Bit

Tên

Chức năng chuyển đổi

P3.0

RXT

Ngõ nhập dữ liệu nối tiếp

P3.1

TXD

Ngõ xuất dữ liệu nối tiếp

P3.2


INT0\

Ngõ vào ngắt cứng thứ 0

P3.3

INT1\

Ngõ vào ngắt cứng thứ 1

P3.4

T0

Ngõ vào của TIMER/COUNTER thứ 0

P3.5

T1

Ngõ vào của TIMER/COUNTER thứ 1

P3.6

WR\

Tín hiệu điều khiển ghi dữ liệu lên bộ nhớ ngồi

P3.7


RD\

Tín hiệu điều khiển đọc bộ nhớ dữ liệu ngoài.
15


Port 3 cũng nhận một vài tín hiệu điều khiển cho việc lập trình Flash và
kiểm tra chương trình.
 RST (9):
Ngõ vào reset. Mức cao trên chân này trong 2 chu kỳ máy trong khi bộ
daođộng đang hoat động sẽ reset AT89C51.

Hình 1.3 Mạch reset tác động bằng tay và tự động reset khi khởi động máy
 ALE/

(30):

ALE là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi truy xuất bộ
nhớ ngoài. Chân này cũng làm ngõ vào xung lập trình(

) trong thời gian lập

trình cho Flash.
Khi hoạt động bình thường, xung ngõ ra ALE ln có tần số khơng đổi là
1/6 tần số của mạch dao động, có thể được dùng cho các mụch đích định thời từ
bên ngoài vàtạo xung clock. Tuy nhiên, lưu ý là một xung ALE sẽ bị bỏ qua trong
mỗi một chu kỳ truy xuất bộ nhớ dữ liệu ngoài.
Khi cần, hoạt động ALE có thể được vơ hiệu hố bằng cách set bit 0 của
thanh ghi chức năng đặc biệt có địa chỉ 8Eh. Khi bit này được set, ALEchỉ tích cực

trong thời gan thực hiện lệnh MOVX hoặc MOVC. Ngược lại, chân này sẽ được
kéo lên cao. Việc set bit không cho phép hoạt động chốt byte thấp của địa chỉ sẽ
khơng có tác dụng nếu bộ vi điều khiển đang ở chế độ thực thi chương trình ngoài.

16


 PSEN (29):
(Program Store Enable) là xung điều khiển truy xuất bộ nhớchương
trình ngồi. Khi AT89C51 đang thực thi chương trình từ bộ nhớ chương trình
ngồi,

được kích hoạt hai lần mỗi chu kỳ máy, nhưng hai hoạt động

sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài.

17




/Vpp (31):
(External Access Enable) là chân cho phép truy xuất bộ nhớ chương

trình ngồi (bắt đầu từ địa chỉ từ 0000H đến FFFFH).
= 0 cho phép truy xuất bộ nhớ chương trình ngồi, ngược lại

=1 sẽ

thực thi chương trình bên trong chip.Tuy nhiên, lưu ý rằng nếu bit khoá 1 (lock-bit

1) được lập trình,

sẽ được chốt bên trong khi reset.Chân này cũng nhận điện

áp cho phép lập trình Vpp=12V khi lập trình Flash (khi đó điện áp lập trình 12V
được chọn).

 XTAL1 và XTAL2:
XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại đảo của
mạch dao động, được cấu hình để dùng như một bộ dao động trên chip.

Hình 1.4 Xung clock
Khơng có u cầu nào về chu kỳ nhiệm vụ của tín hiệu xung clock bên
ngồi do tín hiệu này phải qua một flip-flop chia hai trước khi đến mạch tạo xung
clock bên trong, tuy nhiên các chi tiết kỹ thuật về thời gian mức thấp và mức cao,
điện áp cực tiểu và cực đại cần phải được xem xét.
1.1.1.4 Các chế độ đặc biệt
 Chế độ nghỉ
18


Trong chế độ nghỉ, CPU tự đi vào trạng thái ngủ trong khi tất cả các ngoại
vi bên trong chip vẫn tích cực. Chế độ này được điều khiển bởiphần mềm. Nội
dung của RAM trên chip và của tất cả các thanh ghi chức năng đặc biệt vẫn không
đổi trong khi thời gian tồn tại chế độ này. Chế độ nghỉ có thể được kết thúc bởi
một ngắt bất kỳ nào được phép hoặc bằng cách reset cứng.
Ta cần lưu ý rằng khi chế độnghỉ được kết thúc bởi một reset cứng, chip vi
điều khiển sẽ tiếp tục bình thường việc thực thi chương trình từ nơi chương trình
bị tạm dừng, trong vòng 2 chu kỳ máy trước khi giải thuật reset mềm nắm quyền
điều khiển.

Ở chế độ nghỉ, phần cứng trên chip cấm truy xuất RAM nội nhưng cho phép
truy xuất các chân của các port. Để tránh khả năng có một thao tác ghi khơng
mong muốn đến một chân port khi chế độ nghỉ kết thúc bằng reset, lệnh tiếp theo
yêu cầu chế độ nghỉ không nên là lệnh ghi đến chân port hoặc đến bộ nhớ ngoài.
 Chế độ nguồn giảm
Trong chế độ này, mạch dao động ngừng hoạt động và lệnh yêu cầu chế độ
nguồn giảm là lệnh sau cùng được thực thi. RAM trên chip và các thanh ghi chức
năng đặc biệt vẫn duy trì các giá trị của chúng cho đến khi chế độ nguồn giảm kết
thúc. Chỉ có một cách ra khỏi chế độ nguồn giảm, đó là reset cứng.
Việc reset sẽ xác định lại các thanh ghi chức năng đặc biệt nhưng không
làm thay đổi RAM trên chip. Việc reset không nên xảy ra (chân reset ở mức tích
cực) trước khi Vcc được khơi phục lại mức điện áp bình thường và phải kéo dài
trạng thái tích cực của chân reset đủ lâu để cho phép mạch dao động hoạt động trở
lại và đạt trạng thái ổn định.
Trạng thái của các chân trong thời gian tồn tại chế độ nghỉ và chế độ nguồn
giảm được cho trong bảng sau:
Chế
độ
Nghỉ

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

ALE

PSEN

PORT 0


1

1

Dữ liệu
19

PORT
1
Dữ liệu

PORT
PORT 3
2
Dữ
liệu

Dữ liệu


Nghỉ

Bên ngoài

1

1

Thả nổi


Dữ liệu

Nguồn
giảm

Bên trong

0

0

Dữ liệu

Dữ liệu

Bên ngoài

0

0

Thả nổi

Dữ liệu

Dữ
liệu
Dữ
liệu

Dữ
liệu

Dữ liệu
Dữ liệu
Dữ liệu

1.1.1.5 Các bít khố bộ nhớ chương trình
Trên chip có ba bit khố, các bít này có thể khơng cho phép lập trình
hoặccho phép lập trình, các bit này cho ta thêm một số đặc trưng nữa của
AT89C51như sau.Khi bit khố 1 LB1 được lập trình, mức logic ở chân

được

lấymẫu và được chốt trong khi reset.Nếu việc cấp nguồn cho chip khơng cócơng
dụng reset, mạch chốt được khởi động bằng một giá trị ngẫu nhiên và giátrị này
được duy trì cho đến khi có tác động reset. Điều cần thiết là giá trịđược chốt của
phải phù hợp với mức logic hiện hành ở chân này.
Các bit khóa chương trình
Chế

LB1

LB2

Loại bảo vệ

LB3

độ

1

U

U

U

Khơng có đặc trưng khóa chương trình

2

P

U

U

Các lệnh MOVC được thực thi từ bộ nhớ
chương trình ngồi khơng được phép tìm nạp
lệnh từ bộ nhớ nội,

được lấy mẫu và được

chốt khi reset, hơn nữa việc lập trình trên Flash
bị cấm
3

P


P

U

Như chế độ 2, cấm thêm việc kiểm tra chương
trình

4

P

P

P

Như chế độ 3, cấm thêm việc thực thi chương
trình ngoài

20


1.1.2 Cấu trúc bên trong vi điều khiển
1.1.2.1 Tổ chức bộ nhớ

Hình 1.5 Tổ chức bộ nhớ
1.1.2.2 Cấu trúc RAM bên trong AT89C51 được phân chia như sau
 Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
 RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH.
 RAM đa dụng từ 30H đến 7FH.
 Các thanh ghi chức năng đặc biệt từ 80H đến FFH.

1.1.2.3 Bản đồ bộ nhớ RAM trên Chip như sau
7F

FF
F0 F7 F6 F5 F4 F3 F2 F1 F0 B
RAM đa dụng

E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW
21


30

B8 -

-

-

BC BB BA B9 B8 IP

2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70

B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3

2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60


A8 AF AE AD AC AB AA A9 A8 IE

2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50

A0 A7 A6 A5 A4 A3 A2 A1 A0 P2

29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40

99 Không được định địa chỉ hóa bit SBUF

27 3F 3E 3D 3C 3B 3A 39 38

98 9F 9E 9D 9C 9B 9A 99 98 SCON

26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28

90 97 96 95 94 93 92 91 90 P1

24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18

8D Khơng được định địa chỉ hóa bit TH1

22 17 16 15 14 13 12 11 10

8C Khơng được định địa chỉ hóa bit TH0


21 0F 0E 0D 0C 0B 0A 09 08

8B Không được định địa chỉ hóa bit TL1

20 07 06 05 04 03 02 01 00

8A Khơng được định địa chỉ hóa bit TL0

1F Bank 3

89 Khơng được định địa chỉ hóa bit TMOD

18

88 8F 8E 8D 8C 8B 8A 89 88 TCON

17 Bank 2

87 Khơng được định địa chỉ hóa bit PCON

10
0F Bank 1

83 Khơng được định địa chỉ hóa bit DPH

08

82 Khơng được định địa chỉ hóa bit DPL

07 Bank thanh ghi 0


81 Khơng được định địa chỉ hóa bit SP

22


00 (mặc định cho R0 -R7)

80 87 86 85 84 83 82 81 80 P0

1.1.3 Ram chức năng và các thanh ghi đặc biệt
Bộ nhớ trong AT89C51 bao gồm ROM và RAM. RAM trong AT89C51
bao gồm nhiều thành phần, phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit,
các bank thanh ghi và các thanh ghi chức năng đặc biệt.
AT89C51 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt
cho chương trình và dữ liệu. Chương trình và dữ liệu chứa bên trong AT89C51 nhưng
AT89C51 vẫn có thể kết nối với 64 Kbyte bộ nhớ chương trình và 64 Kbyte dữ liệu.

23


 Hai đặc tính cần chú ý là:
 Các thanh ghi và các Port xuất nhập đã được định vị trong bộ nhớ và có
thể truy xuất trực tiếp giống như các địa chỉ bộ nhớ khác.
 Ngăn xếp bên trong RAM nội nhỏ hơn so với RAM ngoại như trong các
bộ vi điều khiển khác.
1.1.3.1 RAM đa dụng
Mặc dù trên hình vẽ cho thấy 80 byte đa dụng chiếm các địa chỉ từ 30H đến
7FH, 32 byte dưới từ 00H đến 1FH cũng có thể dùng với mục đích tương tự (mặc dù
các địa chỉ này đã có mục đích khác).

Mọi địa chỉ trong vùng RAM đa dụng đều có thể truy xuất tự do dùng kiểu
địa chỉ trực tiếp hoặc gián tiếp.
 RAM có thể truy xuất từng bit
AT89C51 chứa 210 bit được địa chỉ hóa, trong đó có 128 bit có chứa các byte
có chứa các địa chỉ từ 20H đến 2FH và các bit còn lại chứa trong nhóm thanh ghi có
chức năng đặc biệt.
Ý tưởng truy xuất từng bit bằng phần mềm là các đặc tính mạnh
củaMicrocontroller xử lý chung. Các bit có thể được đặt, xóa, AND, OR, với một
lệnh đơn. Đa số các vi xử lý đòi hỏi một chuỗi lệnh đọc - sửa - ghi để đạt được mục
đích tương tự. Ngồi ra các Port cũng có thể truy xuất được từng bit.
128 bit truy xuất từng bit này cũng có thể truy xuất như các byte hoặc như
các bit phụ thuộc vào lệnh được dùng.
 Các bank thanh ghi
32 byte thấp của bộ nhớ nội được dành cho các bank thanh ghi. Bộ lệnh
AT89C51 hỗ trợ 8 thanh ghi có tên là R0 đến R7 và theo mặc định sau khi Reset
hệ thống, các thanh ghi này có các địa chỉ từ 00H đến 07H.
Các lệnh dùng các thanh ghi R0 đến R7 sẽ ngắn hơn và nhanh hơn so với

24


các lệnh có chức năng tương ứng dùng kiểu địa chỉ trực tiếp. Các dữ liệu dùng
thường xuyên nên dùng một trong những thanh ghi này.
Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi
được truy xuất bởi các thanh ghi R0 đến R7, để chuyển đổi việc truy xuất các bank
thanh ghi ta phải thay đổi các bit chọn bank trong thanh ghi trạng thái.
1.1.3.2 Các thanh ghi có chức năng đặc biệt
Các thanh ghi nội của AT89C51 được truy xuất ngầm định bởi bộ
lệnh.Những thanh ghi trong AT89C51 được định dạng như một phần của RAM
trên chip vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ điếm

chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp).
Cũng như R0 đến R7, AT89C51 có 21 thanh ghi có chức năng đặc biệt (SFR:
Special Function Register) ở vùng trên của RAM nội từ địa chỉ 80H đến FFH.
Chú ý: Tất cả 128 địa chỉ từ 80H đến FFH không được định nghĩa, chỉ có
21 thanh ghi có chức năng đặc biệt được định nghĩa sẵn các địa chỉ.
Ngoại trừ thanh ghi A có thể được truy xuất ngầm như đã nói, đa số các
thanh ghi có chức năng đặc biệt SFR có thể địa chỉ hóa từng bit hoặc byte.Thanh
ghi trạng thái chương trình (PSW: Program Status Word):Từ trạng thái chương
trình ở địa chỉ D0H được tóm tắt như sau:
BIT

SYMBOL

ADDRESS

DESCRIPTION

PSW.7

CY

D7H

Cary Flag

PSW.6

AC

D6H


Auxiliary Cary Flag

PSW.5

F0

D5H

Flag 0

PSW4

RS1

D4H

Register Bank Select 1

PSW.3

RS0

D3H

Register Bank Select 0
00=Bank 0; address 00H07H
01=Bank 1; address 08H0FH
10=Bank 2; address 10H17H
11=Bank 3; address 18H1FH

25


×