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

Báo cáo bài tập lớn vi xử lý: ứng dụng của họ 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 (422.79 KB, 39 trang )

MỤC LỤC

1


LỜI NÓI ĐẦU
Trong những năm gần đây, những tiến bộ khoa học kĩ thuật đã đóng góp
rất nhiều vào trong các lĩnh vực đời sống xã hội, khoa học quân sự. Cùng với
đó là những tiến bộ vượt bậc về công nghệ và giải pháp, trong đó sự hiểu biết
và khả năng ứng dụng kĩ thuật vi xử lý nói chung và kĩ thuật vi điều khiển nói
riêng là điều rất cần thiết với công nhân và kĩ sư hiện nay.
Được sự giúp đỡ và chỉ bảo nhiệt tình của thầy Phạm Văn Hùng chúng
em đã thực hiện bài tập lớn môn Vì Xử Lý về ứng dụng của họ vi điều khiển
8051. Bài tập lớn đã giúp chúng em có một cái nhìn tổng quan về môn học vi
xử lý cũng như kỹ thuật vi xử lý mà chúng em gặp phải trong quá trình làm
việc sau nay.
Mặ dù đã cố găng hết sức nhưng do kiến thức có hạn cũng như chưa có
kinh nghiệp thực tế nên bài tập này khó tránh khỏi còn nhiều thiếu sót, chúng
em rất mong nhân được những ý kiến đóng góp quý báu của thầy và các thầy
cô trong khoa để chúng em có thể rút ra đươc kinh nghiệm và có thể hoàn
thành bài tập lớn này một cách tốt hơn.

2


CHƯƠNG I: GIỚI THIỆU VỀ CÁC LINH KIỆN ĐƯỢC SỬ DỤNG
I.
IC 8051
8051 là một bộ vi xử lí có 8 bit có nghĩa là CPU chỉ có thể làm việc với
8 bit tại một thời điểm. Các dữ liệu lớn hơn 8 bit được chia ra thành các dữ
liệu 8 bit để cho xử lí.














Các đặc điểm của 8051 được tóm tắt như sau:
4 KB ROM bên trong
12 Byte RAM nội.
4 Port xuất / nhập I/O 8 bit
Giao tiếp nối tiếp
64 KB vùng nhớ mã ngoài
64 KB vùng nhớ dữ liệu ngoại
Xử lí Boolean (hoạt đông trên bit đơn)
210 vị trí nhớ có thể định vị bit
4μs cho hoạt động nhân hoặc chia.
Cấu trúc IC 8051, chức năng từng chân

Cấu trúc vi xử lí 89c51
3


1. Vcc (chân 40):
- Cung cấp nguồn cho chip

- +5V
2.GND (chân 20): đất
3. XTAL1 & XTAL2 (chân 19, 18)
4


- 2 chân cung cấp xung clock ngoài
- Cách 1: dao động dùng thạch anh
Tần số thạch anh thường dùng trong các ứng dụng là: 11.0592 (giao tiếp với
cổng COM máy tính) và 12Mhz Tần số tối đa là 24Mhz. tần số càng lớn VĐK
xử lý càng nhanh.

Dao động của thạch anh
- Cách 2: dao động từ nguồn xung clock TTL bên ngoài
- Quan hệ giữa chu kỳ máy và XTAL
4. RST (chân 9): reset
- input & kích hoạt mức cao
- Để đảm bảo hoạt động reset xảy ra, xung kích khởi phải kéo dài ít nhất là 2
chu kỳ máy
- Giá trị các thanh ghi chịu tác động bởi hoạt động reset
- Mạch reset có chống rung
5. /EA (chân 31): External Access
- /EA nối mass chỉ định rằng code lưu trên bộ nhớ ngoài
6. /PSEN & ALE (chân 29 và 30) dùng cho ROM ngoài
- Với 8051, 8031, 8032 thì /EA nối Vcc
- “/”: chỉ định tác động mức thấp
5


a /PSEN (chân 29): Program Store Enable

- Output, cho phép truy xuất bộ nhớ chương trình ngoài
- Nối tới chân /OE của ROM/EPROM
- Khi thực thi chương trình ở ROM nội, /EA được gán mức 1, (khi đó /PSEN
được tự động giữ ở mức 1)
b. ALE (pin 30):Address Latch Enable
- Là chân output cho phép chốt địa chỉ để giải đa hợp (de-multiplexing) bus dữ
liệu và bus địa chỉ
- ALE xuất tín hiệu để chốt địa chỉ (byte thấp địa chỉ 16-bit) vào 1 thanh ghi
ngoài trong suốt nửa đầu của chu kỳ bộ nhớ (memory cycle). Trong nửa chu
kỳ bộ nhớ còn lại, P0 sẽ xuất/nhập dữ liệu
- ALE có f=1/6fclock.
- Có 1 ngoại lệ: trong thời gian thực thi lệnh MOVX, một xung ALE bị bỏ
qua.
7. Cổng I/O: P0, P1, P2, & P3. Mỗi cổng: 8 chân.
- 4 cổng I/O
Port 0 (chân 32-39) :P0 (P0.0〜P0.7)
Port 1 (chân 1-8) :P1 (P1.0〜P1.7)
Port 2 (chân 21-28) :P2 (P2.0〜P2.7)
Port 3 (chân 10-17) :P3 (P3.0〜P3.7)

6


Mỗi cổng có 8 chân
Đánh tên P0.X (X=0,1,...,7), P1.X, P2.X, P3.X
Ex:P0.0 là bit 0 (LSB) của P0
Ex:P0.7 là bit 7 (MSB) của P0
8 bit này cấu thành 1 byte
Mỗi cổng có thể được dùng như input hay output
Riêng cổng 3 có hai chức năng:

P3.0-RxD: chân nhận tín hiệu nối tiếp khi giao tiếp RS232 (cổng COM)
P3.1-TxD: phân truyền dữ liệu khi giao tiếp RS232
P3.2-INTO: intertupt 0, ngắt ngoài 0.
P3.3-INT1: interrupt 1, ngắt ngoài 1.
P3.4-T0: timer0, đầu vào timer 0.
P3.5-T1: timer1, đầu vào timer 1.
P3.6-WR: Write, điều khiển ghi dữ liệu.
P3.7-RD: read, điều khiển đọc dữ liệu.

7


II.

LED 7 THANH

Led 7 thanh được dùng nhiều trong các mạch hiển thị thông báo, hiển
thị số các ký tự đơn giản … Led 7 thanh được cấu tạo từ các Led đơn sắp xếp
theo các thanh nét để có thể biểu diễn các chữ số đơn giản từ 0 đến 9 và hay
như A đến F. Tùy vào kích thước của số và ký tự mà mỗi thanh được cấu tạo
bởi 1 hay nhiều Led đơn. Các Led đơn đó được ghép và được đặt tên bằng các
chữ cái a đến g và có 1 dấu chấm dot (dấu chấm này có thể sáng hay tắt thì tùy
theo yêu cầu) được tạo bởi 1 led đơn. Qua đó người ta chỉ cần 8 bit tương ứng
với 8 led đơn để điều khiển được để hiển thị số từ 0 đến 9 hoặc A đến F. Chia
led thành 2 loại Anode (cực +) chung và Cathode (cực -) chung. Đầu chung
của led được nối với +Vcc nếu là loại Anode chung, các chân còn lại dùng để
điều khiển trạng thái led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở
mức 0. Khi nối Cathode chung thì đầu chung sẽ được nối xuống Ground
(Mass),các chân còn lại dùng để điều khiển trạng thái tắt của led đơn. Led chỉ
sáng khi tín hiệu đặt vào các chân này bằng 1.


Hình ảnh led 7 thanh

8


Sơ đồ chân đấu nối của 2 loại led
Vì led chứa bên trong nó các led đơn nên khi kết nối cần đảm bảo dòng
qua mỗi led đơn trong khoảng 10mA đến 20mA để bảo vệ led. Nếu kết nối với
nguồn 5V thì có thể hạn dòng bằng điện trở 330Ω trước các chân tín hiệu điều
khiển.
 Sơ đồ được bố trí như sau:
Các điện trở 330Ω là các điện trở
bên ngoài được kết nối để giới hạn dòng
qua led nếu led 7 đoạn được nối với nguồn
5V.
Chân tín hiệu a điều khiển led a
sáng tắt, ngõ vào chân b để điều khiển led
b. Tương tự với các chân còn lại.

 Kết nối với Vi điều khiển

9




Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể
dùng 1 Port nào đó của Vi điều khiển để điều khiển led 7 đoạn. Như vậy led 7
đoạn nhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động sáng tắt

của từng led đơn trong nó, dữ liệu được xuất ra điều khiển led 7 đoạn thường
được gọi là "mã hiển thị led 7 đoạn". Có hai kiểu mã hiển thị led 7 đoạn: mã
dành cho led 7 đoạn có Anode (cực +) chung và mã dành cho led 7 đoạn có
Cathode (cực -) chung. Chẳng hạn, để hiện thị số 1 cần làm cho các led ở vị trí
b và c sáng, nếu sử dụng led 7 đoạn có Anode chung thì phải đặt vào hai chân
b và c điện áp là 0V (mức 0) các chân còn lại được đặt điện áp là 5V (mức 1),
nếu sử dụng led 7 đoạn có Cathode chung thì điện áp (hay mức logic)
hoàn toàn ngược lại, tức là phải đặt vào chân b và c điện áp là 5V (mức 1).
Bảng mã hiển thị led 7 đoạn:
Phần cứng được kết nối với 1 Port bất kì của Vi điều khiển, để thuận
tiện cho việc xử lí về sau phần cứng nên được kết nối như sau: Px.0 nối với
chân a, Px.1 nối với chân b, lần lượt theo thứ tự cho đến Px.7 nối với chân h.
• Dữ liệu xuất có dạng nhị phân như sau: hgfedcba
 Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung
(các led đơn sáng ở mức 0):
Số hiển thị trên
Mã hiển thị led 7 đoạn Mã hiển thị led 7 đoạn dạng
led 7 đoạn
dạng nhị phân
thập lục phân
hgfedcba
0
11000000
C0
1
11111001
F9
2
10100100
A4

3
10110000
B0
4
10011001
99
5
10010010
92
6
11000010
82
7
11111000
F8
8
10000000
80
9
10010000
90
A
10001000
88
B
10000011
83
C
11000110
C6

D
10100001
A1
E
10000110
86
10


F
-

10001110
10111111

8E
BF

 Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Cathode chung

(các led đơn sáng ở mức 1):
Số hiển thị trên
Mã hiển thị led 7 đoạn Mã hiển thị led 7 đoạn dạng
led 7 đoạn
dạng nhị phân
thập lục phân
0
00111111
3F
1

00000110
06
2
01011011
5B
3
01001111
4F
4
01100110
66
5
01101101
6D
6
01111101
7D
7
00000111
07
8
01111111
7F
9
01101111
6F
A
01110111
77
B

01111100
7C
C
00111001
39
D
01011110
5E
E
01111001
79
F
01110001
71
01000000
40

MAIN
Máy tính
(10ms)
Quét bàn phím
11


Số lần ấn
Xử lí phím
Biến đồi HEX→BCD
Hiển thị
RETI
CHƯƠNG II: SƠ ĐỒ THUẬT TOÁN

Quét bàn phím
Quét hàng
Cột = 1
Hàng = 0
Cột 1=0
Cột 2=0
Cột 3=0
Cột 4=0
MC=0EH
MC=0DH
MC=0BH
MC=07H
Hàng 1=0
Hàng 2=0
Hàng 3=0
Hàng 4=0
MH=E0H
MH=D0H
12


MH=B0H
MH=70H
Tính mã phím
MP=MCORMH
RET
RET
Đ
Đ
Đ

Đ
Đ
Đ
Đ
Đ
S
S
S
S
S
S
S
S

13


MP=BEH
MP=BDH
Phím 1
Setb ANF
Setb SOF
Phím 2
Setb ANF
Setb SOF
Phím 3
Setb ANF
Setb SOF
Phím 4
Setb ANF

Setb SOF
Phím 5
Setb ANF
Setb SOF
Phím 6
Setb ANF
Setb SOF
Phím 7
Setb ANF
Setb SOF
Phím 8
Setb ANF
14


Setb SOF
Phím 9
Setb ANF
Setb SOF
Phím 0
Setb ANF
Setb SOF
MP=BBH
MP=DEH
MP=DDH
MP=DBH
MP=EEH
MP=EDHH
MP=EBH
MP=7DH

Phím AC
Setb ACF
MP=E7H
Đ
S
S
S
S
S
15


S
S
S
S
S
S
Đ
Đ
Đ
Đ
Đ
Đ
Đ
Đ
Đ
Đ

MP=B7H

Phím bằng
Setb BANGF
Phím cộng
Setb CONGF
Setb CTNCF
Phím trừ
16


Setb TRUF
Setb CTNCF
Phím chia
Setb CHIAF
Setb CTNCF
Phím nhân
Setb NHANF
Setb CTNCF
MP=77H
MP=7BH
MP=7EH
MP=7DH
CLR ANF
CLR ACF
CLR CTNCF
RET
S
Đ
Đ
Đ
Đ

Đ
S
S
17


S
S

Số lần ấn
SOLANAN
DAANF=0

ANF = 1
ANF = 0
INC LANAN
DAANF = 1
DAANF = 1
RET
S
Đ
Đ
S
S

Xử lý phím
XULYPHIM
SOF=1
SH1F=1
CTNCF=1


18


SH1=0
LANAN=0

ACF=0
BANGF=0

P0,P1,P2,P3=0
LANAN=0

BANGF=0
SH1F=0
Thuchien pheptinh
Lcall HEXTOBCD

Nhập số hạng 1
SH1F=1
SH1= P0+P1.10+
P2.100+P3.1000
XL=? YL=?
Nhập số hạng 2
SH2= P0+P1.10+
P2.100+P3.1000
XL=? YL=?
RET
S
Đ

S
S
Đ
Đ
Đ
S
Đ
19


HIENTHI
Hiển thị
Từ BCD tra mã 7 thanh
n=4
n=0
Hiển thị Dn
n=n+1
RET
S
Đ

CHƯƠNG III : CHƯƠNG TRÌNH ĐIỀU KHIỂN
;========================================================
ORG 0000H ; VECTOR RESET
LJMP INIT ; NHAY TOI CHUONG TRINH KHOI TAO
ORG 0003H ; VECTOR NGAT NGOAI EX0
RETI
ORG 000BH ; VECTOR NGAT TRAN TF0
RETI
ORG 0013H ; VECTOR NGAT NGOAI EX1

RETI
ORG 001BH ; VECTOR NGAT TRAN TF1
RETI

20


ORG 0023H ; VECTOR NGAT TRUYEN THONG
RETI
ORG 002BH ; VECTOR NGAT TRAN TF2
LJMP MAYTINH ; CHUONG TRINH CON PHUC VU NGAT TRAN T2
;================================================================
;KHAI BAO CAC BIEN SO, HANG SO
;==========CAC CO========================
ZOV
EQU 01H
ANF
EQU 02H
DAANF
EQU 03H
CTNCF
EQU 04H
BANGF
EQU 05H
ACF
EQU 06H
SH1F
EQU 07H
SH2F
EQU 08H

CONGF
EQU 09H
TRUF
EQU 0AH
CHIAF
EQU 0BH
NHANF
EQU 0CH
SOF
EQU 0DH
KETQUAF EQU 0EH
;=======================================================
D0
EQU 50H
D1
EQU 51H
D2
EQU 52H
D3
EQU 53H
NUM EQU 54H
DIGIT EQU 55H
;================================================================
;========QUET BAN PHIM ==================
MAHANG
EQU 56H
MACOT
EQU 57H
MAPHIM
EQU 58H

GT
EQU 59H
LANAN
EQU 5AH
HDV
EQU 5BH
HC
EQU 5CH
HT
EQU 5DH
HN
EQU 5EH
FFF
EQU 61H

21


SH1L
EQU 62H
SH2L
EQU 63H
SH1H
EQU 64H
SH2H
EQU 65H
;KHAI BAO CAC BIEN SO CHO CHUONG TRINH CON
;================================================================
X0
EQU 70H

X1
EQU 71H
X2
EQU 72H
X3
EQU 73H
Y0
EQU 74H
Y1
EQU 75H
Y2
EQU 76H
Y3
EQU 77H
Z0
EQU 78H
Z1
EQU 79H
Z2
EQU 7AH
Z3
EQU 7BH
XL
EQU X0
XH
EQU X1
YL
EQU Y0
YH
EQU Y1

ZL
EQU Z0
ZH
EQU Z1
;================================================================
ORG
100
INIT:
CLR
EA
; CAM TAT CA CAC NGAT
MOV
SP,#2FH
; KHOI TAO NGAN XEP
MOV
T2CON,#00H
;T2 LAM VIEC O CHE DO AUTORELOAD
; VOI CHU KI NGAT LA 10s
MOV
TL2,#0EFH
MOV
RCAP2L,TL2
MOV
TH2,#0D8H
MOV
RCAP2H,TH2
; ==========KHOI TAO CAC BIEN SO===================
MOV
NUM,#0
MOV

DIGIT,#01H
MOV
DAANF,#0
MOV
ANF,#0
MOV
LANAN,#0

22


SETB
SETB
SETB

TR2
IE.5
EA

; CHO PHEP CAC NGAT

HERE:
SJMP
HERE
; DOI NGAT
;================================================================
MAYTINH:
CLR
TF2
LCALL

HIENTHI
LCALL
QUETBANPHIM
LCALL
SOLANAN
LCALL
NHAPSO
RETI
;========================================================
NHAPSO:
MOV
A,LANAN
CJNE
A,#0,BATDAU
MOV
D0,#0
MOV
D1,#0
MOV
D2,#0
MOV
D3,#0
BATDAU:
JNB
SOF,W
JB
SH1F,TIEP
LJMP
SOHANG1
TIEP:

LJMP
SOHANG2
W:
JNB
ACF,WW
MOV
D0,#0
MOV
D1,#0
MOV
D2,#0
MOV
D3,#0
MOV
LANAN,#0
CLR
BANGF
LJMP
KTNHAP
WW:
JNB
CTNCF,WWW
SETB
SH1F
MOV
LANAN,#0
LJMP
KTNHAP

23



WWW:
JB
BANGF,EE
LJMP
KTNHAP
EE:
SETB
KETQUAF
CLR
SH1F
SETB
BANGF
LJMP
KTNHAP
;===================================================
SOHANG1:
CLR
SOF
MOTSO1:
CJNE
A,#1,HAISO1
MOV
HDV,GT
MOV
D0,HDV
MOV
D1,#0
MOV

D2,#0
MOV
D3,#0
SJMP
CHAN1
HAISO1:
CJNE
A,#2,BASO1
MOV
D1,HDV
MOV
HC,GT
MOV
D0,HC
MOV
D3,#0
MOV
D2,#0
SJMP
CHAN1
BASO1:
CJNE
A,#3,BONSO1
MOV
D2,HDV
MOV
D1,HC
MOV
HT,GT
MOV

D0,HT
MOV
D3,#0
SJMP
CHAN1
BONSO1:
CJNE
A,#4,CHAN1
MOV
D0,GT
MOV
D1,HT
MOV
D2,HC
MOV
D3,HDV

24


CHAN1:
CJNE
A,#5,QQQ
MOV
LANAN,#0
LJMP
KTNHAP
QQQ:
MOV
XL,D3

MOV
YL,#0E8H
MOV
YH,#03H
LCALL
BMW
MOV
R1,Z0
MOV
R2,Z1
MOV
XL,D2
MOV
YL,#64H
MOV
YH,#0H
LCALL
BMW
MOV
YL,Z0
MOV
YH,Z1
MOV
XL,R1
MOV
XH,R2
LCALL
ADD16
MOV
SH1H,ZH

MOV
A,D1
MOV
B,#10
MUL
AB
ADD
A,D0
ADD
A,ZL
MOV
SH1L,A
LJMP
KTNHAP
;=============================================================
SOHANG2:
CLR
SOF
CJNE
A,#0,MOTSO
MOV
D0,#0
MOV
D1,#0
MOV
D2,#0
MOV
D3,#0
LJMP
CHAN

MOTSO:
CJNE
A,#1,HAISO
MOV
HDV,GT
MOV
D0,HDV

25


×