花卉大棚控制系统的设计 - 图文(10)

2019-09-01 17:19

附 录

附 录

以下为本系统的汇编程序:

FLAG1 EQU 50H ;是否检测到DS18B20标志位 A_BIT EQU 20H ;数码管温度个位数存放位置 B_BIT EQU 21H ;数码管温度十位数存放位置 C_BIT EQU 22H ;数码管温度小数个分位位置 D_BIT EQU 23H ;数码管温度小数十分位位置 A1_BIT EQU 24H ;湿度十位数 B1_BIT EQU 25H ;湿度个位数 C1_BIT EQU 26H D1_BIT EQU 27H

MAXSD EQU 39H ;湿度上限 MINSD EQU 38H ;湿度下限 MAXVALUE EQU 41H ;温度上限 MINVALUE EQU 40H ;温度下限 DOUT BIT P1.2 ;定义I/O口

SCLK BIT P1.6 ; TLC549的时钟控制 CS549 BIT P1.0 ; TLC549的使能控制 ORG 00H

MOV 40H,#20 ;温度下限 MOV 41H,#25 ;温度上限 MOV 38H,#20 ;湿度下限 MOV 39H,#60 ;湿度上限 SJMP MAIN ORG 13H LJMP SETMAXMIN ORG 35H MAIN:

- 42 -

附 录

MOV IE,#84H ;开ea和ex1 MOV IP,#00H MOV TCON,#00H MOV SP,#70H

LCALL TEMPERATURE ;读温度子程序 LCALL TRANSFORM ;温度转换子程序 LCALL TLC549 ; 调用TLC549读湿度 LCALL TRANS ; 湿度值转换 SETB P3.0 ;复位湿度蜂鸣器 SETB P3.4 ;复位温度蜂鸣器

MOV P1,#0FFH ;复位温度正常指示灯p1.0,温度异常指示灯p1.7,传感器存在标志位p1.1,温度设定上下值

;切换标志位p1.6

LCALL DISPLAY ;数码管显示子程序 JMP WARNING ;温度比较报警子程序 TEMPERATURE: ;【1】 SETB P3.5

LCALL INIT_1820 ;先复位DS18B20 JB FLAG1,KERNEL; MOV 28H,#00H MOV 29H,#00H

SETB P2.0 ;关继电器 SETB P2.1 ;关继电器 CLR P1.7 ;异常指示 LCALL DISPLAY JMP MAIN KERNEL:

MOV A,#0CCH ;跳过rom匹配命令 LCALL WRITE_1820 ;写入命令

- 43 -

附 录

MOV A,#44H ;温度转换命令 LCALL WRITE_1820

LCALL INIT_1820 ;读温度前先复位 MOV A,#0CCH ;跳过rom匹配命令 LCALL WRITE_1820

MOV A,#0BEH ;读温度暂存器命令 LCALL WRITE_1820

LCALL READ_1820 ;将读出的温度数据保存到29h28h RET INIT_1820:

SETB P3.5 ;拉高电平 NOP

CLR P3.5 ;拉低电平

;传感器时序要求总线拉低500微秒以上

MOV R1,#3 ;主机发出延时550微秒的复位延时低脉冲 TSR1: MOV R0,#90 DJNZ R0,$ DJNZ R1,TSR1

SETB P3.5 ;拉高数据线 NOP NOP NOP MOV R0,#25H TSR2:

JNB P3.5,TSR3 ;等待DS18B20回应 DJNZ R0,TSR2

LJMP TSR4 ;跳转到tsr4,置不存在标志位 TSR3:

- 44 -

附 录

SETB FLAG1;置标志位,表示ds18b20存在 LJMP TSR5 TSR4:

CLR FLAG1 ;置标志位,表示ds18b20不存在 LJMP TSR7 ;温传时序要求延时一段时间 TSR5: MOV R0,#117 TSR6:

DJNZ R0,TSR6; TSR7:

SETB P3.5 ;拉高数据线 RET WRITE_1820:

MOV R2,#8 ;一个字节共8位 CLR C ;清除进位标志位 WR1:

CLR P3.5 ;拉低数据线15微秒以上,将数据移位写入ds18b20 MOV R3,#6

DJNZ R3,$ ;等待14微秒以上,完成写初始化,然后写入数据 RRC A ;将累加器中数据带进位右移 MOV P3.5,C ;写入一位数据

MOV R3,#23 ;等待47微秒,完成1位的写操作,总共大于60微秒 DJNZ R3,$

SETB P3.5 ;拉高数据线大于1微秒,初始化写 NOP

DJNZ R2,WR1 ;写入一个字节 SETB P3.5 ;拉高数据线 RET TLC549:

- 45 -

附 录

SETB CS549

CLR SCLK ;初始化时钟电平 SETB CS549 ;初始化片选信号 LCALL DELAY8

LCALL SPIR ;调用SPI总线的模拟读子程序 MOV 31H,A ; SETB CS549 ; LCALL DELAY8

LCALL SPIR ; MOV 31H,A ; RET

SPIR: CLR CS549 ; NOP NOP NOP NOP

MOV C,DOUT ; RLC A NOP NOP

MOV R0,#07 ;SPIIN: SETB SCLK NOP NOP

CLR SCLK ; NOP NOP

MOV C,DOUT ;保存采样数据 初始化片选信号 调用SPI总线的模拟读子程序 保存采样数据 选中TLC549 接受第一位数据 置循环次数 产生有效沿,以便从器件锁存数据接受下一位数据(从最高位开始)

- 46 -


花卉大棚控制系统的设计 - 图文(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:循环流化床锅炉SO2超低排放技术

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: