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

Lập trình hệ thống

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 (270.1 KB, 17 trang )

I. BÀI TOÁN:
Xây dựng hệ thống đo lường và điều khiển sử dụng PC điều
khiển nhiệt độ: Nhiệt độ khống chế từ 250C đến 750C, ∆t = ±10C.
Yêu cầu: Ghép nối CPU với cơ cấu đo lường điều khiển và viết
chương trình điều khiển : tính nhiệt độ và điều khiển ON, OFF.
tđo > tc : ON
tđo ≤ tc : OFF
Cơ cấu đo
lường

DT ĐK
(Nhiệt độ)

Senso
r
U (t ) = 2,7 − 3,2
v

KD
&

0v − 5v

Cơ cấu điều
khiển

t = 25 − 75 0

Cơ cấu
điều
khiển



v

BXLTT
(MP,PC)

ADC
(8bit)
Bàn phím


II.CẤU TẠO:
CÁC PHẦN CƠ BẢN CỦA HỆ THỐNG
1.Chuẩn ISA(8bit):


2.Bộ đệm vào ra (IN/OUT) 74245:
+Dữ liệu vào D0-D7 từ các chân A0-A7.
+ Chân DIR được nối với chân B14 mang tín hiệu IOR(đọc).
• Nếu tín hiệu IOR tích cực mức 0.Dữ liệu (data) sẽ đi từ
B >> A
• Nếu tín hiệu IOR tích cực mức 1.Dữ liệu (data) sẽ đi từ
A >> B
+ Chân E được nối với bộ 74688.Nhận tín hiệu cho phép 74245
hoạt động với mức 0 là mức tích cực.


3.IC 74688:
74LS688
1

2
4
6
8
11
13
15
17

G

Y

A0
A1
A2
A3
A4
A5
A6
A7

B0
B1
B2
B3
B4
B5
B6
B7


19
3
5
7
9
12
14
16
18

+ Chân G được nối với các cổng NAND để tạo tín hiệu khởi động
cho 74688
IOR/IOW
1
3
2

NAND

ARE

NAND

1
A11

3
2


+ Các chân từ A0-A7 được nối với các chân của ISA A26-A19
mang tín hiệu A5-A11 có chân A8-A9 =1.B3-B4 được nối với
nguồn +5v.
+ IC chỉ hoạt động khi tín hiệu đầu vào A bằng tín hiệu định sẵn
B.Để xác định máy hoạt động đúng trong giải địa chỉ 300H đến
30FH. Từ đó tạo ra tín hiệu tích cực cho 74245 hoạt động và 74138
hoạt động.


4.Giải mã địa chỉ qua IC 74138:

+ Chân G2A và G2B tích cực ở mức 0 cho phép 74138 hoạt động.
+ Đầu vào dữ liệu qua các chân A3-A4-IOW:
• Nếu A3 A4 IOW là 000 : Y0 tích cực ở mức 0 cho phép
ADC0809 hoạt động.
• Nếu A3 A4 IOW là 001 : Y1 tích cực ở mức 0 cho phép
IC74374 hoạt động.
• Nếu A3 A4 IOW là 100 : Y4 tích cực ở mức 0 tạo tín hiệu
đọc OE cho ADC0809.
• Nếu A3 A4 IOW là 101 : Y5 tích cực ở mức 0 cho phép IC
74244 hoạt động.
5.Cơ cấu đo lường – Khuếch đại – Chuyển đổi :
a.Sensor LM355:
IC đo nhiệt độ là một mạch tích hợp nhận tín hiệu nhiệt độ
chuyển thành tín hiệu điện dưới dạng dòng điện hay điện áp.
Dựa vào đặc tính rất nhạy cảm của các bán dẫn với nhiệt độ, tạo
ra điện áp hoặc dòng điện, tỉ lệ thuận với nhiệt độ tuyệt đối.Đo
tín hiệu điện ta biết được giá trị của nhiệt độ cần đo. Sự tác



Đặc tính của IC đo nhiệt độ LM 335
Ngõ ra điện áp,
Độ nhạy 10mv/10C.
Sai số cực đại 1,50C khi nhiệt độ lớn hơn 1000C.
Phạm vi sử dụng -550C đến 1500C.
∆t = 25-75 ◦C
Ura = 2,7v – 3,2v


b.Khuếch đại:
0-5V

ADC0809

{0,1}

CPU

+5v

10k
4,7k
2
+

1k

1
1k
10k


4,7k

Khuếch đại tín hiệu từ 2,7v -3,2v lên tín hiệu từ 0-5v để đưa
vào bộ chuyển đổi ADC0809.
Nếu:
R3 R4
=
=k
R1 R2

U r = k .(U v 2 − U v1 )
Mà Ur = 5, Uv2 – Uv1 = 0,5 => Chọn k = 10
c.Bộ chuyển đổi ADC0809 (tương tự thành số):
* Ý nghĩa các chân:
. IN0 đến IN7
: 8 ngõ vào tương tự.
. A, B, C
: giải mã chọn một trong 8 ngõ vào
-1
-8
. 2 đến 2 : ngõ ra song song 8 bit
. ALE
: cho phép chốt địa chỉ
. START
: xung bắt đầu chuyển đổi
. CLK
: xung đồng hồ
. REF (+)
: điện thế tham chiếu (+)



. REF (-)
. VCC

: điện thế tham chiếu (-)
: nguồn cung cấp

Để máy tính có thể xử lý được thông số của nhiệt độ đo
được.Ta cần phải chuyển đổi chúng từ tín hiệu tương tự sang tín
hiệu số.Chính vì thế ta sử dụng bộ chuyển đổi ADC0809.

+ Tín hiệu A0A1A2 = 000 cho phép đọc nhiệt độ đo được ở
IN0.Tương tự 001 ở kênh IN1.....
A B C
0
0
0
0
1
1
1
1

0
0
1
1
0
0

1
1

0
1
0
1
0
1
0
1

Ngõ vào được
chọn
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7


+ Bắt đầu chuyển đổi khi tín hiệu START ở mức tích cực, tín
hiệu ALE tích cực để chốt địa chỉ.
+ Chuyển đồ từ tín hiệu tương tự sang số kết thúc khi
ADC0809 phát ra tín hiệu EOC.
+ Chân OE được nối với 74138 để điều khiển kết thúc quá
trình chuyển dữ liệu.

+ CLK được nối với bộ chia tần:
4Mhz
7414

7414

1

2

1

1k

2

1k

100pF

7493
14
1
2
3

CLK

CLKA
CLKB

R01
R02

QA
QB
QC
QD

12
9
8
11

NC


* Biểu đồ thời gian của ADC 0809.


6.Cơ cấu điều khiển với IC

74374:
IC 74374 làm nhiệm vụ điều khiển quạt bật lên hoặc tắt đi
nếu như nhiệt độ đo được lớn hơn hoặc nhỏ hơn nhiệt đo đặt vào.
IC 74374 hoạt động khi tín hiệu vào chuyển từ 74138 ( khi
A3-A4-IOW = 100 – Y1 được chọn ở mức tích cực 0). Khi đó IOR
= 1, IOW =0 ở địa chỉ 308H.


SƠ ĐỒ NGUYÊN LÝ HỆ THỐNG ĐIỀU KHIỂN NHIỆT ĐỘ

+12V
+5V
10K

D0
D1
D2
D3
D4
D5
D6
D7

B0
B1
B2
B3
B4
B5
B6
B7

kê nh 0
4MHz

74LS245

OE

A0


EOC

1,5K

10K

7414

1K

1K

100K

100pF
14
1
2
3

A29
A30
A31

1K

4,7K

CLK


ALE
START

1K

10K

7414

E

A1

DIR

IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7

A2

B14

IOR


A0
A1
A2
A3
A4
A5
A6
A7

+

D0
D1
D2
D3
D4
D5
D6
D7

A9
A8
A7
A6
A5
A4
A3
A2


-

ADC0809

LM335

4,7K

ISA

CLKA
CLKB
R01
R02

QA
QB
QC
QD

12
9
8
11

7493

CPU
B9


+12V
D0
D1
D2
D3
D4
D5
D6
D7

Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7

G

OE

FAN
1K
C828

A3
A4
IOW


A28
A27
B13
+5V

A11

A
B
C
G1
G2A
G2B

74LS374

Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7

10K

74LS138
AEN


G
A26
A25
A24
A23
A22
A21
A20
A19

A5
A6
A7
A8
A9
A10
A11
A12

P0
P1
P2
P3
P4
P5
P6
P7

P=Q


Y
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7

74LS688

1Y 1

1A1

+5V
G1
G2

74LS244


III.GIẢI MÃ ĐỊA CHỈ I/O

IN/OUT
IOR = 0, IOW = 0
A2 = A8 = A9 = 1
A3 = A4 = A5 = A6 = A7 = 0


Đọc dữ liệu từ 301H
MOV DX,301H
IN Al,DX
IN → IORD ( B14 ) = 0

A1A2=00
A0A8A9=111
A3A4…A7=00..0
AEN=0


CHƯƠNG TRÌNH ĐIỀU KHIỂN
.Model small
.Stack 100h
.Data
Msg1 DB 'Chuong trinh dieu khien nhiet do.$'
Msg2 DB ‘Nhiet do phong la: $’
.Code
Main Proc
MOV AX,@Data
MOV DS, AX
;Hiển thị thông báo
LEA DX,Msg1
MOV AH,9
INT 21H
Start:
MOV DX,301h
MOV AL,00h
OUT DX,AL

LAP1:
MOV DX,308h
IN AX,DX
AND AL,80h
JZ LAP1
MOV DX,308h
OUT DX,AL
MOV DX,301H
IN AL,DX
MOV BL,2d
MUL BL

;chọn kênh 1

; cho cổng 74244 hoạt động

; khởi động cổng 74374


MOV BL,10D
XOR AH,AH
DIV BL
ADD AL,25
POP AX
;Xuống dòng
POP AX
MOV AH,2
MOV DL,0DH
INT 21H
MOV DL,0AH

INT 21H
MOV AX,@Data
MOV DS, AX
;Hiển thị thông báo
LEA DX,Msg2
MOV AH,9
INT 21H
PUSH AX
POP AX
MOV BX, 10
MOV CX, 0

; tạo biến đếm

Lap:
DIV BX

; Chia AX cho BX

PUSH DX

; Cất phần dư thu được trong DX

INC CX

; tăng biến đếm

CMP AX, 0

; So sánh AX với 0


JG Lap

; Nếu lớn hơn 0 thì chia tiếp

POP BX

; Lấy dữ liệu được cất ra BX

ADD BL, ‘0’
MOV DL, BL

; Chuyển số thành ký tự
; In ra màn hình


MOV AH, 2
INT 21h
PUSH AX
CMP AL,27D
JA Above
;Nếu lớn hơn
CMP AL,25D
JB Below
; Nếu nhỏ hơn
JMP Start
Above:
;Tắt quạt
MOV DX,308h
MOV AL,00h

OUT DX,AL
JZ Start
Below:
; Giảm nhiệ t độ bằng cách bật quạt
MOV DX,308h
MOV AL,01h
OUT DX,AL
JZ Start
Main EndP
End Main

NGUYÊN LÝ HOẠT ĐỘNG:
Trước tiên, ta đưa 301H vào DX rồi OUT AL ra cổng 301h.
Khi đó A0, A8, A9 = 1, còn lại là bằng 0, IOW =1, IOR =0. Chân
AEN ở mức 0 cho phép CPU làm chủ hệ thống, kết hợp với IOW
và IOR qua các cổng NAND để khởi động 74688. Do A8, A9 =1
tức là P = Q Æ chân Y sẽ tích cực ở mức thấp, tạo tín hiệu cho
phép 74245 (chân E) và 74138 (chân G2A,G2B) hoạt động. Tại
74245, IOR =0 Æ DIR = 1, cho phép dữ liệu chuyển từ A sang B
(đi ra). Tại 74138, vì tín hiệu IOW , A3, A4 = 0,0,0 nên Y0 được
chọn tích cực ở mức thấp, qua mạch NOT tạo tín hiệu khởi động


0, IOR = 1. Với IOW ,
A4, A3 = 1,0,1, thì tại 74138 chân Y5 được chọn, đưa tín hiệu khởi
động 74244. Khi ADC0809 thực hiện chuyển đổi xong dữ liệu từ
tín hiệu tương tự sang tín hiệu số thì nó sẽ phát ra một tín hiệu qua
chân EOC đến 74244 (lúc này đã được khởi động) Æ dữ liệu được
truyền từ 1A1 qua 1Y1 lên D7 của kênh dữ liệu. Lúc này trong
CPU sẽ thực hiện kiểm tra bằng cách AND 7 bit thấp của dữ liệu

xem EOC có bằng 1 tức thông báo đã chuyển đổi xong hay chưa.
Nếu đã xong (D7 = 1) sẽ thực hiện đọc dữ liệu vào AL qua cổng
301H từ ADC0809. Lúc này A8, A9, A0 =1, còn lại là bằng 0, IOR
= 1, IOW =0. Tại 74245, IOR = 1 Æ DIR = 0, cho phép dữ liệu
chuyển từ B sang A. Tại 74138, IOW ,A3,A4=1,0,0 Æ chân Y4 tích
cực, qua mạch NAND cho phép chân OE của ADC0809 tích cực,
kết thúc một chu kỳ chuyển đổi và chuyển sang đọc dữ liệu số đã
được mã hoá. Lúc này trong AL thu được dữ liệu chính là nhiệt độ
X. Sử dụng lệnh MUL và ADD để thực hiện tính nhiệt độ thực
theo công thức đã cho: T=25+0,2X. So sánh với nhiệt độ đặt ra (ở
đây là 27), nếu nhiệt độ đặt ra vẫn lớn hơn nhiệt độ đo được thì lại
quay lại quá trình đọc nhiệt độ tiếp, nếu nhiệt độ đặt ra nhỏ hơn
nhiệt độ đo được thì bắt đầu quá trình đưa tín hiệu trạng thái ra
cổng 308H để điều khiển 74374. Lúc này, trên 74138 IOW , A4, A3
= 0,0,1 Æ chân Y1 được chọn, khởi động 74374 để điều khiển
quạt.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×