📄 testsys.asm
字号:
//#include <reg51.h>
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP Key_Int
ORG 000BH
AJMP T0_Int
ORG 0030H
MAIN:
MOV sp,#60H
SETB IE.0 //SETB EX0 ;外部中断,边沿触发
SETB IT0
SETB EA
MOV TMOD,#00000010B
MOV TH0,#0C2H
MOV TL0,#0C2H
SETB ET0
SETB EA
MOV DPTR,#0000H ;DPTR初始化
SETB P1.3
CLR P1.0
CLR P1.1
CLR P1.2
//ORL P1,11110000B ;P1.4~P1.7为输入
SETB P1.4
SETB P1.5
SETB P1.6
SETB P1.7
Here: SJMP Here
ORG 0100H
Key_Int:
JNB P1.4,XX ; ;;;;; ;低电平有效
// JNB P1.5,YY
JNB P1.6,ZZ
XX: SETB B.0 ;正常存储标志
PUSH DPH ;启动AD转换
PUSH DPL
// PUSH A
MOV DPTR,#7FF8H
MOVX @DPTR,A
SJMP YY
ZZ: SETB B.1
YY: SETB TR0
RETI
ORG 0200H
T0_Int:
CLR EX0
JB B.0,normalR
JB B.1,play
SETB EX0
RETI
normalR:
// SETB P1.3
// NOP
// ORL P1,R0 ;片选外扩存储器 *******************************
MOV DPTR,#7FF8H ;读上次数据
MOVX A,@DPTR
// PUSH A
MOVX @DPTR,A ;启动本次A/D转换
POP DPL
POP DPH
MOVX @DPTR,A ; 写上数据
INC DPTR
PUSH DPH
PUSH DPL
MOV A,DPH
// CJNE R0,#08H,GG
// CLR TR0
// CLR B.0 //
//RET
CJNE A,#7FH,MM
MOV A,DPL
CJNE A,#0FFH,MM
// MOV DPTR,#0000H
//INC R0
//CJNE R0,#08H,MM
CLR TR0
CLR B.0
POP DPL
POP DPH //
MM: RET
play:
// ORL P1,R0 ;片选外扩存储器 ***********************************
MOV DPTR ,#0000H
MOVX A,@DPTR
//MOV B,A
INC DPTR
PUSH DPH
PUSH DPL
// MOV A,B
MOV DPTR,#7FFFH //DAC0832的地址,P2.7
MOVX @DPTR,A
POP DPL
POP DPH
// MOVX A,@DPTR
// MOV B,A
// INC DPTR
MOV A,DPH
// CJNE R0,#08H,XX
// CLR TR0
// CLR B.1
// RET
CJNE A,#7FH,GG
MOV A,DPL
CJNE A,#0FFH,GG
MOV DPTR,#0000H
// INC R0
// CJNE R0,#08H,YY
CLR TR0
CLR B.1
GG: RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -