发布时间 : 星期五 文章基于单片机饮水机智能控制系统 - 图文更新完毕开始阅读7da10cf2e518964bce847c07
CLR C;
WR1: CLR DQ
MOV R3,#6 DJNZ R3,$
RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RET
READ_18200:
MOV R4,#2;
MOV R1,#29H;
28H(TEMPER_H) RE00: MOV R2,#8; RE01: CLR C; SETB DQ
NOP NOP CLR DQ NOP NOP NOP SETB
DQ MOV R3,#9 RE10: DJNZ
R3,RE10
MOV C,DQ MOV R3,#23
RE20: DJNZ
R3,RE20 RRC A DJNZ R2,RE01
MOV @R1,A
DEC R1
32
DJNZ R4,RE00
RET; 上面的这些都是温度采集的! MOV B,#10; 10进制/10=10进制 DIV AB; MOV A_BIT,A; 十位在A MOV B_BIT,B; 个位在B DISPLAY: MOV A,29H;
MOV DPTR,#NUMTAB;
MOV R0,#1
DPL1: MOV R1,#25; DPLOP: MOV A,B_BIT; MOVC
A,@A+DPTR;
MOV P0,A; CLR P2.2; ACALL D1MS; SETB P2.2
MOV A,A_BIT; MOVC
A,@A+DPTR; MOV P0,A; CLR P2.1; ACALL D1MS; SETB P2.1
MOV P0,#0FFH
DJNZ R1,DPLOP; 100
DJNZ
R0,DPL1; 4 RET; DISPLAY1: MOV A,A1; MOV B,#10; 10 DIV AB; MOV A_BIT,A; MOV B_BIT,B; MOV DPTR,#NUMTAB;
MOV R0,#1
DPL11: MOV R1,#25; DPLOP1: MOV A,B_BIT;
MOVC
A,@A+DPTR;
显示1000次 取个位数 送出个位的7段代码 开个位显示 显示1MS 取十位数
查十位数的7段代码
送出十位的7段代码 开十位显示 显示1MS 次没完循环 个100次没完循环
上面这段显示实时温度 将29H中的十六进制数转换成10进制进制/10=10进制 显示子程序 十位在A 个位在B
指定查表启始地址 显示1000次 取个位数 查个位数的7段代码
33
MOV P0,A; 送出个位的7段代码 CLR P2.2; 开个位显示 ACALL D1MS; 显示1MS SETB MOVC
P2.2
A,@A+DPTR; 查十位数的7段代码
MOV A,A_BIT; 取十位数
MOV P0,A; 送出十位的7段代码 CLR P2.1; 开十位显示 ACALL D1MS; 显示1MS SETB DJNZ DJNZ
P2.1
R1,DPLOP1; 100次没完循环 R0,DPL11; 4个100次没完循环
MOV P0,#0FFH
RET; 上面这段显示设置温度
R7,$
D1MS: MOV R7,#50 ; 1MS延时
DJNZ RET
DELAY10: MOV R6,#20 ; 10MS延时 D3: MOV R5,#255
DJNZ DJNZ RET
R5,$ R6,D3
DELAY125: MOV R6,#255; 125MS延时 D1: MOV R5,#255
DJNZ DJNZ RET
R5,$ R6,D1
DELAY1S: MOV R7,#8; 1S延时 D2: LCALL DELAY125
DJNZ RET
R7,D2
DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H DB 80H,90H,88H,83H
DB 0C6H,0A1H,86H,8EH; 数码管的具体值
NUMTAB:
END
34
附录2系统总体电路图
35