?? vectors08.s
字號:
.module vectors08.c
.area text
.dbfile vectors08.c
.dbfunc e isrKeyBoard _isrKeyBoard fV
_isrKeyBoard::
.dbline -1
pshh
lda *__r0
psha
lda *__r1
psha
lda *__r2
psha
lda *__r3
psha
lda *__r4
psha
lda *__r5
psha
lda *__r6
psha
lda *__r7
psha
lda *__r8
psha
lda *__r9
psha
lda *__r10
psha
lda *__r11
psha
lda *__rhi
psha
lda *__rlo
psha
.dbline 33
; //[vectors08.c]用于定義中斷矢量表------------------------------------------*
; //本文件包含: *
; // (1)isrKeyBoard : 鍵盤中斷處理函數(shù)(SPI從機選擇) *
; // (2)isrDummy : 未定義的中斷處理函數(shù) *
; // (3)中斷矢量表 *
; //-------------------------------------------------------------------------*
; //[頭文件]
; #include "JB8C.H" //JB8映像寄存器名定義
; #include "SPI.h" //SPI函數(shù)頭文件
; #include "Type.h" //類型別名定義
; #include "EnDisInt.h" //開放或禁止MCU各模塊中斷的宏定義
; #include "LED.h" //該頭文件中包含了LED驅(qū)動函數(shù)聲明
;
; //變量
; INT8U i;
; INT8U SPI0redata ; //SPI0模塊當前接收數(shù)據(jù)
; INT8U SPI0snddata; //SPI0模塊當前發(fā)送數(shù)據(jù)
; //外部變量
; extern INT8U Card_inform[11]; //存儲電子標簽UID信息
;
; //isrKeyBoard:鍵盤中斷處理函數(shù)---------------------------------------------*
; //功能:響應SPI主機的從機選擇信號,根據(jù)前一次接收的數(shù)據(jù),發(fā)送相應的讀寫模塊 *
; // 獲取的電子標簽UID信息 *
; //調(diào)用函數(shù): *
; // (1)DisableMCUint : 關總中斷 *
; // (2)DisableKBint : 屏蔽鍵盤中斷 *
; // (3)SPI0SLAVECOM : SPI0從機通信子函數(shù) *
; // (4)EnableKBint : 開放鍵盤中斷 *
; // (5)EnableMCUint : 開總中斷 *
; //-------------------------------------------------------------------------*
; #pragma interrupt_handler isrKeyBoard
; void isrKeyBoard(void)
; {
.dbline 38
; //static INT8U SPI0redata ; //SPI0模塊當前接收數(shù)據(jù)
; //static INT8U SPI0snddata; //SPI0模塊當前發(fā)送數(shù)據(jù)
;
;
; DisableMCUint(); //關總中斷
SEI
.dbline 39
; DisableKBint() ; //屏蔽鍵盤中斷
bset #1,0x16
.dbline 43
;
; //調(diào)用SPI0從機通信函數(shù)
; //接收的數(shù)據(jù)為下次要發(fā)送的Card_inform數(shù)組下標值
; SPI0redata = SPI0SLAVECOM(SPI0snddata);
lda *_SPI0snddata
psha
jsr _SPI0SLAVECOM
ais #1
tsx
sta *_SPI0redata
.dbline 44
; if((SPI0redata >= 0) && (SPI0redata < 11))
lda *_SPI0redata
cmp #0
blo L2
lda *_SPI0redata
cmp #11
bhs L2
.dbline 45
; {
.dbline 46
; SPI0snddata = Card_inform[SPI0redata];
clr *__r0
lda *_SPI0redata
add #<_Card_inform
sta *__r1
lda *__r0
adc #>_Card_inform
sta *__r0
ldhx *__r0
lda ,x
tsx
sta *_SPI0snddata
.dbline 47
; }
bra L3
L2:
.dbline 48
; else if(SPI0redata == 11)
lda *_SPI0redata
cmp #11
bne L4
.dbline 49
; {
.dbline 50
; LED_Spark(2, 'S'); //運行指示燈短閃爍一次,表明讀卡成功
lda #83
psha
lda #2
psha
jsr _LED_Spark
ais #2
tsx
.dbline 52
;
; Card_inform[0]='A';
lda #65
sta *_Card_inform
.dbline 53
; for(i = 1; i < 11; i++)
lda #1
sta *_i
bra L9
L6:
.dbline 54
clr *__r0
lda *_i
add #<_Card_inform
sta *__r1
lda *__r0
adc #>_Card_inform
sta *__r0
clra
ldhx *__r0
sta ,x
tsx
L7:
.dbline 53
inc *_i
L9:
.dbline 53
lda *_i
cmp #11
blo L6
.dbline 56
; Card_inform[i] = 0;
;
; SPI0snddata = Card_inform[0];
mov *_Card_inform,*_SPI0snddata
.dbline 57
; }else
bra L5
L4:
.dbline 58
; {
.dbline 59
; SPI0snddata = Card_inform[0];
mov *_Card_inform,*_SPI0snddata
.dbline 60
; }
L5:
L3:
.dbline 62
;
; KBSCR |= (1 << 2); //清除鍵盤中斷請求(ACKK = 1)
bset #2,0x16
.dbline 64
;
; EnableKBint() ; //開放鍵盤中斷
bclr #1,0x16
.dbline 65
; EnableMCUint(); //開總中斷
CLI
.dbline -2
L1:
.dbline 0 ; func end
pula
sta *__rlo
pula
sta *__rhi
pula
sta *__r11
pula
sta *__r10
pula
sta *__r9
pula
sta *__r8
pula
sta *__r7
pula
sta *__r6
pula
sta *__r5
pula
sta *__r4
pula
sta *__r3
pula
sta *__r2
pula
sta *__r1
pula
sta *__r0
pulh
rti
.dbend
.dbfunc e isrDummy _isrDummy fV
_isrDummy::
.dbline -1
pshh
.dbline 71
; }
;
; //未定義的中斷處理函數(shù),本函數(shù)不能刪除
; #pragma interrupt_handler isrDummy
; void isrDummy(void)
; {
.dbline -2
L10:
.dbline 0 ; func end
pulh
rti
.dbend
.area memory(abs)
.org 0xfff0
.dbfile vectors08.c
__vectab::
.word _isrKeyBoard
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.dbsym e _vectab __vectab A[14:7]pfV
.area lit
.area bss
.dbfile vectors08.c
_SPI0snddata::
.blkb 1
.dbsym e SPI0snddata _SPI0snddata c
_SPI0redata::
.blkb 1
.dbsym e SPI0redata _SPI0redata c
_i::
.blkb 1
.dbsym e i _i c
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -