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

📄 sci_po~1.lst

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 LST
📖 第 1 页 / 共 3 页
字号:
    823D 39 40        rol	*__r0
    823F B6 41        ldA	*__r1
    8241 EB 0C        add	12,X
    8243 B7 41        stA	*__r1
    8245 B6 40        ldA	*__r0
    8247 E9 0B        adc	11,X
    8249 B7 40        stA	*__r0
    824B 55 40        ldHX	*__r0
    824D E6 01        ldA	1,X
    824F B7 43        stA	*__r3
    8251 F6           ldA	0,X
    8252 95           tSX	
    8253 B7 42        stA	*__r2
    8255 B6 43        ldA	*__r3
    8257 EB 03        add	3,X
    8259 B7 43        stA	*__r3
    825B B6 42        ldA	*__r2
    825D E9 02        adc	2,X
    825F 55 40        ldHX	*__r0
    8261 F7           stA	0,X
    8262 B6 43        ldA	*__r3
    8264 E7 01        stA	1,X
    8266 95           tSX	
(0038)         flag++;    
    8267 6C 06        inc	6,X
(0039)       }
    8269 6C 07        inc	7,X
    826B E6 07        ldA	7,X
    826D A1 0A        cmp	#10
    826F 23 82        bls	0x81F3
(0040)     } 
    8271 6C 01        inc	1,X
    8273 E6 01        ldA	1,X
    8275 A1 10        cmp	#16
    8277 22 03        bhi	0x827C
    8279 CC 81ED      jmp	0x81ED
(0041)        
(0042)     //4 求22路A/D数据的16次平均值   
(0043)     for(flag=0;flag<=10;flag++)     
    827C 6F 06        clr	6,X
    827E 20 33        bra	0x82B3
(0044)        ADValue[flag]=ADValue[flag]/16;
    8280 3F 40        clr	*__r0
    8282 E6 06        ldA	6,X
    8284 B7 41        stA	*__r1
    8286 38 41        lsl	*__r1
    8288 39 40        rol	*__r0
    828A B6 41        ldA	*__r1
    828C EB 0C        add	12,X
    828E B7 41        stA	*__r1
    8290 B6 40        ldA	*__r0
    8292 E9 0B        adc	11,X
    8294 B7 40        stA	*__r0
    8296 55 40        ldHX	*__r0
    8298 E6 01        ldA	1,X
    829A B7 43        stA	*__r3
    829C F6           ldA	0,X
    829D B7 42        stA	*__r2
    829F A6 04        ldA	#4
    82A1 34 42        lsr	*__r2
    82A3 36 43        ror	*__r3
    82A5 4B FA        dbnzA	0x8294
    82A7 B6 42        ldA	*__r2
    82A9 55 40        ldHX	*__r0
    82AB F7           stA	0,X
    82AC B6 43        ldA	*__r3
    82AE E7 01        stA	1,X
    82B0 95           tSX	
    82B1 6C 06        inc	6,X
    82B3 E6 06        ldA	6,X
    82B5 A1 0A        cmp	#10
    82B7 23 C7        bls	0x8280
    82B9 A7 08        aiS	#8
    82BB 81           rts	
_TLC2543:
  temp                 --> X+0
  buf                  --> X+7
  channel              --> X+5
  cs                   --> X+3
    82BC A7 FF        aiS	#-1
    82BE 95           tSX	
(0045) }
(0046) 
(0047) //TLC2543芯片A/D转换子程序(TLC2543.c)--------------------------------------*
(0048) //TLC2543的接线:                                                           *
(0049) //             ① I/O LOCK(18)接MC08HC908GP32的SPSCK(18)                   *
(0050) //             ② DATA INPUT(17)接MC08HC908GP32的MOSI(17)                  *
(0051) //             ③ DATA OUT (16)接MC08HC908GP32的MISO(16)                   *
(0052) //             ④ 0-1片的片选CS(15)接分别接MC08HC908GP32的PTC0~1           *
(0053) //参  数:cs-片号,cs=0~7对应PTC0~7                                         *
(0054) //        channel-通道号0,1,2 ...10  buf-存放数据的首址                    *
(0055) //返  回:内存buf开始连续两个地址为取出的数(高4位、低8位)                *
(0056) //说  明:(070418)将CS_D=0xff;    CS_P=0xff                               *
(0057) //              改为CS_D|=1<<cs;   CS_P|= 1<<cs;以避免影响PTC其他口        *
(0058) //-------------------------------------------------------------------------*
(0059) void TLC2543(INT16U cs,INT16U channel,INT8U *buf)
(0060) {
    82BF 6E 0040      mov	#0,*__r0
    82C2 6E 0141      mov	#1,*__r1
    82C5 E6 04        ldA	4,X
    82C7 A4 0F        and	#15
    82C9 27 06        beq	0x82D1
    82CB 38 41        lsl	*__r1
    82CD 39 40        rol	*__r0
    82CF 4B FA        dbnzA	0x8312
    82D1 3F 42        clr	*__r2
    82D3 B6 06        ldA	0x06
    82D5 BA 41        orA	*__r1
    82D7 B7 41        stA	*__r1
    82D9 B6 42        ldA	*__r2
    82DB BA 40        orA	*__r0
    82DD 4E 4106      mov	*__r1,0x06
(0061)   INT8U temp;
(0062)   
(0063)   //1 初始化片选信号为1
(0064)   CS_D |=1<<cs;    //定义PTC的第cs引脚为输出
(0065)   CS_P |=1<<cs;	   //C口的第cs引脚为高电平
    82E0 6E 0040      mov	#0,*__r0
    82E3 6E 0141      mov	#1,*__r1
    82E6 E6 04        ldA	4,X
    82E8 A4 0F        and	#15
    82EA 27 06        beq	0x82F2
    82EC 38 41        lsl	*__r1
    82EE 39 40        rol	*__r0
    82F0 4B FA        dbnzA	0x8333
    82F2 3F 42        clr	*__r2
    82F4 B6 02        ldA	0x02
    82F6 BA 41        orA	*__r1
    82F8 B7 41        stA	*__r1
    82FA B6 42        ldA	*__r2
    82FC BA 40        orA	*__r0
    82FE 4E 4102      mov	*__r1,0x02
(0066)   	
(0067)   //2 相应片TLC2543的选CS=0,产生高到低的变化    
(0068)   CS_P &= ~(1<<cs);      
    8301 6E 0040      mov	#0,*__r0
    8304 6E 0141      mov	#1,*__r1
    8307 E6 04        ldA	4,X
    8309 A4 0F        and	#15
    830B 27 06        beq	0x8313
    830D 38 41        lsl	*__r1
    830F 39 40        rol	*__r0
    8311 4B FA        dbnzA	0x8354
    8313 33 41        com	*__r1
    8315 33 40        com	*__r0
    8317 3F 42        clr	*__r2
    8319 B6 02        ldA	0x02
    831B B4 41        and	*__r1
    831D B7 41        stA	*__r1
    831F B6 42        ldA	*__r2
    8321 B4 40        and	*__r0
    8323 4E 4102      mov	*__r1,0x02
(0069)   
(0070)   //3 写控制字到相应片TLC2543   
(0071)   SPDR = (channel<<4) | 0x0C;//入口通道、16位格式、MSB先送出、二进制
    8326 E6 06        ldA	6,X
    8328 B7 41        stA	*__r1
    832A E6 05        ldA	5,X
    832C B7 40        stA	*__r0
    832E A6 04        ldA	#4
    8330 38 41        lsl	*__r1
    8332 39 40        rol	*__r0
    8334 4B FA        dbnzA	0x8338
    8336 B6 41        ldA	*__r1
    8338 AA 0C        orA	#12
    833A B7 12        stA	0x12
(0072)   
(0073)   //4 等待发送器空
(0074)   while ((SPSCR & (1<<SendEmyptBit)) == 0); //为0等待,也就是等待SPTE为1 
    833C 07 11FD      BRclr	3,0x11,0x833C
(0075)   
(0076)   //5 等待接收器满
(0077)   while ((SPSCR & (1<<ReFullBit)) == 0);    //为0等待,也就是等待SPRF为1
    833F 0F 11FD      BRclr	7,0x11,0x833F
(0078)   
(0079)   //6 取出上次转换结果高字节 
(0080)   *buf = SPDR; //*buf中存放的是D11~D4位   
    8342 E6 08        ldA	8,X
    8344 B7 41        stA	*__r1
    8346 E6 07        ldA	7,X
    8348 B7 40        stA	*__r0
    834A B6 12        ldA	0x12
    834C 55 40        ldHX	*__r0
    834E F7           stA	0,X
    834F 95           tSX	
(0081)   SPDR = *buf;	//上次转换结果低字节(后四位为0),握手信号
    8350 E6 07        ldA	7,X
    8352 EE 08        ldX	8,X
    8354 87           pshA	
    8355 8A           pulH	
    8356 F6           ldA	0,X
    8357 95           tSX	
    8358 B7 12        stA	0x12
(0082)   
(0083)   //7 等待发送结束  
(0084)   while ((SPSCR & (1<<SendEmyptBit)) == 0); //为0等待,也就是等待SPTE为1 
    835A 07 11FD      BRclr	3,0x11,0x835A
(0085)   
(0086)   //8 等待新数据到达
(0087)   while ((SPSCR & (1<<ReFullBit)) == 0);    //为0等待,也就是等待SPRF为1 
    835D 0F 11FD      BRclr	7,0x11,0x835D
(0088)   
(0089)   //9 取出上次转换结果的低4位 
(0090)   *(buf+1) = SPDR;// *(buf+1)中存放D3~D0位(后四位为0)
    8360 E6 08        ldA	8,X
    8362 AB 01        add	#1
    8364 B7 41        stA	*__r1
    8366 E6 07        ldA	7,X
    8368 A9 00        adc	#0
    836A B7 40        stA	*__r0
    836C B6 12        ldA	0x12
    836E 55 40        ldHX	*__r0
    8370 F7           stA	0,X
    8371 95           tSX	
(0091)   
(0092)   //10 TLC2543片选CS=1   
(0093)   CS_P |=1<<cs;
    8372 6E 0040      mov	#0,*__r0
    8375 6E 0141      mov	#1,*__r1
    8378 E6 04        ldA	4,X
    837A A4 0F        and	#15
    837C 27 06        beq	0x8384
    837E 38 41        lsl	*__r1
    8380 39 40        rol	*__r0
    8382 4B FA        dbnzA	0x83C5
    8384 3F 42        clr	*__r2
    8386 B6 02        ldA	0x02
    8388 BA 41        orA	*__r1
    838A B7 41        stA	*__r1
    838C B6 42        ldA	*__r2
    838E BA 40        orA	*__r0
    8390 4E 4102      mov	*__r1,0x02
(0094)   	    
(0095)   //11 整合后*buf存放高四位(D11~D8),*(buf+1)中存放低八位(D7~D0) 
(0096)   *(buf+1) = (*(buf+1)>>4) | (*buf<<4);    
    8393 E6 08        ldA	8,X
    8395 AB 01        add	#1
    8397 B7 41        stA	*__r1
    8399 E6 07        ldA	7,X
    839B A9 00        adc	#0
    839D B7 40        stA	*__r0
    839F E6 07        ldA	7,X
    83A1 EE 08        ldX	8,X
    83A3 87           pshA	
    83A4 8A           pulH	
    83A5 F6           ldA	0,X
    83A6 62           nsa	
    83A7 A4 F0        and	#-16
    83A9 B7 42        stA	*__r2
    83AB 55 40        ldHX	*__r0
    83AD F6           ldA	0,X
    83AE B7 44        stA	*__r4
    83B0 A6 04        ldA	#4
    83B2 34 44        lsr	*__r4
    83B4 4B FC        dbnzA	0x83B8
    83B6 B6 44        ldA	*__r4
    83B8 BA 42        orA	*__r2
    83BA 55 40        ldHX	*__r0
    83BC F7           stA	0,X
    83BD 95           tSX	
(0097)   *buf = *buf>>4;    
FILE: <library>
    83BE E6 07        ldA	7,X
    83C0 EE 08        ldX	8,X
    83C2 87           pshA	
    83C3 8A           pulH	
    83C4 F6           ldA	0,X
    83C5 95           tSX	
    83C6 B7 40        stA	*__r0
    83C8 A6 04        ldA	#4
    83CA 34 40        lsr	*__r0
    83CC 4B FC        dbnzA	0x83D0
    83CE 4E 4041      mov	*__r0,*__r1
    83D1 E6 08        ldA	8,X
    83D3 B7 43        stA	*__r3
    83D5 E6 07        ldA	7,X
    83D7 B7 42        stA	*__r2
    83D9 B6 41        ldA	*__r1
    83DB 55 42        ldHX	*__r2
    83DD F7           stA	0,X
    83DE 95           tSX	
    83DF A7 01        aiS	#1
    83E1 81           rts	
__HC08Setup:
    83E2 81           rts	

⌨️ 快捷键说明

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