方波:
DA_CS EQU 8700H
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV IE,#00H
MOV PSW,#00H
MOV SP,#60H
MOV DPTR,#DA_CS
M1:MOV A,#00H
MOVX @DPTR,A
MOV R2,#01H
LCALL DE
MOV A,#0FFH
MOVX @DPTR,A
MOV R2,#01H
LCALL DE
SJMP M1
DE: PUSH 02H
LP1:PUSH 02H
LP2:PUSH 02H
LP3:DJNZ R2,LP3
POP 02H
DJNZ R2,LP2
POP 02H
DJNZ R2,LP1
POP 02H
DJNZ R2,DE
RET
END
锯齿波:
ORG 0000H
LJMP START
ORG 1000H
START: MOV DPTR,#8700H
MOV A,#00H
SHUCHU:MOVX @DPTR,A
MOV R2,#01H
ACALL DELAY
INC A
SJMP SHUCHU
PUSH 02H
PUSH 02H
PUSH 02H
DELAY:
LP1:
LP2:
LP3:
DJNZ R2,LP3
POP 02H
DJNZ R2,LP2
POP 02H
DJNZ R2,LP1
POP 02H
DJNZ R2,DELAY
RET
三角波:
实验 8-3
;
;输出三角波
;延时常数=‘#01H’ 三角波周期=15mS
;
;用示波器观察 DAC-OUT
;
DA_CS EQU 8700H
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV IE,#00H
MOV PSW,#00H
MOV SP,#60H
MOV DPTR,#DA_CS
MOV A,#00H
;从 0 开始上升
M1: MOVX @DPTR,A
;0ah
;01H
MOV R2,#0ah
LCALL DELAY
INC A
CJNE A,#0FFH,M1 ;判断是否到顶
;加 1 上升
;
0ah
;01H
;减 1 下降
;通用延时子程序
M2: MOVX @DPTR,A
MOV R2,#0ah
LCALL DELAY
DEC A
CJNE A,#00H,M2
SJMP M1
;
DELAY: PUSH 02H
PUSH 02H
LP1:
PUSH 02H
LP2:
LP3:
DJNZ R2,LP3
POP 02H
DJNZ R2,LP2
POP 02H
DJNZ R2,LP1
POP 02H
DJNZ R2,DELAY
RET
END
实验 9.1
AD_CS EQU 9000H
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN: MOV IE,#00H
MOV PSW,#00H
MOV SP,#60H
MOV DPTR,#AD_CS
MOV P1,#00H
MOV A,#00H
M1: MOVX @DPTR,A
MOV R2,#20H
LCALL DELAY
MOVX A,@DPTR
MOV 50H,A
MOV P1,A
REP: SJMP M1
;
DELAY: PUSH 02H
PUSH 02H
LP1:
PUSH 02H
LP2:
LP3:
DJNZ R2,LP3
POP 02H
DJNZ R2,LP2
POP 02H
DJNZ R2,LP1
POP 02H
DJNZ R2,DELAY
RET
END
实验 9.2
EQU 9000H
AD_CS
ZWMADDR EQU 8002H
ZXMADDR EQU 8004H
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN: MOV IE,#00H
MOV PSW,#00H
MOV SP,#60H
M1: MOV DPTR,#AD_CS
MOV A,#00H
MOVX @DPTR,A
LCALL DIS
MOV DPTR,#AD_CS
MOVX A,@DPTR
MOV 50H,A
MOV P1,A
REP: SJMP M1
;
;显示子程序
DIS: MOV DPTR,#CHAR
MOV A,50H
ANL A,#0FH
MOVC A,@A+DPTR
MOV DPTR,#ZXMADDR
MOVX @DPTR,A
MOV A,#01H
MOV DPTR,#ZWMADDR
MOVX @DPTR,A
MOV R2,#5
LCALL DELAY
;
MOV A,50H
ANL A,#0F0H
SWAP A
MOV DPTR,#CHAR
MOVC A,@A+DPTR
MOV DPTR,#ZXMADDR
MOVX @DPTR,A
MOV A,#02H
MOV DPTR,#ZWMADDR
MOVX @DPTR,A
MOV R2,#5
LCALL DELAY
RET
;送出字形码
;右边第二位显示
;送出字位码
CHAR:
DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H
;字形码表
DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
;原码
;
;通用延时子程序
DELAY: PUSH 02H
PUSH 02H
LP1:
PUSH 02H
LP2:
LP3:
DJNZ R2,LP3
POP 02H
DJNZ R2,LP2
POP 02H
DJNZ R2,LP1
POP 02H
DJNZ R2,DELAY
RET
END
实验 9.22
EQU 9000H
AD_CS
ZWMADDR EQU 8002H ;字位码锁存器地址
ZXMADDR EQU 8004H ;字形码锁存器地址
ORG 0000H
SJMP MAIN
ORG 0030H
;选择 IN0 通道
; 启动 AD
;以显示子程序进行延时
;读取 AD 结果
;数码管与 LED 同时显示
MAIN: MOV IE,#00H
MOV PSW,#00H
MOV SP,#60H
M1: MOV DPTR,#AD_CS
MOV A,#00H
MOVX @DPTR,A
LCALL DIS
MOV DPTR,#AD_CS
MOVX A,@DPTR
MOV 50H,A
MOV P1,A
REP: SJMP M1
;
;显示子程序
DIS: MOV A,50H
MOV B,#100
DIV AB
MOV 51H,A
MOV A,B
MOV B,#10
DIV AB
MOV 52H,A
MOV 53H,B
;
MOV DPTR,#CHAR
MOV A,51H
MOVC A,@A+DPTR ;取出字型码
MOV DPTR,#ZXMADDR
MOVX @DPTR,A
MOV A,#04H
MOV DPTR,#ZWMADDR
MOVX @DPTR,A
MOV R2,#5
LCALL DELAY
;送出字位码
;送出字形码
;右边第一位显示
MOV A,52H
MOV DPTR,#CHAR
MOVC A,@A+DPTR ;取出字型码
MOV DPTR,#ZXMADDR
MOVX @DPTR,A
MOV A,#02H
MOV DPTR,#ZWMADDR
MOVX @DPTR,A
MOV R2,#5
LCALL DELAY
;送出字位码
;送出字形码
;右边第二位显示
;
;
MOV A,53H
MOV DPTR,#CHAR
MOVC A,@A+DPTR ;取出字型码
MOV DPTR,#ZXMADDR
MOVX @DPTR,A
MOV A,#01H
MOV DPTR,#ZWMADDR
MOVX @DPTR,A
MOV R2,#5
LCALL DELAY
RET
;送出字位码
;送出字形码
;右边第二位显示
CHAR: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H ;字形码表
DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
;原码
;通用延时子程序
;
DELAY: PUSH 02H
PUSH 02H
LP1:
PUSH 02H
LP2:
LP3:
DJNZ R2,LP3
POP 02H
DJNZ R2,LP2
POP 02H
DJNZ R2,LP1
POP 02H
DJNZ R2,DELAY
RET
END