您现在所在的是:

单片机论坛

回帖:0个,阅读:842 [上一页] [1] [下一页]
905
windytcxz
文章数:1
年度积分:50
历史总积分:905
注册时间:2008/5/27
发站内信
发表于:2008/5/27 2:19:00
#0楼
谢谢大家,我是做毕业设计,板子焊接好了,程序在

1820资料中找了一下,拼在一起,但是。。。不知道

哪里出了问题,显示一直是00.0
DQ接的是P3.3,显示部分是3位一体的LED,P0做段选

,P2.0P2.1P2.2做位选。我的想法是按照程序说的

是读出的温度是存在36H和35H中,然后我想把这个数

经过一下处理,让显示出来的是‘XY.Z’的形式。就

是让50H存小数,51存个位,52存十位。但是好像那

个结果不是存在36和35里面导致根本怎么算都是0.请

帮我看看是什么问题,非常感谢!
ORG    0010H
TEMPER_L    EQU    36H
TEMPER_H    EQU    35H
FLAG1       BIT    00H
DQ          BIT    P3.3

  AAA:LCALL GET_TEMPER
      LCALL DISPLAY
      LJMP  AAA
      NOP
GET_TEMPER:
      SETB  P3.3          
      LCALL INIT_1820
      JB    00H,S22
      RET    

  S22:LCALL DELAY1
      MOV    A,#0CCH        
      LCALL    WRITE_1820
      MOV    A,#44H        
      LCALL    WRITE_1820
      NOP
      LCALL DELAY
      LCALL DELAY
      LCALL    INIT_1820
      LCALL DELAY1
      MOV    A,#0CCH      
      LCALL    WRITE_1820
      MOV    A,#0BEH    
      LCALL WRITE_1820
      LCALL READ_18200  
      RET
 
READ_1820:
      MOV    R2,#8
RE1:
      CLR    C
      SETB    DQ
      NOP
      NOP
      CLR    DQ
      NOP
      NOP
      NOP
      SETB    DQ
      MOV    R3,#7
      DJNZ    R3,$
      MOV    C,DQ
      MOV    R3,#23
      DJNZ    R3,$
      RRC    A
      DJNZ    R2,RE1
      RET

WRITE_1820:
      MOV    R2,#8
      CLR    C
WR1:
      CLR    DQ
      MOV    R3,#6
      DJNZ    R3,$
      RRC    A
      MOV    DQ,C
      MOV    R3,#23
      DJNZ    R3,$
      SETB    DQ
      NOP
      DJNZ    R2,WR1
      SETB    DQ
      RET
READ_18200:
      MOV    R4,#2        
      MOV    R1,#36H      
RE00:
      MOV    R2,#8
RE01:
      CLR    C
      SETB    DQ
      NOP
      NOP
      CLR    DQ
      NOP
      NOP
      NOP
      SETB    DQ
      MOV    R3,#7
      DJNZ    R3,$
      MOV    C,DQ
      MOV    R3,#23
      DJNZ    R3,$
      RRC    A
      DJNZ    R2,RE01
      MOV    @R1,A
      DEC    R1
      DJNZ    R4,RE00
      RET

DISPLAY:
       MOV A,36H
       MOV B,#10
       DIV AB
       MOV 51H,A
       MOV 52H,B  
       MOV A,35H
       SWAP A
       ADD A,51H
       MOV B,#10
       DIV AB
       MOV 50H,A  
       MOV 51H,B
       MOV R2,#03H
       MOV R0,#50H
MOV R1,#01H
START2: MOV A,R0
       CJNE A,#51H,NEXT        
       MOV DPTR,#TAB2
       SJMP NEXT1
NEXT:   MOV DPTR,#TAB1
     
NEXT1:  MOV A,@R0
       MOVC A,@A+DPTR
MOV P0,A
MOV A,R1
MOV P2,A
ACALL DL1
INC R0
MOV A,R1
RL A
MOV R1,A
DJNZ R2,START2
       SJMP DISPLAY
TAB1:   DB

3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,

7CH    
TAB2:   DB

0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0

EFH,0F7H,0FCH    
DL1:    MOV R7,#02H
DL:     MOV R6,#0FFH
DL6:    DJNZ R6,DL6
       DJNZ R7,DL
       RET

INIT_1820:
       SETB   DQ
       NOP
       CLR    DQ
       MOV    R0,#80H
TSR1:
       DJNZ    R0,TSR1    
       SETB    DQ
       MOV    R0,#25H      
TSR2:
       DJNZ    R0,TSR2
       JNB    DQ,TSR3
       LJMP    TSR4        
TSR3:
       SETB    FLAG1    
       LJMP    TSR5
TSR4:
       CLR    FLAG1  
       LJMP    TSR7
TSR5:
       MOV    R0,#06BH    
TSR6:
       DJNZ    R0,TSR6      
TSR7:
       SETB    DQ
       RET
     
RE_CONFIG:
       JB    FLAG1,RE_CONFIG1  
       RET
RE_CONFIG1:
       MOV    A,#0CCH      
       LCALL    WRITE_1820
       MOV    A,#4EH      
       LCALL    WRITE_1820

       MOV    A,#00H      
       LCALL    WRITE_1820
       MOV    A,#00H      
       LCALL    WRITE_1820
       MOV    A,#7FH      
       LCALL    WRITE_1820
       RET
 
 DELAY:MOV   R7,#00H
   MIN:DJNZ  R7,YS500
       RET
 YS500:LCALL YS500US
       LJMP  MIN
YS500US:MOV   R6,#00H
       DJNZ  R6,$
       RET
DELAY1:MOV   R7,#20H
       DJNZ  R7,$
       RET
END

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003