DS18B20+DS1302项目报告(5)

2020-02-21 18:33

//

Receive_B:

SETB

SDA ;释放SDA数据线

MOV R7,#08H ;一个字节共接收8位数据 CLR A

R_B: SETB SCL ;启动一个时钟周期,读总线

NOP

MOV C,SDA ;将SDA状态读入C RLC A ;结果移入A CLR SCL NOP

DJNZ R7,R_B ;判断8位数据是否接收完全? SETB SDA NOP RET

;//////停止24c02子程序/////////////////////////////////// Stop:

CLR SDA ;时钟高电平时数据上升沿

为停止信号

NOP

SETB SCL NOP

SETB SDA NOP

CLR SCL RET

Begin: ;24C02启动子程序

SETB SCL ;时钟高电平时数据下降沿为启

动信号

NOP

SETB SDA

21

NOP

CLR SDA NOP

CLR SCL ;钳住IC总线准备发送或接受数

据 NOP

RET

;****************

************************************************************ MK2:

LCALL MENU_ERROR

;调用显示出错信息子程序

SJMP $

RET

;**************LCD

*********************************************** INIT_LCD:

MOV A,#38H ;2行显示,字形5*7点阵

LCALL WCOM LCALL DELAY1 MOV A,#38H LCALL WCOM LCALL DELAY1 MOV A,#38H LCALL WCOM LCALL DELAY1

MOV A,#0CH ;开显示,显示光标,光标不闪烁 LCALL WCOM LCALL DELAY1

MOV A,#01H ;清除 LCD 显示屏 LCALL WCOM

22

LCALL DELAY1 RET

;************************DS1820初始化时序************************ RST:

SETB DQ

NOP CLR DQ

MOV R0,#6BH ; MOV R1,#04H TSR1: DJNZ R0,$ MOV R0,#6BH DJNZ R1,TSR1 SETB DQ NOP NOP NOP

MOV R0,#32H TSR2: JNB DQ,TSR3 DJNZ R0,TSR2

JMP TSR4 ; TSR3: SETB FLAG1 ; JMP TSR5

TSR4: CLR FLAG1 ; JMP TSR7 TSR5: MOV R0,#06BH

TSR6: DJNZ R0,$ ; TSR7: SETB DQ RET

;**************************

主机发出延时复位低脉冲 ;拉高数据线

;等待DS18B20回应

延时

置1标志位,表示DS1820存在 清0标志位,表示DS1820不存在 时序要求延时一段时间 LCD

显示子程23

********************************** SHOW_DIG2H:

MOV B,#100

DIV AB ADD A,#30H PUSH B MOV B,LCD_X LCALL LCDP2 POP B MOV A,#0AH XCH A,B DIV AB ADD A,#30H INC LCD_X PUSH B MOV B,LCD_X LCALL LCDP2 POP B INC LCD_X MOV A,B MOV B,LCD_X ADD A,#30H LCALL LCDP2 RET

;*************************** 键扫描***************************** PROC_KEY:

JB K1,PROC_K1 ; 按键K1处理 CALL BEEP_BL ;调用蜂鸣器处理程序 24

子程序

JNB K1,$ ;按键没有松开则继续等待 MOV DPTR,#M_ALAX1 MOV A,#1

;查表,LOOK ALERT CODE

;设置显示在第一行

CALL LCD_PRINT ;调用第一行显示,显示LOOK ALERT CODE CALL LOOK_ALARM JB K3,$

;调用温度报警值显示子程序

;判断K3是否按下,没按下则等待

;按下了调用蜂鸣器处理程序 ;跳到PROC_K2

CALL BEEP_BL JMP PROC_K2

PROC_K1: ; 按键K2处理

JB K2,PROC_END ;判断K2是否按下,没有按下则跳出去 CALL BEEP_BL JNB K2,$

;调用蜂鸣器处理程序

;按键2没有松开则等待

表头指向 RESET ALERT CODE

MOV DPTR,#RESET_A1 ; MOV A,#1

;设置显示位置为第一行

CALL LCD_PRINT ;调用LCD显示,显示RESET ALERT CODE CALL SET_ALARM ;调用报警值设置子程序

CALL EEPROM

;将设定的TH,TL值写入EEPROM

PROC_K2:

CALL MENU_OK // CALL TEMP_BJ PROC_END: RET RESET_A1:

DB \

;*************************** 设定温度报警值 TH、TL *************************** SET_ALARM:

LCALL LOOK_ALARM

;调用正常温度显示,显示DS18B20 OK

;调用显示温度标记子程序

AS0: JB K1,AS00

25


DS18B20+DS1302项目报告(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:教科版三年级科学上册第一单元知识点整理

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

马上注册会员

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