Tải bản đầy đủ (.doc) (41 trang)

Ứng dụng họ vi điều khiển 8051 ghép nối 4 LED 7 thanh để hiển thị số đo nhiệt độ dùng vi mạch LM35, ADC0808, khoảng đo 55 ÷ 125 °C

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 (591.42 KB, 41 trang )

Mục Lục
Mục Lục....................................................................................................................... 1
CHƯƠNG I: PHÂN TÍCH YÊU CẦU CÔNG NGHỆ.............................................2
Tốc độ Baud. 7

CHƯƠNG II: THIẾT KẾ HỆ THỐNG..................................................................13
2.1. Tính toán lựa chọn thiết bị................................................................................13
2.1.1. Vi điều khiển 89C51........................................................................................13
2.1.2. Vi mạnh LM 35................................................................................................14
2.1.3. Led bảy thanh..................................................................................................15
2.1.4. IC Max232.......................................................................................................18
2.2. Giao tiếp giữa VĐK 8051 với LM35 và ADC0808:..........................................19
2.2.1. ADC0808 và LM35..........................................................................................19
2.2.2. VĐK 8051 và ADC0808..................................................................................21
2.3.2.Thuyết minh hoạt động:...................................................................................26
2.4.2. Chương trình con khởi tạo và đọc số liệu......................................................28
2.4.3. Chương trình con tính toán nhiệt độ.............................................................29
2.4.4. Chương trình con hiển thị nhiệt độ dương....................................................30
CHƯƠNG 3: KẾT LUẬN........................................................................................41
Tài liệu tham khảo:...................................................................................................41

Lời Nói Đầu
Với sự tiến bộ của con người, với sự phát triển của khoa học kỹ thuật thì các
nghành công nghiệp phát triển mạnh mẽ, các hệ thống ứng dụng ra đời, điều đó cũng
đặt ra yêu cầu cao về chất lượng, độ chính xác. Một trong những hệ thống được ứng
dụng nhiều nhất là: hệ thống đo điều khiển và hiển thị ra led 7 thanh.Các hệ thống
đang ngày dần được tự động hóa với những kỹ thuật như vi xử lý, vi điều khiển…
đang ngày một làm cho các bộ tự động dần trở nên tốt hơn đảm bảo yêu cầu hơn.
Trong quá trình sản xuất ở các nhà máy,xí nghiệp; quá trình điều khiển nhiệt độ
trong các phòng, hội nghị, các khu chung cư, việc đo và khống chế nhiệt độ tự động là
yêu cầu hết sức cần thiết và quan trọng. Vì nếu nắm bắt được nhiệt độ làm việc của


các hệ thống, dây chuyền sản xuất… thì giúp chúng ta biết được tình trạng làm việc
1|Page


theo yêu cầu và có những xử lý kịp thời để tránh hư hỏng và giải quyết các sự cố sảy
ra.Yêu cầu của các hệ thống là phải đảm bảo chính xác, kịp thời và nhanh, hệ thống
làm việc ổn định ngay cả khi có nhiễu và do tác động khác.

CHƯƠNG I: PHÂN TÍCH YÊU CẦU CÔNG
NGHỆ
1.1.

Phân tích và giới hạn về đặc điểm của các thiết bị.

1.1.1. Tìm hiểu chung về hệ thống.
Nội dung đề tài: “ Ứng dụng họ vi điều khiển 8051 ghép nối 4 LED 7 thanh để hiển
thị số đo nhiệt độ dùng vi mạch LM35, ADC0808, khoảng đo [-55 ÷ 125 ]°C ”.
• Với yêu cầu của đề tài thì hệ thống gồm có.
- Vi điều khiển AT89C51: Thiết bị chính dùng để điều khiển ADC0808
đọc chuyển đổi dữ liệu, sau đó xử lý tính toán và xuất dữ liệu ra LED 7
thanh.
- ADC0808: Dùng để chuyển đổi tín hiệu điện áp thành tín hiệu số đưa
vào vi điều khiển.
- Vi mạch LM35: Đo giá trị nhiệt độ và chuyển thành các mức điện áp
khác nhau tương ứng với sự tăng của nhiệt độ.
2|Page


-


Mạch truyền thông chuẩn RS_232: Dùng IC Max232 để chuyển đổi
mức logic giữa vi điều khiển và máy tính.
- 4 LED bảy thanh: Hiển thị giá trị nhiệt độ đo được từ cảm biến LM35
- 2 loa cảnh báo: Cảnh báo khi có sự thay đổi của nhiệt độ khác với giá trị
đặt.
- 2 nút ấn START, STOP: Bắt đầu và dừng quá trình đo nhiệt độ.
• Phân tích giới hạn của đề tài.
- Với nội dung chính của đề tài là để đo nhiệt độ nằm trong khoảng từ
[-55°C ÷ 125 °C], không phải là ứng dụng lớn nên ta dùng vi điều khiển
AT89C51 không cần ghép nối thêm bộ nhớ ngoài
- Cảm biến nhiệt độ LM35 với dải nhiệt độ đo được từ -55 ÷ 150 °C, độ
chính xác cao, sai số chỉ nằm trong khoảng 0.5°C
- ADC0808 với độ phân giải 8bit cho độ chính xác cao khi thực hiện quá
trình chuyển đổi dữ liệu.
1.1.2. Các đặc điểm chính của các thiết bị.
a.Đặc điểm chính của vi điều khiển AT89C51.
- Sơ đồ khối:

Hình1.1: Sơ đồ khối của AT89C51
PDIP

P1.0 1
P1.1 2
P1.2 3

40 VCC
39 P0.0(AD0)
38 P0.1(AD1)
3|Page



P1.3
P1.4
P1.5
P1.6
P1.7
RST
(RXD) P3.0
(TXD) P3.1
(INT0) P3.2
(INT1) P3.3
(T0) P3.4
(T1) P3.5
(WR)P3.6
(RD) P3.7
XTAL2
XTAL1
GND

4
5
6
7
8
9
10
11
12
13
14

15
16
17
18
19
20

37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21

P0.2(AD2)
P0.3(AD3)
P0.4(AD4)
P0.5(AD5)
P0.6(AD6)

P0.7(AD7)
EA/VPP
ALE/PROG
PSEN
P2.7 (A15)
P2.6 (A14)
P2.5 (A13)
P2.4 (A12)
P2.3 (A11)
P2.2 (A10)
P2.1 (A9)
P2.0 (A8)

Hình 1.2: Sơ đồ chân của AT89C51
Chức năng các chân của AT89C51.
- AT89C51 có tất cả 40 chân có chức năng như các đường xuất nhập. Trong đó
có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có
thể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thành
phần của các bus dữ liệu và bus địa chỉ. a.Các Port: Port 0 :
- Port 0 là port có 2 chức năng ở các chân 32 – 39 của 8951. Trong các thiết kế
cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO. Đối
với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa bus địa chỉ và
bus dữ liệu. ˆ
- Port 1: là port IO trên các chân 1-8. Các chân được ký hiệu P1.0, P1.1, P1.2,
… có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần. Port 1 không có
chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các thiết bị bên
ngoài. ˆ
- Port 2 : - Port 2 là 1 port có tác dụng kép trên các chân 21 - 28 được dùng
như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị
dùng bộ nhớ mở rộng. ˆ


4|Page


-Port 3: - Port 3 là port có tác dụng kép trên các chân 10 - 17. Các chân của
port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc
tính đặc biệt của 8951 như ở bảng sau:
Bit
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7

Tên
RXT
TXD
INT0\
INT1\
T0
T1
WR\
RD\

Chức năng chuyển đổi
Ngõ vào dữ liệu nối tiếp
Ngõ vào dữ liệu nối tiếp

Ngõ vào ngắt cứng thứ 0
Ngõ vào ngắt cứng thứ 1
Ngõ vào của Timer/Counter thứ 0
Ngõ vào của Timer/Counter thứ 1
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
Tín hiệu đọc bộ nhớ dữ liệu ngoài

Bảng 1.1: Chức năng của Port3

• Các ngõ tín hiệu điều khiển : ˆ
Ngõ tín hiệu PSEN (Program store enable):
- PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương
trình mở rộng thường được nói đến chân 0E\ (output enable) của Eprom cho
phép đọc các byte mã lệnh.
- PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy lệnh. Các mã lệnh
của chương trình được đọc từ Eprom qua bus dữ liệu và được chốt vào thanh
ghi lệnh bên trong 8951 để giải mã lệnh. Khi 8951 thi hành chương trình trong
ROM nội PSEN sẽ ở mức logic 1.
Ngõ tín hiệu điều khiển ALE (Address Latch Enable ) :
- Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và
bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở
chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và
dữ liệu khi kết nối chúng với IC chốt.
- Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai
trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động. Các xung tín hiệu ALE
5|Page


có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng làm tín
hiệu clock cho các phần khác của hệ thống. Chân ALE được dùng làm ngõ vào

xung lập trình cho Eprom trong 8951. ˆ
Ngõ tín hiệu EA\(External Access):
- Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0. Nếu ở
mức 1, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 8
Kbyte. Nếu ở mức 0, 8951 sẽ thi hành chương trình từ bộ nhớ mở rộng. Chân
EA\ được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 8951. ˆ
Ngõ tín hiệu RST (Reset) :
Ngõ vào RST ở chân 9 là ngõ vào Reset của 8951. Khi ngõ vào tín hiệu này
đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp những
giá trị thích hợp để khởi động hệ thống. Khi cấp điện mạch tự động Reset. ˆ
Các ngõ vào bộ dao động X1, X2:
- Bộ dao động được tích hợp bên trong 8951, khi sử dụng 8951 người thiết kế
chỉ cần kết nối thêm thạch anh và các tụ như hình vẽ trong sơ đồ. Tần số thạch
anh thường sử dụng cho 8951 là 12Mhz.
-ˆ Chân 40 (Vcc) được nối lên nguồn 5V
b.Led 7 thanh.
LED 7 đượ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ố hoặc các kí tự đơn giản như từ số 0 đến 9 và A đến F.
LED 7 thanh dùng để hiện số thì rất đẹp và dễ nhìn. 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 một 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...g và có một dấu chấm dot
( dấu chấm này có thể sáng và tắt tùy theo yêu cầu) được cấu 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 và hiện thị số từ 0 đến 9 và các kí tự từ A đến F

Hình 1.3: Led 7 thanh
6|Page


c. Mạch truyền thông chuẩn R_232.

• Giới thiệu
Được xây dựng phục vụ chủ yếu trong việc ghép nối điểm – điểm giữa hai thiết bị
đầu cuối (DTE, Data Terminal Equipment).mặc dù tính năng hạn chế nhưng chuẩn
RS232 có từ lâu đời nhất vì thế nên nó được sử dụng rộng rãi. Ngày nay mỗi máy tính
cá nhân có vài cổng RS232( cổng com) có thể sử dụng nối các thiết bị ngoại vi hoặc
với các máy tính khác.

• Ưu điểm của giao diện nối tiếp RS232
+ Khả năng chống nhiễu của các cổng nối tiếp cao
+ Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện
+ Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp

• Những đặc điểm cần lưu ý trong chuẩn RS232
+ Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là +-15V. Hiện
nay đang được cố định trở kháng tải trong phạm vi từ-7000Ω- 3000Ω
+ Mức logic 1 có điện áp nằm trong khoảng -3V đến -15V, mức logic 0
từ -3V đến 15V
+ Tốc độ truyền nhận dữ liệu cực đại là 100kbps ( ngày nay có thể lớn hơn)
+ Các lối vào phải có điện dung nhỏ hơn 2500pF
+ Trở kháng tải phải lớn hơn 3000 ôm nhưng phải nhỏ hơn 7000 ôm
+ Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp
RS232 không vượt qua 15m nếu chúng ta không sử model
+ Các giá trị tốc độ truyền dữ liệu chuẩn :

50,75,110,750,300,600,1200,2400,4800,9600,19200,28800,38400....56600,1
15200 bps
• Quá trình dữ liệu

- Quátrình truyền dữ liệu.
Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ. Do vậy

nên tại một thời điểm chỉ có một bit được truyền (1 kí tự). Bộ truyền gửi một bit bắt
đầu (bit start) để thông báo cho bộ nhận biết một kí tự sẽ được gửi đến trong lần
truyền bit tiếp the . Bit này luôn bắt đầu bằng mức 0.. Tiếp theo đó là các bit dữ liệu
(bits data) được gửi dưới dạng mã ASCII( có thể là 5,6,7 hay 8 bit dữ liệu) Sau đó là
một Parity bit ( Kiểm tra bit chẵn, lẻ hay không) và cuối cùng là bit dừng - bit stop có
thể là 1, 1,5 hay 2 bit dừng.
- Tốc độ Baud.
Đây là một tham số đặc trưng của RS232. Tham số này chính là đặc trưng cho
quá trình truyền dữ liệu qua cổng nối tiếp RS232 là tốc độ truyền nhận dữ liệu hay
còn gọi là tốc độ bit. Tốc độ bit được định nghĩa là số bit truyền được trong thời gian
7|Page


1 giây hay số bit truyền được trong thời gian 1 giây. Tốc độ bit này phải được thiết
lập ở bên phát và bên nhận đều phải có tốc độ như nhau
( Tốc độ giữa vi điều khiển và máy tính phải chung nhau 1 tốc độ truyền bit)
Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ Baud. Tốc độ
Baud liên quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn tả bit
được truyền còn tôc độ bit thì phản ánh tốc độ thực tế mà các bit được truyền.Vì một
phần tử báo hiệu sự mã hóa một bit nên khi đó hai tốc độ bit và tốc độ baud là phải
đồng nhất
Một số tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400,
4800, 9600, 19200, 28800, 38400, 56000, 115200 … Trong thiết bị họ thường dùng
tốc độ là 19200, Khi sử dụng chuẩn nối tiếp RS232 thì yêu cầu khi sử dụng chuẩn là
thời gian chuyển mức logic không vượt quá 4% thời gian truyền 1 bit. Do vậy, nếu
tốc độ bit càng cao thì thời gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic
càng phải nhỏ. Điều này làm giới hạn tốc Baud và khoảng cách truyền.
- Bit chẵn lẻ hay Parity bit.
Đây là bit kiểm tra lỗi trên đường truyền. Thực chất của quá trình kiểm tra lỗi
khi truyền dữ liệu là bổ xungthêm dữ liệu được truyền để tìm ra hoặc sửa một số lỗi

trong quá trình truyền . Do đó trong chuẩn RS232 sử dụng một kỹ thuật kiểm tra
chẵn lẻ.
Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để ch thấy số lượng các bit
"1" được gửi trongmột khung truyền là chẵn hay lẻ.
Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi chả hạn như 1,3,,5,7,9... Nếu
như một bit chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường hợp không
mắc lỗi vì thế không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi này không
được sử dụng trong trường hợp có khả năng một vài bit bị mắc lỗi.

1.2.Vi mạch LM35 và ADC0808
1.2.1.Vi mạch LM35
Cảm biến LM35 là bộ cảm biến nhiệt mạch tích hợp chính xác cao, mà điện áp
đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius.
• Đặc điểm chính của LM35.
- Điện áp đầu vào từ 4-30V
- Độ phân giải điện áp đầu ra là 10mV/1°C
- Độ chính xác cao ở 25°C là 0.5°C
- Trở kháng đầu ra thấp 0.1 cho 1mA tải
Dải nhiệt độ đo được của LM35 là từ -55°C
150°C với các mức điện áp ra
khác nhau. Xét một số mức điện áp sau:
- Nhiệt độ -55°C => -550mV
- Nhiệt độ 25 °C => 250mV
- Nhiệt độ 150°C => 1500mV
Tùy theo cách mắc của LM35 để ta đo được các giải nhiệt độ phù hợp.
8|Page


1.2.2. Giới thiệu về ADC0808.
Bộ ADC0808 là IC tích hợp 8 bộ chuyển đổi tương tự số 8 bit. Bộ chọn kênh

được giải mã qua 3 chân điều khiển tương tích.
CLOCK
START
EOC
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8

IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
ADDA
ADDB
ADDC

OE
Hình 1.5: Các chân của ADC0808
• Chức năng các chân.
- IN0 tới IN7 : 8 ngõ đầu vào tương tự
- ADDA,ADDB,ADDC : là 3 chân giải mã chọn 1 trong 8 ngõ vào

9|Page


-

OUT1 OUT8 là gõ ra song song 8 bit, nhưng thứ tự các chân bị
ngược, OUT8 là bit có trọng số thấp nhất,và OUT1 là bit có trọng số
cao nhất.
- ALE : Cho phép chốt địa chỉ
- START : Tạo xung bắt đầu chuyển đổi
- CLOCK : Chân tạo xung dao dộng cho quá trình biến đổi A-D
- EOC : Báo quá trình cuyển đổi kết thúc.
- OE : Cho phép dữ liệu đầu ra
- VREP+/- : Chân tham chiếu điện áp
• Các đặc tính của ADC0808.
- Độ phân giải 8 bít
- Thời gian chuyển đổi nhanh : 100us
- Nguồn nuôi 5V
- Ngõ vào điện áp 0-5V
- Nhiệt độ hoạt động -10 tới 85 độ C
• Cấu trúc bên trong ADC0808.

Hình 1.6: cấu trúc bên trong của ADC 0808
SELECTED
ANALOG
CHANNEL
IN0

ADDRESS LINE
C

B
A
0

0

0
10 | P a g e


IN1
IN2
IN3
IN4
IN5
IN6
IN7

0
0
0
1
1
1
1

0
1
1
0

0
1
1

1
0
1
0
1
0
1

Bảng 1.2: Bảng chọn kênh.

• Giản đồ xung hoạt động của ADC0808

Trong ứng dụng ta có thể dùng 1 đường điều khiển cả 2 tín hiệu ALE và START.
Sau khi ra lệnh ADC thực hiện quá trình chuyển đổi thì vi điều khiển sẽ kiểm tra tín
11 | P a g e


hiệu EOC, nếu chúng xuống mức thấp là báo hiệu quá trình chuyển đổi đang xảy ra,
và chờ cho đến khi tín hiệu này lên mức cao trở lại thì quá trình chuyển đổi kết thúc
mới tiến hành nhận dữ liệu.
Ta có thể không thực hiện theo cách kiểm tra vừa trình bày bằng cách chờ ADC
chuyển đổi xong sau 1 khoảng thời gian Tconv ít nhất là 116us theo sổ tay tra cứu
(datasheet) thì bắt đầu nhận dữ liệu. Khi đó ta không cần phải dùng 1 đường tín hiệu
kiểm tra chân EOC và chân này bỏ trống.

• Lưu đồ điều khiển ADC0808 chuyển đổi 1 kênh theo 2 cách.

Begin

Begin

START = 0
ALE = 0
OE = 0

START = 0
ALE = 0
OE = 0

Xuất addr kênh ra [A2:A0]
Tạo xung cho ALE và START

EOC =
0
Đ

Xuất addr kênh ra [A2:A0]
Tạo xung cho ALE và START

S

S
EOC =
1

Delay chờ chuyển đổi xong


Cho OE = 1
Nhận dữ liệu
Cho OE = 0 12 | P a g e


Đ
Cho OE = 1
Nhận dữ liệu
Cho OE = 0

Ret

Ret
a)

b)

Lưu đồ (a) điều khiển chuyển đổi bằng cách chờ tín hiệu trả lời EOC, lưu đồ (b) thì
dùng delay. Thời gian chờ phải lớn hơn thời gian chuyển đổi cho trong datasheet.

CHƯƠNG II: THIẾT KẾ HỆ THỐNG
2.1. Tính toán lựa chọn thiết bị
2.1.1. Vi điều khiển 89C51
Chọn vi điều khiển AT 89C51 do hãng Intel sản xuất. Các sản phẩm AT89C51
thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các toán số học ở
cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên
RAM nội. Tập lệnh cung cấp một bảng tiện dụng của những tập lệnh số học 8 bit gồm
cả lệnh nhân và chia. Nó cung cấp những hỗ trợ mở rộng trên chip dùng cho những
biến 1 bit như là kiểu dữ liệu riêng biệt cho phép quản lý và kiểm tra từng bit trực tiếp
trong hệ thống điều khiển.

AT89C51 cung cấp những đặc tính chuẩn như : 4 Kbyte bộ nhớ chỉ đọc có thế xóa và
lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 2 TIME/COUNTER 16 Bit,
5 vecto ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bán song công, 1 mạch dao
động tạo xung Clock và bộ dao động ON-CHIP.






Các đặc điểm của chip AT89C51 được tóm tắt như sau :
4Kbyte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xóa
Tần số hoạt động từ: 0Hz đến 24MHz
3 mức khóa bộ nhớ lập trình
2 bộ Timer/counter 16 bit
128 Byte RAM nội
13 | P a g e








4 Port xuất /nhập I/O 8 bit.
Giao tiếp nối tiếp
64KB vùng nhớ mã ngoài
64KB vùng nhớ dữ liệu ngoại
4µs cho hoạt động nhân hoặc chia


Hình 2.1: IC 89C51

2.1.2. Vi mạnh LM 35
Chọn vi mạch LM35 của hãng National Semiconductor .
Đặc tính của LM35 :
• Chuẩn hóa theo thang đo nhiệt đọ Cesius
• Đầu ra tuyến tính 10mV/1độC
• Dải nhiệt độ đo được từ -55 tới 150 độ tùy theo kiểu đóng vỏ
• Dòng tiêu thụ rất nhỏ cỡ 60uA, nên nhiệt tự tỏa rất nhỏ hầu như không ảnh
hưởng đến kết quả đo.
• Sai số nhỏ , chỉ khoảng 0.5độ C

Hình 2.2: cảm biến LM35

14 | P a g e


2.1.3. Led bảy thanh.

Hình 2.3: LED 7 thanh
Ở trên là hình dạng LED7 ngoài thực tế và trong mạch nguyên lý và cấu tạo.
Cấu tạo của LED chúng ta nhìn trên rất đơn giản chúng chỉ gồm các LED đơn
được xếp lại với nhau thành hình như trên hình vẽ. Các LED đơn này chỉ chung
nhau Anot hoặc Katot và riêng nhau các chân con lại Anot hặc Katot. Nhiệm vụ của
chúng ta là cho sáng các LED đơn đó để cho nó thành số hay kí tự đơn giản.
Hiện nay LED 7 được sản xuất theo 2 kiểu là Anot chung và Katot chung và
được điều khiển làm việc tương tự như bơm dòng hay tiêu thụ dòng của các LED
đơn có trong LED7 (Thường hay thiết kế theo kiểu bơm dòng cho LED). Thông
thường trong các mạch thiết kế thực tế người thiết kế thường hay sử dụng loại Anot

chung. Phương pháp ghép nối là cấp dòng, đảo trạng thái thông qua đệm và quét
LED
 Ghép nối led 7 thanh
Để ghép nối với LED7 có thể có nhiều cách, nhưng phải đảm bảo sao có thể
điều khiển tắt mở riêng từng LED đơn trong đó để tạo ra các số và các ký tự mong
muốn.Các IC điều khiển đều khó khả năng sinh dòng kém tức là dòng đầu ra của các
chân ICs nhỏ hơn khả năng nuôi dòng. Do vậy, nếu ghép nối trực tiếp các net với
các chân cổng IC thì loại Anode chung là thích hợp hơn cả. Cần phải chú ý dòng
dồn về ICs quá mức chịu được thì cũng không được vì làm nóng và dei ICs điều
khiển

15 | P a g e


• 2 cách ghép nối thường dùng:
- Cách 1: Dùng trực tiếp các chân điều khiển (vi xử lý)
Đối với cách này thì nhìn thì rất tốn chân của vi xử lý. Và dòng của LED sẽ dồn
tất cả về vi xử lý. Nếu một hệ thống lớn thì cách này không ổn vì ảnh hưởng đến vi
xử lý và nhiều dòng dồn về vi xử lý sẽ làm vi xử lý nóng và dẫn tới chết ( chúng ta
tưởng tượng xem nếu mà hệ thống nhiều phần điều khiển từ các chân vi xử lý mà tất
cả các tải điều khiển dồn trực tiếp dòng về vi xử lý thì lúc đó dòng trong 1 thời điểm
khá lớn vượt quá ngưỡng cho phép của vi xử lý.
Dòng mà vi xử lý chịu đựng được cũng khá nhỏ đâu dưới 100mA ). Các này
chỉ dùng được hệ thống điều khiển ít, mạch dùng vi xử lý khá đơn giản như hiện thị
LED, đếm số từ 0 đến 9 ...

Hinh 2.4: Ghép nối AT 89C51 với led 7 thanh

- Cách 2 : Dùng IC giải mã BCD sang LED 7 thanh


16 | P a g e


Hình 2.5: Dùng IC giải mã BCD sang LED 7 thanh
Sử dụng IC giải mã 7447 để giả mã từ mã BCD sang mã LED7. Đối với cách
này thì trông rất ổn. Vừa tiếp kiệm được chân vi xử lý và tránh được dòng dồn về vi
xử lý (dòng ở đây được dồn về 7447). Đây là cách mà người thiết kế thường dùng
trong các hệ thống cần đến hiện thị.
Thông thường các thiết kế, LED 7 thanh được dùng để hiện thị các giá trị các
giá trị số từ 0 đến 9 và đôi khi cần phải hiện thị các kí tự đơn giản như A đến F trong
hệ thống để báo trạng thái của hệ thống. Các giá trị hiện thị bao gồm nhiều chữ số tức
là chúng ta phải dùng đến nhiều LED7 ghép lại thì mới hiện thị được nhiều số. Ví dụ
như muốn hiện thị số 123 chả hạn thì chúng ta phải dùng đến 3 LED 7 thanh ghép lại.
Như vậy để ghép nhiều LED 7 thanh thay vì chúng ta phải dùng 8 chân riêng rẽ
cho mỗi LED. Ví dụ để hiện thị được 3 chữ số lên LED 7 (123 chẳng hạn) khi đó ta sẽ
mất 3x8 = 24 chân dữ liệu điều khiển để hiện thị được 3 chữ số. Như vậy sẽ rất tốn
chân vi xử lý, do vậy người ta dùng chung các đường dữ liệu cho các LED 7 thanh và
thiết kế thêm các tín hiệu điều khiển cấp nguồn riêng rẽ cho từng LED 7 một hay là
cấp nguồn cho các chân Anot chung hay Katot chung. Nhìn trên sơ đồ trên ta thấy
được kiểu ghép nối giữa các LED. Các đường dữ liệu vào của 3 LED được chung với
nhau và các chân điều khiển nguồn cho các LED được riêng rẽ và được điều khiển
bằng transitor ( khuếch đại dòng). Như vậy đối với mạch trên chúng ta tiếp kiệm được
nhiều chân vi xử lý. Đối với mạch trên và cách ghép nối như trên thì mất tối đa chỉ có
11 chân vi xử lý.

17 | P a g e


Hinh 2.6: Ghép nối với nhiều led 7 thanh
8 chân dữ liệu của LED 7 được chung nhau và chung được ghép nối qua 2 cách

: Thứ nhất dùng vào trực tiếp các chân vi xử lý và thứ 2 là qua các IC đệm hay IC giải
mã...Nhưng trong thiết kế không mấy khi người ta cho trực tiếp các chân dữ liệu đó
vào trực tiếp vi xử lý mà người ta phải cho qua các IC đệm hay giải mã đối với hệ
thống lớn. Chỉ những mạch đơn giản người ta mới cho vào trực tiếp vi xử lý.Thông
thường người ta dùng thêm các IC đệm hay giải mã như ULN2803, 74LS47
Đối với phương pháp ghép LED như thế này thì làm sao điều khiển được hiện
thị số 123. Nếu chúng ta mới nhìn thì sẽ thấy các LED 7 sẽ hiện thị giống nhau vì
chúng chung nhau đường dữ liệu. Nhưng không phải là vậy. Nếu chung ta cho từng
thời điểm từng LED sáng 1 thì chúng ta sẽ thấy khác đó. Số 123 sẽ được hiện thị lên 3
LED đó. Đó là thuật toán quét LED dựa vào hiện tượng lưu ảnh trong mắt khi chúng
ta quét với tần số lớn.
Như vậy đối với phương pháp này chúng ta tiếp kiệm được một số lượng lớn
chân vi xử lý và đồng thời tiếp kiệm được năng lượng tiêu thụ do phương pháp quét
LED trong thời gian ngắn. Khi đó tối đa trong 1 thời điểm có 1 LED sáng toàn bộ
thôi. Cần phải tính toán giá trị dòng vào cho LED sao cho LED sáng đẹp bằng cách
thêm bớt điện trở.
2.1.4. IC Max232.
Max232 là IC chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi. Max232
là IC của hãng Maxim. Đây là IC chay ổn định và được sử dụng phổ biến trong các
mạch giao tiếp chuẩn RS232. Giá thành của Max232 phù hợp (12K hay 10K) và tích
hợp trong đó hai kênh truyền cho chuẩn RS232. Dòng tín hiệu được thiết kế cho
18 | P a g e


chuẩn RS232 . Mỗi đầu truyền ra và cổng nhận tín hiệu đều được bảo vệ chống lại sự
phóng tĩnh điện ( hình như là 15KV). Ngoài ra Max232 còn được thiết kế với nguồn
+5V cung cấp nguồn công suất nhỏ.
2.2. Giao tiếp giữa VĐK 8051 với LM35 và ADC0808:
2.2.1. ADC0808 và LM35.
- Như đã biết ADC0808 là IC chuyên dụng dùng để chuyển đổi tín hiệu

dạng điện áp hoặc dòng điện(còn gọi là tín hiệu analog) thành tín hiệu
dạng số, có giá trị tùy thuộc vào độ phân giải của ADC và điện áp tham
chiếu cấp vào 2 chân VREP(+) và VREP(-). Ở trong bài chúng em dùng
ADC0808 có độ phân giải 8 bit, giá trị số tương ứng là 255. Giá trị nhiệt
độ sau khi đo được từ cảm biến LM35 sẽ được chuyển đổi thành giá trị
điện áp, sau đó được đưa vào đầu vào của ADC. Lúc này giá trị điện áp
ở đầu vào sẽ tương ứng với một giá trị số ở đầu ra.
-

Có nhiều cách mắc vi mạch LM35 để đo được các dải nhiệt độ khác
nhau, do đề bài yêu cầu đo dải nhiệt độ (-55°C ÷ 125°C) nên chúng em
dùng cách mắc như sau: chân số 1 nối lên nguồn 5V, chân số 3 được
mắc xuống mass, và chân số 2 đầu ra điện áp sẽ được mắc thêm vào
nguồn điện áp âm là -5V qua 1 điện trở hạn dòng có giá trị là 50k.
+ Chọn R = -Vs/100µA.
+ Vout = 1250mV at 125°C.
+ Vout = -550mV at -55°C.
+Vs

Vout
LM35

R=50k

-Vs
Sơ đồ cách mắc của LM35
-

Sau đó điện áp đầu ra của LM35 sẽ được đưa vào bộ cộng không đảo để
khuếch đại lên 0.55V như vậy:


19 | P a g e


-55 °C ÷ 0mV
0°C ÷ 550mV
125°C ÷ 1800mV

• Sơ đồ kết nối giữa ADC0808 và LM35.
CLOCK
START
EOC

IN0
IN1
IN2

10k

+5V

10k
10k
10k
0.55V

+5V
50k
-5VLM35


OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
OE

20 | P a g e


2.2.2. VĐK 8051 và ADC0808.
• Cụ thể là AT89C51 và ADC0808.
- Giá trị điện áp sau khi đã được ADC0808 chuyển đổi sang giá trị số và
được đưa vào Port3 của VĐK để xử lý tính toán và xuất dữ liệu ra LED
7 thanh.
• Sơ đồ kết nối giữa AT89C51 và ADC0808.

21 | P a g e


P0.0(AD0)
P0.1(AD1)
P0.2(AD2)
P0.3(AD3)
P0.4(AD4)
P0.5(AD5)
P0.6(AD6)

P0.7(AD7)
RST

P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
XTAL2
XTAL1
GND

VCC
(A8)P2.0
(A9)P2.1
(A10)P2.2
(A11)P2.3
(A12)P2.4
(A13)P2.5
(A14)P2.6
(A15)P2.7
EA/VPP
ALE/PROG
PSEN
(RXD) P3.0
(TXD) P3.1
(INT0) P3.2

(INT1) P3.3
(T0) P3.4
(T1) P3.5
(WR)P3.6
(RD) P3.7
XTAL2
XTAL1
GND

ADDBA

ADDAA

CLOCK
START
EOC
OUT8
OUT7
OUT6
OUT5
OUT4
OUT3
OUT2
OUT1
OE

IN0
IN1
IN2
IN3

IN4
IN5
IN6
IN7
ADDA
ADDB
ADDC
ALE
VREP(+)
VREP(-)

ADDCA

START

A
EOC
OE
START
EOC

22 | P a g e


ADDAA
ADDBA
ADDCA
ALE

OE


-

Trong hệ thống, vi điều khiển sử dụng 14 đường điều khiển để giao tiếp với
ADC0808, trong đó có 8 đường dùng để nhận dữ liệu số sau khi chuyển đổi
(P3.0÷P3.7), 3 đường dùng để xuất địa chỉ chọn 1 trong 8 kênh
(P2.0,P2.1,P2.2), 1 đường dùng để chốt địa chỉ và cũng dùng để xuất tín hiệu
điều khiển ADC0808 bắt đầu chuyển đổi(P2.4),1 đường dùng để xuất tín hiệu
điều khiển cho phép xuất dữ liệu(P2.6), 1 đường dùng để nhận tín hiệu báo
quá trình chuyển đổi kết thúc để tiến hành nhận dữ liệu.
- Có 2 cách để điều khiển ADC0808 bắt đầu quá trình chuyển đổi và nhận dữ
liệu, tiêu biểu ở đây chúng em dùng cách thứ nhất, đó là sau khi ra lệnh ADC
thực hiện quá trình chuyển đổi thì vi điều khiển sẽ kiểm tra tín hiệu EOC xem
chúng xuống mức thấp là báo hiệu quá trình chuyển đổi đang xảy ra, và chờ
cho đến khi tín hiệu này lên mức cao trở lại thì quá trình chuyển đổi kết thúc
mới tiến hành nhận dữ liệu. Và chân ALE và chân START được nối chung vào
1 đường điều khiển.
• Lưu đồ điều khiển ADC0808 chuyển đổi 1 kênh theo cách 1.
Begin

START = 0
ALE = 0
OE = 0
Xuất ADDX kênh ra[A2:A0]
Tạo xung cho ALE và START
S
EOC =
0

23 | P a g e



Đ
EOC =
1
Đ

S

OE = 1
Nhận dữ liệu
OE = 0
Ret
2.3 Xây mạch nguyên lý và thuyết minh.
2.3.1.Mạch nguyên lý.

Hình 2.7. Sơ đồ mạch nguyên lý
24 | P a g e


 Phân tích mạch nguyên lý.
-

Port0 của vi điều khiển dùng để xuất DATA ra LED 7 thanh để hiển thị.

-

Port2 được kết nối tới các chân điều khiển của ADC0808 và kết nối với 2 loa
cảnh báo ngưỡng thấp và ngưỡng cao.


-

Port3 dùng để nhận dữ liệu từ ADC0808, do thứ tự các chân của ADC0808 bị
ngược, nghĩa là OUT8 là bit có trọng số thấp nhất, ngược lại OUT1 lại là bit có
trọng số cao nhất, sẽ được mắc tương ứng vào các chân P3.0
P3.7.

-

Port1 được kết nối với nút nhấn Start, Stop và các chận điều khiển quét LED.

• Phương pháp thực hiện đo nhiệt độ:
-

Cảm biến LM35 sau khi đo được nhiệt độ bất kì, nó sẽ trả ra giá tri điện áp
ở đầu ra tỉ lệ với sự tăng của nhiệt độ, 1°C/10mV: -55°C ÷ -0.55mV,
125°C ÷1.25mV

- Tín hiệu điện áp ở đầu ra của cảm biến LM35 sẽ được khuếch đại lên
0.55V, như vậy :
-55°C
0 °C
125 °

-

0mV
550mV
1800mV


Ta dùng IC ADC0808 để chuyên đổi tín hiệu tương tự thành tín hiệu số đưa
vào VDK AT89C51 xử lí tính toán ngược trở lại nhiệt độ và hiển thị ra
LED 7 đoạn. Cụ thể điện áp Vout của LM35 sau khi được khuếch đại sẽ
được mắc vào chân IN0 của ADC0808.

• Công thức tính toán nhiệt độ:
-

Ta cấp điện áp tham chiếu 5V vào chân VREP(+),VREP(-) nối xuống mass.

-

ADC0808 có độ phân giải 8 bit tương ứng với giá trị số là 255

-

Gọi giá tri số trả ra từ ADC0808 là D

-

Giá tri điện áp trả ra từ cảm biến LM35 là Vout

-

Giá trị nhiệt độ là T.

25 | P a g e



×