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

Bài giảng Thí nghiệm Vi xử lý

137 22 0

Đ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 137
Dung lượng 4,38 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong lập trình cho vi điều khiển, hợp ngữ thường được sử dụng khi cần viết những chương trình có kích thước nhỏ, hoặc những đoạn chương trình đòi hỏi tốc độ thực thi nhanh, có thể tính

Trang 1

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG GIAO THÔNG VẬN TẢI

KHOA KỸ THUẬT ĐIỆN – ĐIỆN TỬ

Trang 2

LỜI MỞ ĐẦU

Trong việc dạy và học giữa các môn lý thuyết và thực hành nhằm phát triển và nâng cao tay nghề cho sinh viên tạo nền tảng vững chắc cho sinh viên sau khi tốt nghiệp Chính vì thế trải qua một thời gian đào tạo đúc kết kinh nghiệm dạy và học lý thuyết cơ sở cho môn học Vi Xử Lý quá trừu tượng thì môn học Thí Nghiệm Vi Xử

Lý sẽ giúp các em nắm vững hơn về cấu trúc các phần cứng và lập trình trên các hợp ngữ Assembler hoặc ngôn ngữ C trong phòng thí nghiệm

Trong lập trình cho vi điều khiển, hợp ngữ thường được sử dụng khi cần viết những chương trình có kích thước nhỏ, hoặc những đoạn chương trình đòi hỏi tốc độ thực thi nhanh, có thể tính toán chính xác thời gian thực thi

Với sự phát triển của công nghệ vi mạch, ngày càng nhiều các họ vi điều khiển khác nhau ra đời, với dung lượng bộ nhớ lớn Do đó, vấn đề tối ưu hóa kích thước chương trình trở nên không còn quá trong trọng Thay vào đó, người lập trình đòi hỏi phải có khả năng học lập trình cho một vi điều khiển mới một cách nhanh chóng, có khả năng viết các chương trình phức tạp, và những mã nguồn cũ có thể dễ dàng sử dụng lại cho các họ vi điều khiển mới

Ngôn ngữ C, với các đặc điểm như là ngôn ngữ có cấu trúc, có khả năng tương tác phần cứng cao, mềm dẻo và có cộng động sử dụng rộng lớn, là ngôn ngữ thích hợp để lập trình cho các vi điều khiển

Đây cũng là mục tiêu chính trong chương trình đào tạo được biên soạn của tập thể giảng viên khoa Điện – Điện Tử “ Học phải đi đôi với thực tiễn ” chính điều này sẽ tạo nên tay nghề vững chắc cho sinh viên khi tham gia học tập tại trường

Để đáp ứng được nhu cầu và tính cấp thiết của người học thì việc xây dựng một giáo trình phù hợp với chuyên ngành là việc cấp bách hiện nay khi mà chương trình được chuyển đổi sang cơ quan quản lý Bộ Lao Động Thương Binh Và Xã Hội với tổng thời gian thực hành chuyên môn cao nhằm rèn luyện tay nghề và đúc kết kinh nghiệm thực tế cho các em trước khi ra trường

Trang 3

TUYÊN BỐ BẢN QUYỀN: Error! Bookmark not defined

LỜI MỞ ĐẦU 0

Bài thí nghiệm số 1: 2

GIỚI THIỆU PHẦN MỀM MÔ PHỎNG PROTEUS 2

1.1 MỤC TIÊU 2

1.2 DỤNG VỤ, HỌC CỤ SỬ DỤNG 2

1.3 NỘI DUNG 2

1.3.1 CƠ SỞ LÝ THUYẾT 2

1.3.1.1 KHÁI QUÁT VỀ VI ĐIỀU KHIỂN 2

1.3.1.2 GIỚI THIỆU BỘ KIT THÍ NGHIỆM VI XỬ LÝ 3

A Các thành phần của mạch TNVXL: 4

B Các chương trình sử dụng trong thí nghiệm: 13

1.3.1.3 SƠ LƯỢC VỀ VI ĐIỀU KHIỂN 8 BIT, 16 BIT 15

A Giới thiệu vi điều khiển 8 bit AT89S52 có đặc điểm như sau: 15

B Giới thiệu vi điều khiển 16 bit PIC 16F877A có đặc điểm chính như sau: 17

1.3.1.4 PHẦN MỀM MÔ PHỎNG 22

A Phần mềm Proteus của hãng Labcenter Electronics hỗ trợ mô phỏng các mạch điện tử, đặc biệt là mô phỏng vi điều khiển 22

B Hướng Dẫn Sử Dụng Chương Trình Keil C Mô Phỏng Vi Điều Khiển 8 BIT 30

C Hướng dẫn sử dụng phần mềm biên dịch PIC C COMPILER mô phỏng vi điều khiển 16 BIT cho PIC 16F877A 41

Các bước tạo một Project trong PIC C Compiler 42

Chương trình nạp ( Pickit2 V2.61) 45

Nạp chương trình vào PIC dùng PICkit 2 Programmer 45

1.3.1.5 CHƯƠNG TRÌNH MẪU 47

Trang 4

1.3.3 BÀI TẬP THÍ NGHIỆM 49

Bài thí nghiệm số 2: 46

CÁC LỆNH CƠ BẢN CỦA 89S52 VÀ PIC 16F887A 46

1.1 MỤC TIÊU 46

1.2 DỤNG VỤ, HỌC CỤ SỬ DỤNG 46

1.3 NỘI DUNG 46

1.3.1 CƠ SỞ LÝ THUYẾT 46

1.3.1.1 CẤU TRÚC CÁC LỆNH CƠ BẢN TRONG VI ĐIỀU KHIỂN 8 BIT AT89S52 46

A Lệnh di chuyển dữ liệu MOV 46

B Lệnh xoay BIT 47

C Lệnh Logic 47

D Một số lệnh cơ bản khác 48

E Viết chương trình con tạo trễ 49

1.3.1.2 CẤU TRÚC CÁC LỆNH CƠ BẢN TRONG VI ĐIỀU KHIỂN 16 BIT PIC 16F877A 51

A Phân biệt cấu trúc lệnh SET PORT 51

B Viết chương trình điều khiển 8 led đơn 52

Bài tập mẫu: 53

1.3.1.3 NHỮNG SAI HỎNG THƯỜNG GẶP 54

1.3.2 TIẾN HÀNH THỰC HIỆN THÍ NGHIỆM 54

1.3.3 BÀI TẬP THÍ NGHIỆM 55

Bài thí nghiệm số 3: 57

ĐIỀU KHIỂN LED 7 ĐOẠN 57

1.1 MỤC TIÊU 57

1.2 DỤNG VỤ, HỌC CỤ SỬ DỤNG 57

1.3 NỘI DUNG 57

Trang 5

1.3.1.1.CẤU TRÚC VÀ MÃ HIỂN THỊ DỮ LIỆU TRÊN LED 7 ĐOẠN 57

1.3.1.2 PHÂN BIỆT PHƯƠNG PHÁP QUÉT VÀ CHỐT LED 7 ĐOẠN : 59

A Dùng phương pháp quét trên vi điều khiển 8 bit AT89S52 59

B Dùng phương pháp chốt trên vi điều khiển 8 bit AT89S52 60

1.3.1.3 LẬP TRÌNH CHO VI ĐIỀU KHIỂN 16 BIT PIC 16F887A 63

Bài tập mẫu: 63

1.3.1.4 NHỮNG SAI HỎNG THƯỜNG GẶP 64

1.3.2 TIẾN HÀNH THỰC HIỆN THÍ NGHIỆM 65

1.3.3 BÀI TẬP THÍ NGHIỆM 65

PHẦN 1: Lập trình cho vi điều khiển 8 bit AT89S52 65

PHẦN 2: Lập trình cho vi điều khiển 16 bit PIC 16F887A 65

Bài thí nghiệm số 4: 68

GIAO TIẾP THIẾT BỊ NGOẠI VI – LCD 68

1.1 MỤC TIÊU 68

1.2 DỤNG VỤ, HỌC CỤ SỬ DỤNG 68

1.3 NỘI DUNG 68

1.3.1 CƠ SỞ LÝ THUYẾT 68

1.3.1.1 GIỚI THIỆU LCD 68

1.3.1.2 SƠ ĐỒ NGUYÊN LÝ 70

1.3.1.3 LƯU ĐỒ GIẢI THUẬT HIỂN THỊ THÔNG TIN TRÊN 2 HÀNG 70

1.3.1.4 CÁC LỆNH ĐIỀU KHIỂN LCD 71

1.3.1.5 HÌNH DÁNG VÀ SƠ ĐỒ CHÂN LM335: 71

1.3.1.6 NHỮNG SAI HỎNG THƯỜNG GẶP 72

1.3.2 TIẾN HÀNH THỰC HIỆN THÍ NGHIỆM 72

1.3.3 BÀI TẬP THÍ NGHIỆM 73

Bài thí nghiệm số 5: 81

MẠCH ĐỊNH THỜI - TIMER 81

Trang 6

1.2 DỤNG VỤ, HỌC CỤ SỬ DỤNG 81

1.3 NỘI DUNG 81

1.3.1 CƠ SỞ LÝ THUYẾT 81

1.3.1.1 CẤU TRÚC LỆNH LIÊN QUAN ĐẾN TIMER 81

1.3.1.2 BÀI TẬP MẪU 83

1.3.1.3 NHỮNG SAI HỎNG THƯỜNG GẶP 86

Bài thí nghiệm số 6: 87

INTERRUPT – NGẮT 87

1.1 MỤC TIÊU 87

1.2 DỤNG VỤ, HỌC CỤ SỬ DỤNG 87

1.3 NỘI DUNG 87

1.3.1 CƠ SỞ LÝ THUYẾT 87

1.3.1.1 CÁC LỆNH ĐIỀU KHIỂN NGẮT 87

1.3.1.2 SƠ ĐỒ MẠCH ĐIỀU KHIỂN 88

1.3.1.3 CÁC BƯỚC CÔNG VIỆC 89

1.3.1.4 NHỮNG SAI HỎNG THƯỜNG GẶP 89

1.3.2 TIẾN HÀNH THỰC HIỆN THÍ NGHIỆM 89

1.3.3 BÀI TẬP THÍ NGHIỆM 89

Bài thí nghiệm số 7: 93

LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ 93

1.1 MỤC TIÊU 93

1.2 DỤNG VỤ, HỌC CỤ SỬ DỤNG 93

1.3 NỘI DUNG 93

1.3.1 CƠ SỞ LÝ THUYẾT 93

1.3.1.1 SƠ ĐỒ MẠCH HIỂN THỊ ĐỒNG HỒ DÙNG LCD 94

1.3.1.2 SƠ ĐỒ MẠCH HIỂN THỊ LỊCH VẠN NIÊN DÙNG LED 7 ĐOẠN 95

1.3.1.3 SƠ ĐỒ CHÂN: 96

Trang 7

1.3.1.4 NHỮNG SAI HỎNG THƯỜNG GẶP 99

1.3.2 TIẾN HÀNH THỰC HIỆN THÍ NGHIỆM 99

1.3.3 BÀI TẬP THÍ NGHIỆM 99

TÀI LIỆU THAM KHẢO 125

Trang 8

TỔ CHỨC TÀI LIỆU HƯỚNG DẪN

- Kit thí nghiệm vi xử lý là bộ thí nghiệm được thiết kế dựa trên họ vi điều khiển MCS-51, Pic, AVR Tài liệu hướng dẫn thí nghiệm này giúp người sử dụng tiếp cận với các kiến thức cơ bản về vi điều khiển 89S52, Pic 18F877A nhanh chóng hơn Tài liệu thí nghiệm bao gồm tài liệu hướng dẫn sử dụng kit thí nghiệm, các bài thí nghiệm, và một số mã nguồn để tham khảo

- Tài liệu hướng dẫn sẽ giới thiệu các thành phần của kit thí nghiệm, được tổ chức thành các phần như sau:

Lý thuyết cơ bản: Phần này sẽ tóm tắt sơ lược các kiến thức lý thuyết có

liên quan đến bài thí nghiệm

Thiết kế phần cứng: Nội dung của phần này sẽ giúp người sử dụng nắm

được chi tiết về sơ đồ và cách thức thiết kế phần cứng của kit thí nghiệm Người sử dụng cần hiểu rõ các nội dung được đề cập trong phần này Các thiết kế phần cứng này hoàn toàn có thể ứng dụng trong thực tế

Phần mềm giao tiếp: Phần này sẽ giúp người sử dụng nắm được các kỹ

thuật để xây dựng phần mềm đáp ứng yêu cầu của bài thí nghiệm Các nội dung được đề cập trong phần này cũng sẽ rất hữu dụng trong thực tế

- Mỗi bài thí nghiệm được tổ chức thành các phần như sau:

 Mục tiêu: Giúp người học nắm được mục tiêu cụ thể của bài thí nghiệm

 Yêu cầu: Phần này sẽ đưa ra yêu cầu cụ thể của bài thí nghiệm

 Hướng dẫn: phần này nêu một số hướng dẫn để SV có thể lập trình dễ

dàng hơn

 Kiểm tra: Giúp người sử dụng đáng giá mức độ đạt được các mục tiêu

của bài thí nghiệm, đồng thời gợi ý một số hiệu chỉnh nhằm làm phong phú

nội dung thí nghiệm

Chú ý: Người học cần xem trước nội dung thí nghiệm và chuẩn bị sẵn chương

trình tại nhà để có thể tận dụng tốt thời gian thí nghiệm Nếu phát hiện có sai sót hay thắc mắc, người học có thể báo trực tiếp giảng viên hướng dẫn hoặc email về địa chỉ nttlan@hcmct.edu.vn

Trang 9

- Cài đặt được phần mềm mô phỏng và thiết bị máy tính

- Phân tích được hoạt động của vi điều khiển 89S52 và PIC 16F877A

- Thiết kế được sơ đồ mạch trên phần mềm PROTEUS

- Sử dụng được phần mềm biên dịch cho vi điều khiển 89S52 và PIC 16F877A

- Board Kit thí nghiệm Vi Xử Lý

- Máy tính, phần mềm mô phỏng Proteus, Keil C

- Vi điều khiển 89S52 và PIC 16F877A

1.3.1 CƠ SỞ LÝ THUYẾT

1.3.1.1 KHÁI QUÁT VỀ VI ĐIỀU KHIỂN

- Vi điều khiển (Microcontroller_ thường được viết tắt là uC, MCU)

là một mạch tích hợp, bên trong được cấu tạo bởi các nhân xử lý, bộ nhớ

và có khả năng lập trình giao tiếp với thiết bị ngoại vi Các bộ vi điều khiển thường được sử dụng trong các sản phẩm, thiết bị điều khiển tự động, các hệ thống điều khiển từ xa, và các hệ thống nhúng

Trang 10

- Các thành phần cơ bản của vi điều khiển:

1.3.1.2 GIỚI THIỆU BỘ KIT THÍ NGHIỆM VI XỬ LÝ

Hình 1.2: BỘ THÍ NGHIỆM VI ĐIỀU KHIỂN ĐA NĂNG – DTVT03

Hình 1.1 Cấu trúc cơ bản một vi điều khiển PIC

Trang 11

A Các thành phần của mạch TNVXL:

- Module Microcontroller Unit: là đế gắn đưa ra nguồn có thể kết nối các loại chip: 89Sxx, AVR, PIC…

- J101: dùng liên kết mạch nạp cho Chip

- J106: Chọn tín hiệu Reset Chip

- Ở vị trí ATMEL 89: Thực hiện Reset chip Atmel 89Sxx

- Ở vị trí AVR/PIC: Thực hiện Reset chip AVR/PIC

Hình 1.3: Module Vi Điều Khiển Đa Năng Module LED đơn: dùng cho thí nghiệm hiển thị Bit

Hình 1.4: Module LED đơn

Trang 12

Module Led 7 đoạn đơn: gồm 3 led 7 đoạn anode chung độc lập

Hình 1.5: Module LED 7 ĐOẠN ĐƠN Module led 7 đoạn: gồm 8 led 7 đoạn anode chung

Hình 1.6: Module LED 7 ĐOẠN Module LCD 16x2: gồm 1 LCD 1602

Hình 1.7: Module LCD 16x2

Trang 13

Module nút nhấn: Gồm 4 nút nhấn thường và 4 nút nhấn chống dội

Hình 1.8: Module nút nhấn Module Keypad: gồm 16 phím,tổ chức theo dạng ma trận 4x4

Hình 1.9: Module phím nhấn Module led matrix: gồm 2 led 8x8 chọn hàng bằng 74138 và truyền data bằng

SPI

Trang 14

Hình 1.10: Module LED MA TRẬN Module DS1307: gồm IC thời gian thực giao tiếp I2C

Hình 1.11: Module DS1307 Module PS/2: dùng giao tiếp bàn phím máy tính

Hình 1.12: Module PS/2

R216 1k

SDI SLK LE

SLK LE

XL10 XL11 XL12 XL14 XL13 XL15 XL16 XL17

DL22 DL21 DL20

DL26 DL25 DL24 DL23

DL14 DL13 DL12

DL17 DL16 DL15

XL20

XL23 XL22 XL21

XL25 XL24

XL27 XL26

U803

74HC138

Y0 15Y1 14Y2 13Y3 12 Y4 11Y5 10Y6 9Y7 7

7 D1 8S1

1

G2 4 G1 2

D1 8S1

1

G2 4 G1 2

D2 6

U806

FET4953

D2 5S2

7 D1 8S1

1

G2 4 G1 2

D2 6

U807

FET4953

D2 5S2

D1 8S1

1

G2 4 G1 2

D2 6

VCC

H1 H2

H4 H3

H6 H5

H8 H7

4 SLK 3

SDO 22

REXT 23

SDI 2

OUT6 11OUT7 12OUT8 13OUT10 15OUT11 16OUT12 17OUT13 18OUT14 19OE 21 OUT9 14

OUT15 20

R215 1k

U802

MBI5026

OUT5 10OUT4 9OUT3 8 OUT2 7OUT1 6OUT0 5LE

4 SLK 3

SDO 22

REXT 23

SDI 2

OUT6 11OUT7 12OUT8 13OUT10 15OUT11 16OUT12 17OUT13 18OUT14 19OE 21 OUT9 14

OUT15 20

Trang 15

Module SMC/SD: dùng giao tiếp với thẻ nhớ ngoài

Hình 1.13: Module SMC/SD Module Audio memory: module này dùng ghi âm âm thanh điều khiển bằng

SPI

Hình 1.14: Module Audio memory Module USB/RS232: dùng giao tiếp với máy tính thông qua USB hoặc RS232

Hình 1.15: Module USB/RS232

Trang 16

Module cảm biến nhiệt: gồm bộ chuyển đổi nguồn -5V,cảm biến nhiệt LM335

R57 10K CAM BIEN NHIET

DS1820

DQ 2VCC 3GND 1

JE01

CON2

1 2

VCC

C49 104

VCC

Trang 17

Module Step motor: điều khiển động cơ bước 7.5 ·/bước bằng IC ULN2803

Hình 1.18: Module Step Motor Module Buzzer:

Hình 1.19: Module Buzzer Module khuếch đại âm thanh: dùng IC LM4871

Hình 1.20: Module khuếch đại âm thanh Module ROM 24Cxx: dùng lưu trữ bộ nhớ ROM ngoài họ 24Cxx

Hình 1.21: Module ROM 24Cxx

Trang 18

Module ROM 93Cxx: dùng lưu trữ bộ nhớ ROM ngoài họ 93Cxx

Hình 1.22: Module ROM 93Cxx Module IR: dùng thu tín hiệu hồng ngoại

Hình 1.23: Module IR Module nguồn: ngõ ra 5V(3A) và 3.3V(1A)

Hình 1.24: Module Power Module A/D: dùng tạo áp thay đổi 0-5V

Hình 1.25: Module A/D

Trang 19

Module ADC: gồm bộ chuyển đổi ADC 8 bit ADC0809 có 8 ngõ vào

Hình 1.26: Module ADC Module Relay

Hình 1.27: Module Relay Module IR Sensor: dùng đếm sản phẩm

Hình 1.28: Module IR sensor

Trang 20

- J205: đầu nối số 05 ở khối 2

B Các chương trình sử dụng trong thí nghiệm:

1 Chương trình nạp pickit2 cho PIC, ProISP cho 89Sxx/AVR:

- Đây là chương trình nạp trực tiếp từ máy tính thông qua cổng USB

2 Lập trình cho vi điều khiển

- Viết chương trình là một công việc đặc biệt với vi điều khiển, là việc sử dụng các ngôn ngữ lập trình tạo lập điều khiển quá trình hoạt động cho vi điều khiển

- Lập trình có thể được thực hiện trong một vài ngôn ngữ như: Assembler (hợp ngữ), C và Basic, mà nó được sử dụng thông dụng

 Hợp ngữ thuộc về mức ngôn ngữ cấp thấp với khả năng lập trình chậm, nhưng nó sẽ chiếm khoảng bộ nhớ ít và cho kết quả tốt nhất

Trang 21

 Lập trình trong ngôn ngữ C thì nó dễ dàng hơn để viết, dễ dàng để hiểu, nhưng thực thi chậm hơn so với hợp ngữ

 Basic là dễ nhất để học, và cấu trúc ngôn ngữ của nó gần với chúng ta, nhưng giống ngôn ngữ C nó cũng chậm hơn hợp ngữ trong việc thực thi Trong nhiều trường hợp, chúng ta cần chú ý đến yêu cầu về tốc độ xử lý, kích cỡ bộ nhớ để lựa chọn ngôn ngữ

- Để lập trình cho vi điều khiển, chúng ta cần có các thành phần: máy tính, phần mềm biên dịch (compiler), bộ lập trình (kit nạp) Phần mềm biên dịch sẽ biên dịch ngôn ngữ lập trình thành file bin hoặc là file hex

Bộ lập trình sẽ truyền các file bin (hay file hex) vào trong bộ nhớ chương trình của vi điều khiển và lưu trữ dưới dạng mã nhị phân “0” và “1”

Hình 1.31: Quá trình lập trình, biên dịch và nạp cho vi điều khiển

Hình 1.30: Lập trình và biên dịch

Trang 22

- Vi điều khiển được kết nối với thiết bị ngocại vi Mỗi khi được cấp nguồn, vi điều khiển sẽ thực hiện các thao tác theo chương trình đã được thiết lập để điều khiển các thiết bị ngoại vi

1.3.1.3 SƠ LƢỢC VỀ VI ĐIỀU KHIỂN 8 BIT, 16 BIT

A Giới thiệu vi điều khiển 8 bit AT89S52 có đặc điểm nhƣ sau:

- Đây là họ vi điều khiển 8 bit, có tất cả 40 chân có chức năng như các đường xuất nhập Trong đó có 24 chân có công dụng kép, mỗi đường

có thể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc

là thành phần của bus dữ liệu và bus địa chỉ

- Là IC đóng vỏ dạng DIP có 40 chân, mỗi chân có một kí hiệu tên và

có các chức năng như sau:

Hình 1.32: Sơ đồ chân vi điều khiển 8 bit AT89S52 Chân 1-8: Port 1 : Mỗi một trong các chân có thể được cấu hình như một đầu vào

hoặc đầu ra

Chân 9: RS: Mức logic 1 trên chân này sẽ vô hiệu hóa các vi điều khiển và xóa

nội dung của hầu hết các thanh ghi Nói cách khác, điện áp tích cực trên chân này

Trang 23

sẽ reset vi điều khiển Bằng cách áp dụng mức logic 0 ở chân này, chương trình bắt đầu thực hiện từ đầu

Chân 10-17: Port 3: Tương tự như cổng 1, mỗi chân có thể phục vụ như là đầu vào hay đầu ra chung Bên cạnh đó, chúng còn có chức năng khác

Chân 10: RXD Nhận tín hiệu thông tin nối tiếp không đồng bộ

Chân 11: TXD Truyền xung thông tin nối tiếp không đồng bộ

Chân 12: INT0 Interrupt 0 input: ngắt ngoài 0

Chân 13: INT1 Interrupt 1 input: ngắt ngoài 1

Chân 14: T0 Counter 0 clock input: Chân vào 0 của bộ timer/counter 0

Chân 15: T1 Counter 1 clock input: Chân vào 1 của bộ timer/counter 1

Chân 16: WR Write to external (additional) RAM: Ghi dữ liệu vào bộ nhớ RAM

ngoài

Chân 17: RD Read from external RAM: Đọc dữ liệu từ bộ nhớ RAM ngoài

Chân 18, 19: X2, X1 Internal oscillator input and output: Đầu vào, ra bộ dao

động nội, Một tinh thể thạch anh tần số hoạt động xác định thường được kết nối với các chân này Thay vì đó, mạch cộng hưởng cũng có thể được sử dụng cho sự

ổn định tần số Trong các phiên bản sau của vi điều khiển hoạt động ở tần số từ 0

Hz lên đến hơn 50 Hz

Chân 20: GND Ground: Chân nguồn nối đất GND

Chân 21-28: Port 2 Nếu không có ý định sử dụng bộ nhớ bên ngoài thì các chân

cổng được cấu hình như đầu vào / đầu ra chung Trong trường hợp sử dụng bộ nhớ bên ngoài, địa chỉ byte cao hơn, tức là địa chỉ A8-A15 sẽ xuất hiện trên cổng này Mặc dù bộ nhớ với dung lượng 64Kb không được sử dụng, không có nghĩa là tất

cả tám bit cổng được sử dụng để làm địa chỉ như là đầu vào / đầu ra

Chân 29: PSEN Nếu ROM bên ngoài được sử dụng để lưu trữ chương trình khi đó

mức logic (0) xuất hiện trên nó mỗi khi vi điều khiển đọc một byte từ bộ nhớ

Chân 30: ALE Trước khi đọc từ bộ nhớ ngoài, vi điều khiển đặt các byte địa chỉ

thấp hơn (A0-A7) trên P0 và kích hoạt đầu ra ALE Sau khi nhận được tín hiệu từ chân ALE, thanh ghi bên ngoài (thường là 74HCT373 hoặc 74HCT375 tiện ích

Trang 24

trên chip) ghi nhớ những trạng thái của P0 và sử dụng nó như là một địa chỉ chip nhớ Ngay sau đó, chân ALU được trả về trạng thái logic trước đó và P0 đang sử dụng như một Bus dữ liệu Như đã thấy, cổng ghép kênh dữ liệu được thực hiện bằng phương pháp mạch tích hợp Nói cách khác, cổng này được sử dụng cho cả

truyền dữ liệu và địa chỉ

Chân 31: EA Bằng cách áp dụng mức logic 0 cho chân này, Port 2 và Port 3 dùng

để truyền dữ liệu và địa chỉ cho dù có bộ nhớ trong hay không Điều này có nghĩa

là một chương trình ghi vào vi điều khiển, sẽ không được thực thi Thay vào đó, các chương trình ghi vào ROM bên ngoài sẽ được thực hiện Bằng cách áp dụng mức logic 1 với Chân EA, vi điều khiển sẽ sử dụng cả hai bộ nhớ, lần đầu tiên nội

bộ sau đó bên ngoài (nếu có)

Chân 32-39: Port 0 Tương tự như Port 2, nếu bộ nhớ bên ngoài không được sử

dụng, các chân được sử dụng như đầu vào / đầu ra chung Nếu không, Port 0 được định cấu hình như đầu ra địa chỉ (A0-A7) khi chân ALE được thúc mức cao (1)

hoặc như dữ liệu đầu ra (Bus dữ liệu) khi chân ALE được thúc mức thấp (0) Chân 40: VCC +5V power supply: chân cấp nguồn +5V

B Giới thiệu vi điều khiển 16 bit PIC 16F877A có đặc điểm chính nhƣ sau:

- Có 5 Port xuất nhập

- Có 8 kênh chuyển đổi ADC 10-bit

- Có 2 kênh PWM 10-bit

- Có 256 bytes bộ nhớ dữ liệu EEPROM

- Ngoài ra có tích hợp các dạng giao tiếp I2C, SPI, serial,

Trang 25

- Sơ đồ chân và chức năng các chân:

Hình 1.33: Sơ đồ chân vi điều khiển 16 bit 16F877A

 AN0: ngõ vào tương tự kênh thứ 0

Chân RA1/AN1(3) có 2 chức năng:

Trang 26

 VREF-: ngõ vào điện áp chuẩn(thấp) của bộ A/D

 CVREF: điện áp tham chiếu VREF ngõ ra bộ so sánh

Chân RA3/AN3/VREF+ (5)

 RA3: nhập/ xuất số

 AN3: ngõ vào tương tự kênh thứ 3

 VREF+: ngõ vào điện áp chuẩn (cao) của bộ A/D

 AN4: ngõ vào tương tự kênh thứ 4

SS: ngõ vào chọn lựa SPI phụ

Trang 27

 PGD: mạch gỡ rối và dữ liệu lập trình ICSP

Chân RC0/T1OCO/T1CKl (15):

 RC0: nhập/ xuất số

 T1OCO: ngõ vào bộ dao động Timer1

 T1CKl: ngõ vào xung clock bên ngoài Timer1

Chân RC1/T1OSI/CCP2 (16):

 RC1: xuất/ nhập số

 T1OSI: ngõ vào bộ dao động Timer1

 CCP2: Ngõ vào Capture 2, ngõ ra Compare 2, ngõ ra PWM 2

 SCK: ngõ vào xung clock nối tiếp đồng bộ/ ngõ ra của chế độ SPI

 SCL: xung clock chế độ I2C

Chân RC4/SDI/SDA (23):

 RC4: xuất/nhập số

 SDI: dữ liệu vào SPI

 SDA: dữ liệu I2C

Trang 28

Chân RE0 / RD / AN 5 (8):

 RE0: xuất/nhập số

RD: điều khiển đọc port slave song song

 AN5: ngõ vào tương tự 5

Chân RE1 / WR / AN 6 (9):

 RE1: xuất/nhập số

WR : điều khiển ghi port slave song song

 AN6: ngõ vào tương tự 6

Chân RE2 / CS / AN 7 (10):

 RE2: xuất/nhập số

CS : điều khiển ghi port slave song song

 AN7: ngõ vào tương tự 7

Chân OSC1/CLKI (13):

 OSC1: ngõ vào dao động thạch anh

 CLKI: ngõ vào nguồn xung bên ngoài

Chân OSC2/CLKO (14):

 OSC2: ngõ ra dao động thạch anh

 CLKO: ở chế độ RC, ngõ ra của OSC2, bằng ¼ tần số của OSC1, và chính là tốc độ chu kỳ câu lệnh

Chân VDD(11, 32) và VSS(12, 31): các chân nguồn của PIC

Trang 29

- Port nhập xuất và các thanh ghi định hướng

- Tổng số chân nhập xuất trong PIC có là 35 chân, đủ các chức năng để kết nối với hầu hết các thiết bị ngoại vi, tạo thành nhiều ứng dụng 35 chân nhập xuất này được chia thành 5 port với tên gọi: Port A, Port B, Port C, Port D, Port E Mỗi Port của PIC có một thanh ghi định hướng TRIS qui định các chân của Port đó

là ngõ vào hay ngõ ra: Khi thanh ghi TRIS = 0 thì Port tương ứng đóng vai trò ngõ

ra, khi thanh ghi TRIS = 1 thì Port tương ứng đóng vai trò ngõ vào Ví dụ: PortA kết nối với các thiết bị ngoại vi; với nút nhấn, tín hiệu từ các mạch logic là các thành phần ngõ vào, do đó khai báo các chân đó có TRIS = 1; với các thành phần cần điều khiển như rơle, led thì cần khai báo các chân đó có TRIS = 0

Hình 1.34: Điều khiển vào ra các PORT vi điều khiển

1.3.1.4 PHẦN MỀM MÔ PHỎNG

A Phần mềm Proteus của hãng Labcenter Electronics hỗ trợ mô

phỏng các mạch điện tử, đặc biệt là mô phỏng vi điều khiển

Trang 30

Hình 1.35: Giao diện khởi động Proteus

- Khởi động Proteus:

Hình 1.36: Khởi động Proteus

Trang 31

- Giao diện lấy linh kiện:

Hình 1.37: Lấy linh kiện từ thƣ viện

- Chọn PIC 16F877A, nhấn OK

Hình 1.38: Nhập tên linh kiện cần lấy

Trang 32

- Đặt linh kiện vào giao diện:

Hình 1.39: Lấy đèn Led từ thƣ viện

- Đặt 8 led vào giao diện:

Hình 1.40: Đặt đèn Led

Trang 33

- Lấy điện trở và đặt điện trở vào giao diện:

Trang 34

- Lấy GND:

Hình 1.43: Lấy GND

- Kết nối dây bằng cách click chuột vào các chân cần kết nối và đi dây

Hình 1.44: Nối dây các linh kiện

Trang 35

- Kết nối các thành phần Reset và thạch anh:

Hình 1.45: Thành phần Reset và bộ dao động thạch anh

- Mạch sau khi đã hoàn thành:

Hình 1.46: Mạch kết nối hoàn chỉnh

Trang 36

- Nạp File ON/OFF.hex vào PIC:

- Click phải PIC chọn Edit Properties, tại vị trí Program File click trỏ đến file ONOFF.hex

Hình 1.47: Nạp file Hex cho PIC

- Vào Menu Debug, chọn Start để chạy mô phỏng:

Trang 37

Hình 1.48: Thực hiện mô phỏng

- Kết quả hiển thị:

Hình 1.49: Kết quả hiển thị chương trình

B Hướng Dẫn Sử Dụng Chương Trình Keil C Mô Phỏng Vi Điều Khiển 8 BIT

Bước 1: Chép thư mục Keil 3 vào ổ cứng của bạn Cần nhớ đường dẫn nơi lưu

thư mục keil 3 sau khi chép VD: D:\Keil 3

Trang 38

Bước 2: Kích đúp vào thư mục Keil 3 và mở thư mục uv3

Bước 3: Kích đúp vào biểu tượng sau để chạy chương trình

- Kết quả bạn sẽ có màn hình làm việc như sau:

Trang 39

Bước 4: Tạo một Project mới

- Trước nhất bạn cần tạo một Project mới bằng cách kích vào tiêu đề Project và kích chọn mục New Project…

- Đặt tên cho Project mới của bạn và chọn Save để lưu Project vừa tạo

- Một cửa sổ mới xuấthiện cho phép bạn lựa chọn Vi Điều Khiển mà bạn muốn

mô phỏng Ta chọn AT89S52

Trang 40

- Một cửa sổ mới xuất hiện để thông báo như sau và bạn chọn No

Bước 5: Tạo một file mới

- Trở lại màn hình chính bạn vào File – New để mở một file mới

- Bạn chưa cần soạn thảo gì cả, hãy vào File – Save as… để lưu file

- Đặt tên file với phần mở rộng là asm

Ngày đăng: 10/10/2021, 21:14

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w