📄 ex9-4.sdi
字号:
000B,,, DIN BIT P3.5 ;定义I/O口
000B,,, LOAD BIT P3.6
000B,,, CLK BIT P3.7
,,, ORG 0000H ;复位入口
0000,02 00 30,, LJMP MAIN
,,, ORG 0030H ;主程序起始地址
0030,75 81 60,MAIN,MAIN: MOV SP,#60H ;设置堆栈指针
0033,7F 0A,, MOV R7,#0AH ;亮度寄存器
0035,7D 07,, MOV R5,#07H ;亮度值
0037,12 00 6E,, LCALL DINPUT ;调用7219命令写入子程序
003A,7F 0B,, MOV R7,#0BH ;扫描界限寄存器
003C,7D 07,, MOV R5,#07H ;显示8位数字
003E,12 00 6E,, LCALL DINPUT ;调MAX7219命令写入子程序
0041,7F 09,, MOV R7,#09H ;译码方式寄存器
0043,7D FF,, MOV R5,#0FFH ;#FFH=7-0位均译为B码,#00=不译码
0045,12 00 6E,, LCALL DINPUT ;调MAX7219命令写入子程序
0048,7F 0C,, MOV R7,#0CH ;停机寄存器
004A,7D 01,, MOV R5,#01H ;正常工作
004C,12 00 6E,, LCALL DINPUT ;调MAX7219命令写入子程序
004F,75 30 FF,, MOV 30H,#0FFH ;30H-37H为显示缓冲区
0052,75 31 FF,, MOV 31H,#0FFH
0055,75 32 08,, MOV 32H,#08H ;显示..8051..
0058,75 33 00,, MOV 33H,#00H
005B,75 34 05,, MOV 34H,#05H
005E,75 35 01,, MOV 35H,#01H
0061,75 36 FF,, MOV 36H,#0FFH
0064,75 37 FF,, MOV 37H,#0FFH
0067,7F 30,, MOV R7,#30H
0069,12 00 8B,, LCALL DISPLY ;调MAX7219显示子程序
006C,80 FE,, SJMP $
006E,EF,DINPUT,DINPUT: MOV A,R7 ;7219命令写入子程序,传递来的第1个参数保存在R7中
006F,7A 08,, MOV R2,#08 ;作为Max7219控制寄存器的8位地址值
0071,33,LOOP1,LOOP1: RLC A ;A的D7位移至DIN,依次为D6~D0
0072,92 B5,, MOV DIN, C ;8位地址输入DIN
0074,C2 B7,, CLR CLK
0076,D2 B7,, SETB CLK
0078,DA F7,, DJNZ R2,LOOP1
007A,ED,, MOV A,R5 ;传递来的第2个参数保存在R5中
007B,7A 08,, MOV R2,#08 ;作为写入Max7219控制寄存器的8位命令数据值
007D,33,LOOP2,LOOP2: RLC A ;A的D7位移至P1.0,依次为D6~D0
007E,92 B5,, MOV DIN, C ;8位数据输入DIN
0080,C2 B7,, CLR CLK
0082,D2 B7,, SETB CLK
0084,DA F7,, DJNZ R2,LOOP2
0086,C2 B6,, CLR LOAD ;输出LOAD信号,上升沿装载寄存器数据
0088,D2 B6,, SETB LOAD
008A,22,, RET
008B,EF,DISPLY,DISPLY: MOV A,R7 ;7219显示子程序,R7的内容为7219显示缓冲区入口地址
008C,F8,, MOV R0,A ;R0指向显示缓冲区首地址
008D,79 01,, MOV R1,#01 ;R1指向8字节显示RAM首地址
008F,7B 08,, MOV R3,#08
0091,E6,LOOP3,LOOP3: MOV A,@R0 ;取出显示数据→R5
0092,FD,, MOV R5,A
0093,E9,, MOV A,R1 ;取出显示RAM地址→R7
0094,FF,, MOV R7,A
0095,12 00 6E,, LCALL DINPUT ;调MAX7219命令写入子程序
0098,08,, INC R0
0099,09,, INC R1
009A,DB F5,, DJNZ R3,LOOP3
009C,22,, RET
000E,,, END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -