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

Bài tập lớn vi xử lý: Đo áp suất sử dụng 8051 và cảm biến MPX4115 hiển thị LCD

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 (3.31 MB, 43 trang )

Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

Mục lục
Chương 1: Cơ sở lý thuyết ..........................................................................................3
1.1. Mục đích và yêu cầu .........................................................................................3
1.2. Các phương pháp đo.........................................................................................3
1.2.1. Áp kế dùng dịch thể ...................................................................................3
1.2.2. Áp kế kiểu đàn hồi .....................................................................................3
1.3. Các linh kiện dùng trong bài toán ...................................................................4
1.3.1. Vi điều khiển AT89C51 .............................................................................4
1.3.2. Màn hình LCD16x2 ...................................................................................5
1.3.3. Cảm biến áp suất MPX4115 .....................................................................7
1.3.4. ADC0804 ...................................................................................................11
1.3.5. Vi mạch giải mã bàn phím 74148 ...........................................................12
1.3.6. Bộ nhân logic SN74LS08 .........................................................................13
1.3.7. Tụ điện ......................................................................................................14
1.3.8. Thạch anh .................................................................................................14
1.3.9. Điện trở .....................................................................................................14
1.3.10. Biến trở ...................................................................................................14
1.3.11. Nút ấn ......................................................................................................14
1.3.12. Transistor 2N3906 TO92 .......................................................................14
1.3.13. Đèn led ....................................................................................................14
1.3.14. Buzzer (Còi chíp) ...................................................................................14
1.4. Khái quát về họ vi điều khiển 8051 ............................................................... 15
1.4.1. Lich sử của 8051 .......................................................................................15
1.4.2. Kiến trúc phần cứng của 8051 ................................................................ 15
1.4.3. Ý nghĩa các chân của 8051 ......................................................................16
1.4.4. Các thanh ghi đặc biệt .............................................................................17
Chương 2: Thiết kế hệ thống ....................................................................................19


2.1. Sơ đồ khối và mạch nguyên lý .......................................................................19
2.1.1. Sơ đồ khối .................................................................................................19
2.1.2. Mạch nguyên lý ........................................................................................20
2.2. Xây dựng thuật toán .......................................................................................21
2.2.1. Khai báo đầu chương trình .....................................................................21

Lê Bảo Long

1


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

2.2.2. Lưu đồ thuật toán hàm đọc giá trị từ ADC0804 ...................................22
2.2.3. Lưu đồ thuật toán hàm delay_us ............................................................ 23
2.2.4. Lưu đồ thuật toán hàm delay_ms...........................................................23
2.2.5. Lưu đồ thuật toán hàm bật LCD............................................................ 23
2.2.6. Lưu đồ thuật toán hàm gửi một lệnh cho LCD.....................................24
2.2.7. Lưu đồ thuật toán hàm xóa màn hình LCD ..........................................24
2.2.8. Lưu đồ thuật toán hàm khởi tạo chế độ 8 bit LCD .............................. 24
2.2.9. Lưu đồ thuật toán hàm khởi tạo LCD ...................................................25
2.2.10. Lưu đồ thuật toán hàm dịch chuyển con trỏ LCD ............................. 26
2.2.11. Lưu đồ thuật toán hàm viết một ký tự ra LCD ..................................26
2.2.12. Lưu đồ thuật toán hàm gửi một chuỗi ra LCD ...................................27
2.2.13. Lưu đồ thuật toán hàm gửi một số ra LCD.........................................27
2.2.14. Lưu đồ thuật toán hàm khởi tạo ..........................................................27
2.2.15. Lưu đồ thuật toán hàm điều chỉnh giá trị cảnh báo ...........................28
2.2.16. Lưu đồ thuật toán chương trình con phục vụ ngắt ............................ 29

2.2.17. Lưu đồ thuật toán chương trình chính ................................................30
2.3. Xây dựng phần mềm.......................................................................................31
2.4. Mạch in ............................................................................................................40
2.5. Hình ảnh thiết bị qua phần mềm Altium......................................................40
2.5.1. Mặt trên khi có linh kiện .........................................................................41
2.5.2. Mặt trên khi chưa hàn linh kiện ............................................................. 41
2.5.3. Mặt dưới ...................................................................................................42
Chương 3: Hướng dẫn sử dụng sản phẩm .............................................................. 43

Lê Bảo Long

2


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

Chương 1: Cơ sở lý thuyết
1.1. Mục đích và yêu cầu
Trong công nghiệp luyện kim sử dụng nhiều các thiết bị thủy lực và khí nén, để
hệ thống làm việc bình thường phải đo và kiểm tra áp suất một cách liên tục, nếu áp
suất chất lỏng, khí hoặc hơi vượt quá một giới hạn nhất định có thể ảnh hưởng xấu đến
hoạt động của thiết bị, thậm chí có thể làm hỏng hoặc nổ bình chứa, đường ống dẫn
gây thiệt hại nghiêm trọng. Bởi vậy, việc đo áp suất chất lưu có ý nghĩa rất lớn trong
việc đảm bảo an toàn cho thiết bị cũng như giúp cho việc kiểm tra và điều khiển hoạt
động của máy móc thiết bị có sử dụng chất lưu.
1.2. Các phương pháp đo
Ở đây do sử dụng sensor MPX4115 là sensor dùng nguyên lý đàn hồi nên ta chỉ
xét tập trung vào phương pháp sử dụng nguyên lý này. Các phương pháp khác chỉ nêu

mang tính chất tham khảo.
1.2.1. Áp kế dùng dịch thể
- Vi áp kế kiểu phao
- Vi áp kế kiểu chuông
- Vi áp kế kiểu bù
- Áp kế kiểu vành khuyên
1.2.2. Áp kế kiểu đàn hồi
- Áp kế kiểu lò xo
- Áp kế kiểu màng: phần tử có cấu tạo màng mỏng chia làm 2 loại là màng đàn hồi
và màng dẻo.
Khi áp suất tác động lên màng làm nó biến dạng. Biến dạng của màng là hàm phi
tuyến của áp suất và tùy thuộc điểm khảo sát. Với màng mỏng độ phi tuyến là khá lớn
khi độ võng lớn, do đó thường chỉ sử dụng trong một phạm vi hẹp của độ dịch chuyển
của màng.

Màng phẳng

Màng uốn nếp

Độ võng của màng phẳng dưới tác dụng của áp suất lên màng theo công thức:



Lê Bảo Long

4
3
2 pR
1


v
  Yh3
16

3


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

Màng uốn nếp có đặc tính phi tuyến nhỏ hơn màng phẳng nên có thể được sử
dụng độ võng lớn hơn màng phẳng.

 b 3 pR 4
Độ võng của tâm màng uốn nếp được xác định theo công thức: a   3  4
h h
Yh
trong đó a, b là các hệ số phụ thuộc hình dạng và bề dày của màng.
Khi đo áp suất nhỏ người ta dùng màng dẻo hình tròn phẳng hoặc uốn nếp, chế
tạo từ vải tấm cao su. Trong một số trường hợp người ta dùng màng dẻo tâm cứng, khi
đó ở tấm màng được kẹp cứng bởi hai tấm kim loại.

1.3. Các linh kiện dùng trong bài toán
1.3.1. Vi điều khiển AT89C51

- AT89C51 là một hệ vi tính 8 bit đơn chíp CMOS có hiệu suất cao, công suất
nguồn tiêu thụ thấp và có 4Kbyte bộ nhớ ROM Flash xoá được lập trình được.
Chip này được sản xuất dựa vào công nghệ bộ nhớ không mất nội dung có độ
tích hợp cao của Atmel.

- Chip AT89C51 cũng tương thích với tập lệnh và các chân ra của chuẩn công
nghiệp MCS-51. Flash trên chip này cho phép bộ nhớ chương trình được lập
trình lại trên hệ thống hoặc bằng bộ lập trình bộ nhớ không mất nội dung qui
ước. Bằng cách kết hợp một CPU linh hoạt 8 bit với Flash trên một chip đơn thể,

Lê Bảo Long

4


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

Atmel 89C51 là một hệ vi tính 8 bit đơn chip mạnh cho ta một giải pháp có hiệu
quả về chi phí và rất linh hoạt đối với các ứng dụng điều khiển.
- AT89C51 có các đặc trưng sau: 4Kbyte Flash, 128byte Ram, 32 đường xuất
nhập, hai bộ định thời 16 bit, một cấu trúc ngắt 2 mức ưu tiên và 5 nguyên nhân
ngắt, một port nối tiếp song công, mạch dao động và tạo xung clock trên chip.
Thông số kỹ thuật
- 4 KB bộ nhớ có thể lập trình lại nhanh, có khả năng tới 1000 chu kỳ ghi xoá
- Tần số hoạt động từ: 0Hz đến 24 MHz
- 3 mức khóa bộ nhớ lập trình
- 2 bộ Timer/counter 16 Bit
- 128 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 us cho hoạt động nhân hoặc chia
Chi tiết xem thêm tại:
/>1.3.2. Màn hình LCD16x2

Thông số kỹ thuật:
- Điện áp hoạt động: 3,3 VDC.
- Kích thước: 80 x 36 x 12.5 mm
- Chữ đen, nền xanh lá
- Khoảng cách giữa hai chân kết nối là 0.1 in tiện dụng khi kết nối với
Breadboard.
- Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi
dây.

Lê Bảo Long

5


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

- Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử
dụng ít điện năng hơn.
- Có thể được điều khiển với 6 dây tín hiệu
- Có bộ ký tự được xây dựng hổ trợ tiếng Anh và tiếng Nhật.
Chức năng các chân
Chân


Ký hiệu

Mô tả

Giá trị

1

Vss

GND

0V

2

Vcc

Chân cấp nguồn

5V

3

VE

Độ tương phản

4


RS

Lựa chọn thanh ghi

5

RW

Chọn thanh ghi
đọc/viết dữ liệu

6

E

Enable

7

DB0

8

DB1

9

DB2

10


DB3

11

DB4

12

DB5

13

DB6

14

DB7

15
16

RS=0 (mức thấp) chọn thanh ghi lệnh
RS=1 (mức cao) chọn thanh ghi dữ liệu
R/W=0 thanh ghi viết dữ liệu
R/W=1 thanh ghi đọc dữ liệu

Chân truyền dữ liệu

8bit từ DB0 đến DB7


A

Cực dương led nền

0V đến 5V

K

Cực âm led nền

0V

Bảng tóm tắt tập lệnh

Lê Bảo Long

6


Trường Đại học Công nghiệp Hà Nội
Command
Clear display
Cursor home
Entry mode set
Display on/off
control
Cursor/Display
Shift
Function set

Set CGRAM
address
Set DDRAM
address
Read “BUSY”
flag (BF)
Write
CGRAM or
DDRAM
Read CGRAM
or DDRAM

Khoa Điện - Ngành: Tự động hó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

0
1
I/D

1
x
S

Execution
Time
1,64 ms
1,64 ms
40 us


0

0

0

0

0

0

1

D

C

B

40 us

0

0

0

0


0

1

x

x

40 us

0

0

0

0

1

DL

x

x

40 us

0


0

0

1

0

0

1

DDRAM address

40 us

0

1

BF

DDRAM address

-

1

0


D7 D6 D5 D4

D3

D2

D1 D0

40 us

1

1

D7 D6 D5 D4

D3

D2

D1 D0

40 us

RS RW D7 D6 D5 D4

D3

D2


S/C R/L
N

F

D1 D0

CGRAM address

40 us

Chi tiết xem thêm tại:
/>1.3.3. Cảm biến áp suất MPX4115
Cảm biến áp suất MPX4115 được thiết kế để cảm nhận áp suất không khí tuyệt
đối trong một máy đo độ cao hoặc một ướng dung thước đo. Người sử dụng có thể
ghép nối MPX4115 với một vi điều khiển hoặc đầu vào của một bộ ADC.
Sơ đồ các khối của cảm biến

Lê Bảo Long

7


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

Đặc điểm hoạt động
Characteristic
Pressure Range

Supply Voltage
Supply Current
Minimum Pressure Offset (0 to 85°C)
VS = 5.1 Volts
Full Scale Output (0 to 85°C)
VS = 5.1 Volts
Full Scale Span (0 to 85°C)
VS = 5.1 Volts
Accuracy
Sensitivity
Response Time
Output Source Current at Full Scale
Output
Warm-Up Time
Offset Stability

Symbol
POP
VS
Io

Min
15
4,85
-

Typ
5,1
7.0


Max
115
5,35
10

Unit
KPa
Vdc
mAdc

Voff

0,135 0,204 0,273

Vdc

VFSO

4,725 4,794 4,863

Vdc

VFSS

-

4,59

-


Vdc

V/P
tR

-

46
1,0

±1,5
-

%VFSS
mV/KPa
ms

Io+

-

0,1

-

mADC

-

-


20
±0,5

-

mSec
%VFSS

Đầu ra so với áp suất tuyệt đối

Giá trị chuyển đổi:
Vout = VS (P x 0,009 – 0,095) ± (Pressure Error x Temp. Factor x 0,009 x VS)
VS = 5,1 V ± 0.25 Vdc

Lê Bảo Long

8


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

Sai số do nhiệt độ:

Mức sai số cho phép:

Lê Bảo Long


9


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

Sơ đồ chân phục vụ làm mạch:

Chi tiết xem thêm tại: />
Lê Bảo Long

10


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

1.3.4. ADC0804

- Giới thiệu:
+ Bộ chuyển đổi ADC0804 là bộ chuyển đổi tương tự sang số. ADC 0804 thường
được dùng trong các ứng dụng đo lường.
+ Điện áp làm việc là +5VDC với độ phân giải là 8bits. Thời gian chuyển đổi
110us
- Chức năng các chân:
+ Chân CS- chọn chíp: Là một đầu vào tích cực mức thấp được sử dụng để kích
hoạt chíp ADC0804. Để truy cập ADC 0804 thì chân này phải ở mức thấp.
+ Chân RD (đọc): Đây là một tín hiệu đầu vào được tích cực mức thấp. Các bộ

ADC chuyển đổi đầu vào tương tự thành số nhị phân tương đương với nó và giữ nó
trong một thanh ghi trong. được sử dụng để nhận dữ liệu được chuyển đổi ở đầu ra của
ADC 0804. Khi CS = 0 nếu một xung cao - xuống - thấp được áp đến chân thì đầu ra
số 8 bít được hiển diện ở các chân dữ liệu D0 - D7. Chân cũng được coi như cho phép
đầu ra.
+ Chân WR ghi (thực ra tên chính xác là “Bắt đầu chuyển đổi”): Đây là chân
đầu vào tích cực mức thấp được dùng để báo cho ADC 0804 bắt đầu quá trình chuyển
đổi. Nếu CS = 0 khi tạo ra xung 0 lên 1 thì bộ ADC 0804 bắt đầu chuyển đổi giá trị đầu
vào tương tự Vin về số nhị phân 8 bit. Lượng thời gian cần thiết để chuyển đổi thay đổi
phụ thuộc vào tần số đưa đến chân CLK IN và CLK R. Khi việc chuyển đổi dữ liệu
được hoàn tất thì chân INTR được ép xuống thấp bởi ADC 0804.
+ Chân CLK IN và CLK R: Chân CLK IN là một chân đầu vào được nối tới
một nguồn đồng hồ ngoài khi đồng hồ ngoài được sử dụng để tạo ra thời gian. Tuy
nhiên 0804 cũng có một bộ tạo xung đồng hồ. Để sử dụng bộ tạo xung đồng hồ trong
(cũng còn được gọi là bộ tạo đồng hồ riêng) của 0804 thì các chân CLK IN và CLK R
được nối tới một tụ điện và một điện trở như chỉ ra trên hình. Trong trường hợp này
tần số đồng hồ được xác định bằng biểu thức: f = 1/(1.1xRC)
Giá trị tiêu biểu của các đại lượng trên là R = 10kW và C= 150pF và tần số nhận được
là f = 606kHz và thời gian chuyển đổi sẽ mất là 110ms.

Lê Bảo Long

11


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

+ Chân ngắt INTR (ngắt hay gọi chính xác hơn là “kết thúc chuyển đổi”): Đây

là chân đầu ra tích cực mức thấp. Bình thường nó ở trạng thái cao và khi việc chuyển
đổi hoàn tất thì nó xuống thấp để báo cho CPU biết là dữ liệu được chuyển đổi sẵn sàng
để lấy đi. Sau khi xuống thấp, ta đặt CS = 0 và gửi một xung cao 0 xuống - thấp tới
chân lấy dữ liệu ra của 0804.
+ Chân Vin (+) và Vin (-): Đây là các đầu vào tương tự vi sai mà Vin = Vin (+) Vin (-). Thông thường Vin (-) được nối xuống đất và Vin (+) được dùng như đầu vào
tương tự được chuyển đổi về dạng số.
+ Chân VCC: Đây là chân nguồn nuôi +5v, nó cũng được dùng như điện áp tham
chiếu khi đầu vào Vref/2 (chân 9) để hở.
+ Chân Vref/2: Chân 9 là một điện áp đầu vào được dùng cho điện áp tham chiếu.
Nếu chân này hở (không được nối) thì điện áp đầu vào tương tự cho ADC 0804 nằm
trong dải 0 đến +5v (giống như chân VCC). Tuy nhiên, có nhiều ứng dụng mà đầu vào
tương tự áp đến Vin cần phải khác ngoài dải 0 đến 5v. Chân Vref/2 đượcdùng để thực thi
các điện áp đầu vào khác ngoài dải 0 - 5v. Ví dụ, nếu dải đầu vào tương tự cần phải là
0 đến 4v thì Vref/2 được nối với +2v.
+ Các chân D0-D7: các chân data.
Sơ đồ đấu nối:

Chi tiết hơn về ADC 0804 xem thêm tại:
/>1.3.5. Vi mạch giải mã bàn phím 74148
- Điện áp hoạt động: 4,75-5,25V
- Dòng điện 8mA
Chức năng các chân:
0÷7 hay I0÷I7 là các đầu vào tích cực mức thấp
A, B, C là các đầu ra tích cực mức thấp
EI là chân cho phép giải mã tích cực mức thấp

Lê Bảo Long

12



Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

GS: Khi một trong các đầu vào tích cực thì chân này chuyển từ mức 1 xuống
mức 0
EO: Khi một trong các đầu vào tích cực thì chân này chuyển từ mức 0 lên mức 1
Bảng nguyên lý mô tả hoạt động 74148
EI
1
0
0
0
0
0
0
0
0
0

I0
x
1
x
x
x
x
x
x

x
0

I1
x
1
x
x
x
x
x
x
0
1

Đầu vào
I2
I3
I4
x
x
x
1
1
1
x
x
x
x
x

x
x
x
x
x
x
0
x
0
1
0
1
1
1
1
1
1
1
1

I5
x
1
x
x
0
1
1
1
1

1

I6
x
1
x
0
1
1
1
1
1
1

I7
x
1
0
1
1
1
1
1
1
1

GS
1
1
0

0
0
0
0
0
0
0

A
1
1
0
1
0
1
0
1
0
1

Đầu ra
B
1
1
0
0
1
1
0
0

1
1

C
1
1
0
0
0
0
1
1
1
1

EO
1
0
1
1
1
1
1
1
1
1

Chi tiết xem thêm tại:
/>1.3.6. Bộ nhân logic SN74LS08
Chức năng: IC SN74LS08 là mạch tích hợp dùng để nhân logic hai tín hiệu đầu

vào và trả về kết quả nhân ở chân đầu ra.
Sơ đồ chân:
1A-1B÷4A-4B: đầu vào tín hiệu logic cần nhân.
Y1÷Y4: kết quả của phép nhân logic tương ưng.
Vcc: chân cấp nguồn cho IC hoạt động, hỗ trợ nguồn 5V.
GND: chân nối đất.

Sơ đồ chân SN74LS08
Thông số kỹ thuật:
- Điện áp nguồn cấp hỗ trợ: 5V.
- Điện áp vào mức cao: >2V.

Lê Bảo Long

13


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

- Điện áp vào mức thấp: <0.8V.
- Điện áp ra mức cao: 2.7V.
- Điện áp ra mức thấp: 0.5V.
- Dòng điện ra mức cao: 20µA (Vcc=Max, VIN=2.7V).
- Dòng điện ra mức thấp: -0.4 mA (Vcc=Max, VIN=0.4V).
- Nhiệt độ môi trường làm việc: 00C÷70oC.
1.3.7. Tụ điện
- Số lượng tụ điện được sử dụng như sau:
- Tụ điện 2,2uF: 6 cái

- Tụ điện 33pF: 2 cái
- Tụ điện 10uF: 1 cái
1.3.8. Thạch anh
- Sử dụng thạnh anh 12MHz để tạo dao động
1.3.9. Điện trở
- Số lượng điện trở sử dụng như sau:
- Điện trở 2,2k: 6 cái
- Điện trở 10k: 1 cái
- Điện trở 1k: 1 cái
- Điện trở 330Ω: 12 cái
1.3.10. Biến trở
- Sử dụng 2 biến trở 10k
1.3.11. Nút ấn
- Sử dụng 7 nút ấn thường mở loại DIP, 4 chân và có kích thước 12x12x8mm
1.3.12. Transistor 2N3906 TO92
Thông số kỹ thuật:
- Điện áp VEC: 40V
- Điện áp VBC: 40V
- Điện áp VBE: 5V
- Dòng IC: -200mA
- Dải nhiệt độ: -55oC÷150oC
Chi tiết xem thêm tại:
/>1.3.13. Đèn led
- Sử dụng một led vàng và một led đỏ 5mm để báo động áp suất
1.3.14. Buzzer (Còi chíp)
- Còi Chip 12V có điện áp làm việc 5V.

Lê Bảo Long

14



Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

- Phát tiếng bip liên tục khi được cấp nguồn.
1.4. Khái quát về họ vi điều khiển 8051
1.4.1. Lich sử của 8051
Năm 1980 tập đoàn Intel giới thiệu chip 8051 bộ vi điều khiển đầu tiên của họ vi
điều khiển MSC-51.
Chip 8051 chứa trên 60000 transistor bao gồm 4K byte ROM, 128 byte RAM, 32
đường xuất nhập, 1 port nối tiếp và 2 bộ định thời 16 bit.
8051 là bộ vi điều khiển 8 bit tức là CPU chỉ có thể làm việc với 8 bit dữ liệu. Dữ
liệu lớn hơn 8 bit được chia thành các dữ liệu 8 bit để xử lý.
8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác (Siemens,
Atmel, Philips ...) sản xuất và bán bất kỳ dạng biến thể nào của 8051 mà họ muốn với
điều kiện họ phải để mã chương trình tương thích với 8051. Từ đó dẫn đến sự ra đời
của nhiều phiên bản của 8051 với các tốc độ và dung lượng ROM trên chip khác nhau.
Tuy nhiên, điều quan trọng là mặc dù có nhiều biến thể của 8051, như khác nhau về
tốc độ, dung lượng ROM nhưng tất cả các lệnh đều tương thích với 8051 ban đầu. Điều
này có nghĩa là nếu chương trình được viết cho một phiên bản 8051 nào đó thì cũng sẽ
chạy được với mọi phiên bản khác không phụ thuộc vào hãng sản xuất.
1.4.2. Kiến trúc phần cứng của 8051

ROM: là loại bộ nhớ không mất dữ liệu khi mất nguồn cung cấp, được gọi là bộ
nhớ chương trình bên trong có dung lượng 4 Kb dùng để lưu giữ các mã lệnh của
chương trình.
RAM: bộ nhớ dữ liêu bên trong có dung lượng 128 byte đối với 8051, 256 byte
đối với 8052 dùng để lưu trữ dữ liệu như biến số, hằng số, bộ đệm truyền thông, …

Timer 0, Timer 1: là hai bộ đếm thời gian hoặc là bộ đếm xung, với 8052 có
thêm Timer 2
Serial port: là cổng truyền thông nối tiếp với 2 chân TXD và RXD

Lê Bảo Long

15


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

OSC: bộ phát xung nhịp nhằm tạo sự làm việc một cách đồng bộ cho cả hệ thống
vi điều khiển
BUS: khối điều khiển các bus địa chỉ (Address Bus), bus dữ liệu (Data Bus) và
bus điều khiển (Control Bus)
1.4.3. Ý nghĩa các chân của 8051

- Port 0 (P0.0 ÷ P0.7): bao gồm 8 chân, ngoài chức năng xuất nhập, Port 0 còn
là bus đa hợp dữ liệu và địa chỉ (AD0-AD7), chức năng này sẽ được sử dụng khi
8051 giao tiếp với các thiết bị ngoài có kiến trúc Bus như các vi mạch nhớ, mạch
PIO, …
- Port 1 (P1.0 ÷ P1.7): chức năng duy nhất của Port là nhập xuất
- Port 2 (P2.0 ÷ P2.7): ngoài chức năng là cổng vào ra như Port 0 và Port 1 còn
là byte cao của bus địa chỉ khi sử dụng bộ nhớ ngoài
- Port 3 (P3.0 ÷ P3.7): mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có
một chức năng riêng, cụ thể như sau:
Bit
Tên

Chức năng
P3.0
RXD
Nhận dữ liệu cho Port nối tiếp
P3.1
TXD
Truyền dữ liệu cho Port nối tiêp
P3.2
INT0
Ngắt ngoài 0
P3.3
INT1
Ngắt ngoài 1
P3.4
T0
Ngõ vào của Timer/Couter 0
P3.5
T1
Ngõ vào của Timer/Couter 1
P3.6
/WR
Xung ghi bộ nhớ dữ liệu ngoài
Xung đọc bộ nhớ dữ liệu ngoài
P3.7
/RD
- Chân /PSEN (Program Store Enable): là chân điều khiển đọc chương trình ở

bộ nhớ ngoài, nó được nối với chân /OE để cho phép đọc các byte mã lệnh trên ROM
ngoài. /PSEN sẽ ở mức thấp trong thời gian đọc mã lệnh. Mã lệnh được đọc từ bộ nhớ
ngoài qua bus dữ liệu (port 0) thanh ghi lệnh để được giải mã.


Lê Bảo Long

16


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

Khi thực hiện chương trình trong ROM nội thì PSEN ở mức cao.
- Chân ALE (Address Latch Enable): là tín hiệu điều khiển chốt địa chỉ có tần
số bằng 1/6 tần số dao động của vi điều khiển. Tín hiệu ALE được dùng để cho phép
vi mạch chốt bên ngoài như 74373, 74573 chốt byte địa chỉ thấp ra khỏi bus đa hợp địa
chỉ/dữ liệu (Port 0).
- Chân (EA (External Access): tín hiệu VEA cho phép chọn bộ nhớ chương trình
là bộ nhớ trong hay ngoài vi điều khiển. Nếu EA ở mức cao (nối với V cc), thì vị điều
khiển thi hành chương trình trong ROM nội. Nếu /EA ở mức thấp (nối GND) thì vi
điều khiển thi hành chương trình từ bộ nhớ ngoài.
- Chân RST (Reset): ngõ vào RST trên chân 9 là ngõ reset của 8051. Khi tín hiệu
này được đưa lên mức cao (trong ít nhất 2 chu kỳ máy), các thanh ghi trong bộ vi điều
khiển được tải những giá trị thích hợp để khởi động hệ thống.
- Chân XTAL1, XTAL2: nó được nối với bộ dao động thạch anh có tần số lớn
nhất là 33MHz, thông thường là 12MHz.
- Chân Vcc, GND: là chân cấp nguồn
1.4.4. Các thanh ghi đặc biệt
8051 có 21 thanh ghi chức năng đặc biệt SFR chiếm phần trên của Ram nội từ địa
chỉ 80H đến FFH. Cần lưu ý là không phải tất cả 128 địa chỉ từ 80H đến FFH đều được
định nghĩa mà chỉ có 21 địa chỉ được định nghĩa.
Thanh ghi chính:

Thanh ghi tính toán chính của vi điều khiển 8051 ACC (Accumulator). Là thanh
ghi đặc biệt của 8051 dùng để thực hiện các phép toán của CPU, thường kí hiệu là A.
Thanh ghi phụ:
Thanh ghi tính toán phụ của vi điều khiển 8051 là B. Thanh ghi B ở địa chỉ F0H
được dùng chung với thanh chứa A trong các phép toán nhân, chia. Lệnh MUL AB
nhân 2 số 8 bit không dấu chứa trong A và B và chứa kết quả 16 bit vào cặp thanh ghi
B, A (thanh chứa A cất byte thấp và thanh ghi B cất byte cao).
Lệnh chia DIV AB chia A bởi B, thương số cất trong thanh chứa A và dư số cất
trong thanh ghi B. Thanh ghi B còn được xử lý như một thanh ghi nháp. Các bit được
định địa chỉ của thanh ghi B có địa chỉ từ F0H đến F7H.
Thanh ghi trạng thái chương trình (PSW):
Thanh ghi trạng thái chương trình PSW (địa chỉ: D0H) là thanh ghi mô tả toàn bộ
trạng thái chương trình đang hoạt động của hệ thống.
Thanh ghi ngăn xếp (Stack Pointer):
Con trỏ stack SP (stack pointer) là 1 thanh ghi 8 bit ở địa chỉ 81H. SP chứa địa
chỉ của dữ liệu hiện đang ở đỉnh của stack. Các lệnh liên quan đến satck bao gồm lệnh
cất dữ liệu vào stack và lệnh lấy dữ liệu ra khỏi stack. Việc cất vào stack làm tăng SP
trước khi ghi dữ liệu và việc lấy dữ liệu ra khỏi stack sẽ giảm SP. Vùng stack của 8051
được giữ trong RAM nội và được giới hạn đến các địa chỉ truy xuất được bởi kiểu định
Lê Bảo Long

17


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

địa chỉ gián tiếp. Các lệnh PUSH và POP sẽ cất dữ liệu vào stack và lấy dữ liệu từ
stack, các lệnh gọi chương trình con (ACALL, LCALL) và lệnh trở về (RET, RETI)

cũng cất và phục hồi nội dung của bộ đếm chương trình PC (Program counter)
Con trỏ dữ liệu DPTR:
Con trỏ dữ liệu DPTR (data pointer) được dùng để truy xuất bộ nhớ chương trình ngoài
hoặc bộ nhớ dữ liệu ngoài. DPTR là một thanh ghi 16 bit có địa chỉ là 82H (DPL, byte
thấp) và 83H (DPH, byte cao).
Thanh ghi các cổng P0-P3:
Các port xuất/nhập của 8051 bao gồm Port 0 tại địa chỉ 80H, Port 1 tại địa chỉ
90H, Port 2 tại địa chỉ A0H và Port 3 tại địa chỉ B0H. Tất cả các port đều được định
địa chỉ từng bit nhằm cung cấp các khả năng giao tiếp mạnh.
Thanh ghi bộ đệm truyền thông nối tiếp (Serial Data Buffer):
Bộ đệm truyền thông được chia thành hai bộ đệm, bộ đệm truyền dữ liệu và bộ
đệm nhận dữ liệu. Khi dữ liệu được chuyển vào thanh ghi SBUF, dữ liệu sẽ được
chuyển vào bộ đệm truyền dữ liệu và sẽ được lưu giữ ở đó cho đến khi quá trình truyền
dữ liệu qua truyền thông nối tiếp kết thúc. Khi thực hiện việc chuyển dữ liệu từ SBUF
ra ngoài, dữ liệu sẽ được lấy từ bộ đệm nhận dữ liệu của truyền thông nối tiếp.
Thanh ghi của bộ định thời/bộ đếm:
8051 có 2 bộ đếm/định thời (counter/timer) 16 bit để định các khoảng thời gian
hoặc để đếm các sự kiện. Các cặp thanh ghi (TH0, TL0) và (TH1, TL1) là các thanh
ghi của bộ đếm thời gian. Bộ định thời 0 có địa chỉ 8AH (TL0, byte thấp) và 8CH
(TH0, byte cao). Bộ định thời 1 có địa chỉ 8BH (TL1, byte thấp) và 8DH (TH1, byte
cao).
Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ định thời TMOD
(Timer Mode Register) ở địa chỉ 88H. Chỉ có TCON được định địa chỉ từng bit.
Các thanh ghi điều khiển:
Các thanh ghi điều khiển đặc biệt như IP, IE, TMOD, TCON, SCON và PCON
là các thanh ghi điều khiển và ghi nhận trạng thái của hệ thống ngắt, bộ đếm/định thời,
truyền thông nối tiếp.

Lê Bảo Long


18


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

Chương 2: Thiết kế hệ thống
2.1. Sơ đồ khối và mạch nguyên lý
2.1.1. Sơ đồ khối

- Khối cảm biến: đo áp suất môi trường
- Khối ADC: chuyển tín hiệu tương tự sang tín hiệu số
- 8051: Điều khiển ADC, LCD, Cảnh báo và nhận lệnh điều chỉnh giá trị cảnh
báo từ khối Điều chỉnh giá trị áp suất cảnh báo
- Khối điều chỉnh giá trị áp suất cảnh báo: cấp tín hiệu điều chỉnh cho 8051
- Khối LCD: Hiển thị các giá trị được gửi tới từ 8051

Lê Bảo Long

19


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

2.1.2. Mạch nguyên lý

Lê Bảo Long


20


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

2.2. Xây dựng thuật toán
2.2.1. Khai báo đầu chương trình
#include <REGX51.H>
#include <stdio.h>
/*Khai bao cho LCD*/
#define LCD_RS P2_0
#define LCD_RW P2_1
#define LCD_EN P2_2
#define DataLCD P0
/*Khai báo cho ADC0804*/
#define ADC0804_Input P1
#define ADC0804_RD P2_5
#define ADC0804_WR P2_6
#define ADC0804_INTR P2_7
//Khai bao canh bao
#define DigitalLEDHIGH P2_3 //Chan xuat tin hieu canh bao nguong ap
suat cao
#define DigitalLEDLOW P2_4 //Chan xuat tin hieu canh bao nguong ap
suat thap
//Khai bao bien luu gia tri tuong tu va gia tri chuyen doi
float Vout, Pressure;
char ConvertPressure[4];

//Khai bao gia tri nguong canh bao mac dinh
int ValueHIGH = 90, ValueLOW = 17;
// Gia tri canh bao ap suat cao và thap mac dinh

Lê Bảo Long

21


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

2.2.2. Lưu đồ thuật toán hàm đọc giá trị từ ADC0804

Lê Bảo Long

22


Trường Đại học Công nghiệp Hà Nội
2.2.3. Lưu đồ thuật toán hàm
delay_us
Biến đầu vào t kiểu unsinged int.

Khoa Điện - Ngành: Tự động hóa
2.2.4. Lưu đồ thuật toán hàm
delay_ms
Biến đầu vào t kiểu unsigned int.


2.2.5. Lưu đồ thuật toán hàm bật LCD

Lê Bảo Long

23


Trường Đại học Công nghiệp Hà Nội
2.2.6. Lưu đồ thuật toán hàm gửi
một lệnh cho LCD
Biến dầu vào commend kiểu
unsinged char

Khoa Điện - Ngành: Tự động hóa
2.2.7. Lưu đồ thuật toán hàm xóa
màn hình LCD

2.2.8. Lưu đồ thuật toán hàm khởi tạo chế độ 8 bit LCD

Lê Bảo Long

24


Trường Đại học Công nghiệp Hà Nội

Khoa Điện - Ngành: Tự động hóa

2.2.9. Lưu đồ thuật toán hàm khởi tạo LCD


Lê Bảo Long

25


×