欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
上下限溫度控制器 匯編源碼
[打印本頁]
作者:
趙建春
時間:
2015-5-24 10:55
標題:
上下限溫度控制器 匯編源碼
完整代碼下載:
程序.rar
(15.65 KB, 下載次數: 81)
2015-5-24 10:54 上傳
點擊文件名下載附件
程序
下載積分: 黑幣 -5
單片機匯編源程序:
;溫度上下限自由設定,P3.5設置溫度上限,P3.6設置溫度下限,P3.7為溫度增加鍵,每按一次溫度加一度。
;當按P3.5時,數碼管顯示H00;當按P3.6時,數碼管顯示L00,設置溫度范圍為整數,不含小數。
ORG 0000H
TEMPER_L EQU 29H
TEMPER_H EQU 28H
FLAG1 EQU 38H;是否檢測到DS18B20標志位
bwei equ 22h
A_BIT EQU 20H ;數碼管個位數存放內存位置
B_BIT EQU 21H ;數碼管十位數存放內存位置
XS EQU 30H
MOV A,#00H
MOV P2,A
MOV R5,#01H
MAIN:LCALL GET_TEMPER;調用讀溫度子程序
MOV A,29H
MOV B,A
CLR C
RLC A
CLR C
RLC A
CLR C
RLC A
CLR C
RLC A
SWAP A
MOV 31H,A
MOV A,B
MOV C,40H;將28H中的最低位移入C
RRC A
MOV C,41H
RRC A
MOV C,42H
RRC A
MOV C,43H
RRC A
MOV 29H,A
LCALL DISPLAY;調用數碼管顯示子程序
AJMP MAIN; 這是DS18B20復位初始化子程序
INIT_1820:SETB P1.0
NOP
CLR P1.0;主機發出延時537微秒的復位低脈沖
MOV R1,#3
TSR1:MOV R0,#107
DJNZ R0,$
DJNZ R1,TSR1
SETB P1.0;然后拉高數據線
NOP
NOP
NOP
MOV R0,#25H
TSR2:JNB P1.0,TSR3;等待DS18B20回應
DJNZ R0,TSR2
LJMP TSR4 ; 延時
TSR3:SETB FLAG1 ; 置標志位,表示DS1820存在
LJMP TSR5
TSR4:CLR FLAG1 ; 清標志位,表示DS1820不存在
LJMP TSR7
TSR5:MOV R0,#117
TSR6:DJNZ R0,TSR6 ; 時序要求延時一段時間
TSR7:SETB P1.0
RET; 讀出轉換后的溫度值
GET_TEMPER:SETB P1.0
LCALL INIT_1820;先復位DS18B20
JB FLAG1,TSS2
RET ; 判斷DS1820是否存在?若DS18B20不存在則返回
TSS2:MOV A,#0CCH ; 跳過ROM匹配
LCALL WRITE_1820
MOV A,#44H ; 發出溫度轉換命令
LCALL WRITE_1820;這里通過調用顯示子程序實現延時一段時間,等待AD轉換結束,12位的話750微秒
LCALL DISPLAY
LCALL INIT_1820;準備讀溫度前先復位
MOV A,#0CCH ; 跳過ROM匹配
LCALL WRITE_1820
MOV A,#0BEH ; 發出讀溫度命令
LCALL WRITE_1820
LCALL READ_18200; 將讀出的溫度數據保存到35H/36H
RET;寫DS18B20的子程序(有具體的時序要求)
WRITE_1820:MOV R2,#8;一共8位數據
CLR C
WR1:CLR P1.0
MOV R3,#6
DJNZ R3,$
RRC A
MOV P1.0,C
MOV R3,#23
DJNZ R3,$
SETB P1.0
NOP
DJNZ R2,WR1
RET; 讀DS18B20的程序,從DS18B20中讀出兩個字節的溫度數據
READ_18200:MOV R4,#2 ; 將溫度高位和低位從DS18B20中讀出
MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)
RE00:MOV R2,#8;數據一共有8位
RE01:CLR C
SETB P1.0
NOP
NOP
CLR P1.0
NOP
NOP
NOP
SETB P1.0
MOV R3,#9
RE10: DJNZ R3,RE10
MOV C,P1.0
MOV R3,#23
RE20: DJNZ R3,RE20
RRC A
DJNZ R2,RE01
MOV @R1,A
DEC R1
DJNZ R4,RE00
RET
DISPLAY:
MOV A,29H;將29H中的十六進制數轉換成10進制
MOV R3,A
CLR C
SUBB A,50H;溫度上限
JNB CY, T3
SETB P1.2;風扇繼電器關
SETB P2.5;報警關
MOV A,R3
CLR C
SUBB A,60H;溫度下限
JB CY, T2
SETB P1.1;加熱繼電器關
SETB P2.5;報警關
SJMP XIANSHI
T2:
CLR P1.1;加熱繼電器開
CLR P2.5;報警開
LJMP XIANSHI
T3:
CLR P1.2;風扇繼電器開
CLR P2.5;報警開
XIANSHI:
LCALL SETT
DISP:
MOV A,R3
MOV B,#100 ;10進制/10=10進制
DIV AB
mov bwei,a
mov a,b
mov b,#10
div ab
MOV B_BIT,A ;十位在A
MOV A_BIT,B ;個位在B
MOV R0,#4
CLR C;多加的
DPL1: MOV R1,#250 ;顯示1000次
DPLOP:
MOV DPTR,#NUMTAB
MOV A,bwei
MOVC A,@A+DPTR ;查通道的7段代碼
MOV P0,A ;送出十位的7段代碼
CLR P2.3 ;開通道顯示
ACALL D1MS ;顯示1MS
SETB P2.3
MOV DPTR,#NUMTAB1
MOV A,A_BIT ;取個位數
MOVC A,@A+DPTR ;查個位數的7段代碼
MOV P0,A ;送出個位的7段代碼
CLR P2.1 ;開個位顯示
ACALL D1MS ;顯示1MS
SETB P2.1
MOV DPTR,#NUMTAB
MOV A,B_BIT ;取十位數
MOVC A,@A+DPTR ;查十位數的7段代碼
MOV P0,A ;送出十位的7段代碼
CLR P2.2 ;開十位顯示
ACALL D1MS ;顯示1MS
SETB P2.2
JC XSW;多加的
MOV A,31H
MOV B,#160
DIV AB
MOV XS,B
XSW:MOV A,XS
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
ACALL D1MS
SETB P2.0
SETB C;多加的
DJNZ R1,DPLOP ;250次沒完循環
DJNZ R0,DPL1 ;4個250次沒完循環
RET;1MS延時(按12MHZ算)
D1MS: MOV R7,#80
DJNZ R7,$
RET
D10MS: MOV R6,#20
LOOP: MOV R7,#250
DJNZ R7,$
DJNZ R6,LOOP
RET
D5MS: MOV R6,#10
LOOP1: MOV R7,#250
DJNZ R7,$
DJNZ R6,LOOP1
RET
NUMTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,7FH,7FH,7FH,7FH,7FH,7FH
NUMTAB1: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH
SETT:
TH: JNB P3.6,GS
JNB P3.5,GSU
LJMP DISP
GS: LCALL D10MS
JB P3.6,TH
SJMP BIAN3
GSU: LCALL D10MS
JB P3.5,TH
SJMP BIAN
BIAN3: MOV R1,#00
BIAN1: MOV P0,#38H
CLR P2.2
SETB P2.0
SETB P2.1
LCALL D5MS
MOV A,R1
MOV B,#10
DIV AB
MOV DPTR,#NUMTAB
MOVC A,@A+DPTR
MOV P0,A
CLR P2.1
SETB P2.0
SETB P2.2
LCALL D5MS
MOV A,B
MOV DPTR,#NUMTAB
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
SETB P2.1
SETB P2.2
LCALL D5MS
MOV 60H,R1
JB P3.7,BIAN1
JNB P3.7,$
INC R1
SJMP BIAN1
BIAN: MOV R0,#00
BIAN2: MOV P0,#76H
CLR P2.2
SETB P2.0
SETB P2.1
LCALL D5MS
MOV A,R0
MOV B,#10
DIV AB
MOV DPTR,#NUMTAB
MOVC A,@A+DPTR
MOV P0,A
CLR P2.1
SETB P2.0
SETB P2.2
LCALL D5MS
MOV A,B
MOV DPTR,#NUMTAB
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
SETB P2.1
SETB P2.2
LCALL D5MS
MOV 50H,R0
JB P3.7,BIAN2
JNB P3.7,$
INC R0
SJMP BIAN2
RET
END
復制代碼
作者:
南天白云
時間:
2015-5-24 19:11
咋有是匯編,也不錯學習一下
作者:
胡小艷
時間:
2017-1-11 11:02
謝謝啦,好資料,
51黑有你更精彩!!!
作者:
nongqsong
時間:
2017-1-12 09:29
請問版主,昨天在這個帖子里無意中點了“程序下載”窗口,沒有下載程序。我的黒幣怎么被扣了?既然被扣了之后想補下也下不了,或者還是被扣黒幣。我覺得這樣不合理。
作者:
nongqsong
時間:
2017-1-15 16:47
nongqsong 發表于 2017-1-12 09:29
請問版主,昨天在這個帖子里無意中點了“程序下載”窗口,沒有下載程序。我的黒幣怎么被扣了?既然被扣了之 ...
謝謝版主!
作者:
ztrdiy
時間:
2017-1-17 14:35
匯編有的玩了,謝謝分享!
作者:
17857021287
時間:
2018-6-4 10:27
為什么我在里面找不到程序呢?
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1