5 源程序(所有程序经调试)
//================================================================== //文件名称: DS18B20
//功能说明: 第一,二个DS18B20测试温度数据并通过LED轮流显示,如有某个超出安 //温度范围,则锁定显示且报警,同时,用这个被锁定的温度传感器所指向的发光二极管,//模拟声光报警器——点亮。DS18B20子程序采用的是12位的转换,获得了11位精度的//温度数据,显示正负温度。但是在显示中,由于LED位数的限制,考虑数据的有效性,//取了四位温度数据
//硬件描述:
//资源说明: 11.0592M晶体 //创建日期: 2012-03-03 //软件版本: v 1.0
//================================================================== #include
//=======================变量定义================================== 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 //正负标志