找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 396|回复: 0
收起左侧

CC2530基础实验

[复制链接]
ID:1078974 发表于 2024-6-1 17:00 | 显示全部楼层 |阅读模式

  1. #include <iocc2530.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. #define LED1 P0_1
  5. #define LED2 P0_0
  6. #define LED3 P2_0
  7. #define KEY1 P0_7
  8. #define KEY2 P0_6
  9. void LEDINIT()
  10. {
  11.   P0SEL &=~0X03;
  12.   P0DIR |=0X03;
  13.   P2SEL&=~0x01;
  14.   P2DIR |=0X01;
  15.   LED1 = 1;
  16.   LED2=1;
  17.   LED3=1;
  18. }
  19. void KEYINIT()
  20. {
  21.   P0SEL&=~0X80;
  22.   P0DIR&=~0X80;
  23.   P0INP&=~0X80;
  24. }
  25. void CLK32M()
  26. {
  27.   CLKCONCMD&=~0x40;
  28.   while(CLKCONCMD&0x40);
  29.       CLKCONCMD&=~0x07;
  30. }
  31. void delay(uint x)
  32. {
  33.   uint i,j;
  34.   for(i=0;i<x;i++)
  35.   for(j=0;j<288;j++);
  36. }

  37. uchar i=0;
  38. uchar keyscan1()
  39. {
  40.   if(KEY1==0)
  41.   {
  42.     delay(10);
  43.     if(KEY1==0)
  44.     {
  45.     while(KEY1==0);
  46.     i++;
  47.   }
  48.     else
  49.     i=i;
  50.     if(i>2)
  51.     i=i%3;
  52.     }
  53.   return i;
  54. }

  55. uchar j=0;
  56. uchar keyscan2()
  57. {
  58.     if(KEY2==0)
  59.     {
  60.     delay(10);
  61.     if(KEY2==0)
  62.     {
  63.     while(KEY2==0);
  64.     j++;
  65.     }
  66.     else
  67.     j=j;
  68.     if(j>1)
  69.     j=j%2;
  70.     }
  71.    
  72.     return j;
  73. }
  74. void main()
  75. {
  76.    LEDINIT();
  77.    KEYINIT();
  78.    CLK32M();
  79.    while(1)
  80.    {
  81.      switch(keyscan1())
  82.     {
  83.       case 0:LED1=0;LED2=1;LED3=1;break;
  84.       case 1:LED1=1;LED2=0;LED3=1;break;
  85.       case 2:LED1=1;LED2=1;LED3=0;break;
  86.     }
  87.      if(keyscan2()==1)
  88.     {
  89.       LED1=LED2=LED3=1;
  90.       delay(500);
  91.       LED1=0;LED2=1;LED3=1;
  92.       delay(500);
  93.       LED1=1;LED2=0;LED3=1;
  94.       delay(500);
  95.       LED1=1;LED2=1;LED3=0;
  96.       delay(500);
  97.        if(keyscan2()==1)
  98.       {
  99.         LED1=LED2=LED3=0;
  100.         delay(500);
  101.       }
  102.     }
  103.     else
  104.       LED1=LED2=LED3=1;
  105.     }
  106. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表