CHƢƠNG 4 : KHẢO SÁT VỀ GIAO TIẾP NGOẠI VI
4.4 BUTTON VÀ LED7 ĐOẠN
Viết chương trình đọc nội dung của các button, hiển thị giá trị tương ứng lên 2 LED 7 đoạn . Sử dụng 4 button (từ button 0 đến 3), đếm lên khi ấn button 0, đếm xuống khi ấn button 1, đếm lên chẵn khi ấn button 2 và đếm lên lẽ khi ấn button 3.
Đầu tiên xây dựng hệ thống nhúng:
Hình 4.4-1: Hệ thống nhúng xây dựng bằng SOPC Builder
Sau khi tạo hệ thống thành công hoàn tất, ta bắt đầu gán chân cho hệ thống và tiến hành nạp xuống board DE3.
Hình 4.4-2: Gán chân hệ thống
Sau khi nạp thành công hệ thống phần cứng xuống Board DE3, ta sử dụng phần mềm Nios II Software Builder Tool for Eclipse để viết chương trình ứng dụng bằng ngôn ngữ C cho hệ thống phần cứng đã thiết kế. Trở lại cửa sổ Altera SOPC Builder chọn Nios II Software Build Tools for Eclipse.
Chương trình ứng dụng sử dụng code mẫu có sẵn và đánh đoạn code bên dưới thay thế code có sẵn.
#include "system.h" #include "io.h" //#include "altera_avalon_pio_reg.h" int main() { int x,c,t,num=0; while(1) { int a=IORD(0x00041000,0); c=a&0xff; for(t=0;t<500;t++) { printf("%d \n",c); } if(c==15) { IOWR(0x00041010,0,0xff); printf("ok"); IOWR(0x00041020,0,0xff); printf("ok");} if(c==14)
{ for(num =0; num <100;num ++)
{for(t=0;t<100;t++) {IOWR(0x00041020,0,0x40); printf("hello 1 \n"); /// for(t=0;t<100;t++) {IOWR(0x00041010,0,0x40); printf("chao ban 1 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x79); printf("chao ban 2 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x24); printf("chao ban 3 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x30); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x19); printf("chao ban 5 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x12); printf("chao ban 6 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x02); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x78); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x00); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x10); printf("chao ban 4 \n"); }} ////////////////chuc 10///////////////
for(t=0;t<100;t++) {IOWR(0x00041020,0,0x79); printf("hello 2 \n"); /// for(t=0;t<100;t++) {IOWR(0x00041010,0,0x40); printf("chao ban 1 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x79); printf("chao ban 2 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x24); printf("chao ban 3 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x30); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x19); printf("chao ban 5 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x12); printf("chao ban 6 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x02); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x78); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x00); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x10); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041020,0,0x24); printf("hello 3 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x40); printf("chao ban 1 \n");}} break;
//////ket button 0////// }}
{ for(num =100; num > 0;num--)
{for(t=0;t<100;t++) {IOWR(0x00041020,0,0x24); printf("hello 3 \n");} for(t=0;t<100;t++) {IOWR(0x00041010,0,0x40); printf("chao ban 1 \n");} for(t=0;t<100;t++) {IOWR(0x00041020,0,0x79); printf("hello 3 \n"); for(t=0;t<100;t++) {IOWR(0x00041010,0,0x10); printf("chao ban 1 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x00); printf("chao ban 2 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x78); printf("chao ban 3 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x02); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x12); printf("chao ban 5 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x19); printf("chao ban 6 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x30); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x24); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x79); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x40); printf("chao ban 4 \n"); }}
for(t=0;t<100;t++){IOWR(0x00041020,0,0x40); printf("hello 3 \n");
/////////
for(t=0;t<100;t++) {IOWR(0x00041010,0,0x10); printf("chao ban 1 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x00); printf("chao ban 2 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x78); printf("chao ban 3 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x02); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x12); printf("chao ban 5 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x19); printf("chao ban 6 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x30); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x24); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x79); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x40); printf("chao ban 4 \n"); }} break;}
//////////////ket button 1////// }
if(c==11)
{ for(num =100; num > 0;num--)
{ for(t=0;t<100;t++) {IOWR(0x00041020,0,0x24); printf("hello 1 \n");
for(t=0;t<100;t++) {IOWR(0x00041010,0,0x40); printf("chao ban 4 \n");} } ///
for(t=0;t<100;t++) {IOWR(0x00041020,0,0x79); printf("hello 1 \n"); for(t=0;t<100;t++) {IOWR(0x00041010,0,0x00); printf("chao ban 2 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x02); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x19); printf("chao ban 6 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x24); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x40); printf("chao ban 4 \n"); }} for(t=0;t<100;t++) {IOWR(0x00041020,0,0x40); printf("hello 1 \n"); for(t=0;t<100;t++) {IOWR(0x00041010,0,0x00); printf("chao ban 2 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x02); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x19); printf("chao ban 6 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x24); printf("chao ban 4 \n"); }
for(t=0;t<100;t++) {IOWR(0x00041010,0,0x40); printf("chao ban 4 \n"); }} break;}
//////////////ket button 2////// }
if(c==7)
{ for(num =100; num > 0;num--)
{ for(t=0;t<100;t++) {IOWR(0x00041020,0,0x40); printf("hello 1 \n"); /// for(t=0;t<100;t++) {IOWR(0x00041010,0,0x79); printf("chao ban 2 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x30); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x12); printf("chao ban 6 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x78); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x10); printf("chao ban 4 \n"); }} for(t=0;t<100;t++) {IOWR(0x00041020,0,0x79); printf("hello 1 \n"); /// for(t=0;t<100;t++) {IOWR(0x00041010,0,0x79); printf("chao ban 2 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x30); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x12); printf("chao ban 6 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x78); printf("chao ban 4 \n"); } for(t=0;t<100;t++) {IOWR(0x00041010,0,0x10); printf("chao ban 4 \n"); }} break; }
//////////////ket button 3////// }
//////////////ket toan phan/////////// }}
Để kiểm tra kết quả sau khi chạy chương trình thành công, ta ấn các Button để LED 7 đoạn chạy đếm theo như code đã lập trình.
CHƢƠNG 5: ỨNG DỤNG ĐỌC DỮ LIỆU TỪ SD CARD 5.1 GIỚI THIỆU SD CARD