📄 call20b.c
字号:
/*************************************************************
/* 这是调用DS1620的汇编程序(DS1620B.ASM)的C51程序, */
/* 文件名CALL20B.C */
/* 功能:本程序主要是读出DS1620芯片的温度转换值,转换值先放 */
/* 在变量temp1中。转换值范围-55℃~125℃。 若flag0=0为 */
/* 正温度,若flag0=1为负温度值,最终结果在浮点变量cc中。 */
/*************************************************************/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay1(uint x);
extern uint chai; //把全局变量chai声明为外部变量
extern uint a_func(uchar); //把a_func 声明为外部函数
uint idata temp1;
uchar flag0,temp2;
float idata cc;
void delay1(uint x) //延时程序
{
uchar tw;
while (x-->0){
for (tw=0;tw<125;tw++){;}
}
}
void main() //主程序
{
SP=0xcf;
delay1(1000);
EA=0;
flag0=0;
chai=a_func(0x0a); // 读出DS1620的温度转换值
temp1=chai; // 放入变量temp1中
temp1=temp1&0x01ff; // 保留数值有用部分
//若flag0=0为正温度,若flag0=1为负温度值,结果在变量cc中。
if (temp1>0xff) {
flag0=1;
temp2=temp1-256;
temp2=~temp2+1;
temp1=temp2;
}
cc=(float)temp1/2.0; //计算出温度值
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -