Giáo trình Lập trình vi điều khiển

20 10 0
Giáo trình Lập trình vi điều khiển

Đ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

Nếu chỉ có một hệ thống bus như thường thấy ở vi điều khiển 8 bít thì việc truy xuất bộ nhớ dữ liệu hoặc bộ nhớ chương trình sẽ được thực hiện thông qua các tín hiệu điều khiển, [r]

(1)

0

BỘ XÂY DỰNG

TRƯỜNG CAO ĐẲNG XÂY DỰNG THÀNH PHỐ HỒ CHÍ MINH

GIÁO TRÌNH LƯU HÀNH NỘI BỘ

LẬP TRINH VI ĐIỀU KHIỂN

(2)

1

BÀI

SƠ LƯỢC VỀ LỊCH SỬ VÀ HƯỚNG PHÁT TRIỂN CỦA VI ĐIỀU KHIỂN

Giới thiệu:

Ứng dụng vi điều khiển để giải toán điều khiển cỡ nhỏ cỡ trung phổ biến lĩnh vực đời sống Việc giới thiệu lịch sử đời trình phát triển vi điều khiển nhằm cung cấp cho người học tổng quan vi điều khiển hướng phát triển tương lai

Mục tiêu:

- Hiểu lịch sử phát triển vi điều khiển - Hiểu cấu trúc chung vi điều khiển

- Biết lĩnh vực ứng dụng hướng phát triển tương lai vi điều khiển

Nội dung chính: 1 Lịch sử phát triển

Mục tiêu:

- Biết lịch sử đời vi điều khiển

- Hiểu trình phát triển vi điều khiển

(3)

2

lưỡng cực, trường hợp cần nhiều lớp khuếch tán, nhiều lổ tiếp xúc đường dẩn giá thành lên đến 10 - 20 đô la mạch Nhờ kỹ thuật MOS mật độ tích hợp tăng cao hẳn kỹ thuật lưỡng cực Hướng phát triển sau cơng nghệ CMOS bao gồm transistor trường bổ túc làm giãm công suất tiêu thụ thời điểm ln có transistor bị khóa Với yêu cầu ngày phức tạp đa dạng làm cho việc sản xuất vi mạch với số lượng lớn khó khăn, điều dẩn đến suy nghĩ vi mạch có khả lập trình, vi mạch có cấu tạo giống chức thay đổi sau lập trình V.D: Bằng phương pháp làm chảy đường dẩn điện Không vào năm 1974 hãng INTEL sản xuất chip vi xử lý lập trình theo yêu cầu khách hàng mở đầu cho kỹ nguyên vi xử lý gọi cách mạng công nghiệp lần thứ II

2 Vi điều khiển

Mục tiêu:

- Hiểu nguyên lý cấu tạo vi điều khiển - Hiểu cấu trúc nhớ vi điều khiển

2.1 Nguyên lý cấu tạo

(4)

3

Hình 32-01-1 Cấu trúc máy tính

(5)

4

Hình 32-01-3 Sơ đồ khối vi điều khiển

2.2 Các kiểu cấu trúc nhớ 2.2.1 Cấu trúc Von Neumann

Trong cấu trúc Von Neumann có vùng địa tuyến tính bao gồm tất liệu lệnh điều khiển, độ lớn vùng địa phụ thuộc vào chiều dài đếm chương trình, khơng trang bị thêm linh kiện phụ việc định địa nhớ chương trình nhớ liệu không độc lập với Trong cấu trúc tồn bus liệu bus địa để đọc-ghi liệu đọc lệnh điều khiển chương trình khơng có khả thực song song (truy xuất đồng thời nhớ liệu nhớ chương trình)

(6)

5

2.2.2 Cấu trúc Harvard

Gồm hai vùng địa riêng biệt cho nhớ liệu nhớ chương trình nên truy xuất song song liệu lệnh điều khiển, cấu trúc đặc biệt thích hợp với vi điều khiển 16 32 bít làm tăng tốc độ làm việc Nếu có hệ thống bus thường thấy vi điều khiển bít việc truy xuất nhớ liệu nhớ chương trình thực thơng qua tín hiệu điều khiển, khơng có u cầu ghi vào nhớ chương trình cấu trúc cịn cho phép tăng tính an tồn chương trình

Hình 32-01-5 Cấu trúc Harvard

3 Lĩnh vực ứng dụng

Mục tiêu:

- Biết lĩnh vực ứng dụng vi điều khiển

(7)

6

Hình 32-01-6 Lĩnh vực ứng dụng

4 Hướng phát triển

Mục tiêu: Nắm hướng phát triển vi điều khiển tương lai

Yêu cầu đặt cho vi điều khiển tăng lĩnh ứng dụng với tốc độ xử lý ngày nhanh kích thước nhỏ gọn, công suất tiêu thụ thấp Vấn đề đặt liệu với vi điều khiển bít có cịn phù hợp hay không? tương lai phải thay vi điều khiển 16/32 bít Khác với vi xử lý việc phát triển kèm theo việc nâng cao khả tính tốn cách mở rộng hệ thống bus Đối với vi điều khiển không thiết phải thế, vi điều khiển bít đủ cho nhiều ứng dụng vi điều khiển 16 bít hồn tồn q dư thừa, trường hợp cần giảm giá thành, kích thước cơng suất tiêu thụ vi điều khiển bít giải pháp tối ưu Một vài ứng dụng cần vi điều khiển có nhiều khối ngoại vi, có ứng dụng lại cần ngoại vi tốc độ cao, hướng phát triển tương lai tăng khả CPU khối ngoại vi

(8)

7

ứng dụng đa nhiệm, phương pháp phân đoạn phân dãy hóa có ý nghĩa lớn Với công nghệ sản xuất đồng thời tăng tần số làm việc giảm công suất tiêu thụ điện áp nuôi điều mở lĩnh vực ứng dụng mạch điện đơn giản lượng tiêu thụ thấp, cách thay đổi cú pháp tập lệnh thích hợp cho phép biên dịch dễ dàng từ ngôn ngữ cấp cao “C” “FORTH” sang mã lệnh vi điều khiển

BÀI

(9)

8

Giới thiệu: Vi điều khiển 8051 họ vi điều khiển thông dụng Việc nắm bắt cấu trúc phần cứng đặc điểm riêng vi điều khiển loại tiền đề để người học hiểu rõ thực hành tốt kỹ lập trình nội dung

Mục tiêu:

- Hiểu cấu trúc phần cứng vi điều khiển 8051

- Hiểu cấu trúc nhớ, biết cách truy xuất nhớ liệu nhớ chương trình

- Hiểu đặc tính ghi đặc biệt - Biết cách mở rộng thêm nhớ

- Hiểu nguyên lý hoạt động mạch reset

Nội dung chính:

1 Cấu trúc phần cứng vi điều khiển 8051

Mục tiêu:

- Hiểu đặc điểm chung vi điều khiển - Hiểu sơ đồ khối vi điều khiển

- Biết chức chân tín hiệu vi điều khiển

1.1 Đặc điểm chung

Vi mạch tổng quát chung họ MCS-51 chip 8051, linh kiện họ đưa thị trường Chip 8051 có đặc điểm sau:

4 KB FLASH ROM, 128 Byte RAM nội Port xuất /nhập (8 bit.)

2 định thời 16 bit Mạch giao tiếp nối tiếp

Khơng gian nhớ chương trình ngồi 64KB Khơng gian nhớ liệu 64KB Bộ xử lý bit

210 vị trí nhớ định địa chỉ, vị trí bit

(10)

9

1.2 Sơ đồ khối

Hình 32-02-1 Sơ đồ khối 8051

1.3 Sơ đồ chân

(11)

10

* Port

Port port có chức chân 32 – 39 8051 Trong thiết kế cỡ nhỏ khơng dùng nhớ mở rộng có chức đường IO Đối với thiết kế cỡ lớn có nhớ mở rộng, P0 port đa hợp địa liệu

* Port

Port port IO chân 1-8 Các chân ký hiệu P1.0, P1.1, , ….P1.7 Port dùng cho giao tiếp điều khiển với thiết bị bên

* Port 2

Port port có tác dụng kép chân 21 - 28 dùng đường xuất nhập byte cao bus địa thiết kế lớn có mở rộng port nhơ mở rộng

* Port 3

Port port có tác dụng kép chân 10 - 17 Các chân port có nhiều chức năng, cơng dụng chuyển đổi có liên hệ với đặc tính đặc biệt 8051 bảng sau:

Bit Tên Chức chuyển đổi

P3.0 RXT Ngõ vào liệu nối tiếp P3.1 TXD Ngõ xuất liệu nối tiếp P3.2 INT0\ Ngõ vào ngắt cứng thứ P3.3 INT1\ Ngõ vào ngắt cứng thứ

P3.4 T0 Ngõ vào timer/counter thứ P3.5 T1 Ngõ vào timer/counter thứ P3.6 WR\ Tín hiệu ghi liệu lên nhớ ngồi P3.7 RD\ Tín hiệu đọc nhớ liệu

(12)

11

PSEN tín hiệu ngõ chân 29 có tác dụng cho phép đọc nhớ chương trình mở rộng thường nói đến chân 0E\ (output enable) Eprom cho phép đọc byte mã lệnh PSEN mức thấp thời gian Microcontroller 8051 lấy lệnh Các mã lệnh chương trình đọc từ Eprom qua bus liệu chốt vào ghi lệnh bên 8051 để giải mã lệnh Khi 8951 thi hành chương trình ROM nội PSEN mức logic

* Ngõ tín hiệu điều khiển ALE (Address Latch Enable )

Khi 8051 truy xuất nhớ bên ngồi, port có chức bus địa bus liệu phải tách đường liệu địa Tín hiệu ALE chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp đường địa liệu kết nối chúng với IC chốt

Tín hiệu chân ALE xung khoảng thời gian port đóng vai trị địa thấp nên chốt địa hồn tồn tự động

Các xung tín hiệu ALE có tốc độ 1/6 lần tần số dao động chip dùng làm tín hiệu clock cho phần khác hệ thống Chân ALE dùng làm ngõ vào xung lập trình cho Eprom 8051

* Ngõ tín hiệu EA\(External Access)

Tín hiệu vào EA\ chân 31 nối nguồn 5VDC (mức 1) nối GND (mức 0) Nếu mức 1, 8051 thi hành chương trình từ ROM nội khoảng địa thấp Kbyte Nếu mức 0, 8051 thi hành chương trình từ nhớ mở rộng

Chân EA\ lấy làm chân cấp nguồn 21V lập trình cho Eprom 8051

* Ngõ tín hiệu RST (Reset)

Ngõ vào RST chân ngõ vào Reset 8051 Khi ngõ vào tín hiệu đưa lên cao chu kỳ máy, ghi bên nạp giá trị thích hợp để khởi động hệ thống Khi cấp điện mạch tự động Reset

(13)

12

Bộ dao động tích hợp bên 8051, sử dụng 8051 người thiết kế cần kết nối thêm thạch anh tụ hình vẽ sơ đồ Tần số thạch anh thường sử dụng cho 8051 12MHz

Chân 40 (Vcc) nối lên nguồn 5V. 2 Cấu trúc nhớ vi điều khiển 8051

Mục tiêu: - Biết tổ chức nhớ vi điều khiển - Biết địa RAM đa dụng ghi

2.1 Tổ chức nhớ

Hình 32-02-3 Tổ chức nhớ 8051 Địa

byte Địa bit

Địa

byte Địa bit

Tên

7F FF

F0 F7 F6 F5 F4 F3 F2 F1 F0 B

RAM đa dụng

E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC

D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW

30 B8 - - - BC BB BA B9 B8 IP

(14)

13

2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3

2D 6F 6E 6D 6C 6B 6A 69 68

2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE

2B 5F 5E 5D 5C 5B 5A 59 58

2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2

29 4F 4E 4D 4C 4B 4A 49 48

28 47 46 45 44 43 42 41 40 99 Khơng địa hố bit SBUF

27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON

26 37 36 35 34 33 32 31 30

25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1

24 27 26 25 24 23 22 21 20

23 1F 1E 1D 1C 1B 1A 19 18 8D khơng địa hố bit TH1

22 17 16 15 14 13 12 11 10 8C khơng địa hố bit TH0

21 0F 0E 0D 0C 0B 0A 09 08 8B không địa hoá bit TL1

20 07 06 05 04 03 02 01 00 8A không địa hoá bit TL0

1F

Bank

89 không địa hoá bit TMO D

18 88 8F 8E 8D 8C 8B 8A 89 88 TCON

17

Bank

87 khơng địa hố bit PCON

10 0F

Bank

83 khơng địa hố bit DPH

08 82 không địa hoá bit DPL

07

Bank ghi (R0 R7)

81 khơng địa hố bit SP

00 80 87 86 85 84 83 82 81 80 P0

Vùng Ram Thanh ghi đặc biệt

(15)

14

Bộ nhớ 8051 bao gồm Rom Ram Ram 8051 bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ định địa byte bit, băng ghi vùng ghi chức đặc biệt

8051 có 4KByte nhớ Rom nội Với thiết kế đòi hỏi dung lượng nhớ, 8051 cho phép kết nối với 64K byte nhớ chương trình 64K byte liệu

2.2 RAM đa dụng

Trong vùng Ram từ địa 30 đến 7F dùng chung mục đích chép lưu trữ liệu tạm thời truy xuất liệu tự lệnh trực tiếp gián tiếp

2.3 RAM truy xuất bit

Vi điều khiển 8051 chứa 210 bit địa hóa, có 128 bit có chứa byte có chứa địa từ 20F đến 2FH bit cịn lại chứa nhóm ghi có chức đặc biệt Ý tưởng truy xuất bit phần mềm đặc tính mạnh microcontroller xử lý chung Các bit đặt, xóa, AND, OR, , với lệnh đơn Đa số microcontroller xử lý đòi hỏi chuổi lệnh đọc – sửa - ghi để đạt mục đích tương tự Ngồi port truy xuất bit, 128 bit truy xuất bit truy xuất byte bit phụ thuộc vào lệnh dùng

2.4 Các bank ghi

32 byte thấp nhớ nội dành cho bank ghi Bộ lệnh 8051 hổ trợ ghi có tên R0 đến R7 theo mặc định sau reset hệ thống, ghi có địa từ 00H đến 07H

Các lệnh dùng ghi R0 đến R7 ngắn nhanh so với lệnh có chức tương ứng dùng kiểu địa trực tiếp Các liệu dùng thường xuyên nên dùng ghi

(16)

15

3 Các ghi chức đặc biệt

Mục tiêu:

- Biết chức ghi đặc biệt

- Biết địa chỉ, ký hiệu bit ghi đặc biệt

3.1 Thanh ghi trạng thái chương trình

Từ trạng thái chương trình địa D0H tóm tắt sau:

BIT SYMBO L

ADDRESS DESCRIPTION

PSW.7 CY D7H Cary Flag

PSW.6 AC D6H Auxiliary Cary Flag PSW.5 F0 D5H Flag

PSW4 RS1 D4H Register Bank Select PSW.3 RS0 D3H Register Bank Select

00=Bank 0; address 00H07H 01=Bank 1; address 08H0FH 10=Bank 2; address 10H17H 11=Bank 3; address 18H1FH PSW.2 OV D2H Overlow Flag

PSW.1 - D1H Reserved

PSW.0 P DOH Even Parity Flag

(17)

16

Cờ Carry CY (Carry Flag): Cờ nhớ có tác dụng kép Thơng thường dùng cho lệnh tốn học: C=1 phép tốn cộng có tràn phép trừ có mượn ngược lại C= phép tốn cộng khơng tràn phép trừ khơng có mượn

Cờ Carry phụ AC (Auxiliary Carry Flag): Khi cộng giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC set kết bit thấp nằm phạm vi điều khiển 0AH 0FH Ngược lại AC=

Cờ (Flag 0):Cờ (F0) bit cờ đa dụng dùng cho ứng dụng người dùng

BIT RS0 & RS1: Những bit chọn bank ghi truy xuất RS1 RS0 định dãy ghi tích cực Chúng xóa sau reset hệ thống thay đổi phần mềm cần thiết Tùy theo RS1, RS0 = 00, 01, 10, 11 chọn Bank tích cực tương ứng Bank 0, Bank1, Bank2, Bank3

RS1 RS0 BANK

0 0 1 1

Cờ tràn OV (Over Flag): Cờ tràn set sau hoạt động cộng trừ có tràn tốn học Khi số có dấu cộng trừ với nhau, phần mềm kiểm tra bit để xác định xem kết có nằm tầm xác định khơng Khi số khơng có dấu cộng bit OV bỏ qua Các kết lớn +127 nhỏ –128 bit OV =

(18)

17

chẵn Ví dụ A chứa 10101101B bit P set lên để tổng số bit A P tạo thành số chẵn Bit Parity thường dùng kết hợp với thủ tục Port nối tiếp để tạo bit Parity trước phát kiểm tra bit Parity sau thu

3.2 Thanh ghi B

Thanh ghi B địa F0H dùng với ghi A cho phép toán nhân chia Lệnh MUL AB nhân giá trị không dấu bit hai ghi A B, trả kết 16 bit A (byte cao) B(byte thấp) Lệnh DIV AB lấy A chia B, kết nguyên đặt vào A, số dư đặt vào B Thanh ghi B dùng ghi đệm trung gian đa mục đích Nó bit định vị thơng qua địa từ F0HF7H

3.3 Con trỏ Ngăn xếp SP (Stack Pointer)

Con trỏ ngăn xếp ghi bit địa 81H Nó chứa địa byte liệu hành đỉnh ngăn xếp Các lệnh ngăn xếp bao gồm lệnh cất liệu vào ngăn xếp (PUSH) lấy liệu khỏi Ngăn xếp (POP) Lệnh cất liệu vào ngăn xếp làm tăng SP trước ghi liệu lệnh lấy khỏi ngăn xếp làm giảm SP Ngăn xếp 8031/8051 giữ RAM nội giới hạn địa truy xuất địa gián tiếp, chúng 128 byte đầu 8951

3.4 Con trỏ liệu DPTR (Data Pointer)

Con trỏ liệu (DPTR) dùng để truy xuất nhớ ghi 16 bit địa 82H (DPL: byte thấp) 83H (DPH: byte cao)

3.5 Các ghi Port (Port Register)

Các Port 8051 bao gồm Port0 địa 80H, Port1 địa 90H, Port2 địa A0H, Port3 địa B0H Tất Port truy xuất bit nên thuận tiện khả giao tiếp

3.6 Các ghi Timer (Timer Register)

(19)

18

động timer SET Timer Mode (TMOD) địa 89H ghi điều khiển Timer (TCON) địa 88H Chỉ có TCON địa hóa bit

3.7 Các ghi Port nối tiếp (Serial Port Register)

Vi điều khiển 8051 chứa Port nối tiếp cho việc trao đổi thông tin với thiết bị nối tiếp máy tính, modem giao tiếp nối tiếp với IC khác Một ghi đệm liệu nối tiếp (SBUF) địa 99H giữ hai liệu truyền liệu nhập Khi truyền liệu ghi lên SBUF, nhận liệu đọc SBUF Các mode vận khác lập trình qua ghi điều khiển Port nối tiếp (SCON) địa hóa bit địa 98H

3.8 Các ghi ngắt (Interrupt Register)

Vi điều khiển 8051 có cấu trúc nguồn ngắt, mức ưu tiên Các ngắt bị cấm sau bị reset hệ thống cho phép việc ghi ghi cho phép ngắt (IE) địa A8H B8H địa ghi ưu tiên ngắt Cả hai địa hóa bit

3.9 Thanh ghi điều khiển nguồn PCON (Power Control Register)

Thanh ghi PCON khơng có bit định vị Nó địa 87H chứa nhiều bit điều khiển Thanh ghi PCON tóm tắt sau:

Bit (SMOD) : Bit có tốc độ Baud mode 1, 2, Port nối tiếp set Bit 6, 5, : Khơng có địa

Bit (GF1) : Bit cờ đa Bit (GF0) : Bit cờ đa

Bit (PD) : Set để khởi động mode Power Down thoát để reset

Bit (IDL) : Set để khởi động mode Idle thoát ngắt mạch reset Các bit điều khiển Power Down Idle có tác dụng tất IC họ MSC-51 thi hành biên dịch CMOS

(20)

19

Mục tiêu:

- Biết cách truy xuất nhớ chương trình ngồi - Biết cách truy xuất nhớ liệu

Các vi điều khiển cần có khả mở rộng tài nguyên chip (bộ nhớ, I/O ) để tránh tượng cổ chai thiết kế Cấu trúc MCS-51 cho phép khả mở rộng khơng gian nhớ chương trình đến 64 K không gian nhớ liệu đến 64 K ROM RAM thêm vào cần Các IC giao tiếp ngoại vi thêm vào để mở rộng khả xuất/nhập Chúng trở thành phần khơng gian nhớ liệu ngồi cách sử dụng cách định địa kiểu I/O ánh xạ nhớ Khi nhớ sử dụng, port không làm nhiệm vụ port xuất/nhập, port trở thành bus địa (A0 A7) bus liệu (D0 D7) đa hợp Ngõ ALE chốt byte thấp địa thời điểm bắt đầu chu kỳ nhớ Port thường (nhưng luôn) dùng làm byte cao bus địa

Trước nghiên cứu cụ thể bus địa liệu đa hợp ý tưởng tổng quat trình bày hình 2.5

Ngày đăng: 30/03/2021, 03:33

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan