亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ds18b20-lcd.asm

?? DS18B20+1602LCD顯示溫度控制
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
         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
         djnz r3,$            ;等待100微妙
         rrc a                ;把讀得的位值環移給A
         djnz r2,re01         ;讀下一個BIT
         mov @r1,a
         inc r1
         djnz r4,re00
         ret


;*****************************************************
;  處理溫度 BCD 碼子程序
;****************************************************
CONVTEMP:      MOV  A,TEMPH       ;判溫度是否零下
               ANL  A,#80H
               JZ  TEMPC1         ;溫度零上轉
               CLR  C
               MOV  A,TEMPL       ;二進制數求補(雙字節)
               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=小數部分 BCD

               MOV  A,TEMPL             ;整數部分
               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 = 十位數 BCD
               MOV  TEMPHC,A
               MOV  A,TEMPL
               ANL  A,#0FH
               SWAP  A                  ;TEMPLC HI = 個位數 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 = 百位數 BCD
               ANL  A,#0FH
               ORL  A,R4
               MOV  TEMPHC,A
TEMPC12:       RET
;---------------------------------------------------------------
HEX2BCD1:
              MOV  B,#064H          ;十六進制-> BCD
              DIV  AB               ;B= A % 100
              MOV  R4,A             ;R7 = 百位數
              MOV  A,#0AH
              XCH  A,B
              DIV  AB               ;B = A % B
              SWAP  A
              ORL  A,B
              RET
;-------------------------------------------------------------
;  小數部分碼表
;-------------------------------------------------------------
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   ;指針指到顯示信息區
          MOV  A,#2            ;顯示在第二行
          CALL  LCD_PRINT

          MOV  A,#0C6H
          CALL  TEMP_BJ1
          MOV  A,TEMP_TH       ;加載TH數據
          MOV  LCD_X,#3        ;設置位置
          CALL  SHOW_DIG2H     ;顯示數據

          MOV  A,#0CEH
          CALL  TEMP_BJ1
          MOV  A,TEMP_TL       ;加載TL數據
          MOV  LCD_X,#12       ;設置位置
          CALL  SHOW_DIG2L     ;顯示數據
          RET
;--------------------------------------------
M_ALAX1:
     DB   " LOOK ALERT CODE",0
M_ALAX2:
     DB   "TH:      TL:    ",0
;--------------------------------------------
TEMP_BJ1:
          CALL WCOM
          MOV  DPTR,#BJ2      ;指針指到顯示信息區
          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 的第二行顯示數字
          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 的第二行顯示數字
          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
;-------------------------------------------------------------
;顯示區 BCD 碼溫度值刷新子程序
;-------------------------------------------------------------
DISPBCD:
              MOV  A,TEMPLC
              ANL  A,#0FH
              MOV  70H,A                 ;小數位
              MOV  A,TEMPLC
              SWAP  A
              ANL  A,#0FH
              MOV  71H,A                 ;個位
              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               ;十位數是0
              MOV  A,TEMPHC
              SWAP  A
              ANL  A,#0FH
              MOV  73H,#0AH               ;符號位不顯示
              MOV  72H,A                  ;十位數顯示符號
DISPBCD2:     RET

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


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

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

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

  LINE2:  MOV  A,#0C0H      ;設置 LCD 的第二行地址
          CALL  WCOM        ;寫入命令
          CALL  CLR_LINE    ;清除該行字符數據
          MOV  A,#0C0H      ;設置 LCD 的第二行地址
          CALL  WCOM
  FILL:   CLR  A            ;填入字符
          MOVC  A,@A+DPTR   ;由消息區取出字符
          CJNE  A,#0,LC1    ;判斷是否為結束碼
          RET
  LC1:    CALL  WDATA       ;寫入數據
          INC  DPTR         ;指針加1
          JMP  FILL         ;繼續填入字符
          RET
;=========================================
CLR_LINE:                  ;清除該行 LCD 的字符
          MOV  R0,#24
   CL1:   MOV  A,#' '
          CALL  WDATA
          DJNZ  R0,CL1
          RET
   DE:    MOV  R7,#250
          DJNZ  R7,$
          RET
;============================================
WCOM:                     ;以8位控制方式將命令寫至LCD
          MOV  P0,A       ;寫入命令
          CLR LCD_RS      ;RS=L,RW=L,D0-D7=指令碼,E=高脈沖
          CLR LCD_RW
          SETB LCD_EN
          ACALL DELAY1        
          CLR LCD_EN
          RET
;=============================================
WDATA:                    ;以8位控制方式將數據寫至LCD
          MOV  P0,A       ;寫入數據
          SETB  LCD_RS        
          CLR  LCD_RW
          SETB  LCD_EN        
          CALL  DE
          CLR  LCD_EN
          CALL  DE
          RET
;=============================================
;PRINT A CHAR ON LINE 1
;A=ASC DATA, B=LINE X POS
;==============================================
LCDP1:                    ;在LCD的第一行顯示字符
         PUSH  ACC        ;
         MOV  A,B         ;設置顯示地址
         ADD  A,#80H      ;設置LCD的第一行地址
         CALL  WCOM       ;寫入命令
         POP  ACC         ;由堆棧取出A
         CALL  WDATA      ;寫入數據
         RET

;==============================================
BEEP_BL:
         MOV  R6,#100
 BL2:    CALL  DEX1
         CPL  BEEP
         DJNZ  R6,BL2
         MOV  R5,#10
         CALL  DELAY
         RET
 DEX1:   MOV  R7,#180
 DE2:    NOP
         DJNZ  R7,DE2
         RET
DELAY:                    ;(R5)*延時10MS
         MOV  R6,#50
 DL1:    MOV  R7,#100
         DJNZ  R7,$
         DJNZ  R6,DL1
         DJNZ  R5,DELAY
         RET

DELAY1:                    ;延時5MS
         MOV  R6,#25
 DL2:    MOV  R7,#100
         DJNZ  R7,$
         DJNZ  R6,DL2
         RET
;================================================
         END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品久久久久久久99蜜桃 | 精品卡一卡二卡三卡四在线| 精品黑人一区二区三区久久| 日本一区二区免费在线| 午夜视频在线观看一区二区三区| 国产剧情一区在线| 色天使久久综合网天天| 久久午夜老司机| 蜜臀99久久精品久久久久久软件| 91色九色蝌蚪| 国产精品美女久久久久久久| 精品一区二区三区影院在线午夜| 91成人国产精品| 亚洲视频香蕉人妖| 粉嫩绯色av一区二区在线观看| 日韩精品一区二区在线| 婷婷久久综合九色国产成人| 91丝袜美腿高跟国产极品老师| 久久九九全国免费| 精品午夜久久福利影院| 欧美一区二区精品| 天天综合网 天天综合色| 99riav久久精品riav| 国产精品情趣视频| 国产精品一区三区| 久久久久国产精品厨房| 极品少妇xxxx精品少妇偷拍| 欧美大白屁股肥臀xxxxxx| 亚洲第一狼人社区| 欧美日韩精品一二三区| 五月天精品一区二区三区| 精品视频一区三区九区| 亚洲一区二区三区四区在线免费观看 | 欧美精品一区二区三区很污很色的| 天天综合天天综合色| 91精品国产综合久久婷婷香蕉| 亚洲国产精品久久一线不卡| 欧美精品vⅰdeose4hd| 亚洲国产中文字幕| 欧美日韩视频在线第一区| 午夜私人影院久久久久| 91精品在线观看入口| 奇米精品一区二区三区四区| 日韩免费看的电影| 国产精品一区二区在线观看网站| 国产亚洲欧美激情| 91丨porny丨国产| 亚洲一区二区五区| 日韩欧美成人激情| 成人ar影院免费观看视频| 亚洲欧美一区二区久久| 7777女厕盗摄久久久| 蜜臀a∨国产成人精品| 国产性天天综合网| 99re成人在线| 五月天国产精品| 久久久五月婷婷| 色丁香久综合在线久综合在线观看| 丝袜美腿亚洲综合| 国产色产综合色产在线视频| 在线视频国内自拍亚洲视频| 蜜臀av性久久久久蜜臀av麻豆| 欧美国产成人精品| 欧美日韩精品系列| 国产成人综合亚洲网站| 亚洲精品午夜久久久| 日韩久久精品一区| 91在线观看成人| 精品一区二区三区免费毛片爱 | 亚洲精品视频自拍| 欧美电影在线免费观看| 国产成人福利片| 日本中文字幕一区二区有限公司| 国产偷国产偷亚洲高清人白洁| 在线亚洲人成电影网站色www| 麻豆成人免费电影| 亚洲一二三四在线观看| 久久精品亚洲一区二区三区浴池| 欧美视频在线一区二区三区 | 国产精品久久久久三级| 欧美欧美欧美欧美| 9久草视频在线视频精品| 日韩福利视频网| 136国产福利精品导航| 日韩你懂的在线播放| 色噜噜偷拍精品综合在线| 国产中文字幕精品| 日韩极品在线观看| 亚洲午夜精品网| 中文字幕av一区 二区| 日韩精品专区在线影院观看| 色悠悠亚洲一区二区| 国产精品99久久不卡二区| 视频一区在线视频| 有码一区二区三区| 国产精品乱码一区二区三区软件 | 日韩精品一区二| 制服丝袜国产精品| 在线精品视频小说1| 成人av电影在线网| 成人网男人的天堂| 国产精品自拍一区| 国产在线精品一区二区不卡了| 日韩精品亚洲一区| 日韩精品高清不卡| 日日夜夜精品视频天天综合网| 一区二区三区电影在线播| 国产精品美女久久久久aⅴ | 精品久久一区二区| 6080yy午夜一二三区久久| 欧洲视频一区二区| 在线观看网站黄不卡| 欧美久久久久久蜜桃| 99国产精品国产精品毛片| 99精品欧美一区| 不卡的电影网站| 成人精品一区二区三区四区| 国产成人免费网站| av电影在线不卡| 91亚洲精品久久久蜜桃网站| 91色|porny| 欧美日韩一二三| 日韩一区二区三区电影在线观看 | 国产精品电影一区二区| 欧美国产视频在线| 亚洲人成在线播放网站岛国| 综合av第一页| 亚洲高清免费视频| 久久精品理论片| 国产精品系列在线播放| 成人免费视频视频| 色哟哟国产精品| 91精品国产福利| 国产亚洲美州欧州综合国| 国产精品久久久久久久久晋中| 亚洲视频在线观看三级| 亚洲资源中文字幕| 久久精品国产精品亚洲红杏| 国产成人免费在线观看不卡| 91碰在线视频| 日韩欧美卡一卡二| 中文在线一区二区| 亚洲综合一区二区三区| 日本不卡的三区四区五区| 国产一区二区免费看| 99精品欧美一区二区三区小说| 在线电影一区二区三区| 久久精品亚洲国产奇米99| 夜夜操天天操亚洲| 狠狠色综合播放一区二区| 色诱亚洲精品久久久久久| 日韩欧美国产一区二区三区| 国产精品成人一区二区艾草 | 丰满岳乱妇一区二区三区| 色成人在线视频| 久久久不卡网国产精品一区| 一二三四社区欧美黄| 国产福利一区二区| 欧美最猛黑人xxxxx猛交| 久久理论电影网| 亚洲宅男天堂在线观看无病毒| 激情欧美一区二区三区在线观看| 在线区一区二视频| 国产精品视频yy9299一区| 日av在线不卡| 欧美亚洲自拍偷拍| 国产精品免费久久久久| 美女免费视频一区| 欧美性欧美巨大黑白大战| 国产精品你懂的在线欣赏| 激情久久五月天| 精品视频123区在线观看| 亚洲国产精品成人久久综合一区| 蜜桃一区二区三区在线观看| 色域天天综合网| 中文字幕日韩欧美一区二区三区| 国产自产v一区二区三区c| 欧美日韩一卡二卡| 亚洲视频网在线直播| 国产精品中文有码| 欧美岛国在线观看| 亚洲va中文字幕| 91香蕉视频mp4| 国产三级精品视频| 国内精品自线一区二区三区视频| 3d动漫精品啪啪1区2区免费| 亚洲制服丝袜一区| 色综合天天狠狠| 亚洲男帅同性gay1069| 成人性生交大合| 久久九九久久九九| 精品一区二区三区免费| 欧美成人性战久久| 伦理电影国产精品| 欧美刺激午夜性久久久久久久| 奇米777欧美一区二区| 日韩女优电影在线观看| 午夜精品福利一区二区蜜股av| 欧美视频一区在线| 午夜一区二区三区视频|