Automated Drying System Control, Exercises of Microprocessors

The design and implementation of an automated drying system that maintains specific temperature and humidity levels during the drying process. The system features a start and stop button, adjustable temperature and time settings, and a display that shows the current temperature, humidity, and drying time. Hardware design, flowchart, and control program written in c language for a pic16f887 microcontroller. The system is designed to provide efficient and controlled drying for various applications, such as food processing, material drying, or industrial processes. The document could be useful for students, engineers, or researchers interested in the design and development of automated drying systems, process control, and embedded systems.

Typology: Exercises

2021/2022

Uploaded on 12/22/2022

vietanh27112020
vietanh27112020 🇻🇳

5 documents

1 / 15

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Cho một hệ thống sấy hoạt động theo quy trình sau:
1> Khi mới hoạt động thì hệ thống sấy duy trì nhiệt độ buồng sấy với nhiệt độ là
T1 và duy trì chế độ này trong khoảng thời gian X1 phút.
2> Sau đó, hệ thống sấy duy trì nhiệt độ ở mức T2 và cho tới khi độ ẩm trong buồn
sấy đạt tới mức A (RH) thì tắt hệ thống.
Có 2 nút start để bắt đầu quy trình sấy, và stop để cưỡng bức tắt
quy trình sấy
Các giá trị T1, X1, T2, A< được chỉnh bằng các sử dụng các biến trở.
Khi hệ thống đã chạy thì việc chỉnh T1, X1, T2, A< sẽ không tác động tới quá trình
chaỵ. Nếu muốn tác động thì phải nhấn stop để ngưng chạy và chỉnh sau.
Các giá trị T1, X1, T2, A' được hiển thị trên 4 góc của'LCD.' ' ''
Hãy thưc hiện các yêu cầu sau:
a> Thiết kế phần cứng phù hợp
b> Vẽ lưu đồ
c> Viết chương trình điều khiển và mô phỏng<
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download Automated Drying System Control and more Exercises Microprocessors in PDF only on Docsity!

Cho một hệ thống sấy hoạt động theo quy trình sau:

1> Khi mới hoạt động thì hệ thống sấy duy trì nhiệt độ buồng sấy với nhiệt độ là

T1 và duy trì chế độ này trong khoảng thời gian X1 phút.

2> Sau đó, hệ thống sấy duy trì nhiệt độ ở mức T2 và cho tới khi độ ẩm trong buồn

sấy đạt tới mức A (RH) thì tắt hệ thống.

Có 2 nút start để bắt đầu quy trình sấy, và stop để cưỡng bức tắt

quy trình sấy

Các giá trị T1, X1, T2, A được chỉnh bằng các sử dụng các biến trở.

Khi hệ thống đã chạy thì việc chỉnh T1, X1, T2, A sẽ không tác động tới quá trình

chaỵ. Nếu muốn tác động thì phải nhấn stop để ngưng chạy và chỉnh sau.

Các giá trị T1, X1, T2, A được hiển thị trên 4 góc của LCD.

Hãy thưc hiện các yêu cầu sau:

a> Thiết kế phần cứng phù hợp

b> Vẽ lưu đồ

c> Viết chương trình điều khiển và mô phỏng

a> Thiết kế phần cứng phù hợp

  • Hình
  • Hình

#DEFINE SHIFT_LEFT 0X

#DEFINE SHIFT_RIGHT 0X1C

#DEFINE ADDR_LINE1 0X

#DEFINE ADDR_LINE2 0XC

void LCD_COMMAND(UNSIGNED CHAR MDK) //RS = 0 { OUTPUT_LOW(LCD_RS); OUTPUT_LCD(MDK); OUTPUT_HIGH(LCD_E); DELAY_US(20); OUTPUT_LOW(LCD_E); DELAY_US(20); } void LCD_DATA(UNSIGNED CHAR MHT) //RS = 1 { OUTPUT_HIGH(LCD_RS); OUTPUT_LCD(MHT); OUTPUT_HIGH(LCD_E); DELAY_US(20); OUTPUT_LOW(LCD_E); DELAY_US(20); } VOID LCD_SETUP() { OUTPUT_LOW(LCD_E); OUTPUT_LOW(LCD_RS); OUTPUT_LOW(LCD_RW); LCD_COMMAND(FUNCTION_SET); DELAY_MS(1);

LCD_COMMAND(DISPLAY_CONTROL);

LCD_COMMAND(CLEAR_DISPLAY); DELAY_MS(2);

LCD_COMMAND(ENTRY_MODE);

#int_timer int8 bdn=0, giay=0, phut=0, gio=0; int J,K,H,Q,duty; float32 X1,T1,T2,A; void ngat1() { set_timer1(3036); bdn++; if(bdn==10) { giay++;bdn=0; if(giay==60) { giay=0; phut++; if( phut==60) {phut=0; gio++; if( gio>23) {

SETUP_ADC_PORTS(SAN1);

SET_ADC_CHANNEL(1);

X1=0;

FOR (K=0; K<200; K++)

X1=X1+READ_ADC();

DELAY_MS(1);

X1= X1 /4.887;

X1= X1/200;

X1=X1/1;

void T1_NHIETDOBUONSAYLUCDAU(){ { SETUP_ADC(ADC_CLOCK_DIV_8); SETUP_ADC_PORTS(SAN2); SET_ADC_CHANNEL(2); T1=0; FOR (Q=0; Q<200; Q++) { T1=T1+READ_ADC(); DELAY_MS(1); }

T1= T1 /4.887;

T1= T1/200;

T1=T1/1;

void T2_NHIETDOBUONSAYLUCSAU(){ { SETUP_ADC(ADC_CLOCK_DIV_8); SETUP_ADC_PORTS(SAN3); SET_ADC_CHANNEL(3); T2=0; FOR (H=0; H<200; H++) { T2=T2+READ_ADC(); DELAY_MS(1); } T2= T2 /4.887; T2= T2/200; T2=T2/1; } } void PHIM_STOP(){ duty=0; if(input(START)==0) duty=0;

LCD_SETUP();

khoitaotimer1(); //set_tris_d(0); set_tris_e(0); set_tris_c(0x00); set_tris_b(0xff); output_high(pin_c0); output_low(pin_c1); duty=0; set_pwm1_duty(duty); A_DOAM(); X1_TGIANSAY(); T1_NHIETDOBUONSAYLUCDAU(); T2_NHIETDOBUONSAYLUCSAU(); while(true) { IF (input(START)==0); { duty=750; set_pwm1_duty(duty); } IF ((input(STOP)==0)|| phut==(int)T1); { duty=0; set_pwm1_duty(duty); A_DOAM(); X1_TGIANSAY();

T1_NHIETDOBUONSAYLUCDAU();

T2_NHIETDOBUONSAYLUCSAU();

LCD_COMMAND(0X82);

LCD_DATA((int)A/10%10+0x30);//chuc LCD_DATA((int)A%10+0x30);//dv LCD_COMMAND(0X8E); LCD_DATA((int)X1/10%10+0x30); LCD_DATA((int)X1%10+0x30); LCD_COMMAND(0XCE); LCD_DATA((int)T1/10%10+0x30); LCD_DATA((int)T1%10+0x30); LCD_COMMAND(0XC3); LCD_DATA((int)T2/10%10+0x30); LCD_DATA((int)T2%10+0x30); Hienthi(); } }