#include <stdio.h>
#include "NUC1xx.h"
#include "DrvGPIO.h"
#include "DrvSYS.h"
#define GPA E_GPA
#define GPB E_GPB
#define GPC E_GPC
#define GPD E_GPD
#define INPUT E_IO_INPUT
#define OUTPUT E_IO_OUTPUT
#define jia DrvGPIO_GetBit(GPB,15)
#define jian DrvGPIO_GetBit(GPB,14)
uint8_t temp;
uint8_t data;
void delay_loop(uint32_t count)// 1ms(晶振为12MHZ)延时子程序
{
uint32_t i,j;
for(i=count;i>0;i--)
for(j=2395;j>0;j--);
}
void system_int()
{
UNLOCKREG();
DrvSYS_SetOscCtrl(E_SYS_XTL12M, 1);
LOCKREG(); // 芯片注册上锁
delay_loop(100);
DrvGPIO_Open( GPA, 2, OUTPUT ); // 设置GPA2端口为输出模式
DrvGPIO_Open( GPA, 3, OUTPUT); // 设置GPA3端口为输出模式
DrvGPIO_Open( GPA, 4, OUTPUT); // 设置GPA4端口为输出模式
DrvGPIO_Open( GPA, 5, OUTPUT); // 设置GPA5端口为输出模式
DrvGPIO_Open( GPB, 15,INPUT ); // 设置GPB15端口为输入模式
DrvGPIO_Open( GPB, 14,INPUT); // 设置GPB14端口为输入模式
}
int32_t keyscan()
{
if(jia==0)
{
delay_loop(5);
if(jia==0)
{
while(!jia);
temp++;
}
}
if(jian==0)
{
delay_loop(5);
if(jian==0)
{
while(!jian);
temp--;
}
}
return temp;
}
int main (void)
{
system_int();
while(1)
{
DrvGPIO_ClrBit(E_GPA, 2); //LED1点亮
delay_loop(500);
DrvGPIO_SetBit(E_GPA, 2); //LED1熄灭
delay_loop(500);
DrvGPIO_ClrBit(E_GPA, 2); //LED1点亮
DrvSYS_Delay(100000);
DrvGPIO_SetBit(E_GPA, 2); //LED1熄灭
DrvSYS_Delay(700000);
data=keyscan();
switch(data)
{
case 1:DrvGPIO_ClrBit(GPA,2); break;
case 2:DrvGPIO_ClrBit(GPA,3); break;
case 3:DrvGPIO_ClrBit(GPA,4); break;
case 4:DrvGPIO_ClrBit(GPA,5); break;
default: break;
}
}
} |