18B20汇编跪求达人指点

来源:百度知道 编辑:UC知道 时间:2024/09/20 16:45:25
小弟刚学汇编,设计要求做一个18B20的温度显示,用的是89S52,显示部分经过7279在数码管上体现。7279的问题解决了。但是在18B20读数的部分彻底看蒙了,很多资料,很多程序,看的头都大了。时间又紧。在这里贴一下我写的程序,确实有很多问题,跪求达人指点!复制粘贴的就别捣乱了,分不是那么好拿的,希望能真正指出我的问题。如果实在不方便,那按我所接的管脚给出一个正确并且确定好用的程序也成。小弟在此谢过!
18B20的数据脚是P1。0
7279的片选是P1。3 CLK是P1。4 DATA是P1。2
在4位数码管上的前2位显示温度整数,要求十进制。小数部分不要。
以下是我写的程序,关于18B20大部分是引用的。
ORG 0000H
!
TEMPER_L EQU 27H;
TEMPER_H EQU 26H
FLAG1 EQU 38H
CLR P1.3
MOV 029H,#0A4H
LCALL SEND
LCALL DL50US
LCALL DL50US
SETB P1.3
MAIN:
LCALL GET_TEMPER
MOV A,27H
MOV C,40H
RRC A
MOV C,41H
RRC A
MOV C,42H
RRC A
MOV C,43H
RRC A
MOV 27H,A
LCALL SENDST
AJMP MAIN

INIT_1820:
SETB P1.0
NOP
CLR P1.0

MOV R1,#3
TSR1:MOV R0,#107
DJNZ R0,$
DJNZ R1,TSR1
SETB P1.0
NOP
NOP
NOP
MOV R0,#25H
TSR2:
JNB P1.0,TSR3
DJNZ R0

我以前的毕业设计是用到DS18B20,不过我用的是8279显示,
可以显示,你只要用我的来采集温度值就可以了,做18b20
做主要的是时序,你在网上找程序,也有可能用的晶振不一样,
导致时序不一样,所有发送错误。
我的邮箱留下:
dxw0712@163.com
你发邮件来,我把程序发给你

不算难,有点麻烦而已。
我也有现成的程序,是我正在用的(89s52,11.0592MHz晶振)