📄 12ad.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 + -