📄 ex6.asm
字号:
************************************************
* FileName: ex6.asm *
* Description: 硬件中断实验 *
* Copyright(C) SanZhi Electronic, Author Zpin *
************************************************
; 问题是不响应键盘中断,以及装入是在4000H处有错。
; 使用FIR实验中的 PAGE1设定,就没有装入问题了。
; 无中断响应,可能是系统硬件设置有错。如跳线不对。
.title "ex6"
.global _c_int00
.mmregs
KEY_ADDR .set 0A008h
D_LED_ADDR .set 1003h
KEY_CODE1 .set 60h
KEY_CODE2 .set 61h
CONVERT .macro rawdata
STM #4000h,AR3
ANDM #001Fh,rawdata
LD rawdata,A
ADD AR3,A
STL A,AR3
nop
nop
LD *AR3,A
STL A,rawdata
nop
nop
nop
nop
.endm
.data; 下面的初始化语句引起程序装入错误,在4000H
.word 0000h,3F06h,0605h,5B04h,4f03h,6602h,6d01h,7d06h,0705h,7f04h,6f03h,7702h,7c01h,3906h,5e05h,07904h,07103h,8002h
;BCD CODE 0 1 2 3 4 5 6 7 8 9 a b c d e f .
;hight 8 bit enable,low 8 bit is address
.sect ".vectors"
rst: B _c_int00
NOP
NOP
.space 17*4*16
int2: B _onkey
NOP
NOP
.space 13*4*16
.text
_c_int00:
LD #0h,DP
STM #3000h,SP
SSBX INTM; 禁止非屏蔽中断
ssbx XF;
STM #07FFFh,SWWSR
ST #1100h,KEY_CODE2;
STM #0ffffh,IFR;
;ORM #0004h,IMR; 原语句错误。
ORM #0004h,IMR; INT2=1,允许键盘中断。
RSBX INTM;
nop
susp: PORTW KEY_CODE2,D_LED_ADDR ;显示到数码管
rpt #0fh;
NOP
NOP
B susp
_onkey: nop ;从没有进入这里。
rpt #0fh;
nop
PORTR KEY_ADDR,KEY_CODE2 ;读取按键
ldm KEY_CODE2,A
NOP
CONVERT KEY_CODE2 ;将按键码转换成显示码
exit rpt #0fh
nop
STM #0ffffh,IFR
RETE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -