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

📄 adc22p.lis

📁 为苏州一家公司所做的的恒温恒湿车间控制 系统
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00E3 3F00              clr *__r0
 00E5 E607              lda 7,X
 00E7 B700              sta *__r1
 00E9 3800              lsl *__r1
 00EB 3900              rol *__r0
 00ED B600              lda *__r1
 00EF EB0C              add 12,X
 00F1 B700              sta *__r1
 00F3 B600              lda *__r0
 00F5 E90B              adc 11,X
 00F7 B700              sta *__r0
 00F9 5500              ldhx *__r0
 00FB E601              lda 1,x
 00FD B700              sta *__r3
 00FF F6                lda ,x
 0100 B700              sta *__r2
 0102 A604              lda #4
 0104           X0:
 0104 3400              lsr *__r2
 0106 3600              ror *__r3
 0108 4BFA              dbnza X0
 010A B600              lda *__r2
 010C 5500              ldhx *__r0
 010E F7                sta ,x
 010F B600              lda *__r3
 0111 E701              sta 1,x
 0113 95                tsx
 0114           L16:
 0114                   .dbline 53
 0114 6C07              inc 7,X
 0116           L18:
 0116                   .dbline 53
 0116 E607              lda 7,X
 0118 A115              cmp #21
 011A 23C7              bls L15
 011C                   .dbline -2
 011C           L2:
 011C A709              ais #9
 011E                   .dbline 0 ; func end
 011E 81                rts
 011F                   .dbsym l j 0 c
 011F                   .dbsym l temp 1 s
 011F                   .dbsym l channel 3 c
 011F                   .dbsym l cs 4 c
 011F                   .dbsym l buff 5 A[2:2]c
 011F                   .dbsym l flag 7 c
 011F                   .dbsym l i 8 c
 011F                   .dbsym l ADValue 11 ps
 011F                   .dbend
 011F                   .dbfunc e TLC2543 _TLC2543 fV
 011F           ;           temp -> 0,X
 011F           ;            buf -> 7,X
 011F           ;        channel -> 5,X
 011F           ;             cs -> 3,X
 011F           _TLC2543::
 011F                   .dbline -1
 011F A7FF              ais #-1
 0121 95                tsx
 0122                   .dbline 66
 0122           ;       ADValue[flag]=ADValue[flag]/16;    
 0122           ; }
 0122           ; /*TLC2543芯片A/D转换子程序(TLC2543.c)--------------------------*
 0122           ; *TLC2543的接线:                                                 *
 0122           ; *             ① I/O LOCK(18)接MC08HC908GP32的SPSCK(18)         *
 0122           ; *             ② DATA INPUT(17)接MC08HC908GP32的MOSI(17)        *
 0122           ; *             ③ DATA OUT (16)接MC08HC908GP32的MISO(16)         *
 0122           ; *             ④ 0-1片的片选CS(15)接分别接MC08HC908GP32的PTC0~1 *
 0122           ; *入口:cs-片号,channel-通道号0,1,2 ...10  buf-存放数据的首址   *
 0122           ; *出口:内存buf开始连续两个地址为取出的数(高4位、低8位)        *
 0122           ; *--------------------------------------------------------------*/
 0122           ; void TLC2543(INT16U cs,INT16U channel,INT8U *buf)
 0122           ; {
 0122                   .dbline 68
 0122           ;   INT8U temp;
 0122           ;   CS_D=0xff;     //定义PTC为输出
 0122 A6FF              lda #-1
 0124 B706              sta 0x6
 0126                   .dbline 69
 0126           ;   CS_P = 0xff;         //C口全为高电平        
 0126 A6FF              lda #-1
 0128 B702              sta 0x2
 012A                   .dbline 71
 012A           ;   //TLC2543片选CS=1    
 012A           ;   CS_P &= ~(1<<cs);  //相应片TLC2543的选CS=0,产生高到低的变化    
 012A 6E0000            mov #0,*__r0
 012D 6E0100            mov #1,*__r1
 0130 E604              lda 4,X
 0132 A40F              and #15
 0134 2706              beq X4
 0136           X3:
 0136 3800              lsl *__r1
 0138 3900              rol *__r0
 013A 4BFA              dbnza X3
 013C           X4:
 013C 3300              com *__r1
 013E 3300              com *__r0
 0140 3F00              clr *__r2
 0142 B602              lda 0x2
 0144 B400              and *__r1
 0146 B700              sta *__r1
 0148 B600              lda *__r2
 014A B400              and *__r0
 014C 4E0002            mov *__r1,0x2
 014F                   .dbline 73
 014F           ;      
 014F           ;   SPIDR = (channel<<4) | 0x0C;//入口通道、16位格式、MSB先送出、二进制
 014F E606              lda 6,X
 0151 B700              sta *__r1
 0153 E605              lda 5,X
 0155 B700              sta *__r0
 0157 A604              lda #4
 0159           X5:
 0159 3800              lsl *__r1
 015B 3900              rol *__r0
 015D 4BFA              dbnza X5
 015F B600              lda *__r1
 0161 AA0C              ora #12
 0163 B712              sta 0x12
 0165           L20:
 0165                   .dbline 74
 0165           L21:
 0165                   .dbline 74
 0165           ;   while ((SPISCR & (1<<SendEmyptBit)) == 0); //为0等待,也就是等待SPTE为1 
 0165 0711FD            brclr #3,0x11,L20
 0168           L23:
 0168                   .dbline 76
 0168           L24:
 0168                   .dbline 76
 0168           ;                                           //发送完毕   
 0168           ;   while ((SPISCR & (1<<ReFullBit)) == 0);    //为0等待,也就是等待SPRF为1
 0168 0F11FD            brclr #7,0x11,L23
 016B                   .dbline 78
 016B           ;   //发送控制字,取出上次转换结果高字节 
 016B           ;   *buf = SPIDR; //*buf中存放的是D11~D4位   
 016B E608              lda 8,X
 016D B700              sta *__r1
 016F E607              lda 7,X
 0171 B700              sta *__r0
 0173 B612              lda 0x12
 0175 5500              ldhx *__r0
 0177 F7                sta ,x
 0178 95                tsx
 0179                   .dbline 79
 0179           ;   SPIDR = *buf;       //上次转换结果低字节(后四位为0),握手信号  
 0179 E607              lda 7,X
 017B EE08              ldx 8,X
 017D 87                psha
 017E 8A                pulh
 017F F6                lda ,x
 0180 95                tsx
 0181 B712              sta 0x12
 0183           L26:
 0183                   .dbline 80
 0183           L27:
 0183                   .dbline 80
 0183           ;   while ((SPISCR & (1<<SendEmyptBit)) == 0); //为0等待,也就是等待SPTE为1 
 0183 0711FD            brclr #3,0x11,L26
 0186           L29:
 0186                   .dbline 82
 0186           L30:
 0186                   .dbline 82
 0186           ;                                           //发送完毕   
 0186           ;   while ((SPISCR & (1<<ReFullBit)) == 0);    //为0等待,也就是等待SPRF为1 
 0186 0F11FD            brclr #7,0x11,L29
 0189                   .dbline 84
 0189           ;                                         //接收到数据
 0189           ;   *(buf+1) = SPIDR;// *(buf+1)中存放D3~D0位   
 0189 E608              lda 8,X
 018B AB01              add #1
 018D B700              sta *__r1
 018F E607              lda 7,X
 0191 A900              adc #0
 0193 B700              sta *__r0
 0195 B612              lda 0x12
 0197 5500              ldhx *__r0
 0199 F7                sta ,x
 019A 95                tsx
 019B                   .dbline 85
 019B           ;   CS_P= 0xff; //TLC2543片选CS=1    
 019B A6FF              lda #-1
 019D B702              sta 0x2
 019F                   .dbline 87
 019F           ;   //整合后*buf存放高四位(D11~D8),*(buf+1)中存放低八位(D7~D0) 
 019F           ;   *(buf+1) = (*(buf+1)>>4) | (*buf<<4);    
 019F E608              lda 8,X
 01A1 AB01              add #1
 01A3 B700              sta *__r1
 01A5 E607              lda 7,X
 01A7 A900              adc #0
 01A9 B700              sta *__r0
 01AB E607              lda 7,X
 01AD EE08              ldx 8,X
 01AF 87                psha
 01B0 8A                pulh
 01B1 F6                lda ,x
 01B2 62                nsa
 01B3 A4F0              and #-16
 01B5 B700              sta *__r2
 01B7 5500              ldhx *__r0
 01B9 F6                lda ,x
 01BA B700              sta *__r4
 01BC A604              lda #4
 01BE           X6:
 01BE 3400              lsr *__r4
 01C0 4BFC              dbnza X6
 01C2 B600              lda *__r4
 01C4 BA00              ora *__r2
 01C6 5500              ldhx *__r0
 01C8 F7                sta ,x
 01C9 95                tsx
 01CA                   .dbline 88
 01CA           ;   *buf = *buf>>4;      
 01CA E607              lda 7,X
 01CC EE08              ldx 8,X
 01CE 87                psha
 01CF 8A                pulh
 01D0 F6                lda ,x
 01D1 95                tsx
 01D2 B700              sta *__r0
 01D4 A604              lda #4
 01D6           X7:
 01D6 3400              lsr *__r0
 01D8 4BFC              dbnza X7
 01DA 4E0000            mov *__r0,*__r1
 01DD E608              lda 8,X
 01DF B700              sta *__r3
 01E1 E607              lda 7,X
 01E3 B700              sta *__r2
 01E5 B600              lda *__r1
 01E7 5500              ldhx *__r2
 01E9 F7                sta ,x
 01EA 95                tsx
 01EB                   .dbline -2
 01EB           L19:
 01EB A701              ais #1
 01ED                   .dbline 0 ; func end
 01ED 81                rts
 01EE                   .dbsym l temp 0 c
 01EE                   .dbsym l buf 7 pc
 01EE                   .dbsym l channel 5 s
 01EE                   .dbsym l cs 3 s
 01EE                   .dbend

⌨️ 快捷键说明

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