Đề tài của em gồm 4 phần:Phần I: GIỚI THIỆU CHUNG. Phần II: TỔNG QUAN VỀ HỌ CỦA VI ĐIỀU KHIỂN HỌ 8051 VÀ AT89S52.Phần III: NỘI DUNG THIẾT KẾ.Phần IV: KẾT LUẬNTrong quá trình thực hiện đề tài do lượng kiến thức còn hạn chế nên em không tránh khỏi những thiếu sót. Em rất mong thầy cô đóng góp ý kiến để em có thể ứng dụng đề tài vào thực tế.
Trang 1NHẬN XÉT CỦA HỘI ĐỒNG BẢO VÊ
Hà Nội, ngày… tháng … năm 2012
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Hà Nội, ngày… tháng … năm 2012
Trang 3MỤC LỤC
MỤC LỤC 3
DANH MỤC CHỮ VIẾT TẮT 7
DANH MỤC BẢNG 8
DANH MỤC HÌNH VẼ 12
LỜI NÓI ĐẦU 16
PHẦN I: GIỚI THIÊU CHUNG 18
1.1 GIỚI THIÊU CHUNG VỀ VI ĐIỀU KHIỂN 18
1.2 GIỚI THIÊU MỘT SỐ HỌ VI ĐIỀU KHIỂN THÔNG DỤNG 18
1.2.1 Vi điều khiển của Atmel 18
1.2.2 Vi điều khiển của Microchip 19
1.2.3 Vi điều khiển của Cypress 19
1.2.4 Vi điều khiển của Hitachi 20
1.2.5 Vi điều khiển của Motorola 20
1.2.6 Vi điều khiển của Maxim 20
PHẦN II: TỔNG QUAN VỀ HỌ CỦA VI ĐIỀU KHIỂN HỌ 8051 VÀ AT89S52 21
2.1 GIỚI THIÊU CHUNG VỀ HỌ 8051 21
Bảng 2.1 Giới thiệu một số IC họ 8051 22
2.1.1 Cấu trúc bus 22
2.1.2 Bộ nhớ chương trình 22
2.1.3 Bộ nhớ dữ liệu 22
2.2 GIỚI THIÊU TỔNG QUAN VỀ AT89S52 23
2.2.1 Sơ đồ khối và chức năng các khối của họ 8051 24
2.2.2 Sơ đồ chân và chức năng các chân của họ 8051 26
2.2.3 Sơ đồ cấu trúc AT89S52 26
Hình 2.3 Sơ đồ khối Vi điều khiển họ 89S52 27
2.3 SƠ LƯỢC VỀ CÁC CHÂN IC 89S52 27
Hình 2.4 Hình dạng sơ đồ IC 89S52 28
2.4 CHỨC NĂNG CÁC CHÂN IC 89S52 28
2.4.1 Port 0 : 28
2.4.2 Port 1: 29
2.4.3 Port 2: 30
2.4.4 Port 3( P3.0-P3.7) : 30
2.4.5 Chân /PSEN( Program Store Enable) 31
2.4.6 Chân ALE ( Address Latch Enable) 31
2.4.7 Chân /EA( External Access) 32
Trang 42.4.8 RST( Reset) 32
2.4.9 XTAL1, XTAL2 32
2.4.10 Vcc, GND 32
2.5 HOẠT ĐỘNG ĐỊNH THỜI 32
2.5.1 Giới thiệu 32
2.5.2 Các thanh ghi của bộ định thời 33
2.5.2.1 Các thanh ghi của Timer0, Timer1 33
2.5.2.2 Các thanh ghi của Timer2 35
2.5.3 Các chế độ của bộ định thời 36
2.5.3.1 Các chế độ của Timer0 và Timer1 36
Hình 2.9 Hoạt động của Timer0 và Timer1 ở chế độ 0 37
2.5.3.2 Các chế độ của Timer 2 40
Bảng 2.3 Các chế độ hoạt động của timer 2 40
Hình 2.16 Sử dụng Timer 2 tạo tốc độ baud 43
Hình 2.17 Timer 2 trong chế độ tạo xung 44
2.6 NGẮT VÀ XỬ LÝ NGẮT 44
2.6.1 Giới thiệu 44
2.6.2 Tổ chức ngắt 45
Hình 2.18 Các nguồn ngắt của AT89S52 45
2.6.3 Xử lý ngắt 48
2.7 CỔNG NỐI TIẾP 49
2.7.1 Giới thiệu 49
Hình 2.19 Mô tả hoạt động của cổng nối tiếp 49
Hình 2.20 Sơ đồ khối cổng nối tiếp của 8051 50
2.7.2 Các thanh ghi của cổng nối tiếp 50
2.7.3 Các chế độ hoạt động 52
2.7.3.1 Chế độ 0 52
Hình 2.21 Hoạt động của cổng nối tiếp ở chế độ 0 52
2.7.3.2 Chế độ 1 53
Hình 2.22 Giản đồ truyền nhận dữ liệu ở chế độ 0 53
Hình 2.23 Giản đồ truyền nhận dữ liệu ở chế độ 1 53
Hình 2.24 Giản đồ truyền nhận dữ liệu ở chế độ 2 và 3 54
Hình 2.25 Dùng Timer 1, 2 cung cấp tốc độ baud cho cổng nối tiếp 54
Hình 2.26 Dùng Timer 1 cung cấp tốc độ baud cho cổng nối tiếp (TCLK=RCLK=0) 54
Hình 2.27 Dùng Timer 1 cung cấp tốc độ baud cho cổng nối tiếp 55
Trang 52.7.3.3 Chế độ 2 55
Hình 2.28 Tốc độ baud của chế độ 2 55
2.7.3.4 Chế độ 3 55
PHẦN III: NỘI DUNG THIẾT KẾ 56
CHƯƠNG I: GIỚI THIÊU CÁC MODUL VÀ CÁC LINH KIÊN DÙNG TRONG MẠCH 56
1 KHỐI NGUỒN 56
2 KHỐI GHÉP NỐI VỚI MÁY TÍNH QUA CỔNG COM 56
2.1 Cổng nối tiếp (COM) 57
2.2 IC MAX232 58
3 KHỐI VI ĐIỀU KHIỂN 58
3.1.Mạch tạo dao động 59
3.2 Mạch reset 60
Hình 3.7 Sơ đồ mạch reset của 8051 60
4 KHỐI QUÉT LED MA TRẬN 8x8 60
Hình 3.8 Sơ đồ khối quét led matrix 60
4.1 IC 74HC595 61
4.2 LED MATRIX 8X8 62
4.2.1 Sơ đồ nguyên lý của ma trận led 8x8 62
Hình 3.10 Sơ đồ chân và hình ảnh thực tế của Led Matrix 8x8 62
4.2.2 Cách quét LED ma trận 8x8 62
5 KHỐI GIAO TIẾP LCD 63
5.1 Ý nghĩa các chân của LCD hiển thị ký tự 64
5.2 Nguyên tắc hiển thị ký tự trên LCD 64
6 KHỐI ADC0804 65
7 KHỐI HIỂN THỊ THỜI GIAN THỰC 69
8 KHỐI NGẮT HỒNG NGOẠI 70
8.1 OPTO 71
8.2 LM358 71
9 KHỐI QUÉT LED 7 ĐOẠN 72
Hình 3.21 Hình ảnh thực tế của led quét 4 72
Hình 3.22 Sơ đồ chân của led quet 4 73
10 KHỐI QUÉT LED ĐƠN 74
Hình 3.23 Sơ đồ khối quét led đơn 74
11 KHỐI GHÉP NỐI MA TRẬN PHÍM 4x4 75
Hình 3.24 Khối ghép nối ma trận phím 4x4 75
12 KHỐI ĐIỀU KHIỂN ĐỘNG CƠ 1 CHIỀU 76
Trang 6Hình 3.25 Sơ đồ khối điều khiển động cơ một chiều 76
Hình 3.26 Sơ đồ mạch cầu H 77
13 KHỐI NẠP CHƯƠNG TRÌNH THEO CHUẨN ISP 77
Hình 3.27 Sơ đồ khối nạp chương trình theo chuẩn ISP 77
14 MẠCH NẠP CHO AT89S52 DÙNG ATMEGA8 (USB TO COM) 78
Hình 3.28 Sơ đồ mạch nạp chương trình dùng ATMEGA8 78
Hình 3.29 Sơ đồ chân ATMEGA8 80
Hình 3.30 Hình ảnh của ATMEGA8 80
CHƯƠNG II THIẾT KẾ MÔ HÌNH BỘ KIT THỰC HÀNH VĐK 81
1 YÊU CẦU: 81
2 SƠ ĐỒ NGUYÊN LÝ 81
Hình 3.31 Sơ đồ mạch nguyên lý 81
CHƯƠNG III: CÁC VÍ DỤ MINH HỌA CHO CÁC MODUL82 1 LẬP TRÌNH GHÉP NỐI KHỐI QUÉT LED ĐƠN 82
3 LẬP TRÌNH GHÉP NỐI MODUL LED 7 ĐOẠN VÀ BỘ ĐẾM HỒNG NGOẠI 85
4 LẬP TRÌNH QUÉT LED MATRIX 88
5 LẬP TRÌNH BỘ BIẾN ĐỔI ADC VÀ HIỂN THỊ LED 7 THANH 92
PHẦN IV KẾT LUẬN 96
3.1 ƯU ĐIỂM CỦA MẠCH 96
3.2 NHƯỢC ĐIỂM 96
3.3 HƯỚNG CẢI THIÊN 96
TÀI LIÊU THAM KHẢO 97
Trang 7DANH MỤC CHỮ VIẾT TẮT
- ROM: Read Only Memory
- RAM : Random Access Memory
- SRAM: Static Random Access Memory
- EEPROM: Electrically Erasable Programmable Read-Only Memory
- CPU: Central Processing Unit
- ALU : Arithmetic Logical Unit
- PSW: Program Status Worl
- UART: Universal Ansynchrous Receiver and Transmitter
- WDM: Watch Dog Timer
- RTC: Real Time Clock
- ISP: In System Programmer
- PSEN: Program Store Enable
- ALE : Address Latch Enable
- EA: External Access
Trang 8DANH MỤC BẢNG
MỤC LỤC 3
DANH MỤC CHỮ VIẾT TẮT 7
DANH MỤC BẢNG 8
DANH MỤC HÌNH VẼ 12
LỜI NÓI ĐẦU 16
PHẦN I: GIỚI THIÊU CHUNG 18
1.1 GIỚI THIÊU CHUNG VỀ VI ĐIỀU KHIỂN 18
1.2 GIỚI THIÊU MỘT SỐ HỌ VI ĐIỀU KHIỂN THÔNG DỤNG 18
1.2.1 Vi điều khiển của Atmel 18
1.2.2 Vi điều khiển của Microchip 19
1.2.3 Vi điều khiển của Cypress 19
1.2.4 Vi điều khiển của Hitachi 20
1.2.5 Vi điều khiển của Motorola 20
1.2.6 Vi điều khiển của Maxim 20
PHẦN II: TỔNG QUAN VỀ HỌ CỦA VI ĐIỀU KHIỂN HỌ 8051 VÀ AT89S52 21
2.1 GIỚI THIÊU CHUNG VỀ HỌ 8051 21
Bảng 2.1 Giới thiệu một số IC họ 8051 22
2.1.1 Cấu trúc bus 22
2.1.2 Bộ nhớ chương trình 22
2.1.3 Bộ nhớ dữ liệu 22
2.2 GIỚI THIÊU TỔNG QUAN VỀ AT89S52 23
2.2.1 Sơ đồ khối và chức năng các khối của họ 8051 24
2.2.2 Sơ đồ chân và chức năng các chân của họ 8051 26
2.2.3 Sơ đồ cấu trúc AT89S52 26
Hình 2.3 Sơ đồ khối Vi điều khiển họ 89S52 27
2.3 SƠ LƯỢC VỀ CÁC CHÂN IC 89S52 27
Hình 2.4 Hình dạng sơ đồ IC 89S52 28
2.4 CHỨC NĂNG CÁC CHÂN IC 89S52 28
2.4.1 Port 0 : 28
2.4.2 Port 1: 29
2.4.3 Port 2: 30
2.4.4 Port 3( P3.0-P3.7) : 30
2.4.5 Chân /PSEN( Program Store Enable) 31
2.4.6 Chân ALE ( Address Latch Enable) 31
2.4.7 Chân /EA( External Access) 32
Trang 92.4.8 RST( Reset) 32
2.4.9 XTAL1, XTAL2 32
2.4.10 Vcc, GND 32
2.5 HOẠT ĐỘNG ĐỊNH THỜI 32
2.5.1 Giới thiệu 32
2.5.2 Các thanh ghi của bộ định thời 33
2.5.2.1 Các thanh ghi của Timer0, Timer1 33
2.5.2.2 Các thanh ghi của Timer2 35
2.5.3 Các chế độ của bộ định thời 36
2.5.3.1 Các chế độ của Timer0 và Timer1 36
Hình 2.9 Hoạt động của Timer0 và Timer1 ở chế độ 0 37
2.5.3.2 Các chế độ của Timer 2 40
Bảng 2.3 Các chế độ hoạt động của timer 2 40
Hình 2.16 Sử dụng Timer 2 tạo tốc độ baud 43
Hình 2.17 Timer 2 trong chế độ tạo xung 44
2.6 NGẮT VÀ XỬ LÝ NGẮT 44
2.6.1 Giới thiệu 44
2.6.2 Tổ chức ngắt 45
Hình 2.18 Các nguồn ngắt của AT89S52 45
2.6.3 Xử lý ngắt 48
2.7 CỔNG NỐI TIẾP 49
2.7.1 Giới thiệu 49
Hình 2.19 Mô tả hoạt động của cổng nối tiếp 49
Hình 2.20 Sơ đồ khối cổng nối tiếp của 8051 50
2.7.2 Các thanh ghi của cổng nối tiếp 50
2.7.3 Các chế độ hoạt động 52
2.7.3.1 Chế độ 0 52
Hình 2.21 Hoạt động của cổng nối tiếp ở chế độ 0 52
2.7.3.2 Chế độ 1 53
Hình 2.22 Giản đồ truyền nhận dữ liệu ở chế độ 0 53
Hình 2.23 Giản đồ truyền nhận dữ liệu ở chế độ 1 53
Hình 2.24 Giản đồ truyền nhận dữ liệu ở chế độ 2 và 3 54
Hình 2.25 Dùng Timer 1, 2 cung cấp tốc độ baud cho cổng nối tiếp 54
Hình 2.26 Dùng Timer 1 cung cấp tốc độ baud cho cổng nối tiếp (TCLK=RCLK=0) 54
Hình 2.27 Dùng Timer 1 cung cấp tốc độ baud cho cổng nối tiếp 55
Trang 102.7.3.3 Chế độ 2 55
Hình 2.28 Tốc độ baud của chế độ 2 55
2.7.3.4 Chế độ 3 55
PHẦN III: NỘI DUNG THIẾT KẾ 56
CHƯƠNG I: GIỚI THIÊU CÁC MODUL VÀ CÁC LINH KIÊN DÙNG TRONG MẠCH 56
1 KHỐI NGUỒN 56
2 KHỐI GHÉP NỐI VỚI MÁY TÍNH QUA CỔNG COM 56
2.1 Cổng nối tiếp (COM) 57
2.2 IC MAX232 58
3 KHỐI VI ĐIỀU KHIỂN 58
3.1.Mạch tạo dao động 59
3.2 Mạch reset 60
Hình 3.7 Sơ đồ mạch reset của 8051 60
4 KHỐI QUÉT LED MA TRẬN 8x8 60
Hình 3.8 Sơ đồ khối quét led matrix 60
4.1 IC 74HC595 61
4.2 LED MATRIX 8X8 62
4.2.1 Sơ đồ nguyên lý của ma trận led 8x8 62
Hình 3.10 Sơ đồ chân và hình ảnh thực tế của Led Matrix 8x8 62
4.2.2 Cách quét LED ma trận 8x8 62
5 KHỐI GIAO TIẾP LCD 63
5.1 Ý nghĩa các chân của LCD hiển thị ký tự 64
5.2 Nguyên tắc hiển thị ký tự trên LCD 64
6 KHỐI ADC0804 65
7 KHỐI HIỂN THỊ THỜI GIAN THỰC 69
8 KHỐI NGẮT HỒNG NGOẠI 70
8.1 OPTO 71
8.2 LM358 71
9 KHỐI QUÉT LED 7 ĐOẠN 72
Hình 3.21 Hình ảnh thực tế của led quét 4 72
Hình 3.22 Sơ đồ chân của led quet 4 73
10 KHỐI QUÉT LED ĐƠN 74
Hình 3.23 Sơ đồ khối quét led đơn 74
11 KHỐI GHÉP NỐI MA TRẬN PHÍM 4x4 75
Hình 3.24 Khối ghép nối ma trận phím 4x4 75
12 KHỐI ĐIỀU KHIỂN ĐỘNG CƠ 1 CHIỀU 76
Trang 11Hình 3.25 Sơ đồ khối điều khiển động cơ một chiều 76
Hình 3.26 Sơ đồ mạch cầu H 77
13 KHỐI NẠP CHƯƠNG TRÌNH THEO CHUẨN ISP 77
Hình 3.27 Sơ đồ khối nạp chương trình theo chuẩn ISP 77
14 MẠCH NẠP CHO AT89S52 DÙNG ATMEGA8 (USB TO COM) 78
Hình 3.28 Sơ đồ mạch nạp chương trình dùng ATMEGA8 78
Hình 3.29 Sơ đồ chân ATMEGA8 80
Hình 3.30 Hình ảnh của ATMEGA8 80
CHƯƠNG II THIẾT KẾ MÔ HÌNH BỘ KIT THỰC HÀNH VĐK 81
1 YÊU CẦU: 81
2 SƠ ĐỒ NGUYÊN LÝ 81
Hình 3.31 Sơ đồ mạch nguyên lý 81
CHƯƠNG III: CÁC VÍ DỤ MINH HỌA CHO CÁC MODUL82 1 LẬP TRÌNH GHÉP NỐI KHỐI QUÉT LED ĐƠN 82
3 LẬP TRÌNH GHÉP NỐI MODUL LED 7 ĐOẠN VÀ BỘ ĐẾM HỒNG NGOẠI 85
4 LẬP TRÌNH QUÉT LED MATRIX 88
5 LẬP TRÌNH BỘ BIẾN ĐỔI ADC VÀ HIỂN THỊ LED 7 THANH 92
PHẦN IV KẾT LUẬN 96
3.1 ƯU ĐIỂM CỦA MẠCH 96
3.2 NHƯỢC ĐIỂM 96
3.3 HƯỚNG CẢI THIÊN 96
TÀI LIÊU THAM KHẢO 97
Trang 12DANH MỤC HÌNH VẼ
MỤC LỤC 3
DANH MỤC CHỮ VIẾT TẮT 7
DANH MỤC BẢNG 8
DANH MỤC HÌNH VẼ 12
LỜI NÓI ĐẦU 16
PHẦN I: GIỚI THIÊU CHUNG 18
1.1 GIỚI THIÊU CHUNG VỀ VI ĐIỀU KHIỂN 18
1.2 GIỚI THIÊU MỘT SỐ HỌ VI ĐIỀU KHIỂN THÔNG DỤNG 18
1.2.1 Vi điều khiển của Atmel 18
1.2.2 Vi điều khiển của Microchip 19
1.2.3 Vi điều khiển của Cypress 19
1.2.4 Vi điều khiển của Hitachi 20
1.2.5 Vi điều khiển của Motorola 20
1.2.6 Vi điều khiển của Maxim 20
PHẦN II: TỔNG QUAN VỀ HỌ CỦA VI ĐIỀU KHIỂN HỌ 8051 VÀ AT89S52 21
2.1 GIỚI THIÊU CHUNG VỀ HỌ 8051 21
Bảng 2.1 Giới thiệu một số IC họ 8051 22
2.1.1 Cấu trúc bus 22
2.1.2 Bộ nhớ chương trình 22
2.1.3 Bộ nhớ dữ liệu 22
2.2 GIỚI THIÊU TỔNG QUAN VỀ AT89S52 23
2.2.1 Sơ đồ khối và chức năng các khối của họ 8051 24
2.2.2 Sơ đồ chân và chức năng các chân của họ 8051 26
2.2.3 Sơ đồ cấu trúc AT89S52 26
Hình 2.3 Sơ đồ khối Vi điều khiển họ 89S52 27
2.3 SƠ LƯỢC VỀ CÁC CHÂN IC 89S52 27
Hình 2.4 Hình dạng sơ đồ IC 89S52 28
2.4 CHỨC NĂNG CÁC CHÂN IC 89S52 28
2.4.1 Port 0 : 28
2.4.2 Port 1: 29
2.4.3 Port 2: 30
2.4.4 Port 3( P3.0-P3.7) : 30
2.4.5 Chân /PSEN( Program Store Enable) 31
Trang 132.4.6 Chân ALE ( Address Latch Enable) 31
2.4.7 Chân /EA( External Access) 32
2.4.8 RST( Reset) 32
2.4.9 XTAL1, XTAL2 32
2.4.10 Vcc, GND 32
2.5 HOẠT ĐỘNG ĐỊNH THỜI 32
2.5.1 Giới thiệu 32
2.5.2 Các thanh ghi của bộ định thời 33
2.5.2.1 Các thanh ghi của Timer0, Timer1 33
2.5.2.2 Các thanh ghi của Timer2 35
2.5.3 Các chế độ của bộ định thời 36
2.5.3.1 Các chế độ của Timer0 và Timer1 36
Hình 2.9 Hoạt động của Timer0 và Timer1 ở chế độ 0 37
2.5.3.2 Các chế độ của Timer 2 40
Bảng 2.3 Các chế độ hoạt động của timer 2 40
Hình 2.16 Sử dụng Timer 2 tạo tốc độ baud 43
Hình 2.17 Timer 2 trong chế độ tạo xung 44
2.6 NGẮT VÀ XỬ LÝ NGẮT 44
2.6.1 Giới thiệu 44
2.6.2 Tổ chức ngắt 45
Hình 2.18 Các nguồn ngắt của AT89S52 45
2.6.3 Xử lý ngắt 48
2.7 CỔNG NỐI TIẾP 49
2.7.1 Giới thiệu 49
Hình 2.19 Mô tả hoạt động của cổng nối tiếp 49
Hình 2.20 Sơ đồ khối cổng nối tiếp của 8051 50
2.7.2 Các thanh ghi của cổng nối tiếp 50
2.7.3 Các chế độ hoạt động 52
2.7.3.1 Chế độ 0 52
Hình 2.21 Hoạt động của cổng nối tiếp ở chế độ 0 52
2.7.3.2 Chế độ 1 53
Hình 2.22 Giản đồ truyền nhận dữ liệu ở chế độ 0 53
Hình 2.23 Giản đồ truyền nhận dữ liệu ở chế độ 1 53
Hình 2.24 Giản đồ truyền nhận dữ liệu ở chế độ 2 và 3 54
Hình 2.25 Dùng Timer 1, 2 cung cấp tốc độ baud cho cổng nối tiếp 54
Hình 2.26 Dùng Timer 1 cung cấp tốc độ baud cho cổng nối tiếp (TCLK=RCLK=0) 54
Trang 14Hình 2.27 Dùng Timer 1 cung cấp tốc độ baud cho cổng nối tiếp
55
2.7.3.3 Chế độ 2 55
Hình 2.28 Tốc độ baud của chế độ 2 55
2.7.3.4 Chế độ 3 55
PHẦN III: NỘI DUNG THIẾT KẾ 56
CHƯƠNG I: GIỚI THIÊU CÁC MODUL VÀ CÁC LINH KIÊN DÙNG TRONG MẠCH 56
1 KHỐI NGUỒN 56
2 KHỐI GHÉP NỐI VỚI MÁY TÍNH QUA CỔNG COM 56
2.1 Cổng nối tiếp (COM) 57
2.2 IC MAX232 58
3 KHỐI VI ĐIỀU KHIỂN 58
3.1.Mạch tạo dao động 59
3.2 Mạch reset 60
Hình 3.7 Sơ đồ mạch reset của 8051 60
4 KHỐI QUÉT LED MA TRẬN 8x8 60
Hình 3.8 Sơ đồ khối quét led matrix 60
4.1 IC 74HC595 61
4.2 LED MATRIX 8X8 62
4.2.1 Sơ đồ nguyên lý của ma trận led 8x8 62
Hình 3.10 Sơ đồ chân và hình ảnh thực tế của Led Matrix 8x8 62
4.2.2 Cách quét LED ma trận 8x8 62
5 KHỐI GIAO TIẾP LCD 63
5.1 Ý nghĩa các chân của LCD hiển thị ký tự 64
5.2 Nguyên tắc hiển thị ký tự trên LCD 64
6 KHỐI ADC0804 65
7 KHỐI HIỂN THỊ THỜI GIAN THỰC 69
8 KHỐI NGẮT HỒNG NGOẠI 70
8.1 OPTO 71
8.2 LM358 71
9 KHỐI QUÉT LED 7 ĐOẠN 72
Hình 3.21 Hình ảnh thực tế của led quét 4 72
Hình 3.22 Sơ đồ chân của led quet 4 73
10 KHỐI QUÉT LED ĐƠN 74
Hình 3.23 Sơ đồ khối quét led đơn 74
11 KHỐI GHÉP NỐI MA TRẬN PHÍM 4x4 75
Trang 15Hình 3.24 Khối ghép nối ma trận phím 4x4 75
12 KHỐI ĐIỀU KHIỂN ĐỘNG CƠ 1 CHIỀU 76
Hình 3.25 Sơ đồ khối điều khiển động cơ một chiều 76
Hình 3.26 Sơ đồ mạch cầu H 77
13 KHỐI NẠP CHƯƠNG TRÌNH THEO CHUẨN ISP 77
Hình 3.27 Sơ đồ khối nạp chương trình theo chuẩn ISP 77
14 MẠCH NẠP CHO AT89S52 DÙNG ATMEGA8 (USB TO COM) 78
Hình 3.28 Sơ đồ mạch nạp chương trình dùng ATMEGA8 78
Hình 3.29 Sơ đồ chân ATMEGA8 80
Hình 3.30 Hình ảnh của ATMEGA8 80
CHƯƠNG II THIẾT KẾ MÔ HÌNH BỘ KIT THỰC HÀNH VĐK 81
1 YÊU CẦU: 81
2 SƠ ĐỒ NGUYÊN LÝ 81
Hình 3.31 Sơ đồ mạch nguyên lý 81
CHƯƠNG III: CÁC VÍ DỤ MINH HỌA CHO CÁC MODUL82 1 LẬP TRÌNH GHÉP NỐI KHỐI QUÉT LED ĐƠN 82
3 LẬP TRÌNH GHÉP NỐI MODUL LED 7 ĐOẠN VÀ BỘ ĐẾM HỒNG NGOẠI 85
4 LẬP TRÌNH QUÉT LED MATRIX 88
5 LẬP TRÌNH BỘ BIẾN ĐỔI ADC VÀ HIỂN THỊ LED 7 THANH 92
PHẦN IV KẾT LUẬN 96
3.1 ƯU ĐIỂM CỦA MẠCH 96
3.2 NHƯỢC ĐIỂM 96
3.3 HƯỚNG CẢI THIÊN 96
TÀI LIÊU THAM KHẢO 97
Trang 16LỜI NÓI ĐẦU
Ngày nay kĩ thuật vi điều khiển đã trở nên quen thuộc trong các ngành kỹthuật và trong dân dụng Từ các dây truyền sản xuất lớn đến các thiết bị gia dụngchúng ta đều thấy sự hiện diện của vi điều khiển ( VĐK ) Các bộ VĐK có khả năng
xử lý nhiều hoạt động phức tạp mà chỉ cần một chip vi mạch nhỏ, nó đã thay thế các
tủ điều khiển lớn và phức tạp bằng những mạch điện gọn nhẹ, dễ dàng thao tác sửdụng VĐK không những góp phần vào kỹ thuật điều khiển mà còn góp phần to lớnvào phát triển thông tin Đó là sự ra đời của hàng loạt thiết bị viễn thông và truyềnhình hiện đại, đặc biệt sự ra đời của mạng internet – góp phần đưa con người lênđỉnh cao của nền văn minh nhân loại
Chính vì các lí do trên, việc tìm hiểu khảo sát VĐK là điều mà các sinh viênngành điện tử chúng em hết sức quan tâm Các bộ điều khiển sử dụng VĐK tuyđơn giản nhưng để vận hành và sử dụng được lại là một điều rất phức tạp Phầncông việc sử lý chính vẫn là con người đó chính là chương trình hay phần mềm.Tuy chúng ta thấy các máy tính ngày nay cực kỳ thông minh, giải quyết các bài toánphức tạp trong vài phần triệu giây nhưng đó cũng đều là dựa trên sự hiểu biết củacon người Nếu không có sự tham gia của con người thì hệ thống VĐK cũng chỉ làmột vật vô tri Do vậy khi nói đến VĐK cũng như máy tính bao gồm phần cứng vàphần mềm
Các bộ VĐK theo thời gian cũng phát triển rất nhanh cùng với công nghệ bándẫn, từ các bộ VĐK 4 bit đơn giản tới các bộ VĐK 32 bit Bộ VĐK 8 bit là cơ sở đểchúng ta tìm hiểu và sử dụng các bộ VĐK tối tân hơn, đây chính là bước đầu tiên đểchúng ta tìm hiểu sâu vào lĩnh vực này
Để tìm hiểu bộ VĐK một cách khoa học và mang lại hiệu quả cao làm nềntảng cho việc xâm nhập công nghệ tối tân hơn Việc trang bị những kiến thức vềVĐK cho sinh viên là hết sức cần thiết Xuất phát từ thực tế này em đã quyết định
thực hiện đề tài “ Thiết kế bộ KIT thực hành vi điều khiển 8051”.
Trang 17Đề tài của em gồm 4 phần:
Phần I: GIỚI THIỆU CHUNG.
Phần II: TỔNG QUAN VỀ HỌ CỦA VI ĐIỀU KHIỂN HỌ 8051 VÀ
Em xin chân thành cảm ơn Thầy Cô!
Giáo viên hướng dẫn: Sinh viên thực hiện:Ths Nguyễn Viết Tuyến Trần Đức Minh
Hà nội, ngày 15 tháng 06 năm 2012
Trang 18PHẦN I: GIỚI THIÊU CHUNG
1.1 GIỚI THIÊU CHUNG VỀ VI ĐIỀU KHIỂN
Năm 1976, hãng Intel giới thiệu bộ vi điều khiển 8748 – mở đầu cho họ viđiều khiển MCS-48 8748 là một vi mạch chứa hơn 17.00 transistor bao gồm mộtCPU, 1kbyte bộ nhớ EPROM, 64B RAM, một bộ đếm/định thời 8 bit và 27 chânvào/ra 8748 và các vi điều khiển tiếp theo của nó trong họ MCS-48 đã được sửdụng phổ biến trong các ứng dụng hướng điều khiển máy giặt, ô tô, các thiết bịngoại vi của máy tính… Sau 8748, các bộ vi điều khiển mới liên tục được cáchãng sản xuất như Intel, Atmel, Siemens … giới thiệu cho các ứng dụng củachúng
Vi điều khiển (MCU – viết tắt của cụm từ ‘Micro Control Unit’) có thểđược coi như một máy tính thu nhỏ trên một chip, nó có thể hoạt động với một vàilinh kiện phụ trợ ở bên ngoài Vi điều khiển có những đặc điểm sau:
- Về cấu trúc : Vi điều khiển là một chip có chứa CPU, bộ nhớ, mạch vào/ra và các mạch đặc biệt khác như bộ đếm/định thời, mạch biến đổi A/D, D/A
- Về ứng dụng : Vi điều khiển được dùng trong những ứng dụng điều khiển
- Về tập lệnh : Vi điều khiển chủ yếu là những tập lệnh vào/ra đơn giản và các lệnh xử lý bit
- Về bộ nhớ : Vi điều khiển thì chương trình được chứa trong ROM vì chúnglà chương trình điều khiển ứng dụng, hầu như không thay đổi nội dung còn RAM được dùng để chứa số liệu tạm thời cho chương trình như trạng thái của các chân vào/ra, nội dung các biến được khai báo trong chương trình Điều này chứng tỏ ROM có bộ nhớ lớn gấp nhiều lần RAM
1.2 GIỚI THIÊU MỘT SỐ HỌ VI ĐIỀU KHIỂN THÔNG DỤNG
1.2.1 Vi điều khiển của Atmel
Atmel là một hãng cung cấp vi điều khiển lớn, sản phẩm vi điều khiển của Atmel gồm:
Trang 19- Dòng vi điều khiển dựa trên kiến trúc 8051 của Intel như 83xx, 87xx,
89xx…
- Dòng vi điều khiển AT91CAP như AT91CAP7S250A, AT91CAP7S450A…với tần số hoạt động từ 80 đến 200MHz, 2 đến 4 kênh PWM, 10 kênh ADC
10 bit, ghép nối được với module SDRAM ngoài
- Dòng vi điều khiển AT91SAM 32-bit ARM-based với bộ nhớ chương trình
có thể tới 2MB, tần số hoạt động đến 240MHz
- Dòng AVR 8-bit kiến trúc RISC như AT90PWM1, ATmega128,
ATmega16, ATmega32…
- Dòng AVR32 32-bit, MCU/DSP như AVR 32 UC3A, AVR 32 UC3B… là những bộ vi điều khiển 32 bit có thêm các lệnh xử lý tín hiệu số để xử lý âm thanh, hình ảnh
- Dòng FPSLIC như AT94K05L, AT94K10L, ATFS40… Đây là sự kết hợp
vi điều khiển AVR với mảng cổng logic lập trình FPGA trên một chíp rất phù hợp để tạo ra các hệ thống số trên một chíp duy nhất
- Dòng vi điểu khiển 4 bit cho các ứng dụng đơn giản MARC4 như
ATAM510, ATAR940…
1.2.2 Vi điều khiển của Microchip
- Dòng 8 bit như PIC10, PIC12, PIC14, PIC16, PIC18 với bộ nhớ kiểu Flash, OTP, ROM hoặc ROMless dung lượng từ 0,5 đên 256 kbyte
- Dòng 16 bit như PIC24F, PIC24H
- Dòng xử lý tín hiệu số 16 bit như dsPIC30Fxxxx, dsPIC33FJxxxx
1.2.3 Vi điều khiển của Cypress
Cypress nổi tiếng với dòng sản phẩm PSoC, đây là những vi mạch có tích hợp vi điều khiển, các linh kiện tương tự (các bộ khuếch đại, các bộ biến đổi A/D, D/A, các bộ lọc, các bộ so sánh…) và các linh kiện số (bộ định thời, bộ đếm, bộ tạoxung PWM, SPI, UART,T2C…) trên một chip duy nhất Việc tích hợp hàng trăm khối chức năng cùng với một bộ vi điều khiển trên một chip cho phép giảm thời
Trang 20gian thiết kế, thu gọn kích thước sản phẩm, giảm công suất tiêu thụ và giá thành sảnphẩm.
1.2.4 Vi điều khiển của Hitachi
H8 là dòng vi điều khiển được phát triển bởi Hitachi, được sản xuất bởi Rcnesas Tchnology H8 gồm các dòng sản phẩm H8/300, H8/300H, H8/500, H8S (vi điều khiển 16 bit) và H8SX (vi điều khiển 32 bit kiểu CISC) Các vi điều khiển
họ H8 được sử dụng rộng rãi trong các sản phẩm dân dụng và công nghiệp như tivi,đầu ghi DVD, camera, PLC, biến tần…
1.2.5 Vi điều khiển của Motorola
Motorola sản xuất dòng vi điều khiển 68xx như 6801, 6805, 6809, 6811… Một sản phẩm tiêu biểu của Motorola là 68HC11, đây là một bộ vi điều khiển 8 bit; 16bit địa chỉ; tập lệnh tương thích với các phiên bản trước như 6801, 6805,6809; cótích hợp bộ biến đổi A/D, bộ tạo xung PWM, cổng truyền đồng bộ/không đồng bộ RS232, SPI
1.2.6 Vi điều khiển của Maxim
Các sản phẩm vi điều khiển do Maxim cung cấp gồm:
- Vi điều khiển MAXQ 16 bit kiến trúc RISC như MAXQ3212,
MAXQ2000
- Các sản phẩm dựa trên kiến trúc 8051 của Intel như vi điều khiển tích hợp đồng hồ thời gian thực DS87C530, vi điều khiển tích hợp bộ biến đổiA/D 10 bit DS80HC11, vi điều khiển tích hợp giao tiếp mạng Ethernet DS80C400, DS80C430 (rất phù hợp thiết kế IP camera, các trạm đo/điều khiển phân tán AM như DS5250, DS2250, DS2252…)
Trang 21PHẦN II: TỔNG QUAN VỀ HỌ CỦA VI ĐIỀU KHIỂN HỌ
8051 VÀ AT89S52
2.1 GIỚI THIÊU CHUNG VỀ HỌ 8051
Năm 1981 hãng Atmel giới thiệu bộ vi điều khiển 8051 Bộ vi điều khiển(VĐK) này có 128 byte RAM, 4 byte ROM, hai bộ định thời, một cổng nối tiếp vàbốn cổng vào/ra song song ( độ rộng 8 bit ) tất cả đều được đặt trên 1 chip 8051 là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 sẽ được chia ra thành các dữ liệu 8 bit để xử lý
8051 đã trở nên phổ biến 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 tốc độ và dung lượng ROM trên chip khác nhau, nhưng tất cả các lệnh đềuphải tương thích với 8051 ban đầu Như vậy nếu ta viết chương trình cho một phiênbản của 8051 thì cũng chạy được với mọi phiên bản khác không phụ thuộc vào hãngsản xuất
8051 có 2 thành viên khác trong họ đó là:
- Bộ vi điều khiển 8052
- Bộ vi điều khiển 8031
8051 có 2 phiên bản sau:
- Bộ vi điều khiển 8751
- Bộ vi điều khiển AT8951 từ Atmel Corporation
Trang 22Vi điều khiển Vùng mã lệnh nội Vùng dữ liệu nội Số Timer
Bảng 2.1 Giới thiệu một số IC họ 8051 2.1.1 Cấu trúc bus
Bus địa chỉ của họ vi điều khiển 8051 gồm 16 đường tín hiệu (thường gọi làbus địa chỉ 16 bit) với lượng bit địa chỉ như vậy, không gian nhớ của nó có thể mởrộng tối đa đến 2^16 = 65536 địa chỉ tương đương 64K
Bus dữ liệu của họ 8051 gồm 8 đường tín hiệu (thường gọi là dữ liệu 8 bit),
đó là lí do vì sao nói 8051 là họ vi điều khiển 8 bit Với độ rộng của bus dữ liệu nhưvậy, các chip họ 8051 có thể xử lí được các toán hạng 8 bit trong 1 chu kì lệnh
2.1.2 Bộ nhớ chương trình
Vi điều khiển họ 8051 có không gian nhớ là 64K địa chỉ, đó cũng là bộ nhớchương trình lớn nhất mà mỗi chip thuộc họ này có được Bộ nhớ chương trình củacác chip thuộc họ 8051 có thể thuộc loại ROM, EPROM, Flash, hoặc không có bộnhớ chương trình bên trong chip, tên của chip thể hiện bộ nhớ chương trình mà nóchứa bên trong
2.1.3 Bộ nhớ dữ liệu
Bộ nhớ SRAM được tích hợp bên trong mọi chip thuộc họ này, có dunglượng khác nhau tùy loại chip nhưng thường thì chỉ khoảng vài trăm byte Đâychính là nơi chứa các biến trung gian trong quá trình hoạt động của chip Khi mấtđiện do bản chất của SRAM mà các giá trị này cũng mất theo Bên cạnh bộ nhớ
Trang 23loại SRAM thì một số chip thuộc họ 8051 còn có thêm bộ nhớ EEPROM với dunglượng tối đa vài Kbyte tùy từng loại chip cụ thể.
2.2 GIỚI THIÊU TỔNG QUAN VỀ AT89S52
AT89S52 là một thành viên của họ 8051 Nó là một bộ VĐK thông dụng, giá
rẻ, có khá nhiều chức năng hay, đặc biệt là có tích hợp sẵn bộ nạp ISP trên chipgiúp người sử dụng có thể dễ dàng thực hiện các bài thí nghiệm với chi phí rất thấp.AT89S52 có 8 kbyte Flash ROM trên chip, khi chân /EA ( chân số 31) đặt ởmức logic cao (+5v) thì VĐK sẽ thực hiện chương trình bộ nhớ trong Khi /EA đặt
ở mức logic thấp (0v) thì VĐK thực hiện chương trình ở bộ nhớ ngoài, AT89S52 có
256 bytes RAM nội, 32 bytes thấp của bộ nhớ nội dùng cho các thanh ghi, 128 bit
có chứa các byte định địa chỉ theo bit từ 20H đến 2FH
AT89S52 có chứa 3 bộ đếm /định thời (timer/counter) 16 bit được dùng choviệc định thời hoặc đếm sự kiện
AT89S52 chứa 1 port nối tiếp phục vụ cho việc trao đổi thông tin với các thiết
bị có khả năng giao tiếp nối tiếp như máy tính( qua cổng COM)…
AT89S52 có chứa 6 nguồn ngắt, 2 mức ưu tiên,1 bộ giao động trên chip, nóthường được nối với bộ giao động thạch anh có tần số lớn nhất là 33MHz, thôngthường là 12 MHz
AT89S52 dùng nguồn một chiều có dải điện áp từ 4v – 5.5 v được cấp quachân 40, chân 20 nối mát
Trang 242.2.1 Sơ đồ khối và chức năng các khối của họ 8051
Hình 2.1 Sơ đồ khối của họ 8051
Bộ vi điều khiển AT89S52 gồm các khối chức năng sau đây:
+ CPU( Central Processing unit ) bao gồm:
- Thanh ghi tích lũy A
- Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia
- Đơn vị logic học ALU( Arithmetic Logical Unit)
- Thanh ghi từ trạng thái chương trình ( PSW: Program Sttatus Worl)
- Bốn băng thanh ghi
- Con trỏ ngăn xếp
+ Bộ nhớ chương trình( bộ nhớ ROM) gồm 8 Kb Flash.
+ Bộ nhớ dữ liệu ( Bộ nhớ RAM ) gồm 256 Bytes.
Trang 25Bộ UART ( Universal Ansynchrous Receiver and Transmitter) có chức năng truyền nhận nối tiếp, AT89S52 có thể giao tiếp với cổng nối tiếp của máy tính thông qua bộ UART.
+ Ba bộ timer/count 16 bit: thực hiện các chức năng định thời và đếm sự
kiện
+ WDM ( Watch Dog Timer ) : được dùng để phục hồi lại hoạt động của CPU
khi nó bị treo bởi một nguyên nhân nào đó
+ Khối điều khiển ngắt : với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong.
+ Bộ lập trình ( ghi chương trình lên flash ROM ): cho phép người sử dụng
có thể nạp chương trình cho chip mà không cần bộ nạp chuyên dụng
+ Bộ chia tần: với hệ số chia là 12.
+ Bốn cổng xuất nhập: với 32 chân.
Trang 262.2.2 Sơ đồ chân và chức năng các chân của họ 8051
Hình 2.2 Sơ đồ chân của họ 8051 2.2.3 Sơ đồ cấu trúc AT89S52
Trung tâm của 89S52 vẫn là vi xử lý trung tâm (CPU) Để kích thích chotoàn bộ hệ thống hoạt động, 89S52 có bộ tạo dao động nội với thạch anh đượcghép từ bên ngoài với tần số khoảng từ vài Mhz đến 24 Mhz Liên kết các phần tửvới nhau là hệ thống BUS nội, gồm có BUS dữ liệu, BUS địa chỉ và BUS điềukhiển 89S52 có 8K ROM, 256 bytes RAM và một số thanh ghi bộ nhớ… Nó giaotiếp với bên ngoài qua 3 cổng song song và một cổng nối tiếp có thể thu, phát dữ
Trang 27liệu nối tiếp với tốc độ lập trình được Hai bộ định thời 16 bit của 89S52 còn có 2ngắt ngoài cho phép nó đáp ứng và xử lý điều kiện bên ngoài theo cách ngắtquãng, rất hiệu quả trong các ứng dụng điều khiển Thông qua các chân điều khiểnvà các cổng song song 89S52 có thể mở rộng bộ nhớ ngoài lên đến 64Kb dữ liệu.Sau đây là sơ đồ khối Vi điều khiển họ 89S52:
Hình 2.3 Sơ đồ khối Vi điều khiển họ 89S52
2.3 SƠ LƯỢC VỀ CÁC CHÂN IC 89S52
IC 89S52 có 40 chân Có đến 32 chân làm nhiệm vụ xuất nhập, truyền dữ liệu Các chân phục vụ ngắt, các chân Timer, trong đó 24 chân làm 2 nhiệm vụ khácnhau Mỗi chân có thể là đường xuất nhập, đường điều khiển
hoặc là một phần của địa chỉ hay dữ liệu Thiết kế thường có bộ nhớ ngoài hay cácthiết bị ngoại vi sử dụng những Port để xuất nhập dữ liệu Tám đường trong mỗiPort được sử dụng như một đơn vị giao tiếp song song như máy in, bộ biến đổitương tự số… Hoặc mỗi đường cũng có thể hoạt động độc lập trong giao tiếp vớicác thiết bị đơn bit khác như: transistor, LED, switch…
Sau đây là hình dạng sơ đồ của IC 89S52:
Trang 28Hình 2.4 Hình dạng sơ đồ IC 89S52 2.4 CHỨC NĂNG CÁC CHÂN IC 89S52
Sau đây là phần giới thiệu chức năng các chân, các Port tương ứng, chânPSEN, chân ALE, chân RESET…
2.4.1 Port 0 :
Port 0 là cổng song song dùng cho 2 mục đích, nó là các chân từ 32 Trongnhững thiết kế nhỏ nó được dùng trong các cổng xuất nhập bình thường Ở nhữngthiết kế có sử dụng bộ nhớ ngoài, nó vừa là Bus dữ liệu vừa là bytes thấp của Busđịa chỉ Nó còn được dùng chứa những bytes mã khi nạp ROM nội
Trang 29Hình 2.5 Cấu trúc Port 0 2.4.2 Port 1:
Port 1 dành cho cổng xuất nhập và chỉ dành cho mục đích này mà thôi Nódùng để giao tiếp với các thiết bị ngoại vi theo từng bit hoặc bytes Port 1 chiếmcác chân từ 1 đến 8
Hình 2.6 Cấu trúc Port 1
Trang 302.4.3 Port 2:
Port 2 (chân 21÷ 28) là Port có 2 chức năng Ngoài mục đích dành cho xuấtnhập thông thường nó còn dùng làm bytes cao cho các địa chỉ bộ nhớ ngoài
Hình 2.7 Cấu trúc Port 2 2.4.4 Port 3( P3.0-P3.7) :
Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng
cụ thể như sau:
Hình 2.8 Cấu trúc Port 3
Trang 31Bảng 2.2 Chức năng các chân của Port3
Chức năng
Dữ liệu nhận cho Port nối tiếp
Dữ liệu truyền cho Port nối tiếp
Ngắt bên ngoài 0
Ngắt bên ngoài 1
Ngõ vào của Timer/count 0
Ngõ vào của Timer/count 1
Xung ghi bộ nhớ dữ liệu ngoài
Xung đọc bộ nhớ dữ liệu ngoài
2.4.5 Chân /PSEN( Program Store Enable)
Chân/PSEN là chân điều khiển đọc chương trình bộ nhớ ngoài, nó được nối vớichân /OE để cho phép đọc các byte mã lệnh trên ROM ngoài /PSEN sẽ ở mức thấptrong thời gian đọc mã lệnh Mã lệnh được đọc từ bộ nhớ ngoài qua bus dữ liệu(Port 0) thanh ghi lệnh để được giải mã
Khi thực hiện chương trình trong ROM nội thi /PSEN ở mức cao
2.4.6 Chân ALE ( Address Latch Enable)
ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động của
vi điều khiển Tín hiệu ALE được dùng để cho phép vi mạch chốt bên ngoài như
74373, 74573 chốt byte địa chỉ thấp ra khỏi bus đa hợp địa chỉ /dữ liệu( Port0)
Trang 322.4.7 Chân /EA( External Access)
Tín hiệu /AE 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 /AE ở mức cao( nối với Vcc) thì vi điều khiển thi hành trong ROMnội Nếu /AE ở mức thấp( nối với GND ) thì vi điều khiển thực hiện chương trình từbộ nhớ ngoài
2.4.8 RST( Reset)
Ngõ vào RST trên chân 9 là ngõ reset của 8051 Khi tín hiệu này được đưa lênmức cao ( trong ít nhất 2 chu kì máy) , các thanh ghi trong bộ vi điều khiển được tảinhững giá trị thích hợp để khởi động hệ thống
AT89S52 có 3 bộ định thời 16 bit trong đó hai bộ Timer 0,Timer 1 có 4 chếđộ hoạt động Timer 2 có 3 chế độ hoạt động Các bộ định thời dùng để địnhkhoảng thời gian(hẹn giờ), đếm sự kiện xảy ra bên ngoài bộ vi điều khiển hoặc tạotốc độ baud cho cổng nối tiếp
Trong các ứng dụng định khoảng thời gian, Timer được lập trình sao cho sẽtràn sau một khoảng thời gian và thiết lập cờ tràn bằng 1 Cờ tràn được sử dụng bởi
Trang 33chương trình để thực hiện một hành động tương ứng như kiểm tra trạng thái của cácngõ vào hoặc gửi các sự kiện ra các ngõ ra.
Đếm sự kiện dùng để xác định số lần xảy ra của một sự kiện Trong ứng dụngnày người ta tìm cách quy các sự kiện thành sự chuyển mức từ 1 xuống 0 trên cácchân T0 hoặc T1 hoặc T2 để dùng các Timer tương ứng đếm các sự kiện đó
2.5.2 Các thanh ghi của bộ định thời
2.5.2.1 Các thanh ghi của Timer0, Timer1
- Thanh ghi chế độ định thời (TMOD)
Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho Timer0 và Timer1
11
0
Mô tả
Bit mở cổng cho timer 1
Bit chọn chế độ Counter/Timer 1
1=bộ đếm sự kiện
0=bộ định khoảng thời gian
Bit 1 chọn chế độ của Timer1
Bit 0 chọn chế độ của Timer1
00: Chế độ 0- Timer 13bit
01: Chế độ 1-Timer 16bit
10: Chế độ 2- 8 bit tự động nạp lại
11: Chế độ 3-tách timer
Bit mở cổng timer 0,khi được đặt bằng 1 thì Timer0 chỉ chạy khi chân INT0 ở mức cao
Trang 34Bit chọn chế độ counter/timer của Timer0.
Bit 1 chọn chế độ của Timer0
Bit 0 chọn chế độ của Timer0
TMOD không có bit định vị, nó thường load một lần bởi phần mềm ở đầuchương trình để khởi động mode Timer Sau đó sự định giờ có thể dừng lại, đượckhởi động lại như thế bởi truy xuất của các thanh ghi chức năng đặc biệt của Timerkhác
- Thanh ghi điều khiển Timer (TCON)
TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0
TCON.7 TF1 Cờ báo tràn của Timer1, được đặt bởi phần cứng khi
có tràn,được xóa bởi phần cứng hoặc mềm khi bộ
xử lí chỉ đến chương trình ngắtTCON.6 TR1 Bít diều khiển Timer hoạt động
TCON.4 TR0 Bít điều khiển Timer 0 hoạt động
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển Timer0 và Timer1.Bốn bit cao trong TCON (TCON.4-TCON.7) được dùng để điều khiển các bộđịnh thời hoạt động hoặc ngưng(TR0,TR1) hoặc để báo các bộ định thờitràn(TF0,TF1)
Trang 35Bốn bit thấp của TCON (TCON.0-TCON.3) không dùng để điều khiển các bộđịnh thời, chúng được dùng để phát hiện và khởi động các ngắt ngoài.
- Các thanh ghi chứa giá trị của các bộ định thời
Các Timer0 và Timer1 đều là các Timer 16 bit, mỗi Timer có thanh ghi 8 bitdùng để chứa giá trị khởi tạo hoặc giá trị hiện thời của các Timer
Timer 0
TH0(8bits) TH0(8bits) Timer 1
TH1(8bits) TL1(8bits)
2.5.2.2 Các thanh ghi của Timer2
Thanh ghi T2CON:
T2CON.4
T2CON.3
T2CON.2
T2CON.1
T2CON.0
2
T2CON.7 TF2 CFH Cờ báo tràn của Timer 2, được đặt khi tràn và
xóa bằng phần mềm, không được thiết lập khiTCLK hoặc RCLK được đặt bằng 1
T2CON.6 EXF2 CEH Cờ ngắt ngoài của Timer2, được xóa bởi phần
mềm
Trang 36T2CON.5 RCLK CDH Bit chọn Timer cung cấp xung nhịp cho đường
nhận của cổng nối tiếp
T2CON.4 TCLK CCH Bit chọn Timer cung cấp xung nhịp cho đường
truyền của cổng nối tiếp
T2CON.3 EXEN2 CBH Bit điều khiển hoạt động của Timer2
T2CON.2 TR2 CAH Bit điều khiển hoạt động của Timer2
T2CON.1 C/#T2 C9H Bit chọn chế độ đếm hoặc định thời của
Timer2T2CON.0 CP/#RL2 C8H Bit chọn chế độ thu nhận hay nạp lại của
Timer2
Thanh ghi T2MOD:
T2MOD có địa chỉ 0C9H, thanh ghi này không định địa chỉ bit
Thanh ghi TH2 và TL2,RCAP2H và RCAP2L:
Cũng giống như TH0, 1 và TL0, 1, TH2 và TL2 chứa giá trị đếm của Timer
2, tuy nhiên khác nhau là Timer 0,1 có thể dung THx để chứa giá trị nạp lại còn Timer 2 dùng RCAP2H và RCAP2L để chứa giá trị cần nạp lại
Trang 37Chế độ 0 là chế độ định thời 13bit, chế độ này tương thích với các bộ vi điềukhiển trước đó, trong các ứng dụng hiện nay chế độ này không còn thích hợp.
Hình 2.9 Hoạt động của Timer0 và Timer1 ở chế độ 0
Chế độ 1
Trong chế độ 1,bộ Timer dùng cả hai thanh ghi TH và TL để chứa giá trị đếm,
vì vậy chế độ này còn được gọi là chế độ định thời 16bit Bit MSB sẽ là bit D7 của
TH còn bit LSB là D0 của TL
Hình 2.10 Hoạt động của Timer0 và Timer1 ở chế độ 1
Trang 38Hình 2.10 mô tả hoạt động của các Timer ở chế độ 1: Nguồn xung clockđược đưa tới Timer từ một trong cách phụ thuộc vào bit C/#T trong thanh ghiTMOD.
+ Nếu C/#T=1, xung clock sẽ được lấy từ bên ngoài qua chân Tx(T0,T1,T2) + Nếu C/#T=0, xung clock sẽ được lấy từ bộ chia tần trong chip,tần số củaxung ở đây là 1/12 tần số của dao động thạch anh
Nguồn xung clock trên sẽ được điều khiển để đưa tới các Timer bằng các bit:TR,GATE và mức logic trên các chân INTx
+ Nếu TRx=0, các Timer sẽ bị cấm mà không cần quan tâm tới GATE vàmức logic trên các chân INTx ( thể hiện bằng cổng “AND”)
+ Nếu TRx=1, các Timer sẽ hoạt động khi hoặc là bit GATE=0 hoặc là bitGATE=1 và trên chân /INTx có mức logic 1
Với chế độ 1, giá trị lớn nhất mà các Timer chứa được là 65535, khi đếm quágiá trị này sẽ xảy ra tràn, khi cờ tràn TF sẽ được đặt =1 Sau khi xảy ra tràn, nếumuốn Timer tiếp tục đếm, chương trình phải có câu lệnh nạp lại giá trị khởi tạo saukhi đã dừng Timer bằng cách xóa bit TR
Trang 39 Chế độ 2
Hình 2.11 Hoạt động của Timer0 và Timer1 ở chế độ 2
Trong chế độ 2, bộ Timer dùng TL để chứa giá trị đếm và TH để chứa giá trịnạp lại vì vậy chế độ này được gọi là chế độ tự nạp lại 8 bit Sau khi đếm quá 255 sẽxảy ra tràn,khi đó TF được đặt bằng 1 đồng thời giá trị của Timer tự động được nạplại bằng nội dung của TH
Với nguồn xung clock,cách điều khiển Timer ở chế độ 2 hoàn toàn giống chếđộ 1
Chế độ 3
Hình 2.12 Hoạt động của Timer0 ở chế độ 3
Trong chế độ 3, Timer0 được tách thành hai bộ Timer hoạt động độc lập, chếđộ này sẽ cung cấp cho bộ vi điều khiển thêm bộ Timer nữa
Bộ Timer thứ nhất với nguồn xung clock được lấy từ bộ chia tần trên chiphoặc từ bộ tạo xung bên ngoài qua chân T0 tùy thuộc vào giá trị của bit C-/T0 Việc
Trang 40điều khiển hoạt động của bộ thứ nhất do bit GATE, bit TR0 và mức logic trên chânINT0 ( giống chế độ 0,1,2 ).
Giá trị đếm của Timer được chứa trong TL0, khi xảy ra tràn, cờ TF0=1 và gây
ra ngắt do Timer0 (nếu được đặt)
Bộ Timer thứ hai với nguồn xung clock được lấy từ bộ chia tần trên chip.Việc điều khiển hoạt động của bộ thứ hai chỉ là việc đặt giá trị của bit TR0 Giá trịđếm của Timer được chứa trong TH0, khi xảy ra tràn, cờ TF1=1 và gây ra ngắt doTimer1(nếu được đặt)
Khi Timer0 được tách thành hai Timer 8 bit thì Timer1 vẫn có thể hoạt độngbình thường ở các chế độ 0,1,2, tuy nhiên khi xảy ra tràn cờ TF1 không được thiếtlập bằng 1 Như vậy trong trường hợp này Timer1 chỉ có thể sử dụng cho các ứngdụng không cần đến ngắt(TF1=1), chẳng hạn như tạo tốc độ baud cho port nối tiếp
2.5.3.2 Các chế độ của Timer 2
Timer 2 có 3 chế độ hoạt động là chế độ thu nhận (Captuer), chế độ tự nạp lại(auto – reload) và chế độ cung cấp tốc độ baud cho cổng nối tiếp (Baud RateGenerator)
1110
16-bit Auto-reload: 16 bit tự nạp lại
16-bit Capture: 16bit thu nhậnBaud Capture: cung cấp tốc độ baud (off)
Bảng 2.3 Các chế độ hoạt động của timer 2