Giáo trình hướng dẫn cách nâng cao kỹ thuật sấy để đảm bảo tính ổn định cho sản phẩm phần 10 - Pdf 19

- 91 -
Vcc = 5V tối thiểu 10 chu kỳ dao động trước khi chân RST đạt mức thấp lần
nữa.
Chế độ nghỉ: Lệnh thiết lập bit IDL bằng 1 là lệnh sau cùng được thực thi
trước khi đi vào chế độ nghỉ. Ở chế độ nghỉ, tín hiệu Clock nội được khoá không
cho đến CPU nhưng không khoá đối với chức năng ngắt, định thời và Port nối
tiếp. Trạng thái của CPU được duy trì và nội dung củ
a tất cả các thanh ghi cũng
không đổi. Các chân Port cũng được duy trì các mức logic của chúng. ALE và
PSEN được giữ ở mức cao.
5.1.2. Khối giao tiếp bằng bàn phím

Sử dụng bốn phím trong đó 1 phím dùng để Reset còn 3 phím sử dụng cho
việc đặt giá trị tốc độ ban đầu.
Nút ấn SW1 dùng để Reset lại mạch.
Nút ấn SW2, SW3 và SW4 dùng để đặt tốc độ hỗn hợp dòng khí theo ý
muốn, chúng được nối đến các chân P2.5, P2.6. P2.7 của vi xử lí, tốc độ có thể
tăng hoặc giảm tuỳ theo ý muốn của người làm thí nghiệm.
Các tụ từ C
1
đến C
4
có tác dụng chống nhiễu.
5V
SW1
1 2
SW2
1 2
SW3
1 2
SW4

5.1.4. Khối hiển thị
Khối hiện thị có tác dụng hiển thị giá trị tốc độ hỗn hợp dòng khí đặt và
giá trị đo được thực tế từ hệ thống. Giúp người khi làm thí nghiệm quan sát cùng
một lúc hai giá trị vận tốc từ đó đánh giá được sự làm việc của hệ thống.
- 93 -
Ở đây ta sử dụng LED 7 đoạn để hiển thị, ta dùng hai cặp LED một cặp
dùng hiển thị giá trị đặt, cặp còn lại dùng hiển thị giá trị đo. Mỗi giá trị đo chỉ
hiển thị tối đa hai số và ngầm hiểu đơn vị là (cm/s).
Để hiển thị bằng đèn led, người thường dùng ba phương pháp là: phương
pháp quét, phương pháp chốt và kết hợp cả hai ph
ương pháp này. Trong thiết kế
này chúng tôi sử dụng phương pháp quét. Để hiển thị chữ số hoặc ký tự nào ta
cung cấp tín hiệu đến các chân của đầu nối. Các led trong thiết kế này được chọn
loại chung Anode. Muốn cho led nào sáng ta đưa chân tương ứng với nó tại cổng
J2 lên cao đồng thời đưa chân tương ứng với nó tại cổng J1 xuống thấp. Muốn
hiển thị đúng chữ số hoặc ký t
ự ta phải giải mã led.

Hình 5.7. Sơ đồ mạch hiển thị tốc độ
Thật vậy giả sử ta cần hiển thị số 0 thì byte tín hiệu chuyển đến cổng J1 sẽ
là: 11000000 (C0h) nếu cần hiển thị số 1 thì byte tín hiệu cần chuyển đến cổng
J1 sẽ là 11111001 (F9h)… Tương ứng với các số tiếp theo ta xác định byte tín
hiệu tương tự cụ thể số 2, 3, 4, 5, 6, 7, 8, 9 sẽ là: 10100100 (A4h); 10110000
(B0h); 10011001 (99h); 10010010 (92h); 10000010 (82h); 11111000 (F8h);
10000000 (80h); 10010000 (90h). - 94 -
5.2. NGUYÊN LÝ HOẠT ĐỘNG
Sơ đồ khối của mạch

được giữ ổn định và trở lại trang thái ban đầu.
5.3. THUẬT TOÁN VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN
* Lưu đồ thuật toán

Chương trình chính
Khởi tạo các giá trị. Bộ định thời 0 được dùng
để đo tần số xung vào. Bộ định thời 1 dùng để
tính thời gian trích mẫu. Bộ định thời 2 dùng
để tính tần số xung ra. Ngắt ngoài 0 dùng để
phục vụ khi có phím ấn. Ngắt ngoài 1 dùng để
xác định sườn xuống của xung vào.
Hiển thị vận tốc hiện tại
trong buồng sấy
- 96 -


khi có phím ấn
Lưu phím ấn vào biến key.
Nếu là phím tăng thì tăng biến dữ liệu lên 1
Nếu là phím giảm thì giảm biến dữ liệu xuống 1
Nếu là phím OK thì thoát khỏi vòng lặp
Kết thúc
timer2. Hàm này được dùng để
kích xung ra
Tăng biến đếm lên, nếu biến đếm =
output thì lấy đảo trên chân P3.0
đồng thời gán biến đếm bằng 0
Kết thúc
- 97 -
}
void timer1(void) interrupt 3//Cu sau 100us lai thuc hien ham nay.
{
if(trich_mau++ >=5000)//tang bien trich mau len, neu no bang 5000 co nghia la
0.5s
{//thi thuc hien doan chuong trinh sau.
input_1=input;//luu gia tri van toc hien tai lai
saiso=dulieu-input_1;//Tinh sai so.
output=75*u2-10*u1-5*saiso+y;//tinh bo dieu khien PID voi cac thong so:
K=40. Ki=30, Kd=10
u1=u2;//Sau khi da roi rac hoa, voi thoi gian trich mau la 0.5s.
u2=saiso;
y=y1;
y1=output;
output=output/0.005;
}
}
void timer2(void) interrupt 5//Ham nay duoc thuc hien khi da den thoi diem kich
xung dau ra.
{
if(dem++>=output)
{
P3_0=~P3_0;
dem=0;
}
}
void ext0(void) interrupt 0//Ham nay duoc thuc hien khi co bat ky phim nao
duoc an.
{
key=quet();//Luu gia tri phim duoc an.

TR1=1;
TR2=1;
IE=0xAF;
while (1)
{
temp1=input_1; //Hien thi gia tri dau vao.

for(shift=1;shift<=8;shift<<=1)
{

temp=temp1%10;
temp1=temp1/10;
switch(temp)
{
case 0: P1=0x40;
break;
case 1: P1=0x79;
break;
case 2: P1=0x24;
break;
case 3: P1=0x30;
- 100 -
break;
case 4: P1=0x19;
break;
case 5: P1=0x12;
break;
case 6: P1=0x02;
break;
case 7: P1=0x78;


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status