




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机接口原理及应用课程设计报告学 院: 工学院 题 目: 数字式温度计设计 专 业: 机械设计制造及其自动化 班 级: 07机电2班 姓 名: 学 号: 070105085 指导教师: 起止日期:2010年12月1日2010年12月20日目录一、前言(2)二、课程设计目的和要求(2)三、总体设计方案(2)1. 整体功能说明 (2)2. 硬件功能模块组成 (2)3. 软件功能模块组成 (3)4. 硬件总体框图 (3)5. 测试计划 (3)四、系统硬件设计(4)1. 整体功能说明 (4)2. 硬件功能模块组成 (4)2.1 主控制器(4)2.2 温度测量模块(4)2.3 显示电路(5)2.4 温
2、度传感器工作原理(5)五、系统的软件设计(7)1. 主程序 (7)2. 读出温度子程序 (8)3. 温度转换命令子程序 (9)4. 计算温度子程序 (9)5. 显示数据刷新子程序 (9)六、程序清单(10)七、结束语(17)八、参考文献(18)附录:系统原理图(见a3图纸)前言当今社会,温度检测系统被广泛的社会生产、生活的各个领域。在工业、环境检测、医疗、家庭等多方面都有应用。同时单片机在电子产品中的应用已经越来越广泛。随着温度检测理论与技术的不断更新,温度传感器的种类也越来越多,在微机系统中使用的传感器,必须是能够将非电量转换成电量的传感器,目前常用的有热电偶传感器、热电阻传感器和单导体传感
3、器等,每种传感器根据其自身特性,都有它自己的应用领域。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温准确、其输出温度采用数字显示等优点,主要用于对温度比较准确的场所,或科研实验室使用。该设计控制器使用单片机at89c51,温度传感器使用ds18b20,用4位共阳极led数码管以串口显示数据,实现温度显示。2、 课程设计目的和要求1 设计目的1.学会a/d转换芯片的用法;2.学会掌握8051单片机用法;3.学会单片机的程序设计;4.培养查阅资料的能力。 2.设计要求 本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍
4、,其主要功能和指标如下:1.利用温度传感器(ds18b20)测量某一点环境温度;2.测量范围为-5599,精度为±0.5;3.用数码管进行实际温度值显示;4.能够根据需要方便设定上下限报警温度。三、总体设计方案 整体功能说明:以51单片机为主控制器,以数字式温度传感器ds18b20为传感元件,以led数码管作为显示器件实时显示测量温度(十进制数)。数字式温度计测温范围在55125,误差在±0.5以内。温度测量间隔时间选择1 s 。 通过键盘扩展,实现温度上下限值的设定及温度报警功能。对温度采样值实现数字滤波。通过硬件或软件方法实现时间显示。2. 硬件功能模块组成:温度计的控
5、制器使用单片机at89c2051,温度传感器使用ds18b20,用4位共阳led数码管以动态扫描法实现温度显示。主控制器: 单片机at89c2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要。显示电路:显示电路采用4位共阳led数码管,从p1口输出段码,列扫描用p3.0p3.3口来实现,列驱动用9012三极管。3. 软件功能组成模块:系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序等。主程序:主要功能是负责温度的实时显示、读出并处理ds18b20的测量温度值。温度测量每1 s 进行一次。读出温度子程序:主要功能是读出ram中的
6、9字节。在读出时须进行crc校验,校验有错时不进行温度数据的改写。温度转换命令子程序:主要是发温度转换开始命令。计算温度子程序:将ram中读取值进行bcd码的转换运行,并进行温度值正负的判定。显示数据刷新子程序:主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位。4. 硬件总体框图:5. 测试计划: (1)硬件测试:主要测试各部分硬件是否能正常工作,每部分通过简单程序来检测。 (2)软件测试:测试软件是否符合设计要求、是否存在bug。四、系统的硬件设计1. 整体功能说明:以51单片机为主控制器,以数字式温度传感器ds18b20为传感元件,以led数码管作
7、为显示器件实时显示测量温度(十进制数)。数字式温度计测温范围在55125,误差在±0.5以内。温度测量间隔时间选择1 s 。 通过键盘扩展,实现温度上下限值的设定及温度报警功能。对温度采样值实现数字滤波。通过硬件或软件方法实现时间显示。2硬件功能模块组成:温度计电路设计原理图见a3图纸,温度计的控制器使用单片机at89c51,温度传感器使用ds18b20,用4位共阳极led数码管以动态扫描法实现温度显示。图中有3个独立式按键可以分别调整温度的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时led数码管将没有被测温度显示,这时可以调整上下限,从而测出被
8、测的温度值。2.1主控制器单片机at89c51具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要。2.2温度测量模块主要用到的是ds18b20温度传感器,将采集到的温度模拟量(-55度到125度)转换成数字量,并接上一个上拉电阻后再送给单片机p3.4口。2.3显示电路显示电路采用4位共阳极led数码管,从p0口输出段码,列扫描用p2.0p2.3口来实现,列驱动用9012三极管。2.4温度传感器工作原理1. ds18b20的性能特点ds18b20温度传感器是美国dallas半导体公司最新推出的一种改进型智能温度传感器。与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据
9、实际要求通过简单的编程实现9-12位的数字值读数方式。ds18b20的性能特点如下:.独特的单线接口仅需要一个端口引脚进行通信;.多个ds18b20可以并联在唯一的三线上,实现多点组网功能;.不需要外部器件;.可通过数据线供电,电压范围为3.0-5.5 v;.零待机功耗;.温度以912位数字量读出;.用户可定义的非易失性温度报警设置;.报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;. 负电压特性,电源极性接反时,温度计不会因发热而烧毁,只是不能正常工作。2. ds18b20的内部结构ds18b20采用3脚pr一35封装或8脚soil封装,其内部结构框图如图4.2所示。图4.2
10、ds18b20内部结构框图64位rom的位结构如图4.3所示。开始8位是产品类型的编号;接着是每个器件的唯一的序号,共有48位;最后8位是前面56位的crc检验码,这也是多个ds18b20可以采用单线进行通信的原因。非易失性温度报警触发器th和tl,可通过软件写人用户报警上下限数据。图4.3 64位rom结构框图3.ds18b20测温原理图4.4所示,图中低温度系数振荡器的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数振荡器随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输人。图4.4 ds18b20的测温原理图图中还隐含着计数门,当计数门打开
11、时,ds18b20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55所对应的一个基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减 法 计 数器1对低温度系数振荡器产生的脉冲信号进行减法计数,当减法计数器1的预置值减到。时,温度寄存器的值将加1,减法计数器1的预置值将重新被装人,并重新开始对低温度系数振荡器产生的脉冲信号进行计数。如此循环,直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。图4.8中的斜率累加器用于补偿和修正测温
12、过程中的非线形性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被测温度值。另外 ,由 于ds18b20单线通信功能是分时完成的,有严格的时隙概念,因此读/写时序很重要。系统对ds18b20的各种操作必须按协议进行。操作协议为:初始化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。4.ds18b20与单片机的接口电路ds 18 b 20可以采用两种方式供电:一种是采用电源供电方式,此时ds18b20的第1脚接单片机课程设计指导地,第2脚作为信号线,第3脚接电源;另一种是寄生电源供电方式,如图4.5所示。单片机端口接单线总线,为保证
13、在有效的ds18b20时钟周期内提供足够的电流,可用一个mosfet管来完成对总线的上拉。当 ds 18 b20处于写存储器操作和温度a/d转换操作时,总线上必须有强的上拉,上拉开启时间最长为500 ms。采用寄生电源供电方式时,vdd和gnd端均接地。由于单线制只有一根线,因此发送接口必须是三态的。图4.5 ds18b20采用寄生电源的电路图4.测温系统的硬件工作原理 对ds18b20初始化后,主机发出skip rom命令,此命令执行后的存储器操作命令将对所在线的ds18b20,在发出温度转换启动码(44h),等待750ms后,先发出匹配rom命令(55h)紧接着主机提供一片ds18b20的
14、64位序列号,读取其温度存储器值,存入数据缓存。五、系统的软件设计系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序等。1.主程序主程序需要调用4个子程序,分别为数码管显示程序,温度测试及处理子程序,报警子程序,中断设定子程序。各模块程序功能如下:数码管显示程序:向数码的显示送数,控制系统的显示部分。温度测试及处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。报警子程序:进行温度上下限判断及报警输出。中断设定程序:实现设定上下限报警功能。主程序流程见图5.1:图5.1 主程序流程图2. 读出温度子程序读出温度子程序的主要功能是读出ram中的9
15、字节。在读出时须进行crc校验,校验有错时不进行温度数据的改写。其流程如图5.2所示。发ds18b20复位命令发读取温度命令移入温度暂存器结束发跳过rom命令读取操作,crc校验9字节完?crc校验正确?nnyy图5.2读ds18b20流程图3. 温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令。其流程如图5.3所示。发ds18b20复位命令发跳过rom命令发温度转换开始命令结束图5.3温度转换命令子程序流程图4. 计算温度子程序计算温度子程序的主要功能是将ram中读取值进行bcd码的转换运行,并进行温度值正负的判定。其流程如图5.4所示。开始温度值取补码置“”标志计算小数位温度b
16、cd码计算整数位温度bcd码置“+”标志结束温度零下?ny图5.4计算温度子程序流程5. 显示数据刷新子程序显示数据刷新子程序的主要功能是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位。其流程如图5.5所示。结束百位数显示数据(不显示符号)十位数显示符号百位数不显示温度数据移入显示寄存器十位数0?百位数0?nnyy图5.5 显示数据刷新子程序流程六、程序清单 ;常数定义timel equ 0e0htimeh equ 0b1h ; 20ms,定时器0时间常数temphead equ 36h ;工作内存定义bitst data 20htime1sok bit
17、bitst.1temponeok bit bitst.2templ data 26htemph data 27htemphc data 28htemplc data 29h ;引脚定义tempdin bit p3.4 ;中断向量区 org 0000h ljmp start org 000bh ljmp toit ;系统初始化 org 0030h start: mov sp,#60h clsmem: mov r0,#20h mov r1,#60hclsmem1: mov r0,#00h inc r0 djnz r1,clsmem1 mov tmod,#00100001b ;定时器0工作方式(16
18、位) mov th0,#timel mov tl0,#timeh ;20ms sjmp init error: nop ljmp start nop init: nop setb et0 setb tr0 setb ea mov psw,#00h clr temponeok ljmp main ;定时器0中断服务程序 toit: push psw mov psw,#10h mov th0,#timeh mov tl0,#timel inc r7 cjne r7, #32h,toit1 mov r7, #00h setb time1sok ;1s定时标志 toit1: pop psw reti
19、;主程序 main: lcall disp1 ;调用显示子程序 jnb time1sok,main clr time1sok ;测温每1s一次 jnb temponeok,main2 ;上电时先温度转换一次 lcall readtemp1 ;读出温度子程序 lcall convtemp ;温度bcd码计算处理子程序 lcall dispbcd ;显示区bcd码 温度值刷新子程序 lcall disp1 ;消闪烁,显示一次 main2: lcall readtemp ;温度转换开始 setb temponeok ljmp main ;子程序区 ;复位ds18b20initds1820: setb
20、 tempdin nop nop clr tempdin mov r6,#0a0h ;延时480us djnz r6,$ mov r6,#0a0h djnz r6,$ setb tempdin mov r6,#32h ;延时70us djnz r6,$ mov r6,#3ch loop1820: mov c, tempdin jc initds1820out djnz r6, loop1820 mov r6,#064h ;延时200us djnz r6,$ sjmp initds1820 retinitds1820out:setb tempdin ret ;读ds18b20的程序,从读出ds1
21、8b20一字节的数据readds1820: mov r7, #08h setb tempdin nop nopreadds1820loop: clr tempdin nop nop nop setb tempdin mov r6,#07h ;延时15us djnz r6,$ mov c, tempdin mov r6,#3ch ;延时120us djnz r6,$ rrc a setb tempdin djnz r7, readds1820loop mov r6,#3ch ;延时120us djnz r6,$ ret ;写ds18b20的程序,从读出ds18b20一字节的数据 writeds1
22、820: mov r7, #08h setb tempdin nop nop writeds1820lop: clr tempdin mov r6,#07h ;延时15us djnz r6,$ rrc a mov tempdin,c mov r6,#34h ;延时104us djnz r6,$ setb tempdin djnz r7, writeds1820lop ret;*读温度temp* readtemp:lcall initds1820 mov a,#0cch lcall writeds1820 ;skip rom mov r6,#34h ;延时104us djnz r6,$ mov
23、a,#44h lcall writeds1820 ;开始转换 mov r6,#34h ;延时104us djnz r6,$ retreadtemp1:lcall initds1820 mov a,#0cch lcall writeds1820 ;skip rom mov r6,#34h ;延时104us djnz r6,$mov a,#0behlcall writeds1820mov r6,#34hdjnz r6,$mov r5,#09hmov r0,#tempheadmov b,#00hreadtemp2: lcall readds1820 mov r0,a inc r0readtemp21
24、: lcall crc8cal djnz r5,readtemp2 mov a,b jnz readtempout mov a,temphead+0 mov templ,a mov a,temphead+1 mov temph,a readtempout:ret;*处理温度bcd码子程序* convtemp: mov a,temph anl a ,#80h jz tempc1 clr c mov a,templ cpl a add a,#01h mov templ,a mov a,temph ;"-" cpl a addc a,#00h mov temph,a ;temph
25、c hi=符号位 mov temphc,#0bh sjmp tempc11tempc1: mov temphc,#0ah ;"+"tempc11:mov a,temphc swap a mov temphc,a mov a,templ anl a,#0fh ;乘以0.625 mov dptr,#tempdottab movc a,a+dptr mov templc,a ;templc low=小数部分bcd mov a,templ ;整数部分 anl a,#0f0h swap a mov templ,a mov a,temph anl a,#0fh swap a orl a
26、,templ lcall hex2bcd1 mov templ,a anl a,#0f0h swap a ;temphc low=十位 orl a,temphc mov temphc,a mov a,templ anl a,#0fh swap a ; temphc hi=个位 orl a,templc mov templc,a mov a,r7 jz tempc12 anl a,#0fh swap a mov r7,a mov a,temphc ;temphc hi=百位bcd anl a,#0fh orl a,r7 mov temphc,atempc12:ret;*小数码表* tempdot
27、tab: db 00h 01h 01h 02h 03h 03h 04h 05h 05h db 06h 07h 07h 08h 09h 09h;*显示bcd码子程序*dispbcd: mov a,templc anl a,#0fh mov 70h,a mov a,templc swap a anl a,#0fh mov 71h,a mov a,temphc anl a,#0fh mov 72h,a mov a,temphc swap a anl a,#0fh mov 73h,a mov a,temphc anl a,#0f0h cjne a,#010h,dispbcd0 sjmp dispbcd
28、2dispbcd0: mov a,temphc anl a,#0fh jnz dispbcd2 ;十位是0 mov a,temphc swap a anl a,#0fh mov 73h,#0ah ;符号位不显示 mov 72h,a ;十位显示符号dispbcd2: ret ;显示子程序;显示数据在70h73h单元,用4位led数码管显示,p1口输出段码数据;p3口作扫描控制,每个led数码管亮1ms时间再逐位循环disp1:mov r1,#70h ;指向显示数据首址 mov r5,#0feh ;扫描控制字初值 play:mov p0,#0ffh mov a,r5 ;扫描字放入a mov p2,
29、a ;从p2口输出 mov a,r1 ;取显示数据到a mov dptr,#tab ;取段码表地址 movc a,a+dptr ;查显示数据对应段码 mov p0,a ;段码放入p2口 mov a,r5 jb acc.1,loop5 ;小数点处理 clr p0.7 loop5:lcall dl1ms ;显示1ms inc r1 ;指向下一地址 mov a,r5 ;扫描控制字放入a jnb acc.3,endout ;acc.3=0时显示结束 rl a ;a中数据循环左移 mov r5,a ;放回r5内 ajmp play ;跳回play循环endout:mov p0,#0feh ;一次显示结束
30、,p0口复位 mov p2,#0ffh ;p2口复位 ret ;子程序返回 tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0ffh,0bfh ;共阳段码表09,不亮,-dl1ms:mov r6,#14h ;1ms延时程序dl1 :mov r7,#19hdl2 :djnz r7,dl2 djnz r6,dl1 ret; 单字节十六进制转bcdhex2bcd1:mov b,#064h ;十六进制转bcd div ab ;b=a%100 mov r7,a ;r7=百位数 mov a,#0ah xch a,b div ab ;b=a%b sw
31、ap a orl a,b ret; crc-8校验程序crc8cal: push acc mov r7,#08hcrc8loop1:xrl a,b rrc a mov a,b jnc crc8loop2 xrl a,#18hcrc8loop2:rrc a mov b,a pop acc rr a push acc djnz r7,crc8loop1 pop acc ret end七、结束语本系统的设计,是为了保证某特定环境温度维持在设定的范围内,以保证工作系统在稳定的状态下工作。本系统的设计成本很低。如果采用大批量生产的话,生产成本会更低。在市场上的温度自动控制系统的价格在百元人民币以上。对于本系统的使用者来说,本系统能够很稳定的控制温度而且稳定性很高。只要配上适当的温度传感器,这个系统便还可以实现很多领域的温度自动控制。这对于提高系统的利用率,避免重复设计有很大的帮助的。在本系统的作用下,可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高速RAID存储解决方案行业跨境出海项目商业计划书
- 高效能电源管理IC企业制定与实施新质生产力项目商业计划书
- 高端身体喷雾行业跨境出海项目商业计划书
- 中式传统美食连锁店行业深度调研及发展项目商业计划书
- 高端海洋工程电缆技术企业制定与实施新质生产力项目商业计划书
- 动力伞特技表演秀行业深度调研及发展项目商业计划书
- 生物基聚氨酯材料行业跨境出海项目商业计划书
- 2025届衡阳市逸夫中学七年级数学第二学期期末复习检测试题含解析
- 调度集中系统维护和管理铁道信号自动控制专业教学81课件
- 调度集中系统网络结构和管理铁道信号自动控制专业教学92课件
- 青春期的烦恼新专家讲座
- PFMEA(中英文标准模板)
- 2024年市政工程市场洞察报告
- 水工机械设备维护检修规程
- 穿脱手术衣与戴无菌手课件
- 2024年春江苏开放大学文学概论060060第一次过程性考核作业答案
- 北京市东城区2023-2024学年八年级上学期期末数学测评卷(含答案)
- 优质课件:几代中国人的美好夙愿
- 被诈骗的起诉书范文
- 产品供货方案、售后服务方案
- 全球健康智慧树知到课后章节答案2023年下浙江大学
评论
0/150
提交评论