Tải bản đầy đủ (.doc) (8 trang)

10 chuong8 luudogiaithuat chuong trinh

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 (86.62 KB, 8 trang )

MẠCH QUANG BÁO HIỂN THỊ LED MA TRẬN

CHƯƠNG 8

LƯU ĐỒ GIẢI THUẬT VÀ
CHƯƠNG TRÌNH HOẠT ĐỘNG
Ý TƯỞNG THIẾT KẾ PHẦN MỀM:
 Bảng quang báo chạy text với font tiếng Việt và tiếng Anh, chạy từ trái sang
phải, từ phải sang trái, chạy từ trên xuống dưới, từ dưới lên trên.
 Tạo font chữ và giải mã.
 Vi điều khiển lưu vào vùng nhớ trong ROM sau đó vi điều khiển lấy dữ liệu
điều khiển hiển thị ra màn hình led ma trận thông qua mạch công suất và mạch hiển
thị.
8.1.

LƯU ĐỒ GIẢI THUẬT.

1 .Quy trình hoạt động của hệ thống:

Hình 8.1 Quy trình hoạt động của hệ thống

- 54 -


MẠCH QUANG BÁO HIỂN THỊ LED MA TRẬN

2.Lưu đồ chương trình chính:

Hình 8.2: Lưu đồ chương trình chính.

3. Lưu đồ chương trình: chạy_chữ.


- 55 -


MẠCH QUANG BÁO HIỂN THỊ LED MA TRẬN

Hình 8.5: Lưu đồ chương trình chạy_chữ.

- 56 -


MẠCH QUANG BÁO HIỂN THỊ LED MA TRẬN

8.2. CHƯƠNG TRÌNH HOẠT ĐỘNG.
#include <16f877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,
NOLVP, NOCPD, NOWRT
#use delay(clock=12000000)
//khai bao mang
int const
quet[]={0b11111110,0b11111101,0b11111011,0b11110111,0b11101111,0b11011111
,0b10111111,0b01111111};
int const mang0[]={0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,128,190,72,72,72,72,136,
0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,156,162,130,186,34,28,
0,0,0,0,0,145,83,85,89,81,145,
0,0,0,0,0,145,81,95,81,81,145,
0,0,0,0,152,164,132,152,160,36,24,
0,0,0,0,0,2,2,2,2,2,94,

0,0,0,0,0,145,83,85,89,81,145,
0,0,0,0,0,0,0,0
};
int const mang1[]={0,0,0,0,0,0,0,0,
0,128,142,82,87,82,82,142,
0,0,0,17,10,251,36,36,36,36,35,
0,0,0,0,206,81,65,225,65,81,206,
0,0,0,0,0,40,40,232,40,37,34,
0,0,0,0,0,147,148,144,151,148,99,
0,0,0,0,0,147,180,212,148,148,147,
0,0,0,0,232,136,136,136,136,133,130,
0,0,0,0,0,145,83,85,89,81,145,
0,0,0,0,0,195,36,32,39,36,203,
0,0,0,0,0,0,0,0
};

- 57 -


MẠCH QUANG BÁO HIỂN THỊ LED MA TRẬN

int const mang2[]={0,0,0,0,0,0,0,0,
5,10,131,68,68,196,68,67,
0,0,0,0,0,68,76,84,100,68,68,
0,0,0,0,243,20,20,125,20,20,243,
0,0,0,0,0,122,138,139,138,138,122,
0,0,0,0,0,162,162,156,136,136,136,
0,0,0,0,0,28,34,2,58,34,28,
0,0,0,0,139,136,136,248,136,136,136,
0,0,0,0,0,227,20,16,23,20,227,

0,0,0,0,0,137,138,248,136,138,137,
0,0,0,0,0,0,0,0
};
int const mang3[]={0,0,0,0,0,0,0,0,
4,2,137,154,170,203,138,138,
0,0,0,0,0,78,81,193,89,81,78,
0,0,0,0,62,9,9,9,9,9,8,
0,0,0,0,0,0,2,0,0,2,0 ,
0,0,0,0,0,151,176,211,144,144,151,
0,0,0,0,0,78,209,81,95,81,81,
0,0,0,0,0,4,0,0,0,4,0,
0,0,0,0,0,56,69,5,5,69,56,
0,0,0,0,0,242,66,66,66,66,66,
0,0,0,0,0,0,0,0
};
int const mang4[]={0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,64,160,234,42,235,42,42,234,64,
0,0,0,28,162,162,162,162,162,28,
0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,124,16,16,16,16,16,
0,0,0,0,0,20,20,245,22,20,20,
0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,34,162,190,162,162,162,
- 58 -


MẠCH QUANG BÁO HIỂN THỊ LED MA TRẬN

0,0,0,0,0,157,162,162,190,162,162,

0,0,0,0,0,0,0,0
};
int const mang5[]={0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,29,36,36,28,4,5,
0,0,0,0,7,8,0,7,8,8,7,
0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,81,81,95,81,81,81,
0,0,0,0,0,1,1,1,1,1,1 ,
0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,147,180,212,151,148,148 ,
0,0,0,0,0,8,13,10,8,8,8 ,
0,0,0,0,0,0,0,0
};
void chot0()
{
output_high(pin_c0);
output_low(pin_c0);
}
void chot1()
{
output_high(pin_c1);
output_low(pin_c1);
}
void chot2()
{
output_high(pin_c2);
output_low(pin_c2);
}
void chot3()

{
- 59 -


MẠCH QUANG BÁO HIỂN THỊ LED MA TRẬN

output_high(pin_c3);
output_low(pin_c3);
}
void chot4()
{
output_high(pin_c4);
output_low(pin_c4);
}
void chot5()
{
output_high(pin_c5);
output_low(pin_c5);
}
void main(void)
{
int m,i,a;
set_tris_b(0x00);
set_tris_c(0x00);
set_tris_d(0x00);
output_b(0x00);
output_c(0x00);
output_d(0x00);

while(1)

{
for(m=0;m<=20;m++)
{
for(i=0;i<=7;i++)
{
output_b(mang0[a+i]);
chot0();
output_b(mang1[a+i]);
- 60 -


MẠCH QUANG BÁO HIỂN THỊ LED MA TRẬN

chot1();
output_b(mang2[a+i]);
chot2();
output_b(mang3[a+i]);
chot3();
output_b(mang4[a+i]);
chot4();
output_b(mang5[a+i]);
chot5();
output_d(quet[i]);
delay_ms(2);
output_b(0x00);
chot0();
chot1();
chot2();
chot3();
chot4();

chot5();
output_d(0xff);
delay_us(2);
}
}
a++;
if(a==104)
a=0;
}
}

- 61 -



×