智能电风扇毕业论文(6)

2018-12-14 22:53

4.2、总程序

TEMPER_L EQU 29H; 用于保存读出温度的低8位 TEMPER_H EQU 28H; 用于保存读出温度的高8位 FLAG1 EQU 38H; DS18B20标志位 FLAG2 EQU 01H; 设定状态标志位 ORG 0000H

AJMP START; ORG 0030H

START:MOV 2FH,#25; SETB P2.1 ; CLR FLAG2 mov sp,#60h;

duqu:LCALL GET_TEMPER ; LCALL DISP ; MOV A,29H; CJNE A,2FH,LL1; 等

CLR P2.0; SJMP ANJIAN

MAIN: MOV a,2FH ; MOV b,#10 ; div ab

ORL A,#00110000B

MOV 41H,a ; MOV 42H,b ; MOV A,42H

ORL A,#00110000B; MOV 42H,A MOV a,2FH

转入主程序 设定高于25度为温度过高 调用读温度子程序并初始化DS18B20

调用显示当前温度 将现场实际温度传递给A 比较当前的温度与设定的温度是否相

开启电风扇 存储的温度25度

取出十位和个位 十位 个位 转化成ASCII码 26

MOV b,#100 ; div ab

ORL A,#00110000B

MOV 40H,a ;

LL1:SETB P2.0; 关闭电风扇 ANJIAN:

LCALL DISP

; 读取当前按键的值

MOV A,P3

ANL A,#0FH ; 屏蔽高位

sheding:CJNE A,#0CH,jia ; 加减按键一起按就进入温度设定状态 ACALL DELAY100 ; 消除键抖动

CJNE A,#0CH,jia ; 加减按键一起按就进入温度设定状态 setb flag2 ; 启动设定 sjmp duqu

jia: CJNE A,#0EH,jian ; 加处理 ACALL DELAY100 ; 消除键抖动 CJNE A,#0EH,jian ; 加处理

JNB FLAG2,DUQU ; 在加减键没有同时按下的时候,只按加按键时不执

行任何功能,并跳到读取当前温度

MOV A,2FH INC A

; 先读取原先设定的温度值

; 原先设定的温度值加1,

; 将当前设定的温度值保存

MOV 2FH,A

SJMP BAOCUN

jian: CJNE A,#0DH,duqu ; 减处理 ACALL DELAY100 ; 消除键抖动 CJNE A,#0DH,duqu ; 减处理

JNB FLAG2,DUQU ; 在加减键没有同时按下的时候,只按

加按键时不执行任何功能,并跳到读取当前温度

MOV A,2FH

; 先读取原先设定的温度值

27

DEC A ; 原先设定的温度值减1,当设定的温度值不能超过-25

MOV 2FH,A

; 保存当前设定的温度

baocun:CJNE A,#0CH,TUICHU; 加减按键一起按就保存温度设定状态 并退出设定

ACALL DELAY100 ; 消除键抖动

CJNE A,#0CH,TUICHU; 退出设定

CLR flag2 ;

SJMP QUIT

TUICHU:CPL P2.1; LCALL DELAY100 LCALL DELAY100 LCALL DELAY100 LCALL DELAY100 LCALL DELAY100

SJMP BAOCUN

QIUT:LCALL DISP

LJUMP MAIN

DISP: JNB FLAG2,DQ

MOV A,2FH;

SJMP XS

DQ:mov a,29H; XS: mov b,#10 ; div ab

MOV DPTR,#WORDTAB MOVC A,@A+DPTR

MOV P0,A

加减按键一起按就保存温度设定状态 并关闭设定 等待退出设定状态 显示设定温度值 显示当前温度值 取出十位和个位 28

CLR P2.7; 开启个位数码管显示

SETB P2.6

SETB P2.5 LCALL DELAY100 SETB P2.7 MOV A,B

MOV DPTR,#WORDTAB MOVC A,@A+DPTR MOV P0,A

CLR P2.6; SETB P2.7 SETB P2.5 LCALL DELAY100 SETB P2.6

RET

GET_TEMPER: LCALL INIT_1820; JB FLAG1,TSS2

RET ;

INIT_1820: SETB P3.2 NOP CLR P3.2

MOV R0,#06BH;

MOV R1,#03H

TSR1: DJNZ R0,TSR1 MOV R0,#6BH

DJNZ R1,TSR1

开启十位数码管显示 先复位DS18B20 主机发出延时537微秒的复位低脉冲29

SETB P3.2; 然后拉高数据线 NOP NOP NOP

MOV R0,#25H

TSR2: JNB P3.2,TSR3; DJNZ R0,TSR2

LJMP TSR4 ; 延时

TSR3: SETB FLAG1 ;

LJMP TSR5

TSR4: CLR FLAG1 ;

LJMP TSR7

TSR5:

MOV R0,#06BH

TSR6:

DJNZ R0,TSR6 ; TSR7: SETB P3.2

RET

WRITE_1820: MOV R2,#8;

CLR C

WR1: CLR P3.2 MOV R3,#5 DJNZ R3,$

RRC A

等待DS18B20回应 置标志位,表示DS1820存在 清标志位,表示DS1820不存在 时序要求延时一段时间

一共8位数据 30


智能电风扇毕业论文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:谢某某被控贪污罪一案的庭审质证意见(一)

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

马上注册会员

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