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

📄 adc11p.lis

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module ADC11P.c
                        .area text
 0000                   .dbfile ADC11P.c
 0000                   .dbfunc e ADC11P _ADC11P fV
 0000           ;              j -> 0,X
 0000           ;           temp -> 1,X
 0000           ;          ADVal -> 3,X
 0000           ;           flag -> 25,X
 0000           ;            tmp -> 26,X
 0000           ;        channel -> 32,X
 0000           ;           buff -> 33,X
 0000           ;              i -> 35,X
 0000           ;        ADValue -> 39,X
 0000           ;             cs -> 38,X
 0000           _ADC11P::
 0000                   .dbline -1
 0000 A7DC              ais #-36
 0002 95                tsx
 0003                   .dbline 18
 0003           ; //-------------------------------------------------------------------------*
 0003           ; //文件描述:本文件包含了AD采集的2子程序,分别为:                             * 
 0003           ; //(1)ADC11P:1片2543-11路AD采集                                            *
 0003           ; //(2)TLC2543:TLC2543芯片A/D转换子程序                                      *
 0003           ; //-------------------------------------------------------------------------*
 0003           ; #include "ADC11P.h"
 0003           ; 
 0003           ; //A/D转换并求平均值(11路)子程序(AD22P.ASM)---------------------------------*
 0003           ; //功  能:采集TLC2543,共11通道,取16次平均值放入内存ADValue               *
 0003           ; //参  数:cs:片选,cs=0~7对应PTC0~7                                        *
 0003           ; //        ADValue:存放11路AD转换结果的数组首地址                           *
 0003           ; //返  回:内存ADValue开始连续的11个地址内即为转换的结果                    *
 0003           ; //调  用:TLC2543                                                          *
 0003           ; //修  改:*ADValue是传址,一般在子程序中不直接修改参数,应另声明一个局部   *
 0003           ; //       变量地址,代其执行,最后将结果赋到参数地址带回 (ZY 2007.05.11)    *
 0003           ; //-------------------------------------------------------------------------*
 0003           ; void ADC11P(INT8U cs,INT16U *ADValue)
 0003           ; {   
 0003                   .dbline 24
 0003           ;       INT8U i,j,channel,flag,buff[2]; 
 0003           ;     INT16U temp,tmp[3]; 
 0003           ;     INT16U ADVal[11]; 
 0003           ;     
 0003           ;     //1 将A/D数据存放区清0   
 0003           ;     for(flag=0;flag<=10;flag++)      
 0003 6F19              clr 25,X
 0005 2025              bra L5
 0007           L2:
 0007                   .dbline 25
 0007 AF03              aix #3
 0009 3500              sthx *__r0
 000B 95                tsx
 000C 3F00              clr *__r2
 000E E619              lda 25,X
 0010 B700              sta *__r3
 0012 3800              lsl *__r3
 0014 3900              rol *__r2
 0016 B600              lda *__r3
 0018 BB00              add *__r1
 001A B700              sta *__r1
 001C B600              lda *__r2
 001E B900              adc *__r0
 0020 B700              sta *__r0
 0022 4F                clra
 0023 5500              ldhx *__r0
 0025 F7                sta ,x
 0026 4F                clra
 0027 E701              sta 1,x
 0029 95                tsx
 002A           L3:
 002A                   .dbline 24
 002A 6C19              inc 25,X
 002C           L5:
 002C                   .dbline 24
 002C E619              lda 25,X
 002E A10A              cmp #10
 0030 23D5              bls L2
 0032                   .dbline 29
 0032           ;       ADVal[flag]=0; 
 0032           ;       
 0032           ;     
 0032           ;     //3 对11个通道采集数据,每一路采集16次,16次的数据总和-->ADValue   
 0032           ;     for(j=1;j<=16;j++)   
 0032 A601              lda #1
 0034 F7                sta ,X
 0035 CC0102            jmp L9
 0038           L6:
 0038                   .dbline 30
 0038           ;     {  
 0038                   .dbline 31
 0038           ;       flag=0; 
 0038 6F19              clr 25,X
 003A                   .dbline 33
 003A           ;       //3.1第0片TLC2543的0~10通道转换      
 003A           ;       for(channel=0;channel<=10;channel++)      
 003A 6F20              clr 32,X
 003C CC00F8            jmp L13
 003F           L10:
 003F                   .dbline 34
 003F           ;       {    
 003F                   .dbline 36
 003F           ;         //3.1.1将通道j的AD转换结果存入内存buff     
 003F           ;         for(i=0;i<3;i++)     //中值滤波
 003F 6F23              clr 35,X
 0041 2062              bra L17
 0043           L14:
 0043                   .dbline 37
 0043                   .dbline 38
 0043 AF21              aix #33
 0045 89                pshx
 0046 8B                pshh
 0047 95                tsx
 0048 AF02              aix #2
 004A 3F00              clr *__r0
 004C E620              lda 32,X
 004E 87                psha
 004F B600              lda *__r0
 0051 87                psha
 0052 3F00              clr *__r0
 0054 E626              lda 38,X
 0056 87                psha
 0057 B600              lda *__r0
 0059 87                psha
 005A CD029C            jsr _TLC2543
 005D A706              ais #6
 005F 95                tsx
 0060                   .dbline 39
 0060 AF21              aix #33
 0062 89                pshx
 0063 8B                pshh
 0064 95                tsx
 0065 AF02              aix #2
 0067 3F00              clr *__r0
 0069 E620              lda 32,X
 006B 87                psha
 006C B600              lda *__r0
 006E 87                psha
 006F 3F00              clr *__r0
 0071 E626              lda 38,X
 0073 87                psha
 0074 B600              lda *__r0
 0076 87                psha
 0077 CD029C            jsr _TLC2543
 007A A706              ais #6
 007C 95                tsx
 007D                   .dbline 41
 007D AF1A              aix #26
 007F 3500              sthx *__r0
 0081 95                tsx
 0082 3F00              clr *__r2
 0084 E623              lda 35,X
 0086 B700              sta *__r3
 0088 3800              lsl *__r3
 008A 3900              rol *__r2
 008C B600              lda *__r3
 008E BB00              add *__r1
 0090 B700              sta *__r1
 0092 B600              lda *__r2
 0094 B900              adc *__r0
 0096 B700              sta *__r0
 0098 E621              lda 33,X
 009A 5500              ldhx *__r0
 009C F7                sta ,x
 009D 9EE623            lda 35,SP
 00A0 E701              sta 1,x
 00A2 95                tsx
 00A3                   .dbline 42
 00A3           L15:
 00A3                   .dbline 36
 00A3 6C23              inc 35,X
 00A5           L17:
 00A5                   .dbline 36
 00A5 E623              lda 35,X
 00A7 A103              cmp #3
 00A9 2598              blo L14
 00AB                   .dbline 43
 00AB AF1A              aix #26
 00AD 89                pshx
 00AE 8B                pshh
 00AF CD0195            jsr _MidVal
 00B2 A702              ais #2
 00B4 95                tsx
 00B5 B600              lda *__r0
 00B7 E701              sta 1,X
 00B9 B600              lda *__r1
 00BB E702              sta 2,X
 00BD                   .dbline 44
 00BD AF03              aix #3
 00BF 3500              sthx *__r0
 00C1 95                tsx
 00C2 3F00              clr *__r2
 00C4 E619              lda 25,X
 00C6 B700              sta *__r3
 00C8 3800              lsl *__r3
 00CA 3900              rol *__r2
 00CC B600              lda *__r3
 00CE BB00              add *__r1
 00D0 B700              sta *__r1
 00D2 B600              lda *__r2
 00D4 B900              adc *__r0
 00D6 B700              sta *__r0
 00D8 5500              ldhx *__r0
 00DA E601              lda 1,x
 00DC B700              sta *__r3
 00DE F6                lda ,x
 00DF 95                tsx
 00E0 B700              sta *__r2
 00E2 B600              lda *__r3
 00E4 EB02              add 2,X
 00E6 B700              sta *__r3
 00E8 B600              lda *__r2
 00EA E901              adc 1,X
 00EC 5500              ldhx *__r0
 00EE F7                sta ,x
 00EF B600              lda *__r3
 00F1 E701              sta 1,x
 00F3 95                tsx
 00F4                   .dbline 45
 00F4 6C19              inc 25,X
 00F6                   .dbline 46
 00F6           L11:
 00F6                   .dbline 33
 00F6 6C20              inc 32,X
 00F8           L13:
 00F8                   .dbline 33
 00F8 E620              lda 32,X
 00FA A10A              cmp #10
 00FC 2203              bhi X1
 00FE CC003F            jmp L10
 0101           X1:
 0101                   .dbline 47
 0101           L7:
 0101                   .dbline 29
 0101 7C                inc ,X
 0102           L9:
 0102                   .dbline 29
 0102 F6                lda ,X
 0103 A110              cmp #16
 0105 2203              bhi X2
 0107 CC0038            jmp L6
 010A           X2:
 010A                   .dbline 50
 010A           ;         {
 010A           ;            TLC2543(cs,channel,buff);   //得到"空数据"--不要
 010A           ;            TLC2543(cs,channel,buff);        
 010A           ;            //3.1.2从内存buff取出数据-->ADValue[flag]中         
 010A           ;            tmp[i]=*((unsigned int *)buff);
 010A           ;         }        
 010A           ;         temp=MidVal(tmp);
 010A           ;         ADVal[flag]=ADVal[flag]+temp;
 010A           ;         flag++;    
 010A           ;       }
 010A           ;     } 
 010A           ;        
 010A           ;     //4 求22路A/D数据的16次平均值   
 010A           ;     for(flag=0;flag<=10;flag++)     
 010A 6F19              clr 25,X
 010C 2038              bra L21
 010E           L18:
 010E                   .dbline 51
 010E AF03              aix #3
 0110 3500              sthx *__r0
 0112 95                tsx
 0113 3F00              clr *__r2
 0115 E619              lda 25,X
 0117 B700              sta *__r3
 0119 3800              lsl *__r3
 011B 3900              rol *__r2
 011D B600              lda *__r3
 011F BB00              add *__r1
 0121 B700              sta *__r1
 0123 B600              lda *__r2
 0125 B900              adc *__r0
 0127 B700              sta *__r0
 0129 5500              ldhx *__r0
 012B E601              lda 1,x
 012D B700              sta *__r3
 012F F6                lda ,x
 0130 B700              sta *__r2
 0132 A604              lda #4
 0134           X0:
 0134 3400              lsr *__r2
 0136 3600              ror *__r3
 0138 4BFA              dbnza X0
 013A B600              lda *__r2
 013C 5500              ldhx *__r0
 013E F7                sta ,x
 013F B600              lda *__r3
 0141 E701              sta 1,x
 0143 95                tsx
 0144           L19:
 0144                   .dbline 50
 0144 6C19              inc 25,X
 0146           L21:
 0146                   .dbline 50
 0146 E619              lda 25,X
 0148 A10A              cmp #10
 014A 23C2              bls L18
 014C                   .dbline 52
 014C           ;        ADVal[flag]=ADVal[flag]/16;
 014C           ;     for(i=0;i<11;i++)
 014C 6F23              clr 35,X
 014E 203C              bra L25
 0150           L22:
 0150                   .dbline 53
 0150 3F00              clr *__r0
 0152 E623              lda 35,X
 0154 B700              sta *__r1
 0156 3800              lsl *__r1
 0158 3900              rol *__r0
 015A AF03              aix #3
 015C 3500              sthx *__r2
 015E B600              lda *__r1
 0160 BB00              add *__r3
 0162 B700              sta *__r3
 0164 B600              lda *__r0
 0166 B900              adc *__r2
 0168 B700              sta *__r2
 016A 5500              ldhx *__r2
 016C E601              lda 1,x
 016E B700              sta *__r3
 0170 F6                lda ,x
 0171 95                tsx
 0172 B700              sta *__r2
 0174 B600              lda *__r1
 0176 EB28              add 40,X
 0178 B700              sta *__r1
 017A B600              lda *__r0
 017C E927              adc 39,X
 017E B700              sta *__r0
 0180 B600              lda *__r2
 0182 5500              ldhx *__r0
 0184 F7                sta ,x
 0185 B600              lda *__r3
 0187 E701              sta 1,x
 0189 95                tsx
 018A           L23:
 018A                   .dbline 52
 018A 6C23              inc 35,X
 018C           L25:
 018C                   .dbline 52
 018C E623              lda 35,X
 018E A10B              cmp #11
 0190 25BE              blo L22
 0192                   .dbline -2
 0192           L1:
 0192 A724              ais #36
 0194                   .dbline 0 ; func end
 0194 81                rts
 0195                   .dbsym l j 0 c
 0195                   .dbsym l temp 1 i
 0195                   .dbsym l ADVal 3 A[22:11]i
 0195                   .dbsym l flag 25 c
 0195                   .dbsym l tmp 26 A[6:3]i
 0195                   .dbsym l channel 32 c
 0195                   .dbsym l buff 33 A[2:2]c
 0195                   .dbsym l i 35 c
 0195                   .dbsym l ADValue 39 pi
 0195                   .dbsym l cs 38 c
 0195                   .dbend
 0195                   .dbfunc e MidVal _MidVal fi
 0195           ;            tmp -> 0,X
 0195           ;              i -> 2,X
 0195           ;              j -> 3,X
 0195           ;              x -> 6,X
 0195           _MidVal::
 0195                   .dbline -1
 0195 A7FC              ais #-4
 0197 95                tsx
 0198                   .dbline 58
 0198           ;       ADValue[i] =ADVal[i];
 0198           ; }
 0198           ; 
 0198           ; //
 0198           ; INT16U MidVal(INT16U *x)
 0198           ; {
 0198                   .dbline 62
 0198           ;     INT8U i,j;
 0198           ;     INT16U tmp;
 0198           ;     //冒泡法
 0198           ;     for(i = 0; i < 3; i ++)
 0198 6F02              clr 2,X
 019A CC027A            jmp L30
 019D           L27:
 019D                   .dbline 63
 019D           ;        for(j = i; j < 3; j ++)
 019D E602              lda 2,X
 019F E703              sta 3,X
 01A1 CC026F            jmp L34
 01A4           L31:
 01A4                   .dbline 64
 01A4           ;          if( x[i] > x[j] )
 01A4 3F00              clr *__r0
 01A6 E603              lda 3,X
 01A8 B700              sta *__r1
 01AA 3800              lsl *__r1
 01AC 3900              rol *__r0
 01AE B600              lda *__r1
 01B0 EB07              add 7,X
 01B2 B700              sta *__r1
 01B4 B600              lda *__r0
 01B6 E906              adc 6,X
 01B8 B700              sta *__r0
 01BA 5500              ldhx *__r0
 01BC E601              lda 1,x
 01BE B700              sta *__r1
 01C0 F6                lda ,x
 01C1 95                tsx

⌨️ 快捷键说明

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