-
大小: 63KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-05-16
- 语言: 其他
- 标签: CC2530OLED
资源简介
CC2530+OLED电压信号(模拟信号)显示串口传入上位机
代码片段和文件信息
#include “ds18b20.h“
#define Ds18b20IO P0_7 //温度传感器引脚
void Delay_us(unsigned int k)//us延时函数
{
T1CC0L = 0x06;
T1CC0H = 0x00;
T1CTL = 0x02;
while(k)
{
while(!(T1CNTL >= 0x04));
k--;
}
T1CTL = 0x00; //关闭定时器
}
void Delay_ms(unsigned int k)
{
T1CC0L = 0xe8;
T1CC0H = 0x03;
T1CTL = 0x0a; //模模式 32分频
while(k)
{
while(!((T1CNTL >= 0xe8)&&(T1CNTH >= 0x03)));
k--;
}
T1CTL = 0x00; //关闭定时器
}
void Delay_s(unsigned int k)
{
while(k)
{
Delay_ms(1000);
k--;
}
}
//时钟频率为32M
void Ds18b20Delay(unsigned int k)
{
unsigned int ij;
for(i=0;i for(j=0;j<2;j++);
}
void Ds18b20InputInitial(void)//设置端口为输入
{
P0DIR &= 0x7f;
}
void Ds18b20OutputInitial(void)//设置端口为输出
{
P0DIR |= 0x80;
}
//ds18b20初始化 初始化成功返回0x00,失败返回0x01
unsigned char Ds18b20Initial(void)
{
unsigned char Status = 0x00;
unsigned int CONT_1 = 0;
unsigned char Flag_1 = 1;
Ds18b20OutputInitial();
Ds18b20IO = 1; //DQ复位
Ds18b20Delay(260); //稍做延时
Ds18b20IO = 0; //单片机将DQ拉低
Ds18b20Delay(750); //精确延时 大于 480us 小于960us
Ds18b20IO = 1; //拉高总线
Ds18b20InputInitial();//设置IO输入
while((Ds18b20IO != 0)&&(Flag_1 == 1))//等待ds18b20响应,具有防止超时功能
{ //等待约60ms左右
CONT_1++;
Ds18b20Delay(10);
if(CONT_1 > 8000)Flag_1 = 0;
Status = Ds18b20IO;
}
Ds18b20OutputInitial();
Ds18b20IO = 1;
Ds18b20Delay(100);
return Status; //返回初始化状态
}
void Ds18b20Write(unsigned char infor)
{
unsigned int i;
Ds18b20OutputInitial();
for(i=0;i<8;i++)
{
if((infor & 0x01))
{
Ds18b20IO = 0;
Ds18b20Delay(6);
Ds18b20IO = 1;
Ds18b20Delay(50);
}
else
{
Ds18b20IO = 0;
Ds18b20Delay(50);
Ds18b20IO = 1;
Ds18b20Delay(6);
}
infor >>= 1;
}
}
unsigned char Ds18b20Read(void)
{
unsigned char Value = 0x00;
unsigned int i;
Ds18b20OutputInitial();
Ds18b20IO = 1;
Ds18b20Delay(10);
for(i=0;i<8;i++)
{
Value >>= 1;
Ds18b20OutputInitial();
Ds18b20IO = 0;// 给脉冲信号
Ds18b20Delay(3);
Ds18b20IO = 1;// 给脉冲信号
Ds18b20Delay(3);
Ds18b20InputInitial();
if(Ds18b20IO == 1) Value |= 0x80;
Ds18b20Delay(15);
}
return Value;
}
//温度读取函数
unsigned char ReadDs18B20(void)
{
unsigned char V1V2; //定义高低8位 缓冲
unsigned char temp; //定义温度缓冲寄存器
Ds18b20Initial();
Ds18b20Write(0xcc); // 跳过读序号列号的操作
Ds18b20Write(0x44); // 启动温度转换
Ds18b20Initial();
Ds18b20Write(0xcc); //跳过读序号列号的操作
Ds18b20Write(0xbe); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 31188 2015-11-05 14:59 CC2530okokoko\Debug\Exe\ds18b20.d51
文件 213 2015-11-05 21:24 CC2530okokoko\Debug\Obj\ds18b20.pbd
文件 26502 2015-11-05 14:58 CC2530okokoko\Debug\Obj\ds18b20.r51
文件 129845 2015-11-05 14:59 CC2530okokoko\Debug\Obj\main.r51
文件 3295 2015-11-05 21:46 CC2530okokoko\ds18b20.dep
文件 34276 2012-11-26 11:06 CC2530okokoko\ds18b20.ewd
文件 56703 2015-11-04 20:43 CC2530okokoko\ds18b20.ewp
文件 161 2012-09-09 19:40 CC2530okokoko\ds18b20.eww
文件 1321 2015-11-05 21:24 CC2530okokoko\settings\ds18b20.cspy.bat
文件 4242 2015-11-05 21:46 CC2530okokoko\settings\ds18b20.dbgdt
文件 702 2015-11-05 21:46 CC2530okokoko\settings\ds18b20.dni
文件 3939 2015-11-05 21:46 CC2530okokoko\settings\ds18b20.wsdt
文件 4403 2013-03-25 13:00 CC2530okokoko\Source\adc.h
文件 19103 2015-11-03 21:48 CC2530okokoko\Source\codetab.h
文件 4011 2013-09-03 11:34 CC2530okokoko\Source\ds18b20.c
文件 185 2013-09-03 11:47 CC2530okokoko\Source\ds18b20.h
文件 4969 2012-02-29 21:51 CC2530okokoko\Source\hal_defs.h
文件 3834 2012-02-29 21:46 CC2530okokoko\Source\hal_types.h
文件 6804 2014-10-22 13:11 CC2530okokoko\Source\LCD.h
文件 2645 2013-03-22 10:24 CC2530okokoko\Source\led.h
文件 14978 2015-11-05 14:59 CC2530okokoko\Source\main.c
文件 183 2012-06-05 16:35 CC2530okokoko\Source\uart.h
文件 4403 2013-03-25 13:00 CC2530okokoko\新加\adc.h
文件 4969 2012-02-29 21:51 CC2530okokoko\新加\hal_defs.h
文件 3834 2012-02-29 21:46 CC2530okokoko\新加\hal_types.h
文件 2645 2013-03-22 10:24 CC2530okokoko\新加\led.h
文件 183 2012-06-05 16:35 CC2530okokoko\新加\uart.h
目录 0 2015-11-05 14:58 CC2530okokoko\Debug\Exe
目录 0 2013-07-08 17:48 CC2530okokoko\Debug\List
目录 0 2015-11-05 21:46 CC2530okokoko\Debug\Obj
............此处省略8个文件信息
评论
共有 条评论