📄 led.asm
字号:
.title "LEDTEST.asm"
.mmregs
LEDAddr0 .set 3000h
LEDAddr1 .set 3001h
LEDAddr2 .set 3002h
LEDAddr3 .set 3003h
LEDAddr4 .set 3004h
LEDAddr5 .set 3005h
LEDAddr6 .set 3006h
LEDAddr7 .set 3007h
cpldport1 .set 2000h
swcr .set 2bh
OUTPUT .set 4402H
CLKMD .set 1C00h ;Added by zy
.def _c_int00
STACK .usect "stack",100
.text
_c_int00:
;MOV #2002H,CLKMD
MOV #00H, DPH ;Copy of the 9 most significant bits of the data page register (DP)
BCLR C54CM ;ASM is ignored,不兼容C54模式
BCLR CPL ;用DP寻址,DP direct addressing mode
BCLR TC1
BCLR TC2 ;Test/control flag 1
MOV #0110001110110111B,CLKMD ;七倍频,二分频
RPT #100
NOP
LOOP_1:
MOV #1103H, 6C00H ;Data EMIF mode(Parallel Port Mode=00)
MOV #01H,0CH
MOV #2000H, LEDAddr1
;在地址线上用示波器观察是否有方波
MOV #0000H,0800H
MOV #0000H,0801H
MOV #0000H,0803H
NOP
NOP
;;;MOV #0000H,7FDH
;;;MOV #1,0CH
MOV #0000H,0803H ;EMIF CE0 space control register 允许?
MOV #1103H,6C00h
MOV #0000H,4400H ;AGPIOEN 允许A[15:0]输出地址
MOV #0ffffH,4401H ;AGPIODIR 将A[15:0]设为输出(AGPIODIR) IMPORTANT!!!!
MOV #5555h,OUTPUT ;AGPIODATA 输出数据到地址线上
;;;;MOV #0014H,6C00h
nop
nop
MOV #0000H,4400H ;允许A[15:0]输出地址
MOV #0ffffH,4401H ;将A[15:0]设为输出(AGPIODIR) IMPORTANT!!!!
MOV #0AAAAh,OUTPUT ;输出数据到地址线上
nop
nop
;以下五句可观测到XF脚的高低电平的变化
BSET XF
CALL delay1s
BCLR XF
NOP
CALL delay1s
B LOOP_1
delay1s:
MOV #3000, AR3 ;STM
delay_1
RPT #6FFH
NOP
NOP
NOP
BANZ delay_1, *AR3-
NOP
NOP
RET
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -