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

Tài liệu Đồ án " Môn học vi xử lý" ppt

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 (254.37 KB, 18 trang )

ĐỒ ÁN
Vi xử lí.
Đồ án môn học Vi xử lí.
Điều khiển động cơ bước theo nhiệt độ.
1.Mở đầu.
-Giới thiệu chức năng hệ thống:
Trong đồ án này, chúng ta sẽ nêu ra một phương án (trên lí thuyết) môđun điều
khiển tự động động cơ bước theo nhiệt độ. Tốc độ động cơ tăng khi nhiệt độ
tăng và tốc độ động cơ giảm khi nhiệt độ giảm. Đây là một đồ án cơ bản nhất
trong việc áp dụng kĩ thuật vi xử lí trong đo lường và điều khiển.
Giả sử khoảng biến thiên nhiệt độ là T1->T2 (T1<T2), ta cần điều khiển tốc độ
động cơ biến thiên tuyến tính theo nhiệt độ ∆n=k∆T.
∆n: độ biến thiên tốc độ động cơ.
∆T: độ biến thiên nhiệt độ.
k: hằng số tỉ lệ.
2.Sơ đồ khối hệ thống.

Bộ
cảm
biến

đệm
v oà
Biến
đổi
AD
8255
A
Cổng
//
CPU


Độn
g cơ
bướ
c

CS
ĐC
CLK
Hình: Sơ đồ khối hệ thống điều khiển motor bước theo nhiệt độ.
Phương pháp vận hành:
Bộ cảm biến gồm 8 đầu vào sẽ ghi lại sự thay đổi nhiệt độ của nguồn nhiệt và
chuyển về đại lượng điện.
Khối khuếch đại đệm vào khuếch đại tín hiệu nhận được từ cảm biến và chuẩn
hoá theo yêu cầu của bộ biến đổi AD.
Bộ biến đổi AD chuyển tín hiệu Analog thành tín hiệu Digital đưa vào 8255.
8255 là IC hỗ trợ lập trình giao tiếp với CPU thông qua cổng song song.
Tín hiệu nhận được sẽ được xử lí và cấp tín hiệu điều khiển động cơ.
Thông qua cổng song song và 8255, tín hiệu điều khiển được khuếch đại công
suất làm quay động cơ.
Khối CLOCK cung cấp xung chuẩn để điều khiển tốc độ động cơ và cung cấp
xung nhịp cho bộ biến đổi AC.
3.Sơ đồ nguyên lí từng khối các kết nối:
a)Bộ cảm biến và khuếch đại đệm vào:
Hình: Đặc tuyến một đầu cảm biến.
Kí hiệu:
Bộ khuếch đại đệm vào đưa khoảng giá trị (U
1
,U
2
) về khoảng giá trị (0,5V) cho

phù hợp với khoảng điện áp của bộ ADC. Như vậy, điện áp đầu ra từ 0→5V sẽ
tỉ lệ thuận với nhiệt độ đầu vào của bộ cảm biến.

U
U
2
U
1
T
1
T
2
T
°
Khoảng tuyến tính
Hình: Sơ đồ một bộ khuếch đại đệm vào.
Do yêu cầu của khoảng nhiệt độ cần đo thường lớn hơn khoảng tuyến tính của
một đầu cảm biến nên ta phải kết hợp nhiều đầu cảm biến tuyến tính ở các
khoảng nhiệt độ khác nhau. Chọn khoảng làm việc trên đặc tuyến của các cảm
biến giống nhau ∆T.
Hình: Làm việc với 8 đầu cảm biến.
b)Cấu trúc cổng song song:
Cổng song song (LPT) có 25 chân, trong đó có 17 chân có tác dụng. Ở đồ án này
chúng ta sử dụng cổng LPT1 có địa chỉ cơ sở 378h. Cổng LPT được giao tiếp
thông qua 3 thanh ghi.
U
ra
(0 đến5V)

+

-
T
2
T
0
T
1
T
n-2
U
∆T ∆T∆T

.

T
n-1
T
n
∆T
Cảm biến thứ
1
Cảm biến thứ 2
Cảm biến thứ n-
1
Cảm biến thứ
n
Hình: Sơ đồ chân của cổng song song LPT.
Thanh ghi số liệu (đọc và ghi), địa chỉ 378h
Tín hiệu D7 D6 D5 D4 D3 D2 D1 D0
Chân số 9 8 7 6 5 4 3 2

Thanh ghi trạng thái (chỉ đọc), địa chỉ 379h
Tín hiệu BUSY
ACK
PE SLCT
ERROR
X X X
Chân số
11
10
12
13
15



Thanh ghi điều khiển, địa chỉ 37Ah
Tín hiệu X X X X
SLCTIN
INIT
AFD
STR
Chân số




17
16
14
1

c)Bộ biến đổi AD (ADC) và IC hỗ trợ lập trình 8255A.
Sau khi phân tích yêu cầu của tín hiệu Analog cần biến đổi, ta chọn IC ADC
0808 (ADC 0809) là IC 8bit và 8 đầu vào Analog.
Để giảm bớt công việc cho bộ vi xử lí trong việc điều khiển vào ra cho ADC, ta
ghép nối ADC với cổng song song qua 8255A. 8255A được thiết lập ở chế độ
vào ra cơ sở (mode 0).
Trong mode 0, ta có 4 cổng làm việc độc lập là PA,PB,PC
H
,PC
L
có thể vào hoặc
ra tuỳ ý.
Cấu trúc ADC 0808 (ADC 0809)như sau.
Hình: Cấu trúc ADC0808(0809).
Bắt đầu chuyển đổi
='1': đã chuyển đổi xong
(200kHz -1Mhz)
8bit output
CLK
V
Ref(+
)
V
Ref(-
)
Start
ALE
A
2
EOC

OE
A
0
A
1
3 bit chọn kênh Analog
8 kênh Analog v oà
Chốt địa chỉ A
2
A
1
A
0
Chuẩn điện thế
dương
Xung CLK giữ nhịp
Chuẩn điện thế âm
Một chu kỳ làm việc của ADC:
Hình: Một chu kỳ làm việc của ADC0808(0809)
Ghép nối giữa 8255A và ADC:
Hình: Sơ đồ ghép nối giữa ADC và 8255A
PA: lấy dữ liệu từ ADC 0808 (ADC 0809)
PC
0
, PC
1
, PC
2
: cổng điều khiển địa chỉ cho ADC.
PC4: điều khiển chốt địa chỉ của kênh hiện hành và bắt đầu biến đổi ADC.

PC5: chốt địa chỉ đầu ra để 8255A đọc.
(Không dùng PC
3
để độc lập việc điều khiển địa chỉ cho cổng PC
L
)
d)Ghép nối 8255A với động cơ bước:
Cấu trúc của động cơ bước:
A
B
C
D
A',B',C',D'
PA
0
-PA
7
8bit output
A
1
A
2
PC
0
PC
1
PC
2
PC
4

PC
5
Start
ALE
OE
A
0
WR
RD
ADC 8255A
Hình: Cấu trúc của motor bước.
Hoạt động của động cơ bước:
Các cuộn dây được cấp dòng theo một vòng tròn, mỗi chu kì cấp dòng động cơ
quay được 1 vòng.
Hình: Hoạt động của từng cuộn dây trong motor bước.
AA'
t
BB'
t
CC'
t
DD'
t
Hình: Sơ đồ nguyên lí của khối khuếch đại công suất động cơ.
Bộ khuếch đại công suất sử dụng 1 transitor công suất cho mỗi cuộn dây:
"ABCD"= "0001" → "0010" → "0100" → "1000" → "0001"
→ "ABCD" thực hiện lệnh dịch 4 lần, động cơ quay 1 vòng.
Giả sử động cơ quay 1000vòng/phút đến 10000vòng/phút trong khoảng T
1
đến

T
2
.
Ta có công thức: ∆n=k∆T
n
1
=1000vòng/phút = 16,6vòng/giây
→ "ABCD" quay16,6x4lần = 66,4lần/giây.
Với xung nhịp = 17,4kHz → cứ 17,4kHz/66.4=262 xung =∂
1
"ABCD" quay 1
lần.
n
2
=10000vòng phút, tương tự trên, 26 xung =∂
2
"ABCD" quay 1 lần.
Khi nhiệt độ biến thiên từ T
0
đến T
8
, thì biến chỉ báo nhiệt độ VT biến thiên từ
000.0000.0000b đến 8x255=2040=111.1111.1000b.
→1/26-1/262=kx2040
→ k=1.69.10
-5
12V
QC
QB
QA

QD
A
B
C
D
Step motor
Khi ở nhiệt độ T
X
→ 1/∂ - 1/262 = 1,69.10
-5
x(VT-0)
Như vậy, với tần số xung là 17,4kHz thì cứ ∂ xung thì "ABCD" quay 1 lần.
e)Ghép nối giữa khối động cơ và 8255A:
Hình: Ghép nối giữa 8255A và động cơ bước.
PB dùng để điều khiển động cơ, sử dụng 4 bit PB
0
đến PB
3
.
f)Kết nối giữa cổng song song và 8255A:
Hình: Kết nối giữa cổng song song và 8255A.
∂ = 59172/(VT+227).
PB
1
PB
0
PB
2
PB
3

A
B
C
D
8255A Step motor block
D0-D7
8bit DATA
STR
AFD
INIT
RD
WR
D0-D7
8255A
Cổng song song
/CS
A
0
A
1
/CS nối đất vì
chip luôn
được chọn.
g)Mạch tạo xung CLOCK 8254 và ghép nối với ADC và cổng song song

Hình: Mạch tạo xung CLK 2,5MHz dùng thạch anh.
Đối với đối tượng điều khiển là ADC và Stepmotor thì tần số của CLK không
cần lớn lắm. Đối với ADC cần tần số CLK là 200Khz-1MHz. Stepmotor cần TS
khoảng 1KHz, ta dùng thêm các bộ chia tần. Để đơn giản cho thiết bị, ta chỉ chia
tần cho ADC, còn Stepmotor ta dùng một biến đếm lớn để chia tần và điều

khiển.
Sơ đồ nguyên lí bộ chia tần 12.
Hình: Sơ đồ nguyên lí bộ chia tần 12.
Một chu kỳ làm việc của ADC:
- F/C: khi nối đất dùng thạch anh trong l m xung nhà ịp.
- CSYNC: lối v o cho xung à đồng bộ từ bên ngo i, nà ếu dùng thạch
anh trong thì phải nối đất.
- /RES: chân khởi động, nối với mạch RC để tự khởi động.
f
XTAL
/6 = 2,5MHz
độ rỗng = 50%
XTAL
15MHZ
+5V
10k
+
C
10uF
PCLK
F/C CSYNC
/RES
Reset
Reset: Dùng reset lại 8255A
khi khởi động.
8284
f
74LS92
MR1
MR2

CP0
CP1
Q3
Q2
Q1
Q0
f/12
Sơ đồ khối mạch CLK có chia tần:
Hình: Sơ đồ khối mạch chia tần từ 2,5MHz xuống 208kHz và 17,6kHz.
Sơ đồ ghép nối giữa CLK với ADC và VXL thông qua cổng song song.
Hình: Sơ đồ ghép nối giữa CLK với các IC 8255A, ADC và cổng song song.
CLKA=208kHz
CLK
2.5MHz
Chia
12
Chia
12
CLKB=17,6kHz
17.4kHz
CLKB
CLKA
Cổng song song
/ERROR
ADC
CLK
8255A
Reset
EOC
SLCT

EOC='1': ADC đã chuyển đổi xong
Reset
200kHz
4)Đoạn mã chương trình:
a)Các chế độ của 8255A và cổng song song:
8255A làm việc ở mode 0 (vào ra cơ sở)
Thiết lập mode cho 8255A:
CWR (A
0
='1',A
1
='1')
1 0 0 1 0 0 0 0
Điều
khiển
cấu
hình
8255A
Chọn mode 0
cho nhóm A
(gồm PA và
PC
H
)
PA
nhận
dữ liệu
PC
H
xuất dữ

liệu
Chọn
mode 0
cho
nhóm
B (gồm
PB và
PC
L
)
PA
xuất dữ
liệu
PC
L
xuất dữ
liệu
Các chân chức năng mới của cổng song song:
Thanh ghi số liệu (đọc và ghi), địa chỉ 378h
Tín hiệu D7 D6 D5 D4 D3 D2 D1 D0
Chức năng
địa chỉ cho
8255A
D7 D6 D5 D4 D3 D2 D1 D0
Thanh ghi trạng thái (chỉ đọc), địa chỉ 379h
Tín hiệu BUSY
ACK
PE SLCT
ERROR
X X X

Chức
năng
EOC
(ADC)
CLK(200kHz)
Thanh ghi điều khiển, địa chỉ 37Ah
Tín hiệu X X X X
SLCTIN
INIT
AFD
STR
Chức
năng

A
1
(8255A)
A
0
(8255A)
RD
,WR
(8255A)
Mô hình phương pháp thu thập nhiệt độ:

T
X
S0
S1
S2

S3 S4 S5 S6
S7
T
0
T
1
T
2
T
3
T
4
T
5
T
6
T
7
T
8
Hình: Mô hình phương pháp thu thập nhiệt độ.
Mỗi cảm biến Si (i=0,7) trong khoảng nhiệt độ T
i
đến T
i+1
qua bộ khuếch đại
đệm vào chuẩn U
ra
tuyến tính theo nhiệt độ trong khoảng 0-5V, qua ADC biến
thiên từ 0000.0000b đến 1111.1111b. Như vậy, khi nhiệt độ môi trường T

X
trong
khoảng T
i
đến T
i+1
, các cảm biến S0 đến Si-1 đều cho giá trị 1111.1111b, các
cảm biến Si+1 đến S7 đều cho giá trị 0000.0000b, còn cảm biến Si cho giá trị
trung gian giữa 0000.0000b và 1111.1111b. Lấy tổng các giá trị này, ta biết
được giá trị tuyến tính theo Tx.
b)Lưu đồ thuật toán chương trình:
c)Đoạn mã chương trình:
Begin
Lập mode 0
cho 8255A
Cho động cơ
khởi động
Đếm xung
đồng hồ
ADC biến
đổi xong
Cho động cơ
nhảy 1 bước
Đọc nhiệt độ
Đủ xung cho
động cơ
nhảy tiếp?
Chú thích:
- Sau khi chạy chương trình, hệ thống sẽ l m vià ệc
liên tục đến khi tắt nguồn cung cấp.

TITLE Chuong trinh dieu khien dong co buoc theo nhiet do
.MODEL SMALL
.STACK 100H
.DATA
CWR DB 90h; 10010000b giá trị thiết lập mode cho 8255A
TGDL DW 378; Địa chỉ thanh ghi dữ liệu cổng song song
TGDK DW 37A; Địa chỉ thanh ghi điều khiển cổng song song
TGTT DW 379; Địa chỉ thanh ghi trạng thái cổng song song
VT DW 0; khởi tạo giá trị 0 cho biến chỉ báo nhiệt độ
Delta DW 26; biến điều khiển tốc độ động cơ
quay DW 00010001b; biến điều khiển động cơ quay
demxung DW 0; biến đếm xung CLK
Daucambien DB 0; biến chứa số liệu đầu cảm biến hiện thời
temp DB 0;
.CODE
MAIN PROC
OUT TGDK,111b; yêu cầu thanh ghi CWR chuẩn bị nhận dl
OUT TGDL,CWR; thiết lập mode cho 8255A
OUT TGDK,011b; yêu cầu PB chuẩn bị nhận dữ liệu
OUT TGDL,quay; cho động cơ bắt đầu khởi động
vonglap
IN AH, TGTT; lấy thanh ghi trạng thái
AND AH,10000b; chọn ra bit 4 (bit EOC của ADC)
CMP AH,10000b; so sánh với 1
JNE ADCchuaxong; nếu không =1 (ADC biến đổi chưa xong) thì chưa
;đọc nhiệt độ.
CALL Docnhietdo; nếu =1 (ADC đã biến đổi xong) thì đọc nhiệt độ
ADCchuaxong:
CALL Demxungclk; gọi thủ tục đếm xung CLK
CMP demxung,delta; so sánh biến đếm xung với biến điều khiển tốc độ

JNE khongquay; nếu chưa đếm đủ thì chưa cho động cơ nhảy tiếp
CALL Quaydongco; nếu đã đủ thì cho động cơ nhảy tiếp
MOV demxung,0; reset lại biến đếm xung
khongquay:
JMP vonglap;
Docnhietdo PROC NEAR
OUT 37A, 101b; yêu yêu cầu PC chuẩn bị nhận dữ liệu
OUT 00100000b; yêu cầu ADC chốt địa chỉ ra.
OUT 37Ah, 000b; yêu cầu PA chuẩn bị xuất dữ liệu
IN AX, 378h; nhận chỉ báo nhiệt độ từ đầu cảm biến
ADD VT, AX; cộng giá trị vào biến nhiệt độ
INC Daucambien;
CMP daucambien 8;
JNE alabel;
MOV daucambien,0; bắt đầu lại từ đầu cảm biến 0
ADD VT,227;
MOV AX,59712;
MOV DX,0;
DIV VT;
MOV delta,AX; suy ra delta=59712/(VT+227)
MOV VT,0; khởi tạo lại biến chỉ báo nhiệt độ
alabel:
RET
Quaydongco PROC NEAR
OUT TGDK,011b; yêu cầu PB chuẩn bị nhận dữ liệu
ROL quay;
OUT TGDL, quay; cho động cơ quay theo biến điều khiển quay
RET
Demxungclk PROC NEAR
IN AH, TGTT; lấy thanh ghi trạng thái vào AH

AND AH,1000b; lấy riêng bít 3 (bit CLK)
CMP temp,AH; so sánh trạng thái trước và trạng thái mới của CLK
JE boqua; nếu không có gi khác thì bỏ qua
CMP temp,1; nếu khác thì kiểm tra biến trạng thái trước
JNE khongdem; nếu trạng thái trước khác 1(=0) thì không đếm
INC demxung; nếu trạng thái trước = 1 (xung CLK nhảy từ 1 xuống 0) thì
;đếm.
khongdem:
MOV temp,AH
boqua:
RET
MAIN ENDP
END MAIN

×