ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:311.61KB ,
资源ID:19750802      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19750802.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的数字温度计课程设计样本Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的数字温度计课程设计样本Word格式文档下载.docx

1、附录 2 系统原理图231概述1.1课题名称 基于单片机数字温度计设计1.2课题规定 1)基本范畴-501102)精度误差不大于0.53)LED数码直读显示4)可以设定温度上下限报警功能1.3设计目和意义 温度数咱们寻常生产和生活中实时在接触到物理量,但是它是看不到,仅凭感觉只能感觉到大概温度值,老式指针式温度计虽然能批示温度,但是精度低,使用不够以便,显示不够直观,数字温度计浮现可以让人们直观理解自己想懂得温度究竟是多少度。数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度变化转换成电信号变化,如电压和电流变化,温度变化和电信号变化有一定关系,如线性关

2、系,一定曲线关系等,这个电信号可以使用模数转换电路即AD转换电路将模仿信号转换为数字信号,数字信号再送给解决单元,如单片机或者PC机等,解决单元通过内部软件计算将这个数字信号和温度联系起来,成为可以显示出来温度数值,如25.0摄氏度,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观测。这样就完毕了数字温度计基本测温功能。数字温度计依照使用传感器不同,AD转换电路,及解决单元不同,它精度,稳定性,测温范畴等均有区别,这就要依照实际状况选取符合规格数字温度计。数字温度计有手持式,盘装式,及医用小体积等等。此外作为电气工程及其自动化学生,通过基于单片机数字温度计设计可以提高自己理论联系

3、实际能力,可以更好掌握所学专业理论只是,也培养了自己动手能力,同步,也培养了信息收集能力和分析问题解决问题能力 2系统总体设计方案及硬件设计作为对专业理论知识学习后实践环节,我选取了自行设计基于AT89S52单片机数字温度计。设计原理框图如,图 1。图 1 数字温度计原理框图2.1 单片机选取AT89S52是一种低功耗、高性能CMOS 8位微控制器,具备8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash容许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有机灵8 位CPU 和在系统可编程Fla

4、sh,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。Protues仿真软件中用AT89C51代替AT89S52,单片机小系统电路图如图2所示。图2 单片机小系统电路 AT89S52重要性能1、与MCS-51单片机产品兼容;2、8K字节在系统可编程Flash存储器;3、1000次擦写周期;4、全静态操作:0Hz-33MHz;5、三级加密程序存储器;6、32个可编程I/O口线;7、三个16位定期器/计数器;8、六个中断源;9、全双工UART串行通道;10、低功耗空闲和掉电模式;11、掉电后中断可唤醒;12、看门狗定期器;13、双数据指针;14、掉电标记符 。2.2 温度传感器简介DS1

5、8B20可以程序设定912位辨别率,精度为0.5C。可选更小封装方式,更宽电压合用范畴。辨别率设定,及顾客设定报警温度存储在EPROM中,掉电后依然保存。图3 温度传感器引脚功能阐明: NC :空引脚,悬空不使用; VDD :可选电源脚,电源电压范畴35.5V。当工作于寄生电源时,此引脚必要接地。 DQ :数据输入/输出脚。漏极开路,常态下高电平。 GND :为电源地DS18B20内部构造重要由四某些构成:64位光刻ROM、温度传感器、非挥发温度报警触发器TH和TL、配备寄存器。光刻ROM中64位序列号是出厂前被光刻好,它可以看作是该DS18B20地址序列码。64位光刻ROM排列是:开始8位(

6、28H)是产品类型标号,接着48位是该DS18B20自身序列号,最后8位是前面56位循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM作用是使每一种DS18B20都各不相似,这样就可以实现一根总线上挂接各种DS18B20目。DS18B20中温度传感器可完毕对温度测量,以12位转化为例:用16位符号扩展二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。这是12位转化后得到12位数据,存储在18B20两个8比特RAM中,二进制中前面5位是符号位,如果测得温度不不大于0,这5位为0,只要将测到数值乘于0.0625即可得到实际温度;如果温度不大于0,这5位为1,测到数值需

7、要取反加1再乘于0.0625即可得到实际温度。 例如+125数字输出为07D0H,+25.0625数字输出为0191H,-25.0625数字输出为FF6FH,-55数字输出为FC90H。DS18B20温度传感器内部存储器涉及一种高速暂存RAM和一种非易失性可电擦除E2RAM,后者存储高温度和低温度触发器TH、TL和构造寄存器。暂存存储器包括了8个持续字节,前两个字节是测得温度信息,第一种字节内容是温度低八位,第二个字节是温度高八位。第三个和第四个字节是TH、TL易失性拷贝,第五个字节是构造寄存器易失性拷贝,这三个字节内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余

8、检查字节。该字节各位意义如下:TM R1 R0 1 1 1 1 1低五位始终都是1 ,TM是测试模式位,用于设立DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设立为0,顾客不要去改动。R1和R0用来设立辨别率,如表1所示:(DS18B20出厂时被设立为12位) 表1 DS18B20温度转换时间表R1R0辨别率/位温度最大转向时间993.75110187.51137512750依照DS18B20通讯合同,主机控制DS18B20完毕温度转换必要通过三个环节:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才干对DS18B20进

9、行预定操作。复位规定主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒存在低脉冲,主CPU收到此信号表达复位成功。2.3 温度传感器与单片机连接DS18B20采用外部电源供电方式,在外部电源供电方式下,DS18B20工作电源由VCC引脚接入,此时I/O线不需要强上拉,不存在电源电流局限性问题,可以保证转换精度,同步在总线上理论可以挂接任意各种DS18B20传感器,构成多点测温系统。注意:在外部供电方式下,DS18B20GND引脚不能悬空 ,否则不能转换温度,读取温度总是85。图4 DS18B20接线2.4 复位信号及外部复位电路该复位信

10、号高电平有效,其有效时间应持续24个振荡脉冲周期即两个机器周期以上。若使用频率为12 MHz晶体振荡器,则复位信号持续时间应超过2s才完毕复位操作。 图 5 复位电路2.5 单片机与报警电路报警电路分为两某些,一某些是蜂鸣器声音报警,另一某些是发光二极管放光报警。详细状况如下:接通电源,两个(红色,黄色)发光二极管都不亮,当温度超过上线设定值(如38摄氏度)时,红色二极管亮,同步蜂鸣器也报警;当温度低于下限设定值时(如5摄氏度)时,黄色二极管亮,同步蜂鸣器也开始报警。 图6 蜂鸣器报警 图7 发光二极管报警 2.6 显示电路采用技术成熟5461AS共阴4位数码管 0.56英寸红色。LED显示分

11、为静态显示和动态显示。这里采用静态显示,系统通过单片机串行口来实现静态显示。串行口为方式零状态,即工作在移位寄存器方式,波特率为振荡频率1/12。当器件执行任何一条将SBUF作为目寄存器命令时,数据便开始从RXD端发送。在写信号有效时,相隔一种机器周期后发送控制端SEND有效,即容许RXD发送数据,同步容许从TXD端输出移位脉冲。图8为显示电路连接图。 图 8 数码显示连接图3 软件设计DSl8820重要数据元件有:64位激光Lasered ROM,温度敏捷元件和非易失性温度告警触发器TH和TL。DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电

12、平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。此外,还可外接5 V电源,给DSl8820供电。DSl8820供电方式灵活,运用外接电源还可增长系统稳定性和可靠性。图9为读取数据流程图。图9 读取数据流程图读出温度数据后,LOW低四位为温度小数某些,可以精准到0.0625,LOW高四位和HIGH低四位为温度整数某些,HIGH高四位所有为1表达负数,全为0表达正数。因此先将数据提取出来,分为三个某些:小数某些、整数某些和符号某些。小数某些进行四舍五入解决:不不大于0.5话,向个位进1;不大于0.5时候,舍去不要。当数据是个负数时候,显示之前要进行数据转换,将其整数某些取反加

13、一。还由于DS18B20最低温度只能为-55,因此可以将整数某些最高位换成一种“-”,表达为负数。图10为温度数据解决程序流程图。图10 温度数据解决流程图4 Proteus软件仿真 仿真过程相称顺利,需要注意原件选用,特别是数码管显示块共阴、共阳,尚有就是电阻选用,太大太小都会影响实验效果。在仿真中不存在焊接问题,因此接线只要引脚接口对的就是没问题。此外就是程序调试,相称重要。4.1 仿真图 图 11 当温度为上下限之间时仿真状况图 12 温度在温度下限设定值如下仿真图 图 13 温度在温度上限设定值以上仿真图4.2仿真成果分析温度在上下限设定值范畴内是,放光二极管都是不亮,当实际温度值,低

14、于设定下限时,黄色放光二极管亮;当实际温度高于上限设定值时,红色发光二极管亮。 因素,通过程序控制P1.0(红色放光二极管) P1.1(黄色发光二极管),度在上下限设定值范畴内是,P1.0,P1.1都是低电平,故发光二极管不会亮,当实际温度值,低于设定下限时,P1.0 为低电平P1.1为高电平,故黄色放光二极管亮;当实际温度高于上限设定值时,P1.0为高电平P1.1为低电平,故红色发光二极管亮。5 总结与体会作为一名电气工程及其自动化大三学生,我觉得做单片机课程设计是很故意义,并且也是必要。在做这次课程设计过程中,我感触最深当属查阅大量设计资料了。为了让自己设计更加完善,查阅这方面实际资料是十

15、分必要,也是必不可少。另一方面,在这次课程设计中,咱们运用了此前学过专业课知识,如:proteus仿真、C语言、模仿和数字电路知识等。虽然过去我从未独立应用过她们,但在学习过程中带着问题去学我发现效率很高,这是我做这次课程设计又一收获。最后,要做好一种课程设计,就必要做到:在设计程序之前,对所用单片机内部构造有一种系统理解,懂得该单片机有哪些资源;要有一种清晰思路和一种完整软件流程图;在设计程序时,不能妄想一次将整个程序设计好,重复修改、不断改进是程序设计必经之路;要养成注释程序好习惯,这样为资料保存和交流提供了以便;在设计中遇到问题要记录,以免下次遇到同样问题。在这次课程设计中,我真正意识到

16、,在后来学习中,要理论联系实际,把咱们所学理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读过程中才干提高,这就是这次课程设计最大收获。参照文献1单片机原理及应用技术. 余发山,王福忠 徐州 中华人民共和国矿业大学出版社.2 微型计算机控制技术 王新 中华人民共和国电力出版社3 模仿电子技术 艾永乐 中华人民共和国电力出版社附录 1 程序源代码/*程序名称:DS18B20温度测量、报警系统简要阐明:DS18B20温度计,温度测量范畴099.9摄氏度 可设立上限报警温度、下限报警温度 即高于上限值或者低于下限值时蜂鸣器报警 默认上限报警温度为38、默认下限报警温度为5 报警值可设立范

17、畴:最低上限报警值等于当前下限报警值 最高下限报警值等于当前上限报警值 将下限报警值调为0时为关闭下限报警功能 */#include #include DS18B20.h#define uint unsigned int#define uchar unsigned char /宏定义#define SET P3_1 /定义调节键#define DEC P3_2 /定义减少键#define ADD P3_3 /定义增长键#define BEEP P3_7 /定义蜂鸣器bit shanshuo_st; /闪烁间隔标志bit beep_st; /蜂鸣器间隔标志sbit DIAN = P07; /小数

18、点uchar x=0; /计数器signed char m; /温度值全局变量uchar n;uchar set_st=0; /状态标志signed char shangxian=38; /上限报警温度,默认值为38signed char xiaxian=5; /下限报警温度,默认值为5uchar code LEDData=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00;unsigned int ReadTemperature(void);/*延时子程序*/void Delay(uint num) while( -num );/*初

19、始化定期器0*/void InitTimer(void) TMOD=0x1; TH0=0x3c; TL0=0xb0; /50ms(晶振12M)/*定期器0中断服务程序*/void timer0(void) interrupt 1 using 0 TL0=0xb0; x+;/*外部中断0服务程序*/void int0(void) interrupt 0 using 1 EX0=0; /关外部中断0 if(DEC=0&set_st=1) shangxian-; if(shangxianxiaxian)shangxian=xiaxian; else if(DEC=0&set_st=2) xiaxia

20、n-; if(xiaxian99)shangxian=99; else if(ADD=0& xiaxian+; if(xiaxianshangxian)xiaxian=shangxian; /*读取温度*/void check_wendu(void) uint a,b,c; c=ReadTemperature()-5; /获取温度值并减去DS18B20温漂误差 a=c/100; /计算得到十位数字 b=c/10-a*10; /计算得到个位数字 m=c/10; /计算得到整数位 n=c-a*100-b*10; /计算得到小数位 if(m99)m=99;n=9; /设立温度显示上限 /*显示开机初

21、始化等待画面*/Disp_init() P0 = 0x40; /显示- P2 = 0xf7; Delay(200); P2 = 0xfb; Delay(200); P2 = 0xfd; P2 = 0xfe; P2 = 0xff; /关闭显示/*显示温度子程序*/Disp_Temperature() /显示温度 P2 = 0xf7; P0 =0x39; /显示C Delay(300); P0 =LEDDatan; /显示个位 P0 =LEDDatam%10; /显示十位 DIAN = 1; /显示小数点 P0 =LEDDatam/10; /显示百位/*显示报警温度子程序*/Disp_alarm(

22、uchar baojing)P2 = 0xf7; P0 =LEDDatabaojing%10;/显示十位 P0 =LEDDatabaojing/10;/显示百位 if(set_st=1)P0 =0x76; else if(set_st=2)P0 =0x38;/上限H、下限L标示/*报警子程序*/void Alarm() unsigned int i; for(i=0;i200;i+)/喇叭发声时间循环,变化大小可以变化发声时间长短 Delay(80);/参数决定发声频率,估算值 BEEP=!BEEP; BEEP=1; /喇叭停止工作,间歇时间,可更改 Delay(0);/*主函数*/void

23、main(void) uint z; InitTimer(); /初始化定期器 EA=1; /全局中断开关 TR0=1; ET0=1; /启动定期器0 IT0=1; IT1=1; check_wendu(); for(z=0;z2)set_st=0; if(set_st=0) /关闭外部中断0 /关闭外部中断1 Disp_Temperature();=shangxian) P1_0=0; else P1_0=1;xiaxian) P1_1=0; P1_1=1; if(m=shangxian)|(m=10)shanshuo_st=shanshuo_st; if(shanshuo_st) Disp_alarm(shangxian); else if(set_st=2)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1