Tải bản đầy đủ (.docx) (43 trang)

Đồ án máy tính bỏ túi đơn giản(caculator)

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 (554.88 KB, 43 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM
KHOA ĐIỆN - ĐIỆN TỬ

ĐỒ ÁN MÔN HỌC 1
NGÀNH: KỸ THUẬT MÁY TÍNH
Ñeà taøi:
MÁY TÍNH ĐIỆN TỬ
TP. HỒ CHÍ MINH – 6/2011
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
TPHCM
KHOA ĐIỆN - ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ VIỄN THÔNG
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐỘC LẬP – TỰ DO – HẠNH PHÚC

GVHD : Ths.TRƯƠNG NGỌC SƠN
SVTH : HỒNG VŨ ĐĂNG KHOA
MSSV : 08119027
SVTH : LƯƠNG GIA ĐỊNH
Máy tính điện tử Trang 2
PHIẾU CHẤM ĐỒ ÁN MÔN HỌC 1
(Dành cho người hướng dẫn )
1. Họ tên Sinh viên : MSSV:

MSSV:

2. Tên đề tài :


3. Người hướng dẫn :



4. Những ưu điểm của đồ án :







5. Những thiếu sót của đồ án :








6. Đề nghị : Được bảo vệ  Bổ sung để được bảo vệ  Không được bảo vệ 
7. Các câu hỏi sinh viên phải trả lời trước tổ chấm đồ án môn học:
a)


b)


c)


8. Đánh giá điểm (Số và chữ)

Ngày ….Tháng….Năm 201…
CHỮ KÝ VÀ HỌ TÊN
Máy tính điện tử Trang 3
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
TPHCM
KHOA ĐIỆN - ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ VIỄN THÔNG
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐỘC LẬP – TỰ DO – HẠNH PHÚC

PHIẾU CHẤM ĐỒ ÁN MÔN HỌC 1
(Dành cho người hướng dẫn )
1. Họ tên Sinh viên : MSSV:

MSSV:

2. Tên đề tài :


3. Người hướng dẫn :

4. Những ưu điểm của đồ án :







5. Những thiếu sót của đồ án :









6. Đề nghị : Được bảo vệ  Bổ sung để được bảo vệ  Không được bảo vệ 
7. Các câu hỏi sinh viên phải trả lời trước tổ chấm đồ án môn học:
a)


b)


c)


8. Đánh giá điểm (Số và chữ)
Máy tính điện tử Trang 4
Ngày ….Tháng….Năm 201…
CHỮ KÝ VÀ HỌ TÊN
Máy tính điện tử Trang 5
LỜI CẢM ƠN
Lời đầu tiên nhóm thực hiện đề tài xin gửi lời cảm ơn chân thành đến
thầy hướng dẫn, Ths. Trương Ngọc Sơn, người đã tận tình chỉ bảo, giúp đỡ
về mặt chuyên môn và động viên nhóm thực hiện đề tài trong suốt quá trình
thực hiện đề tài.
Nhóm thực hiện đề tài cũng xin gửi lời cảm ơn đến tất cả quý thầy cô,

những người đã giảng dạy từ những buổi đầu, cảm ơn quý thầy cô Khoa
Điện-Điện Tử Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
đã tạo điều kiện để nhóm hoàn thành đề tài này.
Cảm ơn các bạn, những người đã góp ý, giúp đỡ và động viên nhóm hoàn
thành đề tài.
Cuối cùng, nhóm thực hiện đề tài xin gửi lời biết ơn đến bố mẹ và những
người thân trong gia đình đã luôn luôn bên cạnh và ủng hộ tôi trong cuộc
sống.
TP.Hồ Chí Minh, ngày 20 tháng 06 năm 2011
Nhóm thực hiện đề tài
Hồng Vũ Đăng Khoa – Lương Gia Định
Máy tính điện tử Trang 6
LỜI NÓI ĐẦU
Là một nước đang phát triển, và trong những năm gần đây, dưới sự lãnh đạo của
Đảng và Nhà Nước đã đưa đất nước hội nhập ngày càng sâu rộng với thế giới, mở
ra cơ hội phát triển nhanh chóng cho đất nước. Các ngành công nghê cao, đặc biệt là
lĩnh vực tự động hóa, vi xử lý, vi điều khiển ngày càng được chú trọng hơn. Ngày
càng có nhiều ngành nghề ứng dụng vi xử lý, vi điều khiển vào quá trình sản xuất,
vận hành, tự động hóa. Dự án xây dựng nhà máy sản xuất chip vi xử lý hơn 1 triệu
đô la của Intel vào khu công nghệ cao TP.HCM là một ví dụ điển hình cho sự phát
triển, cũng như sự quan tâm của Nhà Nước vào lĩnh vực này.
Là sinh viên, trình độ còn hạn chế, nên nhóm thực hiện đề tài chưa thể lĩnh hội
hết các kiến thức cũng như các ứng dụng về lĩnh vực này. Do đó, đề tài chắc chắn
còn nhiều thiếu sót, rất mong quý thầy cô và các bạn chỉ dẫn và đóng góp ý kiến để
đề tài hoàn thiện hơn.
Nhóm thực hiện đề tài
Hồng Vũ Đăng Khoa – Lương Gia Định
Máy tính điện tử Trang 7
PHẦN A : GIỚI THIỆU
Máy tính điện tử Trang 8

MỤC LỤC
Trang
Phần A Giới thiệu
Trang bìa
Trang chấm ĐAMH của GVHD 2
Lời cảm ơn 4
Lời nói đầu 5
Mục lục 7
Liệt kê hình 9
Liệt kê bảng 10
Phần B Nội dung
Chương 1 DẪN NHẬP
1.1 Lời nói đầu 12
1.2 Giới thiệu đề tài
1.2.1 Lý do chọn đề tài 12
1.2.2 Mục tiêu của đề tài 12
1.2.3 Lựa chon phương án làm việc 12
1.2.4 Giới hạn của đề tài 13
Chương 2 CƠ SỞ LÝ THUYẾT CỦA HỌ VI ĐIỀU KHIỂN 8051
2.1 Giới thiệu về vi điều khiển 8051 14
2.2 Các thành viên khác của họ 8051 15
2.2.1 Bộ vi điều khiển 8052 15
2.2.2 Bộ vi điều khiển 8031 15
2.3 Vi điều khiển 8051 16
2.3.1 Sơ đồ khối vi điều khiển 8051 16
2.4 Sơ đồ và chức năng của các chân vi điều khiển 89C51 17
2.4.1 Sơ đồ chân 17
2.4.2 Chức năng 17
2.5 Cấu trúc bộ nhớ 18
2.5.1 Bộ nhớ chương trình 19

2.5.2 Bộ nhớ dữ liệu 20
2.6 Mạch vi điều khiển cơ bản 24
2.7 Các nguồn ngắt 24
Chương 3 MÔ TẢ THIẾT KẾ PHẦN CỨNG
3.1 Sơ đồ khối hệ thống 25
3.1.1 Sơ đồ khối 22
3.1.2 Chức năng từng khối 25
3.1.2.1 Khối nhập dữ liệu 25
3.1.2.2 Khối xử lý dữ liệu 25
3.1.2.3 Khối xuất dữ liệu 25
3.2 Thiết kế mạch nguyên lý 26
3.2.1 Sơ đồ nguyên lý tổng quát 26
Máy tính điện tử Trang 9
3.3 Giới thiệu linh kiện sử dụng trong thiết kế 27
3.3.1 Ma trận phím 27
3.3.2 Vi điều khiển Atmel 89S52 28
3.3.2.1 Sơ đồ chân 28
3.3.2.2 Chức năng trong thiết kế 28
3.3.3 LCD 16x2 28
3.4 Tính toán thi công mạch 31
3.4.1 Mạch nguyên lý 31
3.4.2 Mạch in (PCB) 31
Chương 4 THIẾT KẾ CHƯƠNG TRÌNH CHO VI ĐIỀU KHIỂN
4.1 Lưu đồ giải thuật 33
4.1.1 Lưu đồ giải thuật cho khối nhập dữ liệu (Ma trận phím) 33
4.1.2 Lưu đồ giải thuật cho khối hiển thị LCD 35
4.1.3 Lưu đồ giải thuật cho khối xử lý 36
4.2 Code chương trình 39
Phần C Phụ lục và Tài liệu tham khảo 131
Phụ lục I : 132

Phụ lục II: 150
Tài liệu tham khảo 171
Máy tính điện tử Trang 10
DANH MỤC HÌNH VẼ
Hình 2.1 : Sơ đồ khối cấu trúc bên trong của 8051 10
Hình 2.2 : Sơ đồ khối chi tiết của vi điều khiển 8051 12
Hình 2.3 : Sơ đồ chân của vi điều khiển Atmel 89C51 13
Hình 2.4 : Cấu trúc bộ nhớ và địa chỉ các ngắt trên bộ nhớ chương trình 15
Hình 2.5 : Cấu trúc bộ nhớ dữ liệu trong và bộ nhớ dữ liệu ngoài 16
Hình 2.6 : Cấu trúc bộ nhớ trong 16
Hình 2.7 : Cấu trúc 128 byte thấp của bộ nhớ dữ liệu 17
Hình 2.8 : Mạch vi điều khiển cơ bản 20
Hình 3.1 : Sơ đồ khối của máy tính điện tử 21
Hình 3.2 : Mạch vi điều khiển cơ bản 22
Hình 3.3 : Mô hình ma trận phím 4x4 23
Hình 3.4 : Mạch điện ma trận phím 4x4 23
Hình 3.5 : Sơ đồ chân vi điều khiển Atmel 89S52 24
Hình 3.6 : LCD 16x2 24
Hình 3.7 : Sơ đồ mạch nguyên lý trên Orcad Capture 27
Hình 3.8 : Sơ đồ mạch in trên Orcad Layout 28
Hình 4.1(a) : Lưu đồ giải thuật quét các cột của ma trận phím 29
Hình 4.1(b) : Lưu đồ giải thuật quét các hàng của ma trận phím 30
Hình 4.2 : Lưu đồ giải thuật khối hiển thị LCD 32
Hình 4.3(a) : Lưu đồ giải thuật khối vi xử lý 33
Hình 4.3 (b): Lưu đồ giải thuật khối vi xử lý 34
Hình 4.3(c): Lưu đồ giải thuật khối vi xử lý 35
Máy tính điện tử Trang 11
DANH MỤC BẢNG BIỂU
Bảng 2.1 : Bảng so sánh vi điều khiển 8051, 8052 và 8031 12
Bảng 2.2 : Các cổng (port) và mức xuất logic tương ứng 15

Bảng 2.3 : Bảng liệt kê các thanh ghi chức năng đặc biệt 18
Bảng 2.4 : Bảng chức năng của thanh ghi chức năng đặc biệt SFR 19
Bảng 2.5 : Các nguồn ngắt, cờ và địa chỉ vector tương ứng 21
Bảng 3.1 :Bảng liệt kê danh sách các chân và chức năng tương ứng của LCD. 26
Bảng 3.2 : Bảng mã lệnh LCD và chức năng tương ứng 27
Bảng 3.2 : Mức logic của các chân dữ liệu trên LCD 28
Máy tính điện tử Trang 12
PHẦN B : NỘI DUNG
Máy tính điện tử Trang 13
CHƯƠNG 1 : DẪN NHẬP
1.1. LỜI NÓI ĐẦU
Kỹ thuật vi điều khiển hiện nay rất phát triển, nó được ứng dụng vào rất nhiều
lĩnh vực sản xuất công nghiệp, tự động hóa, trong đời sống và còn nhiều lĩnh
vực khác nữa. So với kỹ thuật số thì kỹ thuật vi điểu khiển nhỏ gọn hơn rất
nhiều do nó được tích hợp lại và có khả năng lập trình được để điều khiển nên
rất tiện dụng và cơ động.
Nằm trong họ vi điều khiển tầm trung, vi điều khiển 8051 đuợc ứng dụng rất
rộng rãi trong kỹ thuật điều khiển ứng dụng, lĩnh vực đo lường, lĩnh vực quảng
cáo Với đề tài này nhóm thực hiện đề tài xin làm một mạch ứng dụng khác của
vi điều khiển 8051 liên quan đến lĩnh vực tính toán là dùng vi điều khiển 8051
thiết kế “MÁY TÍNH ĐIỆN TỬ ”.
1.2. GIỚI THIỆU ĐỀ TÀI :
1.2.1. Lý do chọn đề tài:
• Máy tính bỏ túi là một công cụ học tập quen thuộc của học sinh, sinh
viên, đặt biệt là sinh viên kỹ thuật. Trong đời sống hàng ngày, nó là
một vật cần thiết cho việc tính tiền trong các vụ mua bán. Trong sản
xuất, nó được dùng để tính toán số sản phẩm làm ra. Và còn rất nhiều
ứng dụng khác của máy tính bỏ túi, cho thấy sự phổ biến, cần thiết
của nó
• Từ đó nhóm thực hiện đề tài đã đưa ra đề tài “máy tính điện tử cá

nhân”, chức năng chính là tính toán các phép tính cộng +,trừ -, nhân
x, chia / căn bản với hệ thống số nguyên và hiển thị trên LCD
1.2.2. Mục tiêu của đề tài
• Tạo bước đầu cho sinh viên nghiên cứu những ứng dụng của vi điều
khiển nói chung và họ vi điều khiển 8051 nói riêng trong thực tiễn để
rồi từ đó tìm tòi, phát triển nhiều ứng dụng khác trong đời sống hằng
ngày cần đến vi điều khiển
• Nắm đuợc trình tự thiết kế thi công một ứng dụng dùng họ vi điều
khiển 8051: Cách lập trình, cách thiết kế phần cứng cũng như cách
vận hành giao tiếp giữa vi điều khiển với các thiết bị ngoại vi như
màn hình LCD, ma trận phím, nút nhấn.
1.2.3. Lựa chọn phương án làm việc :
• Hiện nay trên thị trường có rất nhiều chủng loại máy tính điện tử với
các chức năng và ứng dụng khác nhau theo đó mà cách thực hiện, lựa
chọn phương án và chọn linh kiện điện tử cũng khác nhau.Với mục
tiêu ở trên nhóm thực hiện đề tài quyết định chọn phương án dùng họ
vi điều khiển 8051 để nghiên cứu và thực hiện đề tài “Thiết kế máy
tính điện tử ”.
Máy tính điện tử Trang 14
• Lý do nhóm thực hiện đề tài chọn họ vi điều khiển 8051 vì :
• Vi điều khiển 8051 là một dòng vi điều khiển tương đối mạnh
với nhiều tính năng và còn thông dụng trên thị trường hiện nay.
Do đó có thể dễ dàng mở rộng thiết kế các ứng dụng khác
• Hoạt động hiệu quả và rất ổn định mà giá thành lại tương đối rẻ
so với các vi điều khiển khác. Phù hợp cho đối tượng sinh viên
• Cách lập trình đa dạng với nhiều ngôn ngữ khác nhau như C,
Assambly giúp cho người dùng có thể linh động lựa chọn ngôn
ngữ lập trình cho phù hợp với khả năng và sở thích của mình
1.2.4. Giới hạn của đề tài :
• Do trình độ có hạn nên nhóm thực hiện đề tài mới chỉ dừng lại ở việc

lập trình tính toán các phép tính đơn giản và thông dụng. Nếu còn thời
gian và điều kiện cho phép, nhóm thực hiện đề tài sẽ tìm hiểu và mở
rộng những phép tính phức tạp cũng như nghiên cứu các ứng dụng
khác của họ vi điểu khiển 8051
• Việc thi công mạch còn nhiều hạn chế, chỉ dừng lại ở mức nghiên cứu
nên chưa tối ưu đựơc hết các tính năng của vi điều khiển 8051 để có
thể cạnh tranh với các sản phẩm cùng loại khác
CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT CỦA HỌ VI ĐIỀU KHIỂN 8051
2.1. Giới thiệu về vi điều khiển 8051
Vào năm 1981,hãng Intel giới thiệu một số 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 chíp, hai bộ định thời, một cổng nối tiếp và 4 cổng
(đều rộng 8 bắt vào ra tất cả được đặt trên một chíp. Lúc ấy nó được coi là một "hệ thống trên
chíp". 805 1 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 bít được chia ra thành các dữ liệu 8 bit để cho xử lý. 805 1 có tất cả
4 cổng vào - ra I/O mỗi cổng rộng 8 bit. Mặc dù 805 1 có thể có một ROM trên chíp cực đại là 64
K byte, nhưng các nhà sản xuất lúc đó đã cho xuất xưởng chỉ với 4K byte ROM trên chíp.
8051 đã trở nê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 bất kỳ
dạng biến thế nào của 805 1 mà họ thích với điều kiện họ phải để mã lại tương thích với 805 1 .
Điều này dẫn đến sự ra đời nhiều phiên bản của 805 1 với các tốc độ khác nhau và dung lượng
ROM trên chíp khác nhau được bán bởi hơn nửa các nhà sản xuất. Điều này quan trọng là mặc dù
có nhiều biến thể khác nhau của 805 1 về tốc độ và dung lương nhớ ROM trên chíp, nhưng tất cả
chúng đều tương thích với 805 1 ban đầu về các lệnh.
COUNTER INPUTS
OSC
INTERRUPT
CONTROL
4 I/O
PORTS
BUS
CONTROL

SERIAL
PORT
EXTERNAL
INTERRUPTS
CPU
ON - CHIP
RAM
ETC
TIMER 0
TIMER 1
ADDRESS/DATA
TXD
RXD
P0
P1
P2
P3
Hình 2.1 : Sơ đồ khối cấu trúc bên trong của 8051
2.2. Các thành viên khác của họ 8051
Có hai bộ vi điều khiển thành viên khác của họ 8051 là 8052 và 8031.
2.2.1. Bộ vi điều khiển 8052
Bộ vi điều khiển 8052 là một thành viên khác của họ 8051, 8052 có tất cả các đặc tính chuẩn
của 8051 ngoài ra nó có thêm 128 byte RAM và một bộ định thời nữa. Hay nói cách khác là
8052 có 256 byte RAM và 3 bộ định thời. Nó cũng có 8K byte ROM. Trên chíp thay vì 4K
byte như 8051
Đặc tính 8051 8052 8031
ROM trên chíp 4K byte 8K byte OK
RAM 128 byte 256 byte 128 byte
Bộ định thời 2 3 2
Chân vào - ra 32 32 32

Cổng nối tiếp 1 1 1
Nguồn ngắt 6 8 6

Bảng 2.1 : Bảng so sánh vi điều khiển 8051, 8052 và 8031
Như nhìn thấy từ bảng thì 8051 là tập con của 8052. Do vậy tất cả mọi chương trình viết
cho 8051 đều chạy trên 8052 nhưng điều ngược lại là không đúng
2.2.2. Bộ vi điều khiển 8031
Một thành viên khác nữa của 8051 là chíp 8031. Chíp này thường được coi như là 8051
không có ROM trên chíp vì nó có OK byte ROM trên chíp. Để sử dụng chíp này ta phải bổ
xung ROM ngoài cho nó. ROM ngoài phải chứa chương trình mà 8031 sẽ nạp và thực
hiện. So với 8051 mà chương trình được chứa trong ROM trên chíp bị giới hạn bởi 4K
byte, còn ROM ngoài chứa chương trinh được gắn vào 8031 thì có thể lớn đến 64K byte.
Khi bổ xung cổng, như vậy chỉ còn lại 2 cổng để thao tác. Để giải quyết vấn đề này ta có
thể bổ sung cổng vào - ra cho 8031 Ngoài ra còn có các phiên bản khác nhau về tốc độ
của 8031 từ các hãng sản xuất khác nhau.
2.3. Vi điều khiển 8051
2.3.1. Sơ đồ khối vi điều khiển 89C51
Hình 2.2 : Sơ đồ khối chi tiết của vi điều khiển 8051
2.4. Sơ đồ và chức năng của các chân
2.4.1. Sơ đồ chân
Hình 2.3 : Sơ đồ chân của vi điều khiển Atmel 89C51
2.4.2. Chức năng
 Chân 40 : nối với nguồn nuôi +5V
 Chân 20 : nối đất (Mass, GND)
 Chân 29 (PSEN – Program Store Enable) : là tín hiệu điều khiển xuất ra của
8051, nó cho phép chọn bộ nhớ ngoài và được nối chung với chân của OE (Output
Enable) của EPROM ngoài để cho phép đọc các byte của chương trình. Các xung
tín hiệu PSEN hạ thấp trong suốt thời gian thi hành lệnh. Những mã nhị phân của
chương trình được đọc từ EPROM qua bus dữ liệu và được chốt vào thanh ghi lệnh
của 8051 bởi mã lệnh (Chú ý việc đọc ở đây là đọc các lệnh – khác với đọc dữ liệu,

khi đó VXL chỉ đọc các bit opcode của lệnh và đưa chúng vào hàng đợi lệnh thông
qua các Bus địa chỉ và dữ liệu )
 Chân 30 (ALE – Address Latch Enable) là tín hiệu điều khiển xuất ra của 8051,
nó cho phép kênh Bus địa chỉ và Bus dữ liệu của Port 0.
 Chân 31 (EA – Eternal Access) được đưa xuống thấp cho phép chọn bộ nhớ mã
ngoài đối với 8051.
 Đối với 8051 thì : EA = 5V : chọn ROM nội, EA = 0V : chọn ROM ngoại.
 32 chân còn lại chia làm 4 cỗng vào ra : Vào ra , ở đây là có thể dùng chân đó để
đọc mức logic (0;1 tương ứng với 0V;5V) vào hay xuất mức logic ra (0,1)
 P0 từ chân 39 -> 32 tương ứng là các chân P0_0 -> P0_7
 P1 từ chân 1 -> 8 tương ứng là các chân P1_0 -> P1_7
 P2 từ chân 21 -> 28 tương ứng là các chân P2_0 -> P2_7
 P3 từ chân 10 ->17 tương ứng là các chân P3_0 -> P3_7
Riêng cổng 3 có 2 chức năng ở mỗi chân như trên hình vẽ :
 P3.0 – RxD : chân nhận dữ liệu nối tiếp khi giao tiếp RS232 (COM).
 P3.1 – TxD : phân truyền dữ liệu nối tiếp khi giao tiếp RS232.
 P3.2 – INT0 : interupt 0, ngắt ngoài 0.
 P3.3 – INT1 : interupt 1, ngắt ngoài 1.
 P3.4 – T0 : Timer0, đầu vào timer0.
 P3.5 – T1 : Timer1, đầu vào Timer1.
 P3.6 – WR : Write, điều khiển ghi dữ liệu.
 P3.7 – RD : Read, điều khiển đọc dữ liệu.
 Chân 18, 19 nối với thạch anh tạo thành mạch tạo dao động cho vi điều khiển.
 Tần số thạch anh thường dùng trong các ứng dụng là : 11.0592Mhz (Giao tiếp với cổng
COM của máy tính) và 12Mhz. Tần số tối đa là 24Mhz. Tần số càng lớn thì vi điều khiển
xử lí càng nhanh.
Bảng 2.2 : Các cổng (port) và mức xuất logic tương ứng
P0 P1 P2 P3 Port’s Bit
P0.0 P1.0 P2.0 P3.0 D0
P0.1 P1.1 P2.1 P3.1 D1

P0.2 P1.2 P2.2 P3.2 D2
P0.3 P1.3 P2.3 P3.3 D3
P0.4 P1.4 P2.4 P3.4 D4
P0.5 P1.5 P2.5 P3.5 D5
P0.6 P1.6 P2.6 P3.6 D6
P0.7 P1.7 P2.7 P3.7 D7
2.5. Cấu trúc bộ nhớ
Các vi điều khiển thuộc họ 8051 đều tổ chức thành 2 không gian chương trình và dữ liệu.
Kiến trúc vi xử lý 8 bit của 8051 này cho phép truy nhập và tính toán nhanh hơn đối với
không gian dữ liệu nhờ việc phân chia 2 không gian bộ nhớ chương trình và dữ liệu như trên.
Tuy nhiên bộ nhớ ngoài được truy nhập bởi hệ thống 16 bit địa chỉ vẫn có thể thực hiện nhờ
thanh ghi con trỏ.
Bộ nhớ chương trình (ROM, EPROM) là bộ nhớ chỉ đọc, có thể mở rộng tối đa 64Kbyte.
Vói họ vi điều khiển 89xx, bộ nhớ chương trình được tích hợp sẵn trong chip có kích thước
nhỏ nhất là 4kByte. Với các vi điều khiển không tích hợp sẵn bộ nhớ chương trình trên chip,
buộc phải thiết kế bộ nhớ chương trình bên ngoài. Ví dụ sử dụng EPROM: 2764 (64Kbyte),
khi đó chân PSEN phải ở mức tích cực (5V).
Bộ nhớ dữ liệu (RAM) tồn tại độc lập so với bộ nhớ chương trình. Họ vi điều khiển 8051 có
bộ nhớ dữ liệu tích hợp trên chip nhỏ nhất là 128byte và có thể mở rộng với bộ nhớ dữ liệu
ngoài lên tới 64kByte. Với những vi điều khiển không tích hợp ROM trên chip thì vẫn có
RAM trên chip là 128byte. Khi sử dụng RAM ngoài, CPU đọc và ghi dữ liệu nhờ tín hiệu
trên các chân RD và WR. Khi sử dụng cả bộ nhớ chương trình và bộ nhớ dữ liệu bên ngoài
thì buộc phải kết hợp chân RD và PSEN bởi cổng logic AND để phân biệt tín hiệu truy xuất
dữ liệu trên ROM hay RAM ngoài.
2.5.1. Bộ nhớ chương trình
Hình 2.4 : Cấu trúc bộ nhớ và địa chỉ các ngắt trên bộ nhớ chương trình
Hình 2.4 mô tả cấu trúc bộ nhớ chương trình. Sau khi khởi động, CPU bắt đầu thực
hiện chương trình ở vị trí 0000H. Hình bên phải mô tả địa chỉ ngắt mặc định trên bộ
nhớ chương trình. Mối khi xảy ra ngắt, con trỏ của CPU sẽ nhảy đến đúng địa chỉ ngắt
tương ứng và thực thi chương trình tại đó. Ví dụ ngắt ngoài 0 sẽ có địa chỉ là 0003H, khi

xảy ra ngắt ngoài 0 thì con trỏ chương trình sẽ nhảy đến đúng địa chỉ 0003H để thực thi
chương trình tại đó. Nếu trong chương trình ứng dụng không xử dụng đến ngắt ngoài 0
thì địa chỉ 0003H vẫn có thể dùng cho mục đích khác (sử dụng cho bộ nhớ chương
trình). Bởi vậy khi lập trình bằng ngôn ngữ Assembly, phần đầu chương trình bao giờ
cũng phải cho chương trình nhảy đến địa chỉ cao hơn địa chỉ chứa các ngắt và mã lệnh
viết cho các ngắt thì phải viết đúng địa chỉ của các
ngắt tương ứng.
2.5.2. Bộ nhớ dữ liệu
Hình 2.5 : Cấu trúc bộ nhớ dữ liệu trong và bộ nhớ dữ liệu ngoài
Hình 2.5 mô tả cấu trúc bộ nhớ dữ liệu trong và bộ nhớ dữ liệu ngoài của họ vi điều khiển
8051. CPU sẽ dùng đến các chân RD và WR khi truy cập đến bộ nhớ dữ liệu ngoài.
Hình 2.6 : Cấu trúc bộ nhớ trong
Hình 2.6 mô tả cấu trúc bộ nhớ dữ liệu trong chip, được chia thành 3 khối là 128 byte thấp,
128 byte cao và 128 byte đặc biệt.
Hình 2.7 : Cấu trúc 128 byte thấp của bộ nhớ dữ liệu
Hình 2.7 mô tả cấu trúc 128 byte thấp của bộ nhớ dữ liệu của họ vi điều khiển 8051. 32 byte
đầu tiên (00H-1FH) được sử dụng cho 4 bộ 8 thanh ghi R0-R7. Hai bit của thanh ghi đặc biệt
PSW sẽ lựa chọn 1 trong 4 bộ thanh ghi mà vi điều khiển sẽ dùng trong khi thực thi chương
trình.
8051 chứa 210 vị trí bit được định địa chỉ trong đó 128 bit chứa trong các byte ở địa chỉ từ 20H
đến 2FH (16 byte x 8 bit = 128 bit) và phần còn lại chứa trong các thanh ghi đặc biệt. Ngoài ra
8051 còn có các port xuất/nhập có thể định địa chỉ từng bit, điều này làm đơn giản việc giao
tiếp bằng phần mềm với các thiết bị xuất/nhập đơn bit.
Vùng RAM đa mục đích có 80 byte đặt ở địa chỉ từ 30H đến 7FH, bên dưới vùng này từ địa chỉ
00H đến 2FH là vùng nhớ có thể được sử dụng tương tự. Bất kỳ vị trí nhớ nào trong vùng RAM
đa mục đích đều có thể được truy xuất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp
hoặc gián tiếp.
Cũng như các thanh ghi từ R0 đến R7, ta có 21 thanh ghi chức năng đặc biệt SFR chiếm phần
trên của Ram nội từ địa chỉ 80H đến FFH. Cần lưu ý là không phải tất cả 128 địa chỉ từ 80H
đến FFH đều được định nghĩa mà chỉ có 21 địa chỉ được định nghĩa.

Bảng 2.3 : Bảng liệt kê các thanh ghi chức năng đặc biệt
F0 F7 F6 F5 F4 F3 F2 F1 F0
E0 E7 E6 E5 E4 E3 E2 E1 E0
D0 D7 D6 6D 6C 6B 6A 69 68
B8 . . . BC BB BA B9 B8
A8 AF AE AD AC AB AA A9 A8
99 Không định địa chỉ từng bit
98 9F 9E 9D 9C 9B 9A 99 98
90 97 96 95 94 93 92 91 90
8D Không định địa chỉ từng bit
8C Không định địa chỉ từng bit
8B Không định địa chỉ từng bit
8A Không định địa chỉ từng bit
89 Không định địa chỉ từng bit
88 8F 8E 8D 8C 8B 8A 89 88
87 Không định địa chỉ từng bit
83 Không định địa chỉ từng bit
82 Không định địa chỉ từng bit
81 Không định địa chỉ từng bit
80 87 86 85 84 83 82 81 80
Bảng 2.4 : Bảng chức năng của thanh ghi chức năng đặc biệt SFR
Thanh ghi/ Bit Kí hiệu Chức năng
TMOD Chọn model cho bộ định thời 1
7
GATE Bit điều khiển cổng. Khi được set lên 1,
bộ định thời chỉ hoạt động trong khi INT1
ở mức cao
6 C/T Bit chon chức năng đếm hay định thời
1= đếm sự kiện
0 = định thời trong một khoảng thời gian

5 M1 Bit chọn chế độ thứ nhất
4 M0 Bit chọn chế độ thứ hai
M1 M0 Chế độ Chức năng
0 0 0
Chế độ định
thời 13 bit
0 1 1
Chế độ định
thời 16 bit
1 0 2
Chế độ tự
động nạp lại
8 bit
1 1 3
Chế độ định
thời chia xẻ
3 GATE Bit điều khiển cổng cho bộ định thời 0
2 C/T
Bit chọn chức năng đếm/đị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ứ hai cho bộ định thời 0
TF1 TR1 TF1 TR0 IE1 IT1 IE0 IT0
TCON Điều khiển bộ định thời
TCON.7 TF1
Cờ tràn của bộ định thời 1. Cờ này được
set bởi phần cứng khi có tràn, được xóa
bởi phần mềm, hoặc bởi phần cứng khi bộ

VXL trỏ tới trình phục vụ ngắt
TCON.6 TR1
Bit điều khiển hoạt động của bộ định thời
1. Bit này được set hoặc xóa bởi phần
mềm để điều khiển bộ định thời hoạt động
hay nhưng
TCON.5 TF0 Cờ tràn của bộ định thời 0
TCON.4 TR0
Bit điều khiển hoạt động của bộ định thời
0
TCON.3 IE1
Cờ ngắt bên ngoài 1(kích khởi cạnh). Cờ
này được set bởi phần cứng khi có cạnh
âm xuất hiện trên chân INT1, được xóa
bởi phần mềm, hoặc phần cứng khi CPU
trỏ tới trình phục vụ ngắt.
TCON.2 IT1
Cờ ngắt bên ngoài 1 (kích khởi cạnh hoặc
mức). Cờ này được set hoặc xóa bởi phần
mềm khi xảy ra cạnh âm hoặc mức thấp
tại chân ngắt ngoài.
TCON.1 IE0 Cờ ngắt bên ngoài 0 (kích khởi cạnh)
TCON.0 IT0
Cờ ngắt bên ngoài 0(kích khởi cạnh hoặc
mức)
EA ET2 ES ET1 EX1 EX0 ET0
IE Điều khiển các nguồn ngắt
0 : không cho phép, 1 : cho phép
IE.7 EA Cho phép/ không cho phép toàn cục
IE.6 Không sử dụng

IE.5 ET2 Cho phép ngắt do bộ định thời 2
IE.4 ES Cho phép ngắt do port nối tiếp
IE.3 ET1 Cho phép ngắt cho bộ định thời 1
IE.2 EX1 Cho phép ngắt ngoài (ngắt ngoài 1)
IE.1 EX0 Cho phép ngắt ngoài (ngắt ngoài 0)
2.6. Mạch vi điều khiển cơ bản:

Hình 2.8 : Mạch vi điều khiển cơ bản
2.7. Nguồn ngắt:
Bảng 2.5 : Các nguồn ngắt, cờ và địa chỉ vector tương ứng
Ngắt do Cờ Địa chỉ Vector
Reset hệ thống RST 0000H
Ngắt ngoài 0 IE0 0003H
Bộ định thời 0 TF0 000BH
Ngắt ngoài 1 IE1 0013H
Bộ định thời 1 TF1 001BH
Port nối tiếp RI hoặc TI 0023H
Bộ định thời 2 TF2 hoặc EXF2 002BH
Hình 2.8 : Quá trình vận hành của Timer và các ngắt
CHƯƠNG 3 : MÔ TẢ THIẾT KẾ PHẦN CỨNG
3.1. SƠ ĐỒ KHỐI HỆ THỐNG
3.1.1. Sơ đồ khối:
Khối nhập dữ liệu
Ma trận phím 4x4
Phím số
(1-9)
Phím dấu
(+,-,x,/)
Khối xử lý dữ liệu
VDK 89S52

Khối xuất dữ liệu
LCD 2x16

Hình 3.1 : Sơ đồ khối của máy tính điện tử
3.1.2. Chức năng từng khối :
3.1.2.1. Khối nhập dữ liệu:
Là khối có chức năng nhập dữ liệu là các ký tự số, đưa ra các lệnh điều khiển, các phép
toán…đưa đến khối xử lý để thực hiện công việc tính toán và xuất ra màn hình hiển thị kết
quả tính toán.Khối này được chia ra làm 3 nhóm phím với chức năng như sau:
 Nhóm phím số: Nhập dữ liệu dưới dạng các ký tự số để phục vụ các phép tính đại
số.Nhóm phím này gồm các phím từ 0-9
 Nhóm phím chức năng: Nhập giá trị và đưa ra các phép tính đại số đơn giản như
cộng, trừ, nhân, chia, đưa đến khối xử lý để thực hiện
 Nhóm phím điều khiển: Nhập giá trị và đưa ra các lệnh điều khiển tới khối xử lý
như xuất kết quả.
Khối nhập dữ liệu luôn ở trạng thái để người dùng có thể nhập dữ liệu qua các nút nhấn.
3.1.2.2. Khối xử lý dữ liệu :
Là khối quan trọng nhất, thực hiện chức năng quan trọng nhất là xử lý dữ liệu từ khối nhập
đưa tới, tính toán các phép tính, thực hiện các lệnh và xuất dữ liệu hiển thị trên khối hiển
thị.
3.1.2.3. Khối xuất dữ liệu

×