📄 wxramb.asm
字号:
;参考程序A:WXRAMb.ASM程序访问片上4KRAM,先从设定地址写入256个数据,再读出进
;行比较,看是否正确,若不正确蜂鸣器响一声
$INCLUDE (C8051F020.inc)
BELL EQU P3^5; 蜂鸣器控制位
MOV WDTCN ,#0deH; 关闭看们狗
MOV WDTCN ,#0adH;
MOV EMI0CF ,#20H ;只用内部数据存储器,选择地址/数据复用方式,
;ALE高/低脉宽占1个SYSCLK周期
MOV EMI0TC ,#6dH ; 地址建立/保持时间占1个SYSCLK周期,/WR和/RD
;占12个SYSCLK周期
MOV P3MDOUT ,#20H; 使能P3.5推挽输出
MOV XBR2 , #40H; 使能交叉开关和弱上拉
MIAN : SETB BELL ;蜂鸣器不叫
MOV R5,#0 ;连续写入256个数据
MOV R0,#0 ;写入数据从0开始
MOV DPTR,#0 ;写入地址从0开始
WRITE: MOV A,R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R5,WRITE
MOV R5,#0 ; ;连续读出256个数据
MOV R0,#0; 读出的数据要和R0的内容比较
MOV DPTR,#0 ; 地址指针DPTR
READ: MOV B,R0
MOVX A,@DPTR
CJNE A,B,ERR ;读出,比较
INC R0
INC DPTR
DJNZ R5,READ
AJMP $
ERR: CLR BELL ;蜂鸣器叫
ACALL DELY
SETB BELL
AJMP $
DELY: ;延时子程序
MOV R7,#0FFH
SS: MOV R6,#0FFH
DJNZ R6,$
DJNZ R7,SS
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -