📄 sram.asm
字号:
;单片机最小应用系统1的 P0口接SRAM的D0~D7口,
;单片机最小应用系统1的Q0~Q7口接SRAM的A0~A7口,
;单片机最小应用系统1的 P2口接SRAM的A8~A12口,
;单片机最小应用系统1的RD、WR、P2.7分别接6264的OE、WE、CS1,
;单片机最小应用系统1的RXD、TXD连接到串行静态显示实验模块的DIN、CLK.
ORG 0000H
MAIN:
MOV SP,#60H
MOV A,#00H
MOV DPTR,#0000H
MOV R0,#00H
LOOP:
ADD A,#1
DA A
ANL A,#0FH ;总在0到9之间
MOVX @DPTR,A
INC DPTR
DJNZ R0,LOOP ;载入256个
DISP: ;读出送到静态串行显示口
MOV R3,#00H ;读数据的个数
MOV DPTR,#0000H
GET_LOOP:
MOV R0,#30H ;存放的首地址
MOV R1,#31H
MOV R2,#5 ;5个显示的数据
SHIFT_LOOP: ;推入到显示存储区,向后移动
MOV A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,SHIFT_LOOP
MOVX A,@DPTR
MOV @R0,A ;写到最后一个位置
LCALL SHOW ;显示在数码管上
LCALL DELAY
INC DPTR
DJNZ R3,GET_LOOP
LJMP DISP
DELAY: ;延时子程序,大约1秒
MOV R4,#05
MOV R5,#0
MOV R6,#0
DELAYLOOP:
DJNZ R6,DELAYLOOP ;原地循环
DJNZ R5,DELAYLOOP
DJNZ R4,DELAYLOOP
RET
SHOW:
PUSH DPH
PUSH DPL
MOV SCON,#00H ;设定串行工作模式为0
MOV R1,#05H ;数码管显示的位数6
MOV R0,#30H ;字型码首地址偏移量
MOV DPTR,#TABLE
LOOPSHOW:
MOV A,@R0
MOVC A,@A+DPTR ;取出字型码
MOV SBUF,A ;发送
WAIT:
JNB TI,WAIT ;等待一帧发送完毕
CLR TI
INC R0 ;指向下一字型码
DJNZ R1,LOOPSHOW
POP DPL
POP DPH
RET
TABLE:
DB 0FCH, 060H, 0DAH, 0F2H, 066H ;0,1,2,3,4
DB 0B6H, 0BEH, 0E0H, 0FEH, 0F6H ;5, 6,7,8,9
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -