1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế bộ KIT thực hành vi điều khiển 8051

97 2,5K 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 97
Dung lượng 3,49 MB

Nội dung

Thiết kế bộ KIT thực hành vi điều khiển 8051

Trang 1

NHẬN XÉT CỦA HỘI ĐỒNG BẢO VỆ

Hà Nội, ngày… tháng … năm 2015

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Hà Nội, ngày… tháng … năm 2015

Trang 3

MỤ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 4

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 38

2.5.3.1 Các chế độ của Timer0 và Timer1 38

Hình 2.9 Hoạt động của Timer0 và Timer1 ở chế độ 0 38

2.5.3.2 Các chế độ của Timer 2 41

Bảng 2.3 Các chế độ hoạt động của timer 2 41

Hình 2.16 Sử dụng Timer 2 tạo tốc độ baud 44

Hình 2.17 Timer 2 trong chế độ tạo xung 45

2.6 NGẮT VÀ XỬ LÝ NGẮT 45

2.6.1 Giới thiệu 45

2.6.2 Tổ chức ngắt 46

Hình 2.18 Các nguồn ngắt của AT89S52 46

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 5

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

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 6

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 7

DANH 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 8

DANH 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 9

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 38

2.5.3.1 Các chế độ của Timer0 và Timer1 38

Hình 2.9 Hoạt động của Timer0 và Timer1 ở chế độ 0 38

2.5.3.2 Các chế độ của Timer 2 41

Bảng 2.3 Các chế độ hoạt động của timer 2 41

Hình 2.16 Sử dụng Timer 2 tạo tốc độ baud 44

Hình 2.17 Timer 2 trong chế độ tạo xung 45

2.6 NGẮT VÀ XỬ LÝ NGẮT 45

2.6.1 Giới thiệu 45

2.6.2 Tổ chức ngắt 46

Hình 2.18 Các nguồn ngắt của AT89S52 46

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 10

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

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 11

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 12

DANH 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 13

2.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 38

2.5.3.1 Các chế độ của Timer0 và Timer1 38

Hình 2.9 Hoạt động của Timer0 và Timer1 ở chế độ 0 38

2.5.3.2 Các chế độ của Timer 2 41

Bảng 2.3 Các chế độ hoạt động của timer 2 41

Hình 2.16 Sử dụng Timer 2 tạo tốc độ baud 44

Hình 2.17 Timer 2 trong chế độ tạo xung 45

2.6 NGẮT VÀ XỬ LÝ NGẮT 45

2.6.1 Giới thiệu 45

2.6.2 Tổ chức ngắt 46

Hình 2.18 Các nguồn ngắt của AT89S52 46

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 14

Hì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 15

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

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 16

LỜ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ụng chú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ớn và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ền hì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ên ngà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ần cô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án phứ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ủa con 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án dẫ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ền tả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:

Ths Nguyễn Viết Tuyến

Hà nội, ngày 15 tháng 06 năm 2015

Trang 18

PHẦ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ột CPU, 1kbyte bộ nhớ EPROM, 64B RAM, một bộ đếm/định thời 8 bit và 27 chân và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ác hãng sản xuất như Intel, Atmel, Siemens … giới thiệu cho các ứng dụng của chú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ài linh 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úng

là 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

- 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ạo xung 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 20

gian 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ản phẩ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 đổi A/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 21

PHẦ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 đều phả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ên bả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ãng sản xuất

Trang 22

Vi đ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ủa cá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ó dung lượng khác nhau tùy loại chip nhưng thường thì chỉ khoảng vài trăm byte Đây chí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 23

loại SRAM thì một số chip thuộc họ 8051 còn có thêm bộ nhớ EEPROM với dung lượ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 chip giú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 cho việ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ông thườ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 qua chân 40, chân 20 nối mát

Trang 24

2.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 25

Bộ 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 26

2.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 cho toàn bộ hệ thống hoạt động, 89S52 có bộ tạo dao động nội với thạch anh được ghé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ều khiển 89S52 có 8K ROM, 256 bytes RAM và một số thanh ghi bộ nhớ… Nó giao tiế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 27

liệ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ó 2 ngắt ngoài cho phép nó đáp ứng và xử lý điều kiện bên ngoài theo cách ngắt quã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ển

và 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ác nhau 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ác thiết bị ngoại vi sử dụng những Port để xuất nhập dữ liệu Tám đường trong mỗi Port được sử dụng như một đơn vị giao tiếp song song như máy in, bộ biến đổi tương tự số… Hoặc mỗi đường cũng có thể hoạt động độc lập trong giao tiếp với cá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 28

Hì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ân PSEN, 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 Trong những thiết kế nhỏ nó được dùng trong các cổng xuất nhập bình thường Ở những thiế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 29

Hì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ếm các chân từ 1 đến 8

Hình 2.6 Cấu trúc Port 1

Trang 30

2.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ất nhậ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 31

Bả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ới chân /OE để cho phép đọc các byte mã lệnh trên ROM ngoài /PSEN sẽ ở mức thấp trong 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 32

2.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 ROM nộ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ên mức cao ( trong ít nhất 2 chu kì máy) , 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

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 để định khoả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ạo tố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 33

chươ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ác ngõ 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ụng nà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ác châ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

Trang 34

TMOD không có bit định vị, nó thường load một lần bởi phần mềm ở đầu chương trình để khởi động mode Timer Sau đó sự định giờ có thể dừng lại, được khở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 Timer khá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

11

0

000

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

Bit chọn chế độ counter/timer của Timer0

Bit 1 chọn chế độ của Timer0

Bit 0 chọn chế độ của Timer0

Trang 35

Bit Kí hiệu Chức năng

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ắt

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ời tràn(TF0,TF1)

Bố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 bit dù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:

Trang 36

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 khi TCLK 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

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

Trang 37

 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 38

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

Trang 39

Hình 2.10 Hoạt động của Timer0 và Timer1 ở chế độ 1

Hì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 ghi TMOD

+ 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ủa xung ở đâ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à bit GATE=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ếu muố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 sau khi đã dừng Timer bằng cách xóa bit TR

Trang 40

 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ạp lạ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 chip hoặ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

Ngày đăng: 11/09/2015, 00:59

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w