找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6387|回复: 3
打印 上一主题 下一主题
收起左侧

自己写的温度显示

[复制链接]
跳转到指定楼层
楼主
ID:15167 发表于 2009-12-16 15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我比较笨,搞了很久终于自己写好了温度显示

用的本论坛的开发板

数据口接P1.7

没有小数位了

共享大家帮我看看

ORG 0000H
TRANS_BIT EQU 20H 
AJMP MAIN
ORG 0030H

MAIN:
     CLR EA
   LCALL INITIAL
   MOV A,#0CCH
   LCALL WRITE
   MOV A,#44H
   LCALL WRITE

   MOV R1,#250
   DJNZ R1,$  
   MOV R1,#100
   DJNZ R1,$   ;等待700us

   LCALL INITIAL
   MOV A,#0CCH
   LCALL WRITE
          MOV A,#0BEH
          LCALL WRITE
   LCALL READ
   MOV R7,A
   LCALL READ
   MOV R6,A
   LCALL TRANSFER
   LCALL DISP
LJMP MAIN

;***********************
;初始化芯片子函数
;DS1820接p1.7
;***********************

INITIAL: 
        MOV R2,#4 ;找不到?找四次
INT2:  
        CLR P1.7
        MOV R1,#250
        DJNZ R1,$

        SETB P1.7

        MOV R1,#30
        DJNZ R1,$

        CLR C
        ORL C,P1.7
        JNC INT3
        DJNZ R2,INT2
        SETB P1.4   

INT3:   CLR P1.4
        MOV P0,#00H
        DELAY: MOV R1,#200
        DJNZ R1,$

RET

;***********************
;写子函数
;P1.7口接ds1820
;***********************
WRITE:

      CLR EA
  MOV R3,#8
 WR1: SETB P1.7
      MOV R4,#8
  RRC A
  CLR P1.7
 WR3: DJNZ R4,WR3
      MOV P1.7,C
  MOV R4,#25

 WR5: DJNZ R4,WR5
      DJNZ R3,WR1
  SETB P1.7
 
RET

;***********************
;读子函数
;P1.7口接ds1820
;***********************

READ:

      CLR EA
      MOV R6,#8
 RD1: CLR P1.7
      MOV R4,#4
  NOP
  SETB P1.7
 RD2: DJNZ R4,RD2
      MOV C,P1.7
  RRC A
  MOV R5,#25
 RD3: DJNZ R5,RD3
      DJNZ R6,RD1
  SETB P1.7
RET
     
     
;***********************
;将读出的数据转换
;低字节在R7中,高字节在R6中
;***********************

TRANSFER:

     MOV A,R6
   JNB ACC.3, T2

     MOV A,R6
   CPL A
   MOV R6,A
   MOV A,R7
   CPL A
   MOV R7,A

   MOV A,R7
   ADD A, #1
   MOV R7,A

   MOV A,R6
   ADDC A,#0
   MOV R6, A
   
T2:  
   MOV A,R7
     ANL A,#0F0H
   MOV R7,A

     MOV A,R6
     ANL A,#07H
   MOV R6,A

   MOV TRANS_BIT,R6
   MOV R0,#20H

   MOV A,R7
   XCHD A,@R0
   
   MOV R0,A
   SWAP A

   RET


;***********************
;将读出的温度转化为bcd码显示
;***********************
DISP:

        MOV B,#10
        DIV AB
        MOV DPTR ,#NUMTAB
        MOVC A, @A+DPTR
        MOV R0,A
        MOV A,B
        MOVC A,@A+DPTR
 MOV R1,A


       MOV P0, #0EFH
       SETB P2.1
       CLR P2.1
       MOV P0,R0
       SETB P2.0
       CLR P2.0
 MOV R2,#250
 DJNZ R2,$

       MOV P0, #0DFH
       SETB P2.1
       CLR P2.1
       MOV P0,R1
       SETB P2.0
       CLR P2.0
 MOV R2,#250
 DJNZ R2,$

       

NUMTAB: 
         DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH  ;
            ; 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9  

       
RET

AJMP MAIN

 

END


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:15167 发表于 2009-12-16 15:56 | 只看该作者

有点小问题,请教大家

就是我一个数字亮点,一个暗点?

回复

使用道具 举报

板凳
ID:31873 发表于 2011-10-1 02:07 | 只看该作者

disp:

        MOV P0, #0EFH
       SETB P2.1
       CLR P2.1
       MOV P0,R0
       SETB P2.0
       CLR P2.0
 MOV R2,#250
 DJNZ R2,$

       MOV P0, #0DFH
       SETB P2.0                ;

       CLR P2.0                 ;

       MOV P0,R1
       SETB P2.1               ;

       CLR P2.1                ;

 MOV R2,#250
 DJNZ R2,$

回复

使用道具 举报

地板
ID:45963 发表于 2015-7-14 15:46 | 只看该作者
应该注解清楚
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表