本帖最后由 zhoubojay 于 2011-10-20 20:40 编辑
参考论坛上的自己改动一下,初学可以看看- /*---------------------------------------------------------------------------------------------------------*/
- /* */
- /* Copyright(c) 2011 Nuvoton Technology Corp. All rights reserved. */
- /* 按下KEY2键,按一下第一个lED亮,按两下第二个亮,第一个灭,按第5下全亮,第6下全灭 */
- /*---------------------------------------------------------------------------------------------------------*/
- #include<stdio.h>
- #include"NUC1XX.h"
- //#include"variables.h"
- #include"Driver\DrvSYS.h"
- #include"Driver\DrvGPIO.h"
- void Set_System(void);
- void RCC_Configuration(void);
- void GPIO_Configuration(void);
- void delay_ms(uint32_t count);
- void Set_System(void)
- {
- RCC_Configuration(); //配置系统时钟
- GPIO_Configuration(); //配置GPIO
- }
- void RCC_Configuration(void)
- {
- UNLOCKREG();
- DrvSYS_SetOscCtrl(E_SYS_XTL12M,1);
- delay_ms(100);
- }
- void GPIO_Configuration(void)
- {
- DrvGPIO_Open(E_GPA,2,E_IO_OUTPUT);
- 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_Open(E_GPB,14,E_IO_INPUT);
- DrvGPIO_Open(E_GPB,15,E_IO_INPUT);
- }
- void delay_ms(uint32_t count)
- {
- uint32_t i,j;
- for(i=count;i>0;i--)
- for(j=2395;j>0;j--);
- }
- int main(void)
- {
- uint8_t flag=0;
- uint8_t count=0;
- Set_System();
- while(1)
- {
- if(DrvGPIO_GetBit(E_GPB,14)==0)
- delay_ms(30);
- if(DrvGPIO_GetBit(E_GPB,14)==0)
- flag=1;
- if(flag)
- {
- if(DrvGPIO_GetBit(E_GPB,14)==1)
- {
- flag=0;
- count++;
- }
- }
- if(count>=7) count=1;
- switch(count)
- {
- case 1:
- DrvGPIO_ClrBit(E_GPA,2); break;
- case 2: DrvGPIO_ClrBit(E_GPA,3);
- DrvGPIO_SetBit(E_GPA,2); break;
- case 3: DrvGPIO_ClrBit(E_GPA,4);
- DrvGPIO_SetBit(E_GPA,3); break;
- case 4: DrvGPIO_ClrBit(E_GPA,5);
- DrvGPIO_SetBit(E_GPA,4); break;
- case 5:
- DrvGPIO_ClrBit(E_GPA,2);
- DrvGPIO_ClrBit(E_GPA,3);
- DrvGPIO_ClrBit(E_GPA,4);
- DrvGPIO_ClrBit(E_GPA,5);
- break;
- case 6:
- DrvGPIO_SetBit(E_GPA,2);
- DrvGPIO_SetBit(E_GPA,3);
- DrvGPIO_SetBit(E_GPA,4);
- DrvGPIO_SetBit(E_GPA,5);
- break;
- default:break;
- }
- }
- }
|