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

Tiểu luận thiết kế led trái tim dùng 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.28 MB, 62 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC TÂY ĐÔ
KHOA KỸ THUẬT CÔNG NGHỆ

NIÊN LUẬN 1

THIẾT KẾ LED TRÁI TIM DÙNG VI
ĐIỀU KHIỂN
GIẢNG VIÊN HƯỚNG DẪN:
THẦY: ĐẶNG KIM SẢN

SINH VIÊN THỰC HIỆN:
HUỲNH THIỆN TÂM
SĐT: 0973 965 338
MSSV: 13D520201037
LỚP: ĐIỆN - ĐIỆN TỬ 8

CẦN THƠ, NĂM 2016


MỤC LỤC
*****
Nội dung

Trang

Lời cảm ơn..................................................................................................................1
Lời cam đoan..............................................................................................................2
Nhận xét của giảng viên.............................................................................................3
Lời nói đầu..................................................................................................................4
Chương 1: Tổng quan về đề tài..................................................................................7


I/ Đặt vấn đề......................................................................................................7
II/ Mục tiêu........................................................................................................7
III/ Hướng giải quyết.........................................................................................8
Chương 2: Giới thiệu linh kiện..................................................................................9
I/ AT89S52........................................................................................................9
1/ Tổng quan về AT89S52.......................................................................9
2/ Mô tả chân của AT89S52.....................................................................10
2.1/ Sơ đồ chân của AT89S52.........................................................10
2.2/ Chức năng của các chân AT89S52..........................................11
3/ Tổ chức bộ nhớ bên trong của AT89S52.............................................14
3.1/ RAM đa dụng...........................................................................15
3.2/ RAM có thể định địa chỉ bit.....................................................15


3.3/ Các bank thanh ghi...................................................................15
3.4/ Các thanh ghi có chức năng đặc biệt........................................15
3.4.1/ Thanh ghi trạng thái chương trình................................16
3.4.2/ Thanh ghi Timer...........................................................17
3.4.3/ Thanh ghi ngắt..............................................................18
3.4.3.1/ Tổ chức ngắt của AT89S52..............................18
3.4.3.2/ Cho phép và cắm ngắt......................................19
3.4.3.3/ Các cờ ngắt.......................................................20
3.4.3.4/ Các vecto ngắt...................................................20
II/ Một số linh kiện khác trong mạch................................................................21
1/ Thạch anh 12MHz................................................................................21
2/ Tụ gốm 33 pF.......................................................................................22
3/ Tụ hóa 10 µF........................................................................................22
4/ Điện trờ 220 µ......................................................................................23
5/ LED.......................................................................................................25
Chương 3: Điều khiển IC AT89S52 bằng chương trình Protues..............................26

I/ Sơ đồ...............................................................................................................26
1/ Sơ đồ nguyên lý....................................................................................26
2/ Sơ đồ mạch in.......................................................................................28
3/ Sơ đồ xuất file .pdf...............................................................................29
II/ Chương trình nạp code cho IC AT89S52 hoạt động...................................29


Chương 4: Mở rộng kết luận và đánh giá..................................................................51
I/ Kết quả đạt được............................................................................................51
II/ Ưu điểm – nhược điểm.................................................................................51
1/ Ưu điểm................................................................................................51
2/ Nhược điểm..........................................................................................51
III/ Mở rộng.......................................................................................................51
Tài liệu tham khảo......................................................................................................52


DANH MỤC HÌNH
*****
Hình

Trang

Hình 1: Sơ đồ khối của AT89S52..............................................................................10
Hình 2: Sơ đồ chân của AT89S52.............................................................................10
Hình 3: Mạch chân reset............................................................................................12
Hình 4: Các ngõ vào X1, X2......................................................................................13
Hình 5: Cấu trúc bộ nhớ RAM bên trong vi điều khiển............................................14
Hình 6: Thanh ghi trạng thái chương trình................................................................16
Hình 7: Thanh ghi IE..................................................................................................19
Hình 8: Các vecto ngắt...............................................................................................20

Hình 9: Thạch anh 12 MHz........................................................................................21
Hình 10: Tụ gốm 33pF...............................................................................................22
Hình 11: Tụ hóa 10µF................................................................................................22
Hình 12: Điện trở 220Ω.............................................................................................23
Hình 13: Đèn Led.......................................................................................................25
Hình 14: Sơ đồ nguyên lý..........................................................................................26
Hình 15: Sơ đồ mạch in..............................................................................................28
Hình 16: Sơ đồ xuất file .pdf......................................................................................29


DANH MỤC BẢNG
*****
Bảng

Trang

Bảng 1: Chân port 3...................................................................................................11
Bảng 2: Những bit chọn nack thanh ghi truy xuất.....................................................17
Bảng 3: Các loại cờ ngắt............................................................................................20


LỜI CẢM ƠN!
*****
Trong suốt quá trình thực hiện niên luận, em vô cùng chân thành biết ơn quý thầy
cô đã nhiệt tình giảng dạy rất nhiều kiến thức hữu ích. Nay đã là năm ba, cũng là thời
gian chúng em bước vào niên luận 1 của mình và đã gặp không ít khó khăn, em đã hết
sức nỗ lực và tìm hiểu, nhưng hơn hết là sự chỉ dạy tận tình của thầy Đặng Kim Sản.
Nay niên luận đã hoàn thành, em chân thành cảm ơn thầy đã tận tình chỉ dẫn. Để đáp
ứng lại sự quan tâm đó em sẽ cố gắng phát huy hơn nữa trong các niên luận sau và do
kiến thức còn hạn hẹp nên trong quá trình thực hiện niên luận em không thể tránh khỏi

những sai sót, mong quý thầy cô thông cảm bỏ qua và có những hướng giúp đỡ để em
có thể hoàn chỉnh hơn niên luận của mình.
Em cũng xin gửi lời cảm ơn đến gia đình và bạn bè đã động viên và giúp đỡ rất
nhiều trong suốt quá trình học tập cũng như trong thời gian thực hiện niên luận.
Xin chân thành cảm ơn!
Cần Thơ, ngày 20 tháng 3 năm 2016.


LỜI CAM ĐOAN
*****
Em xin cam đoan: Niên luận này là công trình nghiên cứu thực sự của em, được
thực hiện dựa trên cơ sở nghiên cứu lý thuyết, kiến thức kinh nghiệm, nghiên cứu khảo
sát tình hình thực tiễn cùng với sự hướng dẫn của thầy Đặng Kim Sản. Nội dung niên
luận có tham khảo và sử dụng các tài liệu, thông tin được đăng tải trên các tác phẩm, tạp
chí và các trang web theo danh mục tài liệu tham khảo của luận văn.
Những thông tin về số liệu mô phỏng, kết quả đạt được trong niên luận hoàn toàn
trung thực.
Cần Thơ, ngày 20 tháng 3 năm 2016.
Sinh viên thực hiện đề tài

Huỳnh Thiện Tâm


NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
*****
……………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………

……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
…………………………………………………………………………………………..
Cần Thơ, ngày…....tháng…...năm………..
Giảng viên


Đặng Kim Sản

LỜI NÓI ĐẦU
*****
Trong những thập niên cuối thế kỉ XX, từ sự ra đời của công nghệ bán dẫn, kĩ
thuật điện tử đã có sự phát triển vượt bậc. Các thiết bị điện tử sau đó đã được tích hợp
với mật độ cao và rất cao trong các diện tích nhỏ, nhờ vậy các thiết bị điện tử nhỏ hơn
và nhiều chức năng hơn. Các thiết bị điện tử ngày càng nhiều chức năng trong khi giá
thành ngày càng rẻ hơn, chính vì vậy điện tử có mặt khắp mọi nơi. Bước đột phá mới
trong công nghệ điện tử, công ty trẻ tuổi Intel cho ra đời bộ vi xử lý đầu tiên. Đột phá ở
chỗ: "Đó là một kết cấu logic mà có thể thay đổi chức năng của nó bằng chương trình
ngoài chứ không phát triển theo hướng tạo một cấu trúc phần cứng chỉ thực hiện theo

một số chức năng nhất định như trước đây". Tức là phần cứng chỉ đóng vai trò thứ yếu,
phần mềm (chương trình) đóng vai trò chủ đạo đối với các chức năng cần thực hiện.
Nhờ vậy vi xử lý có sự mềm dẻo hóa trong các chức năng của mình. Ngày nay vi xử lý
có tốc độ tính toán rất cao và khả năng xử lý rất lớn. Vi xử lý có các khối chức năng cần
thiết để lấy dữ liệu, xử lý dữ liệu và xuất dữ liệu ra ngoài sau khi đã xử lý. Và chức năng
chính của vi xử lý chính là xử lý dữ liệu, chẳng hạn như cộng, trừ, nhân, chia, so
sánh.v.v..... Vi xử lý không có khả năng giao tiếp trực tiếp với các thiết bị ngoại vi, nó
chỉ có khả năng nhận và xử lý dữ liệu mà thôi. Để vi xử lý hoạt động cần có chương
trình kèm theo, các chương trình này điều khiển các mạch logic và từ đó vi xử lý xử lý
các dữ liệu cần thiết theo yêu cầu. Chương trình là tập hợp các lệnh để xử lý dữ liệu
thực hiện từng lệnh được lưu trữ trong bộ nhớ, công việc thực hành lệnh bao gồm: nhận
lệnh từ bộ nhớ, giải mã lệnh và thực hiện lệnh sau khi đã giải mã. Để thực hiện các công
việc với các thiết bị cuối cùng, chẳng hạn điều khiển động cơ, hiển thị kí tự trên màn
hình .... đòi hỏi phải kết hợp vi xử lý với các mạch điện giao tiếp với bên ngoài được gọi
là các thiết bị I/O (nhập/xuất) hay còn gọi là các thiết bị ngoại vi. Bản thân các vi xử lý
khi đứng một mình không có nhiều hiệu quả sử dụng, nhưng khi là một phần của một
máy tính, thì hiệu quả ứng dụng của vi xử lý là rất lớn. Vi xử lý kết hợp với các thiết bị


khác được sử trong các hệ thống lớn, phức tạp đòi hỏi phải xử lý một lượng lớn các
phép tính phức tạp, có tốc độ nhanh. Chẳng hạn như các hệ thống sản xuất tự động trong

công nghiệp, các tổng đài điện thoại, hoặc ở các robot có khả năng hoạt động phức tạp
v.v... Bộ Vi xử lý có khả năng vượt bậc so với các hệ thống khác về khả năng tính toán,
xử lý, và thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu quả
đối với các bài toán và hệ thống lớn. Tuy nhiên đối với các ứng dụng nhỏ, tầm tính toán
không đòi hỏi khả năng tính toán lớn thì việc ứng dụng vi xử lý cần cân nhắc. Bởi vì hệ
thống dù lớn hay nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các khối mạch điện giao tiếp
phức tạp như nhau. Các khối này bao gồm bộ nhớ để chứa dữ liệu và chương trình thực
hiện, các mạch điện giao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối này

cùng liên kết với vi xử lý thì mới thực hiện được công việc.
Lập trình vi điều khiển với AT89S52 đòi hỏi người thiết kế phải hiểu biết tinh
tường về các thành phần vi xử lý, bộ nhớ, các thiết bị ngoại vi. Hệ thống được tạo ra khá
phức tạp, chiếm nhiều không gian, mạch in phức tạp và vấn đề chính là trình độ người
thiết kế. Kết quả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để áp dụng
cho các hệ thống nhỏ. Vì một số nhược điểm trên nên các nhà chế tạo tích hợp một ít bộ
nhớ và một số mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất được gọi
là Microcontroller-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 dành cho người 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 dùng, họ không cần nắm vững một khối
lượng kiến thức quá lớn như người dùng vi xử lý, kết cấu mạch điện dành cho người
dùng cũng trở nên đơn giản hơn nhiều và có khả năng giao tiếp trực tiếp với các thiết bị
bên ngoài. Vi điều khiển tuy được xây dựng với phần cứng dành cho người sử dụng đơn
giản hơn, nhưng thay vào lợi điểm này là khả năng xử lý bị giới hạn (tốc độ xử lý chậm
hơn và khả năng tính toán ít hơn, dung lượng chương trình bị giới hạn). Thay vào đó, Vi
điều khiển có giá thành rẻ hơn nhiều so với vi xử lý, việc sử dụng đơn giản, do đó nó
được ứng dụng rộng rãi vào nhiều ứng dụng có chức năng đơn giản, không đòi hỏi tính
toán phức tạp.


Có rất nhiều hãng chế tạo được vi điều khiển, hãng sản xuất nổi tiếng là ATMEL.
Có rất nhiều họ vi điều khiển mang các max số khác nhau, một trong số những họ nổi
tiếng là MCS-51.

Song song với họ MCS-51 là họ MCS-52 có nhiều timer hơn họ MCS-51 một
timer và dung lượng bộ nhớ nội lớn gấp đôi tức 8Kbyte.
Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, các robot có
chức năng đơn giản, trong máy giặt, ôtô, các dây chuyền sản xuất, các bộ điều khiển lập
trình..v.v……
Sau đây em xin trình bày một trong những ứng dụng của vi điều khiển. Đó chính

là lập trình cho vi điều khiển AT89S52 điều khiển chạy các LED đơn xếp thành hình
trái tim.


(Sản phẩm thực tế đã hoàn thành).

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
*****
I/ ĐẶT VẤN ĐỀ.
Việc lập trình cho vi điều khiển AT89S52 điều khiển các LED đơn đóng một vai
trò vô cùng to lớn trong quảng cáo. LED quảng cáo khá thông dụng và phổ biến góp phần
làm nổi bật một công ty, doanh nghiệp hay thậm chí là một cửa hàng. LED quảng cáo đẹp
khác lạ sẽ gây được sự chú ý của nhiều người, đồng thời đem lại nhiều lợi ích và hiệu quả
kinh tế cao. Vì sự đơn giản, hiện đại, bắt mắt, chi phí hợp lí cũng như tính hiệu quả của nó


những bảng thông tin, cổng chào hay những bảng quảng cáo với màu sắc sặc sỡ, bắt mắt,
gây nhiều sự chú ý cho người dân.
Quảng cáo bằng LED hiện nay có thể ứng dụng rất rộng rãi trong nhiều ngành,
nhiều lĩnh vực. Vì nó không chỉ giới hạn bởi việc hiển thị các dòng chữ, các trạng thái
nhấp nháy mà còn thể hiện được các hình ảnh đồ họa. Nó cũng không chỉ quảng cáo
trong nhà, bán ngoài trời mà còn có thể quảng cáo ở cả ngoài trời mà vẫn giữ độ sáng và
độ sắc nét cao.
Niên luận hoàn thành có thể điều khiển hiển thị LED chạy theo ý muốn, theo màu
sắc khác nhau tùy theo người sử dụng đồng thời có khả năng mở rộng cho các mạch
điện qui mô hơn.

II/ MỤC TIÊU.
 Mục tiêu của đề tài là tìm hiểu về vi điều khiển AT89S52 và ứng dụng của
nó để thiết kế, lập trình cho việc điều khiển LED đơn chạy theo ý muốn

mà cụ thể là hình trái tim.
 Mở ra một vấn đề mới về công nghệ quảng cáo.
 Góp phần phát triển công nghệ quảng cáo cũng như sự phát triển của khoa
học kỹ thuật.

 Giải quyết vấn đề cho việc quảng cáo đỡ tốn kém, hiệu quả cao cũng như
việc thúc đẩy phát triển nền kinh tế nước nhà.

III/ HƯỚNG GIẢI QUYẾT.
Để thiết kế được mạch LED chạy theo hình trái tim như mục tiêu đề ra, ta sử
dụng vi điều khiển làm trung tam kiểm soát các tín hiệu. Các tín hiệu đưa vào vi xử lý
AT89S52 và xuất ra các LED đơn điều khiển chúng chạy theo code đã lập trình.
Các giai đoạn của quá trình thiết kế:


• Tìm hiểu về vi xử lý AT89S52.
• Thiết kế mô phỏng trên PROTUES.
• Thiết kế mạch in trên PROTUES.
• Làm mạch thực tế.


CHƯƠNG 2: GIỚI THIỆU LINH KIỆN
*****
I/ AT89S52.
1/ Tổng quan về AT89S52.
AT89S52 là họ IC vi điều khiển do hãng Atmel sản xuất. Các sản phẩm
AT89S52 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 hệ thống điều khiển.
AT89S52 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.
Các đặc điểm của chip AT89S52 được tóm tắt như sau:


8 KByte bộ nhớ có thể lập trình 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



3 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.



4 µs cho hoạt động nhân hoặc chia


Hình 1: Sơ đồ khối của AT89S52.


2/ Mô tả chân của AT89S52.
2.1/ Sơ đồ chân của AT89S52.
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 hang 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.

Hình 2: Sơ đồ chân của AT89S52.

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.
2.2/ Chức năng của các chân AT89S52.
Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7). Port 0 có 2 chức năng: trong các
thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đối với
thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu.
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 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.
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 AT89S52 như ở bảng sau:
Bit
P3.0
P3.1
P3.2
P3.3
P3.4

P3.5
P3.6
P3.7

Tên
RXD
TXD
INT0
INT1
T0
T1
WR
RD

Chức năng chuyển đổi
Ngõ vào dữ liệu nối tiếp
Ngõ xuất dữ liệu nối tiếp
Ngõ vào ngắt cứng thứ 0
Ngõ vào ngắt cứng thứ 1
Ngõ vào TIMER/COUNTER thứ 0
Ngõ vào TIMER/COUNTER thứ 1
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
Tín hiệu đọc bộ nhớ dữ liệu ngoài

Bảng 1: Chân port 3.

PSEN (Program store enable):
PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình mở rộng
và thường được nối đến chân OE của Eprom cho phép đọc các byte mã lệnh.
PSEN ở mức thấp trong thời gian AT89S52 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
AT89S52 để 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):
Khi AT89S52 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và
dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30
dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối


chúng với IC chốt. Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng
vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động.
EA (External Access): Tín hiệu vào EA (chân 31) thường được mắc lên mức 1
hoặc mức 0. Nếu ở mức 1, AT89S52 thi hành chương trình từ ROM nội. Nếu ở mức 0,
AT89S52 thi hành chương trình từ bộ nhớ mở rộng. Chân EA được lấy làm chân cấp
nguồn 21V khi lập trình cho Eprom trong AT89S52.
RST (Reset): Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ máy,
các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Khi
cấp điện mạch phải tự động reset.

Hình

3:

Mạch

chân

reset.

Các giá trị tụ và

điện trở được chọn là:
R1=10Ω;

R2=220Ω;

C=10µF.
Các ngõ vào bộ dao động X1, X2: Bộ tạo dao động được tích hợp bên trong
AT89S52. Khi sử dụng AT89S52, người ta chỉ cần nối thêm thạch anh và các tụ. Tần số
thạch anh tùy

thuộc vào

mục đích của

người sử

dụng, giá trị tụ

thường

được chọn là

33p.


Hình 4: Các ngõ vào X1, X2.

3/ Tổ chức bộ nhớ bên trong AT89S52.
Bộ nhớ trong AT89S52 bao gồm ROM và RAM. RAM trong AT89S52 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. AT89S52 có bộ nhớ được tổ chức 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 có thể chứa bên trong AT89S52 nhưng AT89S52 vẫn có thể kết nối với
64K byte bộ nhớ chương trình và 64K byte dữ liệu bên ngoài.



Hình 5: Cấu trúc bộ nhớ RAM bên trong vi điều khiển.

RAM bên trong AT89S52 đượ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
3.1/ RAM đa dụng
RAM đa dụng có địa chỉ từ 30h – 7Fh có thể truy xuất mỗi lần 8 bit bằng cách
dùng chế độ định địa chỉ trực tiếp hay gián tiếp. Các vùng địa chỉ thấp từ 00h – 2Fh
cũng có thể sử dụng cho mục đích như trên, ngoài các chức năng đặc biệt được đề cập ở
phần sau.
3.2/ RAM có thể định địa chỉ bit
Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM đa dụng
(truy xuât mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh xử lý bit.
3.3/ Các bank thanh ghi
Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ 00h – 07h,
bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh. Các bank thanh ghi
này được đại diện bằng các thanh ghi từ R0 đến R7. Sau khi khởi động thì hệ thống
bank 0 được chọn sử dụng.
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. Viêc thay đổi bank thanh ghi được thực hiện
thông qua thanh ghi từ trạng thái chương trình (PSW).

3.4/ Các thanh ghi có chức năng đặc biệt


Các thanh ghi trong AT89S52 đượ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ộ đế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, AT89S52 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 0FFH.
Sau đây là một vài thanh ghi đặc biệt thường được sử dụng:
3.4.1/ Thanh ghi trạng thái chương trình (PSW: Program Status Word)

Hình 6: Thanh ghi trạng thái chương trình.
Chức năng từng bit trạng thái chương trình
• Cờ Carry CY (Carry Flag):Cờ nhớ thường nó được dùng cho các lệnh toán học:
C =1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn và ngược lại C = 0
nếu phép toán cộng không tràn và phép trừ không có mượn.
• Cờ Carry phụ AC (Auxiliary Carry Flag): Khi cộng những giá trị BCD (Binary
Code Decimal), cờ nhớ phụ AC được set nếu kết quả 4 bit thấp nằm trong phạm
vi điều khiển 0AH - 0FH. Ngược lại AC = 0


×