1 of 258

HỌC PHẦN: VI XỬ LÝ - VI ĐIỀU KHIỂN

TS. Đỗ Văn Cần :

ĐT 0935253630

Web: noibunphodien.com

Khoa Kỹ thuật & Công nghệ

TRƯỜNG ĐẠI HỌC QUY NHƠN

2 of 258

Số TC: 3 – 30 LT + 30 TH

Chương 1: Tổng quan về vi xử lý (4 tiết)

Chương 2: Vi điều khiển họ 8051 (10 tiết)

Chương 3: Ngôn ngữ lập trình (6 tiết)

Chương 4: Thiết kế giao tiếp ngoại vi (10 tiết)

2

NỘI DUNG HỌC PHẦN

3 of 258

  1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  2. Các cơ số tính toán nhị phân (2 tiết)
  3. Cấu trúc họ 8051 (2 tiết)
  4. Tổ chức bộ nhớ (2 tiết)
  5. Chức năng timer counter (2 tiết)
  6. Chức năng truyền thông (2 tiết)
  7. Chức năng ngắt (2 tiết)
  8. Tập lệnh họ 8051 (2 tiết)
  9. Kiểu dữ liệu (2 tiết)
  10. Xây dựng chương trình (2 tiết)
  11. Giao tiếp vào ra đơn bít (2 tiết)
  12. Giao tiếp vào ra dữ liệu (2 tiết)
  13. Giao tiếp ma quét (2 tiết)
  14. Giao tiếp truyền thông (2 tiết)
  15. Giao tiếp truyền thông (2 tiết)

3

NỘI DUNG HỌC PHẦN

4 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

Định nghĩa

4

KỸ THUẬT VI ĐIỀU KHIỂN

Bộ vi xử lý (microprocessor)

Bộ vi xử lý (microprocessor) là một máy tính nhỏ hoặc CPU (đơn vị xử lý trung tâm) được sử dụng để tính toán, thực hiện phép toán logic, kiểm soát hệ thống và lưu trữ dữ liệu vv. Vi xử lý sẽ xử lý các dữ liệu đầu vào / đầu ra (input/output) thiết bị ngoại vi và đưa ra kết quả trở lại để chúng hoạt động. Dòng vi xử lý 4 bit đầu tiên được Intel sản xuất vào tháng 11/1971 với tên gọi là 4004

5 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

5

KỸ THUẬT VI ĐIỀU KHIỂN

Vi điều khiển (microcontroller)

Nó cũng là một máy tính nhỏ, trong đó CPU, bộ nhớ (RAM, ROM), I / O thiết bị ngoại vi, timers, counters, được nhúng vào trong một mạch tích hợp (IC) nơi mà các bộ vi xử lý và tất cả các khối này được kết hợp vào trong một board thông qua hệ thống bus. Vi điều khiển có thể dễ dàng giao tiếp với thiết bị ngoại vi bên ngoài như cổng nối tiếp, ADC, DAC, Bluetooth, Wi-Fi, …vv quá trình giao tiếp nhanh hơn khi so sánh với các bộ vi xử lý. Hầu hết các vi điều khiển sử dụng cấu trúc RISC. Ngoài ra còn có một số vi điều khiển sử dụng cấu trúc CISC như 8051, Motorolla, vv

Phân biệt Vi xử lý (Microprocessor -mP)

và Vi điều khiển (Microcontroller-mC)?

Định nghĩa

6 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

6

KỸ THUẬT VI ĐIỀU KHIỂN

Định nghĩa

7 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

Lịch sử sơ lượt

7

KỸ THUẬT VI ĐIỀU KHIỂN

CPU viết tắt của chữ Central Processing Unit (tiếng Anh), tạm dịch là Bộ xử lý trung tâm, là mạch điện tử, là mạch điện tử thực hiện các câu lệnh, là mạch điện tử thực hiện các câu lệnh của chương trình máy tính, là mạch điện tử thực hiện các câu lệnh của chương trình máy tính bằng cách thực hiện các phép tính số học, logic, so sánh và các hoạt động nhập/xuất dữ liệu (Input/Output) cơ bản từ mã lệnh được định sẵn trong một máy tính. Thuật ngữ này đã được sử dụng trong ngành công nghiệp máy tính kể từ đầu những năm 1960.[1] 

8 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

Lịch sử sơ lượt

8

KỸ THUẬT VI ĐIỀU KHIỂN

  • Thập niên 1970 – Thế hệ vi xử lý đầu tiên
  • 1971: Intel ra mắt 4004, vi xử lý thương mại đầu tiên (4-bit, 740 kHz).
  • 1972: Intel 8008 (8-bit) ra đời, mở đường cho các thế hệ vi xử lý mạnh hơn.
  • 1974: Intel 8080 (8-bit, 2 MHz) – được sử dụng trong máy tính Altair 8800, đánh dấu sự khởi đầu của PC. Vi xử lý đầu tiên:TMS1000 của Texas Instruments (ra mắt năm 1974)
  • Thập niên 1980 – Thời kỳ bùng nổ vi xử lý 16-bit và 32-bit
  • Thập niên 1990 – Sự phát triển mạnh mẽ của vi xử lý 32-bit và 64-bit
  • Thập niên 2000 – Bùng nổ đa nhân và vi xử lý 64-bit
  • Thập niên 2010 – Hiện tại: CPU đa lõi, AI và điện toán đám mây
  • 2020: Apple giới thiệu Apple M1, vi xử lý ARM hiệu suất cao cho MacBook.
  • Xu hướng tương lai: vi xử lý AI, Quantum Computing (3nm, 2nm)...

9 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

Cấu trúc vi xử lý

9

KỸ THUẬT VI ĐIỀU KHIỂN

Mô tả chức năng các chân của vi xử lý 8086

10 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

Cấu trúc vi xử lý

10

KỸ THUẬT VI ĐIỀU KHIỂN

Mô tả chức năng các chân của vi xử lý 8086

- AD0 ÷ AD15 [I, O]: Các chân dồn kênh cho các tín hiệu của bus dữ liệu và bus địa chỉ. Xung ALE sẽ báo cho mạch ngoài biết khi nào trên các đường đó có tín hiệu dữ liệu (ALE=0) hoặc địa chỉ (ALE=1). Tín hiệu này chuyển sang trạng thái trở kháng cao khi Bus nội bộ ghi nhận tín hiệu treo.

- A16/S3, A17/S4, A18/S5, A19/S6 [O]: Địa chỉ/trạng thái. Địa chỉ A16 – A19 sẽ có mặt tại các chân đó khi ALE=1 còn khi ALE=0 thì trên các chân đó có tín hiệu trạng thái S3 – S6. Bit S6=0 liên tục, bit S5 phản ánh giá trị bit IF của thanh ghi cờ, hai bit S3, S4 phối hợp với nhau để chỉ ra việc truy nhập các thanh ghi đoạn. Tín hiệu này chuyển sang trạng thái trở kháng cao khi Bus nội bộ ghi nhận tín hiệu treo.

11 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

EU: Execution Unit, khối thực hiện lệnh.

BIU: Bus Interface Unit, khối phối ghép bus.

ALU: Arithmetic and Logic Unit, khối số học và logic.

Cấu trúc vi xử lý

11

KỸ THUẬT VI ĐIỀU KHIỂN

12 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

CPU = ALU + CU + Registers + Cache + Bus + MMU + Clock

Cấu trúc vi xử lý

12

KỸ THUẬT VI ĐIỀU KHIỂN

13 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

1. Đơn vị số học và logic (ALU - Arithmetic Logic Unit)

  • Thực hiện các phép toán số học (cộng, trừ, nhân, chia).
  • Thực hiện các phép toán logic (AND, OR, XOR, NOT, so sánh).

2. Đơn vị điều khiển (CU - Control Unit)

  • Điều phối hoạt động của CPU.
  • Giải mã lệnh và gửi tín hiệu điều khiển đến các bộ phận khác.
  • Điều khiển luồng dữ liệu giữa các thành phần bên trong và bên ngoài CPU.

13

KỸ THUẬT VI ĐIỀU KHIỂN

14 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

3. Thanh ghi (Registers)

  • Là bộ nhớ tốc độ cao bên trong CPU, dùng để lưu trữ tạm thời dữ liệu và lệnh.
  • Các loại thanh ghi phổ biến:
    • Thanh ghi lệnh (IR - Instruction Register): Lưu trữ lệnh đang được thực thi.
    • Bộ đếm chương trình (PC - Program Counter): Chỉ địa chỉ lệnh tiếp theo.
    • Thanh ghi đa dụng (General Purpose Registers - AX, BX, CX, DX...): Lưu dữ liệu tạm thời.

4. Bộ nhớ Cache

  • Là bộ nhớ đệm tốc độ cao giúp tăng tốc độ truy xuất dữ liệu.
  • Có các cấp độ: L1 (nhanh nhất, gần CPU nhất), L2, L3.

14

KỸ THUẬT VI ĐIỀU KHIỂN

15 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

5. Bus hệ thống

Là tập hợp các đường truyền dữ liệu giữa CPU và các thành phần khác.

Bus địa chỉ (Address Bus): Xác định vị trí của dữ liệu trong bộ nhớ.

Bus dữ liệu (Data Bus): Truyền dữ liệu giữa CPU và các thiết bị khác.

Bus điều khiển (Control Bus): Gửi tín hiệu điều khiển đến các thiết bị ngoại vi.

6. Đơn vị quản lý bộ nhớ (MMU - Memory Management Unit)

Quản lý không gian địa chỉ bộ nhớ.

Dịch địa chỉ ảo thành địa chỉ vật lý trong hệ thống bộ nhớ.

7. Bộ tạo xung nhịp (Clock Generator)

Cung cấp tín hiệu xung nhịp để đồng bộ hóa hoạt động của CPU.

Tốc độ được đo bằng MHz hoặc GHz (ví dụ: 3.2 GHz).

15

KỸ THUẬT VI ĐIỀU KHIỂN

16 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

Các thanh ghi có thể được chia làm 4 nhóm lần lượt có tên là:

-Các thanh ghi đoạn: CS, DS, SS, ES.

-Các thanh ghi đa năng: AX, BX, CX, DX.

-Các thanh ghi con trỏ và chỉ số: IP, BP, SP, SI, DI.

-Thanh ghi cờ. FR (Flag).

Thanh ghi

16

KỸ THUẬT VI ĐIỀU KHIỂN

17 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

Thanh ghi đoạn

Mọi sự trao đổi thông tin trong hệ thống vi xử lý đều dùng địa chỉ vật lý, còn địa chỉ được tạo bởi thanh ghi đoạn và thanh ghi lệch như trên được gọi là địa chỉ logic và được ký hiệu như sau:

Địa chỉ logic = Thanh ghi đoạn: Thanh ghi lệch

Địa chỉ logic tồn tại dưới dạng giá trị các thanh ghi cụ thể bên trong CPU và khi cần thiết truy nhập ô nhớ nào đó thì nó phải được đổi ra địa chỉ vật lý để rồi đưa lên bus địa chỉ . Việc chuyển đổi này do một bộ tạo địa chỉ thực hiện. Địa chỉ vật lý của ô nhớ được tính theo công thức sau:

20 bit địa chỉ vật lý = Thanh ghi đoạn x 16 + Thanh ghi lệch

Thanh ghi

17

KỸ THUẬT VI ĐIỀU KHIỂN

18 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

Thanh ghi

18

KỸ THUẬT VI ĐIỀU KHIỂN

19 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

Thanh ghi cờ FR (Flag Register)

Đây là thanh ghi khá đặc biệt trong CPU mỗi bit của nó để phản ánh một trạng thái nhất định của kết qủa phép toán do ALU thực hiện hoặc một hoạt động của EU. Dựa vào các cờ này mà người lập trình có thể đưa ra các lệnh thích hợp tiếp theo cho vi xử lý (các lệnh nhảy có điều kiện). Thanh ghi cờ có 16 bit nhưng chỉ sử dụng 9 bit làm bit cờ

Thanh ghi

19

KỸ THUẬT VI ĐIỀU KHIỂN

20 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

Thanh ghi cờ FR (Flag Register)

Các cờ trạng thái

-C hoặc CF (Carry Flag): Cờ nhớ CF = 1 khi có nhớ hoặc mượn từ MSB.

-F hoặc P (Parity Flag): Cờ chẵn lẻ, phản ánh tính chẵn lẻ của tổng số bit 1 có trong kết quả. CF = 1 khi tổng số bit 1 trong kết quả là chẵn.

-A hoặc AF (Auxiliary carry Flag): cờ nhớ phụ, rất có ý nghĩa khi ta làm việc với các số BCD, AF = 1 khi có nhớ hoặc mượn từ một số BCD thấp (4 bit thấp) sang một số BCD cao (4bit cao).

-Z hoặc ZF (Zero Flag): Cờ rỗng, ZF = 1 khi kết qủa bằng 0.

-S hoặc SF (Sign Flag): Cờ dấu, SF = 1 khi kết quả âm.

-O hoặc OF (Overflow Flag): Cờ tràn, OF = 1 khi kết quả là số bù hai vượt ra ngoài giá trị biểu diễn của nó.

20

KỸ THUẬT VI ĐIỀU KHIỂN

21 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

Thanh ghi cờ FR (Flag Register)

Các cờ điều khiển (có thể lập hoặc xoá bằng các lệnh riêng)

-T hoặc TF (Trap Flag): Cờ bẫy, TF = 1 thì CPU làm việc ở chế độ chạy từng lệnh (chế độ này dùng khi cần tìm lỗi chương trình)

-I hoặc IF (Interrupt enable Flag): Cờ cho phép ngắt, IF = 1 thì CPU cho phép các yêu cầu ngắt được tác động.

-D hoặc DF (Direction Flag): Cờ hướng, DF = 1 khi CPU làm việc với chuỗi ký tự theo ký tự từ phải sang trái (vì vậy D chính là cờ lùi).

21

KỸ THUẬT VI ĐIỀU KHIỂN

22 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

  • Bài 1: Thanh ghi A, R1, R2 dùng để thực hiện phép cộng và lưu kết quả.
  • Bài 2: Thanh ghi P1 dùng để điều khiển bit của cổng I/O.
  • Bài 3: Thanh ghi TH0, TL0 dùng để tính toán giá trị bộ đếm Timer 0.
  • Bài 4: Thanh ghi A, B dùng để trao đổi dữ liệu giữa hai thanh ghi.
  • Bài 5: Thanh ghi A, CY dùng để thực hiện phép dịch bit và lưu trạng thái cờ Carry.

Thanh ghi trong vi điều khiển

22

KỸ THUẬT VI ĐIỀU KHIỂN

23 of 258

1. Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)

23

KỸ THUẬT VI ĐIỀU KHIỂN

24 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Bài tập và kiểm tra (2 tiết)
  • Kiểu dữ liệu (2 tiết)
  • Xây dựng chương trình (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp truyền thông (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

24

NỘI DUNG HỌC PHẦN

25 of 258

2. Các cơ số và phép toán nhị phân (2 tiết)

Cơ số

25

KỸ THUẬT VI ĐIỀU KHIỂN

26 of 258

2. Các cơ số và phép toán nhị phân (2 tiết)

Cơ số

26

KỸ THUẬT VI ĐIỀU KHIỂN

27 of 258

2. Các cơ số và phép toán nhị phân (2 tiết)

Cơ số

27

KỸ THUẬT VI ĐIỀU KHIỂN

Bài tập: 123410 = ???2

28 of 258

2. Các cơ số và phép toán nhị phân (2 tiết)

Cơ số

28

KỸ THUẬT VI ĐIỀU KHIỂN

29 of 258

2. Các cơ số và phép toán nhị phân (2 tiết)

Phép toán số học

29

KỸ THUẬT VI ĐIỀU KHIỂN

Quy tắc:

0+0=0�0+1=1+0=1�1+1=10

Bài tập:

101101 + 111011 = ?

30 of 258

2. Các cơ số và phép toán nhị phân (2 tiết)

Phép toán số học

30

KỸ THUẬT VI ĐIỀU KHIỂN

Quy tắc:

0-0=0�0-1=-1(“mượn”, vì trong phép tính số nhị phân không được số âm )�1-0=1�1-1=0�-1-1=-10

Bài tập:

1101101 - 111001 = ?

31 of 258

2. Các cơ số và phép toán nhị phân (2 tiết)

Phép toán số học

31

KỸ THUẬT VI ĐIỀU KHIỂN

Bài tập:

1011 x 1010 =

32 of 258

2. Các cơ số và phép toán nhị phân (2 tiết)

Phép toán số học

32

KỸ THUẬT VI ĐIỀU KHIỂN

Bài tập:

10011111:1101=

33 of 258

2. Các cơ số và phép toán nhị phân (2 tiết)

33

KỸ THUẬT VI ĐIỀU KHIỂN

34 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Bài tập và kiểm tra (2 tiết)
  • Kiểu dữ liệu (2 tiết)
  • Xây dựng chương trình (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp truyền thông (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

34

NỘI DUNG HỌC PHẦN

35 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

35

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

36 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

36

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Các IC của họ MCS-51™ có các đặc trưng chung như sau:

  • 4 port I/O x 8 bit
  • 1 giao tiếp nối tiếp
  • 4k không gian bộ nhớ chương trình mở rộng
  • 128b không gian bộ nhớ dữ liệu mở rộng
  • Một bộ xử lý luận lý (thao tác trên các bit đơn)
  • 210 bit được địa chỉ hóa
  • Bộ nhân/chia 4 μs.

37 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

37

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Các IC của họ MCS-51™ có các đặc trưng chung như sau:

Dòng SP

ROM

RAM

Số bộ định thời

8051

8751

8951

4K ROM

4K EPROM

4K FLASH

128 byte

128 byte

128 byte

2

2

2

8032

8052

8752

8952

0K

8K ROM

8K EPROM

8K FLASH

256 byte

256 byte

256 byte

256 byte

3

3

3

3

38 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

38

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

39 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

39

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Port 0:

Port 0 là một port xuất/nhập song hướng cực máng hở 8 bit. Nếu được sử dụng như là một ngõ xuất thì mỗi chân có thể kéo 8 ngõ vào TTL. Cần có các điện trở pullup (5k-10k) bên ngoài.

Ngoài ra còn có chức năng AD0- AD7

Port 1:

Port 1 là một port xuất/nhập song hướng 8 bit có các điện trở pullup bên trong.

Ngoài ra với họ 89x52 có thể các chức năng phụ

40 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

40

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Port 2:

Port 2 là một port xuất/nhập song hướng 8 bit có các điện trở pullup bên trong.

Ngoài ra còn là A8-A15 trong lệnh MOVX @DPTR.

Port 3:

Port 3 là một port xuất - nhập song hướng 8 bit có điện trở pullup nội bên trong.

Ngoài ra Port 3 cũng cung cấp các chức năng của các đặc trưng đặc biệt như được liệt kê dưới đây:

41 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

41

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

42 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

42

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

ROM 4kb: Từ 0000H-xxxxH: Lưu trữ chương trình

RAM 128b: Từ 00H - xxH: Thực thi chương trình

43 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

43

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

RAM 128b: Từ 00H - xxH

  • Vùng bank thanh ghi

44 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

44

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

RAM 128b: Từ 00H - xxH

  • Vùng địa chỉ hoá bit

45 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

45

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

RAM 128b: Từ 00H - xxH

  • Vùng đa dụng

46 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

46

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

RAM 128b: Từ 00H - xxH

  • Vùng thanh ghi đặc biệt

47 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

47

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

PSW địa chỉ D0

Thanh ghi PSW

48 of 258

3. Cấu trúc và bộ nhớ họ 8051 (2 tiết)

48

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

49 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Bài tập và kiểm tra (2 tiết)
  • Kiểu dữ liệu (2 tiết)
  • Xây dựng chương trình (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp truyền thông (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

49

NỘI DUNG HỌC PHẦN

50 of 258

4. Chức năng timer counter (2 tiết)

50

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng timer

Vị trí Timer trong bộ nhớ RAM

51 of 258

4. Chức năng timer counter (2 tiết)

Trong 8051 có 4 chế độ Timer/counter có 2 bít C/T thanh ghi TMOD ở địa chỉ byte 89H quyết định chế độ Timer/counter.

51

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng timer

52 of 258

4. Chức năng timer counter (2 tiết)

GATE = 0: Chế độ Timer/Counter;

GATE = 1: Chế độ Ngắt;

C/T = 0: Lựa chọn Timer;

C/T = 1: Lựa chọn Counter;

M1=0 M0=1

Chế độ 1 (16 bit đếm)

M1=1 M0=0

Chế độ 2 (8 bit đếm)

52

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng timer

53 of 258

4. Chức năng timer counter (2 tiết)

Chế độ chế độ 1 (16 bit đếm)

Chế độ chế độ 2 (8 bit đếm)

53

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

Chức năng timer

54 of 258

4. Chức năng timer counter (2 tiết)

Hoạt động Timer 0, chế độ 1 (16 bit) → TMOD=01H

Hoạt động Counter 1, chế độ 2 (8 bit) → TMOD=xxH

Hoạt động Timer 1, chế độ 1 (16 bit);Timer 0, chế độ 1 (16 bit); → TMOD=xxH

Bài tập xác định tất cả các trường hợp còn lại

54

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng timer

55 of 258

4. Chức năng timer counter (2 tiết)

55

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng timer

56 of 258

4. Chức năng timer counter (2 tiết)

56

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng timer

57 of 258

4. Chức năng timer counter (2 tiết)

Thanh ghi TCON ở địa chỉ byte 88H quyết định hoạt động Timer/counter.

57

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

TMOD = 01H;

TH0= C3H;

TL0= 50H;

TR0=1;

Chức năng timer

MOV TMOD, #01H; chọn Timer0, chế độ 1

MOV TH0, #0C3H; nạp giá trị C3 vào nữa cao timer

MOV TL0,#050H; nạp giá trị 50 vào nữa thấp timer

SETB TR0; kích hoạt timer bắt đầu đếm

LL: JNB TF0, LL ; chờ timer đầy tràn

58 of 258

4. Chức năng timer counter (2 tiết)

Thanh ghi TCON ở địa chỉ byte 88H quyết định hoạt động Timer/counter.

TF1 (Timer 1 Overflow Flag): Được set (TF1 = 1) khi Timer 1 tràn. Cần xóa bằng phần mềm (TF1 = 0).

TR1 (Timer 1 Run Control Bit): Đặt TR1 = 1 để khởi động Timer 1, đặt TR1 = 0 để dừng.

TF0 (Timer 0 Overflow Flag): Được set (TF0 = 1) khi Timer 0 tràn. Cần xóa bằng phần mềm (TF0 = 0).

TR0 (Timer 0 Run Control Bit): Đặt TR0 = 1 để khởi động Timer 0, đặt TR0 = 0 để dừng.

58

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng timer

59 of 258

4. Chức năng timer counter (2 tiết)

Các bước thiết lập Timer để tạo trễ

  1. Chọn Timer 0 hoặc Timer 1.
  2. Chọn chế độ đếm thời gian (Timer Mode).
  3. Nạp giá trị khởi tạo vào các thanh ghi THx, TLx (16 bít); chỉ nạp 1 lần THx (8 bít).
  4. Bật Timer bằng cách đặt bit TRx = 1.
  5. Chờ cờ tràn TFx = 1 (hoặc tạo vòng lặp).
  6. Tắt Timer, xóa cờ tràn TFx, lặp lại nếu cần.

59

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng timer

60 of 258

4. Chức năng timer counter (2 tiết)

Vi dụ:

60

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng timer

61 of 258

4. Chức năng timer counter (2 tiết)

Tạo thời gian 1s timer 0 chế độ 1.

1s=1000.000us = 50 lần x 20.000 xung; 20.000 (10) → 4E20 (16) - 1 = 4E1F(16)

Cấu trúc:

TMOD = 01H

TH0 = 4E

TL0 =1F

TR0=1

lập lại 50 lần

61

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng timer

Bài tập: Xây dựng cấu trúc tạo Timer 1 chế độ 2, thời gian 500ms

62 of 258

4. Chức năng timer counter (2 tiết)

Bài tập: Hãy viết thời trễ 1s, sử dụng chế độ 8 bít

Giải: 1s = 1.000.000us = 250 xung x 200 lần lặp 1 x 20 lần lặp 2. Tức 1 lần lặp 2 chạy 200 lần lặp1.

TMOD = 02H ; Time 0 chế độ 8 bít

TH0 = 06H; nạp giá trị ban đầu để có đếm 250 xung thì tràn (thạch anh 12Mhz)

TR=1; cho Timer chạy

Đợi đến tràn, Chờ TF0=1,

Lặp lại 200 lần vòng 1

Lặp 20 lần Vòng 2

Chú ý: vòng 1 nằm trong vòng 2. chạy 1 lần vòng 2, thì lặp 200 lần vòng 1

62

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng timer

63 of 258

4. Chức năng timer counter (2 tiết)

63

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

64 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Bài tập và kiểm tra (2 tiết)
  • Kiểu dữ liệu (2 tiết)
  • Xây dựng chương trình (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp truyền thông (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

64

NỘI DUNG HỌC PHẦN

65 of 258

5. Chức năng truyền thông (2 tiết)

Chức năng của port nối tiếp là thực hiện việc chuyển đổi dữ liệu song song thành nối tiếp khi phát và chuyển đổi dữ liệu nối tiếp thành song song khi thu. Các mạch phần cứng bên ngoài truy xuất thông qua chân TxD (P3.1 phát dữ liệu) và RxD (P3.0 thu dữ liệu)

65

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

66 of 258

5. Chức năng truyền thông (2 tiết)

66

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

67 of 258

5. Chức năng truyền thông (2 tiết)

67

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

68 of 258

5. Chức năng truyền thông (2 tiết)

Thanh ghi chọn chế độ SCON của port nối tiếp ở địa chỉ 98H, trước khi sử dụng port nối tiếp, thanh ghi SCON phải được khởi động đúng chế độ yêu cầu

68

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

69 of 258

5. Chức năng truyền thông (2 tiết)

Bằng cách ghi giá trị 0 vào SM0, SM1. Dữ liệu nối tiếp được thu và phát thông qua chân RxD, TxD xuất xung clock dịch bit.

69

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

70 of 258

5. Chức năng truyền thông (2 tiết)

Thiết lập truyền dữ liệu UART 8 bit (thay đổi)

SCON = 40H; //0100 0000

Bài tập áp dụng tất cả các trường hợp còn lại

Tương tự thiết lập Nhận UART 9 bít (thay đổi) SCON=??H

Tương tự thiết lập Nhận UART 9 bít (Cố định) SCON=??H

Tương tự thiết lập TRUYỀN UART 9 bít (thay đổi) SCON=??H

Tương tự thiết lập TRUYỀN UART 9 bít (Cố định) SCON=??H

70

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

71 of 258

5. Chức năng truyền thông (2 tiết)

71

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

72 of 258

5. Chức năng truyền thông (2 tiết)

72

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

73 of 258

5. Chức năng truyền thông (2 tiết)

73

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

74 of 258

5. Chức năng truyền thông (2 tiết)

1. Nạp thanh ghi TMOD giá trị 20H: báo rằng sử dụng Timer1 ở chế độ 2 để thiết lập chế độ baud.

2. Nạp thanh ghi TH1 các giá trị phù hợp để thiết lập chế độ baud truyền dữ liệu nối tiếp.

3.  Nạp thanh ghi SCON giá trị 50H báo chế độ nối tiếp 1 để đóng khung 8 bit dữ liệu, 1 bit Start và 1 bit Stop.

4. Bật TR1=1 để khởi động Timer1.

5. Xoá bit cờ truyền dữ liệu: TI=0.

6. Byte ký tự cần phải truyền được ghi vào SBUF.

7.  Bit cờ truyền TI được kiểm tra bằng một vòng lặp để đợi đến lúc dữ liệu được truyền xong (cờ TI=1).

8.  Để truyền ký tự tiếp theo quay trở về bước 5.

74

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

75 of 258

5. Chức năng truyền thông (2 tiết)

75

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

76 of 258

5. Chức năng truyền thông (2 tiết)

76

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

77 of 258

5. Chức năng truyền thông (2 tiết)

77

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

78 of 258

5. Chức năng truyền thông (2 tiết)

78

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

79 of 258

5. Chức năng truyền thông (2 tiết)

Ví dụ: Truyền ký tự “B” ra ngoài ở chế độ UART 9- cố định

ký tự “B” có mã 42H = 01000010 → P (chẵn) = 0

Cấu trúc:

SCON = 80h; UART 9- cố định

SBUF = “B” ; đưa mã SCII vào SBUF

Chờ TI =1 ; Chờ truyền xong

Xoá TI=0 ; Xoá chuẩn bị lần sau

79

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

80 of 258

5. Chức năng truyền thông (2 tiết)

Ví dụ: Nhận chuỗi ký tự “ không biết trước” cất vào vùng RAM tại thanh ghi A, ở chế độ UART 8 thay đổi (9600)

REN =1

Cấu trúc:

TMOD = 20H; timer1, chế độ 0

TH1 = 0FDH

SCON = 50H; UART 8 thay đổi

TR1 = 1

Chờ RI =1 ; Chờ nhận xong

E0H = SBUF ; lấy dữ liệu nhận được ở SBUF cất vào thanh ghi A

Xoá RI=0 ; Xoá chuẩn bị lần sau

80

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng truyền thông nối tiếp

81 of 258

5. Chức năng truyền thông (2 tiết)

81

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

82 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Bài tập và kiểm tra (2 tiết)
  • Kiểu dữ liệu (2 tiết)
  • Xây dựng chương trình (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp truyền thông (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

82

NỘI DUNG HỌC PHẦN

83 of 258

6. Chức năng ngắt (2 tiết)

8051 có 5 nguyên nhân ngắt:

2 do bên ngoài,

2 ngắt do bộ định thời

1 ngắt do port nối tiếp.

8052 có thêm 1 ngắt do bộ định thời thứ 3.

Khi thiết lập trạng thái ban đầu cho hệ thống (cấp nguồn, Reset) tất cả các ngắt đều bị vô hiệu hóa và sau đó chúng cho phép riêng rẽ theo chương trình

83

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng ngắt

84 of 258

6. Chức năng ngắt (2 tiết)

84

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng ngắt

85 of 258

6. Chức năng ngắt (2 tiết)

85

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng ngắt

86 of 258

6. Chức năng ngắt (2 tiết)

86

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng ngắt

87 of 258

6. Chức năng ngắt (2 tiết)

Ví dụ Kích hoạt ngắt ngoài 1 thì

EA=1

EX1=1

hoặc

IE.7=1

IE.2=1

Tương tự thiết lập các ngắt sau

  • Kích hoạt 2 ngắt là timer 0 và truyền thông nối tiếp
  • Kích hoạt 3 ngắt là Ngoài 0, timer 0 và truyền thông nối tiếp

87

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng ngắt

88 of 258

6. Chức năng ngắt (2 tiết)

Mỗi 1 nguyên nhân ngắt được lập trình riêng để có 1 trong 2 mức ưu tiên thông qua thanh ghi ưu tiên ngắt IP (interrup priority) có địa chỉ byte 0B8H

88

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng ngắt

89 of 258

6. Chức năng ngắt (2 tiết)

Vecto reset hệ thống (RST ở địa chỉ 0000H) được chứa trong bảng này vì vậy cũng được xem như 1 ngắt: chương trình chính bị ngắt và PC được nạp giá trị mới

89

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng ngắt

90 of 258

6. Chức năng ngắt (2 tiết)

Vecto reset hệ thống (RST ở địa chỉ 0000H) được chứa trong bảng này vì vậy cũng được xem như 1 ngắt: chương trình chính bị ngắt và PC được nạp giá trị mới

90

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng ngắt

91 of 258

6. Chức năng ngắt (2 tiết)

  • Thiết lập các ngắt và ưu tiên theo thứ tự: Truyền thông, Timer 0, Ngoài 1
  • Thiết lập các ngắt và ưu tiên theo thứ tự: Timer 0, Truyền thông, Ngoài 0

91

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

Chức năng ngắt

92 of 258

6. Chức năng ngắt (2 tiết)

92

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

93 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Bài tập và kiểm tra (2 tiết)
  • Kiểu dữ liệu (2 tiết)
  • Xây dựng chương trình (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp truyền thông (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

93

NỘI DUNG HỌC PHẦN

94 of 258

7. Tập lệnh họ 8051 (2 tiết)

94

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

95 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh di chuyển dữ liệu

MOV đích ; nguồn

MOV A, # 15 ; Thập phân

MOV A , #1111B ; Nhị phân

MOV A , #30H ; Hex

MOV A , #315D ; Thập phân

95

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

96 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh di chuyển dữ liệu

96

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

97 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh di chuyển dữ liệu

97

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

98 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh di chuyển dữ liệu

98

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

99 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh di chuyển dữ liệu

99

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

100 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh di chuyển dữ liệu

100

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

101 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh di chuyển dữ liệu Lệnh MOV (Di chuyển dữ liệu)

101

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

102 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh di chuyển dữ liệu MOVX (Di chuyển dữ liệu với bộ nhớ ngoài)

102

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

103 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh di chuyển dữ liệu (Di chuyển dữ liệu từ bộ nhớ chương trình)

103

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

104 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh di chuyển dữ liệu (Trao đổi dữ liệu)

104

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

105 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh di chuyển dữ liệu Lệnh PUSH và POP (Đẩy vào và lấy ra từ Stack)

105

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

106 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học

  • ADD A, <src, byte>
  • SUBB A, <src, byte>
  • MULL AB ; (A) LOW [(A) x (B)];
  • DIV AB ; (A) Integer Result of [(A)/(B)];
  • INC <byte>
  • DEC <byte>

106

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

107 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học

107

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

108 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học

108

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

109 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học

109

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

110 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học

110

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

111 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học

111

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

112 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học

112

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

113 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học Lệnh ADD (Cộng hai số)

113

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

114 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học Lệnh ADDC (Cộng có nhớ)

114

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

115 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học Lệnh SUBB (Trừ có nhớ)

115

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

116 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học Lệnh INC (Tăng giá trị lên 1)

116

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

117 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học Lệnh DEC (Giảm giá trị đi 1)

117

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

118 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học Lệnh MUL (Nhân hai số 8-bit)

118

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

119 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học Lệnh DIV (Chia hai số 8-bit)

119

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

120 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học Lệnh DA (Điều chỉnh A sau phép cộng nhị phân thập phân)

120

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

121 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học Lệnh CPL (Đảo bit)

121

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

122 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh toán học Lệnh CLR (Xóa thanh ghi hoặc cờ)

122

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

123 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

ANL <dest> <src>

ORL <dest> <src>

XRL <dest> <src>

CLR A

CLR C

RL A ;Quay vòng thanh ghi A qua trái 1 bit

RLC A ; Quay vòng thanh ghi A qua trái 1 bit có cờ Carry

RR A ; Quay vòng thanh ghi A qua phải 1 bit

RRC A ; Quay vòng thanh ghi A qua phải 1 bit có cờ Carry

CPL Đảo bit

123

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

124 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

124

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

125 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

125

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

126 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

126

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

127 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

127

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

128 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

128

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

129 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

129

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

130 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

130

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

131 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

131

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

132 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

132

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

133 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

133

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

134 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

134

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

135 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

135

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

136 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

136

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

137 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh Logic

137

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

138 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh

JC rel ; Nhảy đến “rel” nếu cờ Carry C = 1.

JNC rel ; Nhảy đến “rel” nếu cờ Carry C = 0.

JB bit, rel ; Nhảy đến “rel” nếu (bit) = 1.

JNB bit, rel ; Nhảy đến “rel” nếu (bit) = 0.

JBC bit, rel ; Nhảy đến “rel” nếu bit = 1 và xóa bit.

AJMP Addr11 ; Nhảy tuyệt đối không điều kiện trong 2K.

LJMP Addr16 ; Nhảy dài không điều kiện trong 64K

SJMP rel ;Nhảy ngắn không điều kiện

JZ rel ; Nhảy đến A = 0. Thực hành lệnh kế nếu A 0.

JNZ rel ; Nhảy đến A 0. Thực hành lệnh kế nếu A = 0.

CJNE A, direct, rel ; So sánh và nhảy đến A direct

DJNE Rn, rel ; Giảm Rn và nhảy nếu Rn 0.

DJNZ direct, rel ; Tương tự lệnh DJNZ Rn, rel.

CALL

ACALL

RET

RETI

138

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

139 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh

139

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

140 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh

140

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

141 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh

141

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

142 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh

142

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

143 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh

143

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

144 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh

144

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

145 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh

145

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

146 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh

146

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

147 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh

147

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

148 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh

148

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

149 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh Lệnh LJMP (Nhảy xa)

149

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

150 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh Lệnh JZ (Nhảy nếu A = 0)

150

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

151 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh Lệnh JNZ (Nhảy nếu A ≠ 0)

151

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

152 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh Lệnh JC (Nhảy nếu C = 1)

152

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

153 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh Lệnh JNC (Nhảy nếu C = 0)

153

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

154 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh Lệnh JB (Nhảy nếu bit = 1)

154

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

155 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh Lệnh JNB (Nhảy nếu bit = 0)

155

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

156 of 258

7. Tập lệnh họ 8051 (2 tiết)

Nhóm lệnh rẽ nhánh Lệnh DJNZ (Giảm và nhảy nếu ≠ 0)

156

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

157 of 258

7. Tập lệnh họ 8051 (2 tiết)

157

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

158 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Cấu trúc chương trình hợp ngữ (2 tiết)
  • Cấu trúc chương trình C (2 tiết)
  • Bài tập và kiểm tra (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp truyền thông (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

158

NỘI DUNG HỌC PHẦN

159 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

159

Chương 3: NGÔN NGỮ LẬP TRÌNH

  • Các “nhãn“ là một kiểu ký hiệu, sau nhãn phải có dấu hai chấm (:) còn sau ký hiệu thì không
  • Các kiểu ký hiệu được quy cho các giá trị hoặc quy cho việc dùng các chỉ thị như: EQU, SEGMENT, BIT, DATA,
  • Địa chỉ gián tiếp (Indirect Address) Đối với một số lệnh dùng toán hạng có thể xác định thanh ghi mà nó chứa địa chỉ gián tiếp và nó chỉ có thể dùng với R0, R1 , DPTR. Như lệnh MOV A, @R0 khôi phục lại byte dữ liệu từ RAM nội tại địa chỉ được định rõ trong R0.
  • Dữ liệu tức thời (Immediate Data ) Các lệnh dùng sự định vị tức thời cung cấp dữ liệu vào vùng toán hạng, ký hiệu # đặt trước dữ liệu tức thời, như: CONSTANT EQU 100 MOV A, 0FFH ORL 40H, # CONSTANT

160 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

160

Chương 3: NGÔN NGỮ LẬP TRÌNH

  • Địa chỉ dữ liệu (Data Address) Nhiều lệnh truy xuất các vùng nhớ dùng sự định vị trực tiếp và đòi hỏi một địa chỉ nhớ dữ liệu trên chip (00 – FFH) hay một địa chỉ SFR (80H – FFH) trên vùng toán hạng. Các ký hiệu đã được định nghĩa có thể được dùng cho các địa chỉ SFR, như: MOV A, 45H hay MOV A, SBUF ; Tương đương lệnh MOV A, 99H Địa chỉ Bit (Bit Address
  • Các cơ sở số (Number Basses) Cơ sở các hằng số phải được theo sau các số nhị phân “B”, theo sau số Octal “O”, hoặc “Q”, theo sau số thập phân “D” hay không có gì , theo sau số Hexa “H”. Ví dụ 3.3: MOV A, # 15 ; Thập phân MOV A , #1111B ; Nhị phân MOV A , #30H ; Hexa MOV A , #315D ; Thập phân MOV A , #317Q ; Octal
  • Các chuỗi ký tự (Character String) Chuỗi dùng một hay 2 ký tự có thể dùng như các toán hạng trong các biểu thức. Các mã ASSCII được biến đổi thành nhị phân tương đương bởi sự biên dịch. Các hằng được đi kèm theo sau dấu nháy (‘). CJNZ A , # ‘Q’, AGAIN

161 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

161

Chương 3: NGÔN NGỮ LẬP TRÌNH

  • Các toán tử quan hệ Khi một hoạt động có liên quan được dùng giữa hai toán hạng thì kết quả hoặc sai (0000h) hoặc đúng (FFFFH). Các hoạt động là: EQ = ; Equals (bằng) NE <> ; Not equals (không bằng) LT < ; Less than (nhỏ hơn) LE <= ; Less than or equal (nhỏ hơn hoặc bằng) GT > ; Greater than (lớn hơn) GE >= ; Greater than or equal (lớn hơn hoặc bằng)
  • Khai báo lưu trữ DS (Define Storage) Dạng phát biểu DS là: [label:] DS Expression Phát biểu DS dành một vùng nhớ trong đơn vị byte. Nó có thể được dùng trong bất kỳ phát biểu “segment” nào ngoại trừ BIT. Khi phát biểu DS được bắt gặp trong chương trình thì bộ đếm vị trí cục bộ của “segment” hiện hành được tăng lên một khoảng bằng giá trị của biểu thức. Tổng của bộ đếm cục bộ và biểu thức đã được định rõ sẽ không vượt quá sự hạn chế của vùng hiện hành. Ví dụ 3.8: Phát biểu sau tạo ra một vùng đệm 40 byte trong “segment” dữ liệu nội. DSEG AT 30H ; Đặt vào segment data nội. LENGTH: EQU 40 BUFFER: DS LENGTH ; 40 byte được dành trước

162 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

162

Chương 3: NGÔN NGỮ LẬP TRÌNH

  • Ví dụ 3.8: Phát biểu sau tạo ra một vùng đệm 40 byte trong “segment” dữ liệu nội. DSEG AT 30H ; Đặt vào segment data nội. LENGTH: EQU 40 BUFFER: DS LENGTH ; 40 byte được dành trước
  • Ví dụ 3.9: Dùng DB để lập bảng, ở đây có 10 địa chỉ gồm mã hình và mã quét xen kẽ. Chu_A: db 7eh, 01h, 09h, 02h, 09h, 04h, 09h, 08h, 7eh, 10h Mov dptr, #chu_A Mov a, #0 Movc a, @a+dptr
  • Ví dụ 3.10: Chương trình ứng dụng : CSEG AT 0100H SQUARES: DB 0, 1, 4, 9, 16, 25 ; Bình phương từ 0-5 MESSAGE: DB ‘login’, 0 ; Chuỗi ký tự kết thúc bởi 0

163 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

163

Chương 3: NGÔN NGỮ LẬP TRÌNH

Cấu trúc tổng quát

ORG 0000H ; Đặt địa chỉ bắt đầu của chương trình

; Khai báo các hằng số hoặc vùng nhớ (nếu cần)

MAIN: ; Nhãn chính của chương trình

; Khởi tạo thanh ghi, bộ nhớ, ngắt (nếu cần)

; Thân chương trình - các lệnh thực thi chính

SJMP MAIN ; Vòng lặp vô hạn để giữ chương trình chạy

END ; Kết thúc chương trình

164 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

164

Chương 3: NGÔN NGỮ LẬP TRÌNH

ORG địa chi bắt đầu lưu chương trình

Nhảy tới vùng CT chính có ngắt

Địa chỉ vécto ngắt

Chương trình ngắt

RETI kết thúc chương trình ngắt

Chương trình CONx:

RET kết thúc chương trình CONx

END

165 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

165

Chương 3: NGÔN NGỮ LẬP TRÌNH

ORG 0000H ; Địa chỉ bắt đầu chương trình

MAIN:

SETB P1.0 ; Bật LED (P1.0 = 1)

CALL DELAY ; Gọi hàm trễ

CLR P1.0 ; Tắt LED (P1.0 = 0)

CALL DELAY ; Gọi hàm trễ

SJMP MAIN ; Lặp lại mãi mãi

; Hàm trễ đơn giản

DELAY:

MOV R7, #255 ; Lặp 255 lần

D1: MOV R6, #255 ; Lặp 255 lần

D2: DJNZ R6, D2 ; Giảm R6 đến 0

DJNZ R7, D1 ; Giảm R7 đến 0

RET ; Trở về chương trình chính

END ; Kết thúc chương trình

Giải thích các phần chính

  1. ORG 0000H: Chỉ định địa chỉ bắt đầu của chương trình.
  2. MAIN: Nhãn chính, nơi chương trình bắt đầu thực thi.
  3. SETB P1.0 / CLR P1.0: Bật/tắt LED tại chân P1.0.
  4. CALL DELAY: Gọi hàm trễ để tạo hiệu ứng nhấp nháy.
  5. DELAY: Hàm trễ dùng vòng lặp để tạo thời gian trễ.
  6. SJMP MAIN: Lệnh nhảy vô hạn để lặp lại chương trình.
  7. END: Kết thúc chương trình.

166 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

166

Chương 3: NGÔN NGỮ LẬP TRÌNH

Câu lệnh WHILE (điều kiện) { ... } có thể được triển khai như sau:

WHILE_LOOP:

; Kiểm tra điều kiện

; Nếu điều kiện sai -> Thoát vòng lặp

; Thực hiện nội dung vòng lặp

SJMP WHILE_LOOP ; Lặp lại

167 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

167

Chương 3: NGÔN NGỮ LẬP TRÌNH

Ví dụ: Vòng lặp WHILE đếm từ 10 về 0

ORG 0000H

MOV R0, #10 ; Gán R0 = 10

WHILE_LOOP:

CJNE R0, #0, CONTINUE ; Nếu R0 ≠ 0, tiếp tục

SJMP EXIT ; Nếu R0 = 0, thoát vòng lặp

CONTINUE:

DEC R0 ; Giảm R0

SJMP WHILE_LOOP ; Quay lại đầu vòng lặp

EXIT:

NOP ; Kết thúc vòng lặp

END

168 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

168

Chương 3: NGÔN NGỮ LẬP TRÌNH

Cấu trúc DO-WHILE trong Assembly 8051

Câu lệnh DO { ... } WHILE (điều kiện); có thể được triển khai như sau:

DO_LOOP:

; Thực hiện nội dung vòng lặp

; Kiểm tra điều kiện

; Nếu điều kiện đúng -> tiếp tục lặp lại

169 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

169

Chương 3: NGÔN NGỮ LẬP TRÌNH

Cấu trúc DO-WHILE trong Assembly 8051

Ví dụ: Vòng lặp DO-WHILE đếm từ 5 về 0

assembly

CopyEdit

ORG 0000H

MOV R1, #5 ; Gán R1 = 5

DO_LOOP:

DEC R1 ; Giảm R1 mỗi lần lặp

JNZ DO_LOOP ; Nếu R1 ≠ 0, quay lại DO_LOOP

END

170 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

170

Chương 3: NGÔN NGỮ LẬP TRÌNH

REPEAT_LOOP:

; Thực hiện nội dung vòng lặp

; Kiểm tra điều kiện

; Nếu thỏa mãn -> Thoát vòng lặp

; Nếu không -> Quay lại REPEAT_LOOP

171 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

171

Chương 3: NGÔN NGỮ LẬP TRÌNH

Ví dụ: Lặp lại giảm giá trị R2 từ 10 về 0 và dừng khi R2 = 0

ORG 0000H

MOV R2, #10 ; Gán R2 = 10

REPEAT_LOOP:

DEC R2 ; Giảm giá trị R2

JZ EXIT ; Nếu R2 = 0, thoát vòng lặp

SJMP REPEAT_LOOP ; Nếu chưa, tiếp tục lặp lại

EXIT:

NOP ; Kết thúc chương trình

END

172 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

172

Chương 3: NGÔN NGỮ LẬP TRÌNH

Cấu trúc IF trong Assembly 8051

Câu lệnh IF (điều kiện) { ... } có thể được mô phỏng như sau:

; Kiểm tra điều kiện

JZ SKIP ; Nếu điều kiện không đúng, nhảy qua phần xử lý

; Phần lệnh trong IF

SKIP:

173 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

173

Chương 3: NGÔN NGỮ LẬP TRÌNH

Ví dụ: Nếu giá trị R0 = 5, thì bật đèn LED tại P1.0

ORG 0000H

MOV R0, #5 ; Giả sử R0 chứa giá trị 5

MOV A, R0

CJNE A, #5, SKIP ; Nếu A ≠ 5, bỏ qua bật LED

SETB P1.0 ; Bật LED tại P1.0

SKIP:

NOP

END

174 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

174

Chương 3: NGÔN NGỮ LẬP TRÌNH

Cấu trúc IF...ELSE trong Assembly 8051

Câu lệnh IF (điều kiện) { ... } ELSE { ... } có thể được mô phỏng như sau:

; Kiểm tra điều kiện

JZ ELSE_PART ; Nếu điều kiện không đúng, nhảy đến ELSE

; Phần lệnh trong IF

SJMP END_IF ; Nhảy qua phần ELSE

ELSE_PART:

; Phần lệnh trong ELSE

END_IF:

175 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

175

Chương 3: NGÔN NGỮ LẬP TRÌNH

Ví dụ: Nếu R0 = 5, bật LED tại P1.0, ngược lại tắt LED

ORG 0000H

MOV R0, #5 ; Giả sử R0 chứa giá trị 5

MOV A, R0

CJNE A, #5, ELSE_PART ; Nếu A ≠ 5, nhảy đến ELSE

SETB P1.0 ; Bật LED tại P1.0

SJMP END_IF ; Nhảy qua ELSE

ELSE_PART:

CLR P1.0 ; Tắt LED nếu A ≠ 5

END_IF:

NOP

END

176 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

176

Chương 3: NGÔN NGỮ LẬP TRÌNH

Chương trình này bật/tắt LED tại chân P1.0 với độ trễ.

ORG 0000H

MAIN:

SETB P1.0 ; Bật LED (P1.0 = 1)

CALL DELAY ; Gọi hàm trễ

CLR P1.0 ; Tắt LED (P1.0 = 0)

CALL DELAY ; Gọi hàm trễ

SJMP MAIN ; Lặp vô hạn

DELAY: ; Hàm tạo trễ

MOV R7, #255

D1: MOV R6, #255

D2: DJNZ R6, D2

DJNZ R7, D1

RET ; Trả về chương trình chính

END

177 of 258

8. Cấu trúc chương trình hợp ngữ (2 tiết)

177

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

178 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Cấu trúc chương trình hợp ngữ (2 tiết)
  • Cấu trúc chương trình C (2 tiết)
  • Bài tập ứng dụng và kiểm tra (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp truyền thông (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

178

NỘI DUNG HỌC PHẦN

179 of 258

9. Cấu trúc chương trình C (2 tiết)

179

Chương 3: NGÔN NGỮ LẬP TRÌNH

180 of 258

9. Cấu trúc chương trình C (2 tiết)

180

Chương 3: NGÔN NGỮ LẬP TRÌNH

181 of 258

9. Cấu trúc chương trình C (2 tiết)

181

Chương 3: NGÔN NGỮ LẬP TRÌNH

182 of 258

9. Cấu trúc chương trình C (2 tiết)

182

Chương 3: NGÔN NGỮ LẬP TRÌNH

183 of 258

9. Cấu trúc chương trình C (2 tiết)

183

Chương 3: NGÔN NGỮ LẬP TRÌNH

184 of 258

9. Cấu trúc chương trình C (2 tiết)

184

Chương 3: NGÔN NGỮ LẬP TRÌNH

185 of 258

9. Cấu trúc chương trình C (2 tiết)

185

Chương 3: NGÔN NGỮ LẬP TRÌNH

186 of 258

9. Cấu trúc chương trình C (2 tiết)

186

Chương 3: NGÔN NGỮ LẬP TRÌNH

187 of 258

9. Cấu trúc chương trình C (2 tiết)

187

Chương 3: NGÔN NGỮ LẬP TRÌNH

188 of 258

9. Cấu trúc chương trình C (2 tiết)

188

Chương 3: NGÔN NGỮ LẬP TRÌNH

189 of 258

9. Cấu trúc chương trình C (2 tiết)

189

Chương 3: NGÔN NGỮ LẬP TRÌNH

Cấu trúc WHILE trong C

Cấu trúc WHILE (điều kiện) { ... } trong C có dạng:

while (condition) {

// Nội dung vòng lặp

}

190 of 258

9. Cấu trúc chương trình C (2 tiết)

190

Chương 3: NGÔN NGỮ LẬP TRÌNH

Ví dụ: Vòng lặp WHILE đếm từ 10 về 0

#include <stdio.h>

int main() {

int R0 = 10; // Gán R0 = 10

while (R0 != 0) { // Nếu R0 ≠ 0, tiếp tục lặp

printf("Giá trị R0: %d\n", R0);

R0--; // Giảm R0

}

return 0;

}

191 of 258

9. Cấu trúc chương trình C (2 tiết)

191

Chương 3: NGÔN NGỮ LẬP TRÌNH

Cấu trúc DO-WHILE trong C

Cấu trúc DO { ... } WHILE (điều kiện); trong C có dạng:

do {

// Nội dung vòng lặp

} while (condition);

192 of 258

9. Cấu trúc chương trình C (2 tiết)

192

Chương 3: NGÔN NGỮ LẬP TRÌNH

Ví dụ: Vòng lặp DO-WHILE đếm từ 5 về 0

#include <stdio.h>

int main() {

int R1 = 5; // Gán R1 = 5

do {

printf("Giá trị R1: %d\n", R1);

R1--; // Giảm R1

} while (R1 != 0); // Nếu R1 ≠ 0, tiếp tục lặp

return 0;

}

193 of 258

9. Cấu trúc chương trình C (2 tiết)

193

Chương 3: NGÔN NGỮ LẬP TRÌNH

Cấu trúc REPEAT-UNTIL trong C

Trong C không có REPEAT ... UNTIL trực tiếp như Pascal, nhưng có thể thay thế bằng DO-WHILE với điều kiện phủ định.

do {

// Nội dung vòng lặp

} while (!condition);

194 of 258

9. Cấu trúc chương trình C (2 tiết)

194

Chương 3: NGÔN NGỮ LẬP TRÌNH

Ví dụ: Lặp lại giảm giá trị R2 từ 10 về 0 và dừng khi R2 = 0

#include <stdio.h>

int main() {

int R2 = 10; // Gán R2 = 10

do {

printf("Giá trị R2: %d\n", R2);

R2--; // Giảm R2

} while (R2 != 0); // Nếu R2 ≠ 0, tiếp tục lặp

return 0;

}

195 of 258

9. Cấu trúc chương trình C (2 tiết)

195

Chương 3: NGÔN NGỮ LẬP TRÌNH

Cấu trúc IF trong C

Cấu trúc IF (điều kiện) { ... } trong C có dạng:

if (condition) {

// Lệnh thực hiện nếu điều kiện đúng

}

196 of 258

9. Cấu trúc chương trình C (2 tiết)

196

Chương 3: NGÔN NGỮ LẬP TRÌNH

Ví dụ: Nếu giá trị R0 = 5, thì bật LED tại P1.0

#include <reg51.h>

void main() {

unsigned char R0 = 5;

if (R0 == 5) {

P1_0 = 1; // Bật LED tại P1.0

}

while (1); // Vòng lặp vô hạn

}

197 of 258

9. Cấu trúc chương trình C (2 tiết)

197

Chương 3: NGÔN NGỮ LẬP TRÌNH

Cấu trúc IF-ELSE trong C

Cấu trúc IF ... ELSE trong C có dạng:

if (condition) {

// Lệnh thực hiện nếu điều kiện đúng

} else {

// Lệnh thực hiện nếu điều kiện sai

}

198 of 258

9. Cấu trúc chương trình C (2 tiết)

198

Chương 3: NGÔN NGỮ LẬP TRÌNH

Ví dụ: Nếu R0 = 5, bật LED tại P1.0, ngược lại tắt LED

#include <reg51.h>

void main() {

unsigned char R0 = 5;

if (R0 == 5) {

P1_0 = 1; // Bật LED

} else {

P1_0 = 0; // Tắt LED

}

while (1);

}

199 of 258

9. Cấu trúc chương trình C (2 tiết)

199

Chương 3: NGÔN NGỮ LẬP TRÌNH

Cấu trúc IF-ELSE IF-ELSE trong C

Cấu trúc IF ... ELSE IF ... ELSE trong C có dạng:

if (condition1) {

// Xử lý khi condition1 đúng

} else if (condition2) {

// Xử lý khi condition2 đúng

} else {

// Xử lý nếu không điều kiện nào đúng

}

200 of 258

9. Cấu trúc chương trình C (2 tiết)

200

Chương 3: NGÔN NGỮ LẬP TRÌNH

Ví dụ: Nếu R0 = 1 bật LED, nếu R0 = 2 tắt LED, nếu khác thì nhấp nháy LED

#include <reg51.h>

void delay() {

int i;

for (i = 0; i < 30000; i++); // Tạo trễ

}

void main() {

unsigned char R0 = 2;

if (R0 == 1) {

P1_0 = 1; // Bật LED

} else if (R0 == 2) {

P1_0 = 0; // Tắt LED

} else {

while (1) {

P1_0 = !P1_0; // Nhấp nháy LED

delay();

}

}

while (1);

}

201 of 258

9. Cấu trúc chương trình C (2 tiết)

201

Chương 3: NGÔN NGỮ LẬP TRÌNH

202 of 258

9. Cấu trúc chương trình C (2 tiết)

202

Chương 3: NGÔN NGỮ LẬP TRÌNH

203 of 258

9. Cấu trúc chương trình C (2 tiết)

203

Chương 3: NGÔN NGỮ LẬP TRÌNH

204 of 258

9. Cấu trúc chương trình C (2 tiết)

Chương trình timer

204

Chương 3: NGÔN NGỮ LẬP TRÌNH

Chương trình con

TMOD = 0x01; Tomer0, chế độ 1 (16 bit)

TH0=0xFF; // Đếm bao xung???

TL0 =0x9C;

TR0=1; ‘’ kích hoạt timer

while (!TF0) đợi timer tràng

TR0=0; TF0=0 ; // xoá

Kết thúc CT con

205 of 258

9. Cấu trúc chương trình C (2 tiết)

Chương trình truyền thông

205

Chương 3: NGÔN NGỮ LẬP TRÌNH

#include<at89x51.h>         //khai báo thư viện cho 89c51

void send(unsigned char a);  //khai báo nguyên mẫu hàm

main()         //Chương trình chính

{     

TMOD=0x20;    //Chọn Timer1, chế độ 2

   TH1=0xFA; //Cài đặt tốc độ 4800 baud

SCON=0x50;   //0101 0000: Chọn chế độ 1, Cho phép nhận

TR1=1;              //Khởi động Timer1

  while(1)                //Vòng lặp vô hạn

 {   send('D');  //Gọi hàm gửi 1 ký tự

……………………..

      }

}

void send(unsigned char a)     //Định nghĩa hàm gửi 1 ký tự

{

            SBUF=a;                                //Ghi 1 byte dữ liệu vào thanh ghi SBUF

            while(TI==0){}                    //vòng lặp để đợi cờ truyền TI lên 1

            TI=0;                                      //Xóa cờ truyền TI sau khi truyền xong

}

206 of 258

9. Cấu trúc chương trình C (2 tiết)

Chương trình ngắt

206

Chương 3: NGÔN NGỮ LẬP TRÌNH

Trong lập trình C trên Keil c cho 8051, chúng ta khai báo trình phục vụ ngắt theo cấu trúc sau:

Void Name (void) interrupt X //( X: là số thứ tự của ngắt )

{

// chương trình phục vụ ngắt

}Khi đó địa chỉ ngắt sẽ được tự động tính bằng

Interrupt Address = (X * 8) + 3

207 of 258

9. Cấu trúc chương trình C (2 tiết)

Chương trình ngắt

207

Chương 3: NGÔN NGỮ LẬP TRÌNH

#include<at89x51.h>

main()

{

//a)

IE=0x96; //1001 0110: lệnh này tương đương với 4 lệnh phía dưới

EA=1; //Cho phép sử dụng ngắt

ES=1; //Cho phép ngắt cổng nối tiếp

ET0=1; //Cho phép ngắt timer0

EX1=1; //Cho phép ngắt ngoài 1

while(1)

{

//Chương trình chính

//…

}

}

208 of 258

9. Cấu trúc chương trình C (2 tiết)

Chương trình ngắt

208

Chương 3: NGÔN NGỮ LẬP TRÌNH

void ctngattimer0(void) interrupt 1

{

}

void ctngatngoai1(void) interrupt 2

{ // chuong trình ph?c v? ng?t

}

void ctngattruyenthongnoitiep(void) interrupt 4

{ // chuong trình ph?c v? ng?t

}

209 of 258

9. Cấu trúc chương trình C (2 tiết)

Cấu trúc CT chính

209

Chương 3: NGÔN NGỮ LẬP TRÌNH

210 of 258

9. Cấu trúc chương trình C (2 tiết)

Ví dụ chương trình

210

Chương 3: NGÔN NGỮ LẬP TRÌNH

211 of 258

9. Cấu trúc chương trình C (2 tiết)

211

Chương 2: VI ĐIỀU KHIỂN HỌ 8051

212 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Cấu trúc chương trình hợp ngữ (2 tiết)
  • Cấu trúc chương trình C (2 tiết)
  • Bài tập ứng dụng và kiểm tra (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp truyền thông (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

212

NỘI DUNG HỌC PHẦN

213 of 258

10. Bài tập ứng dụng và kiểm tra (2 tiết)

213

Chương 3: NGÔN NGỮ LẬP TRÌNH

Phần mềm MIDE

Có rất nhiều phần mềm cài đặt và dịch hợp có thể chuyển file C, ASM... thành file *.hex. Ở đây ta giới thiệu 1 phiên bản MIDE-51 dùng soạn thảo và hợp dịch sang file hex đồng thời có thể xem simulation trong bộ nhớ nội. Để cài đặt cần máy tính chạy trên nền Windown, nhắp đúp vào biểu tượng MIDE-51.exe

214 of 258

10. Bài tập ứng dụng và kiểm tra (2 tiết)

214

Chương 3: NGÔN NGỮ LẬP TRÌNH

Giao diện

215 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Cấu trúc chương trình hợp ngữ (2 tiết)
  • Cấu trúc chương trình C (2 tiết)
  • Bài tập ứng dụng và kiểm tra (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp truyền thông (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

215

NỘI DUNG HỌC PHẦN

216 of 258

11. Giao tiếp vào ra đơn bít (2 tiết)

Đèn LED

216

Chương 4: GIAO TIẾP NGOẠI VI

217 of 258

11. Giao tiếp vào ra đơn bít (2 tiết)

Nút bấm

217

Chương 4: GIAO TIẾP NGOẠI VI

218 of 258

11. Giao tiếp vào ra đơn bít (2 tiết)

Hiệu ứng 8 LED đơn khi sử dụng nút bấm

218

Chương 4: GIAO TIẾP NGOẠI VI

219 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Cấu trúc chương trình hợp ngữ (2 tiết)
  • Cấu trúc chương trình C (2 tiết)
  • Bài tập ứng dụng và kiểm tra (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp ma quét ra (2 tiết)
  • Giao tiếp ma quét vào (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

219

NỘI DUNG HỌC PHẦN

220 of 258

12. Giao tiếp ma quét (2 tiết)

LED 7 đoạn

P0=11111001 = F9H

220

Chương 4: GIAO TIẾP NGOẠI VI

221 of 258

12. Giao tiếp ma quét (2 tiết)

LED 7 đoạn

221

Chương 4: GIAO TIẾP NGOẠI VI

222 of 258

12. Giao tiếp ma quét (2 tiết)

LED 7 đoạn

Thực hiện lập trình đếm 1 số, 2 số

222

Chương 4: GIAO TIẾP NGOẠI VI

223 of 258

12. Giao tiếp ma quét (2 tiết)

Dưới đây là chương trình hợp ngữ 8051 để điều khiển 4 LED 7 đoạn theo phương pháp quét LED.

Cách hoạt động:

  • Cổng P2.0, P2.1, P2.2, P2.3 dùng để quét 4 LED.
  • Cổng P0 xuất mã hiển thị LED 7 đoạn.
  • Hiển thị các số lần lượt trên 4 LED bằng phương pháp quét liên tục.

223

Chương 4: GIAO TIẾP NGOẠI VI

224 of 258

12. Giao tiếp ma quét (2 tiết)

Phím matrix

224

Chương 4: GIAO TIẾP NGOẠI VI

225 of 258

12. Giao tiếp ma quét (2 tiết)

LED ma trix

225

Chương 4: GIAO TIẾP NGOẠI VI

226 of 258

12. Giao tiếp ma quét (2 tiết)

LED ma trix

226

Chương 4: GIAO TIẾP NGOẠI VI

227 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Cấu trúc chương trình hợp ngữ (2 tiết)
  • Cấu trúc chương trình C (2 tiết)
  • Bài tập ứng dụng và kiểm tra (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp ma quét ra (2 tiết)
  • Giao tiếp ma quét vào (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

227

NỘI DUNG HỌC PHẦN

228 of 258

12. Giao tiếp ma quét (2 tiết)

Phím matrix

228

Chương 4: GIAO TIẾP NGOẠI VI

229 of 258

12. Giao tiếp ma quét (2 tiết)

Phím matrix

229

Chương 4: GIAO TIẾP NGOẠI VI

230 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Cấu trúc chương trình hợp ngữ (2 tiết)
  • Cấu trúc chương trình C (2 tiết)
  • Bài tập ứng dụng và kiểm tra (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp truyền thông (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

230

NỘI DUNG HỌC PHẦN

231 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

Màn hình LCD

231

Chương 4: GIAO TIẾP NGOẠI VI

232 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

232

Chương 4: GIAO TIẾP NGOẠI VI

LCD

233 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

233

Chương 4: GIAO TIẾP NGOẠI VI

LCD

234 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

234

Chương 4: GIAO TIẾP NGOẠI VI

Màn tinh thể lỏng LCD

Màn hình tinh thể lỏng LCD 02_16

Chân RS: “Register Select” =1/0 🡪 hiển thị dữ liệu/tín hiệu đk

Chân R/W: “Read/Write” =1/0 🡪 đọc/ghi lên LCD

Chân E: “Enable” =1/0 🡪 cho phép/chốt dữ liệu lên LCD

Màn hình tinh thể lỏng LCD 08_24

Tương tự như LCD 04_16 có 2 chân E1, E2 dùng nửa trên và nửa dưới của màn hình.

LCD

235 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

235

Chương 4: GIAO TIẾP NGOẠI VI

LCD

236 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

236

Chương 4: GIAO TIẾP NGOẠI VI

LCD

237 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

237

Chương 4: GIAO TIẾP NGOẠI VI

LCD

238 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

238

Chương 4: GIAO TIẾP NGOẠI VI

LCD

239 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

239

Chương 4: GIAO TIẾP NGOẠI VI

LCD

Chuỗi ký tự

240 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

240

Chương 4: GIAO TIẾP NGOẠI VI

ADC

241 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

241

Chương 4: GIAO TIẾP NGOẠI VI

ADC

242 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

242

Chương 4: GIAO TIẾP NGOẠI VI

ADC

243 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

243

Chương 4: GIAO TIẾP NGOẠI VI

ADC

244 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

244

Chương 4: GIAO TIẾP NGOẠI VI

ADC

RD=“0” đọc data

CS= “0” chọn chip

CS= “1” dừng chip

WR=“0” cho chuyển đổi

WR=“1->0” bắt đầu chuyển đổi

INTR =“0” đã chuyển xong

Vref/2: điện áp tham chiếu

CLK IN và CLK R: dao động R = 10k và C= 150pF

fout = 606kHz

245 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

245

Chương 4: GIAO TIẾP NGOẠI VI

Doc_ADC:

;KHOI TAO BAN DAU

SETB P3.6; WR=1

SETB P3.7; INTR =1

SETB P3.5; RD =1

CLR P3.6;

JB P3.7,$ ;

CLR P3.5;

MOV A,P1 ;

ret

246 of 258

13. Giao tiếp vào ra dữ liệu (2 tiết)

246

Chương 4: GIAO TIẾP NGOẠI VI

Hien_thi:

MOV A,#38H;

CALL DIEUKHIEN

CALL DELAY

MOV A,#01H

CALL DIEUKHIEN

CALL DELAY

MOV A,#0EH

CALL DIEUKHIEN

CALL DELAY

MOV A,#P1

CALL HIENTHI

CALL DELAY

RET

247 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Cấu trúc chương trình hợp ngữ (2 tiết)
  • Cấu trúc chương trình C (2 tiết)
  • Bài tập ứng dụng và kiểm tra (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp động cơ (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

247

NỘI DUNG HỌC PHẦN

248 of 258

14. Giao tiếp động cơ (2 tiết)

248

Chương 4: GIAO TIẾP NGOẠI VI

org 00

LL:

Mov P1, #00000001b

Call delay

Mov P1, #00000010b

Call delay

Mov P1, #00000100b

Call delay

Mov P1, #00001000b

Call delay

JMP LL

249 of 258

14. Giao tiếp động cơ (2 tiết)

249

Chương 4: GIAO TIẾP NGOẠI VI

PWM

250 of 258

14. Giao tiếp động cơ (2 tiết)

250

Chương 4: GIAO TIẾP NGOẠI VI

PWM

251 of 258

14. Giao tiếp động cơ (2 tiết)

251

Chương 4: GIAO TIẾP NGOẠI VI

Viết timer 10us

Viết timer (10x)us

Viết chương trình điều khiển PWM đủ 1 chu kỳ Sin (Tần số băm 1kHz, chu kỳ băm 100 xung)

252 of 258

  • Lịch sử phát triển và cấu trúc bộ vi xử lý (2 tiết)
  • Các cơ số tính toán nhị phân (2 tiết)
  • Cấu trúc và bộ nhớ họ 8051 (2 tiết)
  • Chức năng timer counter (2 tiết)
  • Chức năng truyền thông (2 tiết)
  • Chức năng ngắt (2 tiết)
  • Tập lệnh họ 8051 (2 tiết)
  • Cấu trúc chương trình hợp ngữ (2 tiết)
  • Cấu trúc chương trình C (2 tiết)
  • Bài tập ứng dụng và kiểm tra (2 tiết)
  • Giao tiếp vào ra đơn bít (2 tiết)
  • Giao tiếp ma quét (2 tiết)
  • Giao tiếp vào ra dữ liệu (2 tiết)
  • Giao tiếp động cơ (2 tiết)
  • Giao tiếp truyền thông (2 tiết)

252

NỘI DUNG HỌC PHẦN

253 of 258

15. Giao tiếp truyền thông (2 tiết)

253

Chương 4: GIAO TIẾP NGOẠI VI

RS232

254 of 258

15. Giao tiếp truyền thông (2 tiết)

254

Chương 4: GIAO TIẾP NGOẠI VI

RS232

255 of 258

15. Giao tiếp truyền thông (2 tiết)

255

Chương 4: GIAO TIẾP NGOẠI VI

Đề số 1: Giao tiếp RS232

Thực hiện theo https://www.youtube.com/watch?v=MscslGSbFBQ

256 of 258

15. Giao tiếp truyền thông (2 tiết)

256

Chương 4: GIAO TIẾP NGOẠI VI

Đề số 2: Giao tiếp RS485

257 of 258

15. Giao tiếp truyền thông (2 tiết)

257

Chương 4: GIAO TIẾP NGOẠI VI

Đề số 3: Giao tiếp không dây hồng ngoại IR

Giao tiếp hồng ngoại https://drive.google.com/file/d/1pP2jo6reqWvtkggdb5bfE7mppxLS1OFU/view?usp=sharing

258 of 258

Thank you

For your attention

258