COLUMN REG P1 ;行
ROW REG P2 ;列
SCANCODE EQU 10000000B ;扫瞄码
SPEED EQU 4 ;1s延迟
S_TIME EQU -2500 ;2.5ms扫瞄时间
ORG 0 ;程序从0位址开始
JMP START ;跳至START
ORG BH ;TIMER0中断向量
JMP TIMER0 ;跳至TIMER0中断副程序
;==============================================================
START: MOV IE, #10000010B ;设定TIMER0中断
MOV TMOD, #1 ;设定TIMER0为MODE 1
MOV SP, #60H ;移开堆叠指标
SETB RS0 ;切换到RB1
MOV R1, #20H ;显示记忆体起始位置
MOV R2, #8 ;扫瞄8行
MOV R3, #SCANCODE ;载入扫瞄码
CLR RS0 ;切换回RB0
MOV TH0, #>S_TIME ;设定每行扫瞄时间
MOV TL0, #<S_TIME ;设定每行扫瞄时间
SETB TR0 ;启动TIMER0
MOV DPTR, #TABLE ;将资料指标指向TABLE位置
MOV 41H, #4 ;4次载入字型
MOV 40H, #0 ;间距
MOV R0, #30H ;第一组字型位置
MOV R1, #40H ;第二组字型位置
;==============================================================
LOOP: CALL LOADING ;载入两个字型
MOV R4, #8 ;上移8次
NEXT: CALL DELAY ;稍等一下
CALL ROTATE ;资料上移
DJNZ R4, NEXT ;跳至NEXT形成一个回圈
JMP LOOP ;跳至LOOP形成一个回圈
;==============================================================
LOADING: PUSH A ;储存ACC
MOV R2, #8 ;载入各8笔资料
DJNZ 51H, LOAD_1 ;是否到最後一个字?
MOV 50H, #0 ;从头开始
MOV 41H, #4 ;4次载入字型
MOV R0, #30H ;第一组字型位置
MOV R1, #40H ;第二组字型位置
LOAD_1: MOV A, 50H ;将间距放入ACC
MOVC A, @A+DPTR ;读入资料
MOV @R0, A ;将资料存入记忆体
INC R0 ; 指向下一个位址
MOV A, 50H ;将间距放入ACC
ADD A, #8 ;ACC+8
MOVC A, @A+DPTR ;读入资料
MOV @R1, A ;将资料存入记忆体
INC R1 ;指向下一个位址
INC 50H ;指向下一个笔资料
DJNZ R2, LOAD_1 ;跳至LOAD_1形成一个回圈
POP A ;取回ACC资料
RET
;==============================================================
ROTATE: PUSH A ;储存ACC
SETB RS1 ;使用RB1
MOV R0, #30H ;第一组字型资料开始位址
MOV R1, #40H ;第二组字型资料开始位址
MOV R2, #8 ;旋转8次
ROTATE_1:
CLR CY ;清除进位旗标
MOV A, @R1 ;将第二组字型资料放入ACC
RRC A ;资料右移
MOV @R1, A ;资料回存
INC R1 ;指向下一笔资料
MOV A, @R0 ;将第一组字型资料放入ACC
RRC A ;资料右移
MOV @R0, A ;资料回存
INC R0 ;指向下一笔资料
DJNZ R2, ROTATE_1 ;若不超过8次,则继续
CLR RS1 ;恢复RB0
POP A ;取回ACC资料
RET
;==============================================================
DELAY: MOV R7, #SPEED
D2: MOV R6, #200
D1: MOV R5, #250
DJNZ R5, $
DJNZ R6, D1
DJNZ R7, D2
RET
;==============================================================
TIMER0: CLR TR0 ;关闭TIMER0
PUSH A ;储存ACC
SETB RS0 ;切换到RB1
MOV COLUMN, #0 ;关闭LED阵列
MOV A, @R1 ;取出显示信号
;===============================================================
;使用共阳极式LED阵列, 则加入下一列指令
CPL A
;===============================================================
MOV ROW, A ;输出显示信号
MOV A, R3 ;载入扫瞄码
MOV COLUMN, A ;输出扫瞄码(显示一行)
RR A ;下一个扫瞄码
MOV R3, A ;储存下一个扫瞄码
INC R1 ;下一个显示信号
DJNZ R2, NEXT_C ;未超过8行则跳至NEXT_C
MOV R2, #8 ;从新开始扫瞄
MOV R1, #20H ;从第一行开始
NEXT_C: MOV TH0, #>S_TIME ;设定每行扫瞄时间
MOV TL0, #<S_TIME ;设定每行扫瞄时间
SETB TR0 ;启动TIMER0
CLR RS0 ;切换回RB0
POP A ;取回ACC
RETI
;==============================================================
TABLE: ;8BYTES x10 =80BYTES
DB 00H, 00H, 36H, 49H ;8
DB 49H, 36H, 00H, 00H ;
DB 00H, 1CH, 22H, 41H ;0
DB 41H, 22H, 1CH, 00H ;
DB 00H, 00H, 27H, 45H ;5
DB 45H, 45H, 39H, 00H ;
DB 00H, 40H, 44H, 7EH ;1
DB 7FH, 40H, 40H, 00H ;
DB 00H, 00H, 36H, 49H ;8
DB 49H, 36H, 00H, 00H ;
;==============================================================
END
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
例说8051(教材及程序,畅销十年的好教材) (130个子文件)
ch12-2.asm 5KB
CH11-5.ASM 4KB
CH8-4.asm 4KB
CH11-4.ASM 3KB
CH11-2.ASM 3KB
CH11-2T.ASM 3KB
CH12-1.ASM 3KB
CH11-1.ASM 3KB
CH11-3.ASM 3KB
ch6-4.asm 3KB
ch6-3.asm 3KB
ch6-2.asm 2KB
CH8-3.ASM 2KB
ch5-3.asm 2KB
ch10-3.asm 2KB
ch6-5.asm 2KB
CH8-2.ASM 2KB
ch9-3.ASM 1KB
ch6-1.asm 1KB
ch9-4.ASM 1KB
ch5-1.asm 1KB
ch10-2.asm 1KB
ch5-2.asm 1KB
CH8-1.ASM 1KB
ch4-3.asm 1KB
ch3-3.asm 998B
ch5-4.asm 960B
ch10-1.asm 953B
ch9-2.asm 931B
ch4-2.asm 915B
ch9-1.asm 853B
ch2-2.asm 819B
ch7-5.asm 670B
ch7-3.asm 668B
ch7-6.asm 663B
ch7-4.asm 551B
ch3-2.asm 484B
ch1.asm 448B
ch2-1.asm 444B
ch7-1.asm 443B
ch4-1.asm 431B
ch7-2.asm 404B
CH4-4.ASM 382B
ch3-4.asm 174B
ch3-1.asm 172B
test.bat 140B
test.bat 140B
CH12-2.HEX 910B
CH11-5.HEX 732B
CH12-1.HEX 680B
CH11-2.HEX 611B
CH11-4.HEX 587B
CH8-4.HEX 579B
CH11-1.HEX 568B
CH11-3.HEX 480B
CH8-3.HEX 435B
CH6-4.HEX 326B
CH5-3.HEX 305B
CH6-2.HEX 300B
CH6-3.HEX 266B
CH8-2.HEX 253B
CH6-5.HEX 208B
CH5-2.HEX 206B
CH5-1.HEX 198B
CH5-4.HEX 192B
CH4-2.HEX 183B
CH9-3.HEX 183B
CH8-1.HEX 179B
CH9-4.HEX 177B
CH4-3.HEX 165B
CH10-3.HEX 165B
CH9-2.HEX 153B
CH10-2.HEX 151B
CH6-1.HEX 138B
CH9-1.HEX 136B
CH3-3.HEX 124B
CH4-1.HEX 122B
CH7-5.HEX 118B
CH7-3.HEX 118B
CH10-1.HEX 103B
CH7-6.HEX 91B
CH3-2.HEX 89B
CH7-4.HEX 89B
CH4-4.HEX 79B
CH7-1.HEX 77B
CH7-2.HEX 73B
CH3-1.HEX 44B
CH3-4.HEX 44B
CH12-2.OBJ 1KB
CH12-1.OBJ 1KB
CH11-5.OBJ 1KB
CH11-4.OBJ 988B
CH8-4.OBJ 981B
CH11-2.OBJ 978B
CH11-1.OBJ 947B
CH11-3.OBJ 908B
CH8-3.OBJ 874B
CH6-4.OBJ 852B
CH5-3.OBJ 803B
CH6-2.OBJ 784B
共 130 条
- 1
- 2
资源评论
- crj1234562013-11-24这本书讲的很通俗易懂
- a0539642012-03-21只是配书程序 以为是书呢 失望!!!!!
zhuzhuyanrong
- 粉丝: 1
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功