vectors08.lis

来自「为日本瑞萨苏州分公司做的一个温控系统」· LIS 代码 · 共 548 行 · 第 1/2 页

LIS
548
字号
                        .module Vectors08.c
                        .area text
 0000                   .dbfile Vectors08.c
 0000                   .dbfunc e isrSCIRe _isrSCIRe fV
 0000           ;           Tmax -> 2,X
 0000           ;           Tmin -> 3,X
 0000           ;           data -> 4,X
 0000           _isrSCIRe::
 0000                   .dbline -1
 0000 8B                pshh
 0001 B600              lda *__r0
 0003 87                psha
 0004 B600              lda *__r1
 0006 87                psha
 0007 B600              lda *__r2
 0009 87                psha
 000A B600              lda *__r3
 000C 87                psha
 000D B600              lda *__r4
 000F 87                psha
 0010 B600              lda *__r5
 0012 87                psha
 0013 B600              lda *__r6
 0015 87                psha
 0016 B600              lda *__r7
 0018 87                psha
 0019 B600              lda *__r8
 001B 87                psha
 001C B600              lda *__r9
 001E 87                psha
 001F B600              lda *__r10
 0021 87                psha
 0022 B600              lda *__r11
 0024 87                psha
 0025 B600              lda *__rhi
 0027 87                psha
 0028 B600              lda *__rlo
 002A 87                psha
 002B A7F8              ais #-8
 002D 95                tsx
 002E                   .dbline 41
 002E           ; //-------------------------------------------------------------------------*
 002E           ; //文件名:vectors08.c                                                       *
 002E           ; //功  能:用于定义中断矢量表                                                *
 002E           ; //-------------------------------------------------------------------------*
 002E           ; //头文件
 002E           ; #include "GP32C.H"          //包含头文件
 002E           ; #include "Type.h"           //类型别名定义
 002E           ; #include "EnDisInt.h"       //开放或禁止MCU各模块中断头文件
 002E           ; #include "LCD.h"            //包含LCD驱动头文件
 002E           ; #include "Show.h"           //包含LCD显示头文件
 002E           ; #include "H08SCI.h"         //包含SCI发送接收头文件
 002E           ; #include "Flash.h"
 002E           ; 
 002E           ; //定时器相应寄存器定义  
 002E           ; #define TOFBit     7        //定时器溢出标志位
 002E           ; 
 002E           ; //全局变量声明
 002E           ; extern INT8U LcdShowBuff[64];  //外部定义64个字节的LCD显示缓冲区
 002E           ; extern INT16U ADValue[11];  //11路A/D采集数据
 002E           ; extern INT16U Temper;       //设定温度
 002E           ; extern INT16U CurtTmp;      //当前温度
 002E           ; extern INT16U CurtTime;     //当前时间
 002E           ; extern INT16U Time;         //定时时间
 002E           ; extern INT8U ScdTim;        //中断秒数
 002E           ; extern INT16U MntTim;       //中断分数
 002E           ; extern const INT16U BigNumCode[10][32];
 002E           ; extern const INT8U  Tmin;
 002E           ; extern const INT8U  Tmax;
 002E           ; extern const INT16U  TADmin;
 002E           ; extern const INT16U  TADmax;
 002E           ; extern const INT8U  MCUno;
 002E           ; extern INT8U FlashFlag;
 002E           ; extern unsigned char N,FlashData[8]; 
 002E           ; extern INT16U ADCurtTmp;
 002E           ; 
 002E           ; 
 002E           ; //内部函数
 002E           ; //串行接收中断处理函数
 002E           ; #pragma interrupt_handler isrSCIRe
 002E           ; void isrSCIRe(void)
 002E           ; {
 002E                   .dbline 45
 002E           ;    INT8U data[4];
 002E           ;    INT8U Tmin,Tmax;
 002E           ;    
 002E           ;    DisableMCUInterrupt();
 002E 9B                SEI
 002F                   .dbline 46
 002F           ;    SCIReN(1,data);
 002F AF04              aix #4
 0031 89                pshx
 0032 8B                pshh
 0033 A601              lda #1
 0035 87                psha
 0036 CD0000            jsr _SCIReN
 0039 A703              ais #3
 003B 95                tsx
 003C                   .dbline 47
 003C           ;    if(data[0]==MCUno)        //1#
 003C E604              lda 4,X
 003E C10000            cmp _MCUno
 0041 2703              beq X4
 0043 CC011F            jmp L2
 0046           X4:
 0046                   .dbline 48
 0046           ;    {
 0046                   .dbline 49
 0046           ;       SCIReN(3,data);
 0046 AF04              aix #4
 0048 89                pshx
 0049 8B                pshh
 004A A603              lda #3
 004C 87                psha
 004D CD0000            jsr _SCIReN
 0050 A703              ais #3
 0052 95                tsx
 0053                   .dbline 50
 0053           ;       switch(data[0])
 0053 7F                clr ,X
 0054 E604              lda 4,X
 0056 E701              sta 1,X
 0058 F6                lda ,X
 0059 2609              bne X0
 005B E601              lda 1,X
 005D A14D              cmp #77
 005F 2603              bne X5
 0061 CC00F7            jmp L16
 0064           X5:
 0064           X0:
 0064 E601              lda 1,X
 0066 B700              sta *__r1
 0068 F6                lda ,X
 0069 B700              sta *__r0
 006B 5500              ldhx *__r0
 006D 65004D            cphx #77
 0070 95                tsx
 0071 9003              bge X6
 0073 CC011F            jmp L4
 0076           X6:
 0076           L24:
 0076 F6                lda ,X
 0077 2606              bne X1
 0079 E601              lda 1,X
 007B A152              cmp #82
 007D 270C              beq L7
 007F           X1:
 007F F6                lda ,X
 0080 2606              bne X2
 0082 E601              lda 1,X
 0084 A154              cmp #84
 0086 2746              beq L8
 0088           X2:
 0088 CC011F            jmp L4
 008B           X3:
 008B                   .dbline 51
 008B           ;       {
 008B           L7:
 008B                   .dbline 53
 008B           ;          case 'R':        //读数据
 008B           ;                SCISend1(CurtTmp>>8);
 008B B600              lda *_CurtTmp
 008D 87                psha
 008E CD0000            jsr _SCISend1
 0091 A701              ais #1
 0093                   .dbline 54
 0093           ;                SCISend1(CurtTmp);
 0093 B601              lda *_CurtTmp+1
 0095 87                psha
 0096 CD0000            jsr _SCISend1
 0099 A701              ais #1
 009B                   .dbline 55
 009B           ;                SCISend1(Temper>>8);
 009B B600              lda *_Temper
 009D 87                psha
 009E CD0000            jsr _SCISend1
 00A1 A701              ais #1
 00A3                   .dbline 56
 00A3           ;                SCISend1(Temper);
 00A3 B601              lda *_Temper+1
 00A5 87                psha
 00A6 CD0000            jsr _SCISend1
 00A9 A701              ais #1
 00AB                   .dbline 57
 00AB           ;                SCISend1(CurtTime>>8);
 00AB B600              lda *_CurtTime
 00AD 87                psha
 00AE CD0000            jsr _SCISend1
 00B1 A701              ais #1
 00B3                   .dbline 58
 00B3           ;                SCISend1((INT8U)CurtTime);
 00B3 B601              lda *_CurtTime+1
 00B5 87                psha
 00B6 CD0000            jsr _SCISend1
 00B9 A701              ais #1
 00BB                   .dbline 59
 00BB           ;                SCISend1(Time>>8);
 00BB B600              lda *_Time
 00BD 87                psha
 00BE CD0000            jsr _SCISend1
 00C1 A701              ais #1
 00C3                   .dbline 60
 00C3           ;                SCISend1(Time);
 00C3 B601              lda *_Time+1
 00C5 87                psha
 00C6 CD0000            jsr _SCISend1
 00C9 A701              ais #1
 00CB 95                tsx
 00CC                   .dbline 61
 00CC           ;                break;
 00CC 2051              bra L5
 00CE           L8:
 00CE                   .dbline 64
 00CE           ;          case 'T':        //校准当前温度值
 00CE           ;                
 00CE           ;                 FlashData[0]=Tmin;
 00CE E603              lda 3,X
 00D0 B700              sta *_FlashData
 00D2                   .dbline 65
 00D2           ;                 FlashData[1]=data[2];
 00D2 E606              lda 6,X
 00D4 B701              sta *_FlashData+1
 00D6                   .dbline 66
 00D6           ;                 FlashData[2]=TADmin>>8;
 00D6 C60000            lda _TADmin
 00D9 B702              sta *_FlashData+2
 00DB                   .dbline 67
 00DB           ;                 FlashData[3]=TADmin;
 00DB C60001            lda _TADmin+1
 00DE B703              sta *_FlashData+3
 00E0                   .dbline 68
 00E0           ;                 FlashData[4]=ADCurtTmp>>8;
 00E0 B600              lda *_ADCurtTmp
 00E2 B704              sta *_FlashData+4
 00E4                   .dbline 69
 00E4           ;                 FlashData[5]=ADCurtTmp;
 00E4 B601              lda *_ADCurtTmp+1
 00E6 B705              sta *_FlashData+5
 00E8                   .dbline 70
 00E8           ;                 FlashData[6]=MCUno;
 00E8 C60000            lda _MCUno
 00EB B706              sta *_FlashData+6
 00ED                   .dbline 71
 00ED           ;                 N=7;
 00ED A607              lda #7
 00EF B700              sta *_N
 00F1                   .dbline 72
 00F1           ;                 FlashFlag=1;
 00F1 A601              lda #1
 00F3 B700              sta *_FlashFlag
 00F5                   .dbline 73
 00F5           ;                break;
 00F5 2028              bra L5
 00F7           L16:
 00F7                   .dbline 75
 00F7           ;          case 'M':        //更改MCU号
 00F7           ;                FlashData[0]=Tmin;
 00F7 E603              lda 3,X
 00F9 B700              sta *_FlashData
 00FB                   .dbline 76
 00FB           ;                FlashData[1]=Tmax;
 00FB E602              lda 2,X
 00FD B701              sta *_FlashData+1
 00FF                   .dbline 77
 00FF           ;                FlashData[2]=TADmin>>8;
 00FF C60000            lda _TADmin
 0102 B702              sta *_FlashData+2
 0104                   .dbline 78
 0104           ;                FlashData[3]=TADmin;
 0104 C60001            lda _TADmin+1
 0107 B703              sta *_FlashData+3
 0109                   .dbline 79
 0109           ;                FlashData[4]=TADmax>>8;
 0109 C60000            lda _TADmax

⌨️ 快捷键说明

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