数字温度计仿真
- 文件介绍:
- 该文件为 doc 格式,下载需要 1 积分
- 数字温度计仿真 您好,这是我做的数字温度计仿真实验,具有报警功能,但是测温仿真时只能显示整数位-55—128,现在要求精确到0.1,比如仿真时检测温度要求显示115.1、115.2、115.3,请高手您帮忙检查一下程序,并做修改实现此功能,不甚感激。
#include
#define uint unsigned int
#define ulong unsigned long
#define uchar unsigned char //宏定义
sbit DQ=P3^6 ; //定义DS18B20总线I/O
sbit SET=P3^1; //定义调整键
sbit DEC=P3^2; //定义减少键
sbit ADD=P3^3; //定义增加键
sbit BEEP=P3^7; //定义蜂鸣器
bit shanshuo_st; //闪烁间隔标志
bit beep_st; //蜂鸣器间隔标志
uchar x=0; //计数器
signed char m; //温度值全局变量
uchar n; //温度值全局变量
uchar set_st=0; //状态标志
uchar shangxian=38; //上限报警温度,默认值为38
uchar xiaxian=5; //下限报警温度,默认值为5
uchar tmpbuf[5];
sbit Sign_Port =P3^0;
sfr Dat_Port =0x80;
sfr Cs_Port =0xa0;
bit fu;
uint ReadTemperature(void) ;
uchar code table[12]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x00,0x40};
/*****延时子程序*****/
void Delay_DS18B20(int num)
{
while(num--) ;
}
/*****初始化DS18B20*****/
void Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1; //DQ复位
Delay_DS18B20(8); //稍做延时
DQ = 0; //单片机将DQ拉低
Delay_DS18B20(80); //精确延时,大于480us
DQ = 1; //拉高总线...