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

📄 i2c.i

📁 一个车载音响控制程序,包括高保真立体收部分,VFD驱动显示,4路音频电子切换, 红外遥控控制 采用51单片机
💻 I
字号:
#line 1 "I2C.c" /0      #line 1 "E:\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 9 "I2C.c" /0   #line 1 "E:\KEIL\C51\INC\ABSACC.H" /0                 #line 24 "E:\KEIL\C51\INC\ABSACC.H" /1         #line 29 "E:\KEIL\C51\INC\ABSACC.H" /0       #line 10 "I2C.c" /0   #line 1 "E:\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); extern void          _push_    (unsigned char _sfr); extern void          _pop_     (unsigned char _sfr);   #line 11 "I2C.c" /0   #line 1 "mylib.h" /0 extern void inidelay(); extern void sys_ini(); extern bit re_re; extern unsigned long rddata(void); extern wrdata(unsigned long x); extern unsigned int swdata(unsigned int dat); extern void wr1(void); extern void mack(); extern void wrone(); extern bit wrnbyt(unsigned char add,unsigned char start,unsigned char num,unsigned char a[]); extern bit rdnbyt(unsigned char add,unsigned char num,unsigned char start,unsigned char a[]); extern void delay50(); extern void radio(); extern void iniband1(unsigned char a); extern void iniband(); extern unsigned char remkey2; extern unsigned char delay_num; extern unsigned long stepserch(bit a,unsigned int b); extern vfddigit(unsigned int ch); extern void display(void); extern void wrvfd(unsigned char addr,unsigned char dat); extern unsigned long rdkey(); extern void inivfd(void); extern void band_step(bit direction); extern void band_change(void); extern void station_search(bit,bit); extern void station_change(bit direction); extern void vfd_clean(); extern void volcheack(void); extern void delaytime(unsigned int time); extern void vfd_test(); extern void display(); extern void sub_vol(unsigned char dirc); extern void channel(unsigned char fun); extern void wr_pt2313(unsigned char com); extern void vfd_volume(unsigned char fun); extern bit repeat(); extern unsigned char volume; extern unsigned char trb_vol; extern unsigned char bas_vol; extern unsigned char band; extern unsigned char delay_fun; extern void trb_vol_ct(bit dirc); extern void bas_vol_ct(bit dirc); extern void flash_eras(unsigned int band); extern void flash_read(unsigned char add,unsigned int band,unsigned char a[]); extern void flash_prog(unsigned char add,unsigned int band,unsigned char b[]); extern bit key_sta; extern bit key_long; extern bit key(); extern void taiwei(); extern void mute_(bit fun); extern void radio_change(); extern void band_change(void); extern void eqchange(); extern void eq_vfd(unsigned char eq);                    extern union   {  unsigned long all; struct {  unsigned char addr    :8;     unsigned int frq      :16;    unsigned char cankao  :4;     unsigned char xs      :1;     unsigned char cte     :1;     unsigned char inp     :2;    }in0; }in0; extern union  {  unsigned long da; struct {  unsigned char addr    :8;     unsigned char bnc     :1;     unsigned char stmo    :1;     unsigned char ifen    :1;     unsigned char band    :1;     unsigned char io      :2;     unsigned char  ioc     :2;     unsigned char dz      :2;     unsigned char ul      :2;     unsigned char doc     :3;     unsigned char dnc     :1;     unsigned char test    :3;     unsigned char ifs     :1;     unsigned char dlc     :1;     unsigned char tbc     :1;     unsigned char gt      :2;    }in1; }in1;#line 12 "I2C.c" /0   sbit da=P3^6; sbit cl=P3^7;  unsigned char eq_l;  unsigned char volume=32;  unsigned char bas_vol=0x07;  unsigned char trb_vol=0x07;  unsigned char code eff[15]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8}; extern unsigned char remkey; void sta()	   { da=1; _nop_(); _nop_(); _nop_(); _nop_(); cl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); da=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); cl=0; } void stop()	  { da=0; cl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); da=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); da=0; cl=0; } void mack()  { da=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); cl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); cl=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); da=1; } void nmack()  { da=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); cl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); cl=0; da=0;  } bit cack()   { bit a=0; da=1; cl=1; if(da==0) { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();  cl=0; return(0); } else  { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();  cl=0; return(1); } } void wr1(void)  { da=1; cl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); cl=0; da=0; } void wr0()  { da=0; cl=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); cl=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } wrbyt(unsigned char byt)  {  unsigned char temp=0x00;  unsigned char count; for(count=0;count<8;count++) { if((byt<<count)&0x80) wr1(); else wr0();   } }  unsigned char rdbyt()   {  unsigned char a=0,i=0; for(i=0;i<8;i++) { da=1; cl=1; if(da==1) { a=(a<<1)+1; cl=0; } else if(da==0) { a=a<<1; cl=0; } } return(a); } bit wrnbyt(unsigned char add,unsigned char start,unsigned char num,unsigned char *k)   {  	  unsigned char *p=k;  unsigned char dk; for(dk=0;dk<num;dk++,p++) { sta(); wrbyt(add); mack(); wrbyt(start); start=start+1; mack(); wrbyt(*p); mack(); stop(); delaytime(5000); } return(1);  } bit rdnbyt(unsigned char add,unsigned char start,unsigned char num,unsigned char a[])    {  unsigned char *p=a;  unsigned char dk; sta(); wrbyt(add); if(cack()) return(1); wrbyt(start); if(cack()) return(1); sta(); wrbyt(add+1); if(cack()) return(1); for(dk=0;dk<num;dk++,p++) { *p=rdbyt();  if(dk==num-1) nmack(); else mack(); }  stop(); return(0); } void wr_pt2313(unsigned char com) { sta(); wrbyt(0x88); mack(); wrbyt(com); mack(); stop(); } void channel(unsigned char fun) { if(fun==1) wr_pt2313(0x5e); if(fun==0) wr_pt2313(0x5d); if(fun==2) wr_pt2313(0x4f); } void sub_vol(unsigned char dirc) { if(dirc) { if(volume<63) volume++;     } else { if(volume>0) volume--; }  wr_pt2313((0x3f&(63-volume))); remkey=0x00; vfd_volume(0);  } void trb_vol_ct(bit dirc) { if(dirc) { if(trb_vol<14) trb_vol++;     } else { if(trb_vol>0) trb_vol--; }  wr_pt2313((0x7f&(eff[trb_vol]))); remkey=0x00; vfd_volume(3);  }  void bas_vol_ct(bit dirc) { if(dirc) { if(bas_vol<14) bas_vol++;     } else { if(bas_vol>0) bas_vol--; }  wr_pt2313((0x6f&(eff[bas_vol]))); remkey=0x00; vfd_volume(1);  } void eqchange() { if(eq_l==0) { wr_pt2313((0x6f&(eff[8]))); wr_pt2313((0x7f&(eff[8]))); eq_vfd(eq_l); eq_l=1; } else if(eq_l==1) { wr_pt2313((0x6f&(eff[14]))); wr_pt2313((0x7f&(eff[14]))); eq_vfd(eq_l); eq_l=2; } else if(eq_l==2) { wr_pt2313((0x6f&(eff[4]))); wr_pt2313((0x7f&(eff[14]))); eq_vfd(eq_l); eq_l=3; } else if(eq_l==3) { wr_pt2313((0x6f&(eff[14]))); wr_pt2313((0x7f&(eff[4]))); eq_vfd(eq_l); eq_l=0; } remkey=0; }

⌨️ 快捷键说明

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