Tải bản đầy đủ (.docx) (19 trang)

Đề cương vi điều khiển 8051

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 (4.4 MB, 19 trang )

Đề cương vi điều khiển 8051
PHẦN 1: dạng bài tập viết ctrinh
C ÂU 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
C ÂU 2 :
ORG 0000H
MOV R5,#20H
MOV R0,#30H
CLR A
LOOP: MOV @R0,A
INC R0
DJNZ R5,LOOP
END
C ÂU 3
ORG 0000H
MOV R0,#30H
MOV R1,#40H
MOV R5,#10
LOOP: MOV A,@R0
MOV @R1,A
INC R0


INC R1
DJNZ R5,LOOP
RET
END
: C Â U 4:
# I NC L UD E <SFR51.INC>
ORG

0000H

MOV

TMOD,#01

HERE:
MOV

TH0,#0FCH

MOV

TL0,#018H

CPL
ACALL
SJMP

P11.0
DELAY
HERE


;---------------------------------------------------------


DELAY:
SETB
AGAIN: JNB

TR0
TF0,AGAIN

CLR

TF0

CLR

TR0

SJMP

AGAIN

RET
END

DẠNG 2 câu hỏi lí thuyết
Câu 1.

3.1.Thành phần cấu tạo lên hệ vi xử lí đa năng CPU, RAM, ROM,I/O port, Timer,cổng COM nối tiếp



.3.2. 10. ROM là loại bộ nhớ bán dẫn có đặc tính:
Cho phép đọc dữ liệu từ ROM, không cho phép ghi dữ liệu vào ROM, không mất dữ
liệu khi mất nguồn điện.
11. RAM là loại bộ nhớ bán dẫn có đặc tính:
Cho phép đọc dữ liệu từ RAM, cho phép ghi dữ liệu vào RAM, mất dữ liệu khi mất
nguồn điện.
3.3. nhiệu vụ của CPU
Điều hành hoạt động của toàn hệ thống theo ý định của người sử dụng thông qua
chương trình điều khiển., Thi hành chương trình theo vòng kín gọi là chu kỳ lệnh
3.4..bàn phím, màn hình,… đc gọi là thiết bị ngoại vi
3.5,3.6.
2. BUS điều khiển: Có chức năng phân phát thông tin điều khiển từ bộ điều khiển tới mọi khối chức năng
khác để thực hiện sự hoạt động của máy tính. Ví dụ: Để chuyển dữ liệu từ bộ nhớ sang ALU thì BUS điều
khiển phải đưa tín hiệu là lệnh cung cấp dữ liệu vào bộ nhớ và đồng thời đưa tín hiệu thông báo phải nhận dữ
liệu đó vào ALU. Qua đó dễ thấy là tín hiệu trên BUS điều khiển chỉ theo một chiều.
- BUS dữ liệu: Có chức năng truyền dữ liệu từ khối chức năng này sang khối chức năng khác. Ví dụ: Dưới
lệnh từ BUS điều khiển, dữ liệu từ bộ nhớ truyền sang ALU. Tại đây, sau khi xử lý xong, dữ liệu lại được
truyền về đầu ra cũng theo BUS dữ liệu. Như vậy BUS dữ liệu có tính chất 2 chiều.
- BUS địa chỉ: Có chức năng thông báo vị trí nhớ của từ (tức thông tin dữ liệu đã được nhớ trong bộ nhớ) cho
bộ điều khiển để “xuất thông tin” đúng theo lệnh.
Hmmm còn một nơi khác định nghĩ như thế này.
- Bus điều khiển là các đường dây mang tín hiệu điều khiển hoạt động hoặc phản ánh trạng thái của các khối
như /RD(read - đọc bộ nhớ hoặc thiết bị ra vào), /WR (write - ghi dữ liệu vào bộ nhớ hoặc xuất dữ liệu ra
thiết bị ra), INT (interrupt - ngắt vi xử lý để trao đổi dữ liệu)...
- Bus dữ liệu là các đường dây mang số liệu mà vi xử lý đang trao đổi với bộ nhớ hoặc thiết bị vào/ra
- Bus địa chỉ mang thông tin về địa chỉ của ô nhớ hay một thiết bị vào/ra mà vi xử lý đang trao đổi tin. Thông
tin về địa chỉ là do vi xử lý phát ra để chọn ra một ô nhớ hoặc một thiết bị vào/ra mà nó cần trao đổi tin.
4.1. chân P0,P1,P2,P3 đầu lầ các cỏng vào ra cảu vđk 8051( lưu ý cổng P0 muốn vừa là ra vừa có thể vảo cần

thêm điện trở treo nếu ko thường chỉ là cổng ra).
4.2.8051,8052,8031 giống tât cả đều có các thông số kĩ thuật như 8051
Khác 8052 khác 8051 ở chỗ có thêm 128 byte RAM, 4K ROM và 1 bộ định thời nữa
8031 khác 8051 ở chỗ không có ROM trên chip, để dùng chip này cần bổ sung thêm ROM ngoài
4.3. DPTR là thanh ghi 16 bit,TMOD, TCON, 8 bit
5.
1. Bộ nhớ trong:

1.1. Bộ nhớ chương trình (ROM):


- Dựng để lưu trữ chương trình điều khiển cho chip 8051 hoạt động.
- Chip 8051 có 4 KB ROM trong, địa chỉ truy xuất: 000H – FFFH.
1.2. Bộ nhớ dữ liệu (RAM):
- Dựng để lưu trữ các dữ liệu và tham số.
- Chip 8051 có 128 byte RAM trong, địa chỉ truy xuất: 00H – 7FH.
- RAM trong của chip 8051 được chia ra:




RAM đa chức năng:

RAM định địa chỉ bit:
cho phép xử lý từng bit dữ liệu riêng lẻ mà không ảnh hưởng đến các bit khác trong cả byte.

 Lưu ý: Nếu trong chương trình không sử dụng các bit trong vùng RAM định địa chỉ bit này, ta có thể

sử dụng vùng nhớ 20H – 2FH cho các mục đích khác của ta. Ngược lại, ta phải viết chương trình cẩn
thận khi sử dụng vùng nhớ 20H – 2FH vì nếu sơ suất ta có thể ghi dữ liệu đè lên các bit đã được sử

dụng.
 Ví dụ: Viết lệnh làm cho 8 bit trong ô nhớ có địa chỉ 20H thuộc RAM nội có giá trị là 1 (xét truờng
hợp địa chỉ byte và địa chỉ bit).


• Các dãy thanh ghi:
 cho phép truy xuất dữ liệu nhanh, lệnh truy xuất đơn giản và ngắn gọn.

Bảng số liệu duới đây minh họa địa chỉ của các ô nhớ trong một dãy và các ký hiệu thanh ghi. R0 – R7
được gán cho từng ô nhớ trong dãy tích cực:

 Lưu ý:
 Ở chế độ mặc định thì dãy thanh ghi tích cực (đang được sử dụng) là dãy 0 và các thanh ghi trong dãy



lần lượt có tên là R0 - R7. Có thể thay đổi dãy tích cực bằng cách thay đổi các bit chọn dãy thanh ghi
RS1 và RS0 trong thanh ghi PSW (xem phần thanh ghi PSW).
Nếu chương trình của ta chỉ sử dụng dãy thanh ghi đầu tiên (dãy 0) thì ta có thể sử dụng vùng nhớ
08H – 1FH cho các mục đích khác của ta. Nhưng nếu trong chương trình có sử dụng các dãy thanh


ghi (dãy 1, 2 hoặc 3) thì phải rất cẩn thận khi sử dụng vùng nhớ từ 1FH trở xuống vì nếu sơ suất ta có
thể ghi dữ liệu đè lên các thanh ghi R0 – R7 của ta.
 Ví dụ 1: Quan hệ giữa ký hiệu thanh ghi R4 với các ô nhớ có địa chỉ tương ứng trong dãy thanh ghi
tích cực?
 Nếu dãy 0 tích cực: Thanh ghi R4<-> Ô nhớ 04H RAM nội.
 Nếu dãy 1 tích cực: Thanh ghi R4<-> Ô nhớ 0CH RAM nội.
 Nếu dãy 2 tích cực: Thanh ghi R4<->Ô nhớ 14H RAM nội.
 Nếu dãy 3 tích cực: Thanh ghi R4<-> Ô nhớ 1CH RAM nội.

 Ví dụ 2: Khi chip 8051 thực hiện lệnh MOV R4, #1AH thì giá trị “1AH” sẽ được nạp vào trong ô
nhớ có địa chỉ là bao nhiêu thuộc RAM nội. Xét tương ứng cho từng trường hợp dãy thanh ghi tích
cực là Dãy 0 và Dãy 3?

5.g. ngăn xếp có kích thước phụ thuộc vào thanh ghi con trỏ ngăn xếp SP
5.h.khởi tạo ngăn xếp
MOV SP,#7EH (1 BYTE)
MOV SP,#75H (10 BYTE)
MOV SP,#6FH (16 BYTE)
MOV SP,#5FH (32 BYTE)
5.n. vùng 80h-FFh là vùng thanh ghi có chức năng đặc biệt
5.o. thanh ghi A ở E0, TMOD ở 89H, SCON ở 98H,,TH0 ở 8CH, SMOD ở 87H, P0 ở 80H,,SP ở 81H, SBUF
ở 99H.


5.l.lệnh lấy dữ liệu khỏi ngăn xếp là lệnh POP, sau khi thực hiện lệnh vùng ngăn xếp tăng lên

5.m. lệnh đẩy dữ liệu khỏi ngăn xếp là lệnh PUSH, sau khi thực hiện lệnh vùng ngăn xếp giảm đi

6.a. MOV A,#55H; ADD A,#55H ( địa chỉ tức thời)
MOV R0, 40 ( địa chỉ trực tiếp)
MOV R2,A ; ADD A,R5 ( địa chỉ thanh ghi)
ADD A,@R0( địa chỉ gián tiếp thanh ghi)


MOVC A,@A+PC ( địa chỉ số)

7.a.



Câu 8|:
a.timer dùng làm counter hoặc timer, các bộ timer có timer0 và timer 1
b
c. để chọn chế độ trong timer tác động vào thanh ghi TMOD, tác động vò bit 2 hoắc bit 6, muốn là counter
set lên 1 muốn là timer set về 0
d. để kích hoặt timer chạt/ dừng ta tác động vào bit TRx của thanh ghiTCON
e.timer 0 chế độ 8 bit, chạy , dừng bằng phần mềm
MOV TMOD,#02H
f. timer 0 chế độ 16 bit, chạy , dừng bằng phần mềm
MOV TMOD,#01H
g. timer 0 chế độ 8 bit, chạy , dừng bằng phần mềm kết hợp cúng
MOV TMOD,#0AH
h. timer 0 chế độ 16 bit, chạy , dừng bằng phần mềm kết hợp vs phần cứng
MOV TMOD,#09H
j. nạp giá trị FFFA cho TH0 và TL0 thì sau 6 xung TF0 sẽ lên 1, nạp FFFFH thì sau 1 xung, nạp 0000 thì sau
65536 xung


Nạp TMOD 10H, timer 1 chế độ 1. Nạp TMOD 01H timer 0 chế độ 1
Nạp TMOD 20H timer 1 chế độ 2…02H timer 0 chế độ 2
Nạp TMOD12H timer 1 chế độ 1, timer 0 chế độ 2,,,,, nạp TMOD 21H timer 1 chế độ 2 timer 0 chế độ 1
Nạp 90H cổng gate đc thiết lập, timer1 chế độ 1, 09h tương tự
Nạp 50H, counter1, chế độ 1,nạp 05H , counter0, chế độ 1
Câu9:
a. Vai trò của SBUF trong truyền thông nối tiếp nếu ghi lên sbuf sẽ nạp dữ liệu để phát, việc đọc dữ liệu

SBUF sẽ truy xuất dữ liệu đã nhận đc
b. Scon thanh ghi điều khiển nối tiếp, lập trình bit khởi động start, bit dừng stop, các bit dữ liệu khi
định khung dữ liệu
c. ,d



d.
e. Tốc độ baud

Mov TH1,#-6 = MOV TH1,#FAH


Thiếu lập tốc độ baud là 4800


Câu 10,

b. độ rộng tối đa chương trình con xử lí ngắt reset là 3 byte
c. độ rộng tối đa chương trình con xử lí ngắt timer0 là 8 byte
d. độ rộng tối đa chương trình con xử lí ngắt external0 là 8 byte
e. serial com là 8 byte
f



k.


Dạng 3 phân tích:
Bài 1:

swap
anl
Djnz r2

swap
anl
Djnz r2
Djnz r1

R3
1
1
1
1
1
1
1
0

R2
2
2
2
1
1
1
0
0

Công thức : ((1+1+2)*2+2+1)*1+1+1=13
A=00H, R2,R3=0
. thời gian thực hiện 13 (us)
Chương trình:
+) timer 0, mode 2

Giá trị nạp cho TH0 là
(256-13)= 243 = F3H
MOV TH0,#F3H
SETB TR0
HERE: JNB TF0, HERE
CLR TR0
RET
+) timer 0, mode 1
Giá trị nạp cho TH1 và TL1 lần lượt là FF và F3
MOV
TH0,#FFH
MOV
TL,#F3H
SETB
TR0
HERE: JNB
TF0, HERE
CLR
TF0
CLR
TR0
RET

A
00000101
01010000
00000000
00000000
00000000
00000000


Số ck máy
3
1
1
2
1
1
2
2


RRC
Cpl
Djnz r2
RRC
Cpl
Djnz r2
Djnz r1
Mov r2
RRC
Cpl
Djnz r2
RRC
Cpl
Djnz r2
Djnz r1
Mov r2
RRC
Cpl

Djnz r2
RRC
Cpl
Djnz r2
Djnz r1

R3
3
3
3
3
3
3
3
2
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1

0

R2
2
2
2
1
1
1
0
0
2
2
2
1
1
1
0
0
2
2
2
1
1
1
0
0

Theo ct= 35 viết chương trình tương tự


C
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1

A
00000010
00000001
11111110

11111110
01111111
10000000
10000000
10000000
10000000
01000000
10111111
10111111
01011111
10100000
10100000
10100000
10100000
11010000
00101111
00101111
00010111
11101000
11101000
11101000

Số ckm
3
1
1
2
1
1
2

2
1
1
1
2
1
1
2
2
1
1
1
2
1
1
2
2


Inc A
CJNE
Inc A
CJNE
DEC R3
CJNE
DEC R3
CJNE
sjmp

R3

5
5
5
5
5
4
4
3..2..1..0
3..2..1..0

Tổng 49 TMC= 49s

A
0
1
2…9..10

2
1
2
1*9
2*9
1
2
1*4
2*4
2





×