Professional Documents
Culture Documents
Lớp :19DOTD2
MSSV :1911255726
www.hutech.edu.vn
TRANG 1|🢖 THỰC HÀNH XỬ LÝ TÍN HIỆU SỐ
Ấn bản 2018
TRANG 1 > THỰC HÀNH XỬ LÝ TÍN HIỆU SỐ
MỤC LỤC
MỤC LỤC 1
#include <16F877A.h>
#use delay(clock=8M)
while (1)
Output_c(0x0f);delay_ms(1000);
Output_c(0x00);delay_ms(1000);
}
3 BÀI 2: TIMER VÀ NGẮT
#include <16F877A.h>
#use delay(clock=8M)
While (1)
Output_c(0x00);
Delay_ms(300);
Output_c(0x01);
Delay_ms(300);
Output_c(0x03);
Delay_ms(300);
Output_c(0x07);
Delay_ms(300);
Output_c(0x0F);
Delay_ms(300);
Output_c(0x1F);
Delay_ms(300);
Output_c(0x3F);
Delay_ms(300);
Output_c(0x7F);
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 4
Delay_ms(300);
Output_c(0xFF);
Delay_ms(300);
#include <16F877A.h>
#use delay(clock=8M)
unsigned int16 Y;
{for(y=0;y<3;y++){
Output_c(0x00);
Delay_ms(300);
Output_c(0x01);
Delay_ms(300);
Output_c(0x03);
Delay_ms(300);
Output_c(0x07);
Delay_ms(300);
Output_c(0x0F);
5 BÀI 2: TIMER VÀ NGẮT
Delay_ms(300);
Output_c(0x1F);
Delay_ms(300);
Output_c(0x3F);
Delay_ms(300);
Output_c(0x7F);
Delay_ms(300);
Output_c(0xFF);
Delay_ms(300);
#include <16F877A.h>
#use delay(clock=8M)
{for(int16 y=0;y<30;y++)
Output_c(0x00);
Delay_ms(300);
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 6
Output_c(0x01);
Delay_ms(300);
Output_c(0x03);
Delay_ms(300);
Output_c(0x07);
Delay_ms(300);
Output_c(0x0F);
Delay_ms(300);
Output_c(0x1F);
Delay_ms(300);
Output_c(0x3F);
Delay_ms(300);
Output_c(0x7F);
Delay_ms(300);
Output_c(0xFF);
Delay_ms(300);
for(int16 i=0;i<257;i++)
output_c(0x7f) ; delay_ms(300);
output_c(0x3f) ; delay_ms(300);
output_c(0x1f); delay_ms(300);
output_c(0x0f); delay_ms(300);
output_c(0x07); delay_ms(300);
7 BÀI 2: TIMER VÀ NGẮT
output_c(0x03); delay_ms(300);
output_c(0x01); delay_ms(300);
output_c(0x00); delay_ms(300);
}}
#include <16F877A.h>
#use delay(clock=8M)
For(int K=0;K<40:K++)
{for(int16 y=0;y<30;y++)
Output_c(0x00);
Delay_ms(300);
Output_c(0x01);
Delay_ms(300);
Output_c(0x03);
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 8
Delay_ms(300);
Output_c(0x07);
Delay_ms(300);
Output_c(0x0F);
Delay_ms(300);
Output_c(0x1F);
Delay_ms(300);
Output_c(0x3F);
Delay_ms(300);
Output_c(0x7F);
Delay_ms(300);
Output_c(0xFF);
Delay_ms(300);
for(int16 i=0;i<257;i++)
output_c(0x7f) ; delay_ms(300);
output_c(0x3f) ; delay_ms(300);
output_c(0x1f); delay_ms(300);
output_c(0x0f); delay_ms(300);
output_c(0x07); delay_ms(300);
output_c(0x03); delay_ms(300);
output_c(0x01); delay_ms(300);
output_c(0x00); delay_ms(300);
9 BÀI 2: TIMER VÀ NGẮT
}}}
Chương trình:
#include <16F877A.h>
#use delay(clock=8M)
For(int K=0;K<40:K++)
{for(int16 y=0;y<30;y++)
Output_c(0x00);
Delay_ms(300);
Output_c(0x01);
Delay_ms(300);
Output_c(0x03);
Delay_ms(300);
Output_c(0x07);
Delay_ms(300);
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 10
Output_c(0x0F);
Delay_ms(300);
Output_c(0x1F);
Delay_ms(300);
Output_c(0x3F);
Delay_ms(300);
Output_c(0x7F);
Delay_ms(300);
Output_c(0xFF);
Delay_ms(300);
for(int16 i=0;i<257;i++)
output_c(0x7f) ; delay_ms(300);
output_c(0xc0) ; delay_ms(300);
output_c(0x1f); delay_ms(300);
output_c(0xf0); delay_ms(300);
output_c(0x07); delay_ms(300);
output_c(0xfc); delay_ms(300);
output_c(0x01); delay_ms(300);
output_c(0xff); delay_ms(300);
}}}
11 BÀI 2: TIMER VÀ NGẮT
Chương trình:
#include <16F877A.h>
#use delay(clock=8M)
For(int K=0;K<40:K++)
{for(int16 y=0;y<30;y++)
Output_c(0x00);
Delay_ms(300);
Output_c(0x01);
Delay_ms(300);
Output_c(0x03);
Delay_ms(300);
Output_c(0x07);
Delay_ms(300);
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 12
Output_c(0x0F);
Delay_ms(300);
Output_c(0x1F);
Delay_ms(300);
Output_c(0x3F);
Delay_ms(300);
Output_c(0x7F);
Delay_ms(300);
Output_c(0xFF);
Delay_ms(300);
} }
for(int16 i=0;i<257;i++)
output_c(0x7f) ; delay_ms(300);
output_c(0xc0) ; delay_ms(300);
output_c(0x1f); delay_ms(300);
output_c(0xf0); delay_ms(300);
output_c(0x07); delay_ms(300);
output_c(0xfc); delay_ms(300);
output_c(0x01); delay_ms(300);
output_c(0xff); delay_ms(300);
}}}
#include <16F877A.h>
#use delay(clock=8M)
void main()
output_b(led[i]);
delay_ms(400);
output_low(PIN_D3);
#include <16F877A.h>
#use delay(clock=8M)
void main()
while(TRUE)
{
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 14
output_b(led[y]);
delay_ms(3);
output_d(leds[y]);
#include <16F877A.h>
#use delay(clock=8M)
void main()
while(TRUE)
output_b(led[y]);
delay_ms(3);
output_d(leds[y]);
#include <16F877A.h>
15 BÀI 2: TIMER VÀ NGẮT
#use delay(clock=8000000)
void quet_led()
output_d(0xff);
output_b(star[i]);
output_d(dc[i]);
delay_ms(3);
void main()
quet_led();
while (1)
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 16
output_d(0xff);
output_b(stop[i]);
output_d(dc[i]);
delay_ms(3);
#include <16F877A.h>
#use delay(clock=8M)
void main()
{
17 BÀI 2: TIMER VÀ NGẮT
output_b(led[i]);
output_low(PIN_D0);
output_c(0x01) ; delay_ms(300);
output_c(0x00);
output_c(0x02) ; delay_ms(300);
output_c(0x00);
output_c(0x04) ; delay_ms(300);
output_c(0x00);
output_c(0x04) ; delay_ms(300);
output_c(0x00);
output_c(0x08) ; delay_ms(300);
output_c(0x00);
output_c(0x10) ; delay_ms(300);
output_c(0x00);
output_c(0x20) ; delay_ms(300);
output_c(0x00);
output_c(0x40) ; delay_ms(300);
output_c(0x00);
output_c(0x80) ; delay_ms(300);
output_c(0x00);
#include <16F877A.h>
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 18
#use delay(clock=8M)
{ // 0 1 2 3 4 5 6 7 8 9
output_c(led[i]);
output_d(0xff);
output_b(maled[chuc]);
output_d(0xfd);
delay_ms(2);
output_d(0xff);
output_b(maled[dvi]);
output_d(0xfe);
19 BÀI 2: TIMER VÀ NGẮT
delay_ms(2);
#include <16F877A.h>
#use delay(clock=8000000)
#define D5 PIN_C4
#define D6 PIN_C5
void main()
while (1)
if(!input(SW1))
while (1)
output_high(D6);
delay_ms(200);
output_low(D6);
delay_ms(200);
if(!input(SW2)) break;
}
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 20
if(!input(SW2))
while (1)
output_high(D5);
delay_ms(500);
output_low(D5);
delay_ms(500);
if(!input(SW1)) break;
}}}
#include <16F877A.h>
#use delay(clock=8000000)
#define D5 PIN_C4
#define D6 PIN_C5
int8 x;
void main()
x=0;
while(1)
{ output_c(0x00);
if(!input(SW1))
{output_low(D5);
while(1)
{ output_toggle(D6);
delay_ms(200);
if(!input(SW2))
x=x+1;
if(x>3)
{output_low(D6);
while(1)
{ output_toggle(D5);
delay_ms(20);
if(!input(SW1))
{ x=0;
output_low(D5);
break;}
}
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 22
#include <16F877A.h>
#use delay(clock=8M)
#include <lcd.c>
void main ()
int8 sodem;
lcd_init();
set_tris_d(0x00);
output_d(0x00);
sodem=0;
lcd_gotoxy(1,1);
printf(lcd_putc,"Counter:");
while(true)
lcd_gotoxy(10,2);
printf(lcd_putc,"%02u",sodem);
delay_ms(300);
sodem++;
if(sodem == 100)
break;
}
23 BÀI 2: TIMER VÀ NGẮT
#include <16F877A.h>
#use delay(clock=8000000)
#include <lcd.c>
void main()
lcd_init();
set_tris_d(0x00);
output_d(0x00);
while(TRUE)
if(!input(SW1))
{lcd_gotoxy(1,1);
if(!input(SW2))
{lcd_gotoxy(10,2);
printf(lcd_putc,"HUTECH");
}
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 24
#include <16F877A.h>
#use delay(clock=8000000)
#include <lcd.c>
int8 set_val=0;
void main()
lcd_init();
set_tris_d(0x00);
output_d(0x00);
lcd_gotoxy(5,1);
printf(lcd_putc,"set_value");
while(TRUE)
delay_ms(200);
if(!input(sw1))
if(set_val <200)
{set_val=set_val+5;
lcd_gotoxy(8,2);
printf(lcd_putc,"%u",set_val);
25 BÀI 2: TIMER VÀ NGẮT
if(!input(sw2))
if(set_val >0)
{set_val=set_val-1;
lcd_gotoxy(8,2);
printf(lcd_putc,"%u",set_val);
#include <16F877A.h>
#use delay(clock=8000000)
#include <lcd.c>
int8 a,giay,phantramgiay;
void main()
{ phantramgiay = 0;
giay = 0;
lcd_init();
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 26
set_tris_d(0x00);
output_d(0x00);
lcd_gotoxy(1,1);
while(1)
if(!input(sw1))
a = 0;
if(!input(sw2))
a = 1;
if(a==0)
{ delay_ms(10);
phantramgiay++;
if( phantramgiay==100)
{ giay++;
phantramgiay=0;
lcd_gotoxy(4,2);
printf(lcd_putc,"%02d:%02d",giay,phantramgiay);
if(!input(sw2))
a=1;
delay_ms(5000);
27 BÀI 2: TIMER VÀ NGẮT
if (!input(sw2))
{ a=1;
phantramgiay=0;
giay=0;
lcd_gotoxy(4,2);
printf(lcd_putc,"%02d:%02d",giay,phantramgiay);
#include <16F877A.h>
#use delay(clock=8000000)
#include <lcd.c>
int8 gio,phut,giay;
void main()
{ lcd_init();
set_tris_d(0x00);
output_d(0x00);
while(true)
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 28
{for( gio=0;gio<24;gio++)
{ for( phut=0;phut<60;phut++)
{ for(giay=0; giay<60;giay++)
{ lcd_gotoxy(4,1);
printf(lcd_putc,"DONG HO");
lcd_gotoxy(6,2);
printf(lcd_putc,"%02d:%02d:%02d",gio,phut,giay);
delay_ms(1000);
if(!input(sw1))
{gio++;}
if(!input(sw2))
{phut++;}
giay=0;
phut=0;
gio=0;
}
29 BÀI 2: TIMER VÀ NGẮT
Setup_timer_0(RTCC_DIV_64|RTCC_INTERNAL)f_osc=8MHz
• f=f_osc/4=8/4=2MHz
• T=1/f=0,5us
• RTCC_DIV_64=64*0,5=32us
Setup_timer_1(T1_INTERNAL| T1_DIV_BY_1)f_osc=8MHz
• f=f_osc/4=8/4=2MHz
• T=1/f=0,5us
• T1_DIV_BY_1=1*0,5=0,5us
Chương trình:
BÀI 1: ĐIỀU KHIỂN CÁC THIẾT BỊ CƠ BẢN 30
31 BÀI 2: TIMER VÀ NGẮT