📄 lm75a.txt
字号:
#include <REG51.H> //"D:\Keil\C51
#include <ABSACC.H>
#include <ADC_TEMP.H>
extern uchar DispBuf[8];
extern bit I2C_Gets(unsigned char SlaveAddr, unsigned char SubAddr, unsigned char Size, char *dat);
int LM75A_GetTemp();
void DispTemp(int t);
/*
函数:LM75A_GetTemp
功能:读出LM75A的温度值
返回:LM75A温度寄存器的数值(乘以0.125可得到摄氏度值)
*/
int LM75A_GetTemp()
{
unsigned char buf[2];
int t;
I2C_Gets(0x90,0x00,2,buf);
t = buf[0];
t <<= 8;
t += buf[1];
t >>= 5; //去掉无关位
return t;
}
/*
函数:DispTemp()
功能:在数码管上显示出温度值
参数:
t:补码,除以8以后才是真正温度值
*/
void DispTemp(int t)
{
code unsigned char Tab[8][3] =
{
0,0,0,
1,2,5,
2,5,0,
3,7,5,
5,0,0,
6,2,5,
7,5,0,
8,7,5
};
bit s; //符号位
unsigned char i; //整数部分
unsigned char d; //小数部分
unsigned char x100,x10,x;
s=0; //分离出符号
DispBuf[7]=0x0A; //最高位灭
if(t<0)
{ s=1;
t=-t;
DispBuf[7]=0x0C;//最高显示“-”
}
i=t/8; //分离出整数和小数部分
d=t%8;
x100=i/100;
DispBuf[6]=x100;
x10=(i-x100*100)/10;
DispBuf[5]=x10;
x=(i-x100*100)%10;
DispBuf[4]=x;
DispBuf[4]=x|0x80;//显示小数点
DispBuf[3]=Tab[d][0];
DispBuf[2]=Tab[d][1];
DispBuf[1]=Tab[d][2];
DispBuf[0]=14; //disp_seg的第14个字型 C
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -