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

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

?? ex10-4.asm

?? ds18b20溫度采集及數碼管顯示
?? ASM
?? 第 1 頁 / 共 2 頁
字號:

          TEMP_ZH   EQU  24H     ;實測溫度值存放單元
          TEMPL     EQU  25H     
          TEMPH     EQU  26H     
          TEMP_TH   EQU  27H     ;高溫報警值存放單元
          TEMP_TL   EQU  28H     ;低溫報警值存放單元
          TEMPHC    EQU  29H     ;正、負溫度值標記
          TEMPLC    EQU  2AH
          TEMPFC    EQU  2BH     
          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 寄存器選擇信號
          LCD_RW    EQU  P2.1     ;LCD 讀寫信號
          LCD_EN    EQU  P2.2     ;LCD 允許信號
          FLAG1     EQU  20H.0    ;DS18B20是否存在標志
          KEY_UD    EQU  20H.1    ;設定按鍵的增、減標志
          DQ 		EQU  P3.3	  ;DS18B20數據信號
           ORG  0000H
           LJMP  MAIN
		   ORG   0030H
MAIN:     MOV  SP,#60H
          MOV  A,#00H
          MOV  R0,#20H       		;將20H~2FH 單元清零
          MOV  R1,#10H
CLEAR:    MOV  @R0,A
          INC  R0
          DJNZ  R1,CLEAR  
          LCALL  SET_LCD
          LCALL  RE_18B20  
START:    LCALL  RST          		;調用18B20復位子程序
          JNB   FLAG1,START1  		;DS1820不存在
          LCALL  MENU_OK			;DS1820存在,調用顯示正確信息子程序
		  MOV	TEMP_TH,#055H		;設置TH初值85度
		  MOV	TEMP_TL,#019H		;設置TL初值25度
		  LCALL RE_18B20A			;調用暫存器操作子程序
          LCALL  WRITE_E2       	;寫入DS18B20
          LCALL  TEMP_BJ        	;顯示溫度標記
          JMP   START2
START1:   LCALL  MENU_ERROR			;調用顯示出錯信息子程序
          LCALL  TEMP_BJ        	;顯示溫度標記
          SJMP  $
START2:   LCALL  RST				;調用DS18B20復位子程序
          JNB  FLAG1,START1    		;DS18B20不存在
          MOV   A,#0CCH        		;跳過ROM匹配命令
          LCALL  WRITE
          MOV   A,#44H         		;溫度轉換命令
          LCALL  WRITE
          LCALL  RST
          MOV   A,#0CCH        		;跳過ROM匹配
          LCALL  WRITE  
          MOV   A,#0BEH        		;讀溫度命令
          LCALL  WRITE
          LCALL  READ				;調用DS18B20數據讀取操作子程序
          LCALL CONVTEMP			;調用溫度數據BCD 碼處理子程序
          LCALL DISPBCD				;調用溫度數據顯示子程序
          LCALL CONV				;調用LCD顯示處理子程序
          LCALL TEMP_COMP			;調用實測溫度值與設定溫度值比較子程序
          LCALL  PROC_KEY       	;調用鍵掃描子程序
   		  SJMP START2				;循環
;*************************** 鍵掃描子程序 *****************************
PROC_KEY:JB  K1,PROC_K1    			
         LCALL  BEEP_BL
         JNB  K1,$
         MOV  DPTR,#M_ALAX1
         MOV  A,#1
         LCALL  LCD_PRINT
         LCALL  LOOK_ALARM
         JB  K3,$
         LCALL  BEEP_BL
         JMP  PROC_K2
PROC_K1: JB  K2,PROC_END			
         LCALL  BEEP_BL
         JNB  K2,$
         MOV   DPTR,#RST_A1
         MOV   A,#1
         LCALL  LCD_PRINT
         LCALL  SET_ALARM
         LCALL  RE_18B20           ;將設定的TH,TL值寫入DS18B20
         LCALL  WRITE_E2
PROC_K2: LCALL  MENU_OK
         LCALL  TEMP_BJ
PROC_END:RET

;*************************** 設定溫度報警值 TH、TL ***************************
SET_ALARM:LCALL  LOOK_ALARM
AS0:     JB   K1,AS00
         LCALL  BEEP_BL
         JNB  K1,$
         CPL  20H.1            ;UP/DOWN 標記
AS00:    JB  20H.1,ASZ01       ;20H.1=1,增加
         JMP  ASJ01            ;20H.1=0,減小
ASZ01:   JB  K2,ASZ02          ;TH值調整(增加)
         LCALL  BEEP_BL
         INC  TEMP_TH
         MOV  A,TEMP_TH
         CJNE  A,#120,ASZ011
         MOV  TEMP_TH,#0
ASZ011:  LCALL  LOOK_ALARM
         MOV  R5,#10
         LCALL  DELAY
         JMP  ASZ01
ASZ02:   JB  K3,ASZ03          	;TL值調整(增加)
         LCALL  BEEP_BL
         INC  TEMP_TL
         MOV  A,TEMP_TL
         CJNE  A,#99,ASZ021
         MOV  TEMP_TL,#00H
ASZ021:  LCALL  LOOK_ALARM   
         MOV  R5,#10
         LCALL  DELAY
         JMP  ASZ02
ASZ03:   JB  K4,AS0            	;確定調整
         LCALL  BEEP_BL
         JNB  K4,$
         RET
ASJ01:   JB  K2,ASJ02          	;TH值調整(減少)
         LCALL  BEEP_BL
         DEC   TEMP_TH
         MOV  A,TEMP_TH
         CJNE  A,#0FFH,ASJ011
         JMP  ASJ022
ASJ011:  LCALL  LOOK_ALARM
         MOV  R5,#10
         LCALL  DELAY
         JMP  AS0
ASJ02:   JB  K3,ASJ03         	;TL值調整(減少)
         LCALL  BEEP_BL
         DEC  TEMP_TL
         MOV  A,TEMP_TL
         CJNE  A,#0FFH,ASJ021
         JMP  ASJ022
ASJ021:  LCALL  LOOK_ALARM    ;
         MOV  R5,#10
         LCALL  DELAY
         JMP  AS0
ASJ022:  CPL  20H.1
         JMP  ASZ01
ASJ03:   JMP  ASZ03
         RET
RST_A1:  DB  " SET ALERT CODE " ,0

;*********************** 實測溫度值與設定溫度值比較子程序 **********************
TEMP_COMP:MOV  	A,TEMP_TH       
          SUBB 	A,TEMP_ZH       	;減數>被減數,則
          JC  	CHULI1            	;借位標志位C=1,轉
		  MOV	A,TEMPFC
		  CJNE	A,#0BH,COMP
		  SJMP	CHULI2
COMP:     MOV  A,TEMP_ZH
          SUBB  A,TEMP_TL       	;減數>被減數,則
          JC  CHULI2            	;借位標志位C=1,轉
          MOV  DPTR,#BJ5
          LCALL  TEMP_BJ3
          CLR   RELAY             	;點亮指示燈
          RET
 CHULI1:  MOV  DPTR,#BJ3
          LCALL  TEMP_BJ3
          SETB  RELAY               ;熄滅指示燈
          LCALL  BEEP_BL			;蜂鳴器響
          RET
 CHULI2:  MOV  DPTR,#BJ4
          LCALL  TEMP_BJ3
          SETB  RELAY               ;熄滅指示燈
          LCALL  BEEP_BL			;蜂鳴器響
          RET
;-----------------------------------------
TEMP_BJ3: MOV  A,#0CEH
          LCALL WCOM
          MOV  R1,#0
          MOV  R0,#2
BBJJ3:    MOV  A,R1
          MOVC A,@A+DPTR
          LCALL  WDATA
          INC R1
          DJNZ  R0,BBJJ3
          RET
BJ3:      DB  ">H"
BJ4:      DB  "<L"
BJ5:      DB  " !"
; 
;**************************** 顯示溫度標記子程序 ***************************
TEMP_BJ:  MOV  A,#0CBH
          LCALL WCOM
          MOV  DPTR,#BJ1  		;指針指到顯示消息
          MOV  R1,#0
          MOV  R0,#2
BBJJ1:    MOV  A,R1
          MOVC A,@A+DPTR
          LCALL  WDATA
          INC R1
          DJNZ  R0,BBJJ1
          RET
BJ1:      DB  00H,"C"

;******************************** 顯示正確信息子程序 ***************************
MENU_OK:  MOV  DPTR,#M_OK1  	;指針指到顯示消息
          MOV  A,#1          	;顯示在第一行
          LCALL  LCD_PRINT
          MOV  DPTR,#M_OK2  	;指針指到顯示消息
          MOV  A,#2          	;顯示在第一行
          LCALL  LCD_PRINT
          RET
M_OK1:    DB   "   DS18B20 OK   ",0
M_OK2:    DB   " TEMP:          ",0

;******************************** 顯示出錯信息子程序 ***************************
MENU_ERROR:MOV  DPTR,#M_ERROR1  ;指針指到顯示消息
          MOV  A,#1          	;顯示在第一行
          LCALL  LCD_PRINT
          MOV  DPTR,#M_ERROR2  	;指針指到顯示消息1
          MOV  A,#2          	;顯示在第一行
          LCALL  LCD_PRINT
          RET
M_ERROR1: DB   " DS18B20 ERROR  ",0
M_ERROR2: DB   " TEMP: ----     ",0

;****************************DS18B20復位子程序 *****************************
RST:  	SETB DQ
        NOP
        CLR DQ
        MOV R0,#6BH         ;主機發出延時復位低脈沖
        MOV R1,#04H
TSR1:   DJNZ R0,$
        MOV R0,#6BH
        DJNZ R1,TSR1
        SETB DQ        		;拉高數據線
        NOP
        NOP
        NOP
        MOV R0,#32H
TSR2:   JNB DQ,TSR3   		;等待DS18B20回應
        DJNZ R0,TSR2
        JMP TSR4             ; 延時
TSR3:   SETB FLAG1           ; 置1標志位,表示DS1820存在
        JMP TSR5
TSR4:   CLR FLAG1            ; 清0標志位,表示DS1820不存在
        JMP TSR7
TSR5:   MOV R0,#06BH
TSR6:   DJNZ R0,$            ; 時序要求延時一段時間
TSR7:   SETB DQ
        RET

;************************ DS18B20暫存器操作子程序 ***************************
RE_18B20:JB  FLAG1,RE_18B20A
        RET
RE_18B20A:
LCALL  RST
        MOV  A,#0CCH       		;跳過ROM匹配
        LCALL  WRITE
WR_SCRAPD:
        MOV  A,#4EH        		;寫暫器
        LCALL  WRITE
        MOV  A,TEMP_TH     		;TH(報警上限)
        LCALL  WRITE
        MOV  A,TEMP_TL     		;TL(報警下限)
        LCALL  WRITE
        MOV  A,#7FH        		;12位精度
        LCALL  WRITE
        RET

;************************ 復制暫存器子程序 *******************************
WRITE_E2:LCALL  RST
        MOV  A,#0CCH        	;跳過ROM匹配
        LCALL  WRITE
        MOV  A,#48H         	;把暫存器里的溫度報警值拷貝到EEROM
        LCALL  WRITE
        RET

;*********************** 重讀EEROM子程序 ********************************
READ_E2:LCALL  RST
        MOV  A,#0CCH        	;跳過ROM匹配
        LCALL  WRITE
        MOV  A,#0B8H        	;把EEROM里的溫度報警值拷貝回暫存器
        LCALL  WRITE
        RET

;************************ 將自定義字符寫入LCD的CGRAM中 *********************
STORE_DATA:
        MOV  A,#40H
        LCALL  WCOM
        MOV  R2,#08H
        MOV  DPTR,#D_DATA
        MOV  R3,#00H
S_DATA: MOV  A,R3
        MOVC  A,@A+DPTR
        LCALL  WDATA      		;寫入數據
        INC  R3
        DJNZ  R2,S_DATA
        RET
D_DATA: DB  0CH,12H,12H,0CH,00H,00H,00H,00H
;***********************  DS18B20數據寫入操作子程序 ************************
WRITE:  MOV R2,#8            	;一共8位數據
        CLR  C
WR1:    CLR DQ        			;開始寫入DS18B20總線要處于復位(低)狀態
        MOV R3,#07
        DJNZ R3,$            	;總線復位保持16微妙以上
        RRC A                	;把一個字節DATA 分成8個BIT環移給C
        MOV DQ,C      			;寫入一位
        MOV R3,#3CH
        DJNZ R3,$            	;等待100微妙
        SETB DQ       			;重新釋放總線
        NOP
        DJNZ R2,WR1          	;寫入下一位
        SETB DQ
        RET

;********************** DS18B20數據讀取操作子程序  **************************
READ:    MOV R4,#4          	;將溫度低位、高位、TH、TL從DS18B20中讀出
         MOV R1,#TEMPL        	;存入25H、26H、27H、28H單元
RE00:    MOV R2,#8
RE01:    CLR CY
         SETB DQ
         NOP
         NOP
         CLR DQ        			;讀前總線保持為低
         NOP
         NOP
         NOP
         SETB DQ       			;開始讀總線釋放
         MOV R3,#09           	;延時18微妙
         DJNZ R3,$
         MOV C,DQ      			;從DS18B20總線讀得一位
         MOV R3,#3CH
         DJNZ R3,$            	;等待100微妙

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人在线免费| 日韩三级免费观看| 国产成人在线免费观看| 亚洲国产中文字幕| 一二三区精品视频| 亚洲同性同志一二三专区| 国产精品久久777777| 中文字幕一区二| 国产精品麻豆视频| 亚洲欧美一区二区视频| 国产精品国产精品国产专区不蜜 | 国产嫩草影院久久久久| 国产日韩欧美精品一区| 精品国产亚洲在线| 国产精品福利一区| 中文字幕日本不卡| 亚洲制服欧美中文字幕中文字幕| 亚洲欧美另类小说| 亚洲大片在线观看| 另类小说色综合网站| 国产剧情av麻豆香蕉精品| 国产高清久久久久| www.欧美日韩国产在线| 色哟哟一区二区在线观看| 欧美在线视频你懂得| 91精品国产入口| 精品国产乱码久久久久久夜甘婷婷| 欧美精品一区二区三区久久久| 国产区在线观看成人精品 | 亚洲国产美国国产综合一区二区| 亚洲国产精品尤物yw在线观看| 日韩精品色哟哟| 国产乱码精品一品二品| 色94色欧美sute亚洲线路二| 欧美一级一区二区| 国产精品视频免费| 日韩高清不卡一区二区三区| 国产成人精品综合在线观看| 欧美性色黄大片| 亚洲精品在线免费播放| 亚洲精品日产精品乱码不卡| 免费观看成人av| 91丨porny丨在线| 日韩限制级电影在线观看| 中文字幕av一区二区三区| 亚洲va中文字幕| 国产+成+人+亚洲欧洲自线| 欧美日韩国产综合久久 | 色婷婷综合久久久久中文| 日韩三级精品电影久久久 | 国产亚洲精品超碰| 天天操天天综合网| 丁香一区二区三区| 精品日韩在线观看| 亚洲一区二区高清| 99在线精品一区二区三区| 亚洲精品在线三区| 偷拍一区二区三区| 91免费观看国产| 欧美激情资源网| 毛片av一区二区| 91精品在线免费| 午夜精品免费在线| 欧美在线免费观看亚洲| 尤物视频一区二区| 91丨porny丨户外露出| 国产亚洲女人久久久久毛片| 麻豆国产91在线播放| 欧美吻胸吃奶大尺度电影| 国产精品美女久久久久aⅴ| 国产精一品亚洲二区在线视频| 欧美精品日日鲁夜夜添| 亚洲亚洲精品在线观看| 91视频国产资源| 亚洲精品视频在线看| 成人精品高清在线| 国产精品国产三级国产普通话99| 国产精品一卡二| 久久精品一区二区三区不卡| 日本欧美加勒比视频| 日韩精品最新网址| 久久精品国产免费| 精品国产一区二区三区久久影院| 日韩电影免费在线观看网站| 91精品国产综合久久久久| 日韩经典中文字幕一区| 欧美日韩国产精选| 男女视频一区二区| 26uuu精品一区二区| 国产一区二区影院| 国产精品麻豆一区二区| 色综合色综合色综合色综合色综合| 1024成人网色www| 91国偷自产一区二区三区成为亚洲经典 | 成人黄色在线网站| 亚洲视频在线观看三级| 91在线码无精品| 亚洲综合一区二区三区| 欧美三电影在线| 日韩高清一级片| 国产清纯美女被跳蛋高潮一区二区久久w| 懂色av一区二区在线播放| 亚洲美女少妇撒尿| 91精品国产综合久久国产大片 | 精品国产伦一区二区三区观看方式 | 日本欧美一区二区三区| 91精品福利在线一区二区三区| 久久国产剧场电影| 国产精品国产精品国产专区不蜜| 欧美性猛片aaaaaaa做受| 美日韩一区二区| 国产精品―色哟哟| 91麻豆精品国产自产在线观看一区 | 青草国产精品久久久久久| 精品久久久久久久一区二区蜜臀| 国产99久久久久| 亚洲一区二区偷拍精品| 2017欧美狠狠色| 在线观看成人小视频| 国产一区二区免费视频| 一区二区三区在线免费| 久久久噜噜噜久噜久久综合| 欧美日韩国产成人在线免费| 福利一区二区在线| 日本不卡一区二区三区 | 午夜免费欧美电影| 久久久久国产一区二区三区四区| 在线一区二区三区做爰视频网站| 蜜臀av在线播放一区二区三区| 国产精品萝li| 26uuu久久综合| 欧美丰满少妇xxxbbb| 97久久人人超碰| 国产成人免费在线观看不卡| 日韩高清不卡在线| 亚洲欧美经典视频| 久久精品人人做人人综合 | 中文字幕欧美区| 日韩视频免费直播| 欧美制服丝袜第一页| 国产不卡在线一区| 日韩—二三区免费观看av| 亚洲裸体在线观看| 欧美国产国产综合| 国产亚洲欧美激情| 欧美成人video| 制服.丝袜.亚洲.中文.综合| 在线一区二区三区| 色综合久久综合网欧美综合网| 国产福利一区在线观看| 精一区二区三区| 免费xxxx性欧美18vr| 爽好久久久欧美精品| 日精品一区二区| 日本美女一区二区三区视频| 亚洲国产cao| 亚洲综合精品久久| 一区二区三区日韩欧美| 亚洲乱码中文字幕| 亚洲人快播电影网| 亚洲乱码国产乱码精品精的特点| 国产精品久久久一区麻豆最新章节| 久久久久久久久久看片| 久久人人爽人人爽| 国产午夜亚洲精品午夜鲁丝片| 2020国产精品自拍| 久久久久久久久久久久久久久99 | 91同城在线观看| 欧美专区亚洲专区| 欧美日韩你懂的| 日韩精品一区国产麻豆| 久久精品一区二区三区av| 欧美国产欧美亚州国产日韩mv天天看完整| 国产欧美一区二区在线观看| 亚洲欧美怡红院| 午夜不卡av在线| 国产呦精品一区二区三区网站| 国产69精品久久久久777| 91国偷自产一区二区三区成为亚洲经典 | 久久久久99精品国产片| 欧美激情一区二区三区四区| 亚洲欧洲无码一区二区三区| 伊人婷婷欧美激情| 美女爽到高潮91| 99国产精品一区| 91精品国产综合久久福利 | 一本色道久久综合亚洲aⅴ蜜桃| 欧美亚洲国产一卡| 精品成人一区二区| 亚洲女人****多毛耸耸8| 日本中文字幕一区二区有限公司| 久久黄色级2电影| 91网站最新地址| 精品少妇一区二区| 一级日本不卡的影视| 国产福利91精品| 欧美一级黄色大片| 亚洲女人小视频在线观看| 国产美女精品人人做人人爽| 欧美在线观看你懂的|