Nhóm 3 1 Nhóm 3 2
LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn chân thành đến quý thầy cô của trường đại
học công nghiệp thưc phẩm TP. Hồ Chí Minh nói chung cũng như thầy cô ở
khoa công nghệ điện - điện tử nói riêng, đã tận tình giảng dạy và giúp đỡ để
chúng em có thể hoàn thành được bài báo này. Sau thời gian học tập tại trường,
chúng em đã tiếp nhận được nhiều kiến thức bổ ích từ quý thầy cô, nó sẽ là
hành trang quý báu để ứng dụng vào cuộc sống và công việc sau này.
2.1 Giới thiệu tổng quan về họ vi điều khiển 8051 7
2.1.1 Sơ đồ khối và sơ đồ chân của AT89C51 8
2.1.2 Chức năng các chân của AT89C51 9
2.2 Giới thiệu ADC 0809 12
2.2.1 Sơ đồ chân ADC 0809 12
2.2.2 Ý nghĩa các chân 13
2.2.3 Thông số kỹ thuật của ADC 0809 13
2.2.4 Nguyên lý hoạt động 13
2.2.5 Biều đồ thời gian của ADC 15
2.2.6 Mạch tạo xung clock cho ADC 15
2.2.7 Sơ đồ kết nối mạch 16
2.3 Giới thiệu về cảm biến LM35 17
2.4 Led 7 đoạn 18
2.4.1 Giới thiệu 18
2.4.2 Thông số kỹ thuật 19
Nhóm 3 4
2.4.3 Tính trở hạn dòng 20
CHƯƠNG III: THI CÔNG VÀ THIẾT KẾ MẠCH 21
3.1 Lưu đồ thuật toán 21
3.2 Lập trình và thiết kế mạch 21
3.2.1 Mã chương trình 21
3.2.2 Sơ đồ nguyên lí 25
3.2.3 Mô phỏng 26
3.2.4 Mạch in 26
3.2.5 Sản phẩm thực tế 27
CHƯƠNG IV: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 28
4.1 Kết luận 28
4.2 Tính thực tế của sản phẩm đã thiết kế 28
quyết định làm đề tài: thiết kế bộ đo nhiệt độ hiển thị trên led 7 đoạn.
Dưới sự hướng dẫn, chỉ bảo nhiệt tình của thầy Trần Trọng Hiếu cùng
với sự cố gắng nỗ lực của các thành viên trong nhóm, chúng em đã hoàn thành
đề tài đúng thời hạn cho phép. Tuy nhiên do thời gian hạn chế, cũng như lượng
kiến thức rất lớn nên nhóm chúng em không thể tránh khỏi nhiều thiếu xót. Vì
vậy chúng em rất mong sẽ nhận được nhiều ý kiến đánh giá, góp ý của thầy cô
giáo và các bạn sinh viên để có thể phát triển và hoàn thiện thêm đề tài này.
Xin chân thành cảm ơn!
Sinh viên thực hiện
Trần Bình Khiêm
Nguyễn Khắc Chung
Võ Khoa Nguyên Nhóm 3 6
CHƯƠNG I: MỞ ĐẦU
1.1 Đặt vấn đề
Ngày nay với sự phát triển của công nghiệp vi điện tử, kỹ thuật số các hệ
thống điều khiển dần được tự động hóa. Với những kỹ thuật tiên tiến như vi xử
lý, vi mạch số được ứng dụng vào lĩnh vực điều khiển. Các sản phẩm này ngày
càng hoàn thiện và càng được sử dụng rộng rãi trong đời sống. Kể từ đây thời
đại của tự động hóa, các thiết bị số đang dần thống trị trong cuộc cách mạng
khoa học kỹ thuật.
1.2 Giải quyết vấn đề
Để đáp ứng được nhu cầu đo nhiệt độ tự động, thì có nhiều phương pháp
để thực hiện, nghiên cứu khảo sát vi điều khiển AT89C51 nhóm thực hiện nhận
thấy rằng: ứng dụng vi điều khiển AT89C51 và việc đo nhiệt độ tự động là
phương pháp tối ưu. Nhóm đã tiến hành thực hiện đề tài "THIẾT KẾ MẠCH
ĐO NHIỆT ĐỘ DÙNG VI ĐIỀU KHIỂN AT89C51 HIỂN THỊ TRÊN LED 7
ĐOẠN".
Với đề tài trên chúng em đã thực hiện và tìm hiểu các vấn đề sau:
Tìm hiểu về linh kiện
Tìm hiểu về vi điều khiển 8051
Tìm hiểu về cảm biến nhiệt độ LM35
Tìm hiểu về ADC 0809
Tìm hiểu về sơ đồ khối hệ thống và nguyên lí hoạt động của mạch
Tìm hiểu lưu đồ thuật toán
Lập trình và mô phỏng
Thi công thiết kế một mạch đo nhiệt độ đơn giản.
Thiết kế mạch nguyên lí và mạch in
Hoàn thiện sản phẩm
1.3 Giới hạn đề tài
điểm. Dữ liệu lớn hơn 8 bit được chia ra thành các dữ liệu 8 bit để cho xử lý.
8051 có tất cả 4 cổng vào ra I/O mỗi cổng rộng 8 bit. Mặc dù 8051 có thể có
một ROM trên chíp cực đại là 64 K byte, nhưng các nhà sản xuất lúc đó đã cho
xuất xưởng chỉ với 4K byte ROM trên chíp. Điều này sẽ được bàn chi tiết hơn
sau này.
Hình 2: Vi điều khiển AT89C51
8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác
sản xuất và bán bất kỳ dạng biến thế nào của 8051 mà họ thích với điều kiện
họ phải để mã lại tương thích với 8051. Điều này dẫn đến sự ra đời nhiều phiên
bản của 8051 với các tốc độ khác nhau và dung lượng ROM trên chíp khác
nhau được bán bởi hơn nửa các nhà sản xuất. Điều này quan trọng là mặc dù
có nhiều biến thể khác nhau của 8051 về tốc độ và dung lương nhớ ROM trên
chíp, nhưng tất cả chúng đều tương thích với 8051 ban đầu về các lệnh. Điều
này có nghĩa là nếu ta viết chương trình của mình cho một phiên bản nào đó thì
nó cũng sẽ chạy với mọi phiên bản bất kỳ khác mà không phân biệt nó từ hãng
sản xuất nào.
AT89C51 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất
lượng cao, công suất thấp với 4 KB PEROM ( Flash Programeable and erasable
read only memory).
Các đặc điểm của 8951 được tóm tắt như sau:
- 4KB bộ nhớ, có thể lập trình lại nhanh, có khả năng ghi xóa tới 1000
chu kỳ.
Hình 3: Sơ đồ khối của AT89C51
OTHER
REGISTER
128 byte
RAM
128 byte
RAM
8032\8052
ROM
0K:
8031\8032
4K:8951
8K:8052
INTERRUPT
CONTROL
INT1\
INT0\
SERIAL PORT
TIMER0
TIMER1
TIMER2
8032\8052
CPU
OSCILATOR
BUS CONTROL
I/O PORT
dụng khi AT89C51 giao tiếp với thiết bị ngoài có kiến trúc bus.
Hình 5: Port 0
Nhóm 3 11
- Port 1 (P1.0 – P1.7 hay chân 1 – 8): có chức năng xuất nhập theo bit và byte.
Ngoài ra, 3 chân P1.5, P1.6, P1.7 được dùng để nạp ROM theo chuẩn ISP, 2
chân P1.0 và P1.1 được dùng cho bộ Timer 2.
Hình 6: Port 1
- Port 2 (P2.0 – P2.7 hay chân 21 – 28): là một port có công dụng kép. Là đường
xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở
rộng.
Hình 7: Port 2 Nhóm 3 12
- Port 3 (P3.0 – P3.7 hay chân 10 – 17): mỗi chân trên port 3 ngoài chức năng
xuất nhập ra còn có một số chức năng đặc biệt sau:
Bit
Tên
Chức năng chuyển đổi
P3.0
RXD
Dữ liệu nhận cho port nối tiếp
P3.1
Nhóm 3 13
- EA (External Access): EA thường được mắc lên mức cao (+5V) hoặc mức
thấp (GND). Nếu ở mức cao, bộ vi điều khiển thi hành chương trình từ ROM
nội. Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng.
- ALE (Address Latch Enable): ALE là tín hiệu để chốt địa chỉ vào một thanh
ghi bên ngoài trong nửa đầu của chu kỳ bộ nhớ. Sau đó các đường port 0 dùng
để xuất hoặc nhập dữ liệu trong nửa chu kỳ sau của bộ nhớ.
- PSEN (Program Store Enable): PSEN là điều khiển để cho phép bộ nhớ
chương trình mở rộng và thường được nối với đến chân /OE (Output Enable)
của một EPROM để cho phép đọc các bytes mã lệnh. PSEN sẽ ở mức thấp trong
thời gian đọc lệnh. Các mã nhị phân của chương trình được đọc từ EPROM qua
Bus và được chốt vào thanh ghi lệnh của bộ vi điều khiển để giải mã lệnh. Khi
thi hành chương trình trong ROM nội, PSEN sẽ ở mức thụ động (mức cao).
- VCC, GND: AT89S52 dùng nguồn một chiều có dải điện áp từ 4V – 5.5V
được cấp qua chân 40 (Vcc) và chân 20 (GND).
2.2 Giới thiệu ADC 0809
Bộ ADC 0809 là một thiết bị CMOS tích hợp với một bộ chuyển đổi từ
tương tự sang số 8 bit, bộ chọn 8 kênh và một bộ logic điều khiển tương thích.
Bộ chuyển đổi ADC 8 bit này dùng phương pháp chuyển đổi xấp xỉ tiếp. Bộ
chọn kênh có thể truy xuất bất kênh nào trong các ngõ vào tương tự một cách
độc lập.
Thiết bị này loại trừ khả năng cần thiết điều chỉnh điểm 0 bên ngoài và
khả năng điều chỉnh tỉ số làm tròn ADC 0809 dễ dàng giao tiếp với các bộ vi
xử lý.
2.2.1 Sơ đồ chân ADC 0809
-6
START
IN
3
IN
4
IN
5
IN
6
IN
7
EOC 2
-5
OE CLK V
CC
REF GND 2
-7
Nhóm 3 14
2.2.2 Ý nghĩa các chân
- IN
0
đến IN
7
: 8 ngõ vào tương tự.
- A, B, C : giải mã chọn một trong 8 ngõ vào
A
, ADD
B
, ADD
C
như bảng trạng thái sau:
A
B
C
Ngõ vào được chọn
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
Mã ra N cho một ngõ vào tùy ý là một số nguyên.
)()(
)(
).(256
refref
refIN
VV
VV
N Trong đó Vin : điện áp ngõ vào hệ so sánh.
Vref(+): điện áp tại chân REF(+).
Vref(-): điện áp tại chân REF(-).
Nếu chọn Vref(-) = 0 thì N = 256.
)(ref
in
V
V
Vref(+) = Vcc = 5V thì đầy thang là 256.
Giá trị bước nhỏ nhất:
1 LSB =
12
RC3
1
Tần số dao động chuẩn là 600 kHz
Suy ra 640 =
RC3
1
V
cc
560
P
10K
IK
IK
Nhóm 3 17
Với R từ 100 đến vài k chọn R =1 k C = 500 PF.
2.2.7 Sơ đồ kết nối mạch Hình 12: Sơ đồ kết nối mạch chuyển đổi ADC 0809
Ngoài ra ta có thể viết một chương trình tạo xung sử dụng timer của vi
điều khiển và kết nối trực tiếp với chân số 10 của ADC mà không cần phải tạo
thêm mạch xung clock bên ngoài. Mã chương trình tạo xung clock 500 kHz cho
ADC 0809:
PC
5
PC
4
PC
2
PC
1
PC
0
PB
7
PB
6
PB
5
PB
4
PB
3
PB
2
PB
2
D
1
D
0
825
5
825
5
080
9
V
cc
V
ref
+
IN
0
IN
1
IN
2
IN
3
2.3 Giới thiệu cảm biến LM35
Đây là cảm biến nhiệt được tích hợp chính xác cao của hãng National
Semiconductor. Điện áp đầu ra của nó tỉ lệ tuyến tính với nhiệt độ theo thang
độ Celsius. Điện áp ngõ ra thay đổi 10mv (điện áp bước) cho mỗi sự thay đổi
1C. Chúng không yêu cầu cân chỉnh ngoài.
LM35 có 4 dạng: TO-46, SO-8, TO-92, TO-220. Nhưng thường dùng
nhất là dạng TO-92 như hình dưới.
Hình 13: Sơ đồ chân LM35 dạng TO-92 Nhóm 3 19
Bảng 14: Dãy đo nhiệt độ của LM35
Hình 15: Sơ đồ khối hoạt động của hệ thống
Đặc điểm cơ bản của LM35:
+ Điện áp nguồn từ -0.2V đến +35V
+ Điện áp ra từ -1V đến +6V
+ Dải nhiệt độ đo được từ -55°C đến +150°C
+ Điện áp đầu ra thay đổi 10mV mỗi khi có sự thay đổi 1°C.
2.4 Led 7 đoạn
2.4.1 Giới thiệu
LED 7 đoạn hay LED 7 thanh (Seven Segment display) là 1 linh kiện rất
phổ dụng, được dùng như là 1 công cụ hiển thị đơn giản nhất. Trong LED 7
thanh bao gồm ít nhất là 7 con LED mắc lại với nhau, vì vậy mà có tên là LED
7 đoạn là vậy, 7 LED đơn được mắc sao cho nó có thể hiển thị được các số từ
0 - 9, và 1 vài chữ cái thông dụng, để phân cách thì người ta còn dùng thêm 1
led đơn để hiển thị dấu chấm (dot) . Các led đơn lần lượt được gọi tên theo chữ
cái A- B -C-D-E-F-G, và dấu chấm dot. Như vậy nếu như muốn hiển thị ký tự
D3
c
a
D6
f
f
D1
a
b
e
MASS
d
D4
d
D2
b
D7
g
D8
dp
g
dp
c
D7
g
D1
a
D4
d
Nhóm 3 22
CHƯƠNG III: THI CÔNG VÀ THIẾT KẾ MẠCH
EOC BIT P1.4
ALE BIT P1.5
ORG 0000H
JMP MAIN
ORG 000BH ; NGẮT TIMER 0
T0ISR: CPL CLK_ADC
RETI
ORG 0030H
MAIN: MOV TMOD, #02H ; CHƯƠNG TRÌNH TẠO XUNG CLOCK 500
KHZ CHO ADC
MOV TH0, #(-1)
SETB TR0
MOV IE, #82H
TD: LCALL CDOI
LCALL HEX_BCD
LCALL BCD_7DOAN
LCALL HIENTHI
JMP TD
CDOI: SETB ALE
CLR ALE
SETB START
Nhóm 3 24
JB EOC, $
CLR START
DIV AB
MOV 10H, B
Nhóm 3 25
MOV 11H, A
RET
BCD_7DOAN:
MOV DPTR, #900H
MOV A, 10H
MOVC A, @A + DPTR
MOV 20H, A
MOV A, 11H
MOVC A, @A + DPTR
MOV 21H, A
RET
HIENTHI: MOV P0, 21H
CLR P2.7
LCALL DELAY
MOV P2, #0FFH
MOV P0, 20H
CLR P2.6
LCALL DELAY
MOV P2, #0FFH
MOV P0, #09CH