《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 解決方案 > ME300實(shí)例-DS18B20溫度控制實(shí)驗(yàn)(匯編語言源程序)

ME300實(shí)例-DS18B20溫度控制實(shí)驗(yàn)(匯編語言源程序)

2008-12-28
關(guān)鍵詞: 溫度控制 實(shí)驗(yàn)

ME300實(shí)例-DS18B20溫度控制實(shí)驗(yàn)(匯編語言源程序)




程序說明:
DS18B20的管腳定義:
1、GND
2、DQ
3、VCC

 DQ   →  P3.3
 K1   →  P1.4
 K2   →  P1.5
 K3   →  P1.6
 K4   →  P1.7

JP2 用跳線帽短接1和2,選用LCD。

溫度顯示用四位,當(dāng)溫度>=100度時(shí),第四位才顯示。

檢測 DS18B20 狀態(tài):

DS18B20正常顯示:
  DS18B20  OK
 TEMP:  25.8℃ ← 顯示實(shí)際溫度

DS18B20不正常顯示:
DS18B20  ERROR
 TEMP: ----℃  ← 顯示----

這時(shí)你要檢查DS18B20是否連接好、接對,否則要更換一個(gè)新的 DS18B20 芯片。

一、查看溫度報(bào)警值:
K1 → 進(jìn)入查看溫度報(bào)警值狀態(tài)。

LCD 1602 顯示:
  LOOK ALERT CODE
 TH:028℃ TL:18℃

TH:028  高位報(bào)警值
TL:18   低位報(bào)警值

K3 → 退出查看溫度報(bào)警值狀態(tài)。

二、設(shè)定溫度報(bào)警值:
K2 → 進(jìn)入設(shè)定溫度報(bào)警值狀態(tài)。
LCD 1602 顯示:
 RESET ALERT CODE
 TH:028℃ TL:18℃
K1 : 設(shè)定值加(UP)、減(DOWN)方式選擇鍵(默認(rèn)為減少)
K2 : TH值設(shè)定鍵
K3 : TL值設(shè)定鍵
K4 : 確定鍵 (退出設(shè)定狀態(tài))
 K2 或 K3 以減(DOWN)方式設(shè)定,當(dāng)設(shè)定數(shù)值減到“0”時(shí)自動(dòng)轉(zhuǎn)換為加(UP)方式。
 K2 或 K3 以加(UP)方式設(shè)定,當(dāng)設(shè)定數(shù)值 TH=120、TL=99 時(shí),設(shè)定數(shù)值均變?yōu)椤?”。
K4 → 確定并退出設(shè)定溫度報(bào)警值狀態(tài)。
將設(shè)定的溫度報(bào)警值自動(dòng)存入 DS18B20 的 EEROM 中,可永久保存。
每次開機(jī)時(shí)自動(dòng)從 DS18B20 的 EEROM 讀出溫度報(bào)警值。

三、報(bào)警狀態(tài)的顯示:

1、當(dāng)實(shí)際溫度大于 TH 的設(shè)定值時(shí),
  LCD1602 顯示:
   DS18B20  OK
 TEMP:  88.8℃ > H
關(guān)閉繼電器,蜂鳴器響,表示超溫。

2、當(dāng)實(shí)際溫度小于 TL 的設(shè)定值時(shí),
  LCD1602 顯示:
   DS18B20  OK
 TEMP:  18.8℃ < L
蜂鳴器響,表示加熱部分出現(xiàn)故障。

3、當(dāng)實(shí)際溫度小于 TH 的設(shè)定值時(shí),繼電器吸合,開始加熱。
  加熱標(biāo)記為“!”


源程序(匯編語言)
;*  描述:                                                                       *
;*          DS18B20溫度控制1602LCD顯示                                          *
;*                                                                              *
;*          使用方法參考readme.txt文檔                                          *
;*                                                                              *
;*                                                                              *



          TEMP_ZH   DATA  24H     ;實(shí)時(shí)溫度值存放單元
          TEMPL     DATA  25H     ;
          TEMPH     DATA  26H     ;
          TEMP_TH   DATA  27H     ;高溫報(bào)警值存放單元
          TEMP_TL   DATA  28H     ;低溫報(bào)警值存放單元
          TEMPHC    DATA  29H     ;
          TEMPLC    DATA  2AH

          K1     EQU  P1.4
          K2     EQU  P1.5
          K3     EQU  P1.6
          K4     EQU  P1.7

          BEEP   EQU  P3.7
          RELAY  EQU  P1.3
          LCD_X     EQU  2FH      ;LCD 地址變量
          LCD_RS    EQU  P2.0
          LCD_RW    EQU  P2.1
          LCD_EN    EQU  P2.2
          flag1     equ  20H.0    ;DS18B20是否存在標(biāo)記
          KEY_UD    EQU  20H.1    ;設(shè)定 KEY 的UP與DOWN 標(biāo)記
          date_line equ p3.3
;=====================================================
           ORG  0000H
           JMP  MAIN

MAIN:     MOV  SP,#60H
          MOV  A,#00H
          MOV  R0,#20H       ;將 20H-2FH 單元清零
          MOV  R1,#10H
CLEAR:    MOV  @R0,A
          INC  R0
          DJNZ  R1,CLEAR

          CALL  SET_LCD
          CALL  RE_18B20

start:    CALL  RESET          ;18B20復(fù)位子程序
          JNB   FLAG1,START1   ;DS1820不存在
          CALL  MENU_OK
          CALL  READ_E2
          CALL  TEMP_BJ        ;顯示溫度標(biāo)記
          JMP   START2
START1:   CALL  MENU_ERROR
          CALL  TEMP_BJ        ;顯示溫度標(biāo)記
          JMP  $

START2:
          CALL  RESET
          JNB  FLAG1,START1    ;DS1820不存在
          MOV   A,#0CCH        ; 跳過ROM匹配
          CALL  WRITE
          MOV   A,#44H         ; 發(fā)出溫度轉(zhuǎn)換命令
          CALL  WRITE
          CALL  RESET
          MOV   A,#0CCH        ; 跳過ROM匹配
          CALL  WRITE
          MOV   A,#0BEH        ; 發(fā)出讀溫度命令
          CALL  WRITE
          CALL  READ
          call CONVTEMP
          Call DISPBCD
          CALL CONV
          CALL TEMP_COMP
          CALL  PROC_KEY       ; 鍵掃描

   SJMP START2
;-----------------------------------------------------
PROC_KEY:
  JB  K1,PROC_K1    ; 按鍵K1處理
         CALL  BEEP_BL
         JNB  K1,$
         MOV  DPTR,#M_ALAX1
         MOV  A,#1
         CALL  LCD_PRINT
         CALL  LOOK_ALARM
         JB  K3,$
         CALL  BEEP_BL
         JMP  PROC_K2
PROC_K1:     ; 按鍵K2處理
         JB  K2,PROC_END
         CALL  BEEP_BL
         JNB  K2,$
         MOV   DPTR,#RESET_A1
         MOV   A,#1
         CALL  LCD_PRINT
         CALL  SET_ALARM
         CALL  RE_18B20           ;將設(shè)定的TH,TL值寫入DS18B20內(nèi)
         CALL  WRITE_E2
PROC_K2:
         CALL  MENU_OK
         CALL  TEMP_BJ
PROC_END:
         RET
;============================================
;設(shè)定報(bào)警值 TH、TL
;============================================
SET_ALARM:
         ;CALL  RESET_ALARM
         CALL  LOOK_ALARM
AS0:
         JB   K1,AS00
         CALL  BEEP_BL
         JNB  K1,$
         CPL  20H.1            ;UP/DOWN 標(biāo)記
AS00:    JB  20H.1,ASZ01       ;20H.1=1,UP
         JMP  ASJ01            ;20H.1=0,DOWN

ASZ01:   JB  K2,ASZ02          ;TH值調(diào)整(增加)
         CALL  BEEP_BL
         INC  TEMP_TH
         MOV  A,TEMP_TH
         CJNE  A,#120,ASZ011
         MOV  TEMP_TH,#0
ASZ011:  CALL  LOOK_ALARM
         MOV  R5,#10
         CALL  DELAY
         JMP  ASZ01

ASZ02:   JB  K3,ASZ03          ;TL值調(diào)整(增加)
         CALL  BEEP_BL
         INC  TEMP_TL
         MOV  A,TEMP_TL
         CJNE  A,#99,ASZ021
         MOV  TEMP_TL,#00H
ASZ021:  CALL  LOOK_ALARM    ;
         MOV  R5,#10
         CALL  DELAY
         JMP  ASZ02
ASZ03:   JB  K4,AS0          ;確定調(diào)整 OK
         CALL  BEEP_BL
         JNB  K4,$
         RET

ASJ01:
         JB  K2,ASJ02          ;TH值調(diào)整 (減少)
         CALL  BEEP_BL
         DEC   TEMP_TH
         MOV  A,TEMP_TH
         CJNE  A,#0FFH,ASJ011
         JMP  ASJ022
ASJ011:  CALL  LOOK_ALARM
         MOV  R5,#10
         CALL  DELAY
         JMP  AS0

ASJ02:   JB  K3,ASJ03         ;TL值調(diào)整(減少)
         CALL  BEEP_BL
         DEC  TEMP_TL
         MOV  A,TEMP_TL
         CJNE  A,#0FFH,ASJ021
         JMP  ASJ022
ASJ021:  CALL  LOOK_ALARM    ;
         MOV  R5,#10
         CALL  DELAY
         JMP  AS0
ASJ022:  CPL  20H.1
         JMP  ASZ01
ASJ03:   JMP  ASZ03
         RET


RESET_ALARM:
          MOV  DPTR,#RESET_A1  ;指針指到顯示信息區(qū)
          MOV  A,#1            ;顯示在第一行
          CALL  LCD_PRINT
          RET
RESET_A1:
     DB  "RESET ALERT CODE"
;====================================================
;實(shí)際溫度值與標(biāo)記溫度值比較子程序
;====================================================
TEMP_COMP:
          MOV  A,TEMP_TH       
          SUBB  A,TEMP_ZH       ;減數(shù)>被減數(shù),則
          JC  CHULI1            ;借位標(biāo)志位C=1,轉(zhuǎn)
          MOV  A,TEMP_ZH
          SUBB  A,TEMP_TL       ;減數(shù)>被減數(shù),則
          JC  CHULI2            ;借位標(biāo)志位C=1,轉(zhuǎn)
          MOV  DPTR,#BJ5
          CALL  TEMP_BJ3
          CLR   RELAY           ;繼電器吸合
          RET
 CHULI1:
          MOV  DPTR,#BJ3
          CALL  TEMP_BJ3
          SETB  RELAY           ;繼電器關(guān)閉
          CALL  BEEP_BL
          RET
 CHULI2:
          MOV  DPTR,#BJ4
          CALL  TEMP_BJ3
          CALL  BEEP_BL
          RET
;-----------------------------------------
TEMP_BJ3:
          MOV  A,#0CEH
          CALL WCOM
          MOV  R1,#0
          MOV  R0,#2

BBJJ3:    MOV  A,R1
          MOVC A,@A+DPTR
          CALL  WDATA
          INC R1
          DJNZ  R0,BBJJ3
          RET
BJ3:
      DB  ">H"
BJ4:
      DB  "<L"
BJ5:
      DB  " !"
;==================================================
;顯示溫度標(biāo)記子程序
;==================================================
TEMP_BJ:
          MOV  A,#0CBH
          CALL WCOM
          MOV  DPTR,#BJ1  ;指針指到顯示消息
          MOV  R1,#0
          MOV  R0,#2

BBJJ1:    MOV  A,R1
          MOVC A,@A+DPTR
          CALL  WDATA
          INC R1
          DJNZ  R0,BBJJ1
          RET
BJ1:
      DB  00H,"C"
;=================================================
MENU_OK:

          MOV  DPTR,#M_OK1  ;指針指到顯示消息
          MOV  A,#1          ;顯示在第一行
          CALL  LCD_PRINT
          MOV  DPTR,#M_OK2  ;指針指到顯示消息
          MOV  A,#2          ;顯示在第一行
          CALL  LCD_PRINT

          RET
M_OK1:
    DB   "   DS18B20 OK   ",0
M_OK2:
    DB   " TEMP:          ",0
;-----------------------------------------------
MENU_ERROR:
          MOV  DPTR,#M_ERROR1  ;指針指到顯示消息1
          MOV  A,#1          ;顯示在第一行
          CALL  LCD_PRINT
          MOV  DPTR,#M_ERROR2  ;指針指到顯示消息1
          MOV  A,#2          ;顯示在第一行
          CALL  LCD_PRINT
          RET
M_ERROR1:
    DB   " DS18B20 ERROR  ",0
M_ERROR2:
    DB   " TEMP: ----     ",0
;====================================================
reset:  setb date_line
        nop
        clr date_line
        mov r0,#6bh         ;主機(jī)發(fā)出延時(shí)復(fù)位低脈沖
        mov r1,#04h
tsr1:   djnz r0,$
        mov r0,#6bh
        djnz r1,tsr1
        setb date_line        ;然后拉高數(shù)據(jù)線
        nop
        nop
        nop
        mov r0,#32h
tsr2:   jnb date_line,tsr3   ;等待DS18B20回應(yīng)
        djnz r0,tsr2
        jmp tsr4             ; 延時(shí)
tsr3:   setb flag1           ; 置標(biāo)志位,表示DS1820存在
        jmp tsr5
tsr4:   clr flag1            ; 清標(biāo)志位,表示DS1820不存在
        jmp tsr7
tsr5:   mov r0,#06bh
tsr6:   djnz r0,$            ; 時(shí)序要求延時(shí)一段時(shí)間
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(報(bào)警上限)
        LCALL  WRITE
        MOV  A,TEMP_TL     ;TL(報(bào)警下限)
        LCALL  WRITE
        MOV  A,#7FH        ;12位精確度
        LCALL  WRITE
        RET
;------------------------------------------------------------
WRITE_E2:
        CALL  RESET
        MOV  A,#0CCH        ;跳過ROM匹配
        LCALL  WRITE
        MOV  A,#48H         ;把暫存器里的溫度報(bào)警值拷貝到EEROM
        LCALL  WRITE
        RET
;--------------------------------------------------------------
READ_E2:
        CALL  RESET
        MOV  A,#0CCH        ;跳過ROM匹配
        LCALL  WRITE
        MOV  A,#0B8H        ;把EEROM里的溫度報(bào)警值拷貝回暫存器
        CALL  WRITE
        RET
;--------------------------------------------------------------
;將自定義字符寫入LCD1602的CGRAM中
;--------------------------------------------------------------
STORE_DATA:
        MOV  A,#40H
        CALL  WCOM
        MOV  R2,#08H
        MOV  DPTR,#D_DATA
        MOV  R3,#00H
S_DATA:
        MOV  A,R3
        MOVC  A,@A+DPTR
        CALL  WDATA      ;寫入數(shù)據(jù)
        INC  R3
        DJNZ  R2,S_DATA
        RET

D_DATA:
    DB  0CH,12H,12H,0CH,00H,00H,00H,00H
;====================================================
write:  mov r2,#8            ;一共8位數(shù)據(jù)
        CLR  C
wr1:
        clr date_line        ;開始寫入DS18B20總線要處于復(fù)位(低)狀態(tài)
        mov r3,#07
        djnz r3,$            ;總線復(fù)位保持16微妙以上
        rrc a                ;把一個(gè)字節(jié)DATA 分成8個(gè)BIT環(huán)移給C
        mov date_line,c      ;寫入一個(gè)BIT
        mov r3,#3CH
        djnz r3,$            ;等待100微妙
        setb date_line       ;重新釋放總線
        nop
        djnz r2,wr1          ;寫入下一個(gè)BIT
        setb date_line
        ret
;--------------------------------------------------------------------
read:    mov r4,#4          ; 將溫度低位、高位、TH、TL從DS18B20中讀出
         mov r1,#TEMPL        ; 存入25H、26H、27H、28H
re00:    mov r2,#8
re01:    clr cy
         setb date_line
         nop
         nop
         clr date_line        ;讀前總線保持為低
         nop
         nop
         nop
         setb date_line       ;開始讀總線釋放
         mov r3,#09           ;延時(shí)18微妙
         djnz r3,$
         mov c,date_line      ;從DS18B20總線讀得一個(gè)BIT
         mov r3,#3CH
         djnz r3,$            ;等待100微妙
         rrc a                ;把讀得的位值環(huán)移給A
         djnz r2,re01         ;讀下一個(gè)BIT
         mov @r1,a
         inc r1
         djnz r4,re00
         ret


;*****************************************************
;  處理溫度 BCD 碼子程序
;****************************************************
CONVTEMP:      MOV  A,TEMPH       ;判溫度是否零下
               ANL  A,#80H
               JZ  TEMPC1         ;溫度零上轉(zhuǎn)
               CLR  C
               MOV  A,TEMPL       ;二進(jìn)制數(shù)求補(bǔ)(雙字節(jié))
               CPL  A             ;取反加1
               ADD  A,#01H
               MOV  TEMPL,A
               MOV  A,TEMPH
               CPL  A
               ADDC  A,#00H
               MOV  TEMPH,A
               SJMP  TEMPC11

TEMPC1:        MOV  TEMPHC,#0AH     ;+
TEMPC11:       MOV  A,TEMPHC
               SWAP  A
               MOV  TEMPHC,A
               MOV  A,TEMPL
               ANL  A,#0FH              ;乘0.0625
               MOV  DPTR,#TEMPDOTTAB
               MOVC  A,@A+DPTR
               MOV  TEMPLC,A            ;TEMPLC LOW=小數(shù)部分 BCD

               MOV  A,TEMPL             ;整數(shù)部分
               ANL  A,#0F0H             ;取出高四位
               SWAP  A
               MOV  TEMPL,A
               MOV  A,TEMPH             ;取出低四位
               ANL  A,#0FH
               SWAP  A
               ORL  A,TEMPL             ;重新組合
               MOV  TEMP_ZH,A
               LCALL  HEX2BCD1
               MOV  TEMPL,A
               ANL  A,#0F0H
               SWAP  A
               ORL  A,TEMPHC            ;TEMPHC LOW = 十位數(shù) BCD
               MOV  TEMPHC,A
               MOV  A,TEMPL
               ANL  A,#0FH
               SWAP  A                  ;TEMPLC HI = 個(gè)位數(shù) BCD
               ORL  A,TEMPLC
               MOV  TEMPLC,A
               MOV  A,R4
               JZ  TEMPC12
               ANL  A,#0FH
               SWAP  A
               MOV  R4,A
               MOV  A,TEMPHC            ;TEMPHC HI = 百位數(shù) BCD
               ANL  A,#0FH
               ORL  A,R4
               MOV  TEMPHC,A
TEMPC12:       RET
;---------------------------------------------------------------
HEX2BCD1:
              MOV  B,#064H          ;十六進(jìn)制-> BCD
              DIV  AB               ;B= A % 100
              MOV  R4,A             ;R7 = 百位數(shù)
              MOV  A,#0AH
              XCH  A,B
              DIV  AB               ;B = A % B
              SWAP  A
              ORL  A,B
              RET
;-------------------------------------------------------------
;  小數(shù)部分碼表
;-------------------------------------------------------------
TEMPDOTTAB:
         DB   00H,00H,01H,01H,02H,03H,03H,04H
         DB   05H,05H,06H,06H,07H,08H,08H,09H
;=====================================================
LOOK_ALARM:

          MOV  DPTR,#M_ALAX2   ;指針指到顯示信息區(qū)
          MOV  A,#2            ;顯示在第二行
          CALL  LCD_PRINT

          MOV  A,#0C6H
          CALL  TEMP_BJ1
          MOV  A,TEMP_TH       ;加載TH數(shù)據(jù)
          MOV  LCD_X,#3        ;設(shè)置位置
          CALL  SHOW_DIG2H     ;顯示數(shù)據(jù)

          MOV  A,#0CEH
          CALL  TEMP_BJ1
          MOV  A,TEMP_TL       ;加載TL數(shù)據(jù)
          MOV  LCD_X,#12       ;設(shè)置位置
          CALL  SHOW_DIG2L     ;顯示數(shù)據(jù)
          RET
;--------------------------------------------
M_ALAX1:
     DB   " LOOK ALERT CODE",0
M_ALAX2:
     DB   "TH:      TL:    ",0
;--------------------------------------------
TEMP_BJ1:
          CALL WCOM
          MOV  DPTR,#BJ2      ;指針指到顯示信息區(qū)
          MOV  R1,#0
          MOV  R0,#2

BBJJ2:    MOV  A,R1
          MOVC A,@A+DPTR
          CALL  WDATA
          INC R1
          DJNZ  R0,BBJJ2
          RET
BJ2:
      DB  00H,"C"

;---------------------------------------------------
SHOW_DIG2H:                ;在 LCD 的第二行顯示數(shù)字
          MOV  B,#100
          DIV  AB
          ADD  A,#30H
          PUSH  B
          MOV  B,LCD_X
          CALL  LCDP2
          POP  B
          MOV  A,#0AH
          XCH  A,B
          DIV  AB
          ADD  A,#30H
          INC  LCD_X
          PUSH  B
          MOV  B,LCD_X
          CALL  LCDP2
          POP  B
          INC  LCD_X
          MOV  A,B
          MOV  B,LCD_X
          ADD  A,#30H
          CALL  LCDP2
          RET

SHOW_DIG2L:                ;在 LCD 的第二行顯示數(shù)字
          MOV  B,#100
          DIV  AB
          MOV  A,#0AH
          XCH  A,B
          DIV  AB
          ADD  A,#30H
          PUSH  B
          MOV  B,LCD_X
          CALL  LCDP2
          POP  B
          INC  LCD_X
          MOV  A,B
          MOV  B,LCD_X
          ADD  A,#30H
          CALL  LCDP2
          RET
;-------------------------------------------------------------
;顯示區(qū) BCD 碼溫度值刷新子程序
;-------------------------------------------------------------
DISPBCD:
              MOV  A,TEMPLC
              ANL  A,#0FH
              MOV  70H,A                 ;小數(shù)位
              MOV  A,TEMPLC
              SWAP  A
              ANL  A,#0FH
              MOV  71H,A                 ;個(gè)位
              MOV  A,TEMPHC
              ANL  A,#0FH
              MOV  72H,A                 ;十位
              MOV  A,TEMPHC
              SWAP  A
              ANL  A,#0FH
              MOV  73H,A                 ;百位
              MOV  A,TEMPHC
              ANL  A,#0F0H
              CJNE  A,#010H,DISPBCD0
              SJMP  DISPBCD2

DISPBCD0:     MOV  A,TEMPHC
              ANL  A,#0FH
              JNZ  DISPBCD2               ;十位數(shù)是0
              MOV  A,TEMPHC
              SWAP  A
              ANL  A,#0FH
              MOV  73H,#0AH               ;符號(hào)位不顯示
              MOV  72H,A                  ;十位數(shù)顯示符號(hào)
DISPBCD2:     RET

;==========================================================
; LCD 1602 顯示子程序
;==========================================================
CONV:
          MOV  A,73H         ;加載百位數(shù)據(jù)
          MOV  LCD_X,#6      ;設(shè)置位置
          CJNE A,#1,CONV1
          JMP  CONV2
CONV1:    MOV  A,#" "
          MOV  B,LCD_X
          CALL  LCDP2
          JMP  CONV3
CONV2:    CALL  SHOW_DIG2    ;顯示數(shù)據(jù)
CONV3:    INC  LCD_X             ;
          mov  a,72h         ;十位
          CALL  SHOW_DIG2
          inc  LCD_X
          mov  a,71h         ;個(gè)位
          CALL  SHOW_DIG2
          inc  LCD_X
          MOV  A,#'.'
          MOV  B,LCD_X
          CALL  LCDP2
          MOV  A,70h         ;加載小數(shù)點(diǎn)位
          INC  LCD_X         ;設(shè)置位置
          CALL  SHOW_DIG2    ;顯示數(shù)據(jù)
          RET
;-------------------------------------------------------
SHOW_DIG2:                 ;在 LCD 的第二行顯示數(shù)字
          ADD  A,#30H
          MOV  B,LCD_X
          CALL  LCDP2
          RET
;---------------------------------------------------------
LCDP2:                    ;在LCD的第二行顯示字符
         PUSH  ACC        ;
         MOV  A,B         ;設(shè)置顯示地址
         ADD  A,#0C0H     ;設(shè)置LCD的第二行地址
         CALL  WCOM       ;寫入命令
         POP  ACC         ;由堆棧取出A
         CALL  WDATA      ;寫入數(shù)據(jù)
         RET
;---------------------------------------------------------


SET_LCD:                     ;對 LCD 做初始化設(shè)置及測試
          CLR  LCD_EN
          CALL  INIT_LCD     ;初始化 LCD
          CALL  STORE_DATA   ;將自定義字符存入LCD的CGRAM
          RET
INIT_LCD:                  ;8位I/O控制 LCD 接口初始化
          MOV  A,#38H        ;雙列顯示,字形5*7點(diǎn)陣
          CALL  WCOM
          call  delay1
          MOV  A,#38H
          CALL  WCOM
          call  delay1

          MOV  A,#38H
          CALL  WCOM
          call  delay1
          MOV  A,#0CH        ;開顯示,顯示光標(biāo),光標(biāo)不閃爍
          CALL  WCOM
          call  delay1
          MOV  A,#01H        ;清除 LCD 顯示屏
          CALL  WCOM
          call  delay1
          RET
;==================================================
CLR_LINE1:                   ;清除LCD的第一行字符
          MOV  A,#80H        ;設(shè)置 LCD 的第一行地址
          CALL  WCOM         ;
          MOV  R0,#24        ;設(shè)置計(jì)數(shù)值
    C1:   MOV  A,#' '        ;載入空格符至LCD
          CALL  WDATA        ;輸出字符至LCD
          DJNZ  R0,C1        ;計(jì)數(shù)結(jié)束
          RET
;==================================================
LCD_PRINT:       ;在LCD的第一行或第二行顯示字符

          CJNE  A,#1,LINE2  ;判斷是否為第一行
  LINE1:  MOV  A,#80H       ;設(shè)置 LCD 的第一行地址
          CALL  WCOM        ;寫入命令
          CALL  CLR_LINE    ;清除該行字符數(shù)據(jù)
          MOV  A,#80H       ;設(shè)置 LCD 的第一行地址
          CALL  WCOM        ;寫入命令
          JMP  FILL

  LINE2:  MOV  A,#0C0H      ;設(shè)置 LCD 的第二行地址
    &nbsp

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产成a人亚洲精品无码樱花 | 国产高清视频在线播放 | 天天射天天搞 | 丝袜脚交一区二区 | 西西人体www44rt大胆高清 | 亚洲婷婷在线观看 | 天美乌鸦星空mv | 久久久精品久久久久久96 | 日韩精品国产一区 | 日本人与黑人做爰视频网站 | 丁香婷婷社区 | 国产精品对白 | 亚洲男男网站gy2020 | 日韩欧美一级片 | 亚洲国产精品福利 | 69精品丰满人妻无码视频a片 | www.99视频| 各种少妇正面着bbw撒尿视频 | 久久久久久久久久国产精品 | 国产精品乱码一区二区三区 | 久久精品中文 | 中文字幕四区 | 超碰97观看 | 精品欧美成人高清在线观看 | 国产日韩视频在线 | 国产深夜男女无套内射 | 国产精品伦一区二区三区在线观看 | 成人午夜av | 日本少妇xx洗澡xxxx偷窥 | 99国产欧美另类久久久精品 | 台湾性经典xxxⅹxx | 黄视频在线免费 | 精品国产一区二区三区不卡 | 黄色精品网站 | 久久伊人网站 | 中文字幕亚洲乱码 | 91九色国产ts另类人妖 | 久久特黄视频 | 成人免费无码大片a毛片抽搐色欲 | 美女久久久久久久久 | 中字幕一区二区三区乱码 | 漂亮少妇激烈床戏 | 国产网红无码精品视频 | 羞羞影院午夜男女爽爽 | 国产wwwwwww| 亚洲精品国产精品乱码不99按摩 | 免看一级片 | 欧美日韩国产图片 | 国产伦理精品一区二区三区观看体验 | 黄色录像一级大片 | 日日夜夜精品视频免费 | 亚洲乱亚洲乱妇 | 亚洲一区二区二区久久成人婷婷 | 国产精自产拍久久久久久蜜 | 无套中出丰满人妻无码 | 国产精品免费网站 | 成人性视频网站 | 特级黄色毛片视频片子 | 国产天美传媒性色av | 女人av在线 | 777色婷婷视频二三区 | 久久人人97超碰a片精品 | 99中文字幕 | 色婷婷六月 | 国产欧美成人一区二区a片 又大又长粗又爽又黄少妇视频 | 夜夜高潮夜夜爽夜夜爱 | 涩涩视频免费在线观看 | 成人精品视频一区二区 | 亚州精品视频 | 国产精品乡下勾搭老头1 | 怡红院a∨人人爰人人爽 | 福利cosplayh裸体の福利 | 在线综合亚洲欧美网站 | 亚洲精品久久一区二区三区777 | 天天躁夜夜躁狠狠眼泪 | 天天爽网站 | 毛片大片 | 国产九九 | a级毛片蜜桃成熟时2免费观看 | 中文精品一区 | 欧美精品一区二区在线观看 | 肉版如懿传高h | 五月天激情视频 | 国模精品一区二区三区 | 亚洲色爱图小说专区 | 精品国产免费一区二区三区 | 加勒比成人在线 | 久久亚洲免费视频 | 成人欧美一区二区三区在线播放 | 久久99婷婷| 国产乱淫av片免费看 | 亚洲精品一区二区三区四区乱码 | 精品中文字幕一区 | 亚洲 中文 欧美 日韩 在线观看 | 日韩一级一区 | 北条麻妃精品久久中文字幕 | 国产成人精品久久二区二区91 | 精品国产性色无码av网站 | 中文字幕妇偷乱视频在线观 | 久久久久久久久久久久久久国产 | 国产精品偷伦视频免费手机播放 | 在线观看wwww | 一级做a爰片久久毛片a | 婷婷丁香综合色 | 高h肉辣动漫h在线观看 | 国产一区二区三区在线观看视频 | 欧美特黄一级大片 | 国产二级一片内射视频插放 | 丰满肥臀大屁股熟妇激情视频 | 精品久久久久久一区二区 | 久久免费视频在线观看30 | 国产成人午夜高潮毛片男男爱 | 伊人伊成久久人综合网站 | 91夜色视频 | 国产国拍亚洲精品av | 日韩黄色在线观看 | 青青青在线视频免费观看 | 久久精品国产99久久6动漫亮点 | 成人激情综合网 | 中文韩国午夜理伦三级好看 | 久久论理 | 夜夜骚av| 一区免费| av在线综合网| 中文字幕婷婷 | 精品无码国产av一区二区三区 | 特级淫片aaaaaa级网站 | 风间由美性色一区二区三区四区 | 国产日产欧美a级毛片 | 久久精品亚洲精品国产色婷 | 亚洲一区二区三区写真 | www.污在线观看 | 午夜激情视频 | 国产一级片视频 | 中文字幕精品久久 | www.欧美成人 | 国色天香一卡2卡三卡4卡乱码 | 在线a亚洲视频播放在线观看 | 污污的网站在线免费观看 | 99er国产| 亚洲综合一 | 欧美另类精品xxxxxx高跟鞋 | 欧美一二三级 | 一区二区三区不卡在线 | 亚洲国产精品女人久久久 | 久久九九综合 | 日韩欧美国产片 | 激情五月综合色婷婷一区二区 | 在线免费观看日韩av | 天堂网中文在线观看 | 欧美色图狠狠干 | 蜜臀久久99精品久久久 | 台湾150部性三级 | 国产日韩欧美综合 | 午夜免费在线观看 | 国产高清自拍av | 久久精品无码免费不卡 | 偷拍一区二区三区在线婷婷 | 中文字幕在线字幕中文 | 久久久久国产精品夜夜夜夜夜 | 窝窝午夜理论片影院 | 国产欧美熟妇另类久久久 | 久久久国产精品久久久 | 91亚洲精品久久久蜜桃借种 | 天天摸天天透天天添 | 国产女人毛片 | 国产内谢 | 五月99久久婷婷国产综合亚洲 | 欧美日韩精品一区二区在线观看 | 国产口语对白老妇 | 国产欧美熟妇另类久久久 | 女性隐私黄www网站视频 | 女人大荫蒂毛茸茸视频 | 亚洲人成人 | avav国产| 波多野42部无码喷潮 | 欧美日一区二区 | 九色在线播放 | 日本高清视频www夜色资源 | 丰满的少妇愉情hd高清果冻传媒 | 伊人久久亚洲 | 日本久久久久久久久 | ,国产精品国产三级国产 | 欧美xxxx黑人又粗又长精品 | 欧美性一区二区 | 黄色a网 | 性久久久久久久久 | 美女视频黄8视频大全 | 手机在线看永久av片免费 | 欧美另类人妖 | 99久久国语露脸精品国产 | 国产精品国产成人国产三级 | 自拍偷拍1 | 亚洲精品久久久打桩机小说 | 国产视频综合 | 奇米第四色777 | 美脚の诱脚舐め脚责91 | 青青草视频播放器 | 久久综合给合久久狠狠狠97色 | 三级经典三级日本三级欧美 | 性欧美videos另类极品小说 | 色婷婷欧美在线播放内射 | 国产亚洲人成在线播放 | 精品国产乱码久久久久久久软件 | 男人天堂一区 | 一级黄色录像免费观看 | 精品视频九九 | 看毛片网 | 精品国产一区二区三区四区阿崩 | 久久久久国| 国产真实露脸精彩对白 | www婷婷| 午夜网址| 中文字幕人成乱码熟女 | 又湿又紧又大又爽a视频国产 | 成人性生交大片xbxb | 女人夜夜春精品a片 | 波多野结衣女同 | 久综合 | 88国产精品久久现线拍久青草 | 在线免费观看av网站 | 国产精品青青草 | 99性视频 | 色人阁av| 丝袜美腿一区二区三区 | 欧美日韩在线播放 | 裸体歌舞表演一区二区 | 欧美在线免费播放 | 最近中文字幕mv | 国产成人无码一区二区三区在线 | 亚洲国产精品成人久久 | 国产精品视频在线观看 | 人妻熟人中文字幕一区二区 | 人人爱国产 | 久久久久久国产精品久久 | 婷婷色中文字幕综合在线 | 亚洲第三区 | 久久香蕉影视 | 日日日人人人 | 992tv国产精品免费观看 | 最新2020无码中文字幕在线视频 | 亚洲欧洲在线观看 | 久久99精品国产.久久久久 | 国产午夜片无码区在线播放 | 九九九在线视频 | 爱爱视频在线免费观看 | 日日摸夜夜添夜夜添特色大片 | 亚洲国产乱 | 原神污文全文肉高h | 中文字幕无线码一区 | 四虎影视久久久免费观看 | 国产亚洲中字幕欧 | 亚洲av禁18成人毛片一级在线 | 精品国产乱码久久久久久蜜柚 | 99精品视频在线观看免费播放 | 麻豆安全免费网址入口 | 色欧美视频 | 久久精品视频网站 | 蜜桃视频一区二区三区在线观看 | 开心色站| 久草视频在线观 | 性天堂网 | 亚洲精品久久久中文字幕痴女 | 免费观看理伦片在线播放 | 亚洲综合另类小说色区一 | 丰满大乳国产精品 | 国产日韩av在线播放 | 亚洲精品欧美二区三区中文字幕 | 激情久久网 | 日本天天色 | 又色又爽又黄的美女裸体网站 | 国产亚洲精品aaaaaaa片 | 国产精品一区二区手机在线观看 | 在线免费观看日韩 | 无码日韩精品一区二区免费暖暖 | 国产精品视频一区二区三区 | 色yeye香蕉凹凸视频在线观看 | 亚洲精品456在线播放第一页 | 无码夜色一区二区三区 | 黄色成人在线视频 | 女人解开乳罩给男人吃奶 | 5678少妇影院| 天天综合永久入口 | 国产人妻黑人一区二区三区 | 欧美视频亚洲图片 | 人人模人人干 | 精品无码国产污污污免费网站 | 丰满少妇熟乱xxxxx视频 | 久久激情小说 | 日韩一级伦理片 | 丰满婷婷久久香蕉亚洲新区 | 中文字幕在线亚洲精品 | 夜夜春很很躁夜夜躁 | 中文无码日韩欧 | 在线观看中文字幕dvd播放 | 解开人妻的裙子猛烈进入 | 日韩一区二区三区国产 | www黄色毛片 | 亚洲精品中文字幕乱码 | 成人免费视频网站 | 久久成人啪啪性教育 | 91蜜桃婷婷狠狠久久综合9色 | 主播视频com入口在线观看 | 中文在线免费视频 | 国产盼盼私拍福利视频99 | 久久夜色精品国产欧美乱极品 | 亚洲色图少妇 | 国产真人无码作爱视频免费 | 日本熟妇ⅹxx毛片分类 | 强开小婷嫩苞又嫩又紧视频韩国 | 久久免费在线观看 | 人妻精品久久无码专区精东影业 | 亚洲久悠悠色悠在线播放 | 成人小视频免费看 | a网站在线观看 | 麻麻张开腿让我爽了一夜 | 久久久国产一区二区三区四区小说 | 国产清纯白嫩初高生视频在线观看 | 农村黄毛aaaaa免费毛片 | 撕开奶罩揉吮奶头高潮av | 熟妇人妻久久中文字幕 | 欧美视频在线观看视频 | 国产欧美在线 | 妇挑战三黑人4p日本中文字幕 | 国产亚洲精品久久久久久国模美 | 99热这里只有精品66 | 天天操天天射天天爽 | 精品国产一区二区三区四区在线 | jyzz中国jizz十八岁免费 | 欧美激情精品久久久久久蜜臀 | 99热在线观看精品 | 经典国产乱子伦精品视频 | 裸体丰满少妇淫交 | 草草视频在线观看 | 中文字幕亚洲无线码 | 国产成人亚洲在线观看 | 国产精品va在线播放我和闺蜜 | 天天躁狠狠躁狠狠躁夜夜躁68 | 日本三级香港三级人妇99 | 久久久橹橹橹久久久久高清 | 天堂中文在线视频 | 精品在线观看免费 | 日韩欧美一区二区三区, | 天堂久久久久久久 | 国产小精品 | xnxx国产精品hd | 在线观看视频色 | 欧美日韩一区二区三区不卡视频 | 在线午夜 | 天天操天天爽天天干 | 精品一区二区av天堂 | 国产激情一区 | 欧美激情一区二区三区成人 | 成年人在线免费观看 | 在线观看视频免费入口 | 亚洲 小说区 图片区 都市 | 国产97久久| 高清乱码毛片 | 精品人妻一区二区三区浪潮在线 | 邻居少妇张开腿让我爽了在线观看 | 毛片网页 | 久久黄色影院 | 天堂中文网 | 老头把女人躁得呻吟 | 插我舔内射18免费视频 | 女人18毛片水真多 | 成人一级在线 | 偷偷操不一样的99 | 国产精品国产成人国产三级 | 98国产精品综合一区二区三区 | 激情五月网站 | 欧美日韩在线成人 | 日本男女啪啪 | 国产精品av99 | 亚洲国产tv| 欧美精品色图 | 国产麻传媒精品国产av | 国产痴汉av久久精品 | 亚洲国产高清在线观看视频 | 日本边舌吻边做爽的视频 | 成年免费视频黄网站在线观看 | 999精品视频 | 精品无码久久久久久久久久 | 国产又色又爽又刺激在线播放 | 一级女人裸体舞毛片 | 精品国产乱码久久久久久夜甘婷婷 | 无码国产成人午夜电影在线观看 | 免费看黄色一级片 | 成年午夜精品久久久精品 | 国产精品成人免费视频 | 中文字幕久久熟女蜜桃 | 日韩在线看片 | 国内大量偷窥精品视频 | 丁香狠狠色婷婷久久综合 | 欧产日产国产蜜网站 | 国产99久久久国产精品潘金 | 久久一卡二卡三卡四卡 | 无码人妻精品一区二区三区蜜桃 | 国产传媒一级片 | 18成人在线观看 | 2018自拍偷拍 | 玖玖爱资源站 | 色一情一交一乱一区二区三区 | 黄色wwwww| 深夜福利麻豆 | 久久99精品久久久久久琪琪 | 命带桃花1987在线 | 污网站在线观看免费 | 欧美视频在线观看,亚洲欧 欧美视频在线观看视频 | 热99re6久精品国产首页青柠 | 牛牛影视av | 日本大乳奶做爰 | 亚洲成人免费观看 | 欧美久久久久久久久中文字幕 | 久久网站免费看 | 九九九在线视频 | 五月天中文字幕 | 少妇性饥渴无码a区免费 | 国产免费成人 | 国产精品美女久久久久av爽 | 欧美一区欧美二区 | 国产视频中文字幕 | 天天躁夜夜躁很很躁麻豆 | 国产亚洲99天堂一区 | 松岛枫av在线一区二区 | 亚洲欧美中文日韩在线v日本 | 国产精品视频在线观看 | 精品偷自拍另类在线观看 | 狠狠色噜噜狠狠狠7777奇米 | 国产精品区一区二区三在线播放 | 男女全黄一级高潮 | 成人欧美一区二区三区黑人免费 | 日韩一级片中文字幕 | 国产香蕉97碰碰久久人人 | 91popny丨九色丨国产 | youporn免费视频成人软件 | 中国凸偷窥xxxx自由视频妇科 | 日日狠狠久久偷偷四色综合免费 | 国产精品久久久久久人妻精品 | 欧美成人国产va精品日本一级 | av高清| 日本三级日产三级国产三级 | 精品久久久久久久久久久久久 | 久草毛片| 色七七网站| 男人添女人囗交做爰高潮 | 国产精品视频yy9099 | 中文字幕+乱码+中文字幕明步 | 久久精品入口九色 | 久在线视频 | 99久久久久久 | 大岛优香中文av在线字幕 | 在线观看高清av | 国产精品久久久久影院嫩草 | 国产精选av | 爱爱三级视频 | 国产精品精品久久久久久 | 在线观看视频色 | 在线观看一区二区三区av | 国产色精品久久人妻 | 欧美精品一区二区三区一线天视频 | 51久久国产露脸精品国产 | 手机在线永久免费观看av片 | 超碰在线观看97 | 最近中文字幕免费视频 | 中文字幕不卡在线观看 | 久久久日韩精品一区二区 | 亚洲 日本 欧美 中文幕 | 欧洲人妻丰满av无码久久不卡 | 美女av网站| 国产后进极品圆润翘臀在后面玩 | av网页在线 | 在线看91| 午夜av福利在线 | 四虎永久在线精品免费一区二区 | 日韩在线视频第一页 | 少妇人妻偷人精品免费视频 | 免费av资源在线观看 | 日本在线免费观看 | 免费看91的网站 | 女人喂男人奶水做爰视频 | 亚洲精品国产视频 | 中文字幕乱码在线 | 国产精品视频一区二区在线观看 | 成年人免费小视频 | 日韩国精品一区二区a片 | 中文字幕在线视频精品 | 久久久www成人免费无遮挡大片 | 色屁屁www影院免费观看 | 韩国女同性做爰三级 | 国产69精品久久久久久久 | 中国黄色a级 | 午夜福利1000集在线观看 | 久操精品在线 | 黄色影院久久 | 欧美一区免费看 | 黄色欧美网站 | 7777奶水xxxxx哺乳期 | 亚洲精品成人网站在线观看 | 亚洲精品丝袜久久久久久 | 男人的天堂97 | 国产裸体丰满白嫩大尺度尤物可乐 | av激情四射 | 99久久婷婷国产综合精品电影 | 久久久久久久久久久久久久久 | 女神呻吟娇喘高潮毛片 | 在线播放毛片 | 小拗女一区二区三区 | 国产黄a三级三级三级老年人 | 国产高清小视频 | 日本免费高清一本视频 | 男女18禁啪啪无遮挡激烈网站 | 96亚洲精品久久久 | 国产福利第一视频 | 性按摩玩人妻hd中文字幕 | 日韩精品毛片无码一区到三区 | 最近免费中文字幕 | 五月天天丁香婷婷在线中 | 色婷婷综合视频 | 国产女主播喷水视频在线观看 | 1级黄色大片 | 成人三级影院 | 综合久久色 | 91精品免费| 91九色porny首页最多播放 | 免费毛片小视频 | 免费无码av一区二区三区 | 一本色综合久久 | 国产一区二区三区四区五区精品 | 夜夜操夜夜爱 | 3d动漫精品一区二区三区 | 精品自拍视频在线观看 | 少妇又色又爽又高潮极品 | 亚洲精品免费观看 | 国产精品人人爽人人爽 | 国产精品嫩草影院精东 | 国产偷v国产偷v亚洲高清 | 免费看av网| 偷偷久久| 99视频久| 中文字幕一区二区三区精彩视频 | 正在播放东北夫妻内射 | 91精品国产乱码在线观看 | 石原莉奈av调教中文字幕 | 3d动漫精品啪啪一区二区中 | 性一交一乱一伦a片 | 成人手机在线播放 | 精品国产av色一区二区深夜久久 | 蜜臀av色欲a片无码精品一区 | wc偷拍嘘嘘视频一区二区在线 | 51国产偷自视频区视频小蝌蚪 | 久久久久国精品产熟女久色 | 长腿校花无力呻吟娇喘 | 亚洲 欧洲 无码 在线观看 | 国产午夜福利片在线观看 | 超碰97免费 | 99久久99久久精品免费看蜜桃 | 99爱在线| 久久精品无码一区二区日韩av | 人妻巨大乳一二三区 | 亚洲一区二区三区麻豆 | 精品一区二区日韩 | 成年人在线观看网站 | 麻豆国产网站入口 | 久久99视频精品 | 人与动物av | 日本黄色激情视频 | 北条麻妃久久 | 亚洲第一页色 | 日本大尺度吃奶做爰久久久绯色 | 91精品国产综合久久久久久蜜臀 | 中文字幕日韩av | 韩日午夜在线资源一区二区 | 免费国产羞羞网站视频 | 精品欧美黑人一区二区三区 | 精品少妇一区二区三区日产乱码 | 两个黑人大战嫩白金发美女 | 国产精品欧美一区二区三区不卡 | 区二区欧美性插b在线视频网站 | 天干夜天干天天天爽视频 | 老太脱裤让老头玩ⅹxxxx | 99国内精品久久久久久久 | 欧美日韩制服 | 国产精品无码久久综合网 | 91涩涩视频| 婷婷激情在线 | 中文字幕一区二区三区在线乱码 | 外国黄色网址 | 波多野结衣av无码 | 欧美日韩免费观看视频 | 99re中文字幕 | 午夜免费成人 | 中文字幕av高清片 | 欧美亚洲视频在线观看 | 国产精品无码一区二区三级 | 777视频在线观看 | 啪免费 | 免费观看成年人视频 | 免费av网址在线 | 国产女人与拘做视频免费 | 91精品久久久久久久久久入口 | 紧缚捆绑精品一区二区 | 天堂资源站 | 操小妹影院 | 日韩一级免费观看 | 性折磨bdsm欧美激情另类 | 福利毛片| 美女啪啪网址 | 一级黄色片看看 | 美日韩av在线 | 九九免费 | 成人午夜影片 | 国产欧美日韩久久久久 | 国产成人亚洲综合青青 | 国产精品国产三级国产有见不卡 |