找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2822|回复: 0
打印 上一主题 下一主题
收起左侧

CC2530源程序分享

[复制链接]
跳转到指定楼层
楼主
CC2530的程序

完整代码下载:
LIGHT.rar (28.29 KB, 下载次数: 14)

主程序:
  1. #include "ioCC2530.h"     
  2. #define uint8 unsigned char
  3. #define uint16 unsigned int
  4. #define uint32 unsigned long
  5. extern void Sensor_PIN_INT(void);
  6. extern uint16 ReadAdcValue(uint8 ChannelNum,uint8 DecimationRate,uint8 RefVoltage);
  7. char uart_buffer;

  8. void delay(void)
  9. {
  10.     unsigned int i;
  11.     unsigned char j;

  12.     for(i=0;i<1500;i++)
  13.     {
  14.             for(j=0;j<200;j++)
  15.             {
  16.                   asm("NOP");
  17.                   asm("NOP");
  18.                  asm("NOP");
  19.             }
  20.     }
  21. }

  22. void UartTX_Send_String(unsigned char *Data,int len)   //串口发送函数
  23. {
  24.     int j;
  25.     for(j=0;j<len;j++)
  26.     {
  27.             U0DBUF = *Data++;   
  28.             while(UTX0IF == 0);
  29.             UTX0IF = 0;
  30.     }
  31. }

  32. void UartTX_Send_Data(unsigned char Data,int len)   //串口发送函数
  33. {
  34.     int j;
  35.     for(j=0;j<len;j++)
  36.     {
  37.             U0DBUF = Data;   
  38.             while(UTX0IF == 0);
  39.             UTX0IF = 0;
  40.     }
  41. }

  42. #pragma vector=URX0_VECTOR   //uart0中断函数
  43. __interrupt void uart0(void){
  44.     URX0IF = 0; //清中断标志
  45.     P0_0=~P0_0;
  46.     uart_buffer = U0DBUF;
  47.     //UartTX_Send_String("welcome",10);
  48.     UartTX_Send_Data(uart_buffer,1);
  49. }

  50. void main( void )
  51. {
  52.     unsigned char buf[8];
  53.     uint16 temp;
  54.     P0DIR |= 0x01;  //设置P0.0为输出方式;P0.4和P0.5为输入方式
  55.     APCFG = (0x1<<1)|(0x1<<4)|(0x1<<6);//P01,P04,P06为ADC口
  56.    
  57.     P2DIR |= 0x01;  //设置P2.0为输出方式
  58.     P0_0 = 1;
  59.     P2_0 = 1;       //熄灭LED
  60.     CLKCONCMD &= ~0x40;          //选择32M晶振
  61.     while(!(SLEEPSTA & 0x40));   //等待XSOC稳定
  62.     CLKCONCMD = 0xb8;            //TICHSPD 128分频,CLKSPD 不分频
  63.     SLEEPCMD |= 0x04;            //关闭不用的RC 振荡器
  64.     PERCFG = 0x00;               //位置1 P0 口
  65.     P0SEL = 0x3c;                //P0 用作串口
  66.     U0CSR |= 0x80;               //UART 方式
  67.     U0GCR |= 10;                 //baud_e = 10;
  68.     U0BAUD |= 216;               //波特率设为57600
  69.     UTX0IF = 1;
  70.     U0CSR |= 0X40;               //允许接收
  71.     IEN0 |= 0x84;                //开总中断,接收中断         
  72.     Sensor_PIN_INT();
  73.    
  74.     UartTX_Send_String("Testing...\r\n",12);
  75.     while(1){                            
  76.         P2_0=~P2_0;              
  77.         temp = ReadAdcValue(4,3,0x2);//P0.4采集光照度,12bit,AVDD5作为参考
  78.         temp = (temp>>4);   
  79.         buf[0] = (uint8)(temp&0xff);
  80.         buf[1] = (buf[0]>>4)&0xf;
  81.         buf[2] =  buf[0]&0xf;
  82.         if(buf[1] > 0x9)
  83.             buf[1] = buf[1] - 0XA + 'A';
  84.         else
  85.             buf[1] = buf[1] + '0';
  86.         if(buf[2] > 0x9)
  87.             buf[2] = buf[2] - 0XA + 'A';
  88.         else
  89.             buf[2] = buf[2] + '0';
  90.         UartTX_Send_String("LIGHT = ",8);
  91.               UartTX_Send_String(&buf[1],1);
  92.         UartTX_Send_String(&buf[2],1);
  93.         UartTX_Send_String("\r\n",2);       
  94.            
  95.             delay();
  96.     }
  97. } // end of main()
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩

相关帖子

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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