Chinaunix首页 | 论坛 | 博客
  • 博客访问: 69232
  • 博文数量: 12
  • 博客积分: 277
  • 博客等级: 二等列兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-01 02:45
文章分类

全部博文(12)

文章存档

2011年(12)

我的朋友

分类: 嵌入式

2011-11-23 12:52:32

 
option设置:
target项配置如下:
user项配置如下:
代码:
  1. #define rGPBCON (*(volatile unsigned *)0x56000010) //Port B control

  2. #define rGPBDAT (*(volatile unsigned *)0x56000014) //Port B data

  3. #define rGPBUP (*(volatile unsigned *)0x56000018) //Pull-up control B



  4. #define rGPGCON (*(volatile unsigned *)0x56000060) //Port G control

  5. #define rGPGDAT (*(volatile unsigned *)0x56000064) //Port G data

  6. #define rGPGUP (*(volatile unsigned *)0x56000068) //Pull-up control G



  7. int Wait_key(void);

  8. void key_init(void);

  9. void Led1_on(void);

  10. void Led1_off(void);

  11. void Led1_init(void);



  12. void delay(int times)

  13. {

  14. int i,j;

  15. for(i=0;i<times;i++)

  16. for(j=0;j<400;j++);

  17. }



  18. void main(void)

  19. {

  20. int flag = 0;



  21. Led1_init();



  22. while(1)

  23. {

  24. if(Wait_key())

  25. {

  26. flag = ~flag;

  27. if (flag)

  28. Led1_on();

  29. else

  30. Led1_off();

  31. }

  32. }

  33. }



  34. void Led1_init(void)

  35. {

  36. rGPBCON &= ~(3<<10);

  37. rGPBCON |= (1<<10);

  38. }



  39. void Led1_on(void)

  40. {

  41. rGPBDAT &=~(1<<5);

  42. }



  43. void Led1_off(void)

  44. {

  45. rGPBDAT |=(1<<5);

  46. }



  47. int Wait_key(void)

  48. {

  49. if(!(rGPGDAT & 0x1))

  50. delay(200);

  51. if(!(rGPGDAT & 0x1)) /*为什么又要判断?消抖*/

  52. {

  53. while(!(rGPGDAT & 0x1));/*等待释放*/

  54. return 1;

  55. }

  56. else

  57. return 0;

  58. }
阅读(1697) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~