Tải bản đầy đủ (.pdf) (24 trang)

Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (543.14 KB, 24 trang )

Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



1


Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



2

Bài 1: Cho biết địa chỉ bắt đầu của một vùng nhớ RAM là 00000H và dung lượng của vùng
nhớ này là 645KB. Hãy xác định đại chỉ vật lý cuối cùng của vùng nhớ này.

Bài làm:

Ta có dung lượng của vùng nhớ:
10
645KB 645 2 660480byte A1400H
   
Địa chỉ vật lý cuối cùng của vùng nhớ là:
A1400H-1=A13FFH


Bài 2: Thực hiện kết nối hệ thống 80286 với các dung lượng nhớ sau:



Cho biết vùng địa chỉ của từng bộ nhớ trong các bản đồ (các bộ nhớ đều có 16 bit dữ liệu).



Bài làm:

Câu a:


Ta có công thức: Dung lượng bộ nhớ =
A
2 D



Trong đó: A: đường địa chỉ; D: số bit dữ liệu

Ta có dung lượng bộ nhớ:
2 20 22
4M 2 2 2
  


22 A A 4
2 2 16 2 2
    


22
18 A
4
2
2 2

2
  


A 18
 
là số đường địa chỉ.

Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



3

Để giải mã 4 vùng nhớ 4MB ta cần 2 đường địa chỉ (
2
2 4

). Vi xử lý 80286 có 24 đường địa
chỉ, ta chỉ dùng 18+2 = 20 đường địa chỉ.

Bảng phân vùng địa chỉ EFROM (4M)

19
A

18
A

17

A

16
A

15
A

14
A

13
A

12
A

11
A

10
A

9
A

8
A

7

A

6
A

5
A

4
A

3
A

2
A

1
A

0
A

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 00000H đến 3FFFFH


Bảng phân vùng địa chỉ EFROM (4M)


19
A

18
A

17
A

16
A

15
A

14
A

13
A

12
A

11
A

10
A


9
A

8
A

7
A

6
A

5
A

4
A

3
A

2
A

1
A

0
A


0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 40000H đến 7FFFFH


Bảng phân vùng địa chỉ SRAM (4M)

19
A

18
A

17
A

16
A

15
A

14
A

13
A


12
A

11
A

10
A

9
A

8
A

7
A

6
A

5
A

4
A

3
A


2
A

1
A

0
A

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 80000H đến BFFFFH


Bảng phân vùng địa chỉ SRAM (4M)

19
A

18
A

17
A

16
A

15

A

14
A

13
A

12
A

11
A

10
A

9
A

8
A

7
A

6
A

5

A

4
A

3
A

2
A

1
A

0
A

1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ C0000H đến FFFFFH










Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



4


Câu b:




Ta có công thức: Dung lượng bộ nhớ =
A
2 D



Trong đó: A: đường địa chỉ; D: số bit dữ liệu

Ta có dung lượng bộ nhớ:
1 20 21
2M 2 2 2
  


21 A A 4
2 2 16 2 2
    



21
17 A
4
2
2 2
2
  


A 17
 
là số đường địa chỉ.

Để giải mã 8 vùng nhớ 2MB ta cần 3 đường địa chỉ (
3
2 8

). Vi xử lý 80286 có 24 đường địa
chỉ, ta chỉ dùng 17+3 = 20 đường địa chỉ.

Bảng phân vùng địa chỉ SRAM (2M)

19
A

18
A

17

A

16
A

15
A

14
A

13
A

12
A

11
A

10
A

9
A

8
A

7

A

6
A

5
A

4
A

3
A

2
A

1
A

0
A

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 00000H đến 1FFFFH


Bảng phân vùng địa chỉ SRAM (2M)


19
A

18
A

17
A

16
A

15
A

14
A

13
A

12
A

11
A

10
A


9
A

8
A

7
A

6
A

5
A

4
A

3
A

2
A

1
A

0
A


0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 20000H đến 3FFFFH



Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



5

Bảng phân vùng địa chỉ SRAM (4M)

19
A

18
A

17
A

16
A

15
A


14
A

13
A

12
A

11
A

10
A

9
A

8
A

7
A

6
A

5
A


4
A

3
A

2
A

1
A

0
A

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 40000H đến 7FFFFH

Bảng phân vùng địa chỉ EPROM (8M)

19
A

18
A


17
A

16
A

15
A

14
A

13
A

12
A

11
A

10
A

9
A

8
A


7
A

6
A

5
A

4
A

3
A

2
A

1
A

0
A

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 80000H đến FFFFFH

Câu c:


Tương tự: với dung lượng nhớ 4M ta có A = 18 đường địa chỉ.

Để giải mã 4 vùng nhớ 4MB ta cần 2 đường địa chỉ (
2
2 4

). Vi xử lý 80286 có 24 đường địa
chỉ, ta chỉ dùng 18+2 = 20 đường địa chỉ.

Bảng phân vùng địa chỉ SRAM (8M)

19
A

18
A

17
A

16

A

15
A

14
A

13
A

12
A

11
A

10
A

9
A

8
A

7
A

6

A

5
A

4
A

3
A

2
A

1
A

0
A

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 00000H đến 7FFFFH

Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7




6

Bảng phân vùng địa chỉ EPROM (4M)

19
A

18
A

17
A

16
A

15
A

14
A

13
A

12
A

11

A

10
A

9
A

8
A

7
A

6
A

5
A

4
A

3
A

2
A

1

A

0
A

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 80000H đến BFFFFH

Bảng phân vùng địa chỉ EPROM (4M)

19
A

18
A

17
A

16
A

15
A

14
A


13
A

12
A

11
A

10
A

9
A

8
A

7
A

6
A

5
A

4
A


3
A

2
A

1
A

0
A

1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ C0000H đến FFFFFH

Câu d:


Tương tự: với dung lượng nhớ 2M ta có A = 17 đường địa chỉ.

Để giải mã 8 vùng nhớ 2MB ta cần 3 đường địa chỉ (
3
2 8

). Vi xử lý 80286 có 24 đường địa
chỉ, ta chỉ dùng 17+3 = 20 đường địa chỉ.

Bảng phân vùng địa chỉ SRAM (2M)


19
A

18
A

17
A

16
A

15
A

14
A

13
A

12
A

11
A

10
A


9
A

8
A

7
A

6
A

5
A

4
A

3
A

2
A

1
A

0
A


0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 00000H đến 1FFFFH

Bảng phân vùng địa chỉ SRAM (4M)

19
A

18
A

17
A

16
A

15
A

14
A

13
A

12

A

11
A

10
A

9
A

8
A

7
A

6
A

5
A

4
A

3
A

2

A

1
A

0
A

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



7

Vậy vùng địa chỉ của bộ nhớ từ 20000H đến 5FFFFH

Bảng phân vùng địa chỉ SRAM (2M)

19
A

18
A

17

A

16
A

15
A

14
A

13
A

12
A

11
A

10
A

9
A

8
A

7

A

6
A

5
A

4
A

3
A

2
A

1
A

0
A

0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 60000H đến 7FFFFH

Bảng phân vùng địa chỉ EPROM (8M)


19
A

18
A

17
A

16
A

15
A

14
A

13
A

12
A

11
A

10
A


9
A

8
A

7
A

6
A

5
A

4
A

3
A

2
A

1
A

0
A


1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 80000H đến FFFFFH

Câu e:


Tương tự: với dung lượng nhớ 4M ta có A = 18 đường địa chỉ.

Để giải mã 4 vùng nhớ 4MB ta cần 2 đường địa chỉ (
2
2 4

). Vi xử lý 80286 có 24 đường địa
chỉ, ta chỉ dùng 18+2 = 20 đường địa chỉ.

Bảng phân vùng địa chỉ EFROM (4M)

19
A

18
A


17
A

16
A

15
A

14
A

13
A

12
A

11
A

10
A

9
A

8
A


7
A

6
A

5
A

4
A

3
A

2
A

1
A

0
A

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 0H đến 3FFFFH




Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



8

Bảng phân vùng địa chỉ SRAM (8M)

19
A

18
A

17
A

16
A

15
A

14
A

13
A


12
A

11
A

10
A

9
A

8
A

7
A

6
A

5
A

4
A

3
A


2
A

1
A

0
A

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 40000H đến BFFFFH

Bảng phân vùng địa chỉ EFROM (4M)

19
A

18
A

17
A

16
A


15
A

14
A

13
A

12
A

11
A

10
A

9
A

8
A

7
A

6
A


5
A

4
A

3
A

2
A

1
A

0
A

1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ CFFFFH đến FFFFFH

Câu f:




Tương tự: với dung lượng nhớ 2M ta có A = 17 đường địa chỉ.


Để giải mã 6 vùng nhớ 2MB ta cần 3 đường địa chỉ (
3
2 8 6
 
). Vi xử lý 80286 có 24 đường
địa chỉ, ta chỉ dùng 17+3 = 20 đường địa chỉ.

Bảng phân vùng địa chỉ SRAM (4M)

19
A

18
A

17
A

16
A

15
A

14
A

13
A


12
A

11
A

10
A

9
A

8
A

7
A

6
A

5
A

4
A

3
A


2
A

1
A

0
A

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 00000H đến 3FFFFH




Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



9

Bảng phân vùng địa chỉ SRAM (2M)

19
A


18
A

17
A

16
A

15
A

14
A

13
A

12
A

11
A

10
A

9
A


8
A

7
A

6
A

5
A

4
A

3
A

2
A

1
A

0
A

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1


Vậy vùng địa chỉ của bộ nhớ từ 40000H đến 5FFFFH

Bảng phân vùng địa chỉ SRAM (4M)

19
A

18
A

17
A

16
A

15
A

14
A

13
A

12
A

11

A

10
A

9
A

8
A

7
A

6
A

5
A

4
A

3
A

2
A

1

A

0
A

0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ 60000H đến 9FFFFH

Bảng phân vùng địa chỉ EPROM (2M)

19
A

18
A

17
A

16
A

15
A

14

A

13
A

12
A

11
A

10
A

9
A

8
A

7
A

6
A

5
A

4

A

3
A

2
A

1
A

0
A

1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vậy vùng địa chỉ của bộ nhớ từ A0000H đến CFFFFH

Bài 3: Thực hiện cổng ra điều khiển 8 LED đơn có địa chỉ là F000H

Bài làm:

Ta có: địa chỉ F000H = 1111 0000 0000 0000H (16 đường)

Để giải mã chọn IC chốt ngõ ra tác động mức 0 tại địa chỉ F000H ta dùng cổng NAND và
cổng đảo (NOT) ở ngõ vào các bit 0.

Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7




10

12
12
12
12
U6
74LS373
D0
3
D1
4
D2
7
D3
8
D4
13
D5
14
D6
17
D7
18
OE
1
LE
11

Q0
2
Q1
5
Q2
6
Q3
9
Q4
12
Q5
15
Q6
16
Q7
19
VCC
20
GND
10
D1 D2 D3 D4 D5 D6 D7 D8
R1 R2 R3 R4 R5 R6 R7 R8
+5V
12
12
+5V
DATA
1
1
1

1
0
0
0
0
0
0
0
0
0
0
0
0
U8
NAND16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

16
17
12
12
12
12
12
12


Bài 4: Thực hiện cổng vào nhận dữ liệu từ 8 phím nhấn có địa chỉ là F000H.

Bài làm:

Sơ đồ nguyên lý mô tả kết nối giữa thiết bị vào bao gồm 8 công tắc nhấn với hệ thống
vi xử lý 80286:
 Để 74LS245 chuyển trạng thái của nút bấm tại địa chỉ F000H = 1111 0000 0000
0000H (16 đường) thì chân
E
phải tác động mức 0. Như vậy ta phải dùng cổng NOT
đảo mức logic ở các bit 0 của cổng NAND 16 đường vào.
 Ngoài ra mạch còn có 82284 để CPU hoạt động.
 Các nút bấm được cung cấp mức 0 khi bấm và mức 1 khi hở.
 Khi 80286 thực hiện lệnh OUT cung cấp địa chỉ F000H, ngõ
ra cổng NAND sẽ có mức logic 0
 IC 74LS245 sẽ được phép hoạt động, với tín hiệu DIR =1, trạng thái các nút nhấn sẽ
chuyển qua 74LS245 từ A => B vào BUS dữ liệu và đưa tới thanh ghi bên trong
80286
 Để kiểm tra có nút nào được ấn không có thể thực hiện các đoạn lệnh sau:
MOV DX, 0F000H

L1: IN AL, DX
CMP AL, 0FFH
JE,L1
Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



11


 Nếu không có nút nào nhấn, thanh ghi AL sẽ có giá trị bằng 0FFH và lệnh JE sẽ quay
lại tiếp tục nhận dữ liệu và kiểm tra cho tới lúc có nút được bấm.


U2 80286
A0
34
A1
33
A2
32
A3
28
A4
27
A5
26
A6
25
A7

24
A8
23
A9
22
A10
21
A11
20
A12
19
A13
18
A14
17
A15
16
A16
15
A17
14
A18
13
A19
12
A20
11
A21
10
A22

8
A23
7
S0
5
S1
4
BHE
1
COD/I NTA
66
HLDA
65
LOCK
68
M/IO
67
PEACK
6
READY
63
CLK
31
RST
29
NMI
59
INTR
57
HOLD

64
ERR OR
53
BUSY
54
PEREQ
61
CAP
52
D0
36
D1
38
D2
40
D3
42
D4
44
D5
46
D6
48
D7
50
D8
37
D9
39
D10

41
D11
43
D12
45
D13
47
D14
49
D15
51
R1
10K
C4
10uF
+5V
U18 74LS245
A0
2
A1
3
A2
4
A3
5
A4
6
A5
7
A6

8
A7
9
G
19
DIR
1
B0
18
B1
17
B2
16
B3
15
B4
14
B5
13
B6
12
B7
11
330x8
12
12
12
12
12
+5V

10K
12
U8
NAN D16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
12
12
12
12
12
12
RESET
U17
82284

S0
15
S1
16
VCC
18
GND
9
X1
7
X2
8
ARD Y
1
AY EN
17
SRD Y
2
SY EN
3
EFI
5
RES
11
F/C
6
READY
4
CLK
10

RESET
12
PCLK
13
SW1
SW2
SW3
SW4
SW5
SW6
SW7
SW8
XTAL
12MHz
C2
30p
C3
30p
+5V



Bài 5: Cho biết địa chỉ logic của ô nhớ là BA00H:D1AFH
a. Hãy cho biết địa chỉ vật lý của ô nhớ này.
b. Hãy cho 5 ví dụ về các địa chỉ logic khác


Bài làm:

a. Vì 80286 có 24 đường địa chỉ, vậy địa chỉ vật lý của ô nhớ là: xxBA00H :

xxD1AFH
b. Với xx là số bất kỳ (từ 00 đến FF), ta có 5 ví dụ về các địa chỉ logic khác:

1. 57BA00H:58D1AFH
2. 60BA00H:64D1AFH
3. 66BA00H:69D1AFH
4. 73BA00H:75D1AFH
5. 80BA00H:85D1AFH

Bài 7: Viết các lệnh hợp ngữ thực hiện các công việc sau:

a) Nạp số 3654H vào thanh ghi BP
b) Sao chép nội dung thanh ghi BP tới thanh ghi SP
c) Sao chép nội dung thanh ghi AX tới ô nhớ có địa chỉ offset=9876H
d) Tăng nội dung thanh ghi CX lên 1
e) Cộng 07H với DL
f) Lập bit MSB của AX lên 1 nhưng không làm ảnh hưởng đến các bit khác
g) Lập LSM của AX lên 1 nhưng không làm ảnh hưởng đến các bit khác
h) Che 4 bit cao của thanh ghi CL
Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



12

i) Nhân giá trị trong AH với 08
j) Nghịch đảo 4 bit thấp của thanh ghi DX mà không làm ảnh hưởng tới các bit khác
k) Lấy bù 2 nội dung thanh ghi BP

Bài làm:



a) mov BP,3654h ;Nạp số 3654H vào thanh ghi BP
b) mov SP,BP ;Sao chép BP vào SP
c) mov (9876h),AX ;Sao chép AX tới ô nhớ có địa chỉ offset 9876H
d) add CX,1 ;Tăng nội dung thanh ghi CX lên 1
e) add DL,07h ;Cộng 07h vào DL
f) or AX,10000000b ;MSB =1 không thay đổi các bit khác
g) or AX,00000001b ;LSB =1 không thay đổi các bit khác
h) and CL,0Fh ;Che 4 bit cao thanh ghi CL
i) mul 08h ;Nhân AX voi 08h
j) xor DX,00001111b ;Nghịch đảo 4 bit thấp DX, không thay đổi các bit khác
k) not BP ;Bù 1
add BP,1 ;Bù 2

Bài 8: Cho biết giá trị chứa trong thanh ghi AX sau khi 8088 thực hiện các lệnh sau:

MOV AX, 0
MOV BX, 2
MOV CX, 50
@:ADD AX, BX
ADD BX, 1
Loop @
Bài làm:


mov ax,0 ;ax=0
mov bx,2
mov cx,50
@: add ax,bx ;ax=2,5,9,14, …………ax=ax+bx+(1.x), x từ 0 đến 49

add bx,1
loop @ ;lặp 50 lần


Bài 11: Thiết kế hệ thống phần cứng vi xử lý thực hiện việc giám sát và đóng mở đèn quạt
cho một tòa nhà bao gồm 5 phòng (mỗi phòng có 8 đèn và 8 quạt). Khi một thiết bị chạy sẽ có
một đèn LED tương ứng sáng. Người sử dụng có thể tắt mở bất kỳ một thiết bị nào từ trung
tâm hoặc đóng mở điện cho từng phòng.

Bài làm:

 Yêu cầu điều khiển thiết bị của 5 phòng x(8 đèn + 8 quạt) = 80 thiết bị. Vậy cần 80
đường tín hiệu điều khiển output từ vi xử lý
 Một IC vi điều khiển 8051 có 32 đường xuất dữ liệu. Vậy cần 3 IC 8051 có 96 >80
đường xuất dữ liệu để thực hiện.
 Khi mức 1 xuất từ vi điều khiển làm transistor dẫn, kéo tiếp điểm Relay mở đèn hoặc
quạt.
Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



13

 Đèn LED mắc song song cuộn dây Relay được cấp nguồn cùng lúc với Relay nên
cũng sáng làm đèn giám sát thiết bị.
 Công tắc song song tiếp điểm Relay tạo thành cổng OR để người sử dụng bật tắt thiết
bị bằng tay.


U1

8051
PSEN
29
ALE
30
VCC
40
GND
20
EA
31
X1
19
X2
18
RST
9
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6

33
P0.7/AD7
32
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13

26
P2.6/A14
27
P2.7/A15
28
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT1
13
P3.4/T0
14
P3.5/T1
15
P3.6/WR
16
P3.7/RD
17
R1
10K
C1
10uF
+5V
XTAL
12MHz
C2
33p

C3
33p
RL1
4
3
1
2
Q1
2N2222
D1
LED
R2
R
LAMP
1
2
SW1
FAN 12
RL2
4
3
1
2
Q2
2N2222
D2
LED
R3
R
SW2

R4R5
220V AC
B2S
1 2
220V AC
B2S
1 2
+12V+12V


Bài 12: Thiết kế hệ thống một vi xử lý điều khiển động cơ bước có các thông số kỹ thuật:
12V/2A mỗi bước
o
1
. Biết rằng động cơ có 4 cuộn dây cấp điện theo xung, để nó quay theo
chiều kim đồng hồ cần cung cấp dữ liệu vào 4 đầu dây theo dữ liệu trong bảng sau:

Dây 1

Dây 2

Dây 3

Dây 4

Hexa

1 0 0 1 09
0 1 0 1 05
0 1 1 0 06

1 1 0 0 0A

Khi muốn động cơ quay ngược chiều kim đồng hồ có thể xuất dữ liệu với chiều ngược lại của
bảng trên đây. Hãy viết chương trình điều khiển động cơ quay 1 vòng theo chiều kim đồng hồ

o
90
theo chiều ngược lại.

Bài làm:

Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



14

L1 L2 L3
DÂY 2DÂY 1 DÂY 4DÂY 3 HEXA
06
05
09
4
3
2
1
STEP
0A
L4
11 00

11
11
11
0
0
00
00
VCC (COMMON)


Phân tích nhiệm vụ và yêu cầu :
 Động cơ quay thuận 1 bước được
o
1
=> quay 1 vòng
o
360
có 360 bước.
Vi điều khiển có 4 mã lệnh làm quay được 4 bước =
o
4

Như vậy, để động cơ quay 1 vòng =
o
360
cần có
360
90
4


lần lặp lại 4 mã lệnh
 Động cơ quay ngược
o
90
có 90 bước.
Vi điều khiển có 4 mã lệnh làm quay được 4 bước =
o
4

Như vậy, nếu 4 mã lệnh lặp lại 22 lần thì động cơ quay được
o o
22 4 88
 

Còn lại
o
2
ta cho quay thêm 2 bước nữa sẽ được
o
90
.

Chương trình nguồn được viết như sau:

org 00h
ban_dau:
mov r7, #90
quay_thuan:
mov p0, #09h
call delay

mov p0, #05h
call delay
mov p0, #06h
call delay
mov p0, #0ah
call delay
djnz r7, quay_thuan
mov r7, #22
quay_nguoc:
mov p0, #0ah
call delay
mov p0, #06h
call delay
mov p0, #05h
call delay
mov p0, #09h
call delay
djnz r7, quay_nguoc
mov p0, #0ah
call delay
mov p0, #06h
Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



15

call delay
jmp ban_dau
delay:

mov r5,#10
del1: mov r4,#255
djnz r4,$
djnz r5,del1
ret

end

Bài 13: Thiết kế hệ thống vi xử lý sử dụng vào ra song song PPI 8255 hoạt động ở chế độ 0
(mode 0) điều khiển bàn phím ma trận 16 phím và bộ hiển thị 8 led 7 đoạn điều khiển theo
kiểu quét như hình vẽ. Viết chương trình đọc các phím nhấn rồi hiển thị trên các led 7 đoạn,
phím đầu tiên sẽ hiển thị tại led bên phải, khi nhấn thêm 1 phím giá trị của các led bên phải sẽ
dịch chuyển về ben trái một vị trí.





Bài làm:

org 0

;ghi chu phan cung
;PA <- data led 7 (add: F000h)
;PB -> control led 7 (add: F001h)
;PC <- hex key (add: F002h)
;control (add: F003h)

mov 70h,#192 ;ma so 0
mov 71h,#127 ;ma so 1

mov 72h,#116 ;ma so 2
mov 73h,#134 ;ma so 3
mov 74h,#157 ;ma so 4
mov 75h,#139 ;ma so 5
mov 76h,#143 ;ma so 6
mov 77h,#123 ;ma so 7
mov 78h,#115 ;ma so 8
mov 79h,#165 ;ma so 9
mov 7ah,#158 ;ma so a
mov 7bh,#193 ;ma so b
Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



16

mov 7ch,#149 ;ma so c
mov 7dh,#102 ;ma so d
mov 7eh,#140 ;ma so e
mov 7fh,#141 ;ma so f

;khoi tao 8255
mov dptr,#0F003h ;dia chi thanh ghi dieu khien
mov a,#10000001b ;PA PB out, PC low in, PC high out
movx @dptr,a

repeat:
call scan_key
jc hienthi
call convert

hienthi:
call display

jmp repeat

scan_key: ;neu co nhan phim co c=1 va ket qua phim nhan luu vao a (tu 0 den 15), neu ko
nhan phim co c=0
;cho nhan phim
mov r4,#50 ;nhap so dem 50 lan cho an phim
phiman1:
call quetphim ;goi chuong trinh con quet phim , neu co phim an thi co c = 1
jc phiman4 ;kiem tra tiep neu c = 1
ret ;neu khong co phim an thi co c = 0 va quay ve
phiman4:
djnz r4,phiman1 ;quay ve lap lai 50 lan de chong doi co khi
mov b,a ;cat noi dung ma phim o thanh ghi a vua co duoc
;cho nha phim
phiman2:
mov r4,#50 ;nhap so dem 50 lan cho nha phim
phiman3:
call quetphim ;goi chuong trinh con quet phim , neu co phim an thi co c = 1
jc phiman2 ;co thi kiem tra lai
djnz r4,phiman3 ;khong thi lap lai 50 lan va dam bao phim da duoc nha
mov a,b ;lay lai noi dung ma phim vao thanh ghi a
setb c ;co phim an
ret

quetphim:
;doc trang thai ban phim , neu co phim an thi co c =1 , ma phim luu trong a
;khong co phim an thi co c = 0

mov a,#0feh ;bat dau o cot so 0 , cho 1 cot xuong muc 0
mov r6,#4 ;su dung r6 lam bo dem , 4 vi co 4 cot
quetphim1:
;tich cuc cot , cho cot 0 xuong muc 0
mov dptr,#0F002 ;port C
movx @dptr,a

mov r7,a ;luu a
Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



17

;doc lai port C de xu ly tiep
movx a,@dptr

anl a,#0f0h ;cach ly hang , neu phim nhan thi hang = 0 , 0 and 1 = 0
cjne a,#0f0h,anphim ;hang co tich cuc khong , neu co phim an p2 <> 0f0h , dua den
chuong trinh an ;phim de tinh toan
mov a,r7 ;neu khong co phim an a = 0f0h , lay lai noi dung a
rl a ;xoay a de di chuyen den cot ke tiep
djnz r6,quetphim1 ;neu nhu 1 cot khong co phim nhan thi quay lai
quetphim1 de ktra cot ke tiep

clr c ;cho c= 0 neu khong co phim nhan
mov a,#0ffh ;cho a= 0ffh neu khong co phim nhan
ret
anphim:
;neu co phim an ta xu ly nhu sau :

;lay 4 - r6 duoc ma o hang dau tien ( trong so )
;neu nhu ktra thay so o hang ke tiep thi tuan theo quy luat sau :
;hang 1 se lan luot la : 0=0,1=1,2=2.4,3=3 ( cong 0 so 4 )
;hang 2 se lan luot la : 4=0+4,5=1+4,6=2+4,7=3+4 ( cong 1 so 4 )
;hang 3 se lan luot la : 8=0+4+4,9=1+4+4,a=2+4+4,b=3+4+4 ( cong 2 so 4 )
;hang 4 se lan luot la : c=0+4+4+4,d=1+4+4+4,e=2+4+4+4,f=3+4+4+4 ( cong 3 so 4 )

mov r7,a ;chua noi dung port 2 khi co phim an
mov a,#4 ;nhap so 4 vao a de chuan bi tinh toan
clr c
subb a,r6 ;4-r6=so nhan , trong so cot(0,1,2,3) , r6 cho biet dang o cot nao
mov r6,a ;ket qua luu vao r6
mov a,r7 ;phuc hoi lai ma quet , a chua noi dung hang duoc kiem tra
swap a ;dat trong 4 bit thap

mov r5,#4 ;dung r5 lam bo dem de dich 4 bit ma quet cho den khi c=0,hang tich
cuc duoc tim thay
anphim1:
rrc a ;luc nay co c=0
jnc anphim2 ;phat hien dung phim nhan
inc r6 ;moi lan dich co c neu chua bang 0 thi r6=4+r6 ( r6 la trong so cot )
inc r6 ;neu khong phai hang dang kiem tra thi tang len 4
inc r6
inc r6
djnz r5,anphim1 ;lap lai 4 lan
anphim2:
setb c ;c=1 khi da co phim an
mov a,r6 ;thanh ghi a chua ma phim nhan o 4 bit thap
ret


convert: ;dich chuyen noi dung tu 50h den 57h, chuyen doi noi dung
trong thanh ghi a vao 50h
mov 57h,56h
mov 56h,55h
mov 55h,54h
mov 54h,53h
Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



18

mov 53h,52h
mov 52h,51h
mov 51h,50h

mov r0,#70h
add a,r0
mov r0,a
mov a,@r0
mov 50h,a

ret

display:
mov a,#11111110b ;chon led 1
mov dptr,#0F000h ;port B
movx @dptr,a
mov a,50h
mov dptr,#0F000h ;port A

movx @dptr,a
call delay
mov a,#255
movx @dptr,a

mov a,#11111101b ;chon led 2
mov dptr,#0F000h ;port B
movx @dptr,a
mov a,51h
mov dptr,#0F000h ;port A
movx @dptr,a
call delay
mov a,#255
movx @dptr,a

mov a,#11111011b ;chon led 3
mov dptr,#0F000h ;port B
movx @dptr,a
mov a,52h
mov dptr,#0F000h ;port A
movx @dptr,a
call delay
mov a,#255
movx @dptr,a

mov a,#11110111b ;chon led 4
mov dptr,#0F000h ;port B
movx @dptr,a
mov a,53h
mov dptr,#0F000h ;port A

movx @dptr,a
call delay
mov a,#255
movx @dptr,a
Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



19


mov a,#11101111b ;chon led 5
mov dptr,#0F000h ;port B
movx @dptr,a
mov a,54h
mov dptr,#0F000h ;port A
movx @dptr,a
call delay
mov a,#255
movx @dptr,a

mov a,#11011111b ;chon led 6
mov dptr,#0F000h ;port B
movx @dptr,a
mov a,55h
mov dptr,#0F000h ;port A
movx @dptr,a
call delay
mov a,#255
movx @dptr,a


mov a,#10111111b ;chon led 7
mov dptr,#0F000h ;port B
movx @dptr,a
mov a,56h
mov dptr,#0F000h ;port A
movx @dptr,a
call delay
mov a,#255
movx @dptr,a

mov a,#01111111b ;chon led 8
mov dptr,#0F000h ;port B
movx @dptr,a
mov a,57h
mov dptr,#0F000h ;port A
movx @dptr,a
call delay
mov a,#255
movx @dptr,a

ret

delay:
mov r5,#10
del1: mov r4,#255
djnz r4,$
djnz r5,del1
ret


end

Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



20

Bài 15: Thực hiện hế thống vi xử lý giao tiếp với bộ ADC loại xấp xỉ liên tiếp bằng vi mạch
vào ra 8255. viết chương trình điều khiển việc đọc dữ liệu từ ngõ vào ADC hiển thị lên 2 led
7 đoạn dưới dạng số HEX.
Bài làm:


org 0

;ghi chu phan cung
;PA <- data ADC0804 (add: F000h)
;PB.0 -> write ADC (add: F001h)
;PC.0 <- int ADC (add: F002h)
;control (add: F003h)

;p1 data a -> p led7
p3.0 -> led 7 doan 1
p3.1 -> led 7 doan 2

mov 70h,#192 ;ma so 0
mov 71h,#127 ;ma so 1
mov 72h,#116 ;ma so 2
mov 73h,#134 ;ma so 3

mov 74h,#157 ;ma so 4
mov 75h,#139 ;ma so 5
mov 76h,#143 ;ma so 6
mov 77h,#123 ;ma so 7
mov 78h,#115 ;ma so 8
mov 79h,#165 ;ma so 9
mov 7ah,#158 ;ma so a
mov 7bh,#193 ;ma so b
mov 7ch,#149 ;ma so c
mov 7dh,#102 ;ma so d
mov 7eh,#140 ;ma so e
mov 7fh,#141 ;ma so f

;khoi tao 8255
mov dptr,#0F003h ;dia chi thanh ghi dieu khien
mov a,#10011001b ;PA PC in. PB out
movx @dptr,a

repeat:
mov dptr,#0F001h ;dia chi PB
;tao xung /WR cho phep chuyen doi
mov a,#0
movx @dptr,a
nop
nop
nop
mov a,#1
movx @dptr,a
loop:
Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7




21

;kiem tra chuyen doi xong chua , thoi gian chuyen doi la
100 microsecond
mov dptr,#0F002h ;dia chi PC
movx a,@dptr
anl a,#00000001b
cjne a,#0,loop

mov dptr,#0F000h ;dia chi PA, lay data
movx a,@dptr

call convert
call display

jmp repeat

convert: ;chuyen doi noi dung trong thanh ghi a vao 2 thanh ghi r7 va r6
mov r0,#70h
mov b,a
anl a,#00001111b ;nipple thap
add a,r0
mov r0,a
mov a,@r0
mov r7,a

mov r0,#70h

mov a,b
swap a ;nipple cao
anl a,#00001111b ;nipple thap
add a,r0
mov r0,a
mov a,@r0
mov r6,a

ret

display:
clr p3.0
setb p3.1
mov p1.r6
call delay
mov p1,#255

setb p3.0
clr p3.1
mov p1.r7
call delay
mov p1,#255
ret
delay:
mov r5,#10
del1: mov r4,#255
djnz r4,$
Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7




22

djnz r5,del1
ret
end


Bài 16: Một công tắc 4 vị trí và một bộ LED 7 đoạn được nối với 8051 như hình vẽ:



Viết đoạn chương trình nhận dữ liệu từ công tắc cổng 3, rồi hiển thị giá trị nhị phân tương ứng
của nó lên LED 7 đoạn.

Bài làm:

org 00h
mov 70h,#192 ;ma so 0
mov 71h,#127 ;ma so 1
mov 72h,#116 ;ma so 2
mov 73h,#134 ;ma so 3
mov 74h,#157 ;ma so 4
mov 75h,#139 ;ma so 5
mov 76h,#143 ;ma so 6
mov 77h,#123 ;ma so 7
mov 78h,#115 ;ma so 8
mov 79h,#165 ;ma so 9
mov 7ah,#158 ;ma so a
mov 7bh,#193 ;ma so b

mov 7ch,#149 ;ma so c
mov 7dh,#102 ;ma so d
mov 7eh,#140 ;ma so e
mov 7fh,#141 ;ma so f
ban_dau:
mov a, p3
add a,#70h
mov r0,a
mov a, @r0
mov p1,a
sjmp ban_dau
end


Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



23

Bài 17: Viết chương trình tạo ra xung tác động mức cao trong
4 s

trên cổng P1.7 sau
mỗ
200 s

.
Bài làm:



org 0
;ghi chu: Xtal 12MHz, moi lenh 1 micro second
mov tmod,#00000001b ;timer 0 mode 1
repeat:
mov tl0,#low(-200+11)
mov th0,#high(-200+11)

setb p1.7
nop ;4 micro second
nop
nop
nop

clr p1.7
setb tr0
jnb tf0,$
clr tf0
clr tr0
jmp repeat
end

Bài 17: Thiết kế hệ thống vi điều khiển đóng mở đèn giao thông trên một ngã tư tự động với
các thời gian sáng đèn đỏ xanh vàng định trước.

Bài làm:

R 220 x 6
D1
RED

D2YELLOW
D3GREEN
D4
RED
D5
YELLOW
D6GREEN
XTAL
12MHz
C2
30p
C3
30p
U1 AT89C51
RST
9
XTAL2
18
XTAL1
19
GND
20
PSEN
29
ALE/PROG
30
EA/VPP
31
VCC
40

P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27

P2.7/A15
28
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT1
13
P3.4/T0
14
P3.5/T1
15
P3.6/WR
16
P3.7/RD
17
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34

P0.6/AD6
33
P0.7/AD7
32
+5V
C1
10uF
R7
10K


Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý - VT205A4- Nguyễn Văn Bảo Quốc - 205103391 - Học Kỳ 7



24

org 0
;ghi chu phan cung, den sang tac dong muc 1
;p1.0 den do 1
;p1.1 den vang 1
;p1.2 den xanh 1
;p1.3 den do 2
;p1.4 den vang 2
;p1.5 den xanh 2

repeat:
mov p1,#00100001b ;do 1 xanh 2
call delay
call delay

mov p1,#00010001b ;do 1 vang 2
call delay
mov p1,#00001100b ;xanh 1 do 2
call delay
call delay
mov p1,#00001010b ;vang 1 do 2
call delay
jmp repeat

delay:
mov r7,#255
del1: mov r6,#255
del2: mov r5,#255
djnz r5,$
djnz r6,del2
djnz r7,del1
ret
end


×