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

📄 12ad.lst

📁 应用tlc1543及cd4067对35路信号进行采集
💻 LST
📖 第 1 页 / 共 4 页
字号:
 131   1      	_nop_();_nop_();_nop_();
 132   1      	_nop_();_nop_();_nop_();
 133   1      	_nop_();_nop_();_nop_();
 134   1      	_nop_();_nop_();_nop_();
 135   1      	_nop_();_nop_();_nop_();
 136   1      	_nop_();_nop_();_nop_();
 137   1      	_nop_();_nop_();_nop_();
 138   1      	_nop_();_nop_();_nop_();
 139   1      
 140   1      	_CS=0; //开始取数
 141   1      	_nop_();_nop_();_nop_();
 142   1      
 143   1          for (i=0;i<2;i++) //取D9,D8
 144   1              {
 145   2      	    D_OUT=1;CLOCK=1;
 146   2      	    ah<<=1;
 147   2      	    if (D_OUT) ah|=0x01;
 148   2      	    CLOCK=0;
 149   2              }
 150   1      
 151   1          for (i=0;i<8;i++) //取D7--D0
 152   1              {
 153   2      	    D_OUT=1;CLOCK=1;
 154   2      	    al<<=1;
 155   2      	    if (D_OUT) al|=0x01;
 156   2      	    CLOCK=0;
 157   2              }
 158   1          _CS=1;
 159   1      
 160   1          ad=(uint)ah;ad<<=8;ad|=al; //得到AD值
 161   1          return (ad);
 162   1      }
 163          
 164          /*********第t轮采样子程序****************************/
C51 COMPILER V6.12  12AD                                                                   07/28/2005 17:26:06 PAGE 7   

 165          
 166          void Getad(uchar t)
 167          {
 168   1         // char xdata *xdp;
 169   1          uchar i,j,k;
 170   1          uchar ch=0;                  //选择读哪一个1543通道
 171   1          for(i=0;i<2;i++)
 172   1              {
 173   2               //if(i==0)
 174   2      		 //xdp=0xfffd;       //选4067片子
 175   2      		 //else
 176   2      		 //xdp=0xffbf;
 177   2               //else if(i==2) xdp=0xbfff;
 178   2               //else xdp=0x7fff;
 179   2      		 k=0;
 180   2               for(j=0;j<16;j++)
 181   2                  {
 182   3      			//k<<=2;                     //选4067通道
 183   3      			if(i==0) P0=k|0x20;
 184   3      			else P0=k|0x10;
 185   3                  //_nop_();_nop_();_nop_();//*xdp=k;
 186   3      			//Read1543(ch);
 187   3                  adresult[16*i+j][t]=Read1543(ch);
 188   3      			//k>>=2;
 189   3                  k++;
 190   3                  }
 191   2      		 if(i==1)
 192   2      			{
 193   3      			//Read1543(0x09);
 194   3      			adresult[32][t]=Read1543(0x08);
 195   3      			adresult[33][t]=Read1543(0x09);
 196   3      			//Read1543(0x0a);
 197   3      			adresult[34][t]=Read1543(0x0a);
 198   3      			}
 199   2              }
 200   1      }
 201          
 202          /**********************排序子程序****************************/
 203          
 204          void Sort(uchar n)
 205          {
 206   1          uint temp;
 207   1      	uchar i,j,k;
 208   1          for(i=0;i<34;i++)           //共34路
 209   1              {for(j=0;j<n;j++)      //n个数排序
 210   2                  for(k=0;k<n-j;k++)
 211   2                      if (adresult[i][k]>adresult[i][k+1])
 212   2                      {temp=adresult[i][k];adresult[i][k]=adresult[i][k+1];adresult[i][k+1]=temp;}
 213   2              }
 214   1      }
 215          
 216          
 217          /***********************平均值滤波子程序*************************/
 218          
 219          void Filter(uchar n)
 220          {
 221   1          uint sum;
 222   1      	uchar i,j;
 223   1          for(i=0;i<34;i++)
 224   1              {
 225   2      		 sum=0;
 226   2      		 for(j=(Times-n)/2;j<=n+1;j++)
C51 COMPILER V6.12  12AD                                                                   07/28/2005 17:26:06 PAGE 8   

 227   2              	sum+=adresult[i][j];
 228   2              	Result[i]=sum/n;
 229   2      		}
 230   1      }
 231          
 232          
 233          /**************************Delay********************************/
 234          
 235          void Delay(void)
 236          {
 237   1      	uint i;
 238   1      	for(i=0;i<550;i++);
 239   1      }
 240          /***********************主程序***********************************/
 241          
 242          main()
 243          {
 244   1          uchar T;
 245   1      	Times=10;
 246   1      	AUXR=AUXR&0xfd;
 247   1      	AUXR=AUXR|0x01;
 248   1      
 249   1      	WriteSR(0x00);          //禁止看门狗
 250   1      	Init();
 251   1      
 252   1          Begin:
 253   1      	for(T=0;T<Times;T++)
 254   1              	{Getad(T);
 255   2      			Delay();
 256   2              	}
 257   1          	  Sort(Times);
 258   1          	  Filter(6);
 259   1      	X5045_CS=1;
 260   1      	_nop_();
 261   1          X5045_CS=0;
 262   1      	_nop_();_nop_();_nop_();
 263   1      	X5045_CS=1;
 264   1      	//P0=0x20;
 265   1      	goto Begin;
 266   1      
 267   1      }
 268          
C51 COMPILER V6.12  12AD                                                                   07/28/2005 17:26:06 PAGE 9   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION Read8 (BEGIN)
                                           ; SOURCE LINE # 55
                                           ; SOURCE LINE # 56
                                           ; SOURCE LINE # 58
;---- Variable 'i' assigned to Register 'R7' ----
0000 E4                CLR     A
0001 FF                MOV     R7,A
0002         ?C0001:
                                           ; SOURCE LINE # 59
                                           ; SOURCE LINE # 60
0002 D292              SETB    X5045_SCK
                                           ; SOURCE LINE # 61
0004 C292              CLR     X5045_SCK
                                           ; SOURCE LINE # 62
0006 E500        R     MOV     A,data_x5045
0008 25E0              ADD     A,ACC
000A F500        R     MOV     data_x5045,A
                                           ; SOURCE LINE # 63
000C A291              MOV     C,X5045_SO
000E 9200        R     MOV     x5045_data0,C
                                           ; SOURCE LINE # 64
0010 0F                INC     R7
0011 BF08EE            CJNE    R7,#08H,?C0001
0014         ?C0002:
                                           ; SOURCE LINE # 65
0014 AF00        R     MOV     R7,data_x5045
                                           ; SOURCE LINE # 66
0016         ?C0004:
0016 22                RET     
             ; FUNCTION Read8 (END)

             ; FUNCTION _Write8 (BEGIN)
;---- Variable 'cData' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 70
                                           ; SOURCE LINE # 71
                                           ; SOURCE LINE # 73
0000 8F00        R     MOV     data_x5045,R7
                                           ; SOURCE LINE # 74
;---- Variable 'i' assigned to Register 'R7' ----
0002 E4                CLR     A
0003 FF                MOV     R7,A
0004         ?C0005:
                                           ; SOURCE LINE # 75
                                           ; SOURCE LINE # 76
0004 C292              CLR     X5045_SCK
                                           ; SOURCE LINE # 77
0006 A200        R     MOV     C,x5045_data7
0008 9293              MOV     X5045_SI,C
                                           ; SOURCE LINE # 78
000A D292              SETB    X5045_SCK
                                           ; SOURCE LINE # 79
000C E500        R     MOV     A,data_x5045
000E 25E0              ADD     A,ACC
0010 F500        R     MOV     data_x5045,A
                                           ; SOURCE LINE # 80
0012 0F                INC     R7
0013 BF08EE            CJNE    R7,#08H,?C0005
                                           ; SOURCE LINE # 81
0016         ?C0008:
C51 COMPILER V6.12  12AD                                                                   07/28/2005 17:26:06 PAGE 10  

0016 22                RET     
             ; FUNCTION _Write8 (END)

             ; FUNCTION ReadSR (BEGIN)
                                           ; SOURCE LINE # 85
                                           ; SOURCE LINE # 86
                                           ; SOURCE LINE # 88
0000 C290              CLR     X5045_CS
                                           ; SOURCE LINE # 89
0002 7F05              MOV     R7,#05H
0004 120000      R     LCALL   _Write8
                                           ; SOURCE LINE # 90
0007 120000      R     LCALL   Read8
;---- Variable 'cData' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 91
000A D290              SETB    X5045_CS
                                           ; SOURCE LINE # 92
                                           ; SOURCE LINE # 93
000C         ?C0009:
000C 22                RET     
             ; FUNCTION ReadSR (END)

             ; FUNCTION _WriteSR (BEGIN)
;---- Variable 'cData' assigned to Register 'R6' ----
0000 AE07              MOV     R6,AR7
                                           ; SOURCE LINE # 97
                                           ; SOURCE LINE # 98
0002         ?C0010:
                                           ; SOURCE LINE # 99
0002 120000      R     LCALL   ReadSR
0005 EF                MOV     A,R7
0006 20E0F9            JB      ACC.0,?C0010
0009         ?C0011:
                                           ; SOURCE LINE # 100
0009 C290              CLR     X5045_CS
                                           ; SOURCE LINE # 101
000B 7F06              MOV     R7,#06H
000D 120000      R     LCALL   _Write8
                                           ; SOURCE LINE # 102
0010 D290              SETB    X5045_CS
                                           ; SOURCE LINE # 103
0012 C290              CLR     X5045_CS
                                           ; SOURCE LINE # 104
0014 7F01              MOV     R7,#01H
0016 120000      R     LCALL   _Write8
                                           ; SOURCE LINE # 105
0019 AF06              MOV     R7,AR6
001B 120000      R     LCALL   _Write8
                                           ; SOURCE LINE # 106
001E D290              SETB    X5045_CS
                                           ; SOURCE LINE # 107
0020 22                RET     
             ; FUNCTION _WriteSR (END)

             ; FUNCTION _Read1543 (BEGIN)
;---- Variable 'port' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 112
                                           ; SOURCE LINE # 113
                                           ; SOURCE LINE # 115
;---- Variable 'al' assigned to Register 'R5' ----
0000 E4                CLR     A
0001 FD                MOV     R5,A
C51 COMPILER V6.12  12AD                                                                   07/28/2005 17:26:06 PAGE 11  

;---- Variable 'ah' assigned to Register 'R6' ----
0002 FE                MOV     R6,A
                                           ; SOURCE LINE # 117
0003 C2A7              CLR     CLOCK
0005 C2A2              CLR     _CS
                                           ; SOURCE LINE # 118
0007 EF                MOV     A,R7
0008 C4                SWAP    A
0009 54F0              ANL     A,#0F0H
000B FF                MOV     R7,A
                                           ; SOURCE LINE # 119
;---- Variable 'i' assigned to Register 'R2/R3' ----
000C E4                CLR     A
000D FB                MOV     R3,A
000E FA                MOV     R2,A
000F         ?C0013:
                                           ; SOURCE LINE # 120
                                           ; SOURCE LINE # 121
000F EF                MOV     A,R7
0010 33                RLC     A
0011 92A6              MOV     D_IN,C
0013 D2A7              SETB    CLOCK
0015 C2A7              CLR     CLOCK
                                           ; SOURCE LINE # 122
0017 EF                MOV     A,R7
0018 25E0              ADD     A,ACC
001A FF                MOV     R7,A
                                           ; SOURCE LINE # 123
001B 0B                INC     R3
001C BB0001            CJNE    R3,#00H,?C0065
001F 0A                INC     R2
0020         ?C0065:
0020 EB                MOV     A,R3
0021 6404              XRL     A,#04H
0023 4A                ORL     A,R2
0024 70E9              JNZ     ?C0013
0026         ?C0014:
                                           ; SOURCE LINE # 124
0026 E4                CLR     A
0027 FA                MOV     R2,A
0028 FB                MOV     R3,A
0029         ?C0016:
                                           ; SOURCE LINE # 125
                                           ; SOURCE LINE # 126
0029 D2A7              SETB    CLOCK
002B C2A7              CLR     CLOCK
                                           ; SOURCE LINE # 127
002D 0B                INC     R3
002E BB0001            CJNE    R3,#00H,?C0066
0031 0A                INC     R2
0032         ?C0066:
0032 EB                MOV     A,R3
0033 6406              XRL     A,#06H
0035 4A                ORL     A,R2
0036 70F1              JNZ     ?C0016
0038         ?C0017:
                                           ; SOURCE LINE # 129
0038 D2A2              SETB    _CS
                                           ; SOURCE LINE # 131
003A 00                NOP     
003B 00                NOP     
003C 00                NOP     
C51 COMPILER V6.12  12AD                                                                   07/28/2005 17:26:06 PAGE 12  

                                           ; SOURCE LINE # 132
003D 00                NOP     
003E 00                NOP     
003F 00                NOP     
                                           ; SOURCE LINE # 133
0040 00                NOP     
0041 00                NOP     
0042 00                NOP     
                                           ; SOURCE LINE # 134
0043 00                NOP     
0044 00                NOP     
0045 00                NOP     
                                           ; SOURCE LINE # 135
0046 00                NOP     

⌨️ 快捷键说明

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