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

📄 adc22p.lis

📁 为苏州一家公司所做的的恒温恒湿车间控制 系统
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module ADC22P.c
                        .area text
 0000                   .dbfile ADC22P.c
 0000                   .dbfunc e AD_SPIInit _AD_SPIInit fV
 0000           _AD_SPIInit::
 0000                   .dbline -1
 0000                   .dbline 16
 0000           ; /*-----------------------------------------------------*
 0000           ; *文件描述:本文件包含了AD采集的2子程序,分别为:          * 
 0000           ; *(1)ADC22P:2片2543-22路AD采集                         *
 0000           ; *(2)TLC2543:TLC2543芯片A/D转换子程序                   *
 0000           ; *-------------《嵌入式应用技术基础教程》--------------*/
 0000           ; #include "Includes.h"
 0000           ; /*SPIInit:SPI初始化子程序-------------------------------*
 0000           ; *功 能:对SPI进行初始化,默认为允许SPI,主机工作方式,时钟  *
 0000           ; *      空闲低电平,比特率8分频,                         *
 0000           ; *      波特率为CGMOUT/2*BD(设CGMOUT=2*fBUS=2*2.4576MHz)*
 0000           ; *参 数:无                                               *
 0000           ; *返 回:无                                               *
 0000           ; *------------------------------------------------------*/
 0000           ; #include "Includes.h"
 0000           ; void AD_SPIInit(void)
 0000           ;  {  
 0000                   .dbline 17
 0000           ;       SPCR=0b00100010;   //不产生中断、主机方式、时钟空闲低电平
 0000 A622              lda #34
 0002 B710              sta 0x10
 0004                   .dbline 18
 0004           ;       SPSCR=0b00000001;  //8分频
 0004 A601              lda #1
 0006 B711              sta 0x11
 0008                   .dbline -2
 0008           L1:
 0008                   .dbline 0 ; func end
 0008 81                rts
 0009                   .dbend
 0009                   .dbfunc e ADC22P _ADC22P fV
 0009           ;              j -> 0,X
 0009           ;           temp -> 1,X
 0009           ;        channel -> 3,X
 0009           ;             cs -> 4,X
 0009           ;           buff -> 5,X
 0009           ;           flag -> 7,X
 0009           ;              i -> 8,X
 0009           ;        ADValue -> 11,X
 0009           _ADC22P::
 0009                   .dbline -1
 0009 A7F7              ais #-9
 000B 95                tsx
 000C                   .dbline 28
 000C           ;  }
 000C           ; //------------------------------------------------------------------*
 000C           ; /*A/D转换并求平均值(22路)子程序(AD22P.ASM)-----------------------*
 000C           ; *功能:采集TLC2543(0)-(1)片,共22通道,取16次平均值放入内存ADValue *
 000C           ; *入口:无                                                          *
 000C           ; *出口:ADValue--22路通道的16次平均采样值                           *
 000C           ; *调用:TLC2543Z                                                    *
 000C           ; *-----------------------------------------------------------------*/
 000C           ; void ADC22P(INT16U *ADValue)
 000C           ; {   
 000C                   .dbline 33
 000C           ;       INT8U i,j,flag,buff[2]; 
 000C           ;       INT8U cs,channel;
 000C           ;     INT16U temp; 
 000C           ;     //A/D数据区清0   
 000C           ;     for(flag=0;flag<=21;flag++)      
 000C 6F07              clr 7,X
 000E 2020              bra L6
 0010           L3:
 0010                   .dbline 34
 0010 3F00              clr *__r0
 0012 E607              lda 7,X
 0014 B700              sta *__r1
 0016 3800              lsl *__r1
 0018 3900              rol *__r0
 001A B600              lda *__r1
 001C EB0C              add 12,X
 001E B700              sta *__r1
 0020 B600              lda *__r0
 0022 E90B              adc 11,X
 0024 B700              sta *__r0
 0026 4F                clra
 0027 5500              ldhx *__r0
 0029 F7                sta ,x
 002A 4F                clra
 002B E701              sta 1,x
 002D 95                tsx
 002E           L4:
 002E                   .dbline 33
 002E 6C07              inc 7,X
 0030           L6:
 0030                   .dbline 33
 0030 E607              lda 7,X
 0032 A115              cmp #21
 0034 23DA              bls L3
 0036                   .dbline 37
 0036           ;       ADValue[flag]=0; 
 0036           ;     //启动第0片TLC2543的0通道转换,得到"空数据"--不要   
 0036           ;     //对22个通道采集数据,每一路采集16次,16次的数据总和-->ADValue       
 0036           ;     for(j=0;j<16;j++)
 0036 7F                clr ,X
 0037 CC00D7            jmp L10
 003A           L7:
 003A                   .dbline 38
 003A           ;     {
 003A                   .dbline 39
 003A           ;       flag=0;
 003A 6F07              clr 7,X
 003C                   .dbline 40
 003C           ;       for(i=0;i<22;i++)
 003C 6F08              clr 8,X
 003E CC00CD            jmp L14
 0041           L11:
 0041                   .dbline 41
 0041                   .dbline 42
 0041 E608              lda 8,X
 0043 AE0B              ldx #11
 0045 8C                clrh
 0046 52                div
 0047 95                tsx
 0048 E704              sta 4,X
 004A                   .dbline 43
 004A E608              lda 8,X
 004C AE0B              ldx #11
 004E 8C                clrh
 004F 52                div
 0050 8B                pshh
 0051 86                pula
 0052 95                tsx
 0053 E703              sta 3,X
 0055                   .dbline 44
 0055 AF05              aix #5
 0057 89                pshx
 0058 8B                pshh
 0059 95                tsx
 005A AF02              aix #2
 005C 3F00              clr *__r0
 005E E603              lda 3,X
 0060 87                psha
 0061 B600              lda *__r0
 0063 87                psha
 0064 3F00              clr *__r0
 0066 E604              lda 4,X
 0068 87                psha
 0069 B600              lda *__r0
 006B 87                psha
 006C CD011F            jsr _TLC2543
 006F A706              ais #6
 0071 95                tsx
 0072                   .dbline 45
 0072 AF05              aix #5
 0074 89                pshx
 0075 8B                pshh
 0076 95                tsx
 0077 AF02              aix #2
 0079 3F00              clr *__r0
 007B E603              lda 3,X
 007D 87                psha
 007E B600              lda *__r0
 0080 87                psha
 0081 3F00              clr *__r0
 0083 E604              lda 4,X
 0085 87                psha
 0086 B600              lda *__r0
 0088 87                psha
 0089 CD011F            jsr _TLC2543
 008C A706              ais #6
 008E 95                tsx
 008F                   .dbline 47
 008F E605              lda 5,X
 0091 E701              sta 1,X
 0093 E606              lda 6,X
 0095 E702              sta 2,X
 0097                   .dbline 48
 0097 3F00              clr *__r0
 0099 E607              lda 7,X
 009B B700              sta *__r1
 009D 3800              lsl *__r1
 009F 3900              rol *__r0
 00A1 B600              lda *__r1
 00A3 EB0C              add 12,X
 00A5 B700              sta *__r1
 00A7 B600              lda *__r0
 00A9 E90B              adc 11,X
 00AB B700              sta *__r0
 00AD 5500              ldhx *__r0
 00AF E601              lda 1,x
 00B1 B700              sta *__r3
 00B3 F6                lda ,x
 00B4 95                tsx
 00B5 B700              sta *__r2
 00B7 B600              lda *__r3
 00B9 EB02              add 2,X
 00BB B700              sta *__r3
 00BD B600              lda *__r2
 00BF E901              adc 1,X
 00C1 5500              ldhx *__r0
 00C3 F7                sta ,x
 00C4 B600              lda *__r3
 00C6 E701              sta 1,x
 00C8 95                tsx
 00C9                   .dbline 49
 00C9 6C07              inc 7,X
 00CB                   .dbline 50
 00CB           L12:
 00CB                   .dbline 40
 00CB 6C08              inc 8,X
 00CD           L14:
 00CD                   .dbline 40
 00CD E608              lda 8,X
 00CF A116              cmp #22
 00D1 2403              bhs X1
 00D3 CC0041            jmp L11
 00D6           X1:
 00D6                   .dbline 51
 00D6           L8:
 00D6                   .dbline 37
 00D6 7C                inc ,X
 00D7           L10:
 00D7                   .dbline 37
 00D7 F6                lda ,X
 00D8 A110              cmp #16
 00DA 2403              bhs X2
 00DC CC003A            jmp L7
 00DF           X2:
 00DF                   .dbline 53
 00DF           ;       { 
 00DF           ;         cs=i/11;
 00DF           ;         channel=i%11;      
 00DF           ;         TLC2543(cs,channel,buff);
 00DF           ;         TLC2543(cs,channel,buff);
 00DF           ;         //从内存buff取出数据-->ADValue[flag]中         
 00DF           ;         temp=*((unsigned int *)buff);         
 00DF           ;         ADValue[flag]=ADValue[flag]+temp;
 00DF           ;         flag++;       
 00DF           ;       }
 00DF           ;     }
 00DF           ;     //求22路A/D数据的16次平均值   
 00DF           ;     for(flag=0;flag<=21;flag++)     
 00DF 6F07              clr 7,X
 00E1 2033              bra L18
 00E3           L15:
 00E3                   .dbline 54

⌨️ 快捷键说明

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