标题: 51单片机把ds18b20温度送到P0口的汇编程序 [打印本页]

作者: hongniu    时间: 2015-6-23 20:54
标题: 51单片机把ds18b20温度送到P0口的汇编程序
ORG 0000H
DQ EQU P1.6
AJMP MAIN
ORG 0030H
MAIN:LCALL REST1820
     MOV A,#0CCH
  LCALL WRITE1820
  MOV A,#44H
  LCALL WRITE1820 ;奶奶的害的老子以为写时序错了原来 忘了加?
  LCALL REST1820
  LCALL DELAY1
  MOV A,#0CCH
  LCALL WRITE1820
  MOV A,#0BEH
  LCALL WRITE1820
  LCALL READ1820
  MOV P0,A
  AJMP MAIN
REST1820:SETB DQ  ;总线拉高
         NOP
   NOP   ;给硬件反应时间
   CLR DQ    ;拉低总线
   LCALL DELAY1 ;延时500微秒,符合时序要求
   SETB DQ   ;拉高总线
   NOP
   NOP ;等待稳定
   JB DQ,$ ;应答
   LCALL DELAY2 ;延时200微秒 ,满足时需要求
   SETB DQ   ;拉高
   NOP
   NOP    ;结束
   NOP
   RET
WRITE1820: MOV R2,#8
WRITE:            SETB DQ
                   NOP
             NOP
             CLR DQ ;开始延时15微秒
             MOV R1,#6
             DJNZ R1,$
             RRC A
             MOV DQ,C
             MOV R1,#20
             DJNZ R1,$    ;延时45微秒
             NOP
       NOP
       NOP
       NOP
             DJNZ R2,WRITE
                RET
READ1820:
MOV R2,#8
READ:   SETB DQ
NOP
NOP
CLR DQ
NOP        ;***********************************************************************************************
NOP        ;*                          *
SETB DQ       ;* 晶振: f=11.0592MHZ                    *
MOV R1,#4      ;*                          *
DJNZ R1,$         ;*          结论:只要按手册编程,无所不能         *         
MOV C,DQ      ;* 单片机:stc89c52rc40c-pdip40                     *         
RRC A       ;*                             *
MOV R1,#20         ;*                          *
    DJNZ R1,$      ;* 单总线温度传感器:达拉斯18b20                  *         
DJNZ R2,READ        ;*                          *
RET           ;* 接口:p1.6                        *
DELAY1:MOV R1,#229        ;*                          *
        DJNZ R1,$        ;* 电源:+5v                       *
        RET          ;*                                *
DELAY2:MOV R1,#100        ;*  日期:2015年五月                    *
       DJNZ R1,$        ;***********************************************************************************************   
    RET
    END






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1