Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 62

ĐỀ BÀI KIỂM TRA THƯỜNG XUYÊN SỐ 1 (38,39,40)

Câu 1: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 8 SW. Viết chương trình ứng dụng điều khiển LED
sáng khi SW tương ứng = 0, LED tắt khi SW = 1.

#include "xparameters.h"
#include "xgpio.h"

#define SW_LED XPAR_AXI_GPIO_0_DEVICE_ID

XGpio SW,LED;

int main()
{
XGpio_Initialize(&SW,SW_LED);
XGpio_Initialize(&LED,SW_LED);
XGpio_SetDataDirection(&SW,1,0xFF);
XGpio_SetDataDirection(&LED,2,0x00);
while(1)
{
if((XGpio_DiscreteRead(&SW,1))==1)
XGpio_DiscreteWrite(&LED,2,0xFF);
else if((XGpio_DiscreteRead(&SW,1))==2)
XGpio_DiscreteWrite(&LED,2,0x00);

}
return 0;
}
Câu 2: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng điều khiển LED
sáng khi BTN tương ứng được nhấn, LED tắt khi nhả BTN.

#include"xgpio.h"
#include"xparameters.h"
#define BTN_LED XPAR_AXI_GPIO_0_DEVICE_ID
XGpio LED,BTN;

int main()
{
int gt_btn;
XGpio_Initialize(&BTN,BTN_LED);
XGpio_Initialize(&LED,BTN_LED);
XGpio_SetDataDirection(&BTN,2,0xff);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
gt_btn=XGpio_DiscreteRead(&BTN,2);
// BTNC
if(gt_btn==1)
{
XGpio_DiscreteWrite(&LED,1,gt_btn);
}
// BTND
elseif (gt_btn==2)
{
XGpio_DiscreteWrite(&LED,1,gt_btn);
}
// BTNL
elseif (gt_btn==4)
{
XGpio_DiscreteWrite(&LED,1,gt_btn);
}
// BTNR
elseif (gt_btn==8)
{
XGpio_DiscreteWrite(&LED,1,gt_btn);
}
// BTNU
elseif (gt_btn==16)
{
XGpio_DiscreteWrite(&LED,1,gt_btn);
}
elseif (gt_btn==0)
XGpio_DiscreteWrite(&LED,1,gt_btn);
}
return 0;
}
Câu 3: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 8 SW. Viết chương trình ứng dụng điều khiển LED1
sáng nhấp nháy 7 lần rồi tắt khi SW1 = 1, LED tắt trong các trường hợp còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define SW_LED XPAR_AXI_GPIO_0_DEVICE_ID

XGpio SW,LED;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,2,0b00000010); \\ LED1 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,2,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
XGpio_Initialize(&SW,SW_LED);
XGpio_Initialize(&LED,SW_LED);
XGpio_SetDataDirection(&SW,1,0xFF);
XGpio_SetDataDirection(&LED,2,0x00);
while(1)
{
if((XGpio_DiscreteRead(&SW,1))==2)
nhay(7);
else
XGpio_DiscreteWrite(&LED,2,0x00);
}
return 0;
}
Câu 4: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng điều khiển LED1
sáng nhấp nháy 5 lần rồi tắt khi BTNC được nhấn, LED tắt trong các trường hợp
còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define BTN_LED XPAR_AXI_GPIO_0_DEVICE_ID

XGpio BTN,LED;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,2, 0b00000010); \\ LED1 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,2,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
XGpio_Initialize(&BTN,BTN_LED);
XGpio_Initialize(&LED,BTN_LED);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,2,0x00);
while(1)
{
if((XGpio_DiscreteRead(&BTN,1))==1)
nhay(5);
else
XGpio_DiscreteWrite(&LED,2,0x00);

}
return 0;
}
Câu 5: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng điều khiển LED2
sáng nhấp nháy 10 lần rồi tắt khi BTNL được nhấn, LED tắt trong các trường hợp
còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define BTN_LED XPAR_AXI_GPIO_0_DEVICE_ID

XGpio BTN,LED;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,2, 0b00000100); \\ LED2 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,2,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
XGpio_Initialize(&BTN,BTN_LED);
XGpio_Initialize(&LED,BTN_LED);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,2,0x00);
while(1)
{
if((XGpio_DiscreteRead(&BTN,1))==4)
nhay(10);
else
XGpio_DiscreteWrite(&LED,2,0x00);

}
return 0;
}
Câu 6: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng điều khiển LED4
sáng nhấp nháy 10 lần rồi tắt khi BTNR được nhấn, LED tắt trong các trường hợp
còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define BTN_LED XPAR_AXI_GPIO_0_DEVICE_ID

XGpio BTN,LED;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,2, 0b00010000); \\ LED4 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,2,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
XGpio_Initialize(&BTN,BTN_LED);
XGpio_Initialize(&LED,BTN_LED);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,2,0x00);
while(1)
{
if((XGpio_DiscreteRead(&BTN,1))==8)
nhay(10);
else
XGpio_DiscreteWrite(&LED,2,0x00);

}
return 0;
}
Câu 7: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng điều khiển LED5
sáng nhấp nháy 10 lần rồi tắt khi BTNU được nhấn, LED tắt trong các trường hợp
còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define BTN_LED XPAR_AXI_GPIO_0_DEVICE_ID

XGpio BTN,LED;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,2, 0b00100000); \\ LED5 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,2,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
XGpio_Initialize(&BTN,BTN_LED);
XGpio_Initialize(&LED,BTN_LED);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,2,0x00);
while(1)
{
if((XGpio_DiscreteRead(&BTN,1))==16)
nhay(10);
else
XGpio_DiscreteWrite(&LED,2,0x00);

}
return 0;
}
Câu 8: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng điều khiển LED2
sáng nhấp nháy 8 lần rồi tắt khi BTND được nhấn, LED tắt trong các trường hợp
còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define BTN_LED XPAR_AXI_GPIO_0_DEVICE_ID

XGpio BTN,LED;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,2, 0b00000100); \\ LED2 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,2,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
XGpio_Initialize(&BTN,BTN_LED);
XGpio_Initialize(&LED,BTN_LED);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,2,0x00);
while(1)
{
if((XGpio_DiscreteRead(&BTN,1))==2)
nhay(8);
else
XGpio_DiscreteWrite(&LED,2,0x00);

}
return 0;
}
Câu 9: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 8 SW. Viết chương trình ứng dụng điều khiển LED
sáng lần lượt từ LED0 – LED7 rồi tắt sáng khi SW1 = 1, LED tắt trong các trường
hợp còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define SW_LED XPAR_AXI_GPIO_0_DEVICE_ID

XGpio SW,LED;

int i,j;
u8 mang[8]={1,2,4,8,16,32,64,128};
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int main()
{
XGpio_Initialize(&SW,SW_LED);
XGpio_Initialize(&LED,SW_LED);
XGpio_SetDataDirection(&SW,1,0xFF);
XGpio_SetDataDirection(&LED,2,0x00);
while(1)
{
if((XGpio_DiscreteRead(&SW,1))==2)
{
//while((XGpio_DiscreteRead(&SW,1))==2);
for(j=0;j<8;j++)
{
XGpio_DiscreteWrite(&LED,2,mang[j]);
Delay(100000000);
}
}
else
XGpio_DiscreteWrite(&LED,2,0x00);

}
return 0;
}
Câu 10: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 8 SW. Viết chương trình ứng dụng điều khiển LED
sáng lan từ LED0 – LED7 rồi tắt sáng khi SW0 = 1, LED tắt trong các trường hợp
còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define SW_LED XPAR_AXI_GPIO_0_DEVICE_ID

XGpio SW,LED;

int i,j;
u8 mang[8]={1,3,7,15,31,63,127,255};
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int main()
{
XGpio_Initialize(&SW,SW_LED);
XGpio_Initialize(&LED,SW_LED);
XGpio_SetDataDirection(&SW,1,0xFF);
XGpio_SetDataDirection(&LED,2,0x00);
while(1)
{
if((XGpio_DiscreteRead(&SW,1))==2)
{
//while((XGpio_DiscreteRead(&SW,1))==2);
for(j=0;j<8;j++)
{
XGpio_DiscreteWrite(&LED,2,mang[j]);
Delay(100000000);
}
}
else
XGpio_DiscreteWrite(&LED,2,0x00);

}
return 0;
}
Câu 11: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng đếm số lần BTND
được nhấn, Kết quả đếm hiển thị dạng nhị phân trên LED.

#include"xgpio.h"
#include"xparameters.h"

#define BTN_LED XPAR_AXI_GPIO_0_DEVICE_ID

XGpio LED,BTN;

int main()
{
int dem;
XGpio_Initialize(&BTN,BTN_LED);
XGpio_Initialize(&LED,BTN_LED);
XGpio_SetDataDirection(&BTN,2,0xff);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
// BTND
if(XGpio_DiscreteRead(&BTN,2)==2)
{
while(XGpio_DiscreteRead(&BTN,2)==2);
dem++;
XGpio_DiscreteWrite(&LED,1,dem);
}

}
return 0;
}
Câu 12: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng đếm số lần BTNC
được nhấn, Kết quả đếm hiển thị dạng nhị phân trên LED.
#include"xgpio.h"
#include"xparameters.h"
#define BTN_LED XPAR_AXI_GPIO_0_DEVICE_ID
XGpio LED,BTN;

int main()
{
int dem;
XGpio_Initialize(&BTN,BTN_LED);
XGpio_Initialize(&LED,BTN_LED);
XGpio_SetDataDirection(&BTN,2,0xff);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
// BTND
if(XGpio_DiscreteRead(&BTN,2)==1)
{
while(XGpio_DiscreteRead(&BTN,2)==1);
dem++;
XGpio_DiscreteWrite(&LED,1,dem);
}

}
return 0;
}
Câu 13: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng đếm số lần BTNU
được nhấn, Kết quả đếm hiển thị dạng nhị phân trên LED.

#include"xgpio.h"
#include"xparameters.h"
#define BTN_LED XPAR_AXI_GPIO_0_DEVICE_ID
XGpio LED,BTN;

int main()
{
int dem;
XGpio_Initialize(&BTN,BTN_LED);
XGpio_Initialize(&LED,BTN_LED);
XGpio_SetDataDirection(&BTN,2,0xff);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
// BTND
if(XGpio_DiscreteRead(&BTN,2)==16)
{
while(XGpio_DiscreteRead(&BTN,2)==16);
dem++;
XGpio_DiscreteWrite(&LED,1,dem);
}

}
return 0;
}
Câu 14: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng đếm số lần BTNL
được nhấn, Kết quả đếm hiển thị dạng nhị phân trên LED.

#include"xgpio.h"
#include"xparameters.h"
#define BTN_LED XPAR_AXI_GPIO_0_DEVICE_ID
XGpio LED,BTN;

int main()
{
int dem;
XGpio_Initialize(&BTN,BTN_LED);
XGpio_Initialize(&LED,BTN_LED);
XGpio_SetDataDirection(&BTN,2,0xff);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
// BTND
if(XGpio_DiscreteRead(&BTN,2)==4)
{
while(XGpio_DiscreteRead(&BTN,2)==4);
dem++;
XGpio_DiscreteWrite(&LED,1,dem);
}

}
return 0;
}
Câu 15: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng đếm số lần BTNR
được nhấn, Kết quả đếm hiển thị dạng nhị phân trên LED.

#include"xgpio.h"
#include"xparameters.h"

#define BTN_LED XPAR_AXI_GPIO_0_DEVICE_ID

XGpio LED,BTN;

int main()
{
int dem;
XGpio_Initialize(&BTN,BTN_LED);
XGpio_Initialize(&LED,BTN_LED);
XGpio_SetDataDirection(&BTN,2,0xff);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
// BTND
if(XGpio_DiscreteRead(&BTN,2)==8)
{
while(XGpio_DiscreteRead(&BTN,2)==8);
dem++;
XGpio_DiscreteWrite(&LED,1,dem);
}

}
return 0;
}
Câu 16: Thiết kế hệ thống SoC gồm 1 VXL và 2 khối GPIO mỗi khối có 1 cổng, 1
khối nối với 8 LED và 1 khối nối 8 SW. Viết chương trình ứng dụng điều khiển
LED sáng khi SW tương ứng = 0, LED tắt khi SW = 1.

#include"xgpio.h"
#include"xparameters.h"

#define SW_ID XPAR_SW_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio SW,LED;

int main()
{
int gt_sw;
XGpio_Initialize(&SW,SW_ID);
XGpio_Initialize(&LED,LED_ID);
XGpio_SetDataDirection(&SW,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
gt_sw=XGpio_DiscreteRead(&SW,1);
if(gt_sw==1)
XGpio_DiscreteWrite(&LED,1,0xFF);
if(gt_sw==2)
XGpio_DiscreteWrite(&LED,1,0x00);
}
return 0;
}
Câu 17: Thiết kế hệ thống SoC gồm 1 VXL và và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 5 BTN. Viết chương trình ứng dụng điều khiển
LED sáng khi BTN tương ứng được nhấn, LED tắt khi nhả BTN.

#include"xgpio.h"
#include"xparameters.h"
#define BTN_ID XPAR_BTN_DEVICE_ID
#define LED_ID XPAR_LED_DEVICE_ID
XGpio LED,BTN;
int main()
{
int gt_btn;
XGpio_Initialize(&BTN,BTN_ID);
XGpio_Initialize(&LED,LED_ID);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
gt_btn=XGpio_DiscreteRead(&BTN,1);
// BTNC
if(gt_btn==1)
XGpio_DiscreteWrite(&LED,1,gt_btn);
// BTND
elseif(gt_btn==2)
XGpio_DiscreteWrite(&LED,1,gt_btn);
// BTNL
elseif (gt_btn==4)
XGpio_DiscreteWrite(&LED,1,gt_btn);
// BTNR
elseif (gt_btn==8)
XGpio_DiscreteWrite(&LED,1,gt_btn);
// BTNU
elseif (gt_btn==16)
XGpio_DiscreteWrite(&LED,1,gt_btn);
elseif (gt_btn==0)
XGpio_DiscreteWrite(&LED,1,gt_btn);

}
return 0;
}
Câu 18: Thiết kế hệ thống SoC gồm 1 VXL và và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 8 SW. Viết chương trình ứng dụng điều khiển
LED1 sáng nhấp nháy 7 lần rồi tắt sáng khi SW1 = 1, LED tắt trong các trường
hợp còn lại
#include "xparameters.h"
#include "xgpio.h"

#define SW_ID XPAR_SW_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio SW,LED;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,1,0b00000010); \\ LED1 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,1,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
XGpio_Initialize(&SW,SW_ID);
XGpio_Initialize(&LED,LED_ID);
XGpio_SetDataDirection(&SW,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
if((XGpio_DiscreteRead(&SW,1))==2)
nhay(7);
else
XGpio_DiscreteWrite(&LED,1,0x00);

}
return 0;
}
Câu 19: Thiết kế hệ thống SoC gồm 1 VXL và và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 5 BTN. Viết chương trình ứng dụng điều khiển
LED1 sáng nhấp nháy 5 lần rồi tắt khi BTNC được nhấn, LED tắt trong các
trường hợp còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define BTN_ID XPAR_BTN_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio LED,BTN;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,1, 0b00000010); \\ LED1 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,1,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
int gt_btn;
XGpio_Initialize(&BTN,BTN_ID);
XGpio_Initialize(&LED,LED_ID);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
if((XGpio_DiscreteRead(&BTN,1))==1)
nhay(5);
else
XGpio_DiscreteWrite(&LED,1,0x00);

}
return 0;
}
Câu 20: Thiết kế hệ thống SoC gồm 1 VXL và và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 5 BTN. Viết chương trình ứng dụng điều khiển
LED2 sáng nhấp nháy 10 lần rồi tắt khi BTNL được nhấn, LED tắt trong các
trường hợp còn lại.
#include "xparameters.h"
#include "xgpio.h"

#define BTN_ID XPAR_BTN_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio LED,BTN;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,1, 0b00000100); \\ LED2 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,1,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
int gt_btn;
XGpio_Initialize(&BTN,BTN_ID);
XGpio_Initialize(&LED,LED_ID);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
if((XGpio_DiscreteRead(&BTN,1))==4)
nhay(10);
else
XGpio_DiscreteWrite(&LED,1,0x00);
}
return 0;
}
Câu 21: Thiết kế hệ thống SoC gồm 1 VXL và và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 5 BTN. Viết chương trình ứng dụng điều khiển
LED4 sáng nhấp nháy 10 lần rồi tắt khi BTNR được nhấn, LED tắt trong các
trường hợp còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define BTN_ID XPAR_BTN_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio LED,BTN;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,1, 0b00010000); \\ LED4 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,1,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
int gt_btn;
XGpio_Initialize(&BTN,BTN_ID);
XGpio_Initialize(&LED,LED_ID);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
if((XGpio_DiscreteRead(&BTN,1))==8)
nhay(10);
else
XGpio_DiscreteWrite(&LED,1,0x00);
}
return 0;
}
Câu 22: Thiết kế hệ thống SoC gồm 1 VXL và 1 khối GPIO có 2 cổng, 1 cổng nối
với 8 LED, 1 cổng nối với 5 BTN. Viết chương trình ứng dụng điều khiển LED5
sáng nhấp nháy 10 lần rồi tắt khi BTNU được nhấn, LED tắt trong các trường hợp
còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define BTN_ID XPAR_BTN_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio LED,BTN;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,1, 0b00100000); \\ LED5 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,1,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
int gt_btn;
XGpio_Initialize(&BTN,BTN_ID);
XGpio_Initialize(&LED,LED_ID);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
if((XGpio_DiscreteRead(&BTN,1))==16)
nhay(10);
else
XGpio_DiscreteWrite(&LED,1,0x00);

}
return 0;
}
Câu 23: Thiết kế hệ thống SoC gồm 1 VXL và và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 5 BTN. Viết chương trình ứng dụng điều khiển
LED2 sáng nhấp nháy 8 lần rồi tắt khi BTND được nhấn, LED tắt trong các
trường hợp còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define BTN_ID XPAR_BTN_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio LED,BTN;

int i;
int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,1, 0b00000100); \\ LED2 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,1,0x00);
Delay(1000000);
}
return 0;
}

int main()
{
int gt_btn;
XGpio_Initialize(&BTN,BTN_ID);
XGpio_Initialize(&LED,LED_ID);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
if((XGpio_DiscreteRead(&BTN,1))==2)
nhay(8);
else
XGpio_DiscreteWrite(&LED,1,0x00);
}
return 0;
}
Câu 24: Thiết kế hệ thống SoC gồm 1 VXL và và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 8 SW. Viết chương trình ứng dụng điều khiển LED
sáng lần lượt từ LED0 – LED7 rồi tắt sáng khi SW1 = 1, LED tắt trong các trường
hợp còn lại

#include "xparameters.h"
#include "xgpio.h"

#define SW_ID XPAR_SW_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio SW,LED;

int i;
u8 mang[8]={1,2,4,8,16,32,64,128}

int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int main()
{
XGpio_Initialize(&SW,SW_ID);
XGpio_Initialize(&LED,LED_ID);
XGpio_SetDataDirection(&SW,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
if((XGpio_DiscreteRead(&SW,1))==2)
{
//while((XGpio_DiscreteRead(&SW,1))==2);
for(j=0;j<8;j++)
{
XGpio_DiscreteWrite(&LED,1,mang[j]);
Delay(100000000);
}
}
else
XGpio_DiscreteWrite(&LED,1,0x00);
}
return 0;
}
Câu 25: Thiết kế hệ thống SoC gồm 1 VXL và và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 8 SW. Viết chương trình ứng dụng điều khiển LED
sáng lan từ LED0 – LED7 rồi tắt sáng khi SW0 = 1, LED tắt trong các trường hợp
còn lại.

#include "xparameters.h"
#include "xgpio.h"

#define SW_ID XPAR_SW_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio SW,LED;

int i;
u8 mang[8]={1,3,7,15,31,63,127,255};

int delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int main()
{
XGpio_Initialize(&SW,SW_ID);
XGpio_Initialize(&LED,LED_ID);
XGpio_SetDataDirection(&SW,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
if((XGpio_DiscreteRead(&SW,1))==1)
{
//while((XGpio_DiscreteRead(&SW,1))==1);
for(i=0;i<8;i++)
{
XGpio_DiscreteWrite(&LED,1,mang[i]);
Delay(100000000);
}
}
else
XGpio_DiscreteWrite(&LED,1,0x00);
}
return 0;
}
Câu 26: Thiết kế hệ thống SoC gồm 1 VXL và và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 5 BTN. Viết chương trình ứng dụng đếm số lần
BTND được nhấn, Kết quả đếm hiển thị dạng nhị phân trên LED.

#include"xgpio.h"
#include"xparameters.h"

#define BTN_ID XPAR_BTN_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio LED,BTN;

int main()
{
int dem;
XGpio_Initialize(&BTN, BTN_ID);
XGpio_Initialize(&LED, LED_ID);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
// BTND
if(XGpio_DiscreteRead(&BTN,1)==2)
{
while(XGpio_DiscreteRead(&BTN,1)==2);
dem++;
XGpio_DiscreteWrite(&LED,1,dem);
}

}
return 0;
}
Câu 27: Thiết kế hệ thống SoC gồm 1 VXL và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 5 BTN. Viết chương trình ứng dụng đếm số lần
BTNC được nhấn, Kết quả đếm hiển thị dạng nhị phân trên LED.

#include"xgpio.h"
#include"xparameters.h"

#define BTN_ID XPAR_BTN_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio LED,BTN;

int main()
{
int dem;
XGpio_Initialize(&BTN, BTN_ID);
XGpio_Initialize(&LED, LED_ID);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
// BTND
if(XGpio_DiscreteRead(&BTN,1)==1)
{
while(XGpio_DiscreteRead(&BTN,1)==1);
dem++;
XGpio_DiscreteWrite(&LED,1,dem);
}

}
return 0;
}
Câu 28: Thiết kế hệ thống SoC gồm 1 VXL và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 5 BTN. Viết chương trình ứng dụng đếm số lần
BTNU được nhấn, Kết quả đếm hiển thị dạng nhị phân trên LED.

#include"xgpio.h"
#include"xparameters.h"

#define BTN_ID XPAR_BTN_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio LED,BTN;

int main()
{
int dem;
XGpio_Initialize(&BTN, BTN_ID);
XGpio_Initialize(&LED, LED_ID);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
// BTND
if(XGpio_DiscreteRead(&BTN,1)==16)
{
while(XGpio_DiscreteRead(&BTN,1)==16);
dem++;
XGpio_DiscreteWrite(&LED,1,dem);
}

}
return 0;
}
Câu 29: Thiết kế hệ thống SoC gồm 1 VXL và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 5 BTN. Viết chương trình ứng dụng đếm số lần
BTNL được nhấn, Kết quả đếm hiển thị dạng nhị phân trên LED.

#include"xgpio.h"
#include"xparameters.h"

#define BTN_ID XPAR_BTN_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio LED,BTN;

int main()
{
int dem;
XGpio_Initialize(&BTN, BTN_ID);
XGpio_Initialize(&LED, LED_ID);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
// BTND
if(XGpio_DiscreteRead(&BTN,1)==4)
{
while(XGpio_DiscreteRead(&BTN,1)==4);
dem++;
XGpio_DiscreteWrite(&LED,1,dem);
}

}
return 0;
}
Câu 30: Thiết kế hệ thống SoC gồm 1 VXL và 2 khối GPIO mỗi khối có 1 cổng
nối với 8 LED, 1 khối nối với 5 BTN. Viết chương trình ứng dụng đếm số lần
BTNR được nhấn, Kết quả đếm hiển thị dạng nhị phân trên LED.

#include"xgpio.h"
#include"xparameters.h"

#define BTN_ID XPAR_BTN_DEVICE_ID


#define LED_ID XPAR_LED_DEVICE_ID

XGpio LED,BTN;

int main()
{
int dem;
XGpio_Initialize(&BTN, BTN_ID);
XGpio_Initialize(&LED, LED_ID);
XGpio_SetDataDirection(&BTN,1,0xFF);
XGpio_SetDataDirection(&LED,1,0x00);
while(1)
{
// BTND
if(XGpio_DiscreteRead(&BTN,1)==8)
{
while(XGpio_DiscreteRead(&BTN,1)==8);
dem++;
XGpio_DiscreteWrite(&LED,1,dem);
}

}
return 0;
}
Câu 31: Sử dụng ngắt trên GPIO. Thiết kế mạch đếm số lần nhấn phím BTNC. Kết
quả đếm hiển thị dạng nhị phân trên LED đơn.

#include "xparameters.h"
#include "xgpio.h"
#include "xil_exception.h"
#include "xscugic.h"

#define led_id XPAR_AXI_GPIO_LED_DEVICE_ID


#define btn_id XPAR_AXI_GPIO_BTN_DEVICE_ID
#define btnint_id XPAR_FABRIC_AXI_GPIO_BTN_IP2INTC_IRPT_INTR
#define intc_id XPAR_PS7_SCUGIC_0_DEVICE_ID
#define btn_mask_int XGPIO_IR_CH1_MASK

XGpio led, btn;


XScuGic btnint; // khai bao bien

// Ham dieu khien ngat


int dem=0;
void hamdk()
{
// Disable ngat GPIO
XGpio_InterruptDisable(&btn, btn_mask_int);
// bo qua lan bam phim bo sung
if ((XGpio_InterruptGetStatus(&btn)& btn_mask_int) != btn_mask_int)
return;
// Dem so lan nhan phim BTNC
if (XGpio_DiscreteRead(&btn, 1)==1)
{
dem++;
XGpio_DiscreteWrite(&led, 1, dem);
}

// Xoa co ngat
XGpio_InterruptClear(&btn, btn_mask_int);
// Enable ngat GPIO
XGpio_InterruptEnable(&btn, btn_mask_int);
}

// Ham khoi tao ngat


int setup_int1(XGpio *t)
{
XScuGic_Config *IntcConfig;
int status;
// Khoi tao ngat
IntcConfig = XScuGic_LookupConfig(XPAR_PS7_SCUGIC_0_DEVICE_ID);
status = XScuGic_CfgInitialize(&btnint, IntcConfig, IntcConfig->CpuBaseAddress);
if(status != XST_SUCCESS) return XST_FAILURE;
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
(Xil_ExceptionHandler)XScuGic_InterruptHandler,&btnint);
Xil_ExceptionEnable();
// goi ham dk ngat
status = XScuGic_Connect(&btnint,btnint_id,(Xil_InterruptHandler)hamdk,(void
*)t);
// Enable ngat GPIO, ngat toan cuc
XGpio_InterruptEnable(t, 1);
XGpio_InterruptGlobalEnable(t);
XScuGic_Enable(&btnint, btnint_id);
return XST_SUCCESS;
}

int main()
{
int status;
status = XGpio_Initialize(&led, led_id);
if(status != XST_SUCCESS) return XST_FAILURE;
status = XGpio_Initialize(&btn, btn_id);
if(status != XST_SUCCESS) return XST_FAILURE;
XGpio_SetDataDirection(&led, 1, 0x00);
XGpio_SetDataDirection(&btn, 1, 0xFF);
status = setup_int1(&btn);
if(status != XST_SUCCESS) return XST_FAILURE;
while (1);
return 0;
}
Câu 32: Sử dụng ngắt trên GPIO. Thiết kế mạch đếm số lần nhấn phím BTNC. Kết
quả đếm hiển thị dạng thập phân trên LED 7 thanh.

#include "xparameters.h"
#include "xgpio.h"
#include "xil_exception.h"
#include "xscugic.h"

#define led_id XPAR_LED_7_DEVICE_ID


#define btn_id XPAR_AXI_GPIO_0_DEVICE_ID
#define btnint_id XPAR_FABRIC_AXI_GPIO_0_IP2INTC_IRPT_INTR
#define intc_id XPAR_PS7_SCUGIC_0_DEVICE_ID
#define btn_mask_int XGPIO_IR_CH1_MASK

XGpio led, btn;

int dem=0;

int delay(int n)
{
int i;
for(i=0;i<n;i++);
return 0;
}

int maled_7doan(int x)
{
switch(x)
{
case 0:return 0xc0;
case 1:return 0xf9;
case 2:return 0xa4;
case 3:return 0xb0;
case 4:return 0x99;
case 5:return 0x92;
case 6:return 0x82;
case 7:return 0x8f;
case 8:return 0x80;
case 9:return 0x90;
}

XScuGic btnint; // khai bao bien


// Ham dieu khien ngat
void hamdk()
{
// Disable ngat GPIO
XGpio_InterruptDisable(&btn, btn_mask_int);
// bo qua lan bam phim bo sung
if ((XGpio_InterruptGetStatus(&btn)& btn_mask_int) != btn_mask_int)
return;
if( XGpio_DiscreteRead(&btn,1)==1)
{
if(dem>9)
dem=0;
else
dem++;
XGpio_DiscreteWrite(&led, 1, maled_7doan(dem));
delay(10000000);
}

// Xoa co ngat
XGpio_InterruptClear(&btn, btn_mask_int);
// Enable ngat GPIO
XGpio_InterruptEnable(&btn, btn_mask_int);
}
// Ham khoi tao ngat
int setup_int1(XGpio *t)
{
XScuGic_Config *IntcConfig;
int status;
// Khoi tao ngat
IntcConfig = XScuGic_LookupConfig(XPAR_PS7_SCUGIC_0_DEVICE_ID);
status = XScuGic_CfgInitialize(&btnint, IntcConfig, IntcConfig->CpuBaseAddress);
if(status != XST_SUCCESS) return XST_FAILURE;
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
(Xil_ExceptionHandler)XScuGic_InterruptHandler,&btnint);
Xil_ExceptionEnable();
// goi ham dk ngat
status = XScuGic_Connect(&btnint,btnint_id,(Xil_InterruptHandler)hamdk,(void
*)t);
// Enable ngat GPIO, ngat toan cuc
XGpio_InterruptEnable(t, 1);
XGpio_InterruptGlobalEnable(t);
XScuGic_Enable(&btnint, btnint_id);
return XST_SUCCESS;
}

int main()
{ int status;
status = XGpio_Initialize(&led, led_id);
if(status != XST_SUCCESS) return XST_FAILURE;
status = XGpio_Initialize(&btn, btn_id);
if(status != XST_SUCCESS) return XST_FAILURE;
XGpio_SetDataDirection(&led, 1, 0x00);
XGpio_SetDataDirection(&btn, 1, 0xFF);
status = setup_int1(&btn);
if(status != XST_SUCCESS) return XST_FAILURE;
while (1);
return 0;
}
Câu 33: Sử dụng ngắt trên GPIO. khi nhấn BTNC(1): LED0 sáng nhấp nháy 5 lần
rồi tắt, khí nhấn BTNU(16): LED0 sáng nhấp nháy 7 lần rồi tắt, khi nhấn
BTND(2): LED0 sáng nhấp nháy 3 lần rồi tắt.

#include "xparameters.h"
#include "xgpio.h"
#include "xil_exception.h"
#include "xscugic.h"

#define led_id XPAR_AXI_GPIO_LED_DEVICE_ID


#define btn_id XPAR_AXI_GPIO_BTN_DEVICE_ID
#define btnint_id XPAR_FABRIC_AXI_GPIO_BTN_IP2INTC_IRPT_INTR
#define intc_id XPAR_PS7_SCUGIC_0_DEVICE_ID
#define btn_mask_int XGPIO_IR_CH1_MASK

XGpio led, btn;


XScuGic btnint; // khai bao bien

// Ham dieu khien ngat


int dem=0;
int i;
void hamdk()
{
// Disable ngat GPIO
XGpio_InterruptDisable(&btn, btn_mask_int);
// bo qua lan bam phim bo sung
if ((XGpio_InterruptGetStatus(&btn)& btn_mask_int) != btn_mask_int)
return;
// LED0 nhay nhay khi nhan BTNC, BTNU, BTND
if (XGpio_DiscreteRead(&btn, 1)==1)
{
nhay(5);
}
if (XGpio_DiscreteRead(&btn, 1)==2)
{
nhay(3);
}
if (XGpio_DiscreteRead(&btn, 1)==16)
{
nhay(7);
}

// Xoa co ngat
XGpio_InterruptClear(&btn, btn_mask_int);
// Enable ngat GPIO
XGpio_InterruptEnable(&btn, btn_mask_int);
}

// Ham khoi tao ngat


int setup_int1(XGpio *t)
{
XScuGic_Config *IntcConfig;
int status;
// Khoi tao ngat
IntcConfig = XScuGic_LookupConfig(XPAR_PS7_SCUGIC_0_DEVICE_ID);
status = XScuGic_CfgInitialize(&btnint, IntcConfig, IntcConfig->CpuBaseAddress);
if(status != XST_SUCCESS) return XST_FAILURE;
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
(Xil_ExceptionHandler)XScuGic_InterruptHandler,&btnint);
Xil_ExceptionEnable();
// goi ham dk ngat
status = XScuGic_Connect(&btnint,btnint_id,(Xil_InterruptHandler)hamdk,(void
*)t);
// Enable ngat GPIO, ngat toan cuc
XGpio_InterruptEnable(t, 1);
XGpio_InterruptGlobalEnable(t);
XScuGic_Enable(&btnint, btnint_id);
return XST_SUCCESS;
}

int main()
{
int status;
status = XGpio_Initialize(&led, led_id);
if(status != XST_SUCCESS) return XST_FAILURE;
status = XGpio_Initialize(&btn, btn_id);
if(status != XST_SUCCESS) return XST_FAILURE;
XGpio_SetDataDirection(&led, 1, 0x00);
XGpio_SetDataDirection(&btn, 1, 0xFF);
status = setup_int1(&btn);
if(status != XST_SUCCESS) return XST_FAILURE;
while (1);
return 0;
}

int Delay(int n)
{
for(i=0;i<n;i++);
return 0;
}

int nhay (int n)


{
for(i=0;i<n;i++);
{
XGpio_DiscreteWrite(&LED,2,0b00000001); \\ LED0 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,2,0x00);
Delay(1000000);
}
return 0;
}
Câu 34: Sử dụng ngắt trên GPIO. Khi nhấn BTNL(4), 8 LED sáng lần lượt từ trái
qua phải rồi tắt, Khi nhấn BTNR(8), 8 LED sáng lần lượt từ phải qua trái rồi tắt.
#include "xparameters.h"
#include "xgpio.h"
#include "xil_exception.h"
#include "xscugic.h"
#define led_id XPAR_GPIO_1_DEVICE_ID
#define btn_id XPAR_GPIO_0_DEVICE_ID
#define btnint_id XPAR_FABRIC_BTN_IP2INTC_IRPT_INTR
#define intc_id XPAR_PS7_SCUGIC_0_DEVICE_ID
#define btn_mask_int XGPIO_IR_CH1_MASK
XGpio led, btn;
XScuGic btnint; // khai bao bien
// Ham dieu khien ngat
int delay(int n)
{
int i;
for(i=0;i<n;i++);
return 0;
}
int dem[8]={1,2,4,8,16,32,64,128};
void hamdk()
{
int btn_value;
// Disable ngat GPIO
XGpio_InterruptDisable(&btn, btn_mask_int);
// bo qua lan bam phim bo sung
if ((XGpio_InterruptGetStatus(&btn)& btn_mask_int) != btn_mask_int)
return;
btn_value= XGpio_DiscreteRead(&btn,1);
if(btn_value==4)
{
int i;
for(i=0;i<8;i++)
{
XGpio_DiscreteWrite(&led, 1,dem[i]);
delay(100000000);
}
}
if(btn_value==8)
{
int i;
for(i=7;i>=0;i--)
{
XGpio_DiscreteWrite(&led, 1,dem[i]);
delay(100000000);
}
}

// Xoa co ngat
XGpio_InterruptClear(&btn, btn_mask_int);
// Enable ngat GPIOãc q
XGpio_InterruptEnable(&btn, btn_mask_int);
}
// Ham khoi tao ngat
int setup_int1(XGpio *t)
{
XScuGic_Config *IntcConfig;
int status;
// Khoi tao ngat
IntcConfig = XScuGic_LookupConfig(XPAR_PS7_SCUGIC_0_DEVICE_ID);
status = XScuGic_CfgInitialize(&btnint, IntcConfig, IntcConfig->CpuBaseAddress);
if(status != XST_SUCCESS) return XST_FAILURE;
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
(Xil_ExceptionHandler)XScuGic_InterruptHandler,&btnint);
Xil_ExceptionEnable();
// goi ham dk ngat
status = XScuGic_Connect(&btnint,btnint_id,(Xil_InterruptHandler)hamdk,(void
*)t);
// Enable ngat GPIO, ngat toan cuc
XGpio_InterruptEnable(t, 1);
XGpio_InterruptGlobalEnable(t);
XScuGic_Enable(&btnint, btnint_id);
return XST_SUCCESS;
}

int main()
{ int status;
status = XGpio_Initialize(&led, led_id);
if(status != XST_SUCCESS) return XST_FAILURE;
status = XGpio_Initialize(&btn, btn_id);
if(status != XST_SUCCESS) return XST_FAILURE;
XGpio_SetDataDirection(&led, 1, 0x00);
XGpio_SetDataDirection(&btn, 1, 0xFF);
status = setup_int1(&btn);
if(status != XST_SUCCESS) return XST_FAILURE;
while (1);
return 0;
}
Câu 35: Thiết kế hệ thống SOC. Viết chương trình đọc giá trị từ button. Nếu
BTNC nhấn, Led sang lan từ giữa sang 2 bên. Nếu BTNU nhấn, led sang lan từ 2
bên về giữa. Nếu BTNL nhấn, led sang lan từ trái qua phải. Nếu BTNR nhấn, LED
sang lan từ phải qua trái. Nếu nhấn BTND led4 sang nhấp nháy

#include "xparameters.h"
#include "xgpio.h"
#include "xil_exception.h"
#include "xscugic.h"
#define led_id XPAR_GPIO_1_DEVICE_ID
#define btn_id XPAR_GPIO_0_DEVICE_ID
#define btnint_id XPAR_FABRIC_BTN_IP2INTC_IRPT_INTR
#define intc_id XPAR_PS7_SCUGIC_0_DEVICE_ID
#define btn_mask_int XGPIO_IR_CH1_MASK
XGpio led, btn;
XScuGic btnint; // khai bao bien
// Ham dieu khien ngat
int delay(int n)
{
int i;
for(i=0;i<n;i++);
return 0;
}

u8 mang1[8]={1,3,7,15,31,63,127,255};
u8 mang2[4]={24,60,126,255};

void hamdk()
{
int btn_value;
// Disable ngat GPIO
XGpio_InterruptDisable(&btn, btn_mask_int);
// bo qua lan bam phim bo sung
if ((XGpio_InterruptGetStatus(&btn)& btn_mask_int) != btn_mask_int)
return;
btn_value= XGpio_DiscreteRead(&btn,1);
if(btn_value==1)
{
for(i=0;i<4;i++)
{
XGpio_DiscreteWrite(&LED,1,mang2[i]);
Delay(100000000);
}

}
if(btn_value==16)
{
for(i=4;i>=0;i--)
{
XGpio_DiscreteWrite(&LED,1,mang2[i]);
Delay(100000000);
}

}
if(btn_value==4)
{
for(i=7;i>=0;i--)
{
XGpio_DiscreteWrite(&LED,1,mang1[i]);
Delay(100000000);
}

}
if(btn_value==8)
{
for(i=0;i<8;i++)
{
XGpio_DiscreteWrite(&LED,1,mang1[i]);
Delay(100000000);
}

}
if(btn_value==2)
{
XGpio_DiscreteWrite(&LED,2,0b00010000); \\ LED4 sang
Delay(1000000);
XGpio_DiscreteWrite(&LED,2,0x00);
Delay(1000000);

// Xoa co ngat
XGpio_InterruptClear(&btn, btn_mask_int);
// Enable ngat GPIOãc q
XGpio_InterruptEnable(&btn, btn_mask_int);
}
// Ham khoi tao ngat
int setup_int1(XGpio *t)
{
XScuGic_Config *IntcConfig;
int status;
// Khoi tao ngat
IntcConfig = XScuGic_LookupConfig(XPAR_PS7_SCUGIC_0_DEVICE_ID);
status = XScuGic_CfgInitialize(&btnint, IntcConfig, IntcConfig->CpuBaseAddress);
if(status != XST_SUCCESS) return XST_FAILURE;
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
(Xil_ExceptionHandler)XScuGic_InterruptHandler,&btnint);
Xil_ExceptionEnable();
// goi ham dk ngat
status = XScuGic_Connect(&btnint,btnint_id,(Xil_InterruptHandler)hamdk,(void
*)t);
// Enable ngat GPIO, ngat toan cuc
XGpio_InterruptEnable(t, 1);
XGpio_InterruptGlobalEnable(t);
XScuGic_Enable(&btnint, btnint_id);
return XST_SUCCESS;
}

int main()
{ int status;
status = XGpio_Initialize(&led, led_id);
if(status != XST_SUCCESS) return XST_FAILURE;
status = XGpio_Initialize(&btn, btn_id);
if(status != XST_SUCCESS) return XST_FAILURE;
XGpio_SetDataDirection(&led, 1, 0x00);
XGpio_SetDataDirection(&btn, 1, 0xFF);
status = setup_int1(&btn);
if(status != XST_SUCCESS) return XST_FAILURE;
while (1);
return 0;
}
Câu 36: Sử dụng ngắt trên GPIO. Viết chương trình kiểm tra xem BTN nào vừa
được nhấn. Gửi thông báo qua UART lên máy tính.

// Ngat
#include "platform.h"
#include "xparameters.h"
#include "xgpio.h"
#include "xil_exception.h"
#include "xscugic.h"
#include "xuartps.h"

#define btn_id XPAR_BTN_DEVICE_ID


#define btnint_id XPAR_FABRIC_BTN_IP2INTC_IRPT_INTR
#define intc_id XPAR_PS7_SCUGIC_0_DEVICE_ID
#define btn_mask_int XGPIO_IR_CH1_MASK

XGpio btn;
XScuGic btnint; // khai bao bien
XUartPs_Config *cf;
XUartPs uart1;

int gt_btn,i;
u8 str[30]="Ban vua nhan BTN";
u8 kt;
// Ham dieu khien ngat
void hamdk()
{ int gt_btn;
// Disable ngat GPIO
XGpio_InterruptDisable(&btn, btn_mask_int);
// bo qua lan bam phim bo sung
if ((XGpio_InterruptGetStatus(&btn)& btn_mask_int) != btn_mask_int)
return;
// Kiem tra BTN nao vua duoc nhan
gt_btn = XGpio_DiscreteRead(&btn, 1);
if(gt_btn==1)
{
kt='C';
for(i=0;i<sizeof(str);i++)
XUartPs_Send(&uart1,&str[i],1);
XUartPs_Send(&uart1,&kt,1);
}
if(gt_btn==2)
{
kt='D';
for(i=0;i<sizeof(str);i++)
XUartPs_Send(&uart1,&str[i],1);
XUartPs_Send(&uart1,&kt,1);
}
if(gt_btn==4)
{
kt='L';
for(i=0;i<sizeof(str);i++)
XUartPs_Send(&uart1,&str[i],1);
XUartPs_Send(&uart1,&kt,1);
}
if(gt_btn==8)
{
kt='R';
for(i=0;i<sizeof(str);i++)
XUartPs_Send(&uart1,&str[i],1);
XUartPs_Send(&uart1,&kt,1);
}
if(gt_btn==16)
{
kt='U';
for(i=0;i<sizeof(str);i++)
XUartPs_Send(&uart1,&str[i],1);
XUartPs_Send(&uart1,&kt,1);
}

// Xoa co ngat
XGpio_InterruptClear(&btn, btn_mask_int);
// Enable ngat GPIO
XGpio_InterruptEnable(&btn, btn_mask_int);
}
// Ham khoi tao ngat
int setup_int1(XGpio *t)
{
XScuGic_Config *IntcConfig;
int status;
// Khoi tao ngat
IntcConfig = XScuGic_LookupConfig(XPAR_PS7_SCUGIC_0_DEVICE_ID);
status = XScuGic_CfgInitialize(&btnint, IntcConfig, IntcConfig->CpuBaseAddress);
if(status != XST_SUCCESS) return XST_FAILURE;
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
(Xil_ExceptionHandler)XScuGic_InterruptHandler,&btnint);
Xil_ExceptionEnable();
// goi ham dk ngat
status = XScuGic_Connect(&btnint,btnint_id,(Xil_InterruptHandler)hamdk,(void
*)t);
// Enable ngat GPIO, ngat toan cuc
XGpio_InterruptEnable(t, 1);
XGpio_InterruptGlobalEnable(t);
XScuGic_Enable(&btnint, btnint_id);
return XST_SUCCESS;
}

int main()
{
int status;
status = XGpio_Initialize(&btn, btn_id);
if(status != XST_SUCCESS) return XST_FAILURE;
// UART
init_platform();
cf = XUartPs_LookupConfig(XPAR_PS7_UART_1_DEVICE_ID);
XUartPs_CfgInitialize(&uart1,cf,cf->BaseAddress);
XUartPs_SetBaudRate(&uart1,9600);
XGpio_Initialize(&btn,XPAR_BTN_DEVICE_ID);
XGpio_SetDataDirection(&btn, 1, 0xFF);
status = setup_int1(&btn);
if(status != XST_SUCCESS) return XST_FAILURE;
while (1);
cleanup_platform();
return 0;
}
//Khong ngat

#include "platform.h"
#include "xparameters.h"
#include "xgpio.h"
#include "xuartps.h"
XGpio btn;
XUartPs_Config *cf;
XUartPs uart1;
int main()
{
int gt_btn,i;
u8 str[30]="Ban vua nhan BTN";
u8 kt;
init_platform();
cf = XUartPs_LookupConfig(XPAR_PS7_UART_1_DEVICE_ID);
XUartPs_CfgInitialize(&uart1,cf,cf->BaseAddress);
XUartPs_SetBaudRate(&uart1,9600);
XGpio_Initialize(&btn,XPAR_AXI_GPIO_BTN_DEVICE_ID);
XGpio_SetDataDirection(&btn,1,0xff);
while(1)
{
gt_btn=XGpio_DiscreteRead(&btn,1);
if(gt_btn==1)
{
kt='C';
for(i=0;i<sizeof(str);i++)
XUartPs_Send(&uart1,&str[i],1);
XUartPs_Send(&uart1,&kt,1);
}
if(gt_btn==2)
{
kt='D';
for(i=0;i<sizeof(str);i++)
XUartPs_Send(&uart1,&str[i],1);
XUartPs_Send(&uart1,&kt,1);
}
if(gt_btn==4)
{
kt='L';
for(i=0;i<sizeof(str);i++)
XUartPs_Send(&uart1,&str[i],1);
XUartPs_Send(&uart1,&kt,1);
}
if(gt_btn==8)
{
kt='R';
for(i=0;i<sizeof(str);i++)
XUartPs_Send(&uart1,&str[i],1);
XUartPs_Send(&uart1,&kt,1);
}
if(gt_btn==16)
{
kt='U';
for(i=0;i<sizeof(str);i++)
XUartPs_Send(&uart1,&str[i],1);
XUartPs_Send(&uart1,&kt,1);
}
}
cleanup_platform();
return 0;
}
Câu 37: Sử dụng ngắt trên GPIO. Viết chương trình VĐK nhận dữ liệu qua UART
nếu nhận được ký tự “A” LED0 sáng, nhận ký tự “B” LED1 sáng….
//Ngat

#include "platform.h"
#include "xparameters.h"
#include "xgpio.h"
#include "xil_exception.h"
#include "xscugic.h"
#include "xuartps.h"

#define led_id XPAR_LED_DEVICE_ID


#define ledint_id XPAR_FABRIC_LED_IP2INTC_IRPT_INTR
#define intc_id XPAR_PS7_SCUGIC_0_DEVICE_ID
#define led_mask_int XGPIO_IR_CH1_MASK

XGpio led;

XScuGic ledint; // khai bao bien

XUartPs_Config *cf;
XUartPs uart1;

u8 kt;

// Ham dieu khien ngat


void hamdk()
{
// Disable ngat GPIO
XGpio_InterruptDisable(&led, led_mask_int);
// bo qua lan bam phim bo sung
if ((XGpio_InterruptGetStatus(&led)& led_mask_int) != led_mask_int)
return;
// Kiem tra BTN nao vua duoc nhan

XUartPs_Recv(&uart1,&kt,1);
if(kt=='A')
XGpio_DiscreteWrite(&led,2,00000001);
if(kt=='B')
XGpio_DiscreteWrite(&led,2,00000010);
if(kt=='C')
XGpio_DiscreteWrite(&led,2,00000100);
if(kt=='D')
XGpio_DiscreteWrite(&led,2,00001000);
if(kt=='E')
XGpio_DiscreteWrite(&led,2,00010000);
if(kt=='F')
XGpio_DiscreteWrite(&led,2,00100000);
if(kt=='G')
XGpio_DiscreteWrite(&led,2,01000000);
if(kt=='H')
XGpio_DiscreteWrite(&led,2,10000000);
// Xoa co ngat
XGpio_InterruptClear(&led, led_mask_int);
// Enable ngat GPIO
XGpio_InterruptEnable(&led, led_mask_int);
}
// Ham khoi tao ngat
int setup_int1(XGpio *t)
{
XScuGic_Config *IntcConfig;
int status;
// Khoi tao ngat
IntcConfig = XScuGic_LookupConfig(XPAR_PS7_SCUGIC_0_DEVICE_ID);
status = XScuGic_CfgInitialize(&ledint, IntcConfig, IntcConfig->CpuBaseAddress);
if(status != XST_SUCCESS) return XST_FAILURE;
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
(Xil_ExceptionHandler)XScuGic_InterruptHandler,&ledint);
Xil_ExceptionEnable();
// goi ham dk ngat
status = XScuGic_Connect(&ledint,ledint_id,(Xil_InterruptHandler)hamdk,(void
*)t);
// Enable ngat GPIO, ngat toan cuc
XGpio_InterruptEnable(t, 1);
XGpio_InterruptGlobalEnable(t);
XScuGic_Enable(&ledint, ledint_id);
return XST_SUCCESS;
}

int main()
{
int status;
status = XGpio_Initialize(&led, led_id);
if(status != XST_SUCCESS) return XST_FAILURE;
// UART
init_platform();
cf = XUartPs_LookupConfig(XPAR_PS7_UART_1_DEVICE_ID);
XUartPs_CfgInitialize(&uart1,cf,cf->BaseAddress);
XUartPs_SetBaudRate(&uart1,9600);
XGpio_Initialize(&led,XPAR_LED_DEVICE_ID);
XGpio_SetDataDirection(&led, 1, 0xFF);
status = setup_int1(&led);
if(status != XST_SUCCESS) return XST_FAILURE;
while (1);
cleanup_platform();
return 0;
}
// Khong ngat

#include "platform.h"

#include "xparameters.h"

#include "xgpio.h"

#include "xuartps.h"

XGpio led;

XUartPs_Config *cf;

XUartPs uart1;

int main()

u8 kt;

init_platform();

cf = XUartPs_LookupConfig(XPAR_PS7_UART_1_DEVICE_ID);

XUartPs_CfgInitialize(&uart1,cf,cf->BaseAddress);

XUartPs_SetBaudRate(&uart1,9600);

XGpio_Initialize(&led,XPAR_PS7_GPIO_0_DEVICE_ID)

XGpio_SetDataDirection(&led,2,0x00); // led

while(1)

XUartPs_Recv(&uart1,&kt,1);
if(kt=='A')

XGpio_DiscreteWrite(&led,2,00000001);

if(kt=='B')

XGpio_DiscreteWrite(&led,2,00000010);

if(kt=='C')

XGpio_DiscreteWrite(&led,2,00000100);

if(kt=='D')

XGpio_DiscreteWrite(&led,2,00001000);

if(kt=='E')

XGpio_DiscreteWrite(&led,2,00010000);

if(kt=='F')

XGpio_DiscreteWrite(&led,2,00100000);

if(kt=='G')

XGpio_DiscreteWrite(&led,2,01000000);

if(kt=='H')

XGpio_DiscreteWrite(&led,2,10000000);

cleanup_platform();

return 0;

}
Câu 38: Sử dụng ngắt trên GPIO. Đếm số lần nhấn phím BTNU. Kết quả đếm gửi
qua UART hiển thị trên màn hình terminal.

//Ngat

#include "platform.h"
#include "xparameters.h"
#include "xgpio.h"
#include "xil_exception.h"
#include "xscugic.h"
#include "xuartps.h"
#include "string.h"
#define btn_id XPAR_BTN_DEVICE_ID
#define btnint_id XPAR_FABRIC_BTN_IP2INTC_IRPT_INTR
#define intc_id XPAR_PS7_SCUGIC_0_DEVICE_ID
#define btn_mask_int XGPIO_IR_CH1_MASK
XGpio btn;

XScuGic btnint; // khai bao bien

XUartPs_Config *cf;
XUartPs uart1;

// Ham dieu khien ngat


int dem=0;

int i;
u8 chuyen(dem)
{
return dem+48;
}
void hamdk()
{
int gt_btn;
u8 str[30]="Ban vua nhan BTNU lan thu: ";
u8 d[100];
// Disable ngat GPIO
XGpio_InterruptDisable(&btn, btn_mask_int);
// bo qua lan bam phim bo sung
if ((XGpio_InterruptGetStatus(&btn)& btn_mask_int) != btn_mask_int)
return;
// Dem so lan nhan cua BTNU
gt_btn = XGpio_DiscreteRead(&btn, 1);
for(i=0;i<sizeof(str);i++)
XUartPs_Send(&uart1,&str[i],1);
if(gt_btn==16)
{
dem++;
d[0]=dem;
for(i=0;i<2;i++)
XUartPs_Send(&uart1,&d[i],1);
}

// Xoa co ngat
XGpio_InterruptClear(&btn, btn_mask_int);
// Enable ngat GPIO
XGpio_InterruptEnable(&btn, btn_mask_int);
}
// Ham khoi tao ngat
int setup_int1(XGpio *t)
{
XScuGic_Config *IntcConfig;
int status;
// Khoi tao ngat
IntcConfig = XScuGic_LookupConfig(XPAR_PS7_SCUGIC_0_DEVICE_ID);
status = XScuGic_CfgInitialize(&btnint, IntcConfig, IntcConfig->CpuBaseAddress);
if(status != XST_SUCCESS) return XST_FAILURE;
Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
(Xil_ExceptionHandler)XScuGic_InterruptHandler,&btnint);
Xil_ExceptionEnable();
// goi ham dk ngat
status = XScuGic_Connect(&btnint,btnint_id,(Xil_InterruptHandler)hamdk,(void
*)t);
// Enable ngat GPIO, ngat toan cuc
XGpio_InterruptEnable(t, 1);
XGpio_InterruptGlobalEnable(t);
XScuGic_Enable(&btnint, btnint_id);
return XST_SUCCESS;
}

int main()
{
int status;
status = XGpio_Initialize(&btn, btn_id);
if(status != XST_SUCCESS) return XST_FAILURE;
// UART
init_platform();
cf = XUartPs_LookupConfig(XPAR_PS7_UART_1_DEVICE_ID);
XUartPs_CfgInitialize(&uart1,cf,cf->BaseAddress);
XUartPs_SetBaudRate(&uart1,9600);
XGpio_Initialize(&btn,XPAR_BTN_DEVICE_ID);
XGpio_SetDataDirection(&btn, 1, 0xFF);
status = setup_int1(&btn);
if(status != XST_SUCCESS) return XST_FAILURE;
while (1);
cleanup_platform();
return 0;
}
// Khong ngat

#include "platform.h"

#include "xparameters.h"

#include "xgpio.h"

#include "xuartps.h"

XGpio btn;

XUartPs_Config *cf;

XUartPs uart1;

int main()

u8 kt;

int gt_btn;

int dem;

init_platform();

cf = XUartPs_LookupConfig(XPAR_PS7_UART_1_DEVICE_ID);

XUartPs_CfgInitialize(&uart1,cf,cf->BaseAddress);

XUartPs_SetBaudRate(&uart1,9600);

XGpio_Initialize(&btn,XPAR_PS7_GPIO_0_DEVICE_ID)

XGpio_SetDataDirection(&btn,1,0xff); // btn

while(1)
{

If((XGpio_DiscreteRead(&btn,1))==16)

while((XGpio_DiscreteRead(&btn,1))==16);

dem++;

XUartPs_Send(&uart1,&dem,1);

cleanup_platform();

return 0;

}
Câu 39: Thiết kế hệ thống SOC cho phép đếm tiến từ 0 - 9 khi phím SW7 = 1 với
chu kỳ đếm là 1s. Kết quả đếm hiển thị dạng thập phân trên LED 7 thanh.

#include "xgpio.h"
#include "xparameters.h"

#define SW_LED7 XPAR_AXI_GPIO_0_DEVICE_ID

XGpio sw;

int delay(int n)
{
int i;
for(i-0;i<n;i++)
return 0;
}
int ma_led(int x)
{
switch(x)
{
case 0: return 0xc0;
case 1: return 0xf9;
case 2: return 0xa4;
case 3: return 0xb0;
case 4: return 0x99;
case 5: return 0x92;
case 6: return 0x82;
case 7: return 0xf8;
case 8: return 0x80;
case 9: return 0x90;
}
}
int main()
{
int d=0;
XGpio_Initialize(&sw,SW_LED7);
XGpio_SetDataDirection(&sw,1,0xFF);
XGpio_SetDataDirection(&sw,2,0x00);
while(1)
{
if(XGpio_DiscreteRead(&sw,1)==128)
{
while(XGpio_DiscreteRead(&sw,1)==128);
if(d>9)
d=0;
else
d++;
XGpio_DiscreteWrite(&sw,2,ma_led(d));
delay(100000000);
}
}
return 0;
}
Câu 40: Thiết kế hệ thống SOC cho phép đếm lùi từ 9 – 0 khi phím SW0 = 1. Kết
quả đếm hiển thị dạng thập phân trên LED 7 thanh.

#include "xgpio.h"
#include "xparameters.h"

#define SW_LED7 XPAR_AXI_GPIO_0_DEVICE_ID

XGpio sw;

int delay(int n)
{
int i;
for(i-0;i<n;i++)
return 0;
}
int ma_led(int x)
{
switch(x)
{
case 0: return 0xc0;
case 1: return 0xf9;
case 2: return 0xa4;
case 3: return 0xb0;
case 4: return 0x99;
case 5: return 0x92;
case 6: return 0x82;
case 7: return 0xf8;
case 8: return 0x80;
case 9: return 0x90;
}
}
int main()
{
int d=0;
XGpio_Initialize(&sw,SW_LED7);
XGpio_SetDataDirection(&sw,1,0xFF);
XGpio_SetDataDirection(&sw,2,0x00);
while(1)
{
if(XGpio_DiscreteRead(&sw,1)==1)
{
while(XGpio_DiscreteRead(&sw,1)==1);
if(d<0)
d=9;
else
d--;
XGpio_DiscreteWrite(&sw,2,ma_led(d));
delay(100000000);
}
}
return 0;
}
Biểu điểm bài thường xuyên 1:

Gọi đúng , đủ các khối trong block : 1điểm

Kết nối đúng: 1điểm

Chạy được file hdl 1 điểm

Chạy được file bit 1 điểm

Chuyển được sang SDK 1 điểm

Tạo file .c cho việc viết code 1 điểm

Code đúng 4 điểm

#include "platform.h"

#include "xparameters.h"

#include "xgpio.h"

#include "xuartps.h"

XGpio sw;

XUartPs_Config *cf;

XUartPs uart1;

int main()

int gt_sw,i;

u8 str[30]="Swith vua bat";

u8 str1[30]="Swith vua tat";


u8 kt;

init_platform();

cf = XUartPs_LookupConfig(XPAR_PS7_UART_1_DEVICE_ID);

XUartPs_CfgInitialize(&uart1,cf,cf->BaseAddress);

XUartPs_SetBaudRate(&uart1,9600);

XGpio_Initialize(&sw,XPAR_AXI_GPIO_SW_DEVICE_ID);

XGpio_SetDataDirection(&sw,1,0xff);

while(1)

gt_sw=XGpio_DiscreteRead(&sw,1);

if(gt_sw==1)

kt='1';

for(i=0;i<sizeof(str);i++)

XUartPs_Send(&uart1,&str[i],1);

XUartPs_Send(&uart1,&kt,1);

if(gt_sw==2)

kt='2';
for(i=0;i<sizeof(str);i++)

XUartPs_Send(&uart1,&str[i],1);

XUartPs_Send(&uart1,&kt,1);

if(gt_sw==4)

kt='4';

for(i=0;i<sizeof(str);i++)

XUartPs_Send(&uart1,&str[i],1);

XUartPs_Send(&uart1,&kt,1);

if(gt_sw==8)

kt='8';

for(i=0;i<sizeof(str);i++)

XUartPs_Send(&uart1,&str[i],1);

XUartPs_Send(&uart1,&kt,1);

if(gt_sw==16)

{
kt=’16';

for(i=0;i<sizeof(str);i++)

XUartPs_Send(&uart1,&str[i],1);

XUartPs_Send(&uart1,&kt,1);

if(gt_sw==32)

kt='32';

for(i=0;i<sizeof(str);i++)

XUartPs_Send(&uart1,&str[i],1);

XUartPs_Send(&uart1,&kt,1);

if(gt_sw==64)

kt='64';

for(i=0;i<sizeof(str);i++)

XUartPs_Send(&uart1,&str[i],1);

XUartPs_Send(&uart1,&kt,1);

if(gt_sw==128)
{

kt='128';

for(i=0;i<sizeof(str);i++)

XUartPs_Send(&uart1,&str[i],1);

XUartPs_Send(&uart1,&kt,1);

cleanup_platform();

return 0;

Ký tự A

#include "platform.h"

#include "xparameters.h"

#include "xgpio.h"

#include "xuartps.h"

XGpio btn;

XUartPs_Config *cf;

XUartPs uart1;

int main()

{
int gt_btn;

u8 kt='A';

init_platform();

cf = XUartPs_LookupConfig(XPAR_PS7_UART_1_DEVICE_ID);

XUartPs_CfgInitialize(&uart1,cf,cf->BaseAddress);

XUartPs_SetBaudRate(&uart1,9600);

XGpio_Initialize(&btn,XPAR_AXI_GPIO_BTN_DEVICE_ID);

XGpio_SetDataDirection(&btn,1,0xff);

while(1)

gt_btn=XGpio_DiscreteRead(&btn,1);

if(gt_btn==1)

XUartPs_Send(&uart1,&kt,1);

cleanup_platform();

return 0;

You might also like