#include"nuc1xx.h"
#include"drvgpio.h"
#include"drvtimer.h"
int n;
void delay(int i) //延时小程序
{
unsigned int j,k;
for(j=0;j<i;j++)
for(k=0;k<600;k++);
}
void deng1() //1 2 3 4(点亮方式)
{
DrvGPIO_ClrBit(E_GPA,2);delay(200);
DrvGPIO_SetBit(E_GPA,2);delay(200);
DrvGPIO_ClrBit(E_GPA,3);delay(200);
DrvGPIO_SetBit(E_GPA,3);delay(200);
DrvGPIO_ClrBit(E_GPA,4);delay(200);
DrvGPIO_SetBit(E_GPA,4);delay(200);
DrvGPIO_ClrBit(E_GPA,5);delay(200);
DrvGPIO_SetBit(E_GPA,5);delay(200);
}
void deng2() //1 12 123 1234 234 34 4
{
DrvGPIO_ClrBit(E_GPA,2);
delay(600);
DrvGPIO_ClrBit(E_GPA,3);
delay(600);
DrvGPIO_ClrBit(E_GPA,4);
delay(600);
DrvGPIO_ClrBit(E_GPA,5);
delay(600);
DrvGPIO_SetBit(E_GPA,2);
delay(600);
DrvGPIO_SetBit(E_GPA,3);
delay(600);
DrvGPIO_SetBit(E_GPA,4);
delay(600);
DrvGPIO_SetBit(E_GPA,5);
delay(600);
}
void deng3() //24 13
{
DrvGPIO_ClrBit(E_GPA,2);
DrvGPIO_ClrBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,5);
delay(800);
DrvGPIO_ClrBit(E_GPA,3);
DrvGPIO_ClrBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,4);
delay(800);
}
void deng4() //14 23
{
DrvGPIO_ClrBit(E_GPA,2);
DrvGPIO_ClrBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
delay(800);
DrvGPIO_ClrBit(E_GPA,3);
DrvGPIO_ClrBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,5);
delay(800);
}
void deng5() //23 45
{
DrvGPIO_ClrBit(E_GPA,2);
DrvGPIO_ClrBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
delay(800);
DrvGPIO_ClrBit(E_GPA,4);
DrvGPIO_ClrBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
delay(800);
}
void deng6() // 1 4 2 3
{
DrvGPIO_ClrBit(E_GPA,2);delay(200);
DrvGPIO_SetBit(E_GPA,2);delay(200);
DrvGPIO_ClrBit(E_GPA,5);delay(200);
DrvGPIO_SetBit(E_GPA,5);delay(200);
DrvGPIO_ClrBit(E_GPA,3);delay(200);
DrvGPIO_SetBit(E_GPA,3);delay(200);
DrvGPIO_ClrBit(E_GPA,4);delay(200);
DrvGPIO_SetBit(E_GPA,4);delay(200);
}
void EINT0Callback(void) //按键中断的n++程序,n的值不同,闪灯的小程序不同。
{
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
n++;
if(n>5)
n=0;
}
main()
{
DrvGPIO_Open(E_GPA,2,E_IO_OUTPUT); //配置GPA2345为输出口
DrvGPIO_Open(E_GPA,3,E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,4,E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,5,E_IO_OUTPUT);
DrvGPIO_EnableEINT0(E_IO_FALLING,E_MODE_EDGE,EINT0Callback); //使能外部中断0
DrvGPIO_EnableDebounce(E_GPB,14); //使能中断防反跳模式
while(1) // 亮灯的循环
{
switch(n)
{
case 0:deng1();break;
case 1:deng2();break;
case 2:deng3();break;
case 3:deng4();break;
case 4:deng5();break;
case 5:deng6();break;
default :break;
}
}
}