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

📄 12ad.i

📁 应用tlc1543及cd4067对35路信号进行采集
💻 I
字号:
#line 1 ".\12AD.C" /0  #line 1 "C:\KEIL\C51\INC\REG52.H" /0    sfr P0    = 0x80; sfr P1    = 0x90; sfr P2    = 0xA0; sfr P3    = 0xB0; sfr PSW   = 0xD0; sfr ACC   = 0xE0; sfr B     = 0xF0; sfr SP    = 0x81; sfr DPL   = 0x82; sfr DPH   = 0x83; sfr PCON  = 0x87; sfr TCON  = 0x88; sfr TMOD  = 0x89; sfr TL0   = 0x8A; sfr TL1   = 0x8B; sfr TH0   = 0x8C; sfr TH1   = 0x8D; sfr IE    = 0xA8; sfr IP    = 0xB8; sfr SCON  = 0x98; sfr SBUF  = 0x99;   sfr T2CON  = 0xC8; sfr RCAP2L = 0xCA; sfr RCAP2H = 0xCB; sfr TL2    = 0xCC; sfr TH2    = 0xCD;     sbit CY    = PSW^7; sbit AC    = PSW^6; sbit F0    = PSW^5; sbit RS1   = PSW^4; sbit RS0   = PSW^3; sbit OV    = PSW^2; sbit P     = PSW^0;     sbit TF1   = TCON^7; sbit TR1   = TCON^6; sbit TF0   = TCON^5; sbit TR0   = TCON^4; sbit IE1   = TCON^3; sbit IT1   = TCON^2; sbit IE0   = TCON^1; sbit IT0   = TCON^0;   sbit EA    = IE^7; sbit ET2   = IE^5;   sbit ES    = IE^4; sbit ET1   = IE^3; sbit EX1   = IE^2; sbit ET0   = IE^1; sbit EX0   = IE^0;   sbit PT2   = IP^5; sbit PS    = IP^4; sbit PT1   = IP^3; sbit PX1   = IP^2; sbit PT0   = IP^1; sbit PX0   = IP^0;   sbit RD    = P3^7; sbit WR    = P3^6; sbit T1    = P3^5; sbit T0    = P3^4; sbit INT1  = P3^3; sbit INT0  = P3^2; sbit TXD   = P3^1; sbit RXD   = P3^0;   sbit SM0   = SCON^7; sbit SM1   = SCON^6; sbit SM2   = SCON^5; sbit REN   = SCON^4; sbit TB8   = SCON^3; sbit RB8   = SCON^2; sbit TI    = SCON^1; sbit RI    = SCON^0;   sbit T2EX  = P1^1;   sbit T2    = P1^0;     sbit TF2    = T2CON^7; sbit EXF2   = T2CON^6; sbit RCLK   = T2CON^5; sbit TCLK   = T2CON^4; sbit EXEN2  = T2CON^3; sbit TR2    = T2CON^2; sbit C_T2   = T2CON^1; sbit CP_RL2 = T2CON^0;#line 1 ".\12AD.C" /0   #line 1 "C:\KEIL\C51\INC\STDIO.H" /0             typedef unsigned int size_t;   #pragma SAVE #pragma REGPARMS extern char _getkey (void); extern char getchar (void); extern char ungetchar (char); extern char putchar (char); extern int printf   (const char *, ...); extern int sprintf  (char *, const char *, ...); extern int vprintf  (const char *, char *); extern int vsprintf (char *, const char *, char *); extern char *gets (char *, int n); extern int scanf (const char *, ...); extern int sscanf (char *, const char *, ...); extern int puts (const char *);  #pragma RESTORE#line 2 ".\12AD.C" /0   #line 1 "C:\KEIL\C51\INC\MATH.H" /0   #pragma SAVE #pragma REGPARMS extern char  cabs  (char  val); extern int    abs  (int   val); extern long  labs  (long  val); extern float fabs  (float val); extern float sqrt  (float val); extern float exp   (float val); extern float log   (float val); extern float log10 (float val); extern float sin   (float val); extern float cos   (float val); extern float tan   (float val); extern float asin  (float val); extern float acos  (float val); extern float atan  (float val); extern float sinh  (float val); extern float cosh  (float val); extern float tanh  (float val); extern float atan2 (float y, float x);  extern float ceil  (float val); extern float floor (float val); extern float modf  (float val, float *n); extern float fmod  (float x, float y); extern float pow   (float x, float y);  #pragma RESTORE#line 3 ".\12AD.C" /0   #line 1 "C:\KEIL\C51\INC\INTRINS.H" /0   extern void          _nop_     (void); extern bit           _testbit_ (bit); extern unsigned char _cror_    (unsigned char, unsigned char); extern unsigned int  _iror_    (unsigned int,  unsigned char); extern unsigned long _lror_    (unsigned long, unsigned char); extern unsigned char _crol_    (unsigned char, unsigned char); extern unsigned int  _irol_    (unsigned int,  unsigned char); extern unsigned long _lrol_    (unsigned long, unsigned char); extern unsigned char _chkfloat_(float);#line 4 ".\12AD.C" /0   sfr  AUXR=0x8E;  sbit CLOCK=P2^7;       sbit D_IN=P2^6; sbit D_OUT=P2^5; sbit _CS=P2^2;           unsigned int xdata adresult[35][10];  unsigned int idata Result[35];  unsigned char Times;                  unsigned char ch[2];  unsigned char i,j,k,m;  unsigned int n;  sbit X5045_CS=P1^0;          sbit X5045_SO=P1^1; sbit X5045_SCK=P1^2; sbit X5045_SI=P1^3;         extern void Init(void); extern void UART(void);   unsigned char bdata data_x5045; sbit x5045_data0=data_x5045^0; sbit x5045_data7=data_x5045^7;     unsigned char Read8(void)           {  unsigned char i; for(i=0;i<8;i++) { X5045_SCK=1; X5045_SCK=0; data_x5045=data_x5045<<1; x5045_data0=X5045_SO; } return(data_x5045); }    void Write8(unsigned char cData) {  unsigned char i; data_x5045=cData; for(i=0;i<8;i++) { X5045_SCK=0; X5045_SI=x5045_data7; X5045_SCK=1; data_x5045=data_x5045<<1; } }     unsigned char ReadSR(void) {  unsigned char cData; X5045_CS=0; Write8(0X05); cData=Read8(); X5045_CS=1; return(cData); }    void WriteSR(unsigned char cData) { while((ReadSR()&0x01)==1); X5045_CS=0; Write8(0X06); X5045_CS=1; X5045_CS=0; Write8(0X01); Write8(cData); X5045_CS=1; }      unsigned int Read1543(unsigned char port)	  {  unsigned int data ad;unsigned int data i;  unsigned char data al=0,ah=0;  CLOCK=0;_CS=0; port<<=4; for (i=0;i<4;i++)   { D_IN=(bit)(port&0x80);CLOCK=1;CLOCK=0; port<<=1; } for (i=0;i<6;i++)   { CLOCK=1;CLOCK=0; }  _CS=1;   _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();  _CS=0;   _nop_();_nop_();_nop_();  for (i=0;i<2;i++)   { D_OUT=1;CLOCK=1; ah<<=1; if (D_OUT) ah|=0x01; CLOCK=0; }  for (i=0;i<8;i++)   { D_OUT=1;CLOCK=1; al<<=1; if (D_OUT) al|=0x01; CLOCK=0; } _CS=1;  ad=(unsigned int)ah;ad<<=8;ad|=al;   return (ad); }    void Getad(unsigned char t) {   unsigned char i,j,k;  unsigned char ch=0;                    for(i=0;i<2;i++) {       k=0; for(j=0;j<16;j++) {  if(i==0) P0=k|0x20; else P0=k|0x10;   adresult[16*i+j][t]=Read1543(ch);  k++; } if(i==1) {  adresult[32][t]=Read1543(0x08); adresult[33][t]=Read1543(0x09);  adresult[34][t]=Read1543(0x0a); } } }    void Sort(unsigned char n) {  unsigned int temp;  unsigned char i,j,k; for(i=0;i<34;i++)             {for(j=0;j<n;j++)        for(k=0;k<n-j;k++) if (adresult[i][k]>adresult[i][k+1]) {temp=adresult[i][k];adresult[i][k]=adresult[i][k+1];adresult[i][k+1]=temp;} } }     void Filter(unsigned char n) {  unsigned int sum;  unsigned char i,j; for(i=0;i<34;i++) { sum=0; for(j=(Times-n)/2;j<=n+1;j++) sum+=adresult[i][j]; Result[i]=sum/n; } }     void Delay(void) {  unsigned int i; for(i=0;i<550;i++); }   main() {  unsigned char T; Times=10; AUXR=AUXR&0xfd; AUXR=AUXR|0x01;  WriteSR(0x00);            Init();  Begin: for(T=0;T<Times;T++) {Getad(T); Delay(); } Sort(Times); Filter(6); X5045_CS=1; _nop_(); X5045_CS=0; _nop_();_nop_();_nop_(); X5045_CS=1;  goto Begin;  } 

⌨️ 快捷键说明

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