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

📄 adc11p.lis

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 01C2 B700              sta *__r0
 01C4 3F00              clr *__r2
 01C6 E602              lda 2,X
 01C8 B700              sta *__r3
 01CA 3800              lsl *__r3
 01CC 3900              rol *__r2
 01CE B600              lda *__r3
 01D0 EB07              add 7,X
 01D2 B700              sta *__r3
 01D4 B600              lda *__r2
 01D6 E906              adc 6,X
 01D8 B700              sta *__r2
 01DA 5500              ldhx *__r2
 01DC E601              lda 1,x
 01DE B700              sta *__r3
 01E0 F6                lda ,x
 01E1 B700              sta *__r2
 01E3 5500              ldhx *__r2
 01E5 7500              cphx *__r0
 01E7 95                tsx
 01E8 2203              bhi X3
 01EA CC026D            jmp L35
 01ED           X3:
 01ED                   .dbline 65
 01ED           ;          {
 01ED                   .dbline 66
 01ED           ;             tmp=x[i];
 01ED 3F00              clr *__r0
 01EF E602              lda 2,X
 01F1 B700              sta *__r1
 01F3 3800              lsl *__r1
 01F5 3900              rol *__r0
 01F7 B600              lda *__r1
 01F9 EB07              add 7,X
 01FB B700              sta *__r1
 01FD B600              lda *__r0
 01FF E906              adc 6,X
 0201 B700              sta *__r0
 0203 5500              ldhx *__r0
 0205 E601              lda 1,x
 0207 9EE702            sta 2,SP
 020A F6                lda ,x
 020B 95                tsx
 020C F7                sta ,X
 020D                   .dbline 67
 020D           ;             x[i]=x[j];
 020D 3F00              clr *__r0
 020F E603              lda 3,X
 0211 B700              sta *__r1
 0213 3800              lsl *__r1
 0215 3900              rol *__r0
 0217 B600              lda *__r1
 0219 EB07              add 7,X
 021B B700              sta *__r1
 021D B600              lda *__r0
 021F E906              adc 6,X
 0221 B700              sta *__r0
 0223 5500              ldhx *__r0
 0225 E601              lda 1,x
 0227 B700              sta *__r1
 0229 F6                lda ,x
 022A 95                tsx
 022B B700              sta *__r0
 022D 3F00              clr *__r2
 022F E602              lda 2,X
 0231 B700              sta *__r3
 0233 3800              lsl *__r3
 0235 3900              rol *__r2
 0237 B600              lda *__r3
 0239 EB07              add 7,X
 023B B700              sta *__r3
 023D B600              lda *__r2
 023F E906              adc 6,X
 0241 B700              sta *__r2
 0243 B600              lda *__r0
 0245 5500              ldhx *__r2
 0247 F7                sta ,x
 0248 B600              lda *__r1
 024A E701              sta 1,x
 024C 95                tsx
 024D                   .dbline 68
 024D           ;             x[j]=tmp; 
 024D 3F00              clr *__r0
 024F E603              lda 3,X
 0251 B700              sta *__r1
 0253 3800              lsl *__r1
 0255 3900              rol *__r0
 0257 B600              lda *__r1
 0259 EB07              add 7,X
 025B B700              sta *__r1
 025D B600              lda *__r0
 025F E906              adc 6,X
 0261 B700              sta *__r0
 0263 F6                lda ,X
 0264 5500              ldhx *__r0
 0266 F7                sta ,x
 0267 9EE602            lda 2,SP
 026A E701              sta 1,x
 026C 95                tsx
 026D                   .dbline 69
 026D           ;          }
 026D           L35:
 026D           L32:
 026D                   .dbline 63
 026D 6C03              inc 3,X
 026F           L34:
 026F                   .dbline 63
 026F E603              lda 3,X
 0271 A103              cmp #3
 0273 2403              bhs X4
 0275 CC01A4            jmp L31
 0278           X4:
 0278           L28:
 0278                   .dbline 62
 0278 6C02              inc 2,X
 027A           L30:
 027A                   .dbline 62
 027A E602              lda 2,X
 027C A103              cmp #3
 027E 2403              bhs X5
 0280 CC019D            jmp L27
 0283           X5:
 0283                   .dbline 71
 0283           ;     
 0283           ;     return x[1];
 0283 E607              lda 7,X
 0285 AB02              add #2
 0287 B700              sta *__r1
 0289 E606              lda 6,X
 028B A900              adc #0
 028D B700              sta *__r0
 028F 5500              ldhx *__r0
 0291 E601              lda 1,x
 0293 B700              sta *__r1
 0295 F6                lda ,x
 0296 95                tsx
 0297 B700              sta *__r0
 0299                   .dbline -2
 0299           L26:
 0299 A704              ais #4
 029B                   .dbline 0 ; func end
 029B 81                rts
 029C                   .dbsym l tmp 0 i
 029C                   .dbsym l i 2 c
 029C                   .dbsym l j 3 c
 029C                   .dbsym l x 6 pi
 029C                   .dbend
 029C                   .dbfunc e TLC2543 _TLC2543 fV
 029C           ;           temp -> 0,X
 029C           ;            buf -> 7,X
 029C           ;        channel -> 5,X
 029C           ;             cs -> 3,X
 029C           _TLC2543::
 029C                   .dbline -1
 029C A7FF              ais #-1
 029E 95                tsx
 029F                   .dbline 89
 029F           ; }
 029F           ; 
 029F           ; 
 029F           ; 
 029F           ; //TLC2543芯片A/D转换子程序(TLC2543.c)--------------------------------------*
 029F           ; //TLC2543的接线:                                                           *
 029F           ; //             ① I/O LOCK(18)接MC08HC908GP32的SPSCK(18)                   *
 029F           ; //             ② DATA INPUT(17)接MC08HC908GP32的MOSI(17)                  *
 029F           ; //             ③ DATA OUT (16)接MC08HC908GP32的MISO(16)                   *
 029F           ; //             ④ 0-1片的片选CS(15)接分别接MC08HC908GP32的PTC0~1           *
 029F           ; //参  数:cs-片号,cs=0~7对应PTC0~7                                         *
 029F           ; //        channel-通道号0,1,2 ...10  buf-存放数据的首址                    *
 029F           ; //返  回:内存buf开始连续两个地址为取出的数(高4位、低8位)                *
 029F           ; //说  明:(070418)将CS_D=0xff;    CS_P=0xff                               *
 029F           ; //              改为CS_D|=1<<cs;   CS_P|= 1<<cs;以避免影响PTC其他口        *
 029F           ; //-------------------------------------------------------------------------*
 029F           ; void TLC2543(INT16U cs,INT16U channel,INT8U *buf)
 029F           ; {
 029F                   .dbline 93
 029F           ;   INT8U temp;
 029F           ;   
 029F           ;   //1 初始化片选信号为1
 029F           ;   CS_D |=1<<cs;    //定义PTC的第cs引脚为输出
 029F 6E0000            mov #0,*__r0
 02A2 6E0100            mov #1,*__r1
 02A5 E604              lda 4,X
 02A7 A40F              and #15
 02A9 2706              beq X7
 02AB           X6:
 02AB 3800              lsl *__r1
 02AD 3900              rol *__r0
 02AF 4BFA              dbnza X6
 02B1           X7:
 02B1 3F00              clr *__r2
 02B3 B606              lda 0x6
 02B5 BA00              ora *__r1
 02B7 B700              sta *__r1
 02B9 B600              lda *__r2
 02BB BA00              ora *__r0
 02BD 4E0006            mov *__r1,0x6
 02C0                   .dbline 94
 02C0           ;   CS_P |=1<<cs;          //C口的第cs引脚为高电平
 02C0 6E0000            mov #0,*__r0
 02C3 6E0100            mov #1,*__r1
 02C6 E604              lda 4,X
 02C8 A40F              and #15
 02CA 2706              beq X9
 02CC           X8:
 02CC 3800              lsl *__r1
 02CE 3900              rol *__r0
 02D0 4BFA              dbnza X8
 02D2           X9:
 02D2 3F00              clr *__r2
 02D4 B602              lda 0x2
 02D6 BA00              ora *__r1
 02D8 B700              sta *__r1
 02DA B600              lda *__r2
 02DC BA00              ora *__r0
 02DE 4E0002            mov *__r1,0x2
 02E1                   .dbline 97
 02E1           ;       
 02E1           ;   //2 相应片TLC2543的选CS=0,产生高到低的变化    
 02E1           ;   CS_P &= ~(1<<cs);      
 02E1 6E0000            mov #0,*__r0
 02E4 6E0100            mov #1,*__r1
 02E7 E604              lda 4,X
 02E9 A40F              and #15
 02EB 2706              beq X11
 02ED           X10:
 02ED 3800              lsl *__r1
 02EF 3900              rol *__r0
 02F1 4BFA              dbnza X10
 02F3           X11:
 02F3 3300              com *__r1
 02F5 3300              com *__r0
 02F7 3F00              clr *__r2
 02F9 B602              lda 0x2
 02FB B400              and *__r1
 02FD B700              sta *__r1
 02FF B600              lda *__r2
 0301 B400              and *__r0
 0303 4E0002            mov *__r1,0x2
 0306                   .dbline 100
 0306           ;   
 0306           ;   //3 写控制字到相应片TLC2543   
 0306           ;   SPDR = (channel<<4) | 0x0C;//入口通道、16位格式、MSB先送出、二进制
 0306 E606              lda 6,X
 0308 B700              sta *__r1
 030A E605              lda 5,X
 030C B700              sta *__r0
 030E A604              lda #4
 0310           X12:
 0310 3800              lsl *__r1
 0312 3900              rol *__r0
 0314 4BFA              dbnza X12
 0316 B600              lda *__r1
 0318 AA0C              ora #12
 031A B712              sta 0x12
 031C           L38:
 031C                   .dbline 103
 031C           L39:
 031C                   .dbline 103
 031C           ;   
 031C           ;   //4 等待发送器空
 031C           ;   while ((SPSCR & (1<<SendEmyptBit)) == 0); //为0等待,也就是等待SPTE为1 
 031C 0711FD            brclr #3,0x11,L38
 031F           L41:
 031F                   .dbline 106
 031F           L42:
 031F                   .dbline 106
 031F           ;   
 031F           ;   //5 等待接收器满
 031F           ;   while ((SPSCR & (1<<ReFullBit)) == 0);    //为0等待,也就是等待SPRF为1
 031F 0F11FD            brclr #7,0x11,L41
 0322                   .dbline 109
 0322           ;   
 0322           ;   //6 取出上次转换结果高字节 
 0322           ;   *buf = SPDR; //*buf中存放的是D11~D4位   
 0322 E608              lda 8,X
 0324 B700              sta *__r1
 0326 E607              lda 7,X
 0328 B700              sta *__r0
 032A B612              lda 0x12
 032C 5500              ldhx *__r0
 032E F7                sta ,x
 032F 95                tsx
 0330                   .dbline 110
 0330           ;   SPDR = *buf;        //上次转换结果低字节(后四位为0),握手信号
 0330 E607              lda 7,X
 0332 EE08              ldx 8,X
 0334 87                psha
 0335 8A                pulh
 0336 F6                lda ,x
 0337 95                tsx
 0338 B712              sta 0x12
 033A           L44:
 033A                   .dbline 113
 033A           L45:
 033A                   .dbline 113
 033A           ;   
 033A           ;   //7 等待发送结束  
 033A           ;   while ((SPSCR & (1<<SendEmyptBit)) == 0); //为0等待,也就是等待SPTE为1 
 033A 0711FD            brclr #3,0x11,L44
 033D           L47:
 033D                   .dbline 116
 033D           L48:
 033D                   .dbline 116
 033D           ;   
 033D           ;   //8 等待新数据到达
 033D           ;   while ((SPSCR & (1<<ReFullBit)) == 0);    //为0等待,也就是等待SPRF为1 
 033D 0F11FD            brclr #7,0x11,L47
 0340                   .dbline 119
 0340           ;   
 0340           ;   //9 取出上次转换结果的低4位 
 0340           ;   *(buf+1) = SPDR;// *(buf+1)中存放D3~D0位(后四位为0)
 0340 E608              lda 8,X
 0342 AB01              add #1
 0344 B700              sta *__r1
 0346 E607              lda 7,X
 0348 A900              adc #0
 034A B700              sta *__r0
 034C B612              lda 0x12
 034E 5500              ldhx *__r0
 0350 F7                sta ,x
 0351 95                tsx
 0352                   .dbline 122
 0352           ;   
 0352           ;   //10 TLC2543片选CS=1   
 0352           ;   CS_P |=1<<cs;
 0352 6E0000            mov #0,*__r0
 0355 6E0100            mov #1,*__r1
 0358 E604              lda 4,X
 035A A40F              and #15
 035C 2706              beq X14
 035E           X13:
 035E 3800              lsl *__r1
 0360 3900              rol *__r0
 0362 4BFA              dbnza X13
 0364           X14:
 0364 3F00              clr *__r2
 0366 B602              lda 0x2
 0368 BA00              ora *__r1
 036A B700              sta *__r1
 036C B600              lda *__r2
 036E BA00              ora *__r0
 0370 4E0002            mov *__r1,0x2
 0373                   .dbline 125
 0373           ;           
 0373           ;   //11 整合后*buf存放高四位(D11~D8),*(buf+1)中存放低八位(D7~D0) 
 0373           ;   *(buf+1) = (*(buf+1)>>4) | (*buf<<4);    
 0373 E608              lda 8,X
 0375 AB01              add #1
 0377 B700              sta *__r1
 0379 E607              lda 7,X
 037B A900              adc #0
 037D B700              sta *__r0
 037F E607              lda 7,X
 0381 EE08              ldx 8,X
 0383 87                psha
 0384 8A                pulh
 0385 F6                lda ,x
 0386 62                nsa
 0387 A4F0              and #-16
 0389 B700              sta *__r2
 038B 5500              ldhx *__r0
 038D F6                lda ,x
 038E B700              sta *__r4
 0390 A604              lda #4
 0392           X15:
 0392 3400              lsr *__r4
 0394 4BFC              dbnza X15
 0396 B600              lda *__r4
 0398 BA00              ora *__r2
 039A 5500              ldhx *__r0
 039C F7                sta ,x
 039D 95                tsx
 039E                   .dbline 126
 039E           ;   *buf = *buf>>4;    
 039E E607              lda 7,X
 03A0 EE08              ldx 8,X
 03A2 87                psha
 03A3 8A                pulh
 03A4 F6                lda ,x
 03A5 95                tsx
 03A6 B700              sta *__r0
 03A8 A604              lda #4
 03AA           X16:
 03AA 3400              lsr *__r0
 03AC 4BFC              dbnza X16
 03AE 4E0000            mov *__r0,*__r1
 03B1 E608              lda 8,X
 03B3 B700              sta *__r3
 03B5 E607              lda 7,X
 03B7 B700              sta *__r2
 03B9 B600              lda *__r1
 03BB 5500              ldhx *__r2
 03BD F7                sta ,x
 03BE 95                tsx
 03BF                   .dbline -2
 03BF           L37:
 03BF A701              ais #1
 03C1                   .dbline 0 ; func end
 03C1 81                rts
 03C2                   .dbsym l temp 0 c
 03C2                   .dbsym l buf 7 pc
 03C2                   .dbsym l channel 5 i
 03C2                   .dbsym l cs 3 i
 03C2                   .dbend

⌨️ 快捷键说明

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