?? led.asm
字號(hào):
IOSFT_REG .usect ".data0",1 ;要顯示的數(shù)據(jù)寄存器
.include "F2407REGS.H" ;引用頭部文件
.def _c_int0
.text
_c_int0: ;相當(dāng)于主程序的入口
CALL SYSINIT ;調(diào)系統(tǒng)初始化程序
LDP #DP_PF2 ;指向7080h~7100h區(qū)
LACL MCRA
AND #000FFH ;IOPB口配置為一般I/O功能
SACL MCRA
LACL MCRA
AND #0FF00H ;IOPA 配置為一般I/O功能
SACL MCRA
LACL PBDATDIR
OR #0FF00H ;IOPB口設(shè)置為輸出方式
SACL PBDATDIR
LACL PADATDIR
OR #0FF00H
SACL PADATDIR ;IOPA 設(shè)置為輸出方式
LDP #5H ;指向0280h~0300h區(qū)
SPLK #80H,IOSFT_REG ;給顯示的數(shù)據(jù)賦初值
LOOP: LDP #DP_PF2
LACL PADATDIR
AND #0FFC7H ;138 select ch0,ledclk==1
SACL PADATDIR ;開(kāi)74HC273片選信號(hào)
LDP #5H
LACL IOSFT_REG
LDP #DP_PF2
OR #0FF00H
SACL PBDATDIR ;送要顯示的數(shù)據(jù)到IOPB口
LACL PADATDIR
OR #0038H ;138 select ch7,ledclk=0
SACL PADATDIR ;關(guān)74HC273片選信號(hào)
CALL DELAY ;調(diào)延時(shí)程序
LDP #5H
LACL IOSFT_REG
BIT IOSFT_REG,BIT0 ;判是否循環(huán)完一次,即已點(diǎn)亮第8個(gè)發(fā)光二極管
ROR ;左移一位
SACL IOSFT_REG
BCND LOOP1,TC
B WAIT
LOOP1: LDP #5H
SPLK #80H,IOSFT_REG ;如循環(huán)完一次則顯示數(shù)據(jù)賦初值
WAIT: NOP
B LOOP
;(2) 系統(tǒng)初始化程序
SYSINIT:
SETC INTM
CLRC SXM
CLRC OVM
CLRC CNF ;B0 被配置為數(shù)據(jù)存儲(chǔ)空間
LDP #0E0H
SPLK #81FEH,SCSR1 ;CLKIN=6 M,CLKOUT=24 M
SPLK #0E8H,WDCR ;不使能WDT
LDP #0
SPLK #0000H,IMR ;不使能
SPLK #0FFFFH,IFR ;清全部中斷標(biāo)志
RET
;(3) 軟件延時(shí)程序
DELAY:
MAR *,AR4
LAR AR4,#0FFFEH
LAR AR0,#00H
DELAY1: SBRK #1
NOP
CMPR 00
BCND DELAY1,NTC
RET
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -