数字显示温度计 - 图文 下载本文

5 源程序(所有程序经调试)

//================================================================== //文件名称: DS18B20

//功能说明: 第一,二个DS18B20测试温度数据并通过LED轮流显示,如有某个超出安 //温度范围,则锁定显示且报警,同时,用这个被锁定的温度传感器所指向的发光二极管,//模拟声光报警器——点亮。DS18B20子程序采用的是12位的转换,获得了11位精度的//温度数据,显示正负温度。但是在显示中,由于LED位数的限制,考虑数据的有效性,//取了四位温度数据

//硬件描述:

//资源说明: 11.0592M晶体 //创建日期: 2012-03-03 //软件版本: v 1.0

//================================================================== #include #define uchar unsigned char #define uint unsigned int

//=======================变量定义================================== extern uchar data extern uchar data extern uchar data extern uchar data extern uchar data extern uchar data extern uchar data extern uchar data

LedDispBuff[]; IntgerM; IntgerL; DecimalH; DecimalMH; IntgerM02; IntgerL02; DecimalH02;

13

extern uchar data extern uchar data extern uchar data extern bit

DecimalMH02; m; n;

bdata flag;

//=======================调用函数=================================== void

MnLed(void);

void MnDS18B20(void); void MnDS18B2002(void); void MnApp(void); void MnApp02(void);

//================================================================== //函 数 名: main()

//功能描述: LED动态扫描主循环 //输入参数: 无 //输出参数: 无 //设 计 者: //创建日期:

//================================================================== void {

main(void)

while(1) { n=10; m=10;

while(n--)

14

}

{ MnLed(); MnDS18B20(); MnApp(); } while(m--) {

MnLed(); MnDS18B2002(); MnApp02(); } }

//================================================================== //函 数 名: MnApp()

//功能描述: LED数码管显示内容修改函数 //输入参数: i,j,m,n //输出参数: 无 //设 计 者: //创建日期:

//================================================================== void MnApp(void) {

15

LedDispBuff[0]=IntgerM; LedDispBuff[1]=IntgerL; LedDispBuff[2]=DecimalH; LedDispBuff[3]=DecimalMH;

}

void MnApp02(void) { }

//==================================================================

LedDispBuff[0]=IntgerM02; LedDispBuff[1]=IntgerL02; LedDispBuff[2]=DecimalH02; LedDispBuff[3]=DecimalMH02;

//文件名称:(FILE7)第一个DS18B20驱动文件 //功能说明: 读出温度数据,并转换为BCD码。 //

本驱动只针对单总线上挂一只DS18B20的情况。

//硬件描述: 数据口P3^4,上拉4.7K电阻,未采用寄生电源供电 //使用晶体: 11.0592M晶体 //创建日期: 2012-03-03 //软件版本: v 1.0

//================================================================== #include #include #define #define

uchar unsigned char uint unsigned int

//=====================常量========================================= #define #define #define sbit

SkipROM TempCvt

0xcc 0x44

//跳过ROM指令 //温度转化命令

ReadTemp 0xbe //读温度命令 //数据口

DQ18B2002 = P2^7;

//=====================变量========================================= uint bit

data

TempReg02;

NPflag02;

//温度值

16

bdata //正负标志