BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
PROJECT 3
TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC
NGÀNH ĐÀO TẠO : CÔNG NGHỆ THÔNG TIN
LỚP : TK8.3
MÁY TÍNH CẦM TAY
Giáo viên hướng dẫn :
Nguyễn Vinh Quy
Nhóm sinh viên :
Phạm Đức Thuận
Nguyễn Thế Anh
Đinh Duy Huy
Hưng Yên, tháng 12 năm 2012
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KỸ THUẬT HƯNG YÊN
KHOA CÔNG NGHỆ THÔNG
TIN
BỘ MÔN KĨ THUẬT MÁY TÍNH
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 3
(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
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KỸ THUẬT HƯNG YÊN
KHOA CÔNG NGHỆ THÔNG
TIN
BỘ MÔN KĨ THUẬT MÁY TÍNH
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 3
(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
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 thầy Nguyễn Vinh Quy, 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.
Trước tiên em xin chân thành cảm ơn toàn thể thầy cô giáo trường
ĐHSP Kĩ Thuật Hưng Yên đặc biệt là toàn thể thầy cô giáo khoa Công
Nghệ Thông Tin bộ môn Công Nghệ Máy Tính ,những người đã tạo
điều kiện cho chúng e cơ hội nghiên cứu và tìm hiểu sâu rộng về lĩnh
vực điện tử ,đặc biệt là Thầy Nguyễn Vinh Quy đã tận tình hướng dẫn
và giúp đỡ chúng em trong thời gian thực hiện đề tài .Đồng thời chúng
en cũng gửi lời cảm ơn tới tất cả bạn bè cùng nhóm và các anh chị khóa
trước đã tận tình giúp đỡ chúng em trong thời gian qua .Có được sự giúp
đỡ nhiệt tình đó cộng với sự cố gắng của bản thân từng thành viên trong
nhóm nên chúng em đã hoàn thành được đề tai đúng thời hạn .Với sự
hiểu biết còn hạn chế và thời gian thực hiện đề tài cũng không nhiều nên
đề tài không tránh khỏi những sai sót .Chúng em xin cảm ơn sự góp ý
của quý thầy cô và bạn bè cho đề tài của nhóm em được hoàn chỉnh
hơn.
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ộ trong
cuộc sống.
Hưng Yên, ngày 20 tháng 11 năm 2012
Nhóm thực hiện đề tài: Phạm Đức Thuận
Nguyễn Thế Anh
5
Đề tài : Máy tính cầm tay GVHD: Nguyễn Vinh Quy
Đinh Duy Huy
6
Đề tài : Máy tính cầm tay GVHD: Nguyễn Vinh Quy
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: Phạm Đức Thuận
Nguyễn Thế Anh
Đinh Duy Huy
7
Đề tài : Máy tính cầm tay GVHD: Nguyễn Vinh Quy
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
8
Đề tài : Máy tính cầm tay GVHD: Nguyễn Vinh Quy
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
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
9
Đề tài : Máy tính cầm tay GVHD: Nguyễn Vinh Quy
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
10
Đề tài : Máy tính cầm tay GVHD: Nguyễn Vinh Quy
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
11
Đề tài : Máy tính cầm tay GVHD: Nguyễn Vinh Quy
PHẦN B : NỘI DUNG
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.
12
Đề tài : Máy tính cầm tay GVHD: Nguyễn Vinh Quy
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ử ”.
• 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
13
Đề tài : Máy tính cầm tay GVHD: Nguyễn Vinh Quy
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ụnglà : 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ả.