CHƢƠNG 4 : KHẢO SÁT VỀ GIAO TIẾP NGOẠI VI
4.2 SWITCH VÀ LED7 ĐOẠN
Viết chương trình đọc nội dung của các switch, hiển thị giá trị tương ứng lên LED 7 đoạn, sử dụng 4 Switch (từ Switch 0 đến Switch 3).
Trước tiên xây dựng hệ thống nhúng:
Sau khi tạo hệ thống thành công, ta bắt đầu gán chân cho hệ thống như Hình 4.2-2.
Hình 4.2-2: Gán chân cho hệ thống
Hình 4.2-3: Biên dịch thành cô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.
Hình 4.2-4: Nạp xuống board thành công
Sau đó, tạo project mới vào File/New/Nios II Application and BSP form temple. 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" int giai_ma(int a); int main()
{ int x;
printf("Hong Thi Hanh _ 1117967.\n"); printf("Pham Thi Hai Quyen _ 1118007.\n"); while(1)
{ x = IORD(0x00041010,0); IOWR(0x00041010,0,x);
IOWR(0x00041000,0,giai_ma(x)); } }
// day la module giai ma bin ra led 7 doan int giai_ma(int a)
{ int led; switch (a)
{ case 0 : led = 0x40; break; //0 case 1 : led = 0x79; break; //1 case 2 : led = 0x24; break; //2 case 3 : led = 0x30; break; //3 case 4 : led = 0x19; break; //4 case 5 : led = 0x12; break; //5 case 6 : led = 0x02; break; //6 case 7 : led = 0x78; break; //7 case 8 : led = 0x00; break; //8 case 9 : led = 0x10; break; //9
default : led = 0xff; break;} // khong sang return led; }
Sau khi đánh code xong ta biên dịch và chạy chương trình.
Hình 4.2-6: Biên dịch chương trình thành công
Để kiểm tra kết quả sau khi chạy chương trình, ta bật các Switch đểhiển thị giá trị tương ứng lên LED 7 đoạn như code đã lập trình. Ví dụ, khi bật Switch 1 và Switch 2 tương ứng với mã hex của LED 7 đoạn thì hiển thị số 6 như Hình 4.2-7.