2. SƠ LƯỢC VỀ CÁC PHƯƠNG PHÁP BIẾN ĐỔI AD
Tín hiệu trong thế giới thực thường ở dạng tương tự (analog), nên mạch điều
khiển thu thập dữ liệu từ đối tượng điều khiển về (thông qua các cảm biến) cũng ở
dạng tương tự. Trong khi đó, bộ điều khiển ngày nay thường là các μP, μC xử lý dữ
liệu ở dạng số (digital). Vì vậy, cần phải chuyển đổi tín hiệu ở dạng tương tự thành tín
hiệu ở dạng số thông qua bộ biến đổi AD.
Có nhiều phương pháp biến đổi AD khác nhau, ở đây chỉ giới thiệu một số
phương pháp điển hình.
2.1. Biến đổi AD dùng bộ biến đổi DA.
Trong phương pháp này, bộ biến đổi DA được dùng như một thành phần trong
mạch. Khoảng thời gian biến đổi được chia bởi nguồn xung clock bên ngoài. Đơn vị
điều khiển là một mạch logic cho phép đáp ứng với tín hiệu Start để bắt đầu biến đổi.
Khi đó, OPAMP so sánh hai tín hiệu vào analog để tạo ra tín hiệu digital biến đổi trạng
thái của đơn vị điều khiển phụ thuộc vào tín hiệu analog nào có giá trị lớn hơn. Bộ
biến đổi hoạt động theo các bước :
• Tín hiệu Start để bắt đầu biến đổi.
• Cứ mỗi xung clock, đơn vị điều khiển sửa đổi số nhị phân đầu ra và đưa
vào lưu trữ trong thanh ghi.
• Số nhị phân trong thanh ghi được chuyển đổi thành áp analog vAX qua bộ
biến đổi DA.
• OPAMP so sánh vAX với điện áp đầu vào vA. Nếu vAX < vA thì đầu ra ở
Mạch khống chế nhiệt độ
mức cao, còn ngược lại, nếu vAX vượt qua vA một lượng vT (áp ngưỡng)
thì đầu ra ở mức thấp và kết thúc quá trình biến đổi. Ở thời điểm này,
vAX được xấp xỉ bằng vA số nhị phân chứa trong thanh ghi chính l giá trị
digital xấp xỉ của vA (theo một độ phân giải và chính xác nhất định của
từng hệ thống).
Clock
Đầu vào analog
vA
EOC
Start
• Đơn vị điều khiển kích hoạt tín hiệu EOC, báo rằng được kết theo quá
+ OPAMP -
So snh
vA
vAX
Reset
Khi chuyển đổi hoàn tất, counter ngừng đếm
EOC
Clock
Counter
Bộ biến đổi DA
tC
vAX
. . .
t r a t S
Kết quả digital
trình biến đổi. Dựa theo phương pháp này, có nhiều bộ biến đổi như sau :
2.2. Giới thiệu về IC ADC 0804
Bộ ADC 0804 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 1 kênh với một bộ logic điều khiển tương thích.
Bộ chuyển đổi AD 8 bit này dùng phương pháp chuyển đổi xấp xỉ tiế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 0804 dễ dàng giao tiếp với các bộ vi xử
lý.
Mạch khống chế nhiệt độ
• Sơ đồ chân ADC 0804:
Chức năng các chân:
CS: Ngõ vào cho phép
RD,WR: Đọc ghi
INTR :cho phép chốt địa chỉ
DB0…DB7 : ngõ ra song song 8 bit
CLK : xung đồng hồ
VREF : điện thế tham chiếu
Vin+, Vin-: ngõ vào tương tự
VCC, GND: nguồn cung cấp
Các đặc điểm của ADC 0804:
Độ phân giải 8 bit
. Tổng sai số chưa chỉnh định ± ½ LSB; ± 1 LSB
. Thời gian chuyển đổi: 100μs ở tần số 640 kHz
. Nguồn cung cấp + 5V
. Điện áp ngõ vào 0 – 5V
Mạch khống chế nhiệt độ
. Tần số xung clock 10kHz – 1280 kHz . Nhiệt độ hoạt động - 40oC đến 85oC
. Dễ dàng giao tiếp với vi xử lý hoặc dùng riêng
. Không cần điều chỉnh zero hoặc đầy thang
Nguyên lý hoạt động:
ADC 0804 có 1 vào tương tự để chuyển đổi sang số 8 bit.
Sau khi kích xung start thì bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống
của xung INTR, lúc này bit cơ trọng số lớn nhất (MSB) được đặt lên mức 1, tất
cả các bit còn lại ở mức 0, đồng thời tạo ra điện thế có giá trị Vref/2, điện thế
này được so sánh với điện thế vào in.
+ Nếu Vin > Vref/2 thì bit MSB vẫn ở mức 1.
+ Nếu Vin < Vref/2 thì bit MSB vẫn ở mức 0.
Tương tự như vậy bit kế tiếp MSB được đặt lên 1 và tạo ra điện thế có giá
trị Vref/4 và cũng so sánh với điện áp ngõ vào Vin. Quá trình cứ tiếp tục như
vậy cho đến khi xác định được bit cuối cùng. Khi đó chân INTR lên mức 1 báo
cho biết đã kết thúc chuyển đổi.
Trong suốt quá trình chuyển đổi nếu có 1 xung start tác động thì ADC sẽ
ngưng chuyển đổi.
ref
)( ) −
Mã ra N cho một ngõ vào tùy ý là một số nguyên.
N
=
.( 256 VV − IN −
V ref
V ref
)( +
)( −
Trong đó Vin: điện áp ngõ vào hệ so sánh.
Vref(+): điện áp tại chân REF(+).
V in
Vref(-): điện áp tại chân REF(-).
V
ref
)
(+
Nếu chọn Vref(-) = 0 thì N = 256.
Vref(+) = Vcc = 5V thì đầy thang là 256.
• Mạch tạo xung clock cho ADC 0804: Sử dụng mạch dao động dùng RC
R1 10K
C1 100p
Mạch khống chế nhiệt độ
để tạo dao động cho ADC như sau:
1 RC1.1
Tần số dao động của mạch là f =
Tần số dao động chuẩn là 600 kHz đến 700Khz
Với R từ 1kΩ đến vài chục kΩ chọn R =15 kΩ ⇒ C = 100 pF
9
− = 667Khz
1 100
10.
3 .10.15
=> f =
Từ những điều trên ta kết luận rằng các bước cần phải thực hiện khi chuyển đổi
dữ liệu bởi ADC0804 là:
(cid:57) Bật CS = 0 và gửi một xung thấp lên cao tới chân WR để bắt đầu chuyển đổi.
(cid:57) Duy trì hiển thị chân INTR . Nếu INTR xuống thấp thì việc chuyển đổi được
hoàn tất và ta có thể sang bước kế tiếp. Nếu INTR cao tiếp tục thăm dò cho đến khi
nó xuống thấp.
(cid:57) Sau khi chân INTR xuống thấp, ta bật CS = 0 và gửi một xung cao xuống thấp
đến chân RD để lấy dữ liệu ra khỏi chip ADC0804. Phân chia thời gian cho quá
trình này được trình bày như hình 8.
Hình 8: Phân chia thời gian đọc và ghi của ADC0804
CHƯƠNG 4
THIẾT KẾ PHẦN CỨNG
1.SƠ ĐỒ KHỐI
Mạch khống chế nhiệt độ
Hệ hoạt động theo chương trình đã nạp trên ROM , qua sự điều khiển của MCU
8051 phần cảm biến nhiệt đặt ở nơi ta muốn đo, nó sẽ đọc tín hiệu của nhiệt độ qua
mức điện áp tín hiệu analog được chuyển thành tín hiệu số và giao tiếp với hệ thống
qua data bus.
Trên cơ sở chương trình được nạp trên ROM và tín hiệu nhận được, MCU cho
phép thiết bị ngoại vi hoạt động như : hiển thị giá trị nhiệt độ tương ứng điều khiển
nhiệt độ thích hợp.
2 .SƠ LƯỢC CHỨC NĂNG CÁC BỘ PHẬN
-Vi xử lý 8051 là phần tử chính xử lý các thông tin nhập vào và đưa ra các quyết
định điều khiển.
- Phím là bộ phận giao tiếp ngoại vi, cho phép nhập các thông số bằng tay.
- Mạch hiển thị, hiển thị các giá trị đặt và giá trị đo.
- Mạch cảm biến dùng để khuyếch đaị tín hiệu và bù nhiệt.
- Mạch công suất dùng để đóng mở nguồn công suất.
3.SƠ ĐỒ CHI TIẾT CÁC KHỐI
3.1.Thiết kế phím :
Gồm 3 phím:
- Phím tăng
- Phím giảm
- Phím chức năng
Mạch khống chế nhiệt độ
- Phím thoát
P 2 . 4
P 2 . 5
P 2 . 6
P 2 . 7
R
VCC
SW1
SW1
SW1
SW2
Hình 9. Các phím nhấn
3.2.Khối mạch cảm biến nhiệt
VCC
-VCC
20K
R5
-VCC
R2 39K
-VCC
U3
4 8
U1
OP-07
VCC
4 8
2
R4
U6
J2
7 1
OP-07
-
R3
6
2
20K
-
3
6
3
+
+
R2
3
6
1 2
10K
D1
+
10K
C7
2
-
7 1
R8
10UF
R6 20K
7 1
C3 10UF
CON2
LM 335
4 8
OP-07
100K
VCC
VCC
VCC
LM335 là cảm biến nhiệt độ có thể hoạt động đến 150oC tương ứng với nhiệt độ 0oK , LM335 cho ra điện áp 0V . Cứ tăng 1oC ,điện áp ra tăng 10mV.Như vậy với 0oC
• Tính toán và cân chỉnh :
thì điện áp là 2.73V.
• Xét mạch khuếch đại trừ :
Gọi Vi1 = VOUT 1 là áp ngõ vào đảo của U3 , Vi2 = V OUT2 áp ngõ vào không đảo
của U3. Áp dụng phương pháp xếp chồng cho từng kích thích ngõ vào ,ngắn mạch ngõ
vào còn lại ta được :
Mạch khống chế nhiệt độ
Trong trường hợp này ta chọn R5=R6 và R4=R3 thì Vo được viết lại như sau
Suy ra điện áp ngõ ra sẽ thay đổi A *10mV khi nhiệt độ thay đổi 1oC .độ phân giải cần là 1oC nên điện áp thay đổi khi nhiệt độ thay đổi 1oC,phải bằng độ phân giải của
AD0804 :
Av *10mV = 19.6mV
=>Av = 1.96
=>Chọn R5 = 20 K và R3 = 10K
• Cân chỉnh :
Chỉnh VR1 sao cho VI của U3 =2.73 + 0.01* toC Nhưng trong thực tế để chính xác ,nhúng LM335 vào nước đá đang tan (0oC) .
Chỉnh VR2 sao cho V2 của U2 = 2.73V.
• Thiết kế bộ cảm biến nhiệt :
Tầm làm việc trong hệ thống mạch từ 0 ÷150oC.
Để đo nhiệt độ chính xác phải có các đầu đo đặc biệt. Đầu đo dưới dạng vi mạch
LM335 là một đầu đo đơn giản và chính xác với giá thành lại rẻ .LM335 có độ biến
thiên điện áp theo nhiệt độ là 10mV/ K ,có một dãy độ chính xác khá cao và cảm biến nhiệt tốt ở nhiệt độ 25oC có độ sai số nhỏ hơn 1oC.với tầm đo từ nhiệt độ 0 ÷100oC,
ngõ ra của cảm biến này tuyến tính.
• Các tính chất của cảm biến LM335 :
Chia độ trực tếp theo oK Độ chính xác ban đầu là 1oC
Trở kháng động < 1Ω
Tầm nhiệt độ rộng . Khoảng đo 150oC
• Tầm tuyệt đối lớn nhất :
Dòng ngược 15mA
Dòng thuận 10mA Điện áp hoạt động ngõ ra ở điều kiện TC =25oC, IR =1nA tương ứng 2.92 ÷ 3.04V
có:
400μA < IR < 5mA.
5 − V0 R
Mạch khống chế nhiệt độ
< 5 mA 400μA <
5 V 0− mA 5
5 V 0− A μ400
< R <
Vì: 2,73V ≤ Vo ≤ 3,73V
Nên: 254 < R < 5,7 k (1) Mặt khác, theo thông số của nhà sản xuất điện áp trên LM335 tại Tc = 25oC,
IR = 1mA thì Vo = 2,98 (V), ta có:
98,25 − R
< 5mA (2) 400μA <
Từ (1) và (2): chọn R = 2,2 kΩ
chọn biến trở chỉnh offset VR = 15 kΩ.
Sai số nhiệt ở 25oC ở điều kiện Tmin 1 ÷ 2oC
Điện áp ngõ ra hoạt động ở điều kiện 400µA +5V Vout Theo thông số của nhà sản xuất IC LM335 có độ biến thiên điện áp như sau: VR LM335 0oC (273oK ) áp ra 2.73V
5oC (278oK ) áp ra 2.78V
25oC (298oK ) áp ra 2.98V
50oC (323oK ) áp ra 3.23V
100oC (373oK ) áp ra 3.73V Tầm biến thiên điện áp tương ứng với nhiệt độ từ 0oC - 100oC là 1V Điện áp ra từ bộ cảm biến LM335 theo công thức:
Vout = 0,01 x ToK = 2,73 + 0,01ToC. Mạch khống chế nhiệt độ Ta R
2 V
C
C V
C
C R
2 3
9
K D
1 2
0
K L
M
3
3
5 C
3 C
7 1
0
U
F 3 2 1
0
U
F - 3 2 -+ - -+ V
C
C 7
1 4
8 V
C
C V
C
C 7
1 4
8 V
C
C 6 6 O
P
-
0
7 U
3 U
1O
P
-
0
7 R
3 1
0
K 1
0
K R
4 R
6 R
5 3 2 3
9
K - -+ 2
0
K V
C
C 4
8 7
1 V
C
C P
3
.
7 P
3
.
6 M
U
C
C
A
O M
U
C
T
H
A
P - 6 V
C
C V
C
C 12 1234 U
6O
P
-
0
7 45 J
2 7 14 C
O
N
4 V
C
C 7 14 V
C
C V
C
C 1
0
0
K 3 R R
7 6 U
3
A R
9 7
4
0
0 U
3
B 7
4
0
0 C
8 1
5
0
p V
C
C 4 7 9 6 8 J
1 J
3 1 -
I U
4 I C
O
N
1 C
O
N
3 R
1
0 N +
N 1 2 3 I 1
0
K R V
R
E
F 4 10 R
1 / C
L
K
N A
G
N
D
G N D 2 A
D
C
0
8
0
4 3 I 19 6 D
1 C
6 C LKR 5 20 I V
C
C V
C
C D
O
D
E C
A
P
N
P 1
2 1 R
D W
R N
T
R C
S D
B
7 D
B
6 D
B
5 VC C /V R EF
D
D
D
B
B
B
4
2
0 D
B
3 D
B
1 J
3 5 123 1
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 L
S
1 Q
1 C
O
N
1 N
P
N P
3 P
3 P
3 P
3 . . . . D
2L
E
D 2 1 0 3 R
E
L
A
Y R
2R B
C
E D
P
S
T P
3 P
3 P
3 P
3 P
3 P
3 . . . . . . 2 0 1 7 3 6 1
8 1
9 1
0 1
1 1
2 1
3 1
4 1
5 1
6 1
7 12345678 1
2
M
H
Z X
2 X
1 P
1 P
1 P
1 P
1 P
1 P
1 P
1 P
1 P
3 P
3 P
3 P
3 P
3 P
3 P
3 P
3 . . . . . . . . . . . . . . . . 7 6 5 4 3 2 1 0 1 2 3 4 5 / / / / / / /
I /
I T
0 T
1 7
R
D 40 6
W
R T
X
D 0
R
X
D N
T
0 N
T
1 V C C V
C
C 20 8
9
C
5
1 G N D P
0 P
0 P
0 P
0 P
0 P
0 P
0 P
0 P
2 P
2 P
2 P
2 P
2 P
2 . . . . . . . . . . . . . . P
2 P
2 . . / / / / / / / / / / / / / / / / P
S
E
N 0
A
D
0 1
A
D
1 2
A
D
2 3
A
D
3 4
A
D
4 5
A
D
5 6
A
D
6 7
A
D
7 7
A
1
5 6
A
1
4 5
A
1
3 4
A
1
2 3
A
1
1 2
A
1
0 1
A
9 0
A
8 A
L
E E
A R
S
T V
C
C 9 3
1 2
9 3
0 3
9 3
8 3
7 3
6 3
5 3
4 3
3 3
2 2
8 2
7 2
6 2
5 2
4 2
3 2
2 2
1 U
1 S
W
1 V
C
C R
2 3
3
0
X
8 P
2
.
7 P
2
.
5 P
2
.
4 P
2
.
6 F E B A D C G P
2
.
3 P
2
.
1 P
2
.
0 P
2
.
2 P2.0
P2.1
P2.2
P2.3 D
P C
9C
A
P VC C V
C
C C A V
C
C Q
1A
1
0
1
5 R VC C C A V
C
C P2.4 Q
2A
1
0
1
5 S
W
1 VC C P2.5 S
W
1 V
C
C P2.6 C A S
W
1 Q
3A
1
0
1
5 P2.7 VC C S
W
2 V
C
C C A A
B
C
D
E
F
G
D P
A
B
C
D
E
F
G
D P
A
B
C
D
E
F
G
D P
A
B
C
D
E
F
G
D P Q
4A
1
0
1
5 A
B
C
D
E
F
G
D P
A
B
C
D
E
F
G
D P
A
B
C
D
E
F
G
D P
A
B
C
D
E
F
G
D P S
W
P
U
S
H
B
U
T
T
O
N Mạch khống chế nhiệt độ BEGIN NẠP GIÁ TRỊ ĐẦU Y Y Y CÓ NHẤN NHẤN TĂNG TO < TO MAX MODE N N N TĂNG to
ĐẶT Y Y ĐỌC ADC NHẤN GIẢM TO >= TO MIN N N GIẢM to
ĐẶT HIỂN THỊ HIỂN THỊ Mạch khống chế nhiệt độ Mạch khống chế nhiệt độ START So sánh nhiệt độ
đặt với nhiệt độ
hiện tại Cấp nguồn cho phần công suất Mạch khống chế nhiệt độ Thoát N NHẤN NÚT Y Y N Y N Mạch khống chế nhiệt độ 00H
60H,#35
61H,#45 ORG
MOV
MOV
MOV DPTR,#SO
CLR
CS
CLR RDD P2.7,HIEUCHINH1
C JNB
CLR
LCALL DELAYSCAN
MOV A,P1
CJNE A,60H,$+3
X1
JC
CJNE A,61H,$+3
JNC X2
SETB RELAY1
SETB RELAY2
SJMP X3 RELAY1
X3
RELAY2 CLR
SJMP
CLR LCALL GIAIMABCD
SJMP DOCNHIETDO P2.6,TANG
P2.5,GIAM
P2.4,DOCNHIETDO
P2.7,HIEUCHINH2 LCALL CHONGDOI
MOV A,60H
LCALL GIAIMACHULL
LCALL DELAYSCAN
JNB
JNB
JNB
JNB
SJMP HIEUCHINH1 60H
INC
SJMP HIEUCHINH1 DEC
60H
SJMP HIEUCHINH1 LCALL CHONGDOI
MOV A,61H
LCALL GIAIMACHUHH
LCALL DELAYSCAN
JNB
JNB
JNB P2.6,TANG1
P2.5,GIAM1
P2.4,DOCNHIETDO Mạch khống chế nhiệt độ P2.7,DOCNHIETDO JNB
MOV R0,7AH
SJMP HIEUCHINH2
61H
SJMP HIEUCHINH2 DEC
61H
SJMP HIEUCHINH2 A,@A+DPTR
25H,A
24H,#86H B,#10
MOV
AB
DIV
MOV
10H,B
MOV B,#10
AB
DIV
MOVC A,@A+DPTR
MOV
27H,A
MOV A,B
MOVC A,@A+DPTR
26H,A
MOV
MOV A,10H
MOVC
MOV
MOV
RET P0,24H
P2,#1110B MOV
MOV
LCALL DELAY
MOV P2,#0FFH P0,25H
P2,#1101B
DELAY
P2,#0FFH MOV
MOV
LCALL
MOV P0,26H
P2,#1011B MOV
MOV
LCALL DELAY
MOV P2,#0FFH P0,27H
P2,#0111B MOV
MOV
LCALL DELAY
MOV
RET P2,#0FFH 32H,#50
32H,$ 00H TMOD,#01H
R0,#20 TANG1: INC
GIAM1:
;*********************************************************
GIAIMABCD:
HTHI:
DELAY:
MOV
DJNZ
RET
DELAYSCAN:
PUSH
CLR WRITE
SETB WRITE
MOV
MOV
DANGTRINH:
MOV
MOV
SETB TH0,#-250H
TL0,#-250H
TR0 Mạch khống chế nhiệt độ TF0,HIEN
TF0
TR0 00H MOV
R0,#2
DJNZ R0,$
RET MOV B,#10
AB
DIV
MOV
10H,B
MOV B,#10
DIV
AB
MOVC A,@A+DPTR
27H,A
MOV
MOV A,B
MOVC A,@A+DPTR
MOV
26H,A
MOV A,10H
MOVC A,@A+DPTR
25H,A
MOV
MOV
24H,#0C7H
RET MOV B,#10
AB
DIV
MOV
10H,B
MOV B,#10
DIV
AB
MOVC A,@A+DPTR
MOV
27H,A
MOV A,B
MOVC A,@A+DPTR
MOV
26H,A
MOV A,10H
MOVC A,@A+DPTR
25H,A
MOV
24H,#09H
MOV
RET 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB
END HIEN:
LCALL HTHI
JNB
CLR
CLR
DJNZ R0,DANGTRINH
POP
RET
CHONGDOI:
;******************************
GIAIMACHULL:
;****************************************
GIAIMACHUHH:
SO: Mạch khống chế nhiệt độ Mạch khống chế nhiệt độ3.3. Sơ đồ nguyên lý tổng quát
CHƯƠNG 5
THIẾT KẾ PHẦN MỀM
1. Lưu đồ giải thuật
1.1.Lưu đồ giải thuật tổng quát:
1.2.Giải thuật chương trình đọc A/D và chương trình đổi số nhị phân ra
BCD:
1.3.Giải thuật xuất led:
1.4.Giải thuật chương trình so sánh và điều khiển:
START
Tăng 1 đơn vị
Nhấn Tăng
Nhấn Giảm
1.5.Giải thuật chương trình tăng giảm:
___________
Giảm 1 đơn vị
Gọi Chương Trình Hiển Thị
2.Chương trình phần mềm :
$MOD51
P3.0
BIT
CS
RDD BIT P3.1
P3.2
BIT
WRITE
P3.3
INTR
BIT
P3.7
RELAY1 BIT
P3.6
RELAY2 BIT
MAIN:
DOCNHIETDO:
X1:
X2:
X3:
HIEUCHINH1:
TANG:
GIAM:
HIEUCHINH2: