Tải bản đầy đủ (.docx) (34 trang)

BÁO cáo THỰC HÀNH VI điều KHIỂN

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 (171.63 KB, 34 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

ĐẠI HỌC CÔNG NGHỆ TP.HCM

BÁO CÁO THỰC HÀNH VI
ĐIỀU KHIỂN
Họ và tên:

www.hutech.edu.vn


TRANG 2| BÁO CÁO THỰC HÀNH VI ĐIỀU KHIỂN

BÁO CÁO THỰC HÀNH VI ĐIỀU KHIỂN
Ấn bản 2018


MỤC LỤC

MỤC LỤC

III


4

BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

BÀI 1: ĐIỀU KHIỂN CÁC THIẾT
BỊ CƠ BẢN
Bài 1.3. Chương trình:


#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8Mhz)
void main()
{
Set_tris_c (0xFF);
while(TRUE)
{

output_c (0b00000001);
delay_ms(100);
output_c (0b00000010);
delay_ms(100);
output_c (0b00000100);
delay_ms(100);
output_c (0b00001000);
delay_ms(100);
output_c (0b00010000);
delay_ms(100);
output_c (0b00100000);
delay_ms(100);
output_c (0b01000000);
delay_ms(100);


BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

output_c (0b01000000);
delay_ms(100);
output_c (0b10000000);
delay_ms(100);

}

}
Bài 1.4. Chương trình:

Bài 1.5. Chương trình:
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8Mhz)
void main()
{
Set_tris_c (0xFF);
for (int i=0; i<30; i++)
{
output_c (0b00000001);
delay_ms(100);
output_c (0b00000010);
delay_ms(100);
output_c (0b00000100);
delay_ms(100);
output_c (0b00001000);
delay_ms(100);
output_c (0b00010000);
delay_ms(100);
output_c (0b00100000);

5


6


BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

delay_ms(100);
output_c (0b01000000);
delay_ms(100);
output_c (0b01000000);
delay_ms(100);
output_c (0b10000000);
delay_ms(100);
}

}

Bài 1.6. Chương trình:
#include<16F877A.h>
#fuses NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP
#use delay(clock=8000000)
int dem; //dem=995
//0000 0000
//0000 0001
//0000 0011
//0000 0111
//0000 1111
//1111 1111
//0111 1111
//0011 1111
//0001 1111
CONST unsigned char LED1[9]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
CONST unsigned char LED2[9]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
void sang_dan()



BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

{
for(int8 e=0;e<9;e++)
{
output_c(LED1[e]);
delay_ms(300);
}
}//sang dan
void tat_dan()
{
for(int8 l=0;l<9;l++)
{
output_c(LED2[l]);
delay_ms(300);
}
}//tat dan

void main()
{
while (dem <5)
{
sang_dan();
tat_dan();
dem=dem+1;

}//while
}//main


7


8

BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

Bài 1.7. Chương trình:

Bài 1.8. Sơ đồ mạch:

Chương trình:

Bài 1.9. Sơ đồ mạch:


BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

9

Chương trình:
#include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
const int8 ma_led[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
void main (void)
{
int8 i=0;
for(i=0; i<10; i++)

{ output_d(0xff);
output_b(ma_led[i]);
output_low(PIN_D3);
delay_ms(400);
}


10

BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

while (1);
}

Bài 1.11. Chương trình:

Bài 1.12. Chương trình:
#include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
const int8 led[4]={0x9f,0x24,0x0d,0x99};
const int8 le[4]={0xf7,0xfb,0xfd,0xfe};
void quet_led ()
{
for(int8 i=0; i<4;i++)
{
output_d(0xff);
output_b(led[i]);
output_d(le[i]);



BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

delay_ms(3);
}}
void main (void )
{
output_d(0xff);
while(true)
{ quet_led();
}
}

Bài 1.13. Chương trình:
#include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
void main (void)
{

while (1)
{
output_d(0xff);
output_b(0x49);
output_low(PIN_D3);
delay_ms(3);
output_d(0xff);
output_b(0xe1);
output_low(PIN_D2);
delay_ms(3);

output_d(0xff);
output_b(0x03);

11


12

BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

output_low(PIN_D1);
delay_ms(3);
output_d(0xff);
output_b(0x31);
output_low(PIN_D0);
delay_ms(3);
}

}
Bài 1.14. Chương trình:
#include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
const int8 stop[4]={0x49,0xe1,0x03,0x31};
const int8 star[4]={0x49,0xe1,0x11,0xf5};
const int8 le[4]={0xf7,0xfb,0xfd,0xfe};
void show_stop (void)
{
for(int8 i=0; i<4;i++)
{

output_d(0xff);
output_b(stop[i]);
output_d(le[i]);
delay_ms(3);
}}
void show_star (void)
{
for(int8 i=0; i<4;i++)
{


BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

output_d(0xff);
output_b(star[i]);
output_d(le[i]);
delay_ms(3);
}}
void main (void )
{
while(1)
{
output_d(0xff);

{ show_stop();
delay_ms(5);

output_d(0xff);
show_star();
delay_ms(5);


}
}
Bài 1.15. Chương trình:
#include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
const int8 ma_led[9]= {0x00, 0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff} ;
const int8 dem[8]={ 0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01} ;
void main (void)
{

13


14

BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

int8 i,j =0;
for (j=0; j<8; j++)
{
for (i=0; i<9; i++)
{
output_c(ma_led[i]);
delay_ms(300);
output_d(0xff);
output_low(PIN_D1);
output_b(dem[j]);
}

}
while (1);
}

Bài 1.16. Chương trình:
#include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
const int8 ma_led[9]= {0xff, 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00} ;
const int8 dem[8]={ 0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01} ;
void main (void)
{
int8 i,j =0;
for (j=0; j<8; j++)
{
for (i=0; i<9; i++)
{
output_c(ma_led[i]);


BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

delay_ms(300);
output_d(0xff);
output_low(PIN_D1);
output_b(dem[j]);
}
}
while (1);
}

Bài 1.17. Chương trình:
#include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
voi delay400ms()
{
setup_timer_1(T1_INTERNAL|T1_DIV_BY_2);
FOR (int8 i = 0;i < 10:i++)
{
set_timer1(25536);
while (get_timer1()>25536);
}
}
void main (void)
{
while (1)
{
output_c(0x01);
delay400ms();
output_c(0x00);
delay400ms();

15


16

BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

}

}

Bài 1.18. Chương trình:
#include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
#define D1 PIN_B4
#define D2 PIN_B5
#defile SW2 Pin_C1
void main()
{
int8 SW = 0;
while(true)
{
if(!input(sw1) = 1;
if(!input(sw2)= 2;
switch(sw)
{
case 1:
{
output_low(D5);
output_toggle(D6);
delay_ms(200);
break;
}
case 2:
{
output_low(D6);



BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

output_toggle(D2);
delay_ms(500);
break:
}
}
}
}
Bài 1.19. Chương trình:
#include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
#define D5 PIN_C4
#define D6 PIN_C5
#define SW1 Pin_B4
#define SW2 Pin_B5
void main(void)
{
int8 SW = 0;
while ( 1)
{
if(!input(SW1)) SW= 1;
if(!input(SW2)) SW= 2;
switch(SW)
{
case 1:
{
output_low(D5);
output_toggle(D6);

delay_ms(20);

17


18

BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

break;
}
case 2:
{
output_low(D6);
output_toggle(D5);
delay_ms(500);
break;
}
if(!input(SW2)==3) ;
{
output_toggle(D6);
output_toggle(D5);
delay_ms(5);
break;
}
}
}
}
Bài 1.20. Chương trình:
#include <16F877A.h>

#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
#include<lcd.c>
void main (void)
{
lcd_init();
lcd_gotoxy(1,1);
printf(lcd_putc,"Welcome to");


BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

delay_ms(3);
lcd_gotoxy(1,2);
printf(lcd_putc,"*****HUTECH*****");
delay_ms(3);
while(1);
}
Bài 1.21. Chương trình:
#include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
#include<lcd.c>
#define SW1 PIN_C3
#define SW2 PIN_C2
void main (void)
{
int8 SW=0;
lcd_init();
while(true)

{
if(!input(SW1)) SW=1;
if(!input(SW2)) SW=2;
switch(SW)

{
case 1 :
{

lcd_gotoxy(1,1);
printf(lcd_putc,"Welcome to");

19


20

BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

delay_ms(3);
break;
}
case 2 :
{

lcd_gotoxy(1,2);
printf(lcd_putc,"99");
delay_ms(3);
break;
}

}
}}

Bài 1.22. Chương trình:
#include <Bai2.2222.h>
#include <lcd.c>
# define SW1 PIN_C3
# define SW2 PIN_C4
void main()
{
lcd_init();
set_tris_d(0x00);

while(TRUE)
{if(!input(SW1))
{
lcd_gotoxy(1,1);
printf(lcd_putc,"xinchaocacban");


BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

}
if(!input(SW2))
(lcd_gotoxy(10,2);
printf(lcd_putc,"HUTECH");
delay_ms(300);}

}


}

Bài 1.23. Chương trình:
: #include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
#include <lcd.c>
#define SW1 PIN_C3
#define SW2 PIN_C4
unsigned set_val=0;
void main (void)
{
lcd_init();
while(1)
{
lcd_gotoxy(5,1);
printf(lcd_putc,"Set Value");
delay_ms(5);
lcd_gotoxy(8,2);
printf(lcd_putc,"%02u",set_val);

21


22

BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

if((!input(SW1))&&(set_val<200));
set_val=set_val+5;

delay_ms(50);

if((!input(SW2)) &&(set_val>0));
set_val=set_val-1;
delay_ms(50);
}
}

Bài 1.24. Chương trình:
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
#define SW1 PIN_C3
#define SW2 PIN_C4
#include <lcd.c>
void main()

{

int8 giay,phantramgiay;
phantramgiay=0;
lcd_init();
set_tris_d(0x00);
output_d(0x00);

while(TRUE)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"DONG HO DEM GIAY");



BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

if(!input(SW1))
while(1)
{
phantramgiay++;
if(phantramgiay==100)
{giay=giay+1; phantramgiay=0;}
if(giay==100)
giay=0;

delay_ms(5);
lcd_gotoxy(4,2);
printf(lcd_putc, "%2u:%2u", giay,phantramgiay );
delay_ms(3);

if(!input(SW2))
{ delay_ms(3000);

While(1)
{
if(!input(SW2))
{
for( int8 dem=0; dem<50; dem++)
{
if(!input(SW2))
delay_ms(10);
}
giay=0;
phantramgiay=0; phantramgiay--;

break;

23


24

BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

}
if(!input(SW1))
break;
}
}
}
}
}

Bài 1.25. Chương trình:
#include <16F877A.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=8M)
#include <lcd.c>
#define SW1 PIN_C3
#define SW2 PIN_C4

unsigned gio=0;
unsigned phut=0;
unsigned giay=0;


void main ()
{
lcd_init();

while(1)
{


BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN

lcd_gotoxy(4,1);
printf(lcd_putc,"DONG HO");
delay_ms(5);
lcd_gotoxy(6,2);
printf(lcd_putc,"%02u:%02u:%02u",gio,phut,giay);

if(!input(SW1))
delay_ms(10);
giay++;
if(giay == 99)
{
giay=0;phut++;
lcd_gotoxy(6,2);
printf(lcd_putc,"%02u:%02u:%02u",gio,phut,giay);
}
if(phut == 59)
{
phut=0;gio++;
lcd_gotoxy(6,2);
printf(lcd_putc,"%02u:%02u:%02u",gio,phut,giay);

}
while(!input(SW1))
{
delay_ms(500);
gio++;giay=0;
lcd_gotoxy(6,2);
printf(lcd_putc,"%02u:%02u:%02u",gio,phut,giay);

25


×