Tải bản đầy đủ - 0 (trang)
CHƯƠNG 4: XÂY DỰNG HỆ THỐNG

CHƯƠNG 4: XÂY DỰNG HỆ THỐNG

Tải bản đầy đủ - 0trang

Môn học: VXL trong đo lường và điều khiển



GVHD: Tống Thị Lý



-Ấn Start: hệ thống hoạt động

-Chọn chế độ làm việc :Auto( tự động) hoặc Manual( điều khiển bằng tay)

 Auto: Relay 3 mở, quạt và đèn sưởi được điều khiển tự động, khi nhiệt độ

lớn hơn 30*c, relay 1 đóng để bật quạt. Khi nhiệt độ< 20*c, relay 2 đóng

để bật đèn sưởi, ngược lại 2 thiết bị này sẽ tắt.



Khoa Điện-ĐHCNHN



Trang 32



Môn học: VXL trong đo lường và điều khiển



GVHD: Tống Thị Lý



 Manual: Relay 3 đóng lại, lúc này ta có thể điều khiển riêng biệt quạt và

đèn sưởi theo ý muốn.

4.2. Chương trình điều khiển

-Chương trình được viết trên phần mềm lập trình keil C:



#include

//Khai bao chan giao tiep LCD16x2 4bit

#define LCD_RS P0_0

#define LCD_RW P0_1

#define LCD_EN P0_2

#define LCD_D4 P0_4

#define LCD_D5 P0_5

#define LCD_D6 P0_6

#define LCD_D7 P0_7

#define ADC0804_DATA

#define RELAY_1



P3_5



#define RELAY_2



P3_6



#define RELAY_3



P3_7



P1



sbit ADC0804_CS = P3^0;

sbit ADC0804_RD = P3^1;

sbit ADC0804_WR = P3^2;

sbit ADC0804_INTR = P3^3;

sbit Auto= P2^0;

sbit Manual= P2^2;

unsigned char ADC0804_Read()

{

unsigned char kq;

Khoa Điện-ĐHCNHN



Trang 33



Môn học: VXL trong đo lường và điều khiển



GVHD: Tống Thị Lý



// Chon chip

ADC0804_CS = 0;

// Tao xung bat dau chuyen doi

ADC0804_WR = 0;

ADC0804_WR = 1;

// Doi cho den khi chuyen doi xong

while(ADC0804_INTR);

// Doc gia tri sau khi chuyen doi

ADC0804_RD = 0;

kq = ADC0804_DATA;

ADC0804_RD = 1;

return kq;

}

unsigned char temp; //Bien luu gia tri nhiet do

/*****************Ham delay*********************/

void delay_us(unsigned int t){

unsigned int i;

for(i=0;i
}

void delay_ms(unsigned int t){

unsigned int i,j;

Khoa Điện-ĐHCNHN



Trang 34



Môn học: VXL trong đo lường và điều khiển



GVHD: Tống Thị Lý



for(i=0;i
for(j=0;j<125;j++);

}

/**************Ctr giao tiep LCD 16x2 4bit**********************/

void LCD_Enable(void){

LCD_EN =1;

delay_us(3);

LCD_EN=0;

delay_us(50);

}

//Ham Gui 4 Bit Du Lieu Ra LCD

void LCD_Send4Bit(unsigned char Data){

LCD_D4=Data & 0x01;

LCD_D5=(Data>>1)&1;

LCD_D6=(Data>>2)&1;

LCD_D7=(Data>>3)&1;

}

// Ham Gui 1 Lenh Cho LCD

void LCD_SendCommand(unsigned char command){

LCD_Send4Bit(command >>4);/* Gui 4 bit cao */

LCD_Enable();

LCD_Send4Bit(command); /* Gui 4 bit thap*/

LCD_Enable();

}

void LCD_Clear(){// Ham Xoa Man Hinh LCD

LCD_SendCommand(0x01);

delay_us(10);

Khoa Điện-ĐHCNHN



Trang 35



Môn học: VXL trong đo lường và điều khiển



GVHD: Tống Thị Lý



}

// Ham Khoi Tao LCD

void LCD_Init(){

LCD_Send4Bit(0x00);

delay_ms(20);

LCD_RS=0;

LCD_RW=0;

LCD_Send4Bit(0x03);

LCD_Enable();

delay_ms(5);

LCD_Enable();

delay_us(100);

LCD_Enable();

LCD_Send4Bit(0x02);

LCD_Enable();

LCD_SendCommand( 0x28 );

LCD_SendCommand( 0x0c);

LCD_SendCommand( 0x06 );

LCD_SendCommand(0x01);

}

void LCD_Gotoxy(unsigned char x, unsigned char y){

unsigned char address;

if(!y)address=(0x80+x);

else address=(0xc0+x);

delay_us(1000);

LCD_SendCommand(address);

delay_us(50);

}

Khoa Điện-ĐHCNHN



Trang 36



Môn học: VXL trong đo lường và điều khiển



GVHD: Tống Thị Lý



void LCD_PutChar(unsigned char Data){//Ham Gui 1 Ki Tu

LCD_RS=1;

LCD_SendCommand(Data);

LCD_RS=0 ;

}

void LCD_Puts(char *s){//Ham gui 1 chuoi ky tu

while (*s){

LCD_PutChar(*s);

s++;

}

}

void TempShow(unsigned char z){ //Chuyen doi hien thi

LCD_Puts("NHIET DO: ");

LCD_PutChar((z/100)+48);//Tram

LCD_PutChar((z%100/10)+48);//Chuc

LCD_PutChar((z%10)+48);//Don vi

LCD_Puts("'C");

}

/******************Ctr chinh**************************/

unsigned char temp;

void main(){

unsigned char adc_value;

unsigned char t;

RELAY_1=0;

RELAY_2=0;

RELAY_3=0;

//init

LCD_Init();//Khoi tao LCD

Khoa Điện-ĐHCNHN



Trang 37



Môn học: VXL trong đo lường và điều khiển



GVHD: Tống Thị Lý



delay_ms(200);

LCD_Gotoxy(2,0);

LCD_Puts("Chon che do!");

LCD_Gotoxy(0,1);

LCD_Puts("1.Auto");

LCD_Gotoxy(8,1);

LCD_Puts("2.Manual");



while(1)

{

if(Auto==0)

{

LCD_Clear();

LCD_Gotoxy(0,0);

LCD_Puts("Che do Auto");

delay_ms(1000);

LCD_Clear();

while(Manual!=0)

{

adc_value = ADC0804_Read();

t = adc_value * 1.961f + 0.5f;

LCD_Gotoxy(0,0);

ADC0804_Read(); //Doc nhiet do luu vao bien temp

TempShow(t); //Hien thi nhiet do

delay_ms(500);//0.5s doc mot lan



Khoa Điện-ĐHCNHN



Trang 38



Môn học: VXL trong đo lường và điều khiển



GVHD: Tống Thị Lý



if(t<20)

{

LCD_Gotoxy(1,2);

LCD_Puts("Thoi tiet:LANH ");

RELAY_1=0;

RELAY_2=1;

}

else if(t>30)

{

LCD_Gotoxy(1,2);

LCD_Puts("Thoi tiet:NONG ");

RELAY_1=1;

RELAY_2=0;

}

else

{

LCD_Gotoxy(1,2);

LCD_Puts(" ON HOA ");

RELAY_1=0;

RELAY_2=0;

}



Khoa Điện-ĐHCNHN



Trang 39



Môn học: VXL trong đo lường và điều khiển



GVHD: Tống Thị Lý



}

}

if(Manual==0)

{

LCD_Clear();

LCD_Gotoxy(0,0);

LCD_Puts("Che do bang tay");

delay_ms(1000);

LCD_Clear();

while(Auto!=0)

{

adc_value = ADC0804_Read();

t = adc_value * 1.961f + 0.5f;

LCD_Gotoxy(0,0);

ADC0804_Read(); //Doc nhiet do luu vao bien temp

TempShow(t); //Hien thi nhiet do

delay_ms(500);//0.5s doc mot lan

RELAY_3=1;

if(t<20)

{

LCD_Gotoxy(1,2);

LCD_Puts("Thoi tiet:LANH ");

}

else if(t>30)

{



Khoa Điện-ĐHCNHN



Trang 40



Môn học: VXL trong đo lường và điều khiển



GVHD: Tống Thị Lý



LCD_Gotoxy(1,2);

LCD_Puts("Thoi tiet:NONG ");

}

else

{

LCD_Gotoxy(1,2);

LCD_Puts(" ON HOA ");

}

}

}

}

}



4.3.Kết quả mơ phỏng,thiết kế mạch ngun lý.

Q trình mơ phỏng được thực hiện trên phần mềm proteus:



Khoa Điện-ĐHCNHN



Trang 41



Môn học: VXL trong đo lường và điều khiển



4.4. Kết quả mạch thực.



Khoa Điện-ĐHCNHN



Trang 42



GVHD: Tống Thị Lý



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

CHƯƠNG 4: XÂY DỰNG HỆ THỐNG

Tải bản đầy đủ ngay(0 tr)

×