lm75b 读取温度 c语言,STC单片机读取LM75A温度的代码,以及ADC读取电压。给大家分享一下把...
#include"main.h"
char xdata temp_[3]; //
char xdata test[15];
bit temp_flag;
void Delay_us(int i) //iic延时
{
int j;
for(j=0;j
}
void IIC_init(void) //iic初始化
{
SCL = 1;
Delay_us(5);
SDA = 1;
Delay_us(5);
}
void iic_start(void) //iic通信起始信号
{
SDA = 1;
Delay_us(2);
SCL = 1;
Delay_us(2);
SDA = 0;
Delay_us(2);
}
void iic_stop(void) //iic通信终止信号
{
SDA = 0;
Delay_us(2);
SCL = 1;
Delay_us(2);
SDA =1;
}
void iic_ack(void) //发送应答信号函数
{
SCL = 0;
SDA = 0;
Delay_us(2);
SCL = 1;
Delay_us(2);
SCL = 0;
Delay_us(1);
SDA = 1;
}
void read_ack(void) //iic应答函数
{
SCL = 0;
Delay_us(2);
SDA = 1;
SCL = 1;
Delay_us(2);
SCL = 0;
}
void iic_nack() //iic非应答函数
{
SDA = 1;
Delay_us(2);
SCL = 1;
Delay_us(2);
SCL = 0;
}
u8 get_byte(void) //输入一个字节
{
u8 dd;
int i;
dd=0;
SDA = 1;
for (i=0; i<8; i++)
{
Delay_us(1);
SCL = 0;
Delay_us(5);
SCL = 1;
Delay_us(2);
dd<<=1;
if (SDA)
dd|=0x01;
Delay_us(1);
}
SCL = 0;
Delay_us(1);
return dd;
}
void out_byte(u8 dd) //输出一个字节
{
u8 i;
for(i=0;i<8;i++)
{
SCL = 0;
Delay_us(0);
SDA = (dd & 0x80)>>7;
Delay_us(2);
SCL = 1;
Delay_us(3);
dd <<= 1;
}
SCL = 0;
}
//写入器件地址和所需读取寄存器的地址
void iic_write_addr(u8 addr,u8 data_addr)
{
iic_start();
out_byte(addr);
read_ack();
out_byte(data_addr);
read_ack();
}
//iic总线读取多个数据
void IICA_Read(u8 id, u8 addr, u8 *p, u16 len)
{
int i;
bit EA_SAVE = EA;
EA = 0;
iic_write_addr(id|0,addr);
iic_start();
out_byte(id|1);
read_ack();
for (i=0;i
{
*p++ = get_byte();
if (i!=(len-1))
iic_ack();
}
iic_nack();
iic_stop();
EA = EA_SAVE;
}
//读取并计算当前温度
void readTemperature()
{
u8 id=0x90; //设备地址
u8 addr=0x00; //温度寄存器地址
u32 temp_high; //储存高字节
u8 temp_low; //储存低字节
u8 temp[2]={0};
u8 a = 0;
IICA_Read(id,addr,temp,2); //将温度的两个字节存到temp中
temp_high = temp[0]; //温度高
temp_low = temp[1]; //温度低
temp_high = (temp_high << 8) + temp_low;
temp_high = temp_high >> 5;
memset(test,0,sizeof(test));
if((temp_high & 0x0400) == 0x0400)
test[a++] = '-';
else
test[a++] = '+';
temp_high = temp_high * 125;
if(temp_high >= 25500)
temp_flag = 1;
if(temp_high >= 100000)
test[a++] = temp_high / 100000 % 10 + '0';
test[a++] = temp_high / 10000 % 10 + '0';
test[a++] = temp_high / 1000 % 10 + '0';
test[a++] = '.';
test[a++] = temp_high / 100 % 10 + '0';
test[a++] = temp_high % 100 / 10 + '0';
test[a++] = temp_high % 10 + '0';
test[a++] = 'C'; //℃
}
lm75b 读取温度 c语言,STC单片机读取LM75A温度的代码,以及ADC读取电压。给大家分享一下把...相关推荐
- 电视摇控器c语言程序,单片机红外电视遥控器C51程序代码
原标题:单片机红外电视遥控器C51程序代码 //************************************************************** //名称:代码() /*- ...
- 通用编程c语言,STC单片机C语言通用万能编程.docx
<8051单片机C语言编程模板> TOC \o "1-5" \h \z \o "Current Document" 毫秒级CPU延时函数 4 \o ...
- ymodem协议c语言,STC单片机ISP-Demo-使用Y-Modem协议源码与库函数分享
#define MAIN_Fosc 22118400L //定义主时钟 #define Baudrate0 115200UL ...
- ADC0809检测报警c语言,51单片机ADC0809+AD590温度检测、报警程序
#include "reg52.h"//头文件 #include "intrins.h" #define uchar unsigned char//宏定义 #d ...
- java 读取文件第一行代码,java文件读取。(单字节读取和按行读取读取)
评论 # re: java文件读取.(单字节读取和按行读取读取) 2008-10-06 15:16 隔叶黄莺 再简单也比不过 groovy 的这一行代码 text = new File("f ...
- VSCode PlatformIO开发STC单片机注意事项
VSCode PlatformIO开发STC单片机注意事项 首先需要注意代码的语法 附上本论坛一位网友总结的笔记 其实开源的SDCC+code blocks也不错的.SDCC语法与keil C有一点点 ...
- 单片机c语言中void key(void),STC单片机C语言通用万能编程模板
<STC单片机C语言通用万能编程模板>由会员分享,可在线阅读,更多相关<STC单片机C语言通用万能编程模板(23页珍藏版)>请在人人文库网上搜索. 1.8051 单片机 C 语 ...
- stc单片机c语言 pdf,STC单片机C语言程序设计 第13章 STC单片机C语言指针.pdf
STC单片机C语言指针 主讲:何宾 Email :hebin@mail.buct.edu.cn 2016.03 C51编译器中指针的分类 Cx51编译器支持使用字符"*"声明变量指 ...
- Keil用C语言定义函数,STC单片机Keil中C语言函数定位的方法
STC单片机Keil中C语言函数定位的方法:STC单片机Keil中C语言函数定位的方法 下面以演示程序进行说明 演示程序中有ReadIAP.ProgramIAP和EraseIAP三个函数 最终目的是将 ...
- stc15系列c语言pwm编程,STC单片机C语言程序设计 第25章 STC单片机增强型PWM原理及实现.docx...
STC单片机C语言程序设计 第25章 STC单片机增强型PWM原理及实现 STC单片机增强型PWM发生器原理及应用主 讲:何宾Email:hebin@mail.buct.edu.cn2016.03增强 ...
最新文章
- python模块--Beautifulsoup
- ASP.NET MVC Controller激活系统详解:默认实现
- c++Insertion Sort插入排序的实现算法(附完整源码)
- python 中cPickle学习二
- Train Problem II 卡特兰裸题(入门题)
- java面试 上传文件_字节跳动面试官,我也实现了大文件上传和断点续传
- 解决Scrapy-Redis爬取完毕之后继续空跑的问题
- python跟人工智能的关系_Python和人工智能的关系
- 【CCL 2019】参会小结与心得分享
- Ubuntu的版本号命名规则
- 计算机网络实验四协议分析心得,计算机网络学习心得体会范文
- lamp技术研发人员的必备
- 2019033期3d计算机开机号,3D历史120期开奖
- 第九十五章 SQL函数 MINUTE
- Matlab的parfor的使用条件
- 学生成绩分析报告数据分析可视化python实现源码seaborn、matplotlib
- SyntaxHighlighter代码高亮框架使用方法
- 如何一步开启容器时代?青云QingCloud有话要说
- 怎么样才能降低职称论文查重率?
- 手机软件管家 V0.12 申请手机证书、下载软件免签名自动安装
热门文章
- 首次揭秘!字节跳动基础架构技术迭代演进之路
- H5页面唤起指定app或跳转到应用市场
- linux内核下载 ok6410,手把手教你移植linux内核---------OK6410(一)
- 跨境电商机遇爆发,时下应该怎么“玩”?
- 医药电商平台解决方案
- 【剑桥英语I优加】剑桥pet相当于什么级别
- java获取某天时间的最小值和最大值 00:00:00 与 23:59:59
- 超级漂亮炫酷的HTML菜单栏导航栏+网站+独特二级列表
- 如何搭建WordPress个人博客网站?
- 小程序如何复用公众号资质快速认证