基于AT89S51的温度测量系统的设计论文.doc
《基于AT89S51的温度测量系统的设计论文.doc》由会员分享,可在线阅读,更多相关《基于AT89S51的温度测量系统的设计论文.doc(12页珍藏版)》请在三一文库上搜索。
1、基于AT89S51的温度测量系统的设计一、设计题目:基于AT89S51的温度测量系统的设计二、元件及器材:单片机AT89C51、温度传感器DS18B20、显示译码器74LS47、晶振11.0592MHz、MAX232CPE、3位LED七段显示器LN5361BS三、系统设计过程:1、电路功能:本单片机开发电路系统可实现温度测量的显示及与PC机的串行通信。2、电路原理图:3、电路分析:电路中采用的温度传感器DS18B20是美国DALLS公司生产的单总线数字温度传感器,可把温度信号直接转换成串行数字信号供微机处理。从DS18B20读出或写入的信息仅需要一根口线(单总线接口),读写及温度变换功率来源于
2、数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。GND:地;VCC:电源电压DQ:数据输入/输出脚(单线接口,可作寄生供电)DS18B20123GNDDQVCCDS18B20的外引脚图如下:在电路中DS18B20的VCC接+5V电源,给温度传感器提供电源;数据输入/输出脚DQ与单片机AT89C51的P2.0相连,实现将所测的温度读入CPU,经系统处理后转化为ASCII码通过P0.0P0.3传送给LED显示电路显示。温度读入程序如下:DSWD:CLR EALCALL RSTSNRJNB F0,KEND;如果没有应答,返回主程序MOV R0,#0CCHLCALL SEND_B
3、YTE;跳过ROM匹配MOV R0,#44H;发出温度转换命令LCALL SEND_BYTESETB EAMOV P1,#00001111BMOV 48H,#1;延时75ms以上准备读SS2:MOV 49H,#255SS1:MOV 4AH,#255SS0:DJNZ 4AH,SS0DJNZ 49H,SS1DJNZ 48H,SS2MOV P1,#11111100BCLR EALCALL RSTSNRJNB F0,KENDMOV R0,#0CCH;跳过ROM匹配LCALL SEND_BYTEMOV R0,#0BEH ;发出读温度命令LCALL SEND_BYTELCALL READ_BYTEMOV
4、WDLSB,ALCALL READ_BYTEMOV WDMSB,ALCALL TRANS12KEND:SETB EARETSEND_BYTE: MOV A,R0;发送一个字节程序 MOV R5,#8SEN3:CLR C RRC A JC SEN1 LCALL WRITE_0 SJMP SEN2SEN1:ACALL WRITE_1SEN2:DJNZ R5,SEN3;循环8次,写一个字节 RETREAD_BYTE:MOV R5,#8;读一个字节程序READ1: LCALL READ RRC A DJNZ R5,READ1;循环8次,读一个字节 MOV R0,A RET ;复位程序,如果复位置位F0
5、,没有就复位F0RSTSNR:SETB DAT NOP NOP CLR DATMOV R6,#250;主机发复位脉冲持续2*300=600SDJNZ R6,$MOV R6,#50DJNZ R6,$SETB DAT;主机释放总线,口线改为输入MOV R6,#15DJNZ R6,$LCALL CHCK;调用应答检查程序MOV R6,#60DJNZ R6,$RETCHCK:MOV C,DATJC RST0SETB F0;检测到信号,置位F0SJMP CHCK0RST0:CLR F0;未准备好F0复位CHCK0:RET WRITE_0: CLR DAT;写0DJNZ R6,$SETB DATRETWR
6、ITE_1:CLR DAT;写1NOPNOP NOP NOP NOP SETB DAT DJNZ R6,$ RET ;读一位数据程序READ:SETB DAT ;先复位至少1US产生读起始信号 NOP NOP CLR DAT NOP NOPSETB DAT ;置位DAT准备接收数据NOPNOPNOPNOPNOPNOPNOPMOV C,DATMOV R6,#23DJNZ R6,$RET温度转换程序(只取整数)30H=LSB,31H=MSB;TRANS12:MOV A,30H;将读出的温度低字节送入累加器A ANL A,#0F0H;将低四位清0,保留高四位 MOV 3AH,A MOV A,31H;
7、将读出的温度高字节送入累加器A ANL A,#0FH;将高四位清0,保留低四位 SWAP A MOV B,#10 DIV AB MOV 43H,B DIV AB MOV 42H,B MOV 41H,A ORL A,#30H;将BCD码转换为ASCII码 MOV 50H,A MOV A,42H ORL A,#30H MOV A,43H ORL A,#30H MOV 52H,A MOV 53H,#20H ACALL SEND2PC RET温度的数码显示:系统处理所得的ASCII码经P0.0P0.3送入74LS47译码锁存,单片机每隔10ms(定时/计数器0利用方式1)采用中断的形式循环扫描,利用P
8、0.4P0.6依次点亮3个LED数码管,将译码器锁存数据显示。具体程序如下:ORG 0040HTMR0:MOV P0,40H ; 最高一位值送P0 ORL P0,# 01000000B; 点亮最高一位LED数码管 ACALL TIMSMOV P0,41H ORL P0,#00100000B;点亮次高一位LED数码管 ACALL TIMS ORL P0,#00010000B;点亮最低一位LED数码管 ACALL TIMS MOV TH0,#LOW(65535-10000) ;定时器10ms定时 MOV TL0,#HIGH(65535-10000) RETITIMS:MOV R5,#00H;延时子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89S51 温度 测量 系统 设计 论文
链接地址:https://www.31doc.com/p-3919991.html