LCD显示程序Word文档格式.docx

上传人:b****6 文档编号:17659919 上传时间:2022-12-07 格式:DOCX 页数:12 大小:16.62KB
下载 相关 举报
LCD显示程序Word文档格式.docx_第1页
第1页 / 共12页
LCD显示程序Word文档格式.docx_第2页
第2页 / 共12页
LCD显示程序Word文档格式.docx_第3页
第3页 / 共12页
LCD显示程序Word文档格式.docx_第4页
第4页 / 共12页
LCD显示程序Word文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

LCD显示程序Word文档格式.docx

《LCD显示程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《LCD显示程序Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

LCD显示程序Word文档格式.docx

NOP

**************************************************

读出转换后的温度值

GET_TEMPER:

SETBDQ;

定时入口

BCD:

LCALLINIT_1820

JBFLAG1,S22

LJMPBCD;

若DS18B20不存在则返回

S22:

LCALLDELAY1

MOVA,#0CCH;

跳过ROM匹配------0CC命令

LCALLWRITE_1820

MOVA,#44H;

发出温度转换命令

LCALLWRITE_1820

LCALLD100MS

CBA:

LCALLINIT_1820

JBFLAG1,ABC

LJMPCBA

ABC:

LCALLDELAY1

MOVA,#0CCH;

跳过ROM匹配

MOVA,#0BEH;

发出读温度命令

LCALLREAD_18200;

READ_1820

RET

**************************************************************

读DS18B20的程序,从DS18B20中读出一个字节的数据

READ_1820:

MOVR2,#8

RE1:

CLRC

SETBDQ

NOP

CLRDQ

MOVR3,#7

DJNZR3,$

MOVC,DQ

MOVR3,#23

RRCA

DJNZR2,RE1

******************************************************

写DS18B20的程序

WRITE_1820:

WR1:

MOVR3,#6

MOVDQ,C

DJNZR2,WR1

RET

****************************************************

读DS18B20的程序,从DS18B20中读出两个字节的温度数据

****************************************************

READ_18200:

MOVR4,#2;

将温度高位和低位从DS18B20中读出

MOVR1,#36H;

低位存入36H(TEMPER_L),高位存入35H(TEMPER_H)

RE00:

RE01:

DJNZR2,RE01

MOV@R1,A

DECR1

DJNZR4,RE00

将从DS18B20中读出的温度数据进行转换

TEMPER_COV:

MOVA,#0F0H

ANLA,TEMPER_L;

舍去温度低位中小数点后的四位温度数值

SWAPA

MOVTEMPER_NUM,A;

得到低四位

MOVA,TEMPER_L

JNBACC.3,TEMPER_COV1;

四舍五入去温度值

INCTEMPER_NUM

TEMPER_COV1:

MOVA,TEMPER_H

ANLA,#07H

ORLA,TEMPER_NUM;

得到高四位,再与低四位相或得到值

保存变换后的温度数据

LCALLBIN_BCD

将16进制的温度数据转换成压缩BCD码

BIN_BCD:

MOVA,TEMPER_NUM

MOVB,#10

DIVAB

MOVTEMPER_SHI,A

MOVTEMPER_GE,B

DS18B20初始化程序

INIT_1820:

MOVR0,#250

TSR1:

DJNZR0,TSR1;

延时520us

MOVR0,#25H;

96US-25H

TSR2:

DJNZR0,TSR2

JNBDQ,TSR3;

如D0为低则复位成功,DS18B20存在

LJMPTSR4;

延时

TSR3:

SETBFLAG1;

置标志位,表示DS1820存在

LJMPTSR5

TSR4:

CLRFLAG1;

清标志位,表示DS1820不存在

LJMPTSR7

TSR5:

MOVR0,#06BH;

200US

TSR6:

DJNZR0,TSR6;

TSR7:

SETBDQ;

拉高总线

*************************************************

数码显示程序

 

液晶显示程序

LCDDISP:

movp1,#01h;

清屏

callenrw

movp1,#38h;

设为8位,5*7字 型两行

movp1,#0Ch

movp1,#06h

movp1,#80h

movdptr,#yjtab

callrwram

movp1,#0C0h

movdptr,#yjtab1

W_TEM:

movp1,#0CCh

MOVDPTR,#ASCII

MOVA,TEMPER_SHI

MOVCA,@A+DPTR

MOVP1,A

setbrs

clrrw

clre

callD500us

setbe

MOVA,TEMPER_GE

setbe

RET

enrw:

clrrs

ret

rwram:

movr1,#00h

a1:

mova,r1

movca,@a+dptr

callrwram2

incr1

cjnea,#00h,a1

rwram2:

movp1,a

**************R***********************************

延时子程序

D500us:

MOVR6,#250;

延时500us

DJNZR6,$

DELAY1:

MOVR7,#20H

DJNZR7,$

D100MS:

MOVR6,#200

D2:

MOVR5,#250

DJNZR5,$

DJNZR6,D2

yjtab:

db'

XRFMCS-51'

00h

yjtab1:

db'

temperature:

**`C'

ASCII:

DB30H,31H,32H,33H,34H,35H,36H,37H,38H,39H

end

只是LCD1602的代码

多功能51单片机开发板

LCD1602测试程序

RSEQUP2.0

RWEQUP2.1

EEQUP2.2

LDATAEQUP1

MAIN:

MOVR0,#00H;

R0:

每行显示字符的个数

MOVR1,#80H;

寄存器地址

MOVA,#38H;

设置显示(16×

2)

ACALLWIR

MOVA,#0EH;

开显示,显示光标,光标不闪烁

ACALLWIR

MOVA,#06H;

整屏显示不移动

MOVA,#01H;

显示清屏

MOVDPTR,#LCD

LOOP0:

MOVA,R1;

写地址

INCR1;

地址加一

CJNER1,#90H,TT;

判断第一行写完没有

MOVR1,#0C0H;

若写完,R1=第二行地址

TT:

MOVA,R0

ACALLWDR

INCR0;

计数R0加1

LCALLDELAY1

CJNER0,#20H,LOOP0;

R1不等于32则继续

RE:

AJMPRE

WIR:

ACALLBUSY;

写指令寄存器子程序

CLRE;

初始化

CLRRS

CLRRW

SETBE

MOVLDATA,A

CLRE

WDR:

写数据寄存器子程序

SETBRS

BUSY:

PUSHACC;

检测忙信号子程序

ISBUSY:

CLRE

SETBRW

MOVA,LDATA

JBACC.7,ISBUSY;

ACC.7=1,说明忙

POPACC

ACALLDELAY1

DELAY1:

MOVR6,#5;

D0:

MOVR7,#248

DJNZR7,$

DJNZR6,D0

DELAY2:

MOVR5,#2

D1:

MOVR3,#245

D2:

MOVR4,#245

DJNZR4,$

DJNZR3,D2

DJNZR5,D1

LCD:

DB'

MCS-51TEST'

DB'

XuRuiFeng'

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1