毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

基于液晶显示的单片机温度控制设计 第5页

更新时间:2008-6-18:  来源:毕业论文

基于液晶显示的单片机温度控制设计 第5页

 MOVLCD_PRINT
          
RET
RESET_A1:
     DB  "RESET ALERT 
CODE"
;====================================================
;
实际温度值与标记温度值比较子程序
;====================================================
TEMP_COMP:
         A,TEMP_ZH             ;减数>被减数,则
          JC  CHULI1                      ;借位标志位C=1,转
          MOV  A,TEMP_ZH
          SUBB  A,TEMP_TL             ;
减数>被减数,则
          JC  CHULI2                      ;借位标志位C=1,转
          MOV  DPTR,#BJ5
          CALL  TEMP_BJ3

CALL BEEP_BL
       
DPTR,#BJ3
          CALL  
TEMP_BJ3
         CALL  
BEEP_BL
          
RET
 
CHULI2:
          MOV  
DPTR,#BJ4
          CALL  
TEMP_BJ3
          CALL  
BEEP_BL
          
RET
;-----------------------------------------
TEMP_BJ3:
          MOV  
A,#0CEH
          CALL 
WCOM
         
R0,#2
BBJJ3:
    MOV  
A,R1
          MOVC 
A,@A+DPTR
          CALL  
WDATA
          INC 
R1
          DJNZ  
R0,BBJJ3
          
RET
BJ3:
      DB  "
>H"
BJ4:
"
<L"
BJ5:
      DB  " 
!"
;==================================================
;
显示温度标记子程序
;==================================================
TEMP_BJ:
          MOV  A,#0CBH
          CALL 
WCOM
       

          CALL  WDATA
          INC 
R1
          DJNZ  
R0,BBJJ1
          
RET
BJ1:
      DB  
00H,"C"
;=================================================
MENU_OK:
          MOV  DPTR,#M_OK1           ;
指针指到显示消息
          MOV  A,#1                        ;显示在第一行
      M_OK1:
    DB   "   DS18B20 OK   "
,0
M_OK2:
    DB   " TEMP:          ",0
;-----------------------------------------------
MENU_ERROR:
          

          MOV  DPTR,#M_ERROR2       ;指针指到显示消息1
          MOV  A,#2                        ;显示在第一行
          CALL  LCD_PRINT
          
RET
M_ERROR1:
    DB   

         NOP
         
CLR  DATE_LINE
         MOV  R0,#6BH                   ;
主机发出延时复位低脉冲
         MOV  R1,#04H
TSR1:DJNZ  R0,$
                 
NOP
         NOP

         MOV  R0,#32H
TSR2:JNB  DATE_LINE,TSR3
        ;
等待DS18B20回应
         DJNZ  R0,TSR2
         JMP  TSR4                        ; 
延时
TSR3:SETB  FLAG1
                    ; 置标志位,表示DS1820存在
         JMP  TSR5
TSR4:CLR 
TSR6:DJNZ  R0,$                      ; 
时序要求延时一段时间
TSR7:

SETB  DATE_LINE
       
RET
;=======================================================
RE_18B20:
        JB  
FLAG1,RE_18B20A
        
RET
RE_18B20A:
        CALL  
RESET
        MOV  A,#0CCH                    ;
跳过ROM匹配
        LCALL  WRITE
        MOV  A,#4EH                      ;
写暂存寄存器
        LCALL  WRITE
        MOV  A,TEMP_TH                ;TH(
报警上限)
                MOV  A,#7FH                      ;12位精确度
        LCALL  WRITE
        
RET
;------------------------------------------------------------
WRITE_E2:
        CALL  
RESET
        MOV

        MOV  A,#48H                       ;把暂存器里的温度报警值拷贝到EEROM
        LCALL  WRITE
        
RET
;--------------------------------------------------------------
READ_E2:
        CALL  
RESET
        MOV  ;
EEROM里的温度报警值拷贝回暂存器
        CALL  WRITE
        
RET
;--------------------------------------------------------------
;
将自定义字符写入LCD1602CGRAM
;--------------------------------------------------------------
STORE_DATA:

        CALL  WCOM
        MOV  
R2,#08H
        MOV  
DPTR,#D_DATA
        MOV  
R3,#00H
S_DATA:
        MOV  
A,R3
        ;
写入数据
        INC  R3
        DJNZ  
R2,S_DATA
        
RET
D_DATA:
    DB  
0CH,12H,12H,0CH,00H,00H,00H,00H
;==============================================================
WRITE:

MOV          CLR  DATE_LINE                   ;开始写入DS18B20总线要处于复位(低)状态
        MOV  R3,#07
        DJNZ  R3,$                           ;
总线复位保持16微妙以上
        RRC  A                                 ;把一个字节DATA 分成8BIT环移给C
        MOV  DATE_LINE,C                ;写入一个BIT
        _LINE                  ;重新释放总线
        NOP
        DJNZ  R2,WR1                       ;
写入下一个BIT
        SETB  DATE_LINE
      MOV  R4,#4                      ; 
将温度低位、高位、THTLDS18B20中读出
         MOV  R1,#TEMPL                ; 存入25H26H27H28H
RE00: 

MOV  R2,#8
RE01:

CLR  CY
        
SETB  DATE_LINE
        
NOP
        
NOP
        CLR  DATE_LINE                 ;读前总线保持为低

        NOP

        NOP
        
NOP
        SETB  DATE_LINE                ;
开始读总线释放
        MOV  R3,#09                       ;延时18微妙
        DJNZ  R3,$
        MOV  C,DATE_LINE              ;
DS18B20总线读得一个BIT
        MOV  R3,#3CH
                            ;
读下一个BIT
        MOV  @R1,A
        INC   R1

        DJNZ  R4,RE00

        RET
;*****************************************************
;
  处理温度 BCD 
码子程序
;****************************************************
CONVTEMP:
      MOV  A,TEMPH         ;判温度是否零下
               ANL  A,#80H
               JZ  TEMPC1                     ;温度零上转

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

基于液晶显示的单片机温度控制设计 第5页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。