基于DS18B20的温度显示及其报警控制系统(含完整原理图及C程序)毕业论文


    
    XX 学

    毕 业 设 计( 文 )




    题目
    基单片机数字温度计报警系统
    作者

    学院
    物理学院
    专业
    电子信息科学技术
    学号

    指导教师



    二〇XX 年 X 月 X日

    XX 学
    毕业设计(文)务书
    物理学 院 电子 系(教研室)
    系(教研室) (签名) 年 月 日
    学生姓名 学号 专业 电子信息科学技术
    1 设计(文)题目专题: 基单片机数字温度计报警系统
    2 学生设计(文)时间: 20XX 年 3 月 18 日开始 20XX年 5 月 28 日止
    3 设计(文)资源参考资料:
    [1] 张毅刚彭喜元单片机原理应设计M北京:电子工业出版社20084
    [2] 郭天祥新概念51单片机C语言教程M北京:电子工业出版社20091
    [3] 康华光电子技术基础模拟部分M北京:高等教育出版社20061
    4 设计(文)应完成容:
    1讲述系统测温方式原理
    2设计硬件系统
    3设计软件系统
    5 提交设计(文)形式(设计说明图纸文等)求:
    文求格式正确调理清晰严格湖南科技学文格式求撰写提交文
    6 发题时间: 20XX 年 12 月 28 日










    指导教师: (签名)

    学 生: (签名)
    XX 学
    毕业设计(文)指导评语
    [学生毕业设计(文)工作态度研究容方法工作量文献应创新性实性科学性文(图纸)规范程度存足等进行综合评价]

    期五月毕业设计中该学老师求利完成整毕业设计工作文撰写文容准确描述证系统工作程实现原理做出系统实物系统正常工作种测试条件利完成测试目标该设计具定创新性实时设置温度范围范围值存储EEPROM中设置值掉电丢失根系统实物测试结果该系统实时显示目标温度值温度超出设范围时进行温度控制处理报警具较强实性较解决现实生产生活工作中该容需求整毕业设计程中该学态度端正学较认真遇难题时积极请教老师学查阅相关资料时间安排合理基阶段完成相应务
    文述紧扣题语言表达流畅格式符合规范求建议评良

















    指导: (签名)

    年 月 日


    指导评定成绩: 良
    XX 学
    毕业设计(文)评阅评语
    [学生毕业设计(文)文格式图纸规范程度工作量研究容方法实性科学性结存足等进行综合评价]





























    评阅: (签名)

    年 月 日


    评阅评定成绩:
    XX 学
    毕业设计(文)答辩记录
    日期:
    学生: 学号: 班级:
    题目:
    提交毕业设计(文)答辩委员会列材料:
    1 设计(文)说明书 页
    2 设计(文)图 纸 页
    3 指导评阅评语 页
    毕业设计(文)答辩委员会评语:
    [学生毕业设计(文)研究思路设计(文)质量文图纸规范程度设计(文)介绍回答问题情况等进行综合评价]
















    答辩委员会: (签名)
    委员: (签名)
    (签名)
    (签名)
    (签名)


    答辩成绩:

    总评成绩:


    着科技断进步工业生产中温度常控参数采单片机控参数进行控制已成流温度传感器DS18B20具性稳定灵敏度高抗干扰力强方便等优点广泛应冰箱空调器粮仓等日常生活中温度测量控制文采51单片机实现温度测量报警组成部分:STC89C52单片机DS18B20键盘显示电路AT24C02温度范围存储电路温度报警控制电路实时检测显示温度设定温度范围实现温度报警动控制

    关键词:温度计DS18B2051单片机温度报警
    ABSTRACT

    Temperature sensor DS18B20 has a lot of advantagessuch as stable performancehigh sensitivitystrong antiinterference capabilityconvenience of useetc And it was widely used for the measurement and control of temperature in refrigerators air conditioners barn and other daily life in the measurement and control of temperature In this article We used a single chip for realizing temperature measurement and alarm It was mainly component of STC89S52 chip DS18B20 keyboard and display circuitstorage circuit of temperature range temperature alarm and circuit control It realize not only realtime detection and display temperature but also setting the temperature range and the measurement and control of temperature

    Key words Thermometer DS18B2051 MCU temperature alarm
    目 录

    第章 绪 1
    11 设计背景 1
    12 温度测量报警系统国外情况 1
    13 文研究容 1
    第二章 系统总体设计 2
    21 系统方案选择 2
    22 系统组成 2
    23 系统工作程 3
    第三章 系统硬件设计 5
    31 单片机系统设计 5
    311 89C52单片机简介 5
    312 单片机系统 8
    32 温度检测电路DS18B20测温原理 8
    321 DS18B20介绍 8
    322 DS18B20特性 9
    323 DS18B20硬件电路 10
    33 报警温度调节电路 10
    34 报警温度存储电路 11
    35 报警控制电路 12
    36 显示电路 13
    37 结 13
    第四章 系统软件设计 14
    41 软件总体设计方案 14
    42 程序设计 14
    43 测温程序设计 16
    431 温度转换工作流程 16
    432 读暂存器工作流程 16
    433 读数求出十进制 16
    44 报警温度调节存储设计 17
    441 键设置程序 17
    442 温度储存程序 17
    45 温度报警控制设计 19
    46 结 20
    第五章 系统测试 21
    51 模块测试 21
    52 整体软件测试 21
    第六章 结 22
    参考文献 23
    致谢 24
    附件A 整体硬件电路图 25
    附件B 硬件实物图 26
    附件C 程序清单 27
    第章 绪
    11 设计背景
    温度重物理量直接影响化学反应发酵煅烧浓度蒸馏结晶空气流动等物理化学程温度控制失误引起生产安全质量产量等系列问题温度测量工业生产程中日常生活中起着非常重作传统温度采集方法仅费时费力精度差单片机出现温度采集数处理问题够解决特环境恶劣温度较高等场合保证生产程正常安全进行提高产品质量数量减轻工劳动强度节约源求加热炉温度进行测量显示报警控制达工艺标准单片机核心设计温度测量系统温度进行实时测量温度数进行显示报警进行相应控制
    12 温度测量报警系统国外情况
    温度检测系统国行业应然已十分广泛国生产温度控制器讲总发展水然高日德国美国等先进国家相着较差距采51单片机温度进行检测控制仅具成低廉控制方便灵活性等优点提高控温度技术指标 提高产品质量数量单片机温度处理问题工业生产中常会遇问题
    13 文研究容
    文基STC89C52单片机采数字温度传感器DS18B20需AD转换直接进行温度采集显示报警控制数字温度计设计包括传感器数采集电路温度显示电路限报警调整存储电路温度报警控制电路单片机板电路等组成
    第二章 系统总体设计
    21 系统方案选择
    该系统温度测量数采集数处理部分组成实现方案种面列出两种常实现方案
    211 方案
    采热敏电阻传感器利热敏电阻阻值温度变化显著变化直接温度变化转换电压变化进制成温度计数采集部分带AD 通道单片机专业AD转换芯片进行AD 转换单片机进行数处理显示电路测温度显示出时温度进行相应报警控制
    方案优点工作温度范围非常宽体积精确度高存着输出电压抗干扰力差缺点种设计需AD 转换电路感温电路较复杂增系统设计难度
    222 方案二
    采数字温度芯片DS18B20测量温度输出信号全数字化便单片机控制处理省传统测温方法外围电路该芯片性较稳定线形较0—100°C时线性偏差1°CDS18B20采单总线数传输DS18B20微控制器STC89C52构成温度测量装置直接输出温度数字信号直接单片机连接样测温系统结构较简单体积采51单片机控制软件编程度通C语言编程实现种样算术算法逻辑控制硬件实现简单安装方便外51单片机工业控制着广泛应编程技术外围功电路配合成熟
    该系统利STC89C52芯片控制温度传感器DS18B20进行实时温度检测显示够实现快速测量环境温度根需设定限报警温度进行报警相应控制处理该系统扩展性强利键盘进行温度范围调整利AT24C02芯片作存储器件获数通I2C总线协议AT24C02通信温度范围数储存起方便应中实时调整关机重启加载数
    两种方案容易出方案二测温装置电路更简单实现更方便程序设计更容易实现次设计采方案二
    22 系统组成
    课题51单片机核心设计种数字温度报警系统系统整体硬件电路包括温度采集电路温度显示电路限报警调整电路存储电路报警控制电路单片机板电路等组成
    系统框图控制器温度传感器报警键设置AT24C02数码显示报警控制电路组成
    系统框图图21示










    图 21 系统框图
    单元模块功:
    检测电路 DS18B20构成DS18B20美国 DALLAS 半导体公司推出种改进型智温度传感器 传统热敏电阻等测温元件相直接读出测温度根实际求通简单编程实现9~12位数字值读数方式
    系统核心器件51单片机整系统心脏控制协调功模块正常工作考虑系统功济性素采性价较高 STC89C52
    温度范围值存储采AT24C02AT24C022K串行CMOS E2PROM存储器通I2C协议单片机进行通信报警温度值储存起关机重启保留报警温度值需进行设置
    报警功蜂鸣器完成通单片机IO口蜂鸣器发出频率脉发出警报声相应温度进行报警
    温度控制模块温度高时风扇制冷温度低时红色LED灯模拟加热器进行升温处理
    显示模块数码进行显示
    23 系统工作程
    系统DS18B20采集温度进行转换温度数传递单片机单片机控制数码进行步温度显示时温度值进行处理温度高设定值进行制冷处理温度继续升超设定值+3°C时控制蜂鸣器进行高频率报警处理温度低设定值进行加热处理温度继续降低设定值3°C时控制蜂鸣器进行低频率报警处理系统运作程中时温度限制进行设置通键输入调整数值单片机片RAM具掉电丢失数特性里温度限数值存入AT24C02中系统断电重启首先通AT24C02温度范围值加载单片机保证系统正常工作































    第三章 系统硬件设计
    31 单片机系统设计
    系统采STC89C52控器兼容89C51单片机
    311 89C52单片机简介
    89C52单片机片结构
    89C52单片机片结构图31示作控制应必需基功部件集成集成电路芯片功部件组成:
    (1) 微处理器(CPU)
    (2) 数存储器(RAM)
    (3) 程序存储器(4K Flash ROM)
    (4) 48位编程行IO口(P0口P1口P2口P3口)
    (5) 1全双工串行口
    (6) 216位定时器计数器
    (7) 中断系统
    (8) 特殊功寄存器(SFR)

    图 31 89C52单片机片结构
    1 CPU
    89C52单片机中18位CPU通CPU基相样包括运算器控制器两部分增加面控制位处理功
    2 数存储器(RAM)
    片256B片外扩展64KB片128BRAM高速RAM形式集成单片机加快单片机运行速度种结构RAM降低功耗
    3 程序存储器(ROM)
    程序存储器存储程序89C52片集成8KBFlash存储器片外外扩64KB
    4 中断系统
    5中断源2级中断优先权
    5 定时器计数器
    片316位定时器计数器具4种工作方式
    6 串行口
    1全双工串行口具4中工作方式进行串行通信扩展行IO甚单片机相连构成级系统单片机应更广
    7 P1口P2口P3口P0口
    48位行IO口
    8 特殊功寄存器(SFR)
    21特殊功寄存器CPU片功部件进行理控制监视特殊功寄存器实际片功部件控制寄存器状态寄存器特殊功寄存器映射片RAM区80H~FFH址区间
    二89C52单片机引脚功说明


    图 32 89C52单片机引脚图
    (1)电源引脚
    VCC(40脚):接+5V电源
    GND(20脚):接
    (2)时钟引脚
    XTAL1(19脚):片振荡器反相放器时钟发生器电路输入端
    XTAL2(18脚):片振荡器反相放器输出端
    (3)控制引脚
    RST(9脚):复位信号输入端高电效单片机运行时引脚加持续时间2机器周期高电时单片机完成复位操作
    VPP(31脚):引脚高电时89C52单片机读片程序存储器PC值超8KB时动转外部程序存储器中程序低电时程序存储器读操作先顶着外部程序存储器
    (4)IO口引脚
    P0口:8位漏极开路双IO口89C52扩展外部存储器IO口芯片时P0口作址总线低8位数总线分时复端口作通IO口时需加拉电阻作普通IO口输入时应先端口输出锁存器写入1
    P1口:8位准双IO口具部拉电阻作普通IO输入时先端口输出锁存器写入1
    P2口:8位准双IO口具部拉电阻作普通IO输入时
    P3口:8位准双IO口具部拉电阻作普通IO输入时P3口提供第二功第二功定义表31示[1]:
    表 31 P3口第二功
    引脚
    第二功
    说明
    P30
    RXD
    串行数输入口
    P31
    TXD
    串行数输出口
    P32

    外部中断0输入
    P33

    外部中断1输入
    P34
    T0
    定时器0外部技术输入
    P35
    T1
    定时器1外部计数输入
    P36

    外部数存储器写选通输出
    P37

    外部数存储器读选通输出


    312 单片机系统
    整系统核心部件单片机搭建稳定单片机系统系统正常工作重

    图33 单片机系统

    单片机系统图33示中4双8位行IO端口分记作P0P1P2P3数输出输入P3口具第二功系统提供控制信号时钟电路产生单片机工作必须时钟控制信号部电路时钟信号控制严格时序指令工作单片机部构成振荡器高增益反放器该高增益反放器输入端芯片引脚XTAL1输出端XTAL2两引脚跨接石英晶体振荡器微调电容构成稳定激振荡器电路中微调电容通常选择30pF左右该电容会影响振荡器频率高低振荡器稳定性起振快速性晶体振荡频率采12MHz
    MCS51复位外部复位电路实现采简单电复位电路
    32 温度检测电路DS18B20测温原理
    321 DS18B20介绍
    DS18B20引脚图34示

    图34 DS18B20脚排列

    DALLAS半导体公司单线数字温度传感器DS18B20种新型线器件体积适种场合DS18B20世界第片支持线总线接口温度传感器温度测量范围55~+125 °C编程9位~12 位转换精度测温分辨率达00625°C测温度符号扩展16位数字量方式串行输出DS18B20联3根2根线CPU需根端口线诸DS18B20 通信占微处理器端口少节省量引线逻辑电路
    322 DS18B20特性
    (1) 适应电压范围宽:30 V~55V寄生电源方式数线供电
    (2) 独特单线接口方式微处理器连接时仅需条口线实现微处理器 DS18B20双通讯
    (3) DS18B20中需外围元件全部传感元件转换电路集成形 三极集成电路
    (4) 测温范围-55℃~+125℃10℃~+85℃时精度±05℃
    (5) 编程分辨率9~12位应分辨温度分05℃025℃0125 ℃00625℃实现高精度测温
    (6) 9位分辨率时9375ms温度转换数字12位分辨率时 750ms温度值转换数字
    (7) 测量结果直接输出数字温度信号线总线串行传送CPU时传 送CRC校验码具强抗干扰纠错力
    (8) 负压特性:电源极性接反时芯片会发热烧毁正常工作[2]


    323 DS18B20硬件电路
    硬件DS18B20单片机连接两种方法种VCC接外部电源GND接IO单片机IO线相连种寄生电源供电时VDDGND接IO接单片机IO部寄生电源外部供电IO口线接10KΩ左右拉电阻采第种连接方法图35示DS18B20数线单片机P25脚连接加拉电阻

    图35 DS18B20连接图
    33 报警温度调节电路
    系统设置3键系统运作时key1键切换限温度设置模式时数码显示限温度key2key3相应限温度进行加减设置key1键切换限温度设置模式时显示限温度样key2key3进行设置key1切换正常显示温度模式时限温度值储存AT24C02中键电路图36示直接IO口通键接程序运行时检测低电键

    图36 温度调整键电路

    34 报警温度存储电路
    系统需通键报警温度限进行灵活设置设置系统断电重启单片机复位温度限值会回初值设置值需利FLASH限值储存起里AT24C02
    AT24C02美国Atmel公司低功耗CMOS型EEPROM含256*8位存储空间具工作电压宽(25V~55V)擦写次数(10000次)写入速度快(10ms)抗干扰力强数易丢失体积等特点采I2C总线式进行数读写串行操作占少资源IO线AT24C0216字节页写缓器该器件通I2C总线接口进行操作专门写保护功
    AT24C02引脚图37引脚功[3]:
    SCL:串行时钟输入脚产生器件数发送接收时钟
    SDA:双串行数址脚器件数发送接收
    A0A1A2:器件址输入端输入脚器件级联时设置器件址脚悬空时默认值0AT24C02级联8器件
    WP:写保护果WP脚连接VCC容写保护进行读操作WP脚连接GND悬空允许器件进行正常读写操作
    GND:电源(GND)
    VCC:电源电压(5V)





    图37 AT24C02引脚图

    AT24C02通IIC总线单片机进行通信电路连接图38










    图 38 AT24C02电路
    35 报警控制电路
    温度太高太低报警报警功复杂里没采语音报警功蜂鸣器代样系统更简洁软件方面较控制成更低蜂鸣器电路图39采PNP三极驱动蜂鸣器[4]

    图 39 蜂鸣器电路
    温度控制方面降温利风扇实现考虑成简便加热器红色LED灯模拟电路图310

    图 310 温度控制电路




    36 显示电路
    显示部分液晶显示数码显示系统需显示数字数码显示图311里采阴数码

    图 311 阴数码
    S2S3S4分十数位阴极阴极NPN三极加拉电阻驱动图312

    图 312 数码阴极驱动
    图中shigexiao相应连接单片机P10P11P12口控制S2S3S4电高低
    37 结
    系统硬件电路采Altium Designer69制作硬件制作程中遇少困难电路板制作硬件调试等懈努力老师学帮助终完成硬件设计整机硬件电路图请见附录A
    第四章 系统软件设计
    41 软件总体设计方案
    设计软件分4部分:温度测量部分温度显示部分报警温度设置部分温度处理部分中温度测量部分软件设计关键部分决定温度精度
    系统电首先加载EEPROM中限温度值然初始化定时器蜂鸣器控制然进入系统循环循环中首先温度进行测量然进行显示步温度进行处理超出温度范围情况进行控制报警处理然扫描键盘果扫描键1进入温度设置模式通键123限温度进行调节设置完成限值限值储存EEPROM相应址中
    系统流程图图41:

    图 41 系统流程
    42 程序设计
    系统软件温度显示键盘扫描间循环隔段时间DS18B20进行温度获取显示扫描循环50次温度测量部分构成系统循环约秒获取次温度数
    系统程序:
    void main()
    {
    uint j 计数器
    xiaread_add(2)
    delayms(10)
    shangread_add(4) 读出保存限数

    TMOD0x01 定时器工作方式1
    ET01
    EA1
    TH0(65536250)256
    TL0(65536250)256
    TR00 先关闭定时器

    while(1)
    {
    tempchange() 温度转换
    dis_temp(temp) 显示温度
    dis_temp(temp)
    get_temp() 获取温度
    dis_temp(temp)
    dis_temp(temp)
    deal() 温度处理
    j50
    while(j)
    {
    dis_temp(temp)

    if(KEY10)set() 键盘扫描
    }
    }

    }



    43 测温程序设计
    DS18B20单片机通信采单总线技术采单条信号线传输时钟传输数数传输双种单总线技术具线路简单硬件开销少成低廉便总线扩展维护等优点
    DS18B20测温程分三步骤:DS18B20温度转换DS18B20度暂存数数求出十进制图42:

    图 42 测温流程
    431 温度转换工作流程
    1 DS18B20复位
    2 写入跳ROM字节命令0xcc
    3 写入开始转换功命令0x44
    4 延迟月750~900ms
    432 读暂存器数流程
    1 DS18B20复位
    2 写入跳ROM字节命令0xcc
    3 写入读暂存器功命令0xee
    4 读入第0字节LS转换结果低八位
    5 读入第1字节MS转换结果高八位
    6 复位表示读取暂存结果
    433 数求出十进制
    1 整合LSMS数
    2 判断否正(系统测量范围0999间)
    3 求十进制值系统求精度01°C测数00625
    44 报警温度设置储存设计
    温度设置采三键设置利键1转换模式键2键3分进行加减
    441 键设置程序
    键1应键值key1进行模式转换扫描键1时key1加1key11时限设置模式key12时限设置模式key13时满足key1>2时key1清零限值储存EEPROM中然退出设置模式进入设置模式时数码显示相应设置温度利显示KEY2KEY3扫描消抖延时流程图图43:

    图 43 键设置流程图
    442 温度储存程序
    EEPROM采I2C总线单片机进行通信
    I2C总线飞利浦公司推出年微电子通信控制领域广泛采种新型总线标准具接口线少控制简单器件封装形式通信速率较高等优点
    I2C总线两条导线构成数导线称串行数线(SDA)时钟导线称串行时钟线(SCL)发送数接受数CPUIC间ICIC间进行双通信高传送速率400kbps种控器件均联总线器件唯址
    I2C总线数传输起始条件启动图44示SDA信号发生高低转换时SCL信号保持高表示起始条件I
    2C总线数传输终止条件结束图示SDA信号发生低高转换时SCL信号保持高表示终止条件实际数起始终止条件间传输

    图 44 起始停止条件
    典型I2C字节写入周期操作程:执行设备起始条件启动传输接着发送设备址该址写入数字节设备址高位前低位方式发送数发送图45示图中执行设备数位值放SDA信号线时SCL信号线低SDA信号线值直保持SCL信号线出现时钟脉发送接收设备址执行设备发送0接收设备第ACK时钟周期SDA信号线保持低确认收该址确认执行设备高位前低位方式发送字节数接收设备第二ACK时钟周期SDA信号线保持低确认收数
    典型I2C字节读取周期操作程:执行设备起始条件启动传输接着发送设备址该址读取数字节设备址高位前低位方式发送10发送发送读取设备址执行设备发送1请求读取等接收确认信号接着发送设备发送字节数接收设备产生终止条件确认数接收终止传输

    图 45 I2C总线数传输
    1EEPROM指定址中写入字节数程序:
    void write_add(uchar addressuchar date)
    {
    start() 开始信号
    write_byte(0xa0) 写入0xa0
    respons() 应答
    write_byte(address) 写入址
    respons()
    write_byte(date) 写入数
    respons()
    stop() 停止信号
    }

    2EEPROM指定址中读出字节数程序:
    uchar read_add(uchar address)
    {
    uchar date
    start() 开始信号
    write_byte(0xa0) 写入0xa0
    respons() 应答
    write_byte(address) 写入址
    respons()
    start() 开始信号
    write_byte(0xa1) 写入0x01
    respons()
    dateread_byte() 读出字节数赋予date
    stop()
    return date date作返回值
    }
    45 温度报警控制设计设计
    系统报警功设计相应温度控制功温度超定范围先进行温度控制控制温度继续恶化启动报警功报警采蜂鸣器利单片机定时器控制蜂鸣器频率进行报警果温度低限温度点亮LED低频报警温度高限温度低限温度加3°C时点亮LED温度高限温度开风扇高频报警温度低限温度高限温度减3°C时开风扇情况关闭风扇LED关闭定时器予报警

    46 结
    系统采C语言编程编程软件采Keil uVision4程序构思编写调试程中样遇困难尤调试程中发现编程惯导致程序出现致命问题通努力利调试成功编程中定注意改掉编程惯



















    第五章 系统测试
    51 模块测试
    温度采集模块测试:调节温度变化温度变化时数码步显示前温度
    数码显示测试:通程序控制数码显示数字观察否显示正常显示否清晰测试数码显示意数字
    键测试:键分长短两种短时数变动次长时数停变动会抖动发生误判
    蜂鸣器发声测试:测试通程序控制蜂鸣器发出声音
    温度报警控制模块测试:通键温度限设置完成调节温度变化温度超出设置范围时观察蜂鸣器风扇LED工作情况结果说明该模块工作正常
    测试图图51

    图 51 系统测试图
    52 整体软件测试
    1 通键进入温度限设置模式时数码显示前设置值系统关机重启KEY1键显示温度范围值次设置值说明温度范围值存储成功
    2 测温程中数码实时显示前温度
    3 温度差3°C达设定限值时进行相应温度控制处理达限值会发出相应报警声整体程序请见附录C
    第六章 结
    设计基51单片机控制温度报警控制系统系统采DS18S20STC89C52单片机数码显示AT24C02存储硬件电路完成温度实时显示利 DS18S20 单片机连接软件硬件电路配合实现LED风扇实时控制超出设定限温度报警系统
    系统设计程中遇问题特程序调试方面解决问题程中学许东西深深感实践理重性通断强化身实践动手力理指导实践通实践进步深入理解理
    次设计数字温度报警系统次测试工作稳定灵敏度较高抗干扰力强等特点外该系统器件均常规元件较高利价值


    参 考 文 献
    [1] 张毅刚彭喜元单片机原理应设计M北京:电子工业出版社200841013
    [2] 郭天祥新概念51单片机C语言教程M北京:电子工业出版社20091343
    [3] 郭天祥新概念51单片机C语言教程M北京:电子工业出版社20091185
    [4] 康华光电子技术基础模拟部分M北京:高等教育出版社20061103110


    致 谢
    课题选题研究程中XX老师悉心指导设计程中遇困难指导老师周围学帮助帮助利完成毕业设计特感谢指导导师聂老师月毕业设计指导求鼓励文利完成指出方谨导师样毕业设计程中予帮助XX老师学致诚挚谢意
    感谢08级电子班学物理学院老师学四年里教会许专业知识帮助支持学生活充实谢谢
    附件A:
    整机硬件电路图

    附件B:
    硬件实物图






















    附件C:
    程序清单
    #include
    #include
    #define uchar unsigned char
    #define uint unsigned int


    ***********定义端口***********
    sbit sdaP2^7
    sbit sclP2^6
    sbit dsP2^5 温度传感器信号线
    sbit buzzerP2^4 蜂鸣器信号
    sbit fengP2^3
    sbit warmP2^2
    sbit KEY1P3^0
    sbit KEY2P3^1
    sbit KEY3P3^2


    **********定义全局变量***********
    uint temp 整型温度数
    float f_temp 浮点型温度数
    uchar shang 限报警温度10数
    uchar xia 限报警温度10数
    uint buz 蜂鸣器频率计数
    uchar tent 定时器计数值

    uint key10 键计数值
    uint key20
    uint key30

    **********带数点数码码***********
    uchar code table[]
    {
    0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f
    }
    **********带数点数码码***********
    uchar code tabler[]
    {
    0xbf0x860xdb0xcf0xe60xed0xfd0x870xff0xef
    }








    **********延时函数***********
    void delayms(uint z)
    {
    uint xy
    for(xzx>0x)
    for(y110y>0y)
    }

    void delay()
    {}


    ***********定时器工作函数***********
    void timer() interrupt 1
    {
    TH0(65536250)256
    TL0(65536250)256
    tent++ 025ms加次
    if(tent>buz) 记满buz次时
    {
    tent0
    buzzer~buzzer 蜂鸣器电取反
    }
    }


    ***********IIC开始信号***********
    void start()
    {
    sda1
    delay()
    scl1
    delay()
    sda0
    delay()
    }

    ***********IIC停止信号***********
    void stop()
    {
    sda0
    delay()
    scl1
    delay()
    sda1
    delay()
    }

    ***********IIC应答信号***********
    void respons()
    {
    uchar i
    scl1
    delay()
    while((sda1)&&(i<250))i++
    scl0
    delay()
    }

    ***********IIC初始化***********
    *void init()
    {
    sda1
    delay()
    scl1
    delay()
    } *

    ***********EEPROM写字节***********
    void write_byte(uchar date)
    {
    uchar itemp
    tempdate
    for(i0i<8i++)
    {
    temptemp<<1
    scl0
    delay()
    sdaCY
    delay()
    scl1
    delay()
    }
    scl0
    delay()
    sda1
    delay()
    }

    ***********EEPROM读字节***********
    uchar read_byte()
    {
    uchar ik
    scl0
    delay()
    sda1
    delay()
    for(i0i<8i++)
    {
    scl1
    delay()
    k(k<<1)|sda
    scl0
    delay()
    }
    return k
    }

    ***********EEPROM指定址写字节***********
    void write_add(uchar addressuchar date)
    {
    start()
    write_byte(0xa0)
    respons()
    write_byte(address)
    respons()
    write_byte(date)
    respons()
    stop()
    }

    ***********EEPROM指定址读字节***********
    uchar read_add(uchar address)
    {
    uchar date
    start()
    write_byte(0xa0)
    respons()
    write_byte(address)
    respons()
    start()
    write_byte(0xa1)
    respons()
    dateread_byte()
    stop()
    return date

    }





    ***********显示程序***********
    void dis_temp(uint t)
    {
    uchar i
    it100
    P0table[i]
    P10x04
    delayms(5)

    i(t100)10
    P0tabler[i]
    P10x02
    delayms(5)

    it10
    P0table[i]
    P10x01
    delayms(7)
    }




    ***********18B20复位初始化函数***********
    void dsreset(void)
    {
    uint i
    ds0
    i103
    while(i>0)i
    ds1
    i4
    while(i>0)i
    }

    ***********读1位函数***********
    bit tempreadbit(void)
    {
    uint i
    bit dat
    ds0i++ i++ 起延时作
    ds1i++i++
    datds
    i8while(i>0)i
    return (dat)
    }

    ***********读1字节***********
    uchar tempread(void)
    {
    uchar cddat
    dat0
    for(c1c<8c++)
    {
    dtempreadbit()
    dat(d<<7)|(dat>>1) 读出数低位前面样刚字节DAT里
    }
    return(dat)
    }

    ***********18B20写字节数***********
    void tempwritebyte(uchar dat)
    {
    uint i
    uchar j
    bit testb
    for(j1j<8j++)
    {
    testbdat&0x01
    datdat>>1
    if(testb) 写 1
    {
    ds0
    i++i++
    ds1
    i8while(i>0)i
    }
    else
    {
    ds0 写 0
    i8while(i>0)i
    ds1
    i++i++
    }

    }
    }

    ***********DS18B20 开始获取温度转换***********
    void tempchange()
    {
    TR00
    dsreset()
    dis_temp(temp)
    tempwritebyte(0xcc) 写跳读ROM指令
    tempwritebyte(0x44) 写温度转换指令

    }

    ***********读取寄存器中存储温度数***********
    uint get_temp()
    {
    uchar ab
    TR00
    tempchange() 温度转换
    dsreset()
    delayms(1)
    tempwritebyte(0xcc)
    tempwritebyte(0xbe)
    atempread() 读低8位
    btempread() 读高8位
    tempb
    temp<<8 两字节组合1字
    temptemp|a
    f_temptemp*00625 温度寄存器中12位 分辨率位00625°
    f_tempf_temp+005 加005四舍五入
    tempf_temp*10 10表示数点面取1位
    return temp temp整型
    }


    ***********报警控制函数***********
    void deal()
    {
    uint itemp10 扩10倍温度值缩10倍限温度
    if(i {
    TR01 启动定时器0
    buz5 蜂鸣器低频
    feng1 关风扇
    warm1 点亮LED
    }
    else if((i>(xia+1))&&(i<(xia+3)))
    {
    TR00buzzer1 关闭定时器0
    feng1 关风扇
    warm1 点亮LED
    }
    else if(i>(shang3)&&(i<(shang1)))
    {
    TR00buzzer1 关闭定时器0
    feng0 开风扇
    warm0 关LED
    }
    else if(i>shang)
    {
    TR01 开启定时器0
    buz1 蜂鸣器高频
    feng0 开风扇
    warm0 关LED
    }
    else if((i>(xia+3))&&(i<(shang3)))
    {
    TR00buzzer1 关闭定时器0
    feng1 关风扇
    warm0 关LED
    }
    }

    ***********线温度设置***********
    void set()
    {
    uint i10
    key1++
    while(i)dis_temp(xia*10) 首先显示限温度延时
    while(key1<3)
    {

    if(key11) 转换成限温度模式
    {
    dis_temp(xia*10) 显示限温度

    if(KEY10) 时扫描KEY1KEY2KEY3键
    {
    key1++
    i10
    while(i)dis_temp(xia*10) 抖延时

    }
    if(KEY20) 果KEY2限温度加1
    {
    xia++
    i10
    while(i)dis_temp(xia*10)显示限温度延时抖

    }
    if(KEY30) 果KEY3限温度减1
    {
    xia
    i10
    while(i)dis_temp(xia*10)

    }
    }
    if(key12)
    {
    dis_temp(shang*10)

    if(KEY10)
    {
    key1++
    i10
    while(i)dis_temp(shang*10) 抖延时

    }
    if(KEY20)
    {
    shang++
    i10
    while(i)dis_temp(shang*10)

    }
    if(KEY30)
    {
    shang
    i10
    while(i)dis_temp(shang*10)

    }
    }

    }
    dis_temp(temp)
    if(key1>2)key10 果键值2调零
    write_add(2xia) 线温度储存起
    dis_temp(temp) 利温度显示延时
    write_add(4shang)
    }


    ***********************************************
    ***********************************************
    *********** 程序 ***********
    void main()
    {
    uint j 计数器
    xiaread_add(2)
    delayms(10)
    shangread_add(4) 读出保存限数


    TMOD0x01 定时器工作方式1
    ET01
    EA1
    TH0(65536250)256
    TL0(65536250)256
    TR00

    while(1)
    {
    tempchange() 温度转换
    dis_temp(temp) 显示温度
    dis_temp(temp)
    get_temp() 获取温度
    dis_temp(temp)
    dis_temp(temp)
    deal() 温度处理
    j50
    while(j)
    {
    dis_temp(temp)

    if(KEY10)set() 键盘扫描
    }
    }

    }
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 10 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于单片机的温度控制系统设计毕业论文

    职业学院毕业论文 题目:单片机温度控制系统研制 系 院:工程技术学院 学生姓名: 学 号: 专 业:机电一体化 ...

    5年前   
    5892    0

    基于PID的温度控制系统设计论文

     (20XX届) 毕业设计 题  目:   基于PID的温度控制系统设计  学  院:             专  业:     电气工程及其自动...

    5年前   
    2018    0

    基于VHDL的电子琴设计(含完整程序)

     课程设计报告 题 目 专业、学号 授课班号 学生姓名 指导教师 ...

    5年前   
    886    0

    基于AT89C51单片机的鸡舍温度控制系统

    基于AT89C51单片机制作一个温度控制器,用于自动接通电加热或制冷设备,从而使鸡舍内温度达到设想温度的要求,并能实时显示室内温度。当室内温度低于设定下限温度时,控制器连通电加热设备,当室内温度...

    6年前   
    14650    0

    基于单片机的音乐喷泉论文(含原理图、PCB图、程序)

    咅乐喷泉控制器是咅乐喷泉的核心部分。在咅乐喷泉中,喷头的多姿造型和 缤纷的水下灯光都受喷泉控制器的控制。由于不同的喷泉对水泵和彩灯组数的要 求各不相同,因此可以设计一种简单、通用、组数可灵活扩充...

    5年前   
    1839    0

    基于单片机的空调温度控制系统设计毕业设计

     毕业设计  题 目 基于单片机的空调温度控制系统设计 学生姓名 学 号 学 院 计算机与信息工程系 专业班级 指导...

    5年前   
    2590    0

    基于ARM的嵌入式温度控制系统设计

     毕业设计说明书(论文)作 者: 学 号: 系 部: 通信工程学院 专 业: 通信工程(计算机通信)...

    2年前   
    370    0

    论文:基于单片机的温度控制系统

    本设计以AT89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、...

    5年前   
    1855    0

    基于单片机的高精度温度检测与控制系统

    温度的检测与控制的系统渐渐在我们的日常生活中愈发重要,在我们的日常生活的领域还有各个国家和地方的都大量涉及单片机对温度的检测与其控制,比如温度计,酒店的紧急火灾报警温度感应器等等。

    3年前   
    863    0

    论文:基于单片机的温度控制系统

    本设计以AT89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。

    5年前   
    2439    0

    基于AT89C52智能吸尘器控制系统设计毕业论文

    摘要 本设计的智能吸尘器控制系统与智能小车的控制系统相似。是以AT89C52单片机为控制核心,加以步进电机、光电传感器、超声波传感器、压敏传感器和电源电路以及其他电路构成。

    4年前   
    1279    0

    全自动电热水壶的设计(包含原理图和程序)

    单片机控制电热水壶温度的设计中文摘要随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。本设计论述了一种以S...

    3年前   
    607    0

    温度报警器外文翻译

     毕业设计(论文)外文翻译 题 目: 基于51单片机温度报警器的设计 英文题目: 51 MCU-based design of a temperatur...

    5年前   
    900    0

    基于89C51的交通灯控制系统设计

    自从1858年英国人发明了原始的机械扳手交通灯之后,随后的一百多年里,交通灯改变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加,经济发展,汽车数量急剧增加,城市道路日渐拥...

    5年前   
    1339    0

    基于plc的智能交通灯控制系统设计毕业论文

    PLC可编程序控制器是以微处理器为基础,综合了计算机技术、自动控制技术和通讯技术发展而来的一种新型工业控制装置。它具有结构简单、编程方便、可靠性高等优点,已广泛用于工业过程和位置的自动控制中。

    4年前   
    3116    0

    基于Socket通信的远程控制系统设计-毕业论文

    浙江工业大学之江学院毕业设计(论文)                                                       1 绪 论 1.1 远程控制系统概述 ...

    8年前   
    6935    0

    基于PLC灌装机控制系统毕业论文

    PLC控制是目前工业上最常用的自动化控制方法,由于其控制方便,能够承受恶劣的环境,因此,在工业上优于单片机的控制。PLC将传统的继电器控制技术、计算机技术和通信技术融为一体,专门为工业控制而...

    5年前   
    2252    0

    基于单片机的自动窗帘控制系统毕业论文

     题目 自动窗帘控制系统 年 月 日 摘 要 自动控制属于电子及信息科学的一个重要分支,并且在现代家居中有着较好的目前发展前景。目前,...

    5年前   
    2367    0

    基于单片机的自动门控制系统设计毕业论文

     职业技术学院 毕业设计(论文) 作 者: 学 号: 系 部: 电气工程系 班 级: ...

    5年前   
    1762    0

    基于LabVIEW的温度分析仪

    XX大学 毕 业 设 计(论 文) 题 目:基于LabVIEW的温度分析仪 院 (系): 自动化学院 ...

    2年前   
    445    0

    文档贡献者

    z***u

    贡献于2019-05-28

    下载需要 10 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档