Tuy nhiên vì tính tích hợp trên cùng một bo mạch nên các bộ KIT này chỉ có thể đáp ứng cho nhu cầu để học VĐK 8051 mà không thể học được các loại VĐK khác như PIC, AVR,...và các bộ KIT n
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG KHOA ĐIỆN – ĐIỆN TỬ
SVTH: TRẦN XUÂN THỰC
ĐỀ TÀI:
THIẾT KẾ, CHẾ TẠO BỘ KIT THÍ NGHIỆM VI ĐIỀU KHIỂN 8051 PHỤC
VỤ SINH HOẠT NGOẠI KHÓA TẠI CLB ĐIỆN – ĐIỆN TỬ
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Ngành: Công nghệ kỹ thuật điện, điện tử
Khánh Hòa - 2017
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG KHOA ĐIỆN – ĐIỆN TỬ
SVTH: TRẦN XUÂN THỰC
ĐỀ TÀI:
THIẾT KẾ, CHẾ TẠO BỘ KIT THÍ NGHIỆM VI ĐIỀU KHIỂN 8051 PHỤC
VỤ SINH HOẠT NGOẠI KHÓA TẠI CLB ĐIỆN – ĐIỆN TỬ
Trang 3LỜI CẢM ƠN
Kính thưa:
- Ban giám hiệu trường Đại Học Nha Trang
- Thầy, cô trong khoa Điện – Điện tử
Trong những năm được học tập và làm việc tại trường Đại học Nha Trang, dưới sự chỉ bảo và dạy dỗ tận tình của các thầy cô trong khoa cũng như thầy cô trong trường, đã giúp chúng em tích lũy được nhiều kiến thức nền tảng quý giá trước khi hòa nhập xã hội
Em xin chân thành cảm ơn thầy ThS Nhữ Khải Hoàn – Trưởng khoa Điện– Điện tử đã tạo điều kiện cho em được thực hiện đồ án tốt nghiệp
Em xin chân thành cảm ơn thầy ThS Nguyễn Văn Hân đã tận tình chỉ bảo giúp
đỡ em để em có thể hoàn thành đồ án Em cũng xin chân thành cảm ơn tất cả các thầy cô trong và ngoài khoa Điện – Điện tử đã giúp đỡ nhiệt tình trong thời gian qua
Trong quá trình thực hiện đồ án tốt nghiệp, do còn hạn chế về kiến thức cũng như kỹ năng thực tế nên đồ án của em còn một số thiếu sót Em kính mong thầy cô
và bạn bè có những ý kiến đóng góp quý báu để kiến thức trong lĩnh vực được hoàn thiện hơn
Sau cùng, em xin kính chúc quý thầy cô trong khoa Điện – Điện tử thật dồi dào sức khỏe để có thể tiếp tục truyền đạt kiến thức cho những thế hệ mai sau
Em xin chân thành cảm ơn!
Nha Trang, tháng 06, năm 2017 Sinh viên thực hiện
Trần Xuân Thực
Trang 4LỜI CAM ĐOAN
Em xin cam đoan đồ án là sản phẩm khoa học của em, không sao chép từ bất
kỳ tài liệu nào khác Tất cả các tài liệu trích dẫn đều sử dụng từ nguồn phổ biến và được sự đồng ý của tác giả
Em xin hoàn toàn chịu trách nhiệm về lời cam đoan của mình
Nha Trang, tháng 06, năm 2017 Tác giả đồ án
Trần Xuân Thực
Trang 5MỤC LỤC
TRANG BÌA PHỤ i
LỜI CẢM ƠN ii
LỜI CAM ĐOAN iii
MỤC LỤC iv
DANH MỤC CHỮ VIẾT TẮT ix
DANH MỤC HÌNH ẢNH x
DANH MỤC BẢNG xii
MỞ ĐẦU 1
1 LÝ DO CHỌN ĐỀ TÀI 1
2 MỤC ĐÍCH CỦA ĐỀ TÀI 2
3 GIỚI HẠN CỦA ĐỀ TÀI 2
4 PHƯƠNG PHÁP NGHIÊN CỨU 2
4.1 Phương pháp nghiên cứu lý thuyết 2
4.2 Phương pháp nghiên cứu thực nghiệm 2
5 BỐ CỤC CỦA ĐỀ TÀI 3
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 4
1.1 GIỚI THIỆU VĐK 8051 4
1.1.1 Giới thiệu chung 4
1.1.2 Cấu trúc phần cứng VĐK 8051 4
1.1.2.1 Sơ đồ khối của 8051 4
1.1.2.2 Sơ đồ chân và chức năng các chân của VĐK 8051 6
1.1.3 Tổ chức bộ nhớ 9
1.1.3.1 Bộ nhớ chương trình 9
1.1.3.2 Bộ nhớ dữ liệu 9
1.1.3.3 Các thanh ghi có chức năng đặc biệt 9
1.2 Giới thiệu phần mềm Keil C uvision 4 9
1.3.1 Giới thiệu chung 9
1.2.2 Cách tạo một project mới 10
Trang 61.3 Giới thiệu phần mềm mô phỏng Proteus 10
1.3.1 Giới thiệu chung 10
1.3.2 Cách tạo một bản vẽ mới 12
1.4 Giới thiệu phần mềm Altium Designer 10 12
1.4.1 Giới thiệu chung 12
1.4.2 Thiết kế mạch với Altium Designer 10 13
1.5 Giới thiệu phần mềm Visual Basic 6.0 14
1.5.1 Giới thiệu chung 14
1.5.2 Cách tạo một project mới 15
CHƯƠNG 2 THIẾT KẾ VÀ THI CÔNG BỘ KIT 16
2.1 Sơ đồ khối của bộ KIT 16
2.2 Sơ đồ nguyên lý các khối trong bộ KIT 16
2.3 Chế tạo mạch, lắp ráp linh kiện 20
CHƯƠNG 3 ĐỀ XUẤT CÁC BÀI THỰC HÀNH TRÊN BỘ KIT 22
3.1 Giao tiếp với LED đơn 22
3.1.1 Chớp tắt một LED 22
3.1.1.1 Mục đích 22
3.1.1.2 Hướng dẫn thực hành 22
3.2 Giao tiếp với LED 7 đoạn 25
3.2.1 Giới thiệu led 7 đoạn 25
3.2.2 Thực hành hiển thị số 1, 2, 3, 4 trên 4 LED 7 đoạn 27
3.2.2.1 Mục đích 27
3.2.2.2 Hướng dẫn lập trình 27
3.3 Giao tiếp với nút nhấn 28
3.2.1 Giao tiếp với nút nhấn đơn 28
3.3.1.1 Mục đích 28
3.3.1.2 Hướng dẫn thực hành 28
3.3.2 Giao tiếp với bàn phím ma trận 4x4 29
3.3.2.1 Giới thiệu ma trận phím 4x4 29
Trang 73.3.2.3 Mục đích 29
3.3.2.4 Hướng dẫn thực hành 30
3.4 Giao tiếp với Rơ le 30
3.4.1 Mục đích 30
3.4.2 Hướng dẫn thực hành 30
3.5 Giao tiếp với LCD 16x2 31
3.5.1 Giới thiệu LCD 16x2 31
3.5.2 Thực hành hiển thị ký tự alphabet ra LCD 16x2 34
3.5.2.1 Mục đích 34
3.5.2.2 Hướng dẫn thực hành 34
3.6 Giao tiếp với ADC0804 và cảm biến nhiệt độ LM35 35
3.6.1 Cơ sở lý thuyết 35
3.6.2 Thực hành đo nhiệt độ hiển thị lên LCD 16x2 37
3.6.2.1 Mục đích 37
3.6.2.2 Hướng dẫn thực hành 37
3.7 Giao tiếp I2C sử dụng IC thời gian thực DS1307 38
3.7.1 Giới thiệu giao thức I2C 38
3.7.2 Giới thiệu IC DS1307 39
3.7.3 Thực hành hiển thị thời gian thực lên LCD 16x2 40
3.7.3.1 Mục đích 40
3.7.3.2 Hướng dẫn thực hành 40
3.8 Điều khiển động cơ DC, giao tiếp với IC L298 41
3.8.1 Nguyên lý điều khiển động cơ DC 41
3.8.2 Giới thiệu IC L298 42
3.8.3 Thực hành tắt/mở, thay đổi tốc độ, đảo chiều quay động cơ DC 44
3.8.3.1 Mục đích 44
3.8.3.2 Hướng dẫn thực hành 44
3.9 Giao tiếp với LED ma trận 8x8 45
3.9.1 Giới thiệu nguyên lý quét LED ma trận 45
Trang 83.9.2 Thực hành hiển thị chữ lên LED ma trận 8x8 46
3.9.2.1 Mục đích 46
3.9.2.2 Hướng dẫn thực hành 47
3.10 UART và giao tiếp máy tính 47
3.10.1 Giới thiệu UART 47
3.10.2 Giới thiệu module USB to TTL 48
3.10.3 Thực hành giao tiếp VĐK 8051 với máy tính 49
3.10.3.1 Mục đích 49
3.10.3.2 Hướng dẫn thực hành 49
CHƯƠNG 4: ĐÁNH GIÁ KẾT QUẢ VÀ KHUYẾN NGHỊ 50
4.1 Đánh giá kết quả 50
4.2 Khuyến nghị và hướng mở rộng đề tài 51
DANH MỤC TÀI LIỆU THAM KHẢO 52
PHỤ LỤC 1 53
Bài 1: Giao tiếp với Led đơn 53
B1 – 1 Chớp tắt Led xen kẽ nhau 53
B1 – 2 Tạo các hiệu ứng khác nhau cho 8 Led 53
Bài 2: Giao tiếp với nút nhấn 56
B2 – 1 Một nút nhấn bật tắt một Led 56
B2 – 2 Nút nhấn thay đổi hiệu ứng Led 57
B2 – 3 Bàn phím ma trận 63
Bài 3 Nút nhấn điều khiển rơ le 65
Bài 4 Led 7 đoạn anode chung 66
B4 – 1 Hiển thị số 1, 2, 3, 4 trên 4 Led 7 đoạn 67
B4 – 2 Đếm số từ 00 – 99 sử dụng 2 Led 7 đoạn 68
Bài 5 Giao Tiếp với LCD16x2 70
Bài 6 Giao tiếp với cảm biến nhiệt độ LM35, ADC0804 73
Bài 7 Đồng hồ thời gian thực sử dụng DS1307 78
Bài 8 Điều khiển động cơ, giao tiếp với IC L298 98
Trang 9Bài 9 LED ma trận 100 Bài 10 UART và giao tiếp máy tính 101 PHỤ LỤC 2 105
Trang 10DANH MỤC CHỮ VIẾT TẮT
CLB: Câu lạc bộ
VĐK: Vi điều khiển
IC: Integrated Circuit
RAM: Random Access Memory
ROM: Read-Only Memory
PEROM: Flash Programmable and Erasable Read Only Memory LED: Light Emitting Diode
LCD: Liquid crystal display
I2C: Inter-Intergrated Circuit
RTC: Real Time Clock
ASM: Assembly
VB6: Visual Basic 6
Trang 11DANH MỤC HÌNH ẢNH
Hình 1.1 Sơ đồ khối của bộ VĐK 8051 5
Hình 1.2 Sơ đồ chân của bộ VĐK 8051 6
Hình 1.3 Sơ đồ mạch reset ngoài của 8051 6
Hình 1.4 Mạch dao động cấp cho 8051 7
Hình 1.5 Nối điện trở kéo cho cổng 0 của 8051 8
Hình 1.6 Giao diện Keil C 4 khi khởi động 9
Hình 1.7 Giao diện thiết kế Keil C 4 10
Hình 1.8 Giao diện của Proteus khi khởi động 11
Hình 1.9 Giao diện thiết kế trên ISIS của proteus 12
Hình 1.10 Giao diện Altium khi khởi động 13
Hình 1.11 Giao diện thiết kế trên Altium 10 14
Hình 1.12 Giao diện Visual Basic 6 khi khởi động 15
Hình 1.13 Giao diện thiết kế của Visual Basic 6 15
Hình 2.1: Sơ đồ khối bộ KIT thực hành 16
Hình 2.2 Mạch xử lý trung tâm dùng VĐK 8051 17
Hình 2.3 Mạch nguyên lý LED 7 đoạn 17
Hình 2.4 Mạch nguyên lý LCD 16x2, DS1307, ADC0804 và LM35 18
Hình 2.5 Mạch công suất L298 18
Hình 2.6 Mạch nguyên lý 74HC595 và ULN2803 19
Hình 2.7 mạch nguyên lý LED ma trận 19
Hình 2.8 Mạch nguyên lý LED đơn, rơ le, nút nhấn đơn, nút nhấn ma trận 20
Hình 2.9 Các bo mạch sau khi thi công 21
Hình 3.1 Giao tiếp một LED đơn 23
Hình 3.2 Điều khiển 8 LED chớp tắt 24
Hình 3.3 Cấu tạo và hình ảnh thực tế LED 7 đoạn 25
Hình 3.4 Bảng mã LED 7 đoạn loại Anode chung 26
Hình 3.5 Giao tiếp LED 7 đoạn 27
Trang 12Hình 3.6 Nút nhấn tắt mở LED đơn 28
Hình 3.7 Bàn phím ma trận 4x4 29
Hình 3.8 Giao tiếp với bàn phím ma trận 4x4 30
Hình 3.9 Giao tiếp với rơ le 31
Hình 3.10 Hình dạng thực tế và sơ đồ chân của LCD 16x2 32
Hình 3.11 Giao tiếp LCD hiển thị ký tự 34
Hình 3.12 Sơ đồ chân của LM35 35
Hình 3.13 Hình ảnh thực tế và sơ đồ chân cảu ADC0804 36
Hình 3.14 Giao tiếp cảm biến nhiệt độ LM35, ADC0804 38
Hình 3.15 Hình ảnh thực tế và sơ đồ chân của DS1307 39
Hình 3.16 Giao tiếp DS1307 hiển thị thời gian thực lên LCD 41
Hình 3.17 Mô tả mạch cầu H 42
Hình 3.18 Duty Cycle 42
Hình 3.19 Hình ảnh thực tế IC L298 43
Hình 3.20 Sơ đồ chân IC L298 43
Hình 3.21 Giao tiếp L298 điều khiển động cơ 45
Hình 3.22 Cấu tạo LED ma trận 8x8 45
Hình 3.23 Hiển thị chữ A lên LED ma trận 8x8 46
Hình 3.24 Giao tiếp LED ma trận 8x8 47
Hình 3.25 Module USB to COM 48
Hình 3.26 Giao tiếp VĐK với máy tính 49
Trang 13DANH MỤC BẢNG
Bảng 1.1 Bảng mô tả chức năng riêng của cổng P3 7
Bảng 3.1 Tên và chức năng các chân của LCD 33
Bảng 3.2 Tập lệnh thường dùng trong LCD 34
Bảng 3.3 Tên và chức năng các chân của ADC0804 37
Bảng 3.4 Tên và chức năng các chân của DS1307 40
Bảng 3.5 Tên và chức năng các chân của IC L298 44
Trang 14MỞ ĐẦU
1 LÝ DO CHỌN ĐỀ TÀI
Kỹ thuật vi điều khiển hiện nay đang 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
Hiện nay có rất nhiều bộ kit có tính tích hợp cao bán sẵn trên thị trường như
bộ KIT 8051 Pro [1], KIT AT89S52 V3 NEW [2] của Minh Hà chế tạo Các bộ KIT này có những ưu điểm như hỗ trợ cho người dùng nhiều chức năng, các linh kiện đã được tích hợp và kết nối sẵn trên cùng một bo mạch Tuy nhiên vì tính tích hợp trên cùng một bo mạch nên các bộ KIT này chỉ có thể đáp ứng cho nhu cầu để học VĐK
8051 mà không thể học được các loại VĐK khác như PIC, AVR, và các bộ KIT này có giá thành khá cao trên thị trường
CLB Điện – Điện tử thuộc khoa Điện – Điện tử, trường Đại học Nha Trang được thành lập từ năm 2010, CLB là nơi để các bạn sinh viên học tập và chia sẻ kiến thức, kinh nghiệm cho nhau Do mới được thành lập không lâu nên hiện tại CLB vẫn còn thiếu một số thiết bị thiết yếu cho sinh viên học tập và trao đổi kiến thức Hiện tại thì CLB cũng đã có một số bo mạch thí nghiệm sử dụng IC số và một
số đồ án tốt nghiệp do các bạn khóa trước để lại phục vụ cho các bạn sinh viên khóa sau nghiên cứu Tuy nhiên, hiện tại CLB đang rất cần một bộ KIT thí nghiệm về vi điều khiển, có thể học được nhiều loại VĐK khác nhau, để phục vụ cho nhu cầu tìm hiểu và học tập về kỹ thuật vi điều khiển của sinh viên trong khoa
Vì những lý do trên, trong đồ án tốt nghiệp cuối khóa này em chọn đề tài
“Thiết kế, chế tạo bộ KIT thí nghiệm vi điều khiển 8051 phục vụ sinh hoạt ngoại khóa tại CLB Điện – Điện tử” Đề tài này sẽ ứng dụng những kiến thức đã học về
cấu kiện điện tử, kỹ thuật vi điều khiển, kỹ thuật số, thiết kế mạch điện tử để thiết
kế một bộ KIT thí nghiệm với những ứng dụng thực tế để sinh viên có thể hiểu rõ hơn về VĐK 8051
Trang 15- Thiết kế, chế tạo bộ KIT thí nghiệm gồm nhiều module trên một bàn thí nghiệm: Giao tiếp VĐK với LED, bàn phím, nút nhấn; giao tiếp VĐK với LCD, LED 7 đoạn; giao tiếp VĐK với động cơ DC, truyền thông nối tiếp đồng bộ SPI, I2C
- Viết tài liệu hướng dẫn thực hành trên bộ KIT
3 GIỚI HẠN CỦA ĐỀ TÀI
Bộ KIT chỉ dừng lại ở quy mô nhỏ
4 PHƯƠNG PHÁP NGHIÊN CỨU
4.1 Phương pháp nghiên cứu lý thuyết
Nghiên cứu cấu trúc phần cứng và lập trình điều khiển cho 8051 và các thiết bị ngoại vi bằng ngôn ngữ lập trình C Các phương pháp thiết kế và chế tạo mạch điện
tử
4.2 Phương pháp nghiên cứu thực nghiệm
- Tìm hiểu thông số của các bo mạch liên quan trên thực tế đã có, tham khảo một số bộ thí nghiệm vi xử lý tại phòng Kỹ Thuật Vi Xử Lý trường Đại Học Nha Trang
- Thiết kế phần nguồn cấp cho các bo mạch, phần bảng gỗ dùng để đặt các bo mạch lên phục vụ cho quá trình thí nghiệm
- Vẽ mạch nguyên lý, mạch in trên phần mềm Altium Designer 10
- Chế tạo mạch theo phương pháp thủ công
- Thử nghiệm, đánh giá, hiệu chỉnh trên các bo mạch và đưa ra các kết luận, khuyến nghị
Trang 165 BỐ CỤC CỦA ĐỀ TÀI
Đồ án được thực hiện theo các nội dung sau:
- CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
- CHƯƠNG 2 THIẾT KẾ VÀ THI CÔNG BỘ KIT THÍ NGHIỆM
- CHƯƠNG 3 ĐỀ XUẤT CÁC BÀI THỰC HÀNH TRÊN BỘ KIT
- CHƯƠNG 4 ĐÁNH GIÁ KẾT QUẢ VÀ KHUYẾN NGHỊ
- PHỤ LỤC 1
- PHỤ LỤC 2
Trang 17CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
Dựa trên yêu cầu thiết kế bộ KIT thí nghiệm VĐK 8051 có thể thực hành được các bài thực hành từ đơn giản đến phức tạp như: Giao tiếp với LED đơn, nút nhấn, LED ma trận, LCD, điều khiển động cơ và truyền thông nối tiếp, giao tiếp với máy tính Nên những kiến thức cơ bản về VĐK 8051, các loại ngoại vi trên và các phần mềm hỗ trợ sẽ được trình bày trong chương này Cụ thể như sau:
- Giới thiệu về VĐK 8051
- Giới thiệu phần mềm Keil c 4
- Giới thiệu phần mềm Proteus 7
- Giới thiệu phần mềm Altium Designer 10
- Giới thiệu phần mềm Visual Basic 6
1.1 GIỚI THIỆU VĐK 8051
1.1.1 Giới thiệu chung
Vào năm 1981 hãng Intel giới thiệu bộ vi điều khiển được gọi là 8051 [3] 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 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ý 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
1.1.2 Cấu trúc phần cứng VĐK 8051
1.1.2.1 Sơ đồ khối của 8051
AT89C51 là vi điều khiển do Atmel sản xuất, chế tạo theo công nghệ CMOS
có các đặc tính như sau:
Trang 18- 4 KB PEROM 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
- 128 Byte RAM nội
- 4 Port xuất /nhập I/O 8 bit
- 2 bộ Timer/counter 16 Bit + 6 nguồn ngắt
- Giao tiếp nối tiếp điều khiển bằng phần cứng
Trang 191.1.2.2 Sơ đồ chân và chức năng các chân của VĐK 8051
Hình 1.2 Sơ đồ chân của bộ VĐK 8051 Chân 1 đến 8: Được gọi là Cổng 1 (Port 1), Tám chân này có duy nhất 1 chức
năng là xuất và nhập Cổng 1 có thể xuất và nhập theo bit hoặc byte Ta đánh tên cho mỗi chân của Port 1 là P1.X (X = 0 đến 7)
Chân 9: Chân vào reset của 8051 Khi tín hiệu này được đưa lên mức cao
trong ít nhất là 2 chu kỳ máy [3], các thanh ghi trong bộ vi điều khiển được tải những giá trị thích hợp để khởi động hệ thống Hay nói cách khác là vi điều khiển
sẽ bị reset nếu chân này được kích hoạt mức cao
Hình 1.3 Sơ đồ mạch reset ngoài của 8051
Trang 20Chân 10 đến 17: Được gọi là Cổng 3 (Port 3) Tám chân này ngoài chức năng
là xuất và nhập như các chân ở cổng 1 (chân 1 đến 8) thì mỗi chân này còn có chức năng riêng nữa, cụ thể như sau:
P3.0 RxD Chân nhận dữ liệu cho cổng nối tiếp
P3.1 TxD Chân truyền dữ liệu cho cổng nối tiếp
P3.2 INT0 Chân ngắt ngoài 0
P3.3 INT1 Chân ngắt ngoài 1
P3.4 T0 Ngõ vào của Timer/Counter 0
P3.5 T1 Ngõ vào của Timer/Counter 1
P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài
P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài
Bảng 1.1 Bảng mô tả chức năng riêng của cổng P3
Chân 18 và 19 (XTAL1 & XTAL2): Hai chân này được sử dụng để nối với
bộ dao động ngoài
Hình 1.4 Mạch dao động cấp cho 8051 Thông thường một bộ dao động thạch anh sẽ được nối tới các chân đầu vào XTAL1 (chân 19) và XTAL2 (chân 18) cùng với hai tụ gốm giá trị khoảng 30pF Các hệ thống xây dựng trên 8051 thường có tần số thạch anh từ 10 đến 40 MHz, thông thường ta dùng thạch anh 12 Mhz
Chân 20: Được nối vào chân 0V của nguồn cấp
Trang 21Chân 21 đến chân 28: Được gọi là cổng 2 (Port 2) Tám chân của cổng 2 có 2
công dụng, ngoài chức năng là cổng xuất và nhập như cổng 1 thì cổng 2 này còn là byte cao của bus địa chỉ khi sử dụng bộ nhớ ngoài
Chân 29 (PSEN): Chân PSEN là chân điều khiển đọc chương trình ở bộ nhớ
ngoài, nó được nối với chân OE của ROM ngoài để cho phép đọc các byte mã lệnh trên ROM ngoài PSEN ở mức thấp trong thời gian đọc mã lệnh Khi thực hiện chương trình trong ROM nội thì PSEN được duy trì ở mức cao
Chân 30 (ALE): Chân ALE cho phép tách các đường dữ liệu và các đường địa
chỉ tại Port 0 và Port 2
Chân 31 (EA): Tín hiệu chân EA cho phép chọn bộ nhớ chương trình là bộ
nhớ trong hay ngoài vi điều khiển Nếu chân EA được nối ở mức cao (nối nguồn Vcc), thì vi điều khiển thi hành chương trình trong ROM nội Nếu chân EA ở mức thấp (được nối GND) thì vi điều khiển thi hành chương trình từ bộ nhớ ngoài
Chân 32 đến 39: Được gọi là cổng 0 (Port 0) Cổng 0 gồm 8 chân cũng có 2
công dụng, ngoài chức năng xuất nhập, cổng 0 còn là bus đa hợp dữ liệu và địa chỉ, chức năng này sẽ được sử dụng khi 8051 giao tiếp với các biết bị ngoài có kiến trúc Bus như các vi mạch nhớ Vì cổng P0 là một máng mở khác so với các cổng P1, P2 và P3 nên các chân ở cổng 0 phải được nối với điện trở kéo khi sử dụng các chân này như chân vào/ra Điện trở này tùy thuộc vào đặc tính ngõ vào của thành phần ghép nối với chân của port 0
Hình 1.5 Nối điện trở kéo cho cổng 0 của 8051
Trang 22Chân 40: Chân nguồn của vi điều khiển, được nối vào chân Vcc của nguồn 1.1.3 Tổ chức bộ nhớ
1.1.3.1 Bộ nhớ chương trình
Trên vi điều khiển 8051/8052 đều có cả bộ nhớ chương trình (ROM) và bộ nhớ dữ liệu (RAM) Tuy nhiên dung lượng của các bộ nhớ trên chip là hạn chế Khi thiết kế các ứng dụng đòi hỏi bộ nhớ lớn có thể dùng bộ nhớ ngoài
1.1.3.2 Bộ nhớ dữ liệu
Bộ nhớ dữ liệu 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à 128 byte và có thể mở rộng với bộ nhớ dữ liệu ngoài lên tới 64 KByte
1.1.3.3 Các thanh ghi có chức năng đặc biệt
Thanh ghi của 8051 được dùng để lưu trữ tạm thời dữ liệu hoặc địa chỉ Các thanh ghi này chủ yếu có kích thước 8 bit, 8 bit của các thanh ghi được sắp xếp như hình dưới trong đó bit D7 là bit có trọng số cao nhất, còn bit D0 là bit có trọng số thấp nhất
1.2 Giới thiệu phần mềm Keil C uvision 4
1.3.1 Giới thiệu chung
Keil C uvision 4 là một phần mềm của hãng Keil [4], phần mềm này hỗ trợ cho người dùng trong việc lập trình cho vi điều khiển các dòng khác nhau (Atmel,
AVR, ) Keil C giúp người dùng soạn thảo và biên dịch một chương trình C hay cả ASM thành ngôn ngữ máy để nạp vào vi điều khiển giúp tương tác giữa vi điều
khiển và người lập trình
Hình 1.6 Giao diện Keil C 4 khi khởi động
Trang 231.2.2 Cách tạo một project mới
Để tạo một project mới tiến hành làm các bước sau:
- Bước 1: Chọn Project => New uVision Project => Đặt tên và chọn nơi lưu project
- Bước 2: Chọn CPU, chọn Atmel => AT89S52 => OK
- Bước 3: Tạo một cửa sổ để viết chương trình, chọn File => New, hoặc
nhấn tổ hợp phím Ctrl + N Lưu file với đuôi c
- Bước 4: Add file c vào cửa sổ chứa project
o Trong Target1, nhấn chuột phải vào Suorce Group 1 => Add File to
Group ‘Source Group 1’ => chọn file có đuôi c mới tạo => Add =>
Close
- Bước 5: Tạo file hex, Kích chuột phải vào Target 1 => chọn Options for Target hoặc nhấn tổ hợp phím Alt + F7 => chọn thẻ Output => tích vào ô Creat HEX File => OK
Hình 1.7 Giao diện thiết kế Keil C 4
1.3 Giới thiệu phần mềm mô phỏng Proteus
1.3.1 Giới thiệu chung
Proteus là phần mềm dùng để thiết kế và mô phỏng hoạt động của mạch điện
tử do hãng Labcenter Electronics nghiên cứu và phát triển [5] Proteus hỗ trợ mô
Trang 24phỏng cho hầu hết các linh kiện điện tử thông dụng, đặc biệt phù hợp khi mô phỏng các mạch điện tử số và vi xử lý, MCU như PIC, 8051, AVR, Motorola
Proteus bao gồm 2 chương trình: ISIS cho phép thiết kế và mô phỏng mạch điện tử và ARES dùng để vẽ mạch in (trong đồ án này chỉ sử dụng phần ISIS để vẽ mạch điện và mô phỏng mà không sử dụng ARES) Proteus là công cụ mô phỏng cho các loại VĐK khá tốt, nó hỗ trợ các dòng VĐK PIC, 8051, PIC, dsPIC, AVR, HC11, MSP430, ARM7/LPC2000, …các giao tiếp I2C, SPI, CAN, USB, Ethenet,… Ngòai ra còn mô phỏng các mạch số, mạch tương tự một cách hiệu quả Sức mạnh của nó là có thể mô phỏng hoạt động của các hệ VĐK một cách trực quan, sinh động mà không cần thêm phần mềm phụ trợ nào
Những đặc điểm của ISIS là:
- Chạy trên nền Windows 98/Me/2k/XP/Win7
- Tự động sắp xếp đường mạch và vẽ điểm giao đường mạch
- Chọn đối tượng và thiết lập thông số cho đối tượng dễ dàng
- Xuất file thống kê linh kiện cho mạch
- Xuất ra file Netlist tương thích với các chương trình làm mạch in thông dụng
- Đối với người thiết kế mạch chuyên nghiệp, ISIS tích hợp nhiều công cụ giúp cho việc quản lý mạch điện lớn, mạch điện có thể lên đến hàng ngàn linh kiện
- Thiết kế theo cấu trúc (hierachical design)
- Khả năng tự động đánh số linh kiện
Hình 1.8 Giao diện của Proteus khi khởi động
Trang 251.3.2 Cách tạo một bản vẽ mới
Để tạo một bản thiết kế mới và mô phỏng tiến hành như sau:
Bước 1: Chọn File => New Design => Chọn khổ giấy => OK
Bước 2: Lấy linh kiện => place component (hoặc chữ P) => kết nối mạch theo
sơ đồ
Bước 3: Nạp chương trình cho VĐK (nếu cần): double click lên VĐK => chọn file Hex => OK
Bước 4: Mô phỏng (click vào nút Run)
Hình 1.9 Giao diện thiết kế trên ISIS của proteus
1.4 Giới thiệu phần mềm Altium Designer 10
1.4.1 Giới thiệu chung
Phần mềm Altium Designer được phát triển từ phần mềm Protel của hãng Altium [6] Nó là một phần mềm dùng để thiết kế mạch nguyên lý và mạch in có giao diện thân thiện, sử dụng đơn giản Điểm mạnh của Altium là nó có thư viện linh kiện và thư viện chân cắm vô cùng phong phú, được cộng đồng hỗ trợ liên tục Đồng thời nó có thể đọc được các file thiết kế từ các phần mềm khác như orcad, eagle bằng cách sử dụng công cụ Import, làm cho Altium Designer mạnh và tiện
Trang 26dụng Việc xuất ra các file CAM, CNC cũng rất chuẩn và thực hiện rất nhanh chóng
Hình 1.10 Giao diện Altium khi khởi động
1.4.2 Thiết kế mạch với Altium Designer 10
Các bước tạo một project mới:
- Bước 1: Chọn File => New => Project => PCB Projects
- Bước 2: Vẽ mạch nguyên lý:
o Thêm thư viện linh kiện: Chọn Design => Browse Library (hoặc
nhấn phím tắt D B) => Libraries => Install => Chọn thư viện =>
Open => Close
o Lấy linh kiện từ thư viện: Design => Browse Library (hoặc nhấn
phím tắt D B) => Lấy linh kiện teho yêu cầu => Vẽ mạch điện
theo sơ đồ nguyên lý
- Bước 3: Add file vẽ mạch nguyên lý:
o Kích chuột phải vào PCB_Project1.PrjPCB => chọn Add New to Project => chọn Schematic để add file mạch nguyên lý
- Bước 4: Add file vẽ mạch in:
o Kích chột phải vào PCB_Project1.PrjPCB => chọn Add New to Project => chọn PCB để add file mạch in
Trang 27Hình 1.11 Giao diện thiết kế trên Altium 10
1.5 Giới thiệu phần mềm Visual Basic 6.0
1.5.1 Giới thiệu chung
Visual Basic 6.0 là một ngôn ngữ lập trình hướng đối tượng, trực quan trên môi trường Windows VB cung cấp một bộ công cụ hoàn chỉnh để đơn giản hóa việc triển khai lập trình ứng dụng, có thể nói đây là cách nhanh và tốt nhất để học
và lập trình ứng dụng trên Microsoft Windows
Phần "Visual- Trực quan" đề cập đến phương pháp được sử dụng để tạo giao diện đồ họa người dùng (GUI - Graphical User Interface) VB có sẵn rất nhiều những bộ phận trực quan gọi là các điều khiển (Controls) mà người lập trình có thể sắp đặt vị trí và quyết định các đặc tính của chúng trên một khung giao diện màn hình, gọi là form Việc thiết kế các giao diện người dùng ứng dụng trên VB có thể hình dung đơn giản như việc vẽ giao diện trên Word hoặc trên Paint Prush của Windows
Trang 28Hình 1.12 Giao diện Visual Basic 6 khi khởi động
1.5.2 Cách tạo một project mới
Cách tạo một project mới:
Bước 1: chọn File => New Project => Đặt tên => OK
Bước 2: Thêm các đối tượng => Từ hộp công cụ, kéo các đối tượng tương ứng
ra cửa sổ Form
Bước 3: Lập trình cho các đối tượng => Nhấn đúp chuột vào các đối tượng
Hình 1.13 Giao diện thiết kế của Visual Basic 6
Trang 29CHƯƠNG 2 THIẾT KẾ VÀ THI CÔNG BỘ KIT
Sau khi tìm hiểu cơ sở lý thuyết về VĐK, các thiết bị ngoại vi, và các phần mềm hỗ trợ, kết hợp với tham khảo các thông số của các bảng mạch trong bộ KIT thí nghiệm của phòng Thực hành Kỹ thuật Vi xử lý, sẽ tiến hành thiết kế và chế tạo
bộ KIT thí nghiệm Nội dung chính của chương gồm có:
- Sơ đồ khối của bộ KIT
- Sơ đồ nguyên lý của các khối trong bộ KIT
- Chế tạo mạch, lắp ráp linh kiện lên mạch
2.1 Sơ đồ khối của bộ KIT
Bộ KIT thực hành bao gồm bộ điều khiển trung tâm là VĐK 8051 đi kèm với mạch nạp, các bảng mạch khác được thiết kế rời rạc theo từng mô-đun có thể tháo
lắp linh động Sơ đồ khối của bộ KIT được thể hiện như hình 2.1
Hình 2.1: Sơ đồ khối bộ KIT thực hành
2.2 Sơ đồ nguyên lý các khối trong bộ KIT
Để đáp ứng nhu cầu nhỏ gọn, thuận tiện cho việc sử dụng, di chuyển dễ dàng
và đặc biệt là có thể mở rộng được bộ vi xử lý trung tâm thành các loại VĐK khác như PIC, AVR, ARDUINO Bộ KIT được thiết kế thành 7 bo mạch riêng lẻ, có độ tích hợp không quá sâu để người học có thể tự kết nối các khối, qua đó hiểu hơn về nguyên lý hoạt động của từng mạch Các khối trong bộ KIT bao gồm:
Trang 30- Khối vi xử lý trung tâm sử dụng VĐK 8051
Hình 2.2 Mạch xử lý trung tâm dùng VĐK 8051
- Khối hiển thị Led 7 đoạn
Hình 2.3 Mạch nguyên lý LED 7 đoạn
Trang 31- Khối LCD 16x2IC thời gian thực DS1307 và ADC0804
Hình 2.4 Mạch nguyên lý LCD 16x2, DS1307, ADC0804 và LM35
- Mạch điều khiển động cơ sử dụng IC L298
Hình 2.5 Mạch công suất L298
Trang 32- Khối mở rộng ngõ ra gồm IC 74HC595 và IC ULN2803
Hình 2.6 Mạch nguyên lý 74HC595 và ULN2803
- Khối Led ma trận 8x16
Hình 2.7 mạch nguyên lý LED ma trận
Trang 33- Khối bàn phím ma trận 4x4, 8 Led đơn, hai nút nhấn đơn và 2 rơ le
Hình 2.8 Mạch nguyên lý LED đơn, rơ le, nút nhấn đơn, nút nhấn ma trận
2.3 Chế tạo mạch, lắp ráp linh kiện
Bo mạch vi xử lý trung tâm sẽ được cố định trên một bảng, khi thí nghiệm đến bài nào thì sẽ lắp các bo mạch tương ứng lên bảng Các bo mạch sẽ được kết nối với nhau qua các dây bus
Các bước thi công:
- Thiết kế mạch in bằng phần mềm Altium Designer 10 Từ file mạch in đã
thiết kế trên phần mềm, tiến hành in các bo mạch in ra giấy chuyên dụng
- Chuyển mạch từ giấy qua bo mạch đồng bằng phương pháp dùng bàn ủi thủ
công
- Rửa mạch, khoan lỗ và ráp linh kiện thành các bo mạch hoàn chỉnh
Trang 34- Lắp ráp các bo mạch lên bảng mạch chính có sẵn khối nguồn cấp 12 V và 5
V để tạo thành bộ KIT hoàn chỉnh, như Hình 2.8
Hình 2.9 Các bo mạch sau khi thi công
Trang 35CHƯƠNG 3 ĐỀ XUẤT CÁC BÀI THỰC HÀNH TRÊN BỘ KIT
Dựa trên những ứng dụng thực tế thường gặp của VĐK 8051, và mức độ phức tạp của các bài thực hành sao cho phù hợp với đa số sinh viên tham gia sinh hoạt ngoại khóa tại CLB Điện – Điện tử Em xin đề xuất một số bài thực hành trên bộ KIT như sau:
- Bài 1: Giao tiếp với LED đơn
- Bài 2: Giao tiếp với LED 7 đoạn
- Bài 3: Giao tiếp với nút nhấn
- Bài 4: Giao tiếp với Rơ le
- Bài 5: Giao tiếp với LCD 16x2
- Bài 6: Giao tiếp với ADC0804 và cảm biến nhiệt độ LM35
- Bài 7: Giao tiếp I2C sử dụng IC thời gian thực DS1307
- Bài 8: Điều khiển động cơ, giao tiếp với IC L298
- Bài 9: Giao tiếp với LED ma trận 8x8
- Bài 10: UART và giao tiếp máy tính
3.1 Giao tiếp với LED đơn
Trang 36Hình 3.1 Giao tiếp một LED đơn
- Nạp đoạn mã chương trình sau vào VĐK:
Trang 37Delay_ms(500);// Tao tre 500ms
- Sử dụng dây bus 8 để kết nối 8 cổng của VĐK(từ P1.0 đến P1.7) với 8 LED
đơn giữa hai bo mạch theo sơ đồ nguyên lý, như Hình 3.2
Hình 3.2 Điều khiển 8 LED chớp tắt
- Nạp đoạn mã chương trình sau cho VĐK 8051:
#include <REGX52.H>
void Delay_ms(int t) // Chuong trinh con tao tre ms
{
Trang 38unsigned int x, y; // Khai bao cac bien trong chuong trinh
P1 = 0x00; // Cho tat ca cac chan cua PORT1 xuong 0(0V)
Delay_ms(500); // Tao tre 500ms
P01= 0xFF; // Cho tat ca cac chan cua PORT1 lên muc 1(5V)
Delay_ms(500); // Tao tre 500ms
}
}
- Cấp nguồn cho mạch và quan sát kết quả trên 8 LED
Để điều khiển 8 LED sáng tắt với các hiệu ứng khác nhau như: 8 LED sáng tắt xen kẽ nhau, sáng dần từng LED, 4 LED sáng 4 LED tắt liên tục, vẫn sử dụng sơ
đồ kết nối như trên, chỉ thay đổi phần code lập trình Phần code lập trình của các hiệu ứng khác nhau sẽ được trình bày ở bài 2 phần phụ lục 1
3.2 Giao tiếp với LED 7 đoạn
3.2.1 Giới thiệu led 7 đoạn
Cấu tạo:
Hình 3.3 Cấu tạo và hình ảnh thực tế LED 7 đoạn
Trang 39LED 7 đoạn có cấu tạo bao gồm 7 LED đơn xếp theo hình phía trên và có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của LED 7 thanh 8 LED đơn trên led 7 thanh có Anode (cực +) hoặc Cathode (cực -) được nối chung với nhau vào một điểm và được đưa chân ra ngoài để kết nối với mạch điện 7 cực còn lại trên mỗi led đơn của LED 7 đoạn và 1 cực trên LED đơn ở góc dưới, bên phải của LED 7 đoạn được đưa thành 8 chân riêng để điều khiển cho LED sáng tắt theo ý muốn
Nếu LED 7 đoạn có Anode (cực +) chung, đầu chung này được nối với +Vcc, các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, LED chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0
Nếu LED 7 đoạn có Cathode (cực -) chung, đầu chung này được nối xuống Ground (hay Mass), các chân còn lại dùng để điều khiển trạng thái sáng tắt của các LED đơn, LED chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1
Trong đồ án sử dụng LED 7 đoạn loại Anode chung Để điều khiển LED hiển thị các co số từ 0 đến 9, sử dụng bảng mã LED 7 đoạn như sau:
Hình 3.4 Bảng mã LED 7 đoạn loại Anode chung
Trang 403.2.2 Thực hành hiển thị số 1, 2, 3, 4 trên 4 LED 7 đoạn
- Mạch hiển thị LED 7 đoạn
- Sử dụng dây bus kết nối các bo mạch lại theo sơ đồ nguyên lý, như Hình 3.5
Hình 3.5 Giao tiếp LED 7 đoạn
- Nạp đoạn mã chương trình của bài 4 (B4 – 1) nằm trong phần phụ lục 1
- Cấp nguồn cho mạch và quan sát kết quả trên LED 7 đoạn
Để thực hành hiển thị đếm số từ 00 đến 99 trên LED 7 đoạn, vẫn sử dụng sơ
đồ kết nối như trên, chỉ thay đổi phần code lập trình nạp cho VĐK Code lập trình tham khảo tại bài 4 (B4 – 2) nằm trong phần phụ lục 1