Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

Nhóm: Đỗ Thị Anh Thư

Phạm Hoàng Dũng


Võ Quốc Nhựt
Vũ Trần Chí Thành
BÁO CÁO THỰC HÀNH BÀI 1
Bài 1: Viết chương trình 1 led sáng dịch chuyển trong 8 led từ trái sang phải

Code:
#include <baithuchanh1.h>
int8 mang[9] = {0x00,0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
void main()
{
output_C(mang[0]);
while(TRUE)
{
for( int8 i=9;i>=1;i--)
{
output_C(mang[i]);
delay_ms(500);
}
}
}
Nhận xét: Đèn chạy đều, ổn định, không có nhiễu hay gián đoạn.
Hình ảnh chạy thực:

Bài 2: Viết chương trình 1 led sáng dịch chuyển trong 8 led từ phải sang trái
Code:
#include <baithuchanh1.h>
int16 mang[9]={0x00,0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
void main()
{
output_C(mang[0]);
while(TRUE)
{
for(int i=0; i<=8;i++)
{
output_C(mang[i]);
delay_ms(500);
}
}
}
Nhận xét: Đèn chạy đều, ổn định, không có nhiễu hay gián đoạn.
Hình ảnh chạy thực:

Bài 3: Viết chương trình 8 led sáng dần từ trái sang phải
Bài 4: Viết chương trình 8 led sáng dần từ phải sang trái
Code:
#include <baithuchanh1.h>
#fuses hs
#use delay (clock=8M)
signed int32 N,M;
unsigned int32 LED;
void led1() //8 led sang dan trai sang phai
{
for (N = 8; N >=0 ;N--)
{
led = 0xff >> N;
output_C(LED);
delay_ms(500);
}
}
void led2() //8 led sang dan phai sang trai
{
for (N = 8; N >=0 ;N--)
{
led = 0xff << N;
output_C(LED);
delay_ms(500);
}
}
void main()
{
set_tris_C(0);
while(TRUE)
{
LED1();
LED2();
}
}
Nhận xét: Đèn chạy đều, không bị gián đoạn và không có nhiễu. Chạy nhanh hơn mạch 1
led
Hình ảnh chạy thực:
Bài 5: Viết chương trình 8 led sáng lan dần, sau đó tắt dần từ trái sang phải
Bài 6: Viết chương trình 8 led sáng lan dần, sau đó tắt dần từ phải sang trái

Code:
#include <baithuchanh1.h>
#fuses hs
#use delay (clock=8M)
signed int32 N,M;
unsigned int32 LED;
void led1()
{
for (N = 8; N >=0 ;N--)
{
led = 0xff >> N;
output_C(LED);
delay_ms(500);
}
}
void led2()
{
for (N = 8; N >=0 ;N--)
{
led = 0xff << N;
output_C(LED);
delay_ms(500);
}
}
void led3()
{
for ( N = 0 ; N <= 8 ; N++)
{
led = 0xff >> N;
output_C(LED);
delay_ms(500);
}
}
void led4()
{
for ( N = 0 ; N <= 8 ; N++)
{
led = 0xff << N;
output_C(LED);
delay_ms(500);
}
}
void main()
{
set_tris_C(0);
while(TRUE)
{
LED1();
LED2();
LED3();
LED4();
}
}
Nhận xét: Đèn sáng đều, tốc độ ổn định. Lỗi vòng chạy đầu, chạy sáng đủ 8 led tắt sau
đó chạy bình thường
Hình ảnh chạy thực:
Bài 7: Viết chương trình 1 led tối dịch chuyển trong 8 led sáng từ trái sang phải

Code:
#include <baithuchanh1.h>
#include <baithuchanh1.h>
const int tatdan[8] = { 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F };
void main()
{
while (1)
{
for (int j = 7; j >= 0; j--)
{
output_c(tatdan[j]);
delay_ms(500);
}
}
}
Nhận xét: Đèn chạy ổn định, không có vòng lặp.
Hình ảnh chạy thực:

Bài 8: Viết chương trình 1 led tối dịch chuyển trong 8 led sáng từ phải sang trái
Code:
#include <baithuchanh1.h>
const int tatdan[8] = { 0x7F, 0xBF, 0xDF, 0xEF, 0xF7, 0xFB, 0xFD, 0xFE };
void main()
{
for (signed int j = 7; j >= 0; j--)
{
output_c(tatdan[j]);
delay_ms(500);
}
}
Nhận xét: Led chạy ổn định, không có vòng lặp
Hình ảnh chạy thực:

Bài 9: Viết chương trình 1 led sáng dịch chuyển từ trái sang phải và giữ lại đến khi
đủ 8 led sáng
Bài 10: Viết chương trình 1 led sáng dịch chuyển từ phải sang trái và giữ lại đến khi
đủ 8 led sáng
Code:
#include <baithuchanh1.h>
#fuses hs
#use delay (clock=8M)
signed int32 N,M;
unsigned int32 LED;

void led1() //led dich chuyen roi tat dan tu phai sang trai
{
for (N=8; N>=0; N--)
{
for (M=8; M>=8-N; M--)
{
led = (0x80 >> M) | (0xff << N );
output_C(LED);
delay_ms(500);
}
}
}

void led2() //led dich chuyen roi tat dan tu trai sang phai
{
for (N=8; N>=0; N--)
{
for (M=8; M>=8-N; M--)
{
led = (0xff >> N) | (0x01 << M );
output_C(LED);
delay_ms(500);
}
}
}
void main()
{
set_tris_C(0);
while(TRUE)
{
LED1();
LED2();
}
}
Nhận xét: Đèn chạy đều, ổn định, không có hiện tượng nhiễu hay gián đoạn
Hình ảnh chạy thực:

You might also like