ĐHBK Bài Tập Vi Xử Lý Họ Vi Điều Khiển 8051 Lê Chí Công, 24 Trang

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

BÀI T P VI X LÝ (H VI ĐI U KHI N 8051)

1. C U TRÚC PH N C NG - GI I MÃ Đ A CH

1.1 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mã

ử ụ

ế ể

ế ế ạ

đ a ch t o ra các tín hi u ch n chip t

ng ng các vùng đ a ch sau:

ỉ ạ

ươ

Tín hi u

ch n chip

Vùng đ a

ch

Đ c tính truy

xu t

0

CS

0000H -
3FFFH

PSEN

1

CS

4000H -
7FFFH

PSEN

2

CS

6000H -
7FFFH

WR

,

RD

3

CS

8000H -
87FFH

RD

4

CS

8800H -
8FFFH

WR

1.2 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mã

ử ụ

ế ể

ế ế ạ

đ a ch t o ra các tín hi u ch n chip t

ng ng các vùng đ a ch sau:

ỉ ạ

ươ

Tín hi u

ch n chip

Vùng đ a

ch

Đ c tính truy

xu t

0

CS

9800H -
9BFFH

PSEN

1

CS

9800H -
9BFFH

WR

,

RD

2

CS

9C00H -
9DFFH

WR

,

RD

3

CS

9E00H -
9EFFH

WR

,

RD

1.3 Ch dùng m t vi m ch 74138 (không dùng thêm c ng), thi t k m ch gi i

ế ế ạ

mã đ a ch t o ra m t tín hi u ch n chip /CS t

ng ng t m đ a ch F000H-

ỉ ạ

ươ

F3FFH.

2. S D NG T P L NH

Ử Ụ

Truy xu t RAM n i

Trang

1/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

2.1 Vi t CT ghi 40H vào ô nh 30H c a RAM n i theo 2 cách (đ nh đ a ch ô

ế

nh tr c ti p và đ nh đ a ch ô nh gián ti p).

ớ ự

ế

ế

2.2 Vi t CT xóa ô nh 31H c a RAM n i theo 2 cách (đ nh đ a ch ô nh tr c

ế

ớ ự

ti p và đ nh đ a ch ô nh gián ti p).

ế

ế

2.3 Vi t CT ghi n i dung thanh ghi A vào ô nh 32H c a RAM n i theo 2 cách

ế

(đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).

ớ ự

ế

ế

2.4 Vi t CT đ c ô nh 33H c a RAM n i vào thanh ghi A theo 2 cách (đ nh

ế

đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).

ớ ự

ế

ế

2.5 Vi t CT chuy n d li u ô nh 34H c a RAM n i vào ô nh 35H c a

ế

ữ ệ

RAM n i theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián

ớ ự

ế

ti p).

ế

Truy xu t RAM ngoài

2.6 Vi t CT ghi 40H vào ô nh 0030H c a RAM ngoài.

ế

2.7 Vi t CT xóa ô nh 0031H c a RAM ngoài.

ế

2.8 Vi t CT đ c ô nh 0032H c a RAM ngoài vào thanh ghi A.

ế

2.8 Vi t CT ghi n i dung thanh ghi A vào ô nh 0033H c a RAM ngoài.

ế

2.10 Vi t CT chuy n d li u ô nh 0034H c a RAM ngoài vào ô nh 0035H

ế

ữ ệ

c a RAM ngoài.

Truy xu t Port

2.11 Vi t CT xu t 0FH ra Port 1.

ế

2.12 Vi t CT xu t F0H ra Port 2.

ế

2.13 Vi t CT xu t n i dung thanh ghi A ra Port 1.

ế

ấ ộ

2.14 Vi t CT nh p t Port 1 vào thanh ghi A.

ế

ậ ừ

2.15 Vi t CT nh p t Port 1 và xu t ra Port 2.

ế

ậ ừ

2.16 Vi t CT xu t 1 (m c logic cao) ra chân P1.0

ế

2.17 Vi t CT xu t 0 (m c logic th p) ra chân P1.1

ế

Truy xu t RAM n i, RAM ngoài và Port

2.18 Vi t CT chuy n d li u ô nh 40H (RAM n i) đ n ô nh 2000H (RAM

ế

ữ ệ

ế

ngoài). Làm theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián

ớ ự

ế

ti p).

ế

2.19 Vi t CT chuy n d li u ô nh 2001H (RAM ngoài) vào ô nh 41H (RAM

ế

ữ ệ

n i). Làm theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián

ớ ự

ế

ti p).

ế

2.20 Vi t CT nh p t Port 1 vào ô nh 42H (RAM n i). Làm theo 2 cách (đ nh

ế

ậ ừ

đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).

ớ ự

ế

ế

Trang

2/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

2.21 Vi t CT nh p t Port 1 vào ô nh 2002H (RAM ngoài).

ế

ậ ừ

2.22 Vi t CT l y ô nh 43H (RAM n i) xu t ra Port 1. Làm theo 2 cách (đ nh

ế

đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).

ớ ự

ế

ế

2.23 Vi t CT l y ô nh 2003H (RAM ngoài) xu t ra Port 1.

ế

S d ng vòng l p

ử ụ

2.24 Vi t CT xóa 20 ô nh RAM n i có đ a ch b t đ u là 30H.

ế

ỉ ắ ầ

2.25 Vi t CT xóa các ô nh RAM n i t đ a ch 20H đ n 7FH.

ế

ộ ừ ị

ế

2.26 Vi t CT xóa 250 ô nh RAM ngoài có đ a ch b t đ u là 4000H.

ế

ỉ ắ ầ

2.27 Vi t CT xóa 2500 ô nh RAM ngoài có đ a ch b t đ u là 4000H.

ế

ỉ ắ ầ

2.28 Vi t CT xóa toàn b RAM ngoài có dung l

ng 8KB, bi t r ng đ a ch

ế

ượ

ế ằ

đ u là 2000H.

2.29 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM n i có đ a

ế

ỗ ữ ệ

ch đ u là 30H đ n vùng RAM n i có đ a ch đ u là 40H.

ỉ ầ

ế

ỉ ầ

2.30 Vi t CT chuy n m t chu i d li u g m 100 byte trong RAM ngoài có đ a

ế

ỗ ữ ệ

ch đ u là 2000H đ n vùng RAM ngoài có đ a ch đ u là 4000H.

ỉ ầ

ế

ỉ ầ

2.31 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM n i có đ a

ế

ỗ ữ ệ

ch đ u là 30H đ n vùng RAM ngoài có đ a ch đ u là 4000H.

ỉ ầ

ế

ỉ ầ

2.32 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM ngoài có đ a

ế

ỗ ữ ệ

ch đ u là 5F00H đ n vùng RAM n i có đ a ch đ u là 40H.

ỉ ầ

ế

ỉ ầ

2.33 Cho m t chu i d li u g m 20 byte liên ti p trong RAM n i, b t đ u t

ỗ ữ ệ

ế

ắ ầ ừ

đ a ch 20H. Hãy vi t CT l n l

t xu t các d ki u này ra Port 1.

ế

ầ ượ

ữ ệ

2.34 Gi s Port 1 đ

c n i đ n m t thi t b phát d li u (ví d nh 8 nút

ả ử

ượ

ố ế

ế ị

ữ ệ

ư

nh n). Hãy vi t CT nh n liên ti p 10 byte d li u t thi t b phát này và ghi

ế

ế

ữ ệ ừ

ế ị

vào 10 ô nh (RAM n i) liên ti p b t đ u t ô nh 50H.

ế

ắ ầ ừ

T o tr (delay)

2.35 Vi t CT con delay 100μs, bi t r ng th ch anh (xtal) dùng trong h th ng

ế

ế ằ

ệ ố

là:

a. 12 MHz
b. 6 MHz

2.36 Vi t CT con delay 100ms, bi t r ng th ch anh (xtal) dùng trong h th ng

ế

ế ằ

ệ ố

là:

a. 12 MHz
b. 11,0592 MHz

2.37 Vi t CT con delay 1s, bi t r ng th ch anh (xtal) dùng trong h th ng là:

ế

ế ằ

ệ ố

Trang

3/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

a. 12 MHz
b. 24 MHz

T o xung

2.38 Vi t CT t o m t xung d

ng (

ế

ươ

) t i chân P1.0 v i đ r ng xung

ớ ộ ộ

1ms, bi t r ng xtal là 12 MHz.

ế ằ

2.39 Vi t CT t o chu i xung vuông có f = 100 KHz t i chân P1.1 (Xtal 12

ế

MHz).
2.40 Vi t CT t o chu i xung vuông có f = 100 KHz và có chu kỳ làm vi c D =

ế

40% t i chân P1.2 (Xtal 12 MHz).

2.41 Vi t CT t o chu i xung vuông có f = 10 KHz t i chân P1.3 (Xtal 24

ế

MHz).
2.42 Vi t CT t o chu i xung vuông có f = 10 KHz và có chu kỳ làm vi c D =

ế

30% t i chân P1.3 (Xtal 24 MHz).

2.43 Vi t CT t o chu i xung vuông có f = 10 Hz t i chân P1.4 (Xtal 12 MHz).

ế

2.44 Vi t CT t o chu i xung vuông có f = 10 Hz và có chu kỳ làm vi c D =

ế

25% t i chân P1.5 (Xtal 12 MHz).

Các phép toán
2.45 Cho m t chu i s 8 bit không d u trong RAM n i g m 10 s b t đ u t

ỗ ố

ộ ồ

ố ắ ầ ừ

ô nh 30H. Hãy vi t CT con c ng chu i s này và ghi k t qu vào ô nh 2FH

ế

ỗ ố

ế

(gi s k t qu nh h n ho c b ng 255).

ả ử ế

ỏ ơ

2.46 Cho m t chu i s 8 bit không d u trong RAM n i g m 10 s b t đ u t

ỗ ố

ộ ồ

ố ắ ầ ừ

ô nh 30H. Hãy vi t CT con c ng chu i s này và ghi k t qu vào ô nh

ế

ỗ ố

ế

2EH:2FH (ô nh 2EH ch a byte cao c a k t qu và ô nh 2FH ch a byte th p

ế

c a k t qu ).

ế

2.47 Cho m t chu i s 16 bit không d u trong RAM n i g m 10 s b t đ u t

ỗ ố

ộ ồ

ố ắ ầ ừ

ô nh 30H theo nguyên t c ô nh có đ a ch nh h n ch a byte cao và ô nh có

ỏ ơ

đ a ch l n h n ch a byte th p. (Ví d : byte cao c a s 16 bit đ u tiên đ

c

ỉ ớ

ơ

ủ ố

ượ

c t t i ô nh 30H và byte th p c a s 16 bit đ u tiên đ

c c t t i ô nh 31H).

ấ ạ

ủ ố

ượ ấ ạ

Hãy vi t CT con c ng chu i s này và c t k t qu vào ô nh 2EH:2FH.

ế

ỗ ố

ấ ế

2.48 Vi t CT con l y bù 2 s 16 bit ch a trong R2:R3.

ế

So sánh
2.49 Cho hai s 8 bit, s th 1 ch a trong (30H), s th 2 ch a trong (31H).

ố ứ

ố ứ

Vi t CT con so sánh hai s này. N u s th 1 l n h n ho c b ng s th 2 thì

ế

ế ố ứ

ơ

ố ứ

set c F0, n u ng

c l i thì xóa c F0.

ế

ượ ạ

Trang

4/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

2.50 Cho hai s 16 bit, s th 1 ch a trong (30H):(31H), s th 2 ch a trong

ố ứ

ố ứ

(32H):(33H). Vi t CT con so sánh hai s này. N u s th 1 l n h n ho c b ng

ế

ế ố ứ

ơ

s th 2 thì set c F0, n u ng

c l i thì xóa c F0.

ố ứ

ế

ượ ạ

2.51 Cho m t chu i ký t d

i d ng mã ASCII trong RAM n i, dài 20 byte,

ự ướ ạ

b t đ u t đ a ch 50H. Vi t CT xu t các ký t in hoa có trong chu i này ra

ắ ầ ừ ị

ế

Port 1. Bi t r ng mã ASCII c a ký t in hoa là t 65 (ch A) đ n 90 (ch Z).

ế ằ

ế

2.52 Vi t CT nh p m t chu i ký t t Port 1 d

i d ng mã ASCII và ghi vào

ế

ự ừ

ướ ạ

RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký

ắ ầ ừ ị

ế ằ

ế

t CR (có mã ASCII là 0DH) và ghi c ký t này vào RAM.

2.53 Vi t CT nh p m t chu i ký t t Port 1 d

i d ng mã ASCII và ghi vào

ế

ự ừ

ướ ạ

RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký

ắ ầ ừ ị

ế ằ

ế

t CR (có mã ASCII là 0DH) và không ghi ký t này vào RAM.

2.54 Vi t CT nh p m t chu i ký t t Port 1 d

i d ng mã ASCII và ghi vào

ế

ự ừ

ướ ạ

RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký

ắ ầ ừ ị

ế ằ

ế

t CR (có mã ASCII là 0DH) và không ghi ký t này vào RAM mà thay b ng

ký t null (có mã ASCII là 00H).

2.55 Cho m t chu i ký t d

i d ng mã ASCII trong RAM n i, dài 20 byte,

ự ướ ạ

b t đ u t đ a ch 50H. Vi t CT đ i các ký t in hoa có trong chu i này thành

ắ ầ ừ ị

ế

ký t th

ng. Bi t r ng mã ASCII c a ký t th

ng b ng mã ASCII c a ký

ự ườ

ế ằ

ự ườ

t in hoa c ng thêm 32.

2.56 Cho m t chu i ký t s d

i d ng mã ASCII trong RAM n i, dài 20

ự ố ướ ạ

byte, b t đ u t đ a ch 50H. Vi t CT đ i các ký t s này thành mã BCD.

ắ ầ ừ ị

ế

ự ố

Bi t r ng mã ASCII c a các ký t s là t 30H (s 0) đ n 39H (s 9).

ế ằ

ự ố

ế

S d ng l nh nh y có đi u ki n

ử ụ

2.57 Cho m t chu i d li u d

i d ng s có d u trong RAM ngoài, dài 100

ỗ ữ ệ

ướ ạ

byte, b t đ u t đ a ch 0100H. Vi t CT l n l

t xu t các d li u trong chu i

ắ ầ ừ ị

ế

ầ ượ

ữ ệ

ra Port 1 n u là s d

ng (xem s 0 là d

ng) và xu t ra Port 2 n u là s âm.

ế

ố ươ

ươ

ế

2.58 Cho m t chu i d li u d

i d ng s có d u trong RAM ngoài, b t đ u

ỗ ữ ệ

ướ ạ

ắ ầ

t đ a ch 0100H và k t thúc b ng s 0. Vi t CT l n l

t xu t các d li u

ừ ị

ế

ế

ầ ượ

ữ ệ

trong chu i ra Port 1 n u là s d

ng và xu t ra Port 2 n u là s âm.

ế

ố ươ

ế

2.59 Cho m t chu i d li u d

i d ng s không d u trong RAM ngoài, b t

ỗ ữ ệ

ướ ạ

đ u t đ a ch 0100H và đ dài chu i là n i dung ô nh 00FFH. Vi t CT đ m

ầ ừ ị

ế

ế

s s ch n (chia h t cho 2) có trong chu i và c t vào ô nh 00FEH.

ố ố

ế

2.60 Cho m t chu i d li u d

i d ng s không d u trong RAM ngoài, b t

ỗ ữ ệ

ướ ạ

đ u t đ a ch 0100H và đ dài chu i là n i dung ô nh 00FFH. Vi t CT ghi

ầ ừ ị

ế

các s ch n (xem s 0 là s ch n) có trong chu i vào RAM n i b t đ u t đ a

ộ ắ ầ ừ ị

ch 30H cho đ n khi g p s l thì d ng.

ế

ặ ố ẻ

2.61 Vi t CT con có nhi m v l y 1 byte t 1 chu i data g m 20 byte c t

ế

ụ ấ

trong Ram ngoài b t đ u t đ a ch 2000H và xu t ra Port1. M i l n g i CT

ắ ầ ừ ị

ỗ ầ

Trang

5/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

con ch xu t 1 byte, l n g i k thì xu t byte k ti p, l n g i th 21 thì l i

ọ ế

ế ế

xu t byte đ u, ...

3. TIMER

3.1 Vi t CT con mang tên DELAY500 có nhi m v t o tr 0,5ms dùng Timer.

ế

ụ ạ

(Xtal 6MHz).
3.2 Vi t CT con mang tên DELAY10 có nhi m v t o tr 10ms dùng Timer.

ế

ụ ạ

(Xtal 12MHz).
3.3 Dùng CT con DELAY500 (bài 3.1) đ vi t CT t o sóng vuông f=1KHz t i

ể ế

P1.0.
3.4 Dùng CT con DELAY10 (bài 3.2) đ vi t CT t o sóng vuông f=50Hz t i

ể ế

P1.1.
3.5 Dùng CT con DELAY500 (bài 3.1) đ vi t CT t o sóng vuông f=500Hz

ể ế

(D=25%) t i P1.2.

3.6 Dùng CT con DELAY10 (bài 3.2) đ vi t CT t o sóng vuông f=20Hz

ể ế

(D=20%) t i P1.3.

3.7 Vi t CT dùng Timer t o sóng vuông f=500Hz t i P1.4. (Xtal 12MHz).

ế

3.8 Vi t CT dùng Timer t o sóng vuông f=20KHz t i P1.5. (Xtal 24MHz).

ế

3.9 Vi t CT dùng Timer t o 2 sóng vuông có cùng f= 1KHz t i P1.6 và P1.7.

ế

Bi t r ng sóng vuông t i P1.7 ch m pha h n sóng vuông t i P1.6 100(s. (Xtal

ế ằ

ơ

12MHz).
3.10 Vi t CT dùng Timer đi u khi n đèn giao thông t i m t giao l . Cho bi t

ế

ế

r ng:

Đèn

Bit
đi u

khi n

Th

i
gian

Xanh
1

P1.0

25s

Vàng
1

P1.1

3s

Đ 1

P1.2

Xanh
2

P1.3

33s

Vàng
2

P1.4

3s

Đ 2

P1.5

Trang

6/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

Đèn sáng khi bit đi u khi n b ng 0.

4. SERIAL PORT

4.1 Vi t CT đ c 1 chu i data ch a trong RAM n i t đ a ch 30H đ n 50H và

ế

ộ ừ ị

ế

xu t ra 1 thi t b (ví d nh màn hình tinh th l ng LCD) đ

c n i v i port

ế ị

ư

ể ỏ

ượ

ố ớ

n i ti p c a 8051 (ch đ UART 8 bit, 2400 baud). Cho Xtal 11,059 MHz.

ố ế

ế ộ

4.2 Vi t CT nh n 1 chu i data t 1 thi t b ngoài (ví d nh máy đ c mã

ế

ế ị

ư

v ch) n i v i 8051 qua port n i ti p (ch đ UART 8 bit, 4800 baud) và ghi

ố ớ

ố ế

ế ộ

data vào RAM n i t đ a ch 40H. Bi t r ng chu i data g m 20 byte và Xtal

ộ ừ ị

ế ằ

11,059MHz.
4.3 Vi t CT l y 1 chu i data ch a trong RAM ngoài b t đ u t đ a ch 2000H

ế

ắ ầ ừ ị

và xu t ra 1 thi t b đ

c n i v i port n i ti p c a 8051 (ch đ UART 8 bit,

ế ị ượ

ố ớ

ố ế

ế ộ

1200 baud). Chu i k t thúc b i ký t EOT (có mã ASCII là 04H) và ký t này

ỗ ế

cũng đ

c xu t ra (Xtal 11,059 MHz).

ượ

4.4 Làm l i bài 4.3 nh ng không xu t ký t EOT.

ư

4.5 Vi t CT nh n 1 chu i data t 1 thi t b ngoài n i v i 8051 qua port n i

ế

ế ị

ố ớ

ti p (ch đ UART 8 bit, 9600 baud) và ghi data vào RAM ngoài b t đ u t

ế

ế ộ

ắ ầ ừ

đ a ch 4000H. Chu i data b t đ u b ng ký t STX (02H) và k t thúc b ng ký

ắ ầ

ế

t ETX (03H). Không ghi 2 ký t này vào RAM. Cho Xtal 11,059MHz.

4.6 Vi t CT con mang tên XUAT có nhi m v l y 1 chu i data ch a trong

ế

ụ ấ

RAM ngoài xu t ra port n i ti p ch đ UART 9 bit. Bit th 9 là bit parity

ố ế ở

ế ộ

ch n. Chu i data k t thúc b ng ký t null (00H). CT g i CT con XUAT s đ t

ế

ẽ ặ

đ a ch b t đ u c a chu i vào DPTR tr

c khi g i CT con XUAT. Gi s port

ỉ ắ ầ

ướ

ả ử

n i ti p đã đ

c kh i đ ng.

ố ế

ượ

ở ộ

4.7 Vi t CT con mang tên NHAP có nhi m v nh p 1 chu i data g m 30 byte

ế

t port n i ti p ch đ UART 9 bit, bit th 9 là bit parity l . N u data nh n

ố ế ở

ế ộ

ế

đ

c không b l i thì ghi vào 1 vùng nh c a RAM n i, n u b l i thì không

ượ

ị ỗ

ớ ủ

ế

ị ỗ

ghi. CT g i CT con NHAP s đ t đ a ch đ u c a vùng nh vào thanh ghi R0

ẽ ặ ị

ỉ ầ

tr

c khi g i CT con NHAP. Gi s port n i ti p đã đ

c kh i đ ng.

ướ

ả ử

ố ế

ượ

ở ộ

5. INTERRUPT

5.1 Vi t CT dùng ng t Timer đ t o sóng vuông f=2KHz t i P1.7. (Xtal

ế

ể ạ

12MHz).
5.2 Vi t CT dùng ng t Timer đ t o sóng vuông f=200Hz t i P1.6. (Xtal

ế

ể ạ

12MHz).
5.3 Vi t CT dùng ng t Timer đ t o đ ng th i 2 sóng vuông 1KHz và 50Hz

ế

ể ạ

t i P1.0 và P1.1. (Xtal 6MHz)

Trang

7/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

5.4 Vi t CT l y 1 chu i data ch a trong Ram ngoài b t đ u t đ a ch 6200H

ế

ắ ầ ừ ị

đ n đ a ch 62FFH và xu t ra Port1, m i l n xu t cách nhau 50ms. S d ng

ế

ỗ ầ

ử ụ

ng t Timer. Xtal 12MHz.

5.5 Vi t CT nh p data t thi t b ngoài k t n i v i 8051 qua Port1, m i l n

ế

ế ị

ế ố ớ

ỗ ầ

nh p cách nhau 5s, data nh p v đ

c ghi vào vùng Ram n i b t đ u t đ a

ề ượ

ộ ắ ầ ừ ị

ch 50H đ n đ a ch 5FH. Bi t r ng sau khi ghi vào ô nh cu i cùng thì tr l i

ế

ế ằ

ở ạ

ghi vào ô nh đ u. S d ng ng t Timer. Xtal 12MHz.

ớ ầ

ử ụ

5.6 Vi t CT phát liên t c chu i s t 0 đ n 9 ra port n i ti p theo ch đ

ế

ỗ ố ừ

ế

ố ế

ế ộ

UART 8 bit, 2400 baud. S d ng ng t serial. Xtal 12MHz.

ử ụ

5.7 Vi t CT ch nh n data t 1 thi t b ngoài g i đ n 8051 qua port n i ti p

ế

ế ị

ở ế

ố ế

(ch đ UART 8 bit, 19200 baud). N u nh n đ

c ký t STX (02H) thì b t

ế ộ

ế

ượ

sáng LED, n u nh n đ

c ký t ETX (03H) thì t t LED, bi t r ng LED đ

c

ế

ượ

ế ằ

ượ

đi u khi n b ng ngõ P1.3 (LED sáng khi bit đi u khi n b ng 1). S d ng

ử ụ

ng t serial. Xtal 11,059MHz.

5.8 Vi t CT ch nh n 1 xung c nh xu ng đ a vào chân /INT0 (P3.2), khi có

ế

ư

xung thì nh p data t Port1 và phát ra port n i ti p ch đ UART 9 bit 4800

ố ế ở

ế ộ

baud, bit th 9 là bit parity l . Xtal 6MHz.

5.9 Vi t CT đ m s xung đ a vào chân /INT1 (P3.3) và đi u khi n relay thông

ế

ế

ư

qua chân P3.0 (relay đóng khi P3.0 b ng 1), c t s đ m vào ô nh 40H c a

ấ ố ế

Ram n i, n u s đ m ch a đ n 100 thì đóng relay, n u s đ m đ t 100 thì

ế ố ế

ư

ế

ế ố ế

ng t relay.

ĐÁP ÁN VI X LÝ (H VI ĐI U KHI N 8051)

1. C U TRÚC PH N C NG - GI I MÃ Đ A CH

1.1 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mã

ử ụ

ế ể

ế ế ạ

đ a ch t o ra các tín hi u ch n chip t

ng ng các vùng đ a ch sau:

ỉ ạ

ươ

Tín hi u ch n chip Vùng đ a ch Đ c tính truy xu t

ỉ ặ

0000H - 3FFFH

4000H - 7FFFH

6000H - 7FFFH

8000H - 87FFH

Trang

8/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

8800H - 8FFFH

1.2 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mã

ử ụ

ế ể

ế ế ạ

đ a ch t o ra các tín hi u ch n chip t

ng ng các vùng đ a ch sau:

ỉ ạ

ươ

Tín hi u ch n chip Vùng đ a ch Đ c tính truy xu t

ỉ ặ

9800H - 9BFFH

9800H - 9BFFH

9C00H - 9DFFH

9E00H - 9EFFH

1.3 Ch dùng m t vi m ch 74138 (không dùng thêm c ng), thi t k m ch gi i

ế ế ạ

mã đ a ch t o ra m t tín hi u ch n chip /CS t

ng ng t m đ a ch F000H-

ỉ ạ

ươ

F3FFH.

2. S D NG T P L NH

Ử Ụ

Truy xu t RAM n i

2.1 Vi t CT ghi 40H vào ô nh 30H c a RAM n i theo 2 cách (đ nh đ a ch ô

ế

nh tr c ti p và đ nh đ a ch ô nh gián ti p).

ớ ự

ế

ế

Cách 1: Đ nh đ a ch tr c ti p

ỉ ự

ế

ORG 0000H
MOV 30H,#40H
END
Cách 2: Đ nh đ a ch gián ti p

ế

ORG 0000H
MOV R0,#30H
MOV @R0,#40H
END
2.2 Vi t CT xóa ô nh 31H c a RAM n i theo 2 cách (đ nh đ a ch ô nh tr c

ế

ớ ự

ti p và đ nh đ a ch ô nh gián ti p).

ế

ế

HD: Xóa là ghi giá tr 0.

ORG 0000H
MOV 31H,#OOOOH
END.
C2
ORG

Trang

9/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

MOV R0,#31H
MOV @R0,#0000H
END.
2.3 Vi t CT ghi n i dung thanh ghi A vào ô nh 32H c a RAM n i theo 2 cách

ế

(đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).

ớ ự

ế

ế

CÁCH 1:
ORG 0000H
MOV 32H,A
END
CÁCH 2:
ORG 0000H
MOV R0,#32H
MOV @R0,A
END
2.4 Vi t CT đ c ô nh 33H c a RAM n i vào thanh ghi A theo 2 cách (đ nh

ế

đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).

ớ ự

ế

ế

CÁCH 1:
ORG 0000H
MOV A,33H
END
CÁCH 2:
ORG 0000H
MOV R0,#33H
MOV A,@R0
END
2.5 Vi t CT chuy n d li u ô nh 34H c a RAM n i vào ô nh 35H c a

ế

ữ ệ

RAM n i theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián

ớ ự

ế

ti p).

ế

CÁCH 1:
ORG 0000H
MOV 35H,34H
END
CÁCH 2:
ORG 0000H
MOV R0,#34H
MOV A,@R0
INC R0
MOV @R0,A
END
Truy xu t RAM ngoài

2.6 Vi t CT ghi 40H vào ô nh 0030H c a RAM ngoài.

ế

ORG 0000H
MOV A,#40H

Trang

10/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

MOV DPTR,#0030H
MOVX @DPTR,A
END
2.7 Vi t CT xóa ô nh 0031H c a RAM ngoài.

ế

ORG 0000H
MOV A,#0000H
MOV DPTR,#0031H
MOVX @DPTR,A
END.
HD: Ghi giá tr 0.

2.8 Vi t CT đ c ô nh 0032H c a RAM ngoài vào thanh ghi A.

ế

ORG 0000H
MOV DPTR,#0032H
MOVX A,@DPTR
END
2.8 Vi t CT ghi n i dung thanh ghi A vào ô nh 0033H c a RAM ngoài.

ế

ORG 0000H
MOV DPTR,#0033H
MOVX @DPTR,A
END
2.10 Vi t CT chuy n d li u ô nh 0034H c a RAM ngoài vào ô nh 0035H

ế

ữ ệ

c a RAM ngoài.

ORG 0000H
MOV DPTR,#0034H
MOVX A,@DPTR
INC DPTR
MOVX @DPTR,A
END
Truy xu t Port

2.11 Vi t CT xu t 0FH ra Port 1.

ế

ORG 0000H
MOV P1,#0FH
END
2.12 Vi t CT xu t F0H ra Port 2.

ế

2.13 Vi t CT xu t n i dung thanh ghi A ra Port 1.

ế

ấ ộ

ORG 0000H
MOV P1,A
END
2.14 Vi t CT nh p t Port 1 vào thanh ghi A.

ế

ậ ừ

ORG 0000H
MOV A,P1
END
2.15 Vi t CT nh p t Port 1 và xu t ra Port 2. 0FH

ế

ậ ừ

Trang

11/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

ORG 0000H
MOV 0FH,P1
MOV P2,#0FH
END

2.16 Vi t CT xu t 1 (m c logic cao) ra chân P1.0

ế

ORG 0000H
SETB P1.0
END
2.17 Vi t CT xu t 0 (m c logic th p) ra chân P1.1

ế

ORG 0000H
CLR P1.1
END

Truy xu t RAM n i, RAM ngoài và Port

2.18 Vi t CT chuy n d li u ô nh 40H (RAM n i) đ n ô nh 2000H (RAM

ế

ữ ệ

ế

ngoài). Làm theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián

ớ ự

ế

ti p).

ế

CÁCH 1:
ORG 0000H
MOV A,40H
MOV DPTR,#2000H
MOVX @DPTR,A
END
CÁCH 2:
ORG 0000H
MOV R0,#40H
MOV DPTR,#2000H
MOV A,@R0
MOVX @DPTR,A
END
2.19 Vi t CT chuy n d li u ô nh 2001H (RAM ngoài) vào ô nh 41H (RAM

ế

ữ ệ

n i). Làm theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián

ớ ự

ế

ti p).

ế

ORG 0000H
MOV DPRT,#2001H
MOV A,41H
MOVX A,@DPRT
END
C2
ORG 0000H

2.20 Vi t CT nh p t Port 1 vào ô nh 42H (RAM n i). Làm theo 2 cách (đ nh

ế

ậ ừ

đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).

ớ ự

ế

ế

Trang

12/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

CÁCH 1:
ORG 0000H
MOV 42H,P1
END
CÁCH 2:
ORG 0000H
MOV R0,#40H
MOV @R0,P1
END
2.21 Vi t CT nh p t Port 1 vào ô nh 2002H (RAM ngoài).

ế

ậ ừ

ORG 0000H
MOV DPTR,#2002H
MOV A,P1
MOVX @DPTR,A
END
2.22 Vi t CT l y ô nh 43H (RAM n i) xu t ra Port 1. Làm theo 2 cách (đ nh

ế

đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).

ớ ự

ế

ế

2.23 Vi t CT l y ô nh 2003H (RAM ngoài) xu t ra Port 1.

ế

S d ng vòng l p

ử ụ

2.24 Vi t CT xóa 20 ô nh RAM n i có đ a ch b t đ u là 30H.

ế

ỉ ắ ầ

ORG 0000H
MOV R0,#30H
MOV R2,#20
laplai:
MOV @R0,#0
INC R0
DJNZ R2,laplai
END
2.25 Vi t CT xóa các ô nh RAM n i t đ a ch 20H đ n 7FH.

ế

ộ ừ ị

ế

ORG 0000H
MOV R0,#20H
laplai:
MOV @R0,#0
INC R0
CJNE R0,#80H,laplai
END
2.26 Vi t CT xóa 250 ô nh RAM ngoài có đ a ch b t đ u là 4000H.

ế

ỉ ắ ầ

ORG 0000H
MOV DPTR,#4000H
CLR A
MOV R7,#250
lap1: MOVX @DPTR,A
INC DPTR

Trang

13/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

DJNZ R7,lap1
END
2.27 Vi t CT xóa 2500 ô nh RAM ngoài có đ a ch b t đ u là 4000H.

ế

ỉ ắ ầ

ORG 0000H
MOV DPTR,#4000H
CLR A
MOV R6,#10
lap2: MOV R7,#250
lap1: MOVX @DPTR,A
INC DPTR
DJNZ R7,lap1
DJNZ R6,lap2
END
2.28 Vi t CT xóa toàn b RAM ngoài có dung l

ng 8KB, bi t r ng đ a ch

ế

ượ

ế ằ

đ u là 2000H.

HD: 8KB = 8192Byte
2.29 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM n i có đ a

ế

ỗ ữ ệ

ch đ u là 30H đ n vùng RAM n i có đ a ch đ u là 40H.

ỉ ầ

ế

ỉ ầ

ORG 0000H
MOV R0,#30H
MOV R1,#40H
MOV R2,#10
lap: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,lap
END
2.30 Vi t CT chuy n m t chu i d li u g m 100 byte trong RAM ngoài có đ a

ế

ỗ ữ ệ

ch đ u là 2000H đ n vùng RAM ngoài có đ a ch đ u là 4000H.

ỉ ầ

ế

ỉ ầ

ORG 0000H
MOV R0,#100H
Lap
MOV DPRT,#2000H
MOVX A,@DPRT
MOV DPRT,#4000H
MOVX @DPRT,A
INC DPRT
DJNZ R0,Lap
END.`
2.31 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM n i có đ a

ế

ỗ ữ ệ

ch đ u là 30H đ n vùng RAM ngoài có đ a ch đ u là 4000H.

ỉ ầ

ế

ỉ ầ

ORG 0000H

Trang

14/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

MOV R0,#30H
MOV DPTR,#4000H
MOV R3,#10
lap: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R3,lap`
END
2.32 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM ngoài có đ a

ế

ỗ ữ ệ

ch đ u là 5F00H đ n vùng RAM n i có đ a ch đ u là 40H.

ỉ ầ

ế

ỉ ầ

2.33 Cho m t chu i d li u g m 20 byte liên ti p trong RAM n i, b t đ u t

ỗ ữ ệ

ế

ắ ầ ừ

đ a ch 20H. Hãy vi t CT l n l

t xu t các d ki u này ra Port 1.

ế

ầ ượ

ữ ệ

2.34 Gi s Port 1 đ

c n i đ n m t thi t b phát d li u (ví d nh 8 nút

ả ử

ượ

ố ế

ế ị

ữ ệ

ư

nh n). Hãy vi t CT nh n liên ti p 10 byte d li u t thi t b phát này và ghi

ế

ế

ữ ệ ừ

ế ị

vào 10 ô nh (RAM n i) liên ti p b t đ u t ô nh 50H.

ế

ắ ầ ừ

ORG 0000H
MOV R0,#50H
MOV R4,#10
loop: MOV @R0,P1
INC R0
DJNZ R4,loop
END

T o tr (delay)

2.35 Vi t CT con delay 100μs, bi t r ng th ch anh (xtal) dùng trong h th ng

ế

ế ằ

ệ ố

là:
a. 12 MHz
V i th ch anh 12MHz thì chu ký máy TM = 1μs. Do đó, 100 μs = 100 TM

(chu ky may)ctcondelay:
MOV R2,#50
DJNZ R2,$
RET
b. 6 MHz
V i th ch anh 6MHz thì chu ký máy TM = 2μs. Do đó, 100 μs = 50 TM

ctcondelay:
MOV R2,#25
DJNZ R2,$
RET
2.36 Vi t CT con delay 100ms, bi t r ng th ch anh (xtal) dùng trong h th ng

ế

ế ằ

ệ ố

là:
a. 12 MHz
V i th ch anh 12MHz thì chu ký máy TM = 1μs. Do đó, 100 ms = 100000 TM

ctcondelay:

Trang

15/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

MOV R3,#200
lap: MOV R2,#250
DJNZ R2,$ (lenh rong, tao xung 250)
DJNZ R3,#lap
RET
b. 11,0592 MHz
2.37 Vi t CT con delay 1s, bi t r ng th ch anh (xtal) dùng trong h th ng

ế

ế ằ

ệ ố

là:1000ms
a. 12 MHz
b. 24 MHz

T o xung

2.38 Vi t CT t o m t xung d

ng ( ) t i chân P1.0 v i đ r ng xung 1ms,

ế

ươ

ớ ộ ộ

bi t r ng xtal là 12 MHz.

ế ằ

CÁCH 1:
ORG 0000H
CLR P1.0
SETB P1.0
MOV R3,#2
lap: MOV R2,#250
DJNZ R2,$
DJNZ R3,lap
CLR P1.0
END
CÁCH 2:
ORG 0000H
CLR P1.0
SETB P1.0
ACALL delay1ms
CLR P1.0
SJMP ketthuc (la lenh nhay ngan, dieu khien chuong trinh re nhanh
delay1ms: den dia chi duoc tro den)
MOV R3,#2
lap: MOV R2,#250
DJNZ R2,$
DJNZ R3,lap
RET
ketthuc:
NOP
END
2.39 Vi t CT t o chu i xung vuông có f = 100 KHz t i chân P1.1 (Xtal 12

ế

MHz).
ORG 0000H
lap: CPL P1.1

Trang

16/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

NOP
NOP
SJMP lap
END
2.40 Vi t CT t o chu i xung vuông có f = 100 KHz và có chu kỳ làm vi c D =

ế

40% t i chân P1.2 (Xtal 12 MHz).

ORG 0000H
lap: SETB P1.2
NOP
NOP
NOP
CLR P1.2
NOP
NOP
NOP
SJMP lap
END
2.41 Vi t CT t o chu i xung vuông có f = 10 KHz t i chân P1.3 (Xtal 24

ế

MHz).
ORG 0000H
lap: CPL P1.3
ACALL delay50
SJMP lap
delay50:
MOV R4,#25
DJNZ R4,$
RET
END
2.42 Vi t CT t o chu i xung vuông có f = 10 KHz và có chu kỳ làm vi c D =

ế

30% t i chân P1.3 (Xtal 24 MHz).

ORG 0000H
lap: SETB P1.3
ACALL delay30
CLR P1.3
ACALL delay70
SJMP lap
delay30:
MOV R4,#15
DJNZ R4,$
RET
delay70:
MOV R4,#35
DJNZ R4,$

Trang

17/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

RET
END
2.43 Vi t CT t o chu i xung vuông có f = 10 Hz t i chân P1.4 (Xtal 12 MHz).

ế

2.44 Vi t CT t o chu i xung vuông có f = 10 Hz và có chu kỳ làm vi c D =

ế

25% t i chân P1.5 (Xtal 12 MHz).

Các phép toán

2.45 Cho m t chu i s 8 bit không d u trong RAM n i g m 10 s b t đ u t

ỗ ố

ộ ồ

ố ắ ầ ừ

ô nh 30H. Hãy vi t CT con c ng chu i s này và ghi k t qu vào ô nh 2FH

ế

ỗ ố

ế

(gi s k t qu nh h n ho c b ng 255).

ả ử ế

ỏ ơ

ORG 0000H
MOV R0,#30H
CLR A
MOV R2,#10
lap: ADD A,@R0
INC R0
DJNZ R2,lap
MOV 2FH,A
END
2.46 Cho m t chu i s 8 bit không d u trong RAM n i g m 10 s b t đ u t

ỗ ố

ộ ồ

ố ắ ầ ừ

ô nh 30H. Hãy vi t CT con c ng chu i s này và ghi k t qu vào ô nh

ế

ỗ ố

ế

2EH:2FH (ô nh 2EH ch a byte cao c a k t qu và ô nh 2FH ch a byte th p

ế

c a k t qu ).

ế

ORG 0000H
MOV R0,#30H ;đ a ch b t đ u

ỉ ắ ầ

MOV R2,#10 ;s l n l p

ố ầ ặ

CLR A ;byte th p c a k t qu

ế

MOV 2EH,#0000H ;byte cao c a k t qu

ế

CLR C
lap: ADD A,@R0
JNC boqua ; (nhay neu co carry flag nho khong duoc set bang 1)
INC 2EH
boqua:INC R0
DJNZ R2,lap
MOV 2FH,A
END
2.47 Cho m t chu i s 16 bit không d u trong RAM n i g m 10 s b t đ u t

ỗ ố

ộ ồ

ố ắ ầ ừ

ô nh 30H theo nguyên t c ô nh có đ a ch nh h n ch a byte cao và ô nh có

ỏ ơ

đ a ch l n h n ch a byte th p. (Ví d : byte cao c a s 16 bit đ u tiên đ

c

ỉ ớ

ơ

ủ ố

ượ

c t t i ô nh 30H và byte th p c a s 16 bit đ u tiên đ

c c t t i ô nh 31H).

ấ ạ

ủ ố

ượ ấ ạ

Hãy vi t CT con c ng chu i s này và c t k t qu vào ô nh 2EH:2FH.

ế

ỗ ố

ấ ế

2.48 Vi t CT con l y bù 2 s 16 bit ch a trong R2:R3.

ế

Trang

18/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

So sánh

2.49 Cho hai s 8 bit, s th 1 ch a trong (30H), s th 2 ch a trong (31H).

ố ứ

ố ứ

Vi t CT con so sánh hai s này. N u s th 1 l n h n ho c b ng s th 2 thì

ế

ế ố ứ

ơ

ố ứ

set c F0, n u ng

c l i thì xóa c F0.

ế

ượ ạ

ORG 0000H
MOV A,30H
CJNE A,31H,ke hoac CJNE A,31H,$+3
ke: JNC lonhoacbang JNC lonhoacbang
CLR F0
SJMP tiep
lonhoacbang:
SETB F0
tiep: NOP
END
2.50 Cho hai s 16 bit, s th 1 ch a trong (30H):(31H), s th 2 ch a trong

ố ứ

ố ứ

(32H):(33H). Vi t CT con so sánh hai s này. N u s th 1 l n h n ho c b ng

ế

ế ố ứ

ơ

s th 2 thì set c F0, n u ng

c l i thì xóa c F0.

ố ứ

ế

ượ ạ

2.51 Cho m t chu i ký t d

i d ng mã ASCII trong RAM n i, dài 20 byte,

ự ướ ạ

b t đ u t đ a ch 50H. Vi t CT xu t các ký t in hoa có trong chu i này ra

ắ ầ ừ ị

ế

Port 1. Bi t r ng mã ASCII c a ký t in hoa là t 65 (ch A) đ n 90 (ch Z).

ế ằ

ế

ORG 0000H
MOV R0,#50H
MOV R3,#20
lap: MOV A,@R0
CJNE A,#65,ke hoac CJNE A,#65,$+3
ke: JC boqua JC boqua
CJNE A,#91,ke2 CJNE A,#91,$+3
ke2: JNC boqua JNC boqua
MOV P1,A
boqua:INC R0
DJNZ R3,lap
END
2.52 Vi t CT nh p m t chu i ký t t Port 1 d

i d ng mã ASCII và ghi vào

ế

ự ừ

ướ ạ

RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký

ắ ầ ừ ị

ế ằ

ế

t CR (có mã ASCII là 0DH) và ghi c ký t này vào RAM.

ORG 0000H
MOV DPTR,#0000H
tiep: MOV A,P1
MOVX @DPTR,A
INC DPTR
CJNE A,#0DH,tiep
END
2.53 Vi t CT nh p m t chu i ký t t Port 1 d

i d ng mã ASCII và ghi vào

ế

ự ừ

ướ ạ

Trang

19/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký

ắ ầ ừ ị

ế ằ

ế

t CR (có mã ASCII là 0DH) và không ghi ký t này vào RAM.

ORG 0000H
MOV DPTR,#0000H
lap: MOV A,P1
CJNE A,#0DH,tiep
SJMP ketthuc
tiep: MOVX @DPTR,A
INC DPTR
SJMP lap
ketthuc:
NOP
END
2.54 Vi t CT nh p m t chu i ký t t Port 1 d

i d ng mã ASCII và ghi vào

ế

ự ừ

ướ ạ

RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký

ắ ầ ừ ị

ế ằ

ế

t CR (có mã ASCII là 0DH) và không ghi ký t này vào RAM mà thay b ng

ký t null (có mã ASCII là 00H).

2.55 Cho m t chu i ký t d

i d ng mã ASCII trong RAM n i, dài 20 byte,

ự ướ ạ

b t đ u t đ a ch 50H. Vi t CT đ i các ký t in hoa có trong chu i này thành

ắ ầ ừ ị

ế

ký t th

ng. Bi t r ng mã ASCII c a ký t th

ng b ng mã ASCII c a ký

ự ườ

ế ằ

ự ườ

t in hoa c ng thêm 32.

2.56 Cho m t chu i ký t s d

i d ng mã ASCII trong RAM n i, dài 20

ự ố ướ ạ

byte, b t đ u t đ a ch 50H. Vi t CT đ i các ký t s này thành mã BCD.

ắ ầ ừ ị

ế

ự ố

Bi t r ng mã ASCII c a các ký t s là t 30H (s 0) đ n 39H (s 9).

ế ằ

ự ố

ế

S d ng l nh nh y có đi u ki n

ử ụ

2.57 Cho m t chu i d li u d

i d ng s có d u trong RAM ngoài, dài 100

ỗ ữ ệ

ướ ạ

byte, b t đ u t đ a ch 0100H. Vi t CT l n l

t xu t các d li u trong chu i

ắ ầ ừ ị

ế

ầ ượ

ữ ệ

ra Port 1 n u là s d

ng (xem s 0 là d

ng) và xu t ra Port 2 n u là s âm.

ế

ố ươ

ươ

ế

ORG 0000H
MOV DPTR,#0100H
MOV R4,#100
lap: MOVX A,@DPTR
JNB ACC.7,duong
MOV P2,A
SJMP tiep
duong:MOV P1,A
tiep: INC DPTR
DJNZ R4,lap
END
2.58 Cho m t chu i d li u d

i d ng s có d u trong RAM ngoài, b t đ u

ỗ ữ ệ

ướ ạ

ắ ầ

t đ a ch 0100H và k t thúc b ng s 0. Vi t CT l n l

t xu t các d li u

ừ ị

ế

ế

ầ ượ

ữ ệ

trong chu i ra Port 1 n u là s d

ng và xu t ra Port 2 n u là s âm.

ế

ố ươ

ế

ORG 0000H

Trang

20/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

MOV DPTR,#0100H
lap: MOVX A,@DPTR
JNB ACC.7,duong
MOV P2,A
SJMP tiep
duong:MOV P1,A
tiep: INC DPTR
CJNE A,#0,lap
END
2.59 Cho m t chu i d li u d

i d ng s không d u trong RAM ngoài, b t

ỗ ữ ệ

ướ ạ

đ u t đ a ch 0100H và đ dài chu i là n i dung ô nh 00FFH. Vi t CT đ m

ầ ừ ị

ế

ế

s s ch n (chia h t cho 2) có trong chu i và c t vào ô nh 00FEH.

ố ố

ế

HD: S ch n có LSB=0

2.60 Cho m t chu i d li u d

i d ng s không d u trong RAM ngoài, b t

ỗ ữ ệ

ướ ạ

đ u t đ a ch 0100H và đ dài chu i là n i dung ô nh 00FFH. Vi t CT ghi

ầ ừ ị

ế

các s ch n (xem s 0 là s ch n) có trong chu i vào RAM n i b t đ u t đ a

ộ ắ ầ ừ ị

ch 30H cho đ n khi g p s l thì d ng.

ế

ặ ố ẻ

2.61 Vi t CT con có nhi m v l y 1 byte t 1 chu i data g m 20 byte c t

ế

ụ ấ

trong Ram ngoài b t đ u t đ a ch 2000H và xu t ra Port1. M i l n g i CT

ắ ầ ừ ị

ỗ ầ

con ch xu t 1 byte, l n g i k thì xu t byte k ti p, l n g i th 21 thì l i

ọ ế

ế ế

xu t byte đ u, ...

3. TIMER

3.1 Vi t CT con mang tên DELAY500 có nhi m v t o tr 0,5ms dùng Timer.

ế

ụ ạ

(Xtal 6MHz).

MOV TMOD,#00000010B

delay500:
MOV TL0,#-250
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
3.2 Vi t CT con mang tên DELAY10 có nhi m v t o tr 10ms dùng Timer.

ế

ụ ạ

(Xtal 12MHz).

MOV TMOD,#00000001B

delay10:
MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000)
SETB TR0

Trang

21/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

JNB TF0,$
CLR TR0
CLR TF0
RET
3.3 Dùng CT con DELAY500 (bài 3.1) đ vi t CT t o sóng vuông f=1KHz t i

ể ế

P1.0.
3.4 Dùng CT con DELAY10 (bài 3.2) đ vi t CT t o sóng vuông f=50Hz t i

ể ế

P1.1.
3.5 Dùng CT con DELAY500 (bài 3.1) đ vi t CT t o sóng vuông f=500Hz

ể ế

(D=25%) t i P1.2.

3.6 Dùng CT con DELAY10 (bài 3.2) đ vi t CT t o sóng vuông f=20Hz

ể ế

(D=20%) t i P1.3.

3.7 Vi t CT dùng Timer t o sóng vuông f=500Hz t i P1.4. (Xtal 12MHz).

ế

3.8 Vi t CT dùng Timer t o sóng vuông f=20KHz t i P1.5. (Xtal 24MHz).

ế

3.9 Vi t CT dùng Timer t o 2 sóng vuông có cùng f= 1KHz t i P1.6 và P1.7.

ế

Bi t r ng sóng vuông t i P1.7 ch m pha h n sóng vuông t i P1.6 100(s. (Xtal

ế ằ

ơ

12MHz).
3.10 Vi t CT dùng Timer đi u khi n đèn giao thông t i m t giao l . Cho bi t

ế

ế

r ng:

Đèn Bit đi u khi n Th i gian

Xanh 1 P1.0 25s
Vàng 1 P1.1 3s
Đ 1 P1.2

Xanh 2 P1.3 33s
Vàng 2 P1.4 3s
Đ 2 P1.5

Đèn sáng khi bit đi u khi n b ng 0.

4. SERIAL PORT

4.1 Vi t CT đ c 1 chu i data ch a trong RAM n i t đ a ch 30H đ n 50H và

ế

ộ ừ ị

ế

xu t ra 1 thi t b (ví d nh màn hình tinh th l ng LCD) đ

c n i v i port

ế ị

ư

ể ỏ

ượ

ố ớ

n i ti p c a 8051 (ch đ UART 8 bit, 2400 baud). Cho Xtal 11,059 MHz.

ố ế

ế ộ

ORG 0000H
MOV TMOD,#00100000B
MOV SCON,#01010010B
MOV TH1,#-12
SETB TR1
MOV R0,#30H
lap: MOV A,@R0
JNB TI,$
CLR TI
MOV SBUF,A
INC R0
CJNE R0,#51H,lap

Trang

22/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

END
4.2 Vi t CT nh n 1 chu i data t 1 thi t b ngoài (ví d nh máy đ c mã

ế

ế ị

ư

v ch) n i v i 8051 qua port n i ti p (ch đ UART 8 bit, 4800 baud) và ghi

ố ớ

ố ế

ế ộ

data vào RAM n i t đ a ch 40H. Bi t r ng chu i data g m 20 byte và Xtal

ộ ừ ị

ế ằ

11,059MHz.
ORG 0000H
MOV TMOD,#00100000B
MOV SCON,#01010010B
MOV TH1,#-6
SETB TR1
MOV R0,#40H
MOV R2,#20
lap: JNB RI,$
CLR RI
MOV A,SBUF
MOV @R0,A
INC R0
DJNZ R2,lap
END
4.3 Vi t CT l y 1 chu i data ch a trong RAM ngoài b t đ u t đ a ch 2000H

ế

ắ ầ ừ ị

và xu t ra 1 thi t b đ

c n i v i port n i ti p c a 8051 (ch đ UART 8 bit,

ế ị ượ

ố ớ

ố ế

ế ộ

1200 baud). Chu i k t thúc b i ký t EOT (có mã ASCII là 04H) và ký t này

ỗ ế

cũng đ

c xu t ra (Xtal 11,059 MHz).

ượ

4.4 Làm l i bài 4.3 nh ng không xu t ký t EOT.

ư

4.5 Vi t CT nh n 1 chu i data t 1 thi t b ngoài n i v i 8051 qua port n i

ế

ế ị

ố ớ

ti p (ch đ UART 8 bit, 9600 baud) và ghi data vào RAM ngoài b t đ u t

ế

ế ộ

ắ ầ ừ

đ a ch 4000H. Chu i data b t đ u b ng ký t STX (02H) và k t thúc b ng ký

ắ ầ

ế

t ETX (03H). Không ghi 2 ký t này vào RAM. Cho Xtal 11,059MHz.

4.6 Vi t CT con mang tên XUAT có nhi m v l y 1 chu i data ch a trong

ế

ụ ấ

RAM ngoài xu t ra port n i ti p ch đ UART 9 bit. Bit th 9 là bit parity

ố ế ở

ế ộ

ch n. Chu i data k t thúc b ng ký t null (00H). CT g i CT con XUAT s đ t

ế

ẽ ặ

đ a ch b t đ u c a chu i vào DPTR tr

c khi g i CT con XUAT. Gi s port

ỉ ắ ầ

ướ

ả ử

n i ti p đã đ

c kh i đ ng.

ố ế

ượ

ở ộ

4.7 Vi t CT con mang tên NHAP có nhi m v nh p 1 chu i data g m 30 byte

ế

t port n i ti p ch đ UART 9 bit, bit th 9 là bit parity l . N u data nh n

ố ế ở

ế ộ

ế

đ

c không b l i thì ghi vào 1 vùng nh c a RAM n i, n u b l i thì không

ượ

ị ỗ

ớ ủ

ế

ị ỗ

ghi. CT g i CT con NHAP s đ t đ a ch đ u c a vùng nh vào thanh ghi R0

ẽ ặ ị

ỉ ầ

tr

c khi g i CT con NHAP. Gi s port n i ti p đã đ

c kh i đ ng.

ướ

ả ử

ố ế

ượ

ở ộ

5. INTERRUPT

5.1 Vi t CT dùng ng t Timer đ t o sóng vuông f=2KHz t i P1.7. (Xtal

ế

ể ạ

12MHz).
5.2 Vi t CT dùng ng t Timer đ t o sóng vuông f=200Hz t i P1.6. (Xtal

ế

ể ạ

12MHz).

Trang

23/24

background image

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T

Lê Chí Thông

5.3 Vi t CT dùng ng t Timer đ t o đ ng th i 2 sóng vuông 1KHz và 50Hz

ế

ể ạ

t i P1.0 và P1.1. (Xtal 6MHz)

5.4 Vi t CT l y 1 chu i data ch a trong Ram ngoài b t đ u t đ a ch 6200H

ế

ắ ầ ừ ị

đ n đ a ch 62FFH và xu t ra Port1, m i l n xu t cách nhau 50ms. S d ng

ế

ỗ ầ

ử ụ

ng t Timer. Xtal 12MHz.

5.5 Vi t CT nh p data t thi t b ngoài k t n i v i 8051 qua Port1, m i l n

ế

ế ị

ế ố ớ

ỗ ầ

nh p cách nhau 5s, data nh p v đ

c ghi vào vùng Ram n i b t đ u t đ a

ề ượ

ộ ắ ầ ừ ị

ch 50H đ n đ a ch 5FH. Bi t r ng sau khi ghi vào ô nh cu i cùng thì tr l i

ế

ế ằ

ở ạ

ghi vào ô nh đ u. S d ng ng t Timer. Xtal 12MHz.

ớ ầ

ử ụ

5.6 Vi t CT phát liên t c chu i s t 0 đ n 9 ra port n i ti p theo ch đ

ế

ỗ ố ừ

ế

ố ế

ế ộ

UART 8 bit, 2400 baud. S d ng ng t serial. Xtal 12MHz.

ử ụ

5.7 Vi t CT ch nh n data t 1 thi t b ngoài g i đ n 8051 qua port n i ti p

ế

ế ị

ở ế

ố ế

(ch đ UART 8 bit, 19200 baud). N u nh n đ

c ký t STX (02H) thì b t

ế ộ

ế

ượ

sáng LED, n u nh n đ

c ký t ETX (03H) thì t t LED, bi t r ng LED đ

c

ế

ượ

ế ằ

ượ

đi u khi n b ng ngõ P1.3 (LED sáng khi bit đi u khi n b ng 1). S d ng

ử ụ

ng t serial. Xtal 11,059MHz.

5.8 Vi t CT ch nh n 1 xung c nh xu ng đ a vào chân /INT0 (P3.2), khi có

ế

ư

xung thì nh p data t Port1 và phát ra port n i ti p ch đ UART 9 bit 4800

ố ế ở

ế ộ

baud, bit th 9 là bit parity l . Xtal 6MHz.

5.9 Vi t CT đ m s xung đ a vào chân /INT1 (P3.3) và đi u khi n relay thông

ế

ế

ư

qua chân P3.0 (relay đóng khi P3.0 b ng 1), c t s đ m vào ô nh 40H c a

ấ ố ế

Ram n i, n u s đ m ch a đ n 100 thì đóng relay, n u s đ m đ t 100 thì

ế ố ế

ư

ế

ế ố ế

ng t relay.

M y cái này có ích l m đ y pác nào b qua thi l thi vô thì đ ng có mà ti c

ế

nghe:0y34: :01p2: :0y36:

Trang

24/24


Wyszukiwarka

Podobne podstrony:
Suy Nghĩ, Nhận Thức Và Công Việc (Hội Ký Xây Dựng) Nguyễn Đình Cống, 160 Trang
KC 01 01 Sinh Tham Số An Toàn Cho Hệ Mật RSA Ts Lều Đức Tân, 43 Trang
ĐHCN Giáo trình thực hành điều khiển công nghiệp Võ Duy Linh, 31 Trang
ĐHTN Giáo Trình Môn Học Xử Lý Ảnh Ts Đỗ Năng Toàn & Ts Phạm Việt Bình, 76 Trang
Giám Sát Và Nghiệm Thu Kết Cấu Bê Tông Cốt Thép Toàn Khối Lê Trung Nghĩa, 74 Trang
ĐHBK Giáo Trình Đo Lường Và Điều Khiển Xa Nhiều Tác Giả, 98 Trang
ĐHBK Tài Liệu Hướng Dẫn Thiết Kế Thiết Bị Điện Tử Công Suất Trần Văn Thịnh, 122 Trang
ĐHBK Bài Tập Thiết Kế Chiếu Sáng Cao Việt Hà, 21 Trang
BCVT Bài Tập Tiếng Anh Chuyên Ngành Điện Từ Viễn Thông Ths Nguyễn Quỳnh Giao, 86 Trang
Bài Tập Lớn Sức Bền Vật Liệu Triệu Tuấn Anh, 11 Trang
Bài Tập Lớn Cơ Học Kết Cấu F1 Đại Học Gtvt
ĐHKT Giám Sát Thi Công Và Nghiệm Thu Công Tác Bê Tông Cốt Thép Pgs Ts Lê Kiều, 60 Trang
Các Vấn Đề Quản Lý Chất Lượng Điện Lực Miền Bắc, 58 Trang
Giáo Trình Đào Tạo Bồi Dưỡng Tư Vấn Giám Sát Khảo Sát Phạm Sanh, 20 Trang
ĐHBK Bài Giảng Hệ Điều Hành (NXB Hà Nội 2001) Lê Tiến Dũng, 96 Trang
Bài Giảng Thiết Bị Đầu Cuối Vi Thị Ngọc Mĩ, 32 Trang
Bài Tập Lập Trình C Lương Trần Hy Hiền, 18 Trang
Cơ Học Lý Thuyết (Tóm Tắt Lý Thuyết & Bài Tập Mẫu) Trịnh Anh Ngọc, 71 Trang

więcej podobnych podstron