基于单片机的ds18b20数字温度计内容摘要:
key2=1。 key3=1。 flag1=0。 flag3=0。 temp_h=0。 temp_l=0。 } void delayms(unsigned int v) { unsigned int m,n。 for(m=v。 m0。 m) for(n=73。 n0。 n)。 } void display()//温度显示函数 { shi=temp/100。 //获取十位 ge=temp%100/10。 //获取个位 xiao=temp%10。 //获取小数点后第一位 P2=0x00。 P0=0x05。 P2=table[shi]。 delayms(5)。 P2=0x00。 P0=0x06。 P2=table1[ge]。 delayms(5)。 P2=0x00。 P0=0x07。 P2=table[xiao]。 delayms(5)。 P2=0x00。 } void display_h()//显示上限温度 { shi=temp_h/10。 ge=temp_h%10。 xiao=0。 P0=0x04。 P2=0x76。 //显示 h delayms(5)。 P2=0x00。 P0=0x05。 P2=table[shi]。 delayms(5)。 P2=0x00。 P0=0x06。 P2=table1[ge]。 delayms(5)。 P2=0x00。 P0=0x07。 P2=table[xiao]。 delayms(5)。 P2=0x00。 } void display_l()//显示下限温度 { shi=temp_l/10。 ge=temp_l%10。 xiao=0。 P0=0x04。 P2=0x38。 //显示 l delayms(5)。 P2=0x00。 P0=0x05。 P2=table[shi]。 delayms(5)。 P2=0x00。 P0=0x06。 P2=table1[ge]。 delayms(5)。 P2=0x00。 P0=0x07。 P2=table[xiao]。 delayms(5)。 P2=0x00。 } void main()//主函数 { init()。 //调用初始化程序 while(1)//大循环 { while((flag1==0)amp。 amp。 (flag3==0))//模式 0, 显示温度 , flag1作为模式标志位 , 0为显示模式 , 1为上限调整模式 , 2为下限调整模式 { tmpchange()。 //温度转换 temp=tmp()。 display()。 //调用温度显示函数 if(key1==0)//按下 key1,则转换到上限调整模式 { delayms(200)。 flag1=1。 key1=1。 } } while((flag1==0)amp。 amp。 (flag3==1))//显示模式并开始比较 { feng=1。 tmpchange()。 //温度转换 temp=tmp()。 display()。 //调 用温度显示函数 //temp=temp/10。 while((temptemp_h)||(temptemp_l)) { tmpchange()。 //温度转换 temp=tmp()。 display()。 //调用温度显示函数 feng=0。 } } while(flag1==1)//。基于单片机的ds18b20数字温度计
相关推荐
为 8 位 通用微处理器 ,采用工业标准的 C51 内核 ,在内部功能及管脚排布上与通用的 8xc52 相同,其主要用于会聚调整时的功能控制。 功能包括对会聚主 IC 内部寄存器、数据 RAM 及外部 接口等功能部件的初始化,会聚调整控制,会基于单片机的交通灯控制系统 9 聚测试图控制,红外遥控信号 IR 的接收解码及与主板 CPU 通信等。 主要管脚有:XTAL1( 19 脚)和 XTAL2(
系统框图如图 21 所示,系统主要由三大模块组成即 LED 驱动模块、数据存储模块、 PC 机通信模块。 数据存储电路设计 数据存储电路由串行 EEPROM 24C256组成。 24C256是 美国 CATALYST 公司出品的一个 1256K位的支持 I2C总线数据传送协议的串行 CMOS E2PROM, 可用电擦除 , 可编程自定时写周期 ( 包括自动擦除时间不超过 10ms
) 将数据线置高电平“ 1”。 ( 2) 延时 2微秒。 ( 3) 将数据置低电平“ 0”。 ( 4) 延时 18 微秒。 ( 5) 将数据线置高电平“ 1”。 ( 6) 延时 18 微秒。 ( 7) 读 DS18B20 得到 1个状态位,并进行数据处理。 ( 8) 延时 100 微秒。 5 数字传感器 DS18B20 的温度转换子程序设计 根据 DS18B20 的通讯协议,单片机控制
管显示模块如图 图 7 所示:为产生更加显示效果,数码管采用动态显示的方式,与 89C51 之间通过锁存 7 段译码驱动器、上拉电阻连接,便于驱动和满足阻抗匹配、限压分流的作用,此外利用三极管分别工作在饱和区与截止区的不同性能起到数字开关的功效。 图 3 数字电压表系统原理电路图 单片机技术课程设计说明书 ( 2020) 9 图 4 分压、 A/D 转换 图 5 单片机数值处理
准确度是测量结果中系统误差与随机误差的综合。 4.分辨率高 数字电压表在最低电压量程上末位 1 个字所代表的电压值,称为仪表的分辨力,它反映仪表灵敏度的高低。 分辨力随显示位数的增加而提高。 分辨率是指所能显示的最小数字(零除外)与最大数字的百分比。 例如 31/2 位 DVM 的分辨率为 1/1999≈ %。 需要指出,分 辨力与准确度属于两个不同的观念。 从测量角度看
码。 字型码与 LED 显示器各段的关系为 D7 D6 D5 D4 D3 D2 D1 D0 dp g f e d c b a 表 11 dp为小数点,字符 0、 2„„ F 的段码如表 12所示 字符 段码(共阴) 段码(共阳) 字符 段码(共阴) 段码(共阳) 0 3FH C0H 8 7FH 80H 1 06H F9H 9 6FH 90H 2 4FH A4H A 77H 88H 3 66H