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

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

?? ds18b20.asm

?? 這是關于單個DS18B20的測溫程序,數據腳為P3.3,晶振是11.059MHZ 溫度傳感器18B20采用器件默認的12位轉化,最大轉化時間要750毫秒 用1602液晶屏顯示,顯示溫度從00到
?? ASM
字號:
;這是關于單個DS18B20的測溫程序,數據腳為P3.3,晶振是11.059MHZ
;溫度傳感器18B20采用器件默認的12位轉化,最大轉化時間要750毫秒
;用1602液晶屏顯示,顯示溫度從00到99度,精確到0.0625度
;內存分配聲明
TEMPER_L EQU 29H;用于保存讀出溫度的低字節
TEMPER_H EQU 28H;用于保存讀出溫度的高字節
T_DF EQU 27H ;FORMAT后的小數部分(decimal fraction),半字節的溫度小數(存在低四位)
T_INTEGER EQU 26H ;FORMAT后的整數部分(integer),將兩字節的溫度整合成1字節
FLAG1 BIT 50H;位地址50H是字節2AH的最低位,用作是否檢測到DS18B20的標志位

A_BIT EQU 20h ;液晶十位數存放內存位置
B_BIT EQU 21h ;液晶個位數存放內存位置
C_BIT EQU 22H ;個位小數
D_BIT EQU 23H ;十位小數
E_BIT EQU 24H ;百位小數
F_BIT EQU 25H ;千位小數


RS BIT P1.0 ;這3位是液晶屏的控制信號,連接方式由具體硬件而定
RW BIT P1.1
E  BIT P1.2

ORG 0000H
            LJMP MAIN
ORG 0100H
MAIN:   
           LCALL   INIT_RS232
           CLR P1.3
           LCALL T_CONVERSION;調用讀溫度子程序
           LCALL T_FORMAT;將讀出的2字節溫度格式化
           LCALL DISPLAY;調用液晶顯示子程序
           LCALL D1S;延時1秒后再測
           LJMP MAIN

;--------------DS18B20的溫度轉換子程序,具體時序請參考資料-------------------
T_CONVERSION:        LCALL INIT_1820;先復位DS18B20
                     JB FLAG1,T_C0
                     RET ; 判斷DS1820是否存在  若DS18B20不存在則返回

T_C0:                MOV A,#0CCH ; 跳過ROM匹配
                     LCALL WRITE_1820
                     MOV A,#44H ; 發出溫度轉換命令
                     LCALL WRITE_1820
                     LCALL D1S   ;這里等待AD轉換結束,12位的話要延時750m秒
                     LCALL INIT_1820;準備讀溫度前先復位
                     MOV A,#0CCH ; 跳過ROM匹配
                     LCALL WRITE_1820
                     MOV A,#0BEH ; 發出讀溫度命令
                     LCALL WRITE_1820
                     LCALL READ_1820; 將讀出的溫度數據保存到28H(TEMPER_H)和29H(TEMPER_L)處
                     RET

;------DS18B20復位初始化程序-----------------------------------------
INIT_1820:   SETB P3.3
                   NOP
                   CLR P3.3
                   MOV R0,#2 ;主機發出延時500微秒的復位低脈沖
INIT0:         MOV R1,#250
                   DJNZ R1,$
                   DJNZ R0,INIT0

                   SETB P3.3;然后拉高數據線
                   NOP

                   MOV R0, #15
INIT1:         JNB P3.3, INIT3;延時60us等待DS18B20回應
                   DJNZ R0, INIT1
                   LJMP INIT4 ; 超時而沒有響應
INIT3:         SETB FLAG1 ; 置標志位,表示DS1820存在
                   LJMP INIT5
INIT4:         CLR FLAG1 ; 清標志位,表示DS1820不存在
                   LJMP INIT6
INIT5:         MOV R0, #120
                   DJNZ R0, $ ; 延時240us
INIT6:         SETB P3.3
                   RET

;---------寫DS18B20的子程序(有具體的時序要求)-------------------------------------
WRITE_1820:   MOV R2,#8;一共8位數據
WR0:              CLR P3.3
                     MOV R3,#6
                     DJNZ R3,$
                     RRC A
                     MOV P3.3,C
                     MOV R3,#20
                     DJNZ R3,$
                     SETB P3.3
                     NOP
                     NOP
                     DJNZ R2,WR0
                     SETB P3.3
                     RET

;------讀DS18B20的程序,從DS18B20中讀出兩個字節的溫度數據--------------------------
READ_1820:      MOV R4,#2 ; 將溫度高位和低位從DS18B20中讀出
                MOV R1,#TEMPER_L ; 低位存入29H(TEMPER_L)
RE0:            MOV R2,#8
RE1:            SETB P3.3
                   NOP
                   NOP
                   CLR P3.3
                   NOP
                   NOP
                   SETB P3.3
                   MOV R3,#5
                   DJNZ R3, $
                   MOV C,P3.3
                   MOV R3,#20
                   DJNZ R3, $
                   RRC A
                   DJNZ R2,RE1
                   MOV @R1,A
                   DEC R1            ; 高位存入28H(TEMPER_H)
                   DJNZ R4,RE0
                   RET

;-----整合讀出的兩字節溫度(關于DS18B20讀出的2字節溫度格式請參考資料)----------
T_FORMAT:         MOV A, #0FH
                  ANL A, TEMPER_L
                  MOV T_DF, A           ;獲得小數部分(4位)

                  MOV A, TEMPER_L
                  SWAP A
                  MOV TEMPER_L, A

                  MOV A, TEMPER_H
                  SWAP A
                  MOV R0, #TEMPER_L
                  XCHD A, @R0

                  MOV T_INTEGER, A       ;獲得整數部分(1字節)
                  RET

;-------液晶顯示的子程序(顯示前先格式轉換)---------------------------------------
DISPLAY:             mov a, T_INTEGER
                     mov b,#10
                     div ab
                     mov A_BIT,a ;十位存在A_BIT
					      mov B_BIT,b ;個位存在B_BIT
                     MOV A, T_DF
                     MOV R0, #C_BIT
                    MOV R2, #4
               	D0: MOV B, #10
                     MUL AB
                     MOV B, #16
                     DIV AB
                     MOV @R0, A      ;從個位小數C_BIT,到十位D_BIT,百位E_BIT,千位F_BIT
                     INC R0
                     MOV A, B
                     DJNZ R2, D0
                     ;----二進制到ASCII碼轉換--------------
                     MOV A, #30H
                     ORL A_BIT, A
                     ORL B_BIT, A
                     ORL C_BIT, A
                     ORL D_BIT, A
                     ORL E_BIT, A
                     ORL F_BIT, A
                     ;-------------------------------------
                     LCALL INITIAL
                     MOV A, #10000000B                ; LINE1: DB 'Now is:',00H
                     LCALL   WRITE_INSTRUCTION
                     MOV   DPTR, #LINE1
                     LCALL   PR_STRING
                     MOV A, A_BIT
                     LCALL TX_CHAR
                     LCALL   WRITE_LCDDATA
                     MOV A, B_BIT
		               LCALL TX_CHAR
                     LCALL   WRITE_LCDDATA
                     MOV A, #2EH
                     LCALL TX_CHAR;'.'字符
                     LCALL   WRITE_LCDDATA
                     MOV A, C_BIT
		               LCALL TX_CHAR
                     LCALL   WRITE_LCDDATA
                     MOV A, D_BIT
		               LCALL TX_CHAR
                     LCALL   WRITE_LCDDATA
                     MOV A, E_BIT
		               LCALL TX_CHAR
                     LCALL   WRITE_LCDDATA
                     MOV A, F_BIT
		               LCALL TX_CHAR
                     LCALL   WRITE_LCDDATA
                     MOV A, #0DFH                        ;下面兩個是攝氏度的數字符號
		               LCALL TX_CHAR
                     LCALL   WRITE_LCDDATA
                     MOV A, #43H
		               LCALL TX_CHAR
                     LCALL   WRITE_LCDDATA
                     MOV A, #0AH
		               LCALL TX_CHAR
                     
                     mov a, #11000000B                 ; LINE2: DB 'WANG XUE MIN!',00H
                     Lcall write_instruction
                     MOV   DPTR, #LINE2
                     LCALL   PR_STRING
                     RET

;---液晶屏初始化,具體請參考資料-------------------------------------------------
initial:         MOV   A, #01H
                       LCALL WRITE_INSTRUCTION
                       MOV   A, #38H
                       LCALL WRITE_instruction
                       MOV   A, #0FH
                       LCALL WRITE_instruction
                       MOV   A, #06H
                       LCALL WRITE_instruction
                       RET

;----寫液晶指令的子程序------------------------------------------
WRITE_instruction: MOV P0, A
                               CLR RS ;寫入控制命令
                               CLR RW
                               CLR E
                               LCALL DELAY
                               SETB E
                               RET

;----寫液晶數據的子程序---------------------------------------------
write_lcddata:   MOV P0, A
                          SETB RS ;寫入數據
                          CLR RW
                          CLR E
                          LCALL DELAY ;判斷液晶模塊是否忙  
                          SETB E
                          RET

;-----寫行字符的子程序---------------------------------------------------------------
PR_STRING:   CLR    A
                   MOVC   A, @A+DPTR
                   JZ      END_PR
                   LCALL WRITE_LCDDATA
                   INC    DPTR
                   LJMP   PR_STRING
END_PR:       RET

;----查看液晶忙碌信號的子程序---------------------------------------------------------
DELAY:   MOV P0,#0FFH ;判斷液晶顯示器是否忙的子程序
             CLR RS
             SETB RW
             CLR E
             NOP
             SETB E
             JB P0.7,DELAY ;如果P1.7為高電平表示忙就循環等待
             RET
;---1mS延時(按12MHZ算)-----------------------------------------------------------------
D1mS:      MOV R7,#250
LOOP0:    NOP
              NOP
              DJNZ R7,LOOP0
              RET
;----1S延時(按12MHZ算)-----------------------------------------------------------------
D1S:       Mov R6,#4
LOOP2:    mov R5,#250
LOOP1:    LCALL D1mS
              DJNZ R5,LOOP1
              DJNZ R6,LOOP2
              RET
INIT_RS232:
	MOV SCON,#50H
	MOV TMOD,#20H
	MOV TH1,#0FDH
	SETB TR1
	SETB TI
	RET
;-----------------------
TX_CHAR:
	JNB TI,$
	CLR TI
	MOV SBUF, A
	RET
;--------------------------------------------------------------------------------------
LINE1: DB 'NOW IS:',00H
LINE2: DB 'WANG XUE MIN',00H
END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色综合网站| 91美女福利视频| 三级久久三级久久久| 亚洲精品v日韩精品| 国产精品欧美一区喷水| 中国av一区二区三区| 中文字幕第一页久久| 国产精品国产三级国产普通话99| 日本一区二区在线不卡| 国产精品久久久久久久久久久免费看| 国产亚洲精品7777| 中文字幕一区在线| 中文字幕亚洲成人| 一区二区三区精品在线| 亚洲高清视频中文字幕| 日本在线不卡一区| 日韩精品中文字幕一区| 在线成人午夜影院| 精品人在线二区三区| 久久色.com| 1024精品合集| 午夜精品福利一区二区三区av | 国产精品一区二区久久不卡| 国产精品乡下勾搭老头1| 成人动漫在线一区| 欧美日韩精品欧美日韩精品一 | 日韩欧美资源站| 久久久久亚洲综合| 日韩美女视频一区| 日本视频中文字幕一区二区三区| 韩国v欧美v日本v亚洲v| 91麻豆精品秘密| 欧美一区二区在线免费播放| 久久精品一区二区三区av| 亚洲欧美色图小说| 久久精品国产免费| 91在线丨porny丨国产| 欧美日韩免费一区二区三区视频| 日韩欧美国产电影| 日韩一区中文字幕| 狠狠网亚洲精品| 欧美中文字幕久久| 久久综合色之久久综合| 亚洲午夜私人影院| 国产.欧美.日韩| 欧美另类一区二区三区| 国产色婷婷亚洲99精品小说| 天堂av在线一区| 99久久99久久精品免费观看| 欧美成人aa大片| 一区二区欧美国产| 成人成人成人在线视频| 欧美大白屁股肥臀xxxxxx| 亚洲免费观看在线视频| 国产一区二区三区免费观看| 欧美老女人在线| 最新热久久免费视频| 国产精品一级片在线观看| 欧美精品第一页| 亚洲高清免费视频| 91麻豆国产福利在线观看| 久久久一区二区三区捆绑**| 日本一区中文字幕| 欧美日韩一区二区在线观看视频| 国产精品久久久久久久浪潮网站 | 国产精品亚洲а∨天堂免在线| 91麻豆精品国产91久久久久 | 成人app下载| 日韩欧美国产一区二区在线播放| 夜夜夜精品看看| 一本大道久久精品懂色aⅴ| 国产精品乱码一区二区三区软件| 国产一区二区免费视频| 亚洲精品一区二区三区影院 | 国产美女娇喘av呻吟久久| 日韩一级片在线观看| 日韩av网站在线观看| 91精品国产色综合久久不卡电影| 亚洲成人三级小说| 欧美日韩夫妻久久| 日本 国产 欧美色综合| 日韩欧美资源站| 国产精品自拍在线| 中文字幕在线观看一区| 91视频一区二区| 亚洲国产aⅴ成人精品无吗| 欧美在线视频全部完| 性做久久久久久久久| 91精品国产入口在线| 看片网站欧美日韩| www久久精品| av激情综合网| 亚洲最大色网站| 欧美精品久久天天躁| 乱一区二区av| 亚洲国产电影在线观看| 日本二三区不卡| 日本美女一区二区三区视频| 精品国产网站在线观看| 成人综合婷婷国产精品久久免费| 中文字幕日韩精品一区 | 亚洲激情图片小说视频| 成人精品小蝌蚪| 亚洲天堂久久久久久久| 欧美日韩久久久| 久久福利视频一区二区| 国产精品私人自拍| 欧美图区在线视频| 激情综合色综合久久| 中文字幕一区二区三区视频| 欧美亚洲高清一区二区三区不卡| 免费看欧美女人艹b| 欧美韩日一区二区三区| 欧美日韩亚洲国产综合| 国产精品一区2区| 亚洲成人免费视频| 99久久99久久免费精品蜜臀| 国产精品无圣光一区二区| 欧美影片第一页| 国内精品伊人久久久久影院对白| 香蕉加勒比综合久久| 26uuu精品一区二区| 欧美日韩在线直播| 国产99一区视频免费| 五月天亚洲精品| 中文字幕国产一区二区| 日韩一区二区精品在线观看| 99久久精品国产一区二区三区| 五月天视频一区| 一二三四社区欧美黄| 国产欧美一区二区三区鸳鸯浴 | 欧美精品一区二区久久婷婷| 一本大道av一区二区在线播放| 老司机精品视频一区二区三区| 亚洲精选视频免费看| 久久精品夜色噜噜亚洲a∨| 欧美久久久久中文字幕| 91免费观看视频在线| 国产成人在线视频网站| 紧缚奴在线一区二区三区| 三级欧美在线一区| 亚洲一区二区三区四区五区中文| 国产精品网站在线播放| 国产婷婷色一区二区三区| 日韩视频免费观看高清完整版| 欧美伊人久久久久久午夜久久久久| 91在线porny国产在线看| 国v精品久久久网| 国产九色sp调教91| 国产成人在线电影| 精品一区二区三区免费播放| 免费观看成人av| 男男gaygay亚洲| 蜜臀av性久久久久av蜜臀妖精| 日韩va欧美va亚洲va久久| 天天综合天天做天天综合| 亚洲国产精品自拍| 99这里都是精品| 天天做天天摸天天爽国产一区 | 欧美欧美欧美欧美首页| 在线一区二区三区做爰视频网站| 成人av午夜电影| 国产99一区视频免费| 成人av资源站| 成人h精品动漫一区二区三区| 成人激情午夜影院| 成人avav影音| 欧美三级韩国三级日本一级| 欧美日韩国产免费| 91精品国产色综合久久| 亚洲精品一线二线三线| 国产日韩欧美不卡在线| 中文字幕亚洲不卡| 亚洲一区视频在线| 亚洲18影院在线观看| 日韩电影在线观看电影| 极品少妇xxxx精品少妇| av电影一区二区| 欧美日韩美女一区二区| 最新不卡av在线| 日韩一区二区三区av| 亚洲免费看黄网站| 视频一区二区三区中文字幕| 久久国产精品免费| 91首页免费视频| 3d动漫精品啪啪1区2区免费| 久久新电视剧免费观看| 亚洲免费视频成人| 久久99精品久久久久久国产越南| 本田岬高潮一区二区三区| 欧美精品vⅰdeose4hd| 国产日韩精品视频一区| 亚洲国产欧美日韩另类综合| 国产精品一卡二卡在线观看| 欧美午夜免费电影| 国产午夜精品美女毛片视频| 五月婷婷综合在线| 成人av资源网站| 日韩精品专区在线影院观看| 亚洲欧洲韩国日本视频|