?? vfd.i
字號:
#line 1 "vfd.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 13 "vfd.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 14 "vfd.c" /0 sbit dat=P1^7; sbit clk=P1^6; sbit stb=P1^5; sbit power_led=P1^0; sbit fun_vfd=P1^4; extern unsigned char remkey; extern unsigned char ab; #line 29 "vfd.c" /1 #line 31 "vfd.c" /0 unsigned char code dis[10]={0xee,0x48,0xd6,0xda,0x78,0xba,0xbe,0xc8,0xfe,0xfa}; union { unsigned char dat; struct { unsigned char dms: 3; unsigned char dnc: 3; unsigned char ad1: 2; }co1; }co1; union { unsigned char dat; struct { unsigned char fru: 2; unsigned char mad: 1; unsigned char mst: 1; unsigned char dnc: 2; unsigned char ad2: 2; }co2; }co2; union { unsigned char dat; struct { unsigned char add: 5; unsigned char dnc: 1; unsigned char ad3: 2; }co3; }co3; union { unsigned char dat; struct { unsigned char pwm: 3; unsigned char dis: 1; unsigned char dnc: 2; unsigned char ad4: 2; }co4; }co4; void wrd(unsigned char disno,bit lei) { unsigned char a; if(lei) goto s; stb=1; stb=1; stb=0; s: for(a=0;a<8;a++) { clk=1; clk=1; clk=0; clk=0; if(disno&0x01) dat=1; else dat=0; disno=disno>>1; clk=1; clk=1; clk=1; clk=1; } } void inivfd(void) { co1.co1.dms=0x02; co1.co1.ad1=0x00; co2.co2.mad=0x01; co2.co2.mst=0x00; co2.co2.ad2=0x01; co3.co3.ad3=0x03; co4.co4.pwm=0x07; co4.co4.dis=0x01; co4.co4.ad4=0x02; } void wrvfd(unsigned char addr,unsigned char dat) { inivfd(); wrd(co1.dat,0); stb=1; co2.co2.fru=0x00; wrd(co2.dat,0); stb=1; co3.co3.add=addr; wrd(co3.dat,0); wrd(dat,1); stb=1; wrd(co4.dat,0); stb=1; } vfddigit(unsigned int ch) { static unsigned int rot1=0x0800; unsigned char h[6]; h[5]=(ab/10); h[4]=(ab%10); h[3]=((ch%10000)/1000); h[2]=((ch%1000)/100); h[1]=((ch%100)/10); h[0]=(ch%10); wrvfd(0x00,(dis[h[1]]>>1)|0x80); wrvfd(0x01,dis[h[0]]); wrvfd(0x03,dis[h[2]]); if(h[3]) wrvfd(0x02,dis[h[3]]>>1); else wrvfd(0x02,0x00); wrvfd(0x06,dis[h[5]]>>1); wrvfd(0x07,dis[h[4]]); if(band==0) wrvfd(0x05,0xb4); else wrvfd(0x05,0xfc); if(rot1) { wrvfd(10,~(rot1&0x00ff)); wrvfd(11,~(((rot1>>8)&0xff)|0xf0)); rot1=rot1>>1; if(rot1==0x00) rot1=0x0800; } } void vfd_volume(unsigned char fun) { unsigned char one=0x00; unsigned char ten=0x00; unsigned char c=0; fun_vfd=0; if(fun==0) { one=volume%10; ten=volume/10; } else if(fun==3) { if(trb_vol<7) { one=(14-(trb_vol+trb_vol))%10; ten=(14-(trb_vol+trb_vol))/10; } else if(trb_vol>7) { one=((trb_vol-7)*2)%10; ten=((trb_vol-7)*2)/10; } } else if(fun==1) { if(bas_vol<7) { one=(14-(bas_vol+bas_vol))%10; ten=(14-(bas_vol+bas_vol))/10; } else if(bas_vol>7) { one=((bas_vol-7)*2)%10; ten=((bas_vol-7)*2)/10; } } for(c=2;c<9;c++) { if(fun==0) if((c==2)||(c==4)||(c==5)) goto hh; wrvfd(c,0x00); hh: ; } wrvfd(0x00,0x00); if(fun==0) { wrvfd(0x02,0x13); wrvfd(0x05,0x1f); wrvfd(0x04,0x24); } if(fun==3) { wrvfd(0x06,0xc0); wrvfd(0x07,0x01); } if(fun==1) { wrvfd(0x06,0x1f); } if((fun==1)) { if((bas_vol<7)) wrvfd(0x00,0x08); } if((fun==3)) { if((trb_vol<7)) wrvfd(0x00,0x08); } wrvfd(0x09,dis[one]); wrvfd(0x01,dis[ten]); TH1=0X00; TL1=0X00; TR1=1; delay_num=20; } void eq_vfd(unsigned char eq) { if(band==2) fun_vfd=0; vfd_clean(); wrvfd(0x07,0xf8); wrvfd(0x06,0x5b); wrvfd(0x04,0x08); wrvfd(0x05,dis[eq+1]); delay_num=20; TR1=1; } void taiwei() { unsigned char b[6]; b[5]=(ab/10); b[4]=(ab%10); wrvfd(0x06,dis[b[5]]>>1); wrvfd(0x07,dis[b[4]]); } void vfd_clean() { unsigned char a; for(a=0;a<16;a++) wrvfd(a,0x00); }
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -