📄 io.asm
字号:
IOSFT_REG .usect ".data0",1 ;要显示的数据寄存器
.include "F2407REGS.H" ;引用头部文件
.def _c_int0
.text
_c_int0 ;相当于主程序的入口
CALL SYSINIT ;调系统初始化程序
LDP #DP_PF2 ;指向7080h~7100h区
LACL MCRA
AND #000FFH ;IOPB口配置为一般I/O功能
SACL MCRA
LACL MCRC
AND #0FBFFH ;IOPF2 配置为一般I/O功能
SACL MCRC
LACL PBDATDIR
OR #0FF00H ;IOPB口设置为输出方式
SACL PBDATDIR
LDP #5H ;指向0280h~0300h区
SPLK #01H,IOSFT_REG ;给显示的数据赋初值
LOOP: LDP #DP_PF2
LACL PFDATDIR
OR #0404H ;IOPF2 设置为输出方式,且IOPF2=1
SACL PFDATDIR ;开74HC273片选信号
LDP #5H
LACL IOSFT_REG
LDP #DP_PF2
SACL PBDATDIR ;送要显示的数据到IOPB口
LACL PFDATDIR
AND #0FFFBH ;IOPF2=0
SACL PFDATDIR ;关74HC273片选信号
CALL DELAY ;调延时程序
LDP #5H
LACL IOSFT_REG
SFL ;左移一位
SACL IOSFT_REG
BIT IOSFT_REG,BIT8 ;判是否循环完一次,即已点亮第8个发光二极管
BCND LOOP1,TC
B WAIT
LOOP1: LDP #5H
SPLK #01H,IOSFT_REG ;如循环完一次则显示数据赋初值
WAIT: NOP
B LOOP
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -