📄 周.txt
字号:
ORG 0000H
LJMP START
CLEARMEMIO:MOV A,#0FFH ;复位
MOV P3,A
CLR A
MOV R0,#70H ;将70H-73H清零
MOV R2,#04H
LOOPMEM:MOV @R0,A
INC R0
DJNZ R2,LOOPMEM
MOV A,#0FFH ;将P0-P2口复位
MOV P0,A
MOV P1,A
MOV P2,A
RET
START:LCALL CLEARMEMIO ;主程序
MAIN:ACALL MOVD ;调用A/D采集数据
ACALL DAC0832 ;D/A转换
AJMP MAIN
NOP
NOP
NOP
LJMP START
;将采集来的数据转换为BCD码
DISPLAY:MOV R0,#73H
DISLOOP1:MOV A,@R0
MOV B,#100
DIV AB
MOV 70H,A ;百位存于70H
MOV A,#10
XCH A,B
DIV AB
MOV 71H,A ;十位存于71H
MOV 72H,B ;个位存于72H
MOV R2,#0FH
DISLOOP2:LCALL DISP
DJNZ R2,DISLOOP2 ; 如果显示时间还不够长可以改变这里以增长时间
LJMP MOVD
;动态点亮数码管
DISP:MOV A,#0FFH
MOV P0,A ;P0口复位
MOV P2,A ;P2口复位
PLAY:MOV R1,#70H
MOV R3,#0EFH ;位控码送至R3
MOV A,R3
LD0: MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
INC R1
MOV A,R3
JNB ACC.7,ENDOUT
RL A
MOV R3,A
AJMP LD0
ENDOUT:MOV 50H,#0FH ;通过改变这里可以改变保持一个数据显示时间的长短
DJNZ 50H,MM ;从而也就影响了采集数据的时间间隔
RET
MM:AJMP MOVD
;延时
DELAY: MOV R5,#10
DELAY1: MOV R6,#10;0
DELAY2: MOV R7,#20;48
DELAY3: DJNZ R7,DELAY3
DJNZ R6,DELAY2
DJNZ R5,DELAY1
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
;A/D采集数据
MOVD:MOV R0,#73H
MOV A,#00H
CLR P3.1
CLR P3.6
NOP
SETB P3.6
SETB P3.1
CLR P3.1
CLR P3.7
NOP
MOV P1,#07FH
MOV A,P1
SETB P3.7
SETB P3.1
;以下是将AD进来的00H~FFH转换为00H~64H 默认使用第0工作寄存器组
ZHUANHUAN: MOV B,#64H
MUL AB ;方法为A*64/FF
MOV R3,B
MOV R2,A ;A*64,积高8位送R3,低8位送R2
MOV B,#08H ;比较法求商比较次数送B
LOOP: CLR C ;CY清零
MOV A,R2 ;R2循环左移,低位补零,形成CY
RLC A
MOV R2,A
MOV A,R3 ;R3循环左移
RLC A
MOV R3,A
MOV PSW.5,C ;R3R2的最高位送F0
CLR C
SUBB A,#0FFH ;R3-0FFH
JB PSW.5,LOOP1 ;若够减,商1
JC LOOP2 ;若不够减,R3R2继续循环左移
LOOP1: MOV R3,A ;余数放在R3
INC R2 ;商放在R2
LOOP2: DJNZ B,LOOP ;若除法未完,则继续执行除法
CLR PSW.5 ;除法完成,F0清零
MOV B,#64H
MOV A,R2
MOV 73H,A
LCALL DISPLAY
RET
DAC0832:MOV A,#66H ;送键盘指令值
CJNE A,73H,SB ;与上一时刻温度作比较
MOV A,#7FH ;相等不作任何处理
MOV P1,A
CLR P3.0
NOP
CLR P3.6
AJMP MAIN
SB: JNC SB1 ;若高于原始值,加温
AJMP SB2 ;否则减温
SB1:MOV A,#0FFh
MOV P1,A
CLR P3.0
NOP
CLR P3.6
AJMP MAIN
SB2:MOV A,#00h
MOV P1,A
CLR P3.0
NOP
CLR P3.6
AJMP MAIN
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -