基于单片机的温度检测系统设计_第1页
基于单片机的温度检测系统设计_第2页
基于单片机的温度检测系统设计_第3页
基于单片机的温度检测系统设计_第4页
基于单片机的温度检测系统设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 2009 级信息系统综合 设计 信息系统综合设计报告书课题名称 基于单片机的温度检测系统设计 姓名学号院 、系 、部电气工程系专 业电子信息工程指导教师2013 年 1 月 7 日基于单片机的温度检测系统设计一、设计目的1、了解测温系统中工作元件的工作原理;2、掌握数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、超温 报警程序的编写。二、设计要求1. 测量通道: 2 路可循环显示,并有通道标志2. 温度传感器选用 DS18B203. 具有温度等信息的显示,具有温度上下限设置功能,越限时可以进行报警给 出电路原理图设计, protel 印刷电路图设计三、硬件电路设计3.1 系统结构框

2、图图 1 系统结构框图3.2 单片机介绍图 2 单片机引脚图P0口作为 I/O 口使用时为准双向口。P1 口是自带上拉电阻的 I/O 口,是一个准双向口。在输入操作时需要先置 1。P1口特点是输出锁存器,输出时没有条件。输入缓冲,输入时有条件,即需 要先将该口设为输入状态,先输出 1。P3口为准双向口。可以字节访问,也可以位访问。P3.0-RXD,串行输入口。P3.1-TXD,串行输出口。P3.2-INT0,外部中断 0 的请求。P3.3-INT1,外部中断 1 的请求。P3.4-T0,定时器 /计数器 0 外部计数脉冲。P3.5-T1,定时器 /计数器 ,1外部计数脉冲。P3.6-WR,外部

3、数据存储器写选通。P3.7-RD,外部数据存储器读选通。3.3 数码管显示电路图 3 数码管显示电路3.4 LED 显示电路3.5 串口显示电路图 5 通讯接口电路3.6 系统电路原理图图 6 电路原理图1、所需元器件单片机 AT89S521芯片(1 个)、A/D 转换机(1个)、温度传感器 DS18B20(1 个)、电阻: 10K(2 个)、电容 :1000F(1个)、1uF(4 个)、25uF(1 个) 数码管 (3 个)、按钮 (4 个)、晶振(6MHZ) 2、实现的功能该电路要实现的功能为, 实时检测外界温度, 将该温度值转换为数字量, 然 后通过四位的数码管显示。其中外界温度用温度传

4、感器 DS18B20 感应,然后通 过 ADC0809 转换为数字量后,通过单片机的 P1 口送到单片机内部存储单元。 之后将该温度值转换为十进制后,将个十百位分别通过 P1 口送出,然后经 74HC573 的锁存,输出段码,之后通过 P1口送出位码, 经另一片 74HC573 锁存 后驱动相应的数码管显示。四、程序流程图设计开始图7 程序流程图五、程序设计ORG 0000HAJMP MAINORG 0030HMAIN:MOV SP,#60HSETBP2.4MOV30H,#0MOV31H,#0MOV32H,#0MAIN1:LCALL GET_TEMP;采集温度LCALLSEPERATE;对采集

5、后的温度数据进行处理LCALLZHUANHUAN;二进制数转换为 BCD 的形式LCALLQINGLING;转换为满足输出的类型LCALLJIANTIAO;扫描键盘模块LCALLBAOJING;报警设置模块LCALLSHUCHU;显示数据到数码管SJMP MAIN1GET_TEMP:CLREA;使用DS18B20一定要禁止任何中断产生LCALLINT;调用初使化子程序MOVA,#0CCHLCALLWRITE;送入跳过 ROM 命令MOVA,#44HLCALLWRITE;送入温度转换命令LCALLINT; 温度转换完全 ,再次初使化 DS18B20MOVA,#0CCHLCALLWRITE;送入跳

6、过 ROM 命令MOVA,#0BEHLCALLWRITE;送入读温度暂存器命令LCALLREADMOVR7,A;读出温度值低字节存入 R7LCALLREADMOVR6,A;读出温度值高字节存入 R6SETBEARETINT:;初始化 DS18B20子程序CLREAL0:CLRP2.1;复位MOVR2,#149L1:DJNZR2,L1;596USSETBP2.1;释放DS18B20总线MOVR2,#15;4USL2:DJNZR2,L2;60USCLRC;2US,清DS18B20存在信号MOVC,P2.1;取DS18B20存在信号JCL0;判断DS18B20存在吗?不存在则重新来MOVR2,#12

7、5;存在则拉高SETB P2.1L3:DJNZ R2,L3;共500USRETWRITE:MOV R1,#08H WLOP:RRC AACALL WRBITDJNZ R1,WLOPRETWRBIT:MOV R2,#14;设置写位个数;把写的位放到 C ;调写1位子程序 ;8位全写完?CLR P2.1NOPMOV P2.1,C;设置时间常数;写开始;2US;C内容存到总线WDLT:DJNZ R2,WDLT ;56USSETB P2.1;释放总线RETREAD:MOV R1,#8HRLOP:ACALL RDBIT RRC A DJNZ R1,RLOPRETRDBIT:MOV R2,#13CLR P

8、2.1NOPSETB P2.1NOPMOV C,P2.1RDDLT: DJNZ R2,RDDLT SETB P2.1;设置读位数;调读1位子程序; 把读到的位在 C中的依次送给 A ;8位读完?;设置时间常数;2US;释放总线;2US;把总线上的内容读到 C;等待52USRETF0放符号位;程序名称 :SEPERATE;功能:处理采集后的的数据 ,把小数部分分开, R6放整数 R7放小数, ;入口参数 : R6,R7;出口参数 : R6 R7 F0SEPERATE:MOV A,R6;符号位MOV C,ACC.7MOV F0,CJC SEPERATE1SJMP SEPERATE2SEPERATE

9、1:MOV A,R6CPL AMOV R6,AMOVA,R7CPLACLRCINCAMOVR7,AMOVA,R6ADDCA,#00HMOVR6,ASEPERATE2:MOV 40H,R7ANL40H,#0FH;小数部分MOVR0,#12;移12次SEPERATE3:MOV A,R6RRCAMOVR6,AMOVA,R7RRCAMOVR7,AMOVA,41HRRCAMOV41H,A;整数部分DJNZR0,SEPERATE3MOVR6,41H;存整数部分MOVR7,40H;存小数部分RET;程序名称: ZHUANHUAN;功能:将 R6R7中的二进制数转换为 BCD的形式;入口参数: R6R7;出口

10、参数: R4R5R6R7ZHUANHUAN:MOVA,R6;开始处理整数部分MOVB,#100DIVABMOVR4,A;存百位MOVA,BMOVB,#10DIVABMOVR5,A;存十位MOVR6,B;存个位MOVA,R7;开始处理小数部分地MOVB,#5MULABMOVB,#10DIVABMOV40H,A;存进位MOVA,R7MOVB,#2MUL ABADD A,40HMOV B,#10DIV ABMOV 40H,A;存进位MOV A,R7MOV B,#6MUL ABADD A,40HMOV B,#10DIV ABMOV R7,A;暂存小数最高位MOV A,BCLR CSUBB A,#5JC

11、 ZHUANHUAN1INC R7ZHUANHUAN1:RETJIANTIAO:JB P1.7,QUITLCALL DELAYJB P1.7,QUITCLR 21H.1MOV 30H, R5MOV 31H, R6MOV 32H, R7LOOP:JB 21H.1,QUIT;程序名称 :JIANTIAO ;功能:扫描键盘 ;入口参数 :R5R6R7 ;出口参数 :30H,31H,32H如果有 Enter键入,则开始键盘输入; 每次进来都赋值输入标志,设置为 0 ;以当前所测温度为基准 ,进行加减;如果输入完成, 20H.1则为 1,退出键盘程序JB P1.7,JIALCALL DIFINEJIA:

12、 JB P1.5,JIANLCALL JIAYIJIAN: JB P1.6,XIANSHILCALL JIANYI XIANSHI:LCALL QINGLINGLCALL SHUCHUSJMP LOOP QUIT:RET;程序名称 :DIFINE ;功能:确认键盘输入和退出键盘输入;入口参数 :ENTER_FLAG;出口参数 :ENTER_FLAGDIFINE:LCALL DELAYJB P1.7,LOOP;按键抖动处理SETB 21H.1LCALL DELAYRET;程序名称 :JIAYI;功能:数值上调处理;入口参数 : 30H,31H,32H;出口参数 :R5R6R7JIAYI:LCAL

13、L DELAY;小数位加 1;小数位增加到 10,回 0;个位进1;十位进1;十位超过 99.9,溢出了;出错,显示 8888;退回99.9JB P1.5,LOOPINC 32HMOV A,32HCJNE A,#0AH,JIANEXTMOV 32H,#00HINC 31HMOV A,31HCJNE A,#0AH,JIANEXTMOV 31H,#00HINC 30HMOV A,30HCJNE A,#0AH,JIANEXTMOV R0,#200 CUOWU1:LCALL CUOWU DJNZ R0,CUOWU1DEC 30HMOV 31H,#09HMOV 32H,#09HJIANEXT:MOV R

14、5,30HMOV R6,31HMOV R7,32H LCALL DELAY RET;程序名称 :JIANYI;功能:数值下调处理;入口参数 : 30H,31H,32H;出口参数 :R5R6R7JIANYI:LCALL DELAYJB P1.6,LOOPDEC 32HMOV A,32HCJNE A,#0FFH,JIANNEXTMOV 32H,#09HDEC 31HMOV A,31HCJNE A,#0FFH,JIANNEXTMOV 31H,#09HDEC 30HMOV A,30HCJNE A,#0FFH,JIANNEXTMOV R0,#200CUOWU2:LCALL CUOWUDJNZ R0,CU

15、OWU2INC 30HMOV 31H,#00HMOV 32H,#00HJIANNEXT:MOV R5,30HMOV R6,31HMOV R7,32HLCALL DELAYRETDELAY: MOV R0,#250 LOOP1: MOV R1,#100DJNZ R1,$DJNZ R0,LOOP1 RET;程序名称: BAOJING ;功能:报警控制 ;入口参数:;出口参数:;按键抖动处理;小数位减一;小数位减到 0,回到 9;个位减一;个位减到 0,回到 9;十位减一;十位低于 0,溢出了;出错,显示 8888;退回00.0;延时程序BAOJING:MOV A,30H;三个Buffer都是0的话

16、,说明还没有输入数值,直接退出JNZ BIJIAOMOV A,31HJNZ BIJIAOMOV A,32HJZ SQUITBIJIAO:MOV A,30HCLR C;置C为0SUBB A,R5JNZ GUODU MOV A,31H SUBB A,R6JNZ GUODU MOV A,32HSUBB A,R7 JNZ GUODURETGUODU:CLR P2.4JC MINGJIAORETMINGJIAO:LCALL CUOWULJMP JIANTIAO;十位不等转移;个位不等转移;小数位不等转移;当前所测温度大于设置的温度 ,则鸣叫SQUIT:RET ;程序名称 :CUOWU;功能:程序出错处理

17、,显示四个 8,即 8888;入口参数 :无;出口参数 :R4R5R6R7CUOWU:SETB P2.4MOV R4,#08HMOV R5,#08HMOV R6,#08HMOV R7,#08HLCALL QINGLINGLCALL SHUCHU RET;程序名称 :QINGLING;功能:将 R4R5R6R7转换为满足输出的类型;输入参数: R4R5R6R7;输出参数: R4R5R6R7QINGLING:MOVDPTR,#TABLE;指向表首MOVA,R4;转换为表格中的数据MOVCA,A+DPTRMOV35H,AMOVA,R5MOVCA,A+DPTRMOV36H,AMOVA,R6MOVCA,

18、A+DPTRMOV37H,AMOVA,R7MOVCA,A+DPTRMOV38H,AINC 37HMOV A,35HCJNE A,#0FCH,ANDY2MOV 35H,#00HMOV A,36HCJNE A,#0FCH,ANDY2MOV 36H,#00HANDY2: JB F0,ANDY3 SJMP ANDYANDY3: MOV A,35HCJNE A,#00H,ANDYMOV A,36HCJNE A,#00H,IVERSONMOV 36H,#02HSJMP ANDYIVERSON: MOV 35H,#02H ANDY: RET;小数点;高位清零;判断是否为负数加符号;如果为正数则不加符号;最高位是否为零;中位是否为零;R5用来显示符号;R4用来显示符号TABLE:DB 0FCH,6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论