温度报警器实验报告
- 格式:doc
- 大小:44.50 KB
- 文档页数:9
实习报告:温度湿度报警器设计与实现一、前言随着社会科技的不断发展,人们对生活环境的舒适度要求越来越高,温度和湿度作为影响生活环境舒适度的重要因素,需要得到实时监控和控制。
本实习报告围绕温度湿度报警器的设计与实现展开,介绍了温度湿度报警器的工作原理、硬件选型、软件设计及实际应用。
二、温度湿度报警器工作原理温度湿度报警器主要由传感器、控制器、报警装置等部分组成。
其中,传感器用于实时采集环境中的温度和湿度数据,控制器对采集到的数据进行处理,当温度或湿度超过设定的报警阈值时,控制器会触发报警装置,从而提醒用户及时采取措施。
三、硬件选型在本实习报告中,我们选用STC89C52单片机作为控制器,SHT11温湿度传感器用于采集温度和湿度数据,LCD12864显示屏用于显示实时数据和报警信息,蜂鸣器作为报警装置。
此外,还设计了按键模块用于设置报警阈值和切换显示模式。
四、软件设计软件设计主要包括初始化设置、数据采集、数据处理、报警控制、显示等功能。
初始化设置环节主要完成单片机、传感器、显示屏、蜂鸣器等硬件的初始化;数据采集环节通过I2C总线协议与SHT11传感器通信,获取温度和湿度数据;数据处理环节对采集到的数据进行处理,判断是否超过报警阈值;报警控制环节当温度或湿度超过报警阈值时,触发蜂鸣器报警并显示报警信息;显示环节通过LCD12864显示屏实时显示温度、湿度及报警信息。
五、实习过程1. 硬件焊接:根据电路原理图,将STC89C52单片机、SHT11温湿度传感器、LCD12864显示屏、蜂鸣器等元器件焊接在实验板上。
2. 软件编程:使用C语言编写程序,实现温度湿度报警器的基本功能。
3. 系统调试:通过反复测试,调整参数,确保温度湿度报警器稳定运行。
4. 实际应用:将温度湿度报警器应用于实验室、温室等场景,监测环境温度湿度变化,确保环境舒适度。
六、实习总结通过本次实习,我对温度湿度报警器的设计与实现有了更深入的了解。
电子技术综合课程设计课程:电子技术综合课程设计题目:温度报警器所属院(系) 专业班级姓名学号:指导老师完成地点2011年月日前言电子技术综合课程设计是集电路分析、模拟电子技术、数字电子技术以及电路实验、模拟电子技术实验、数字电子技术实验等课程之后的一门理论与实践相结合的综合设计性课程。
它包括选择课程、电子电路设计、组装、调试和编写总结报告等实践内容。
它的开展是为了提高和增强我们学生对电子技术知识的综合分析与应用能力。
这对于提高我们学生的电子工程素质和科学实验能力非常重要,是电子技术人才培养成长的必由之路。
本课程设计任务要求是完成一个温度报警器的制作,并实现当温度高于30℃时发出双音报警,温度低于10℃时发出单音报警的功能要求。
本设计中充分展示了模拟电子技术的优点,利用放大电路、窗口比较器进行温度的判定,再结合数字电子技术的优点,充分利用单元电路的功能来实现报警,将模电、数电紧密结合,综合应用,不但对知识有了更进一步的掌握,提高了动手能力,,对于以后的就业打下了一定的基础。
通过课程设计实现以下三个目标:第一,让学生初步掌握电子线路的试验、设计方法。
即学生根据设计要求和性能参数,查阅文献资料,收集、分析类似电路的性能,并通过组装调试等实践活动,使电路达到性能指标。
第二,课程设计为后续的毕业设计打好基础。
毕业设计是系统的工程设计实践,而课程设计的着眼点是让学生开始从理论学习的轨道上逐渐引向实际运用,从已学过的定性分析、定量计算的方法,逐步掌握工程设计的步骤和方法,了解科学实验的程序和实施方法。
第三,培养勤于思考的习惯,设计并制作电子产类品,增强学生这方面的自信心及兴趣。
本课程设计以电工电子技术的基本理论为基础,着重掌握电路的设计装调及性能参数的调试方法。
本课程设计应达到如下基本要求:(1)综合运用电子技术课程中所学的理论知识独立完成一个实际应用电路的设计。
(2)通过查阅手册和参考文献资料,培养独立分析和解决实际问题的能力。
#### 一、实训背景随着社会的发展,温度监测与控制技术在各个领域得到了广泛应用。
为了提高实训教学的效果,本实训旨在通过设计一款基于单片机的温度报警器,使学生掌握温度传感器的工作原理、单片机的编程及应用,提高学生的实践操作能力和创新意识。
#### 二、实训目的1. 熟悉温度传感器的原理与应用。
2. 掌握51单片机的编程方法及接口技术。
3. 学会使用数码管、蜂鸣器等外围设备。
4. 培养学生的团队协作能力和创新意识。
#### 三、实训内容本实训设计一款基于51单片机的温度报警器,实现以下功能:1. 实时测量环境温度。
2. 数码管显示当前温度值。
3. 可设置温度上下限报警值。
4. 当温度超过上下限报警值时,蜂鸣器发出警报。
#### 四、实训步骤1. 硬件选型与搭建(1)选择51单片机作为主控芯片,型号为AT89C51。
(2)选择DS18B20温度传感器,用于测量环境温度。
(3)选用数码管(如LCD1602)用于显示温度值。
(4)选用蜂鸣器作为报警输出。
(5)连接电源模块,为整个系统供电。
2. 软件设计(1)编写程序,实现温度读取、显示、报警等功能。
(2)设置温度上下限报警值,可通过按键调整。
(3)编写中断程序,实现温度超限报警。
3. 系统调试与测试(1)将程序烧录到单片机中。
(2)连接所有硬件,进行系统调试。
(3)检查温度读取、显示、报警等功能是否正常。
4. 系统优化与改进(1)优化程序,提高系统稳定性。
(2)改进报警方式,如增加语音提示、短信报警等。
(3)考虑增加温度曲线显示、历史数据记录等功能。
#### 五、实训结果与分析1. 系统功能实现通过实训,成功设计并实现了一款基于51单片机的温度报警器。
系统能够实时测量环境温度,并在数码管上显示。
当温度超过设定的上下限报警值时,蜂鸣器发出警报。
2. 技术难点及解决方法(1)温度读取精度:DS18B20温度传感器的测量精度较高,通过编程读取其输出数据,即可获得较为精确的温度值。
单片机原理与应用》课程设计任务书摘要单片机技术在我们现代的生活、工作、科研等领域中得到了越来越广泛的应用。
本文主要介绍了一种基于STC89C51单片机的温度检测报警系统,包含单片机最小系统模块、LED 显示模块、蜂鸣器报警模块、矩阵键盘模块和电源模块。
我们详细描述分析了其硬件链接系统、软件编程系统和各模块系统流程。
温度检测报警系统也是在日常生活和工业中得到了广泛的应用,能实时采集周围的温度信息进行显示,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。
它使用起来相当方便,具有精度高,量程宽,灵敏度高,体积小,功耗低等优点,具有广泛的应用前景。
关键词:单片机STC89C51 温度传感器数字温度计DS18B201.1设计内容及功能要求利用STC89C51、DS18B20、数码管、蜂鸣器等元器件设计温度检测、显示和报警系统完成日期与时间显示系统。
系统具有以下功能:1、能正确检测温度;2、在数码管上实时显示温度;3、当温度超过或低于设定的阈值时,蜂鸣器报警;4、可通过矩阵键盘调整温度报警阈值;5、其他功能可根据系统上的资源自行设定。
1.2设计任务1)根据设计内容与要求,弄清系统及各个模块的工作流程,完成电路原理图,包括单片机最小系统模块、LED显示模块、蜂鸣器报警模块、矩阵键盘模块、串行口下载模块和电源模块,最终在万用板上焊接,完成整个系统硬件设计。
2)根据设计内容与要求,弄清系统及各个模块的工作流程,完成系统的软件设计,包括系统主程序、温度读取子程序、键盘扫描子程序、显示子程序等,可使用汇编语言或是C语言编写,建议使用C语言编写。
3)完成系统的仿真与调试,使得系统在脱机情况下,能稳定可靠的工作。
4)编写课程设计报告。
1.3设计原理如图1所示为基于单片机的温度采集系统的设计原理图,系统设计思路为以单片机为控制中心,通过实时采集温度传感器DBS18B20获得当前的温度值,通过LED显示当前温度,同时使用键盘设定温度阈值,当测定温度大于温度阈值利用蜂鸣器报警。
课程设计报告姓名:学号:专业班级:、目录一、设计方案及思路.....................................1.1设计目的任务...................................1.2设计方案比较...................................二、系统总体框图...................................三、电路的组成及参数选择...................................2.1直流稳压电源...................................2.2滞回比较器...................................2.3声光报警电路...................................2.4复位电路...................................2.5计数译码显示电路...................................四、实验步骤...........................................5.1装调步骤与方法...................................5.2出现故障及处理...................................五、心得与体会..........................................六、附录.................................................一、设计方案及思路1、设计目的任务<1>设计目的(1)巩固所学的相关理论知识;(2)实践所掌握的电子制作技能;(3)会运用protel工具设计电路原理图、画原件图、设计电路版图、画原件封装图;(4)通过查阅手册和文献资料,熟悉常用电子器件的类型和特性,并掌握合理选用元器件的原则;(5)学会pcb打印、曝光、腐蚀电路板、钻孔、焊接电路原件;(6)掌握模拟电路的安装、测量与调试的基本技能,熟悉电子仪器的正确使用方法,能力分析实验中出现的正常或不正常现象(或数据)独立解决调试中所发生的问题;(7)学会撰写课程设计报告;(8)培养实事求是,严谨的工作态度和严肃的工作作风;(9)完成一个实际的电子产品;进一步提高分析问题、解决问题的能力。
工程技术学院第x届电子设计类比赛温度报警器报告设计者:xxxxx设计题目:温度报警器一、功能要求设计一温度报警系统,当周围温度上升至警戒温度(30摄氏度)时,系统能够通过喇叭发出警报。
二、方案设计与论证温度报警系统组成框图如下图F-11.硬件框图以及简要原理概述图F-1 温度报警系统组成框图本电路由四个模块组成,基于PT100的温度传感器系统检测环境温度,其输出的电压经过比较器控制电路,当环境温度达到30度时,输出高电平驱动单电源运放构成的方波震荡电路,然后再由功率放大使喇叭发出声音。
I 温度感应模块的设计方案本模块是是基于热敏电阻Pt100的温度检测电路,Pt100的电阻值会随着温度的变化而变化,故电源模块可设计一个横流源电路使得通过Pt100的电流恒定不变,这时当温度变化时Pt100的阻值发生变化,电压也就能发生相应的线性变化。
只要通过对Pt100两端的电压进行处理就能测得外界环境的温度。
图2恒流源电路本电路中恒流源电路是基于TL431稳压集成电路设计的高精度恒流源,电路图如图1所示。
当TL431两端接上电压后其参考极将输出稳定的2.5V的电压,但是TL431的阴极和阳极不能直接接在电压上所以需要串上一个电阻进行分压,本电路中使其串上500Ω的电阻。
当TL431的参考极和地端之间接上一个电阻时该之路的电流就是一个恒定的电流,这时再如图中所示接上一个处于放大区的三级管使其发射极和集极的电流近乎相等,这时通过连接在集极的Pt100热敏电阻的电流就是恒定值。
由于通过Pt100的电流需要在1~1.5mA内,以及为了计算的方便,在本电路中理想情况下我们要使通过Pt100的电流约为1mA。
参数计算:用于分压的R1区标称值510KΩ。
R2的阻值根据公式I=V/R2,为标称值,于是直接选用标称值2.4KΩ的电阻。
对于R5的阻值,考虑到Pt100两端的电势不宜太高(Pt100两端均与集成运放相连,如果接入集成运放的电压过高,接近电源电压12V或者输出电压接近12V 会使集成运放无法正常工作),以及三级管Q1需要工作在放大区,R5的值可相应取高点,大概可取2KΩ到8KΩ之内的阻值,这里取4KΩ进行仿真。
电路温度控制及报警装置实验报告实验报告:电路温度控制及报警装置一、实验目的1. 掌握温度传感器的原理和使用方法;2. 熟悉温度控制电路的设计和搭建;3. 实现电路温度的实时监测、控制和报警功能。
二、实验器材1. 实验箱:用于搭建电路和固定器件;2. 温度传感器:用于检测环境温度;3. 可变电阻:用于控制温度触发点;4. 双极性电容:用于实现延时功能;5. 三极管:用于实现放大和开关功能;6. LED灯:用于显示报警状态。
三、实验步骤1. 将温度传感器接入电路的输入端,确保电路能够正确读取环境温度;2. 将可变电阻接入电路,用于调节温度触发点;3. 将双极性电容连接至电路的输出端,用于延时功能;4. 将三极管接入电路,用于放大和开关控制;5. 连接LED灯至电路输出端,用于显示报警状态;6. 打开电源,调节可变电阻,观察LED灯的亮灭情况,验证温度控制和报警功能;7. 测量并记录温度触发点和报警延时时间。
四、实验结果分析根据实验步骤中的操作,我们成功搭建了电路温度控制及报警装置。
通过调节可变电阻,我们实现了温度触发点的控制,并且LED灯能够在超过触发点时进行报警。
通过调节双极性电容,我们实现了报警延时功能,可以避免短时间内的温度波动导致频繁报警。
五、实验总结通过本次实验,我们掌握了温度传感器的原理和使用方法,熟悉了温度控制电路的设计和搭建过程,实现了电路温度的实时监测、控制和报警功能。
同时,我们了解了可变电阻、双极性电容和三极管的原理和作用,提高了对电路元件的理解。
通过实验,我们也意识到了温度控制和报警在实际应用中的重要性,为今后的工程实践打下了基础。
一、实训目的通过本次实训,使学生掌握温度报警器的设计原理、电路搭建、程序编写和调试方法,提高学生动手能力和实际应用能力。
具体目标如下:1. 理解温度报警器的工作原理和电路结构。
2. 掌握使用DS18B20温度传感器测量温度的方法。
3. 学会编写单片机程序实现温度采集、显示和报警功能。
4. 提高电路调试和故障排除能力。
二、实训器材1. 单片机开发板(例如:51单片机开发板)2. DS18B20温度传感器3. 数码管显示模块4. 蜂鸣器报警模块5. 电源模块6. 导线、电阻、电容等电子元器件7. Proteus仿真软件8. 编译器(例如:Keil uVision)三、实训内容1. 温度报警器电路设计2. DS18B20温度传感器驱动程序编写3. 单片机程序编写4. 电路调试和故障排除5. Proteus仿真验证四、实训步骤1. 电路设计根据温度报警器的工作原理,设计电路原理图。
电路主要包括以下部分:单片机主控模块:负责温度采集、显示和报警控制。
DS18B20温度传感器模块:负责测量环境温度。
数码管显示模块:用于显示当前温度。
蜂鸣器报警模块:用于发出报警信号。
2. DS18B20温度传感器驱动程序编写DS18B20是一款数字温度传感器,其驱动程序需要实现以下功能:初始化DS18B20传感器。
读取温度数据。
转换温度数据为摄氏度。
3. 单片机程序编写单片机程序主要包括以下功能:初始化单片机系统。
读取DS18B20温度传感器数据。
将温度数据显示在数码管上。
判断温度是否超出设定范围,如果超出则触发蜂鸣器报警。
4. 电路调试和故障排除搭建电路后,进行以下调试步骤:检查电路连接是否正确。
使用示波器或万用表检测电路关键点的电压和波形。
编译程序并烧录到单片机。
运行程序,观察数码管显示和蜂鸣器报警情况。
根据实际情况调整程序参数,解决故障。
5. Proteus仿真验证使用Proteus软件对电路进行仿真,验证电路和程序的正确性。
一、实训目的本次实训旨在通过设计和制作温度计报警器,掌握以下技能和知识:1. 熟悉温度传感器的工作原理和特性;2. 掌握单片机编程及外围电路设计方法;3. 学会使用常用电子元件,如电阻、电容、二极管、三极管等;4. 培养实际动手能力和团队合作精神。
二、实训内容本次实训主要内容包括:1. 温度传感器的选择与连接;2. 单片机最小系统搭建;3. 温度采集与处理;4. 报警电路设计;5. 温度计报警器组装与调试。
三、实训步骤1. 温度传感器的选择与连接本次实训选用DS18B20数字温度传感器,具有高精度、高可靠性等特点。
将DS18B20传感器连接到单片机的数据线上,确保连接可靠。
2. 单片机最小系统搭建以STC89C52单片机为核心,搭建最小系统。
连接电源、晶振、复位电路等,确保单片机正常运行。
3. 温度采集与处理编写程序,读取DS18B20传感器的温度数据,并进行处理。
将温度值显示在数码管上,并实时更新。
4. 报警电路设计设计报警电路,当温度超过设定值时,触发报警。
本次实训采用蜂鸣器作为报警器,当温度超过设定值时,蜂鸣器发出警报声。
5. 温度计报警器组装与调试将温度传感器、单片机、报警电路等模块组装在一起,进行整体调试。
检查各个模块之间的连接是否正确,确保报警器能够正常工作。
四、实训结果经过本次实训,成功制作了一款温度计报警器。
该报警器能够实时监测温度,并在温度超过设定值时发出警报。
具体结果如下:1. 温度传感器正常工作,能够准确采集温度数据;2. 单片机程序运行稳定,能够实时显示温度值;3. 报警电路设计合理,能够在温度超过设定值时触发报警。
五、实训总结通过本次实训,我们掌握了以下技能和知识:1. 熟悉了温度传感器的工作原理和特性;2. 掌握了单片机编程及外围电路设计方法;3. 学会了使用常用电子元件,如电阻、电容、二极管、三极管等;4. 培养了实际动手能力和团队合作精神。
同时,我们也发现了一些问题,如:1. 温度采集精度受环境因素影响较大;2. 报警电路的响应速度有待提高。
第1篇一、实验目的1. 理解温控报警电路的基本原理和组成。
2. 掌握温控报警电路的设计方法和实际应用。
3. 通过实验验证温控报警电路的性能和稳定性。
4. 培养动手能力和实际操作技能。
二、实验原理温控报警电路是一种根据温度变化来控制报警装置的电路。
它主要由温度传感器、信号处理电路、比较器、执行机构(如继电器)等组成。
当温度超过设定的阈值时,电路会触发报警装置,发出警报信号。
三、实验器材1. 温度传感器(如热敏电阻、热电偶等)2. 比较器(如LM393、LM324等)3. 继电器4. 电阻、电容、二极管等电子元件5. 电路板、连接线等6. 温度控制器7. 电源8. 示波器(可选)四、实验步骤1. 搭建电路:根据实验原理,设计并搭建温控报警电路。
电路主要包括以下部分:温度传感器:用于检测环境温度。
信号处理电路:将温度传感器的模拟信号转换为数字信号。
比较器:将处理后的数字信号与预设的温度阈值进行比较。
执行机构:当温度超过阈值时,触发报警装置。
2. 连接电路:将电路元件按照设计图连接到电路板上,确保连接牢固可靠。
3. 调试电路:调整电路参数,使电路能够正常工作。
例如,调整比较器的阈值电压,使电路在预设的温度范围内触发报警。
4. 测试电路:使用温度控制器对电路进行测试,观察报警装置是否能够在温度超过阈值时正常工作。
5. 记录数据:记录实验过程中观察到的现象和数据,分析电路的性能和稳定性。
五、实验结果与分析1. 实验现象:当温度超过预设阈值时,报警装置能够正常工作,发出警报信号。
2. 数据分析:通过实验,验证了温控报警电路的性能和稳定性。
电路在预设的温度范围内能够正常工作,报警装置能够及时触发。
3. 改进措施:根据实验结果,对电路进行改进,提高电路的可靠性和稳定性。
例如,优化电路设计,提高电路的抗干扰能力;增加电路的过热保护功能,防止电路过热损坏。
六、实验总结1. 温控报警电路是一种常见的自动控制电路,在工业、农业、家庭等领域有广泛的应用。
温度报警器实验报告班级:通信092组长:包一峰人员:陈姣、贾茜、李蒙雨指导老师:贾伟伟老师目录一、前言 (1)二、实习内容 (2)设计要求 (2)设计原理 (2)硬件设计 (2)三、组装与调试 (5)四、实习总结与体会 (5)总结 (5)心得体会 (6)五、参考文献 (6)六、附录 (6)元器件清单 (7)程序 (7)前言温度是一个十分重要的物理量。
所以在日常生活中,对于温度的测量与控制也是十分的重要。
而此次我们设计的就是温度测量显示电路。
利用热敏电阻器和其他允许的器件完成一个温度显示电路,当温度升高时,热敏电阻的阻值减小。
用所学的理论知识结合相关经验,构成一个有效、可行、适用的、简单的电子系统,来达到一个或多个实际需求的一种有目的的活动。
本次试验是综合运用理论知识,把一些单元电路有机的组合起来,组成小的系统,使我们建立系统的概念;并使我们巩固和加强已学理论知识。
并掌握一般电子电路和设计的基本步骤。
此次实验要我们达到以下要求,第一:掌握常用元器件的检测、识别方法及常用电子仪器的正确使用方法。
第二:掌握电路板的安装、布线、焊接等基本技能。
第三:培养一定的独立思考能力、解决问题的能力。
实习内容设计要求本次的温度测量显示电路使用温度传感器、AD0832和单片机完成对温度的显示;此次设计安排为3-4人一个组,我们组为4个人,共同完成每一个模板的设计,并安装调试无误后,写出简要的实验报告。
设计原理该温度报警器主要由温度传感器、放大器和模数转换模块、主控电路、段驱动数码管位驱动等部分组成。
工作原理如下:1.传感器对当前环境温度进行采样得到与之对应的模拟信号。
2.信号处理电路对传感器采样所得到的模拟信号进行处理——放大。
3.A/D转换电路对处理之后的模拟信号数值化。
4.将该数字信号送入单片机,经单片机处理后由七段数码管显示。
硬件设计系统框图传感器采样电路信号处理电路AD0832信号转换电路单片机部分数码管显示部分组装与调试1.首先检测各个元件是否有损坏,然后按照电路图开始焊接。
焊接开始前,先大致确定几个主要器件的位置并固定好,一边焊接其他小型元件时,一边照电路图用引线连接元件。
焊接完成后,仔细检查有没有错焊、漏焊、虚焊,以及有没有连接在一起的焊点,还必须一一检查引线没有用出错。
2. 检查无误后,接通电源,检查前级和后级,看数码管是否显示正常,最后加热传感器,使其达到设定的高温临界点,如果实现了报警和降温,设计成功。
实习总结与体会(1)总结:优点:1.线性好,精度适中,体积小,实用方便。
2.实时显示当前温度。
缺点:热敏电阻会有一定的时间延时,从而间接地影响了整个报警系统的灵敏性和准确性。
(2)心得体会:在本次设计的过程中,我们发现了很多的问题,虽然以前也做过类似的课程设计,但是这次确实让我们学到了很多。
我们不仅要选好元件,还要把这些元件合理地组织起来,所以我们要学会如何寻找和搜索自己需要的资料。
这一次,我们用了老师给的参考电路图,然后修改了一些地方,比如去掉了一个LED,再加入了几个电阻。
虽然有些困难,但是经过努力,我们还是完成了电路的设计。
经过本次的设计,我们学到了很多的知识,了解到了传感器能够把自然界的各种非电量转换为电信号的能量物理理念。
从本次的实习设计中,我们意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识运用到实际当中,实践是检验真理的唯一标准。
培养了一定的独立思考能力、解决问题的能力。
同时也学到了和他人愉快合作的技巧。
每当我们遇到问题时,我们学会了理性的分析,最终解决问题。
同时在讨论问题时认真聆听别人的思想和意见也很重要,在聆听的同时也会学到很多东西。
所以这次实习让我们学到了很多的东西。
参考文献[1]数字电路与逻辑设计[2]C语言程序设计(第三版)[3]电工技术基础附录1.元器件清单2.程序#include <>/*声明驱动信号阵列*/char code TAB[10]={ 0xc0, 0xf9, 0xa4, 0xb0, 0x99, // 0 ̄40x92, 0x83, 0xf8, 0x80, 0x98 }; // 5 ̄9 //#define ADC P0 // 定义ADC连接埠#define SCANP P2 // 定义扫瞄信号连接埠#define SEG7P P0 // 定义七节显示器连接埠#define uchar unsigned char#define uint unsigned intvoid display(int); // 声明显示函数void delay1ms(char);void delay(char i){ unsigned char j ;for(j = 0 ; j <i;j++);}sbit P1_3 = P1^3 ;sbit P1_4 = P1^4 ;sbit P1_0 = P1^0 ;sbit P3_0 = P3^0 ;/*********************************************************************** 函数名:ADC0832读数据程序** 入口:需转换通道channel [0:1]** 返回 : 无符号字符型 uchar** ********************************************************************/uchar ReadAdc0832( uchar channel );//ADC0832端口定义#define ADC0832_SCK_H P1_3 = 1#define ADC0832_SCK_L P1_3 = 0#define ADC0832_DIDO_H P1_4 = 1#define ADC0832_DIDO_L P1_4 = 0#define ADC0832_DIDO P1_4#define ADC0832_CS_H P1_0 = 1#define ADC0832_CS_L P1_0 = 0//工作时序//当cs由高变低时,选中ADC0832。
在时钟的上升沿,DI端的数据移入ADC0832内部的多路地址移位寄存器。
//在第一个时钟期间,Dl为高,表示启动位,紧接着输入两位配置位。
当输入启动位和配置位后,选通输入模拟通道,转换开始。
//转换开始后,经过一个时钟周期延迟,以使选定的通道稳定。
ADC0832接着在第4个时钟下降沿输出转换数据。
//数据输出时先输出最高位(D7~DO);输出完转换结果后,又以最低位开始重新输出一遍数据(D7~DO),两次发送的最低位共用。
当片选cS//为高时,内部所有寄存器清0,输出变为高阻态。
如果要再进行一次模傲转换,片选cs 必须再次从高向低跳变,后面再输入启动位和配置位//adc0832读数据uchar ReadAdc0832( uchar channel ){uchar i = 0;uchar outdata = 0;//初始化: 选通数据口保持高电平//当cs由高变低时,选中ADC0832。
在时钟的上升沿,DI端的数据移入ADC0832内部的多路地址移位寄存器ADC0832_CS_L; // 使能ADC0832_DIDO_H; //ADC0832_SCK_L; //第一次触发delay(5);ADC0832_SCK_H; //delay(5);//模拟通道的选择及单端输入和差分输入的选择ADC0832_DIDO_H;ADC0832_SCK_L; //第二次触发delay(5);ADC0832_SCK_H;delay(5);if( channel == 1 ){ADC0832_DIDO_H;}else{ADC0832_DIDO_L;}ADC0832_SCK_L; //第三次触发delay(5);ADC0832_SCK_H;delay(5);ADC0832_SCK_L;delay(5);ADC0832_DIDO_H; //置为输入准备读数据 ADC0832_SCK_H;delay(5);outdata = 0; //初始化//读数据D7~D0for( i = 1; i <= 8; i++ ){if( ADC0832_DIDO == 1 ){outdata |= 0x01;}ADC0832_SCK_H;ADC0832_SCK_L;outdata = outdata << 1;}ADC0832_CS_H;return outdata;}void main(){ unsigned int date ;while(1){date = ReadAdc0832( 0 ) ;date = date*20;display(date);}}//====显示函数====void display(results){char times=20; // 扫瞄20次while (--times>=0) // while循环开始{SCANP = 0x01;SEG7P=TAB[results/1000]; // 转换成驱动信号,并输出到P2delay1ms(4); // 延迟4msSCANP = 0x02 ;SEG7P=TAB[(results/100)%10]; // 转换成驱动信号,并输出到P0 delay1ms(4); // 延迟4msSCANP = 0x04 ;SEG7P=TAB[(results/10)%10]; // 转换成驱动信号,并输出到P0 delay1ms(4); // 延迟4msSCANP = 0x08 ;SEG7P=TAB[results%10]; // 转换成驱动信号,并输出到P0 delay1ms(4); // 延迟4ms} // 结束while叙述} // display函数结束//====延迟函数====void delay1ms(char x){ int i,j; // 声明变量for(i=0;i<x;i++) // 外循环for(j=0;j<120;j++); // 内循环}// 延迟函数结束。