DS18B20+DS1302项目报告(8)

2020-02-21 18:33

MOV A,#0C0H ;设置 LCD 的第二行地址

LCALL WCOM

FILL: CLR A ;填入字符 MOVC A,@A+DPTR ;由消息区取出字符 CJNE A,#0,LC1 ;判断是否为结束码 RET

LC1: LCALL WDATA ;写入数据 INC DPTR ;指针加1 JMP FILL ;继续填入字符 RET

;*************************** 清

1

**************************** CLR_LINE: MOV R0,#24 CL1: MOV A,#' ' LCALL WDATA DJNZ R0,CL1 RET

DE: MOV R7,#250 DJNZ R7,$ RET

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

************************************* SHOW_DIG2L: MOV B,#100 DIV AB MOV A,#0AH XCH A,B DIV AB ADD A,#30H

36

LCD

符据

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

;*************************** ************************* CONV:

MOV A,73H

MOV LCD_X,#8 CJNE A,#1,CONV1 JMP CONV2 CONV1: CJNE A,#0BH,CONV11

MOV A,#\

JMP CONV111 CONV11: MOV A,#\ CONV111: MOV B,LCD_X LCALL LCDP2 JMP CONV3

CONV2: LCALL SHOW_DIG2 CONV3: INC LCD_X MOV A,72H LCALL SHOW_DIG2 INC LCD_X

LCD 显示数据处

;加载百位数据

;设置位置

;\号显示

;\号不显示

;显示数据

;十位

37

理子程序

MOV A,71H LCALL SHOW_DIG2 INC LCD_X MOV A,#'.' MOV B,LCD_X LCALL LCDP2

MOV A,70H INC LCD_X LCALL SHOW_DIG2 RET

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

;个位

;加载小数点位 ;设置显示位置 ;显示数据

制暂存器子程序

******************************* WRITE_E2:

LCALL RST

;跳过ROM匹配

MOV A,#0CCH LCALL WRITE MOV A,#48H LCALL WRITE RET

;把暂存器里的温度报警值拷贝到EEROM

;************************将自定义字符写入********************* STORE_DATA:

MOV A,#40H LCALL WCOM MOV R2,#08H MOV DPTR,#D_DATA MOV R3,#00H S_DATA: MOV A,R3 MOVC A,@A+DPTR

38

LCD的CGRAM中

LCALL WDATA INC R3 DJNZ R2,S_DATA RET

;写入数据

D_DATA: DB 0CH,12H,12H,0CH,00H,00H,00H,00H ;************************ DS18B20

*************************** RE_18B20:JB FLAG1,RE_18B20A RET

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

***************************************************** RE_18B20A:

LCALL RST

MOV A,#0CCH ;跳过ROM匹配

LCALL WRITE WR_SCRAPD:

MOV A,#4EH ;写暂器

LCALL WRITE MOV A,TEMP_TH ;TH(报警上限)

LCALL WRITE MOV A,TEMP_TL ;TL(报警下限)

LCALL WRITE MOV A,#7FH ;12位精度

LCALL WRITE RET

;*********************** DS18B20数据写入操************************

WRITE: MOV R2,#8 ;一共8位数据 CLR C

39

作子程后

WR1: CLR DQ 状态

MOV R3,#07

;开始写入DS18B20总线要处于复位(低)

DJNZ R3,$ ;总线复位保持16微妙以上

RRC A ;把一个字节DATA 分成8个BIT环移给C MOV DQ,C MOV R3,#3CH

DJNZ R3,$ ;等待100微妙 SETB DQ NOP

DJNZ R2,WR1 ;写入下一位 SETB DQ RET

;**************写命令************************************** WCOM: ;以8位控制方式将命令写至LCD MOV lcd,A ;写入命令

CLR RS ;RS=L,RW=L,D0-D7=指令码,E=高脉冲 CLR RW SETB EN

LCALL DELAY1 CLR EN RET

;**************写数据************************************** WDATA: ;以8位控制方式将数据写至LCD MOV lcd,A ;写入数据 SETB RS CLR RW

SETB EN CALL DE

40

;写入一位

;重新释放总线


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

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

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

马上注册会员

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