⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vectors08.s

📁 为苏州一家公司所做的的恒温恒湿车间控制 系统
💻 S
字号:
	.module vectors08.c
	.area text
	.dbfile vectors08.c
	.dbfunc e isrRe _isrRe fV
;             no -> 0,X
;              j -> 1,X
;              i -> 2,X
_isrRe::
	.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
	ais #-3
	tsx
	.dbline 10
; /*-----------------------------------------------------*
; *文件名:vectors08.c                                    *
; *功  能:用于定义中断矢量表                             *
; *-----------------------------------------------------*/
; //[头文件]
; #include "Includes.h"
; /*中断接受处理函数------------------------------------*/
; #pragma interrupt_handler isrRe
; void isrRe(void)
; {
	.dbline 12
;    INT8U i,j,no;
;    asm("SEI");	       //禁止所有中断 
	SEI
	.dbline 14
;    //1:接收数据
;    for(i=0;i<15;i++)
	clr 2,X
	bra L5
L2:
	.dbline 15
;    {ReBuf[i]=SCIRe1(&j);
	.dbline 15
	aix #1
	pshx
	pshh
	jsr _SCIRe1
	ais #2
	tsx
	sta *__r1
	clr *__r2
	lda 2,X
	add #<_ReBuf
	sta *__r3
	lda *__r2
	adc #>_ReBuf
	sta *__r2
	lda *__r1
	ldhx *__r2
	sta ,x
	tsx
	.dbline 16
	lda 1,X
	cmp #1
	bne L6
	.dbline 16
	bra L8
L6:
	.dbline 16
L3:
	.dbline 14
	inc 2,X
L5:
	.dbline 14
	lda 2,X
	cmp #15
	blo L2
	.dbline 18
;     if(j == 1) goto isrRe_Exit;} 
;    //2:解包接收到的数据      
;    no=DePackReBuf(ReBuf);
	ldhx #_ReBuf
	pshx
	pshh
	jsr _DePackReBuf
	ais #2
	tsx
	sta *__r1
	sta ,X
	.dbline 19
;    if(no==0) ReSendFlag=1; //时间接收成功  
	bne L9
	.dbline 19
	lda #1
	sta *_ReSendFlag
L9:
L8:
	.dbline 21
; isrRe_Exit:           
;    asm("CLI");		   //开放总中断	
	CLI
	.dbline -2
L1:
	ais #3
	.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
	.dbsym l no 0 c
	.dbsym l j 1 c
	.dbsym l i 2 c
	.dbend
	.dbfunc e isrKBI _isrKBI fV
;        key_num -> 0,X
;           key1 -> 1,X
;           key2 -> 2,X
;              i -> 3,X
_isrKBI::
	.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
	ais #-4
	tsx
	.dbline 26
; }
; /*键盘中断处理函数------------------------------------*/
; #pragma interrupt_handler isrKBI
; void isrKBI(void) 
; {
	.dbline 27
; 	INT8U i,key1,key2,key_num=0;
	clr ,X
	.dbline 28
; 	asm("SEI");	  	         //关总中断
	SEI
	.dbline 30
; 	//开关量输入------------------------	
; 	INTKBSCR|= (1<<IntBit);  //屏蔽键盘中断(IMASKK=1)
	bset #1,0x1a
	.dbline 31
; 	KeyInput_Judge(&key1);	
	aix #1
	pshx
	pshh
	jsr _KeyInput_Judge
	ais #2
	.dbline 32
; 	KeyInput_Init();		 //重新初始化键盘
	jsr _KeyInput_Init
	tsx
	.dbline 33
; 	INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)	
	bclr #1,0x1a
	.dbline 35
; 	//---------------------------------------
; 	for(i=0;i<5;i++)
	clr 3,X
	bra L15
L12:
	.dbline 36
;      {
	.dbline 37
;        KeyInput_Judge(&key2);
	aix #2
	pshx
	pshh
	jsr _KeyInput_Judge
	ais #2
	tsx
	.dbline 38
;        if((key1==key2))
	lda 1,X
	cmp 2,X
	bne L16
	.dbline 39
;          key_num++;      
	inc ,X
L16:
	.dbline 40
L13:
	.dbline 35
	inc 3,X
L15:
	.dbline 35
	lda 3,X
	cmp #5
	blo L12
	.dbline 41
;      }
;      if(key_num>=2)
	lda ,X
	cmp #2
	blo L18
	.dbline 42
;        KB_DefValue=key1;
	lda 1,X
	sta *_KB_DefValue
	bra L19
L18:
	.dbline 44
;      else
;        KB_DefValue=key2;
	lda 2,X
	sta *_KB_DefValue
L19:
	.dbline 45
; 	asm("CLI");			     //开总中断	 
	CLI
	.dbline -2
L11:
	ais #4
	.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
	.dbsym l key_num 0 c
	.dbsym l key1 1 c
	.dbsym l key2 2 c
	.dbsym l i 3 c
	.dbend
	.dbfunc e isrTIMER1 _isrTIMER1 fV
;             no -> 0,X
_isrTIMER1::
	.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
	ais #-1
	tsx
	.dbline 52
; }
; /*定时器Timer1中断处理函数------------------------------------*
; *功能:每1S中采集一次AD值,进行一次DA转换
; *-------------------------------------------------------------*/
; #pragma interrupt_handler isrTIMER1
; void isrTIMER1(void)
; {
	.dbline 54
;    INT8U no;
;    asm("SEI");            //关总中断
	SEI
	.dbline 56
;    //1:采集2片2542-22路的AD值    
;    ADC22P(ADValue);  
	ldhx #_ADValue
	pshx
	pshh
	jsr _ADC22P
	ais #2
	.dbline 58
;    //2:DA转换
;    DAC(DAvalue);
	ldhx #_DAvalue
	pshx
	pshh
	jsr _DAC
	ais #2
	tsx
	.dbline 60
;    //------------------------------
;    no++;
	inc ,X
	.dbline 61
;    if(no==30) 
	lda ,X
	cmp #30
	bne L21
	.dbline 62
;    {
	.dbline 63
;        TimeFlag|=0x01;    //30s标志TimeFlag.0
	bset #0,*_TimeFlag
	.dbline 64
;        no=0;
	clr ,X
	.dbline 65
;    }   
L21:
	.dbline 68
;    //------------------------------
;    //清除定时器溢出标志位
;    T1SC&=~(1<<TOFBit);
	bclr #7,0x20
	.dbline 69
;    asm("CLI");            //开总中断
	CLI
	.dbline -2
L20:
	ais #1
	.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
	.dbsym l no 0 c
	.dbend
	.dbfunc e isrDummy _isrDummy fV
_isrDummy::
	.dbline -1
	pshh
	.dbline 74
; }
; //未定义的中断处理函数,本函数不能删除
; #pragma interrupt_handler isrDummy  
; void isrDummy(void) 
;   {
	.dbline -2
L23:
	.dbline 0 ; func end
	pulh
	rti
	.dbend
	.area memory(abs)
	.org 0xffdc
	.dbfile vectors08.c
__vectab::
	.word _isrDummy
	.word _isrDummy
	.word _isrKBI
	.word _isrDummy
	.word _isrRe
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrTIMER1
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.word _isrDummy
	.dbsym e _vectab __vectab A[34:17]pfV
	.area lit

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -