求助 谁能帮我画个流程图
小妹对流程图实在是没辙,在这只好求助下各位的帮忙啦。ADDRESS EQU 0FFFH ;ADC0809选通地址,P2为选通位,P26、P25、P24为选择通道位
T_DF EQU 33H ;温度的小数部分
T_INTEGER EQU 32H ;温度的整数部分
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0 ;外部中断0入口
ORG 0030H
MAIN: MOV SP,#60H ;设置堆栈指针
MOV IE,#81H ;允许INT0中断
MOV TCON,#01H ;脉冲触发
LOOP: MOV DPTR,#ADDRESS ;设置启动ADC0809地址
MOVX @DPTR,A ;启动ADC0809,A可以为任意值
LCALL DISPLAY
AJMP LOOP ;循环启动
INT0: MOV DPTR,#ADDRESS ;设置启动ADC0809地址
MOVX A,@DPTR ;读取转换值
MOV B,#5
DIV AB ;由于ADC0809的转换关系 ,
故可以将转换取得值除5,即为温度值
MOV T_INTEGER,A ;整数部分存T_INTEGER
MOV T_DF, B
RETI
;---------------------------显示温度子程序----------------------------
DISPLAY:MOV R1,#100
DISP1: MOV A,T_INTEGER ;显示整数部分
MOV R3,#0FEH
DISP2: MOV B,#10
DIV AB
MOV R2,A ;高位送R2暂存
MOV P2,R3 ;送字位
MOV A,R2 ;字型R2送A
MOV DPTR,#TAB ;表首地址送DPTR
MOVC A,@A+DPTR ;查表
ORL A, #80H
MOV P0,A ;送字型
LCALL D1MS ;延时
MOV P0,#0FFH ;关闭字型显示
MOV R2,B ;低位送R2暂存
MOV A, R3 ;字位送A
RL A ;字位左移一位(不带进位),根据原理图可知下一位的字位口
MOV R3, A ;暂存字位于R3
MOV P2,R3 ;送字位
MOV A,R2 ;字型R2送A
MOV DPTR,#TAB ;表首地址送DPTR
MOVC A,@A+DPTR ;查表
MOV P0,A ;送字型
LCALL D1MS ;延时
MOV P0,#0FFH ;关闭字型显示
MOV A,T_DF ;显示小数部分
MOV R4, A ;暂存R4
MOV A, R3 ;见上面
RL A
MOV R3, A
MOV P2, R3 ;送字位
MOV A,R4 ;字型R4送A
MOV DPTR,#TAB ;表首地址送DPTR
MOVC A,@A+DPTR ;查表
MOV P0,A ;送字型
LCALL D1MS ;延时
DJNZ R1,DISP1
RET
;-------------------------1mS延时(按12MHZ算)--------------------------
D1MS: MOV R7,#250
LOOP0: NOP
NOP
DJNZ R7,LOOP0
RET
;-------------------------共阳数码管对应字型表-------------------------
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;段码表
; 0 1 2 3 4 5 6 7 对应内容
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
; 8 9 A B C D E F