MOV R2,#04 ;初始显示位置(最高位) MOV P1,#08H ;取1B
SDLAY: MOV A,@R0 ;备份 MOV B,A ;截取字节高位 ANL A,#0F0H ;装入P1.4—P1.7 ORL P1,A ;准备显示右一位 INC P1 ;取备份 MOV A,B ;截取字节低位 SWAP A ; ANL A,#0F0H
ORL P1,A ;装入并显示 INC P1 ;准备显示下一字节 INC R0
DJNZ R2,SDLAY ;4B未显示完循环 RET ;显示完成 END
START:MOV DPTR,#7FFFH MOV A,#00
LOOP :MOVX @DPTR,A
INC A
MOV R0,#data
;data为延时常数
DJNZ R0,$ ;延时,改变data可改变锯齿波周期T值 SJMP LOOP
37
例2:产生矩形波
START: MOV DPTR, #7FFFH
STEP: MOV A , #dataH ;置矩形波上限 MOVX @DPTR , A ;D/A转换
ACALL DELH ;调输出“1”时延时 MOV A , #00H ;置矩形波下限 MOVX @DPTR, A
ACALL DELL SJMP STEP 例3: 产生三角波
START: MOV DPTR, #7FFFH STEP1: MOV A, #00H STEP2: MOVX @DPTR, A INC A
CJNE A , #data , STEP2
STEP3: DEC A
MOVX @DPTR , A CJNE A , #01H , STEP3 AJMP STEP1
;调输出“0”时延时;重复执行 38
相关推荐: