?? mainh.h
字號(hào):
typedef unsigned char U8;
typedef unsigned short U16;
typedef unsigned long U32;
#include "intrins.h"
#define EE_Base 0x8000
#define STC
#define STC12
sfr AUXR =0X8E;
sfr ISP_DATA =0XE2;
sfr ISP_ADDRH =0XE3;
sfr ISP_ADDRL =0XE4;
sfr ISP_CMD =0XE5;
sfr ISP_TRIG =0XE6;
sfr ISP_CONTR =0XE7;
sfr WDT_CONTR =0XE1;
sfr XICON =0Xc0;
/* XICON */
sbit PX3 = XICON^7;
sbit EX3 = XICON^6;
sbit IE3 = XICON^5;
sbit IT3 = XICON^4;
sbit PX2 = XICON^3;
sbit EX2 = XICON^2;
sbit IE2 = XICON^1;
sbit IT2 = XICON^0;
#define ISP_READ 1;
#define ISP_WRITE 2;
#define ISP_ERASE 3;
#define ISP_TIME 0;
#define RST ISP_CONTR|=0x20;
#define PULSE EA=0;ISP_TRIG=0X46;_nop_();ISP_TRIG=0XB9;EA=1;
#define bus P0
#define busfree bus=0xff
sfr P4 =0XE8; sfr T2MOD =0Xc9;
sbit INT3 = P4^2;
sbit INT2 = P4^3;
//sbit PW = P3^1;
sbit SL165 = P2^0; sbit CK165 = P3^2; sbit SO165 = P4^0;
#define play_buf 128
#define sendA TI=0;SBUF='A';
U8 bdata flag;
sbit R232 =flag^0; sbit Playing=flag^1; sbit Pause=flag^2; sbit Playing_F=flag^3;
sbit ON_OFF=flag^4;
//與STC12xx通訊用到的變量
U8 commct; //從STC12接收數(shù)據(jù)計(jì)數(shù) <=100
U8 xdata commbuf[100];
sbit commack = P4^1;
bit commover=0;
int timer0=0;
#ifndef STC
U32 BLK_ofset; U16 FileSize;
U8 Sbuf,FileNo,dir,code_ct=0;
void receive_kk(void) interrupt 2
{
code_ct+=1; //SBUF=timer;
Sbuf>>=1;
// if(TH1<213)Sbuf|=0x80; //27.132MHz
// if(TH1<220)Sbuf|=0x80; //36MHz
// if(TH1<225)Sbuf|=0x80; //40MHz
if(TH1<216)Sbuf|=0x80; //24.576MHz
TH1=200;TL1=0;TR1=1;
}
void receive_over(void) interrupt 3
{
if(code_ct<30){code_ct=TR1=0;Sbuf=0;return;}
/* if(Sbuf>9)switch(Sbuf)
{
case 14:Sbuf='P';break; //play back
case 27:Sbuf='<';break; //節(jié)目上
case 26:Sbuf='>';break; //節(jié)目下
case 13:Sbuf='S';break; //Tv/V
case 21:Sbuf='M';break; //mute
case 31:Sbuf='+';break; //音量> +
case 30:Sbuf='-';break; //音量< -
case 10:Sbuf='^';break; //-/--
}*/
// TI=0; SBUF=Sbuf;
code_ct=TR1=0; R232=1;
}
#endif
//****************EE-prom modle************
void disable_EE()
{ ISP_CONTR=ISP_CMD=ISP_TRIG=0;ISP_ADDRH=ISP_ADDRL=0XFF; }
void flash_erase(U8 page)
{
ISP_ADDRH= EE_Base>>8 + page*2; ISP_ADDRL=0;
ISP_CONTR=0X80; ISP_CMD=ISP_ERASE;
PULSE;
disable_EE();
}
void write_EE(U16 addr,U8 dat)
{
addr+=EE_Base;
ISP_CONTR=0X80;ISP_CMD=ISP_WRITE;
ISP_ADDRL=addr; ISP_ADDRH=addr>>8;
ISP_DATA=dat;PULSE;
disable_EE();
}
U8 read_EE(U16 addr)
{
U8 dat; addr+=EE_Base;
ISP_CONTR=0X80; ISP_CMD=ISP_READ;
ISP_ADDRL=addr; ISP_ADDRH=addr>>8;
PULSE; dat=ISP_DATA;
disable_EE();
return(dat);
}
#ifdef STC
#define SF 1
#define CF 0
void PD_rst(){
if(PCON&0x10){
PCON ^=0x10; //Clear PCON.4(POF)
ON_OFF = CF; //車(chē)方狀態(tài)
}
}
U8 read165(){
U8 i,r=0;
CK165=0; SL165 = 0; SL165=1;
for(i=0;i<8;i++){
CK165=1; if(SO165)r |=(1<<i); CK165=0;
}
return r;
}
#endif
//********************* Delay n T *******************************************
void dlyNT(U8 nt){
while(nt--);
}
#ifdef STC12
//***************************** Stc12xx <==> Stc89xx Comunication ***************
//EX2 P4.3 (@qfp44 pin6)
void com89_12(void) interrupt 6 using 2
{
if(commct>=commbuf[0]){commover=1; return;}
commbuf[commct]=bus;
commack=0; dlyNT(10); commct++; commack=1;
}
U8 SendTo12xx(U8 *p,U8 lng){
while(lng--){
bus=*p; commack=0; dlyNT(10);commack=1;
timer0=0; while(commack)if(timer0>=100)break;
if(timer0>=10){busfree; return(0);}
timer0=0; while(!commack)if(timer0>=100)break;
if(timer0>=10){busfree; return(0);}
}
busfree; return(1);
}
#endif
#define GPS
#ifndef GPS
//***************************** Extend RS232 Comunication ***************
//EX2 P4.3 (@qfp44 pin6)
void comGPS_PC(void) interrupt 6 using 2
{
if(commct>=commbuf[0]){commover=1; return;}
commbuf[commct]=bus;
commack=0; dlyNT(10); commct++; commack=1;
}
#endif
/***********************end**************************
U8 box_filesum()
{
U8 i=0;
while(i<128){if(read_EE((U16)i*8)==0xff)break;i+=1;}
// SBUF=i;
return(i);
}
U16 New_BlockHeader()
{ U8 F_sum; U32 x;
U16 addr,F_Block_Header; U32 size; addr=0; F_Block_Header=0;
F_sum=box_filesum();
if(F_sum){addr = (F_sum-1)*8+2;
F_Block_Header = read_EE(addr); addr+=1; F_Block_Header += (U16)(read_EE(addr)<<8);
addr+=1; size=read_EE(addr);
addr+=1; x=read_EE(addr); x<<=8; size+=x;
addr+=1; x=read_EE(addr); x<<=16; size+=x;
addr+=1; x=read_EE(addr); x<<=24; size+=x;
size=(size/2048)/64; F_Block_Header+=(size+1);
}
return (F_Block_Header);
}
*/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -