标题:
基于CC2530的光照传感器程序
[打印本页]
作者:
quser123
时间:
2017-12-28 08:29
标题:
基于CC2530的光照传感器程序
单片机源程序如下:
/******************************************************/
//-------------------LED control----------------------//
/* Creat By ES */
/******************************************************
实验内容:点亮蓝色的LED,板子上一共有3个LED,分别由3个
引脚控制,本程序点亮P14控制的蓝色LED
******************************************************/
#include <ioCC2530.h>
#define KEY1 P1_1 //KEY1为P1.1口控制
#define KEY2 P1_2 //
#define KEY3 P1_3 //
#define LED1 P1_0 //P10连接红色LED1
#define LED2 P1_1 //P11连接黄色LED2
#define LED3 P1_4 //P14连接蓝色LED3
char a[8];
char temp=0;
void IO_Init(void)
{
P1DIR |= 0xff; //P1定义为输出
P1 = 0x10; //按键使能,所有LED不亮
APCFG=0x01;
P0SEL=0x01;
}
void Delay(int ms)
{
int i,j;
for(i=0;i<300;i++)
for(j=0;j<ms;j++);
}
/**************************
系统时钟 不分频
计数时钟 32分频
**************************/
void InitClock(void)
{
CLKCONCMD &= ~0x40; // 设置系统时钟源为 32MHZ晶振
while(CLKCONSTA & 0x40); // 等待晶振稳定
CLKCONCMD &= ~0x47; // 设置系统主时钟频率为 32MHZ
}
/****************************************************************
读取温度传感器 AD 值函数
****************************************************************/
float getTemperature(void){
int value;
ADCCON3 = (0x30); //选择1.25V为参考电压;14位分辨率;对片内温度传感器采样 0011 1110
ADCCON1 |= 0x30; //选择ADC的启动模式为手动0011 0000
ADCCON1 |= 0x40; //启动AD转化
while(!(ADCCON1 & 0x80)); //等待 AD 转换完成
value = ADCL; //ADCL 寄存器低 2 位无效
value |= (((int)ADCH) <<8); //2047:8196 Yout
value >>=2;
return (1.15*value/8196); //根据 AD 值,计算出实际的温度,芯片手册有错,温度系数应该是4.5 /℃
//进行温度校正,这里减去5℃(不同芯片根据具体情况校正)
}
void getnum(float result)
{
a[0]=(char)result%10+48;
a[1]='.';
a[2]=(char)(result*10)%10+48;
a[3]=(char)(result*100)%10+48;
a[4]=10;
}
/****************************************************************
串口初始化函数
***********************************************************/
void InitUart()
{
CLKCONCMD &= ~0x40; // 设置系统时钟源为 32MHZ晶振
while(CLKCONSTA & 0x40); // 等待晶振稳定
CLKCONCMD &= ~0x47; // 设置系统主时钟频率为 32MHZ
PERCFG = 0x00; //位置1 P0口
P0SEL = 0x3c; //P0_2,P0_3,P0_4,P0_5用作串口,第二功能
P2DIR &= ~0XC0; //P0 优先作为UART0 ,优先级
U0CSR |= 0x80; //UART 方式
U0GCR |= 11; //U0GCR与U0BAUD配合
U0BAUD |= 216; // 波特率设为115200
UTX0IF = 0; //UART0 TX 中断标志初始置位1 (收发时候)
U0CSR |= 0X40; //允许接收
IEN0 |= 0x84; // 开总中断,接收中断
}
/****************************************************************
串口发送字符串函数
****************************************************************/
void Uart_Send_String(char *Data,int len)
{
{
int j;
for(j=0;j<len;j++)
{
U0DBUF = *Data++;
while(UTX0IF == 0); //发送完成标志位
UTX0IF = 0;
}
}
}
void main(void)
{
float result;
IO_Init(); //调用初始e化程序
InitClock();
InitUart();
while(1)
{
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
基于CC2530的光照传感器.rar
(28.36 KB, 下载次数: 41)
2017-12-28 08:27 上传
点击文件名下载附件
光照传感器
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1