多功能数字电压表、万年历和温度测试器(编辑修改稿)内容摘要:
EEPROM 中,掉电后依然保存。 DS18B20 的性能是新一代产品中最好的。 性能价格比也非常出色。 DS1822 与 DS18B20 软件兼容,是 DS18B20 的简化版本。 省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为 177。 2176。 C ,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继 一线总线 的早期产品后, DS1820 开辟了温度传感器技术的新概念。 DS18B20 和 DS1822 使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。 DS18B20 的新性能 1) 可用数据线供电,电压范围: ~; 2) 测温范围: 55~+125℃ ,在 10~+85℃ 时精度为 177。 ℃ ; 3) 可编程的分辨率为 9~12 位,对应的可分辨温度分别为 ℃ 、 ℃ 、℃ 和 ℃ ; 4) 12 位分辨率时最多在 750ms 内把温度值转换为数字; 5) 负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 DS18B20 的外形和内部结构 DS18B20 内部结构主要由四部分组成: 64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH和 TL、配置寄存器。 DS18B20 的管脚排列如下 : DS18B20 外形图 引脚定义: 1) DQ 为数字信号输入 /输出端; 2) GND 为电源地; 3) VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。 内部结构 DS18B20 内部结构图 DS18B20 有 4个主要的数据部件: 1)光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序列码。 64 位光刻 ROM的排列是:开始 8位( 28H)是产品类型标号,接着的 48 位是该 DS18B20 自身的序列号,最后 8 位是前面 56位的循环冗余校验码( CRC=X8+X5+X4+1)。 光刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。 2) DS18B20 中的温度传感器可完成对温度的测量,以 12位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 ℃ /LSB 形式表达,其中S为符号位。 表 61 DS18B20 温度值格式表 这是 12位转化后得到的 12位数据,存储在 18B20 的两个 8比特的 RAM 中,二进制中的前面 5位是符号位,如果测得的温度大于 0,这 5位为 0,只要将测到的数值乘于 即可得到实际温度;如果温度小于 0,这 5位为 1,测到的数值需要取反加 1再乘于 即可得到实际温度。 例如 +125℃ 的数字输出为 07D0H, +℃ 的数字输出为 0191H, ℃的数字输出为 FF6FH, 55℃ 的数字输出为 FC90H。 表 62 DS18B20 温度数据表 3) DS18B20 温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存 RAM和一个非易失性的可电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、 TL和结构寄存器。 4)配置寄存器 该字节各位的意义如下: 表 63 配置寄存器结构 TM R1 R0 1 1 1 1 1 低五位一直都是 1 , TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。 在 DS18B20 出厂时该位被设置为 0,用户不要去改动。 R1和 R0 用来设置分辨率,如下表所示:( DS18B20 出厂时被设置为 12 位) 分辨率设置表: 表 64 温度值分辨率设置表 R1 R0 分辨率 温度最大转换时间 0 0 9 位 0 1 10 位 1 0 11 位 375ms 1 1 12 位 750ms 硬件模块设计 1)数字电压模块 设计方框图如下 原理接线图如下 单片机 A/D 转换器 电压显示器 模拟电压输入 量程控制电路 系统总框图 2)万年历与温测模块 原理接线图如下 4 软件设计 我们采用 C 语言编程,通过定时器 0 计时实现显示时间功能,通过串口中断实现上位机对下位机的模式切换功能。 通过键盘扫描和扫描处理函数,实现键 盘的模式切换功能。 同时我们还设计了浮点数显示处理函数,采样函数,交流采集电压峰峰值函数,显示交流周期和峰峰值函数。 这些函数的组合,实现了电压表功能的完善。 万年历总流程图 系统软件设计总流程图 温度检测 温度检测总流程图 DS18B20在单片机控制下分三个阶段 : ● 18B20 初始化:初始化流程图见 ●读 18B20时序:读 DS18B20流程见图 : ●写 18B20时序:写 18B20 流程见图 图 DS18B20流程图 图 DS18B20流程图 5软硬件联调 ............................................... .......... 6总结 ............................................... .......... 设计中遇到的问题和解决方案 ....................... ............. 对本次设计的展望 .................................... 参考文献 .......................................... ...... .... . ...... ... 附录 1: 源程序代码 1) 数字电压表程序 include //头文件 define uchar unsigned char // define uint unsigned int // // ***********ADC************* / //========ADC0809=相关管脚设置以及变量定义 =================== sbit ADC_ST=P3^0。 sbit ADC_OE=P3^1。 sbit ADC_EOC=P3^2。 sbit ADC_CLK=P3^3。 uint ADC_xianshi。 float ADC_number,ADC_shiji。 // ======================1602============== //===================1602 管脚设置及变量定义 ================= uchar code table[]=CuiLongFei!。 uchar qian,bai,shi,ge。 sbit lcden=P3^4。 sbit lcdrs=P3^5。 uchar num。 //=============== sbit LED=P2^0。 // **********延时程序 *********** // // // // ********************* // //================毫秒级的延时程序 =============== void DelayMS(uint xms) { uint i,j。 for(i=xms。 i0。 i) for(j=115。 j0。 j)。 } //================微秒级的延时程序 =============== void Delayus(unsigned int i) { while(i)。 } //========================================== //===================1602 写命令子程序 ======================= void write_(uchar ) { lcdrs=0。 //RS=0。 P1=。 //P1 DelayMS(5)。 lcden=1。 //EN=1。 DelayMS(5)。 lcden=0。 } //===================1602 写数据子程序 ======================= void write_data(uchar date) { lcdrs=1。 P1=date。 DelayMS(5)。 lcden=1。 DelayMS(5)。 lcden=0。 } //======================1602 初始化子程序 ===================== //========================================================== void init() { lcden=0。 write_(0x38)。 // write_(0x0c)。 write_(0x06)。 write_(0x01)。 } //==========================ADC=================== //=================ADC0809 显示数据的处理 ============ void ADC_Display() { qian=ADC_xianshi/1000。 bai=ADC_xianshi%1000/100。 shi=ADC_xianshi%100/10。 ge=ADC_xianshi%100%10。 } //============ADC 初始化 ================== void ADC_Main() { ADC_ST=0。 Delayus(5)。 ADC_ST=1。 Delayus(5)。 ADC_ST=0。 Delayus(5)。 while(ADC_EOC==0)。 // EOC=1。 转换结束 ADC_OE=1。 Delayus(5)。 ADC_number=P0。 Delayus(5)。 ADC_OE=0。 Delayus(5)。 Delayus(5)。 ADC_shiji=(*ADC_number)/。 ADC_xianshi=ADC_shiji*1000。 Delayus(5)。 } //======================main============================= //======================主函数 ======================== void main() { init()。 //1602 初始化 write_(0x80)。 //1602 第一排显示命令 for(num=0。 num11。 num++) //显示崔龙飞 { write_data(table[num])。 DelayMS(20)。 } while(1) //循环函数 { LED=0。 ADC_Main()。 //ADC 初始化 ADC_Display()。 //ADC 数据处理 write_(0x80+0x40)。 //1602 第二排显示命令 //==================显示测量的电压值 ================== write_data(0x30+qian)。 DelayMS(20)。 write_data(0x30+bai)。 DelayMS(20)。 write_data(0x30+shi)。 DelayMS(20)。 write_data(0x30+ge)。 DelayMS(20)。 //===================MV 显示 ========================== write_data(39。 M39。 )。 DelayMS(20)。 write_data(39。 V39。 )。 DelayMS(20)。多功能数字电压表、万年历和温度测试器(编辑修改稿)
相关推荐
estimation of the moving object’s position and orientation is done in the Cartesian space and a simple error model is assumed. Andersen et al. [6] adopt a 3rdorder Kalman filter in order to allow a
曲线,使管理者很方便地了解到楼宇能源使用情况以及现场设备性能,通过对监控数据进行分析,可发现系统中出现的漏水、卡表、堵塞、短路、断线等诸多故障,大大降低了工程维护成本。 当用户与物业之间发生能耗收费分歧的时候,检测点功能可为这种分歧提供可靠的数据依据。 费用管理功能: 计费设定 全面的计量方式、定价方式、分摊方式、成本核算综合考虑物业的多种需求,使物业的收费更趋于合理化。 ● 定价方式
联合使用, 工艺及风管边长划分如下: 风管大边边长( mm) ≤ 400 ≤ 1800 > 1800 工艺连接形式 插条式连接 共板法兰 连接 角钢法兰连接 风管钢板厚度表 风管大边边长( mm) ≤ 320 ≤ 630 ≤ 1000 ≤ 2020 > 2020 钢板厚度( mm) 风管制作采用共板法兰,制作方法如下: 1)钢板卷材开卷后,进入校平机进行校平,保证板材平整
生姓名系、专业、班级毕业年份学 号指导教师职 称一、拟开展研究的价值、意义二、研究步骤、方法及措施三、论文拟定提纲四、主要参考文献指导教师意见: 指导教师签字: 年 月 日系主管主任意见: 系主管主任签字: 年 月 日注:开题报告是在导师的指导下,由学生填写。 附8. 渭南师范学院本科毕业论文(设计)中期检查表系 班专 业毕业论文(设计)题目:学生姓名学 号指导教师职 称完成情况及改进意见:
工作的落实,形成各负其责,分级管理,层层抓落实的工作格局。 四、落实学习教育计划和 《学习宣传教育制度》,教育在先、预防在先,做好廉政建设的学习宣传教育工作,认真组织工作人员学习上级有关会议精神,工作部署和要求 ; 学习国家、自治区、 市委市政府、市政工程建设处、集团公司 及项目部制定的有关廉政建设的法律法规、规章制度、行为准则和职业道德规范。 以规范性教育、先进事迹教育、安全警示教育为重点
项目介绍 干粉砂浆是将水泥、砂、矿物质、矿物粉、聚合物添加剂等在干燥状态下预混,并以干粉料形式包装或散装的砂浆。 使用时,只需加水拌和即可,且质量有保证。 干粉砂浆的产品门类齐全,干粉 砂浆产品品种齐全,能有针对性的满足各种功能和强度要求,还可以根据需要开发功能性产品; 基础干粉材料 : 砌筑砂浆 、抹 灰 砂浆 等 特种材料 : 饰面类: 内外墙壁腻子 , 彩色装饰干粉 , 粉末涂料