基于AT89C51单片机和DS18B20温度传感器、LCD1602液晶显示的数字温度计 汇编程序及电路图

 我来答
Bonnieeast
推荐于2016-07-28
知道答主
回答量:71
采纳率:0%
帮助的人:32.7万
展开全部
只是LCD1602的代码
;多功能51单片机开发板
;LCD1602测试程序

RS EQU P2.0
RW EQU P2.1
E EQU P2.2
LDATA EQU P1

ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV R0,#00H ;R0:每行显示字符的个数
MOV R1,#80H ;寄存器地址
MOV A,#38H ;设置显示(16×2)
ACALL WIR
MOV A,#0EH ;开显示,显示光标,光标不闪烁
ACALL WIR
MOV A,#06H ;整屏显示不移动
ACALL WIR
MOV A,#01H ;显示清屏
ACALL WIR
MOV DPTR,#LCD
LOOP0: MOV A,R1 ;写地址
ACALL WIR
INC R1 ;地址加一
CJNE R1,#90H,TT ;判断第一行写完没有
MOV R1,#0C0H ;若写完,R1=第二行地址
TT: MOV A,R0
MOVC A,@A+DPTR
ACALL WDR
INC R0 ;计数R0加1
LCALL DELAY1
CJNE R0,#20H,LOOP0 ;R1不等于32则继续
RE: AJMP RE

WIR: ACALL BUSY ;写指令寄存器子程序
CLR E ;初始化
CLR RS
CLR RW
SETB E
MOV LDATA,A
CLR E
RET

WDR: ACALL BUSY ;写数据寄存器子程序
CLR E
SETB RS
CLR RW
SETB E
MOV LDATA,A
CLR E
RET

BUSY: PUSH ACC ;检测忙信号子程序
ISBUSY:CLR E
CLR RS
SETB RW
SETB E
MOV A,LDATA
JB ACC.7,ISBUSY ;ACC.7=1,说明忙
POP ACC
ACALL DELAY1
RET

DELAY1:MOV R6,#5 ;延时子程序
D0: MOV R7,#248
DJNZ R7,$
DJNZ R6,D0
RET

DELAY2:MOV R5,#2
D1: MOV R3,#245
D2: MOV R4,#245
DJNZ R4,$
DJNZ R3,D2
DJNZ R5,D1
RET

LCD:DB ' MCS-51 TEST '
DB ' Xu Rui Feng '
END
微雨天涯dr7d7
2011-08-01 · TA获得超过186个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:208万
展开全部
偷懒!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
南门童3A
2011-07-29 · 超过26用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:29.6万
展开全部
邮箱给我,给你发去。
追问
hero819@163.com
追答
不好意思啊,没看见,我用的是C。汇编没怎么用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式