云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 单片机温度采集系统

单片机温度采集系统

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 22:14:29

位错,亦无停止位错的接收才算正确的。1个字符接收完毕后,接收设备又继续检测传输线,监视“0”信号的到来和下一个字符传输的开始,如此反复。

3.5.3流程图

串口通信过程采用中断方式,SBUF是串行口数据缓冲器,是一个可以直接寻址的专用寄存器。在物理上,一个作为发送缓冲器,一个作为接收缓冲器。两个缓冲器共用一个口地址99H,由读写信号区分,CPU写SBUF时为发送缓冲器,读SBUF时为接收缓冲器。单片机响应串口中断申请,根据控制字执行相应的读写操作。串口中断过程如图3-6所示:

串口中断 关中断

控制字转移 读SBUF

调读函数 调写函数 控制“读” 控制“写”

结 束 开中断 图3-6 串口中断流程图

3.6 系统源程序

=======================各存储器地址定义=================================

ADPORT EQU 0FEFBH;AD转换口地址

- 33 -

LEDBUF EQU 30H; 将送显示的八段码存储器 TEMP EQU 40H; 置缓冲区首地址 LOWLIMIT EQU 30; 最低设定温度 HIGHLIMIT EQU 70; 最高设定温度 LOWTEMP EQU 0; 温度下限 HIGHTEMP EQU 100;温度上限

SETTEMP EQU 50H;设定温度值存储器 CURTEMP EQU 51H;当前实际温度存储器 ADRAM EQU 60H;AD转换后数字量存储器 DIN BIT 0B0H;串行通信口 CLK BIT 0BIH;触发源

=======================程序开始部分====================================

ORG 0000H;程序首地址 LJMP START ;跳到主程序

LEDLAB: DB 3FH,06H,5BH,4FH,66H,6DH;要显示温度值对应的八段码表 DB 7DH,07H,7FH,6FH

===========================显示子程序================================== DISPLAYLED:

PUSH ACC;保护现场 PUSH DPH PUSH DPL

MOV R0,#LEDBUF;

MOV R1,#TEMP;送缓冲区首址

MOV R2,#2;显示位数计数

DL0:

MOV DPTR,#LEDLAB;指向字形段码表首址 MOV A, @R0;取要显示的数据 MOVC A,@A+DPTR;查表取字形段码 MOV @R1,A

MOV P1,A;由P1口送LED显示 DP1:

JNB TI,DL1;等待发送完一帧 CLR TI;清发送中断标志

DEC R0;指向下一个显示单元 DJNZ R2,DL0;2位未显示重复 POP DPL;恢复现场 POP DPH POP ACC

======================延时子程序======================================= DELAY: MOV R6,#100 DELAYLOOP:

MOV R5,#248

- 34 -

DJNZ R5,$

DJNZ R6,DELAYLOOP RET

===================温度计算与处理子程序================================= READTEMP:

ACALL READAD

MOV ADRAM,A;存由READAD子程序得来的A/D转换数字量 MOV B,#(HIGHTEMP-LOWTEMP);执行相关计算 MUL AB

MOV A,B;取高八位相当于除以256 ADD A,#LOWTEMP

MOV CURTEMP,A;保存求得的温度 RET DISPLAYRESULT:

CALL READTEMP

MOV A,ADRAM;A/D转换的数字量送A PDC:

MOV A,CURTEMP;取当前温度 LJMP GOON GOON:

MOV B,#10;转换为相应的十进制的八段码的偏移量 DIV AB

MOV LEDBUF+1,A MOV A,B

MOV LEDBUF+2,A RET

=====================读A/D口子程序==================================== READAD:

MOV DPTR,#ADPORT CLR A

MOVX @DPTR,A; 使P0为高阻抗,并使ADC0804开始转换,

WR=0

WAIT: JB P3.2,WAIT; 检测ADC0804的INTR=0?,是则转换完

MOVX A,@DPTR; 将转换好的数据载入累加器 CPL A ; 将累加器的值反相 MOV P1,A ; 输出至P1显示 CALL DELAY ; 延时50毫秒 RET

==========================主程序======================================

- 35 -

START:

MOV SETTEMP,#50;设定恒温值为50℃ MLOOP1: ACALL DISPLAYRESULT ACALL DISPLAYLED ACALL READTEMP

MOV A,CURTEMP;以下是加热程序 JB ACC.7,LEO CLR C

MOV B,SETTEMP DEC B DEC B SUBB A,B JNC GN2 LEO:

SETB P3.4 SJMP GN4 GN2:

MOV A,CURTEMP SETB C

MOV B,SETTEMP INC B INC B SUBB A,B JC GN4 CLR P3.4 SJMP GN4 GN4:

ACALL DELAY1 LJMP MLOOP END

结论

本设计中,是以温度采集和过程控制,配合远距离串口通讯为总目标,采用AT89C51单片机最小应用系统为总控制中心,辅助设计有温度采样电路、A/D转

- 36 -

搜索更多关于: 单片机温度采集系统 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

位错,亦无停止位错的接收才算正确的。1个字符接收完毕后,接收设备又继续检测传输线,监视“0”信号的到来和下一个字符传输的开始,如此反复。 3.5.3流程图 串口通信过程采用中断方式,SBUF是串行口数据缓冲器,是一个可以直接寻址的专用寄存器。在物理上,一个作为发送缓冲器,一个作为接收缓冲器。两个缓冲器共用一个口地址99H,由读写信号区分,CPU写SBUF时为发送缓冲器,读SBUF时为接收缓冲器。单片机响应串口中断申请,根据控制字执行相应的读写操作。串口中断过程如图3-6所示: 串口中断 关中断 控制字转移 读SBUF 调读函数 调写函数 控制“读” 控制“写” 结 束 开中断 图3-6 串口中断流程图

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com