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

📄 tg1286~1.lst

📁 为日本瑞萨苏州分公司做的一个温控系统
💻 LST
📖 第 1 页 / 共 4 页
字号:
    861E 95           tSX	
    861F 25 E0        bcs	0x8601
    8621 A7 02        aiS	#2
    8623 81           rts	
_SCISend1:
  o                    --> X+2
    8624 95           tSX	
FILE: SCI.c
(0001) /*-----------------------------------------------------*
(0002) *文件描述:本文件包含了串行通信的4子程序,分别为:        *  
(0003) *(1)SCISend1:串行发送1字节                             *
(0004) *(2)SCISendN:串行发送n字节                             *
(0005) *(3)SCIRe1:串行接收1字节                               *
(0006) *(4)SCIReN:串行接收n字节                               *
(0007) *-------------《嵌入式应用技术基础教程》--------------*/
(0008) //[以下为子程序源代码]
(0009) //[包含头文件]
(0010) #include "SCI.h"
(0011) /*SCISend1:串行发送1个字节-----------------------------*
(0012) *功  能:串行发送1个字节                                *
(0013) *参  数:要发送的数据                                   *
(0014) *返  回:无                                             *
(0015) *-----------------------------------------------------*/
(0016) void SCISend1(unsigned char o)
(0017)  {//判断ReStatusR的第SendTestBit位是否为1,是1可以发送
    8625 20 09        bra	0x8630
(0018)    while(1)	
(0019)       if ((ReSendStatusR & (1<<SendTestBit)) != 0)
    8627 0F 1606      BRclr	7,0x16,0x8630
(0020)          { ReSendDataR=o;
    862A E6 02        ldA	2,X
    862C B7 18        stA	0x18
(0021)            break;}
    862E 20 02        bra	0x8632
    8630 20 F5        bra	0x8627
    8632 81           rts	
_SCISendN:
  i                    --> X+0
  ch                   --> X+5
  n                    --> X+4
    8633 A7 FE        aiS	#-2
    8635 95           tSX	
(0022)  }
(0023) /*SCISendN:串行发送N个字节-----------------------------*
(0024) *功  能:发送数组中的N个字节数据                        *
(0025) *参  数:待发送的数据字节数及其要存放的数组首地址       *          
(0026) *返  回:无                                             *
(0027) *-----------------------------------------------------*/
(0028) void SCISendN(unsigned char n,unsigned char ch[])
(0029)   {int i;
    8636 6F 01        clr	1,X
    8638 7F           clr	0,X
    8639 20 1F        bra	0x865A
(0030)    for(i=0;i<n;i++)          
(0031) 	SCISend1(ch[i]);
    863B E6 01        ldA	1,X
    863D EB 06        add	6,X
    863F B7 41        stA	*__r1
    8641 F6           ldA	0,X
    8642 E9 05        adc	5,X
    8644 B7 40        stA	*__r0
    8646 55 40        ldHX	*__r0
    8648 F6           ldA	0,X
    8649 87           pshA	
    864A CD 8624      jsr	_SCISend1
    864D A7 01        aiS	#1
    864F 95           tSX	
    8650 E6 01        ldA	1,X
    8652 AB 01        add	#1
    8654 E7 01        stA	1,X
    8656 F6           ldA	0,X
    8657 A9 00        adc	#0
    8659 F7           stA	0,X
    865A 3F 40        clr	*__r0
    865C E6 04        ldA	4,X
    865E B7 41        stA	*__r1
    8660 E6 01        ldA	1,X
    8662 B7 43        stA	*__r3
    8664 F6           ldA	0,X
    8665 B7 42        stA	*__r2
    8667 55 42        ldHX	*__r2
    8669 75 40        cpHX	*__r0
    866B 95           tSX	
    866C 91 CD        blt	0x863B
    866E A7 02        aiS	#2
    8670 81           rts	
_SCIRe1:
  i                    --> X+0
  k                    --> X+1
  p                    --> X+5
    8671 A7 FD        aiS	#-3
    8673 95           tSX	
(0032)   }
(0033) /*SCIRe1:串行收一个字节数据----------------------------*
(0034) *功  能:从串行口接收1个字节的数据                      *         
(0035) *参  数:标志指针p                                      *
(0036) *返  回:接收到的数据(若接收失败,返回0xff)           * 
(0037) *说  明:参数*p带回接收标志=0收到数据,=1未收到数据      *  
(0038) *-----------------------------------------------------*/
(0039) unsigned char SCIRe1(unsigned char *p)
(0040)  { unsigned int k;
    8674 6F 02        clr	2,X
    8676 6F 01        clr	1,X
    8678 20 21        bra	0x869B
(0041)    unsigned char i;
(0042)    //ReStatusR第ReTestBit位为1表示可接收数据
(0043) 	for(k=0;k<0xfbbb;k++)
(0044) 	  if ((ReSendStatusR & (1<<ReTestBit)) != 0)
    867A 0B 1612      BRclr	5,0x16,0x868F
(0045) 	     {i=ReSendDataR;
    867D B6 18        ldA	0x18
    867F F7           stA	0,X
(0046) 	      *p=0x00; 
    8680 E6 06        ldA	6,X
    8682 B7 41        stA	*__r1
    8684 E6 05        ldA	5,X
    8686 B7 40        stA	*__r0
    8688 4F           clrA	
    8689 55 40        ldHX	*__r0
    868B F7           stA	0,X
    868C 95           tSX	
(0047) 	      break;} 
    868D 20 1C        bra	0x86AB
    868F E6 02        ldA	2,X
    8691 AB 01        add	#1
    8693 E7 02        stA	2,X
    8695 E6 01        ldA	1,X
    8697 A9 00        adc	#0
    8699 E7 01        stA	1,X
    869B E6 02        ldA	2,X
    869D B7 41        stA	*__r1
    869F E6 01        ldA	1,X
    86A1 B7 40        stA	*__r0
    86A3 55 40        ldHX	*__r0
    86A5 65 FBBB      cpHX	#0xFBBB
    86A8 95           tSX	
    86A9 25 CF        bcs	0x867A
(0048) 	if(k>=0xfbbb) 
    86AB E6 02        ldA	2,X
    86AD B7 41        stA	*__r1
    86AF E6 01        ldA	1,X
    86B1 B7 40        stA	*__r0
    86B3 55 40        ldHX	*__r0
    86B5 65 FBBB      cpHX	#0xFBBB
    86B8 95           tSX	
    86B9 25 11        bcs	0x86CC
(0049) 	  {i=0xff;
    86BB A6 FF        ldA	#-1
    86BD F7           stA	0,X
(0050) 	   *p=0x01;}  	
    86BE E6 06        ldA	6,X
    86C0 B7 41        stA	*__r1
    86C2 E6 05        ldA	5,X
    86C4 B7 40        stA	*__r0
    86C6 A6 01        ldA	#1
    86C8 55 40        ldHX	*__r0
    86CA F7           stA	0,X
    86CB 95           tSX	
(0051)     return i;             //返回接收到的数据
    86CC F6           ldA	0,X
    86CD A7 03        aiS	#3
    86CF 81           rts	
_SCIReN:
  fp                   --> X+0
  m                    --> X+1
  ch                   --> X+6
  n                    --> X+5
    86D0 A7 FD        aiS	#-3
    86D2 95           tSX	
(0052)  }
(0053) /*SCIReN:HC08串行接收N个字节---------------------------*
(0054) *功  能:接收N个字节数据,并存放在ch数组中               *       
(0055) *参  数:待接收的数据字节数及其存放的数组首地址         *       
(0056) *返  回:接收标志=0收到数据,=1未收到数据                * 
(0057) *-----------------------------------------------------*/
(0058) unsigned char SCIReN(unsigned char n,unsigned char ch[])
(0059)  {int m;                  
    86D3 6F 02        clr	2,X
    86D5 6F 01        clr	1,X
    86D7 20 31        bra	0x870A
(0060)    unsigned char fp;
(0061)    m=0;
(0062)    while (m<n)
(0063) 	{ 	          
    86D9 89           pshX	
    86DA 8B           pshH	
    86DB CD 8671      jsr	_SCIRe1
    86DE A7 02        aiS	#2
    86E0 95           tSX	
    86E1 B7 41        stA	*__r1
    86E3 E6 02        ldA	2,X
    86E5 EB 07        add	7,X
    86E7 B7 43        stA	*__r3
    86E9 E6 01        ldA	1,X
    86EB E9 06        adc	6,X
    86ED B7 42        stA	*__r2
    86EF B6 41        ldA	*__r1
    86F1 55 42        ldHX	*__r2
    86F3 F7           stA	0,X
    86F4 95           tSX	
(0064) 	  ch[m]=SCIRe1(&fp); 
(0065) 	  if (fp==1) return 1;
    86F5 F6           ldA	0,X
    86F6 A1 01        cmp	#1
    86F8 26 04        bne	0x86FE
    86FA A6 01        ldA	#1
    86FC 20 22        bra	0x8720
(0066) 	  m++;
    86FE E6 02        ldA	2,X
    8700 AB 01        add	#1
    8702 E7 02        stA	2,X
    8704 E6 01        ldA	1,X
    8706 A9 00        adc	#0
    8708 E7 01        stA	1,X
(0067) 	 } 
    870A 3F 40        clr	*__r0
    870C E6 05        ldA	5,X
    870E B7 41        stA	*__r1
    8710 E6 02        ldA	2,X
    8712 B7 43        stA	*__r3
    8714 E6 01        ldA	1,X
    8716 B7 42        stA	*__r2
    8718 55 42        ldHX	*__r2
    871A 75 40        cpHX	*__r0
    871C 95           tSX	
    871D 91 BA        blt	0x86D9
(0068)    return 0;	 
    871F 4F           clrA	
    8720 A7 03        aiS	#3
    8722 81           rts	
FILE: SCIInit.c
(0001) /*SCIInit:串行口初始化子程序---------------------------*
(0002) *功 能:对串行口进行初始化,默认为允许SCI,正常码输出,8位 *
(0003) *      数据,无校验等,允许发送器允许接收器.查询方式收发,*
(0004) *      波特率为9600(设fBUS=2.4576MHz)                 *
(0005) *参 数:无                                              *
(0006) *返 回:无                                              *
(0007) *-----------------------------------------------------*/
(0008) #include "GP32C.H"
(0009) void SCIInit(void)
(0010)  {  //总线频率fBUS=2.4576MHz,定义波特率Bt=9600
_SCIInit:
    8723 A6 02        ldA	#2
    8725 B7 19        stA	0x19
(0011)     SCBR=0b00000010;
(0012)     //设置允许SCI,正常码输出、8位数据、无校验
(0013)     SCC1=0b01000000; 
    8727 A6 40        ldA	#64
    8729 B7 13        stA	0x13
(0014)     //设置允许发送、允许接收,查询方式收发     
(0015)     SCC2=0b00001100;        
FILE: <library>
    872B A6 0C        ldA	#12
    872D B7 14        stA	0x14
    872F 81           rts	
__cmp32:
    8730 89           pshX	
    8731 8B           pshH	
    8732 95           tSX	
    8733 E6 0B        ldA	11,X
    8735 E0 07        sub	7,X
    8737 87           pshA	
    8738 E6 0A        ldA	10,X
    873A E2 06        sbc	6,X
    873C 87           pshA	
    873D E6 09        ldA	9,X
    873F E2 05        sbc	5,X
    8741 87           pshA	
    8742 E6 08        ldA	8,X
    8744 E2 04        sbc	4,X
    8746 87           pshA	
    8747 26 16        bne	0x875F
    8749 95           tSX	
    874A 85           tPA	
    874B 87           pshA	
    874C 6D 03        tst	3,X
    874E 26 08        bne	0x8758
    8750 6D 02        tst	2,X
    8752 26 04        bne	0x8758
    8754 6D 01        tst	1,X
    8756 27 05        beq	0x875D
    8758 86           pulA	
    8759 A4 FD        and	#-3
    875B 20 01        bra	0x875E
    875D 86           pulA	
    875E 84           tAP	
    875F A7 04        aiS	#4
    8761 8A           pulH	
    8762 88           pulX	
    8763 81           rts	
__divmod16s:
    8764 89           pshX	
    8765 8B           pshH	
    8766 A7 FF        aiS	#-1
    8768 95           tSX	
    8769 6F 00        clr	0,X
    876B 3D 4C        tst	*__rhi
    876D 2A 0E        bpl	0x877D
    876F A6 03        ldA	#3
    8771 E7 00        stA	0,X
    8773 4F           clrA	
    8774 B0 4D        sub	*__rlo
    8776 B7 4D        stA	*__rlo
    8778 4F           clrA	
    8779 B2 4C        sbc	*__rhi
    877B B7 4C        stA	*__rhi
    877D 6D 05        tst	5,X
    877F 2A 10        bpl	0x8791
    8781 A6 02        ldA	#2
    8783 E8 00        eor	0,X
    8785 E7 00        stA	0,X
    8787 4F           clrA	
    8788 E0 06        sub	6,X
    878A E7 06        stA	6,X
    878C 4F           clrA	
    878D E2 05        sbc	5,X
    878F E7 05        stA	5,X
    8791 E6 06        ldA	6,X
    8793 87           pshA	
    8794 E6 05        ldA	5,X
    8796 87           pshA	
    8797 AD 29        bsr	0x87C2
    8799 86           pulA	
    879A E7 05        stA	5,X
    879C 86           pulA	
    879D E7 06        stA	6,X
    879F E6 00        ldA	0,X
    87A1 A5 02        bit	#2
    87A3 27 0A        beq	0x87AF
    87A5 4F           clrA	
    87A6 B0 4D        sub	*__rlo
    87A8 B7 4D        stA	*__rlo
    87AA 4F           clrA	
    87AB B2 4C        sbc	*__rhi
    87AD B7 4C        stA	*__rhi
    87AF A5 01        bit	#1
    87B1 27 0A        beq	0x87BD
    87B3 4F           clrA	
    87B4 E0 06        sub	6,X
    87B6 E7 06        stA	6,X
    87B8 4F           clrA	
    87B9 E2 05        sbc	5,X
    87BB E7 05        stA	5,X
    87BD A7 01        aiS	#1
    87BF 8A           pulH	
    87C0 88           pulX	
    87C1 81           rts	
__divmod16u:
__divmodu_16X16_16:
    87C2 89           pshX	
    87C3 8B           pshH	
    87C4 A7 FC        aiS	#-4
    87C6 95           tSX	
    87C7 6F 02        clr	2,X
    87C9 6F 03        clr	3,X
    87CB A6 10        ldA	#16
    87CD E7 00        stA	0,X
    87CF 38 4D        lsl	*__rlo
    87D1 39 4C        rol	*__rhi
    87D3 69 03        rol	3,X
    87D5 69 02        rol	2,X
    87D7 24 0E        bcc	0x87E7
    87D9 E6 09        ldA	9,X
    87DB EB 03        add	3,X
    87DD E7 03        stA	3,X
    87DF E6 08        ldA	8,X
    87E1 E9 02        adc	2,X
    87E3 E7 02        stA	2,X
    87E5 20 0C        bra	0x87F3
    87E7 E6 03        ldA	3,X
    87E9 E0 09        sub	9,X
    87EB E7 03        stA	3,X
    87ED E6 02        ldA	2,X
    87EF E2 08        sbc	8,X
    87F1 E7 02        stA	2,X
    87F3 2B 06        bmi	0x87FB
    87F5 A6 01        ldA	#1
    87F7 BA 4D        orA	*__rlo
    87F9 B7 4D        stA	*__rlo
    87FB 6A 00        dec	0,X
    87FD 26 D0        bne	0x87CF
    87FF 6D 02        tst	2,X
    8801 2A 0C        bpl	0x880F
    8803 E6 09        ldA	9,X
    8805 EB 03        add	3,X
    8807 E7 03        stA	3,X
    8809 E6 08        ldA	8,X
    880B E9 02        adc	2,X
    880D E7 02        stA	2,X
    880F E6 02        ldA	2,X
    8811 E7 08        stA	8,X
    8813 E6 03        ldA	3,X
    8815 E7 09        stA	9,X
    8817 A7 04        aiS	#4
    8819 8A           pulH	
    881A 88           pulX	
    881B 81           rts	
__mul16:
    881C 89           pshX	
    881D 8B           pshH	
    881E 9EEE 06      ldX	6,S
    8821 9EE6 08      ldA	8,S
    8824 42           mul	
    8825 BF 4C        stX	*__rhi
    8827 B7 4D        stA	*__rlo
    8829 9EEE 05      ldX	5,S
    882C 9EE6 08      ldA	8,S
    882F 42           mul	
    8830 BB 4C        add	*__rhi
    8832 B7 4C        stA	*__rhi
    8834 9EEE 06      ldX	6,S
    8837 9EE6 07      ldA	7,S
    883A 42           mul	
    883B BB 4C        add	*__rhi
    883D B7 4C        stA	*__rhi
    883F 8A           pulH	
    8840 88           pulX	
    8841 81           rts	

⌨️ 快捷键说明

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