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

Bài Giảng Vi Điều Khiển 8051 8051 Microcontroller

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 (987.79 KB, 29 trang )

ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT VINH
PHÒNG ĐÀO TẠO - KHOA ĐIỆN TỬ

Bài giảng

VI ĐIỀU KHIỂN 8051

8051 Microcontroller
TS. Lê Thế Vinh

21 April 2009

L.T.Vinh

1

Nội dung
1.
2.
3.
4.
5.

21 April 2009

L.T.Vinh


Giới thiệu về 8051
Lập trình cho 8051, phần mềm
Đảm bảo về phần cứng
Bộ thực tập MDA-EMS51
Một số bài tập thực hành

L.T.Vinh

2

1


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

1. Giới thiệu về 8051
- Vi điều khiển 8051 là một máy tính được tích hợp trên
một chíp (là 1 IC, integrated circuit, có 40 chân)
- Khác với Vi xử lý, CPU

Ứng dụng: trong nhiều dụng cụ điện tử, thiết bị
điện, ôtô, máy giặt, lò vi sóng, điện thoại, đầu
đọc DVD, thiết bị đa phương tiện, dây chuyền
tự động, v.v.
21 April 2009

L.T.Vinh


3

1. Giới thiệu về 8051
Communicationtruyền thông

Avionics- đ.tử hàng
không
Automobile - ôtô

Consumer Electronics
– TB đ.tử tiêu dùng
21 April 2009

L.T.Vinh

Household Appliances – dụng cụ gia đình
L.T.Vinh

4

2


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

1. Giới thiệu về 8051
Today’s high-end automobile have > 80
microprocessors:

4-bit microcontroller checks seat belt;
microcontrollers run dashboard devices;
16/32-bit microprocessor controls engine.
Millions lines of code

21 April 2009

L.T.Vinh

5

1. Giới thiệu về 8051
Một số thông số trên máy bay

21 April 2009

L.T.Vinh

L.T.Vinh

6

3


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

1. Giới thiệu về 8051

Một số thông số trên máy bay

21 April 2009

L.T.Vinh

7

1. Giới thiệu về 8051
Đặc điểm:
4K Bytes ROM
128 Bytes RAM
4 cổng 8-bit I/O
2 bộ định thời 16-bit
Cổng nối tiếp …

Sơ đồ khối 8051
21 April 2009

L.T.Vinh

L.T.Vinh

8

4


ĐH Sư phạm Kỹ thuật Vinh


21 April 2009

2. Lập trình cho 8051
Ví dụ:

Ngôn ngữ
lập trình

ORG 2000H
MOV SP,#50H
MOV PSW,#00H
CLR P1,00H
; LED on
; SETB
P1,0FH ;LED off
END

21 April 2009

L.T.Vinh

9

2. Lập trình cho 8051
Các bước:
• Viết chương trình
• Dịch chương trình ra file hex
• Nạp chương trình vào VĐK
• Chạy chương trình
21 April 2009


L.T.Vinh

L.T.Vinh

10

5


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

3. Đảm bảo về phần cứng

1.
2.
3.
4.

21 April 2009

Nạp chương trình dạng Hex cho VĐK
Cấp nguồn: Vcc=+5V; (40) GND=0V
(20) (mass)
Cấp xung nhịp (Mạch dao động,
18,19)
Tín hiệu khởi động (ban đầu, khi xảy
ra lỗi, 9)

L.T.Vinh

11

4. Bộ thực tập MDA-EMS51
+ MDA - EMS51 là
TB thực hành
VĐK 8051 (cty
Midas
Engineering, Hàn
Quốc).
+ Kit MDA - EMS51
gồm các khối giao
tiếp cơ bản để tìm
hiểu về bộ vi điều
khiển 8051
+ Có 2 chế độ làm
việc: KIT và PC
+ Có phần cứng + mềm

21 April 2009

L.T.Vinh

L.T.Vinh

12

6



ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

4. Bộ thực tập MDA-EMS51
+ CPU & MEMORY
CPU sử dụng bộ vi điều khiển 8051 với xung nhịp 11,0592 MHz.
Khối bộ nhớ gồm bộ nhớ ROM và SRAM. ROM chứa các chương trình
cơ sở cho phép người sử dụng điều khiển kit MDA - EMS51 bằng
bàn phím Hex, khối hiển thị LCD để trao đổi dữ liệu. SRAM dùng
để chứa các chương trình ứng dụng do người dùng tạo ra
+ LED: 4 LEDs nối với các cổngn P1.0-P1.3
+ Dot Matrix: Khối ma trận điểm sử dụng các LED để hiện thị. Kích
thước của ma trận điểm là 8x8. Khối này giao tiếp với với bus hệ
thống thông qua vi mạch 8255A. Các bài tập tìm hiểu cấu trúc và
nguyên lý hiển thị của ma trận điểm sẽ được thực hiện trên khối này.
+ Keyboard: Khối bàn phím có 25 phím gồm: 16 phím dữ liệu số Hex, 8
phím chức năng và 1 phím khởi động lại (RESET). Phím RESET
nằm ở góc trên bên phải và tách rời với các phím khác. Các thông
tin điều khiển và dữ liệu được nhập vào hệ thống thông qua bàn
phím.
21 April 2009

L.T.Vinh

13

4. Bộ thực tập MDA-EMS51
1.

2.
3.
4.
5.
6.
7.
8.
9.
10.

Bật máy tính
Mở nắp Bộ thực tập
Bật công tắc nguồn (off -> on)
Suy nghĩ về bài toán cần làm, viết ra giấy thuật toán
Viết mã lệnh (lập trình) trên Notepad
Dùng phần mềm (chương trình) MDA-EMS51 để chuyển mã
lệnh sang mã hex, nạp vào VĐK, chạy thử
Quan sát kết quả trên Bộ thực hành
Xem xét, phân tích và sửa chương trình cho phù hợp (lặp lại
các bước 4-8)
Làm bài tập khác (các bước 4-8)
Kết thúc buổi thực hành: Đóng phần mềm, Tắt Bộ thực tậpđậy nắp hộp, Tắt máy tính

21 April 2009

L.T.Vinh

L.T.Vinh

14


7


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

4. Bộ thực tập MDA-EMS51
Một số giao diện: … F2, F3, - F5, F6.

21 April 2009

L.T.Vinh

15

4. Bộ thực tập MDA-EMS51
Một số giao diện: … F2, F3, - F5, F6.

21 April 2009

L.T.Vinh

L.T.Vinh

16

8



ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

4. Bộ thực tập MDA-EMS51
Một số giao diện: … F2, F3, - F5, F6.

21 April 2009

L.T.Vinh

17

4. Bộ thực tập MDA-EMS51
Một số giao diện: … F2, F3, - F5, F6.

21 April 2009

L.T.Vinh

L.T.Vinh

18

9


ĐH Sư phạm Kỹ thuật Vinh


21 April 2009

4. Bộ thực tập MDA-EMS51
Một số giao diện: … F2, F3, - F5, F6.

21 April 2009

L.T.Vinh

19

4. Bộ thực tập MDA-EMS51
Một số giao diện: … F2, F3, - F5, F6.

21 April 2009

L.T.Vinh

L.T.Vinh

20

10


H S phm K thut Vinh

21 April 2009

4. B thc tp MDA-EMS51

Mt s giao din: F2, F3, - F5, F6.

21 April 2009

L.T.Vinh

21

Mc ớch mụn hc
Môn học này, cung cấp cho SV:
- Kiến thức cơ bản về VĐK 8051 và khả năng ứng
dụng
- Ph-ơng pháp triển khai các ứng dụng điều khiển
- Làm quen với lập trình cho 8051, xem xét, phân
tích thuật toán, hình thành kỹ năng làm việc
- Rèn luyện ý thức chấp hành kỹ luật trong lao
động, học tập

21 April 2009

L.T.Vinh

L.T.Vinh

22

11


H S phm K thut Vinh


21 April 2009

Mc ớch mụn hc
Định h-ớng:
- Đối t-ợng nghiên cứu: VĐK 8051 và đối t-ợng cần
điều khiển: LED, LED ma trận, Bàn phím,
- Công việc cần làm: Hiểu mục đích bài toán, lập trình
cho VĐK, làm bộc lộ bản chất của quá trình điều
khiển
- Nghiên cứu: Dựa vào hoạt động của đối t-ợng cần
điều khiển, phân tích mối quan hệ, sự phụ thuộc thuật
toán, ảnh h-ớng đến kết quả mong muốn của bài toán
ntn? tốt hay ch-a tốt? dự đoán tại sao? và đ-a ra các
ph-ơng án giải quyết.
21 April 2009

L.T.Vinh

23

5. Mt s bi tp thc hnh
Giao tip vi LED n
Bt
ORG
MOV
MOV
CLR
END


2000h
SP,#50h
PSW,#0 ; Bank 0
P1.3
; Led on

Tt:
ORG
MOV
MOV
SETB
END
21 April 2009

L.T.Vinh

2000h
SP,#50h
PSW,#0 ; Bank 0
P1.3
; Led off

L.T.Vinh

24

12


ĐH Sư phạm Kỹ thuật Vinh


21 April 2009

5. Một số bài tập thực hành
Làm sao cho LED nhấp nháy?
ORG
MOV
MOV
LOOP: CLR
CALL
SETB
CALL
JMP

2000h
SP,#50h
PSW,#0
P1.3
DELAY
P1.3
DELAY
LOOP

DELAY: PUSH
MOV
MOV
DLY1: MOV
DLY2: NOP
NOP
NOP

DJNZ
DJNZ
POP
RET

PSW
PSW,#18h ; Bank 3
R7,#0
R6,#0

; Bank 0
; Led on
; Led off

R6,DLY2
R7,DLY1
PSW

END
21 April 2009

L.T.Vinh

25

5. Một số bài tập thực hành
Một số bài tập

?
1- Thuật toán?

2- Lưu đồ?
3- Chương trình?
4- Chạy thử nghiệm?
5- Xe xét, điều chỉnh
(lặp đi, lặp lại)

21 April 2009

L.T.Vinh

L.T.Vinh

26

13


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

5. Một số bài tập thực hành
Giao tiếp với LED ma trận

21 April 2009

L.T.Vinh

27


5. Một số bài tập thực hành
Kết nối với VĐK

21 April 2009

L.T.Vinh

L.T.Vinh

28

14


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

5. Một số bài tập thực hành
Bật sáng
LED (0,0)

; chuong trinh: Bat LED (0,0)
;---- Khai bao Bien dia chi --HANGA
EQU
0C014h
COTC
EQU
0C016h
TuDK

EQU
0C017h

; Port A
; Port C
; Control Word Register

;---- Khoi dong --ORG
MOV
MOV

2000h
SP,#50h
PSW,#0

; Bank 0

;---- Khoi dong 8255A ---MOV
MOV
MOVX

DPTR,#TuDK
A,#80h
; Tu dieu khien
@DPTR,A ; Khoi tao cho 8255A

;---- Dua gia tri DK ra Port A ---

MOV


A,#00000001B

MOV
MOVX

DPTR,#HANGA
@DPTR,A ; PA = 0FFh

;---- Dua gia tri DK ra Port C --MOV
DPTR,#COTC

21 April 2009

MOV

A,#11111110B

MOVX
END

@DPTR,A

; DPTR tro vao PC
; Gia tri lieu cho PC
; PC = A

L.T.Vinh

29


5. Một số bài tập thực hành
Bật sáng
LED (7,7)

; chuong trinh: Bat LED (7,7)
;---- Khai bao Bien dia chi --HANGA
EQU
0C014h
COTC
EQU
0C016h
TuDK
EQU
0C017h

; Port A
; Port C
; Control Word Register

;---- Khoi dong --ORG
MOV
MOV

2000h
SP,#50h
PSW,#0

; Bank 0

;---- Khoi dong 8255A ---MOV

MOV
MOVX

DPTR,#TuDK
A,#80h
; Tu dieu khien
@DPTR,A ; Khoi tao cho 8255A

;---- Dua gia tri DK ra Port A ---

MOV

A,#10000000B

MOV
MOVX

DPTR,#HANGA
@DPTR,A ; PA = 0FFh

;---- Dua gia tri DK ra Port C --MOV
DPTR,#COTC

21 April 2009

L.T.Vinh

MOV

A,#01111111B


MOVX
END

@DPTR,A

L.T.Vinh

; DPTR tro vao PC
; Gia tri lieu cho PC
; PC = A

30

15


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

5. Một số bài tập thực hành
Bật sáng
LED (0,0)
Và LED (7,7)

Thuật toán Quét
nhu bai truoc
;---- BAT LED (0,0) ---


LP:

MOV

A,#00000001B

MOV
MOVX
MOV

DPTR,#HANGA
@DPTR,A ; PA = 0FFh
DPTR,#COTC
; DPTR tro vao PC

MOV

A,#11111110B

; DL cho PC

MOVX

@DPTR,A

; PC = A

CALL

DELAY


; Luu y Do dai

;---- BAT LED (7,7) ---

MOV

A,#10000000B

MOV
MOVX
MOV

DPTR,#HANGA
@DPTR,A ; PA = 0FFh
DPTR,#COTC
; DPTR tro vao PC

MOV

A,#01111111B

; DL cho PC

MOVX

@DPTR,A

; PC = A


JMP

LP

END
21 April 2009

L.T.Vinh

31

5. Một số bài tập thực hành
Quét nhanh - chậm
; chuong trinh con tao tre.
DELAY:
PUSH PSW
MOV PSW,#18h
MOV R7,#0
DLY1:
MOV R6,#0
DLY2:
NOP
NOP
NOP
DJNZ R6,DLY2
DJNZ R7,DLY1
POP
PSW
RET


; Bank 3

Tổng độ dài thời gian trể: t=R7 x R6 (1-256), lưu ý: 0=256, 1 bé nhất
21 April 2009

L.T.Vinh

L.T.Vinh

32

16


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

5. Một số bài tập thực hành
Cột LED chạy?
PA=1 màu đỏ
PB=1 m. xanh
PA=PB=1 vàng

21 April 2009

L.T.Vinh

33


5. Một số bài tập thực hành
Lưu đồ thuật toán – Chương trình

21 April 2009

L.T.Vinh

L.T.Vinh

34

17


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

5. Một số bài tập thực hành
Một số bài tập
1- Bật/tắt một điểm LED
bất kỳ, với các màu
đỏ, xanh, vàng. Ví
dụ: LEDs (1,3);
(2,6); (5,5); v.v.
2- Thử nghiệm thuật toán
QUÉT cho 2 điểm
LED bất kỳ không
cùng hàng, cột với
thời gian trể nhanh –

chậm khác nhau

?
1- Thuật toán?
2- Lưu đồ?
3- Chương trình?
4- Chạy thử nghiệm?
5- Xe xét, điều chỉnh
(lặp đi, lặp lại)

21 April 2009

L.T.Vinh

35

5. Một số bài tập thực hành
KT Lập trình cho VĐK
Ví dụ:

Cấu trúc chương trình
Định nghĩa, khai báo biến,
Bắt đầu: ORG 2000h
Chương trình chính
Các chương trình con
Kết thúc END
21 April 2009

L.T.Vinh


X EQU 0C014H;
hằng Y DB 00100001B;
ORG 2000H
MOV SP,#50H
MOV PSW,#00H
CLR P1,00H
CALL Delay
Delay: ; chuong trinh delay
END

L.T.Vinh

36

18


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

5. Một số bài tập thực hành
KT Lập trình cho VĐK
1. Truy cập bít

2. Mảng 1 chiều

CLR P1.0

CLR P1


CLR P1.1

Hoặc

CLR P1.2

MOV a,#00000000h

CLR P1.3

MOV P1,a

21 April 2009

L.T.Vinh

37

5. Một số bài tập thực hành
HANGA EQU
MANG2:
DB
DB
DB

0C014H

ORG
….

MOV
MOV
MOV
LAP: MOVC
MOV
MOVX
INC
DJNZ

END

2000H

21 April 2009

L.T.Vinh

00000000B
11111100B
00010010B

B,0
R1,3
DPTR,#MANG2
A,@B+DPTR
DPTR,#HANGA
@DPTR,A
B
R1,LAP


KT Lập trình cho VĐK

<= Mảng 2 chiều

; Tro vao mang
; Lay du lieu
; Dua DL ra HANGA
; Tro den phan tu k.tiep

L.T.Vinh

38

19


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

5. Một số bài tập thực hành
Hiện ra chữ A trên ma trận LED

21 April 2009

L.T.Vinh

39

5. Một số bài tập thực hành

Hiện ra chữ A trên ma trận LED

21 April 2009

L.T.Vinh

L.T.Vinh

40

20


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

5. Một số bài tập thực hành
Hiện ra chữ A trên ma trận LED
...

21 April 2009

L.T.Vinh

41

5. Một số bài tập thực hành
Một số bài tập
Hiện thị các chữ, số,

biểu tượng khác
tùy ý như chữ: B,
C, E … ; số 1, 2,
3 …; Quả tim
v.v.
Hai chế độ: Tĩnh và
động
21 April 2009

L.T.Vinh

?
1- Thuật toán?
2- Lưu đồ?
3- Chương trình?
4- Chạy thử nghiệm?
5- Xe xét, điều chỉnh
(lặp đi, lặp lại)
L.T.Vinh

42

21


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

5. Một số bài tập thực hành

Giao tiếp với Bàn phím

21 April 2009

L.T.Vinh

43

5. Một số bài tập thực hành
Giao tiếp với Bàn phím
Phát hiện phím bấm
- Đọc dữ liệu cột VD:
D3 – D0 = 1011 nghĩa là 1
phím trên cột D2 đã
được ấn.
- Đọc dữ liệu hàng cho đến khi tìm được phím ấn thì dừng.
VD: D3 – D0 = 1110, phím được ấn nằm trên hàng D0
- Vậy đó là số 2
21 April 2009

L.T.Vinh

L.T.Vinh

44

22


ĐH Sư phạm Kỹ thuật Vinh


21 April 2009

5. Một số bài tập thực hành
Giao tiếp với Bàn phím
Dữ liệu đọc từ địa chỉ
0C004H có dạng:
1xxxxxxx, D7=1: là chưa có
phím bấm.
0xxxxxxx, D7=0: có phím đã
bấm, thì tổ hợp 5 bit
thấp nhất trong đó
chính là mã của phím
được bấm.
Lưu ý: khi đã nhận được mã của phím, ta cần truy cập tới địa chỉ
0C000H để lập lại bit cờ I7 (D7) về 1 chuẩn bị cho quá trình
kiểm tra phím tiếp theo.
21 April 2009

L.T.Vinh

45

5. Một số bài tập thực hành
Giao tiếp với Bàn phím

21 April 2009

L.T.Vinh


L.T.Vinh

46

23


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

5. Một số bài tập thực hành
Giao tiếp với Bàn phím
VD: Ấn phím 2
để bật/tắt
LED 2

21 April 2009

L.T.Vinh

47

5. Một số bài tập thực hành
Lập trình cho VĐK 8051 – Vòng lặp
MOV A,B
CJNE A,#2,Viec2
; --- Việc 1 --Viec2: ; --- Việc 2 --CJNE A,#3,Viec4
; --- Việc 3 --Viec4: ; --- Việc 4 ---


Cấu trúc Case
21 April 2009

L.T.Vinh

L.T.Vinh

48

24


ĐH Sư phạm Kỹ thuật Vinh

21 April 2009

5. Một số bài tập thực hành
Vòng lặp FOR
MOV A,#10
MOV R1,#0
Viec1: INC R1
DJNZ A,Viec1 ;giam A, A#0 nhay


21 April 2009

L.T.Vinh

49


5. Một số bài tập thực hành

Vòng lặp
DO-WHILE

Lap: MOV
MOVX
JB
21 April 2009

L.T.Vinh

DPTR,#KEY
A,@DPTR ; quet phim
ACC.7,Lap ; tiep tuc quet neu bit co = 1
L.T.Vinh

50

25


×