📄 f15play.c
字号:
sbit p1_6=p1^6;
sbit p1_2=p1^2;
sbit p1_0=p1^0;
sbit p1_1=p1^1;
sbit smod_1=wdcon^7;
sbit por =wdcon^6; //电源上电标志
sbit wdif =wdcon^3; //看门狗中断标志
sbit wtrf =wdcon^2; //看门狗复位标志
sbit ewt =wdcon^1; //允许看门狗复位
sbit rwt =wdcon^0; //复位看门狗
#define nop _nop_()
#define nop2 _nop_(); _nop_(); _nop_(); _nop_(); _nop_()
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
#define timer0_mode_16bit tmod=tmod&0xf0;tmod=tmod|0x01
#define timer0_mode_13bit tmod=tmod&0xf0;tmod=tmod|0x00
#define timer1_mode_16bit tmod=tmod&0x0f;tmod=tmod|0x10
#define timer0_mode_autoreload tmod=tmod&0xf0;tmod=tmod|0x02
#define timer0_interrupt_disable et0=0
#define timer0_interrupt_enable et0=1; ea=1
#define timer0_stop tr0=0
#define timer1_stop tr1=0
#define timer0_run tr0=1
#define timer1_run tr1=1
#define int1_priority_high px1=1
#define int1_priority_low px1=0
#define timer2_priority_low pt2=0
#define int0_priority_high px0=1
#define int0_priority_low px0=0
#define serial_priority_high ps=1
#define serial1_priority_high ps1=1
#define timer0_priority_high pt0=1
#define int1_interrupt_enable ex1=1 ;ea=1
#define int1_interrupt_disable ex1=0
#define int0_mode_hightolow it0=1
#define int1_mode_hightolow it1=1
#define int0_interrupt_enable ex0=1 ;ea=1
#define int0_interrupt_disable ex0=0
#define timer2_interrupt_disable et2=0
#define timer2_interrupt_enable et2=1;ea=1
#define serial_interrupt_disable es=0
#define serial_interrupt_enable es=1;ea=1
#define serial1_interrupt_enable es1=1;ea=1
#define serial1_interrupt_disable es1=0
#define timer1_interrupt_disable et1=0
#define timer1_interrupt_enable et1=1 ; ea=1
#define serial_baund_9600 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xfd;tr1=1
#define serial1_baund_9600 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xfd;tr1=1
#define serial_baund_19200 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xfd;tr1=1;pcon=pcon|0x80 //11.0592m
#define serial_baund_28800 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xff;tr1=1//;pcon=pcon|0x80
#define serial_baund_57600 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xff;tr1=1;pcon=pcon|0x80
#define serial1_baund_19200 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xfd;tr1=1;wdcon=wdcon|0x80
#define serial_baund_9600_33mhz tmod=tmod&0x0f; tmod=tmod|0x20; th1=0xf7; tr1=1
#define serial_baund_14400_33mhz tmod=tmod&0x0f; tmod=tmod|0x20; th1=0xfa; tr1=1
#define serial_baund_28800_33mhz tmod=tmod&0x0f; tmod=tmod|0x20; th1=0xfd; tr1=1
//bt=(2/(32*12))*f/(256-x)= 0.005208333333*f/(256-x)
#define serial_baund_1200 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xe8;tr1=1
#define serial_baund_2400 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xf4;tr1=1
#define serial_baund_19200_timer2 t2con=0x34;rcap2h=0xff;rcap2l=0xee;tr2=1
#define serial_baund_9600_timer2 t2con=0x34;rcap2h=0xff;rcap2l=0xdc
#define serial_baund_1200_timer2 t2con=0x34;rcap2h=0xfe;rcap2l=0xe0;tr2=1
#define serial_baund_4800_timer2 t2con=0x34;rcap2h=0xff;rcap2l=0xb8;tr2=1
#define serial1_baund_2400 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xf4;tr1=1
#define serial1_baund_4800 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xfa;tr1=1
#define serial1_baund_1200 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xe8;tr1=1
#define serial_baund_4800 tmod=tmod&0x0f;tmod=tmod|0x20;th1=0xfa;tr1=1
#define serial_uart_8 sm0=0;sm1=1;sm2=0;tr1=1
#define serial1_uart_8 sm0_1=0;sm1_1=1;sm2_1=0;tr1=1
#define serial_uart_9 sm0=1;sm1=1;sm2=0;tr1=1
#define serial1_uart_9 sm0_1=1; sm1_1=1;tr1=1
#define serial_receive_enable ren=1
#define serial1_receive_enable ren_1=1
#define serial_baund_double pcon=pcon|0x80
#define timer2_mode_autoreload cp_rl=0
#define timer2_mode_capture cp_rl=1
#define timer2_externcontrols_enable exen2=1
#define timer2_externcontrols_disable exen2=0
#define timer2_run tr2=1
#define timer2_stop tr2=0
#define timer2_speed_3 ckcon=ckcon|0x20
#define timer1_speed_3 ckcon=ckcon|0x10
#define timer0_speed_3 ckcon=ckcon|0x08
#define externram_enable pmr=pmr|0x01
#define externram_disable pmr=pmr & 0xfe
#define ws_enable rommap = rommap | 0x80
#define ws_disable rommap = rommap & 0x7f
#define movx_2 ckcon=(ckcon & 0xf8)
#define movx_3 ckcon=(ckcon & 0xf8)|0x01
#define movx_4 ckcon=(ckcon & 0xf8)|0x02
#define movx_5 ckcon=(ckcon & 0xf8)|0x03
#define movx_6 ckcon=(ckcon & 0xf8)|0x04
#define movx_7 ckcon=(ckcon & 0xf8)|0x05
#define movx_8 ckcon=(ckcon & 0xf8)|0x06
#define movx_9 ckcon=(ckcon & 0xf8)|0x07
#define watch_dog_32ms ta=0xaa;ta=0x55;ckcon=(ckcon&0x3f)|0x40 //2的20次方定时 32ms
#define watch_dog_254ms ta=0xaa;ta=0x55;ckcon=(ckcon&0x3f)|0x80 //2的23次方定时 254ms
#define watch_dog_2s ta=0xaa;ta=0x55;ckcon=(ckcon&0x3f)|0xc0 //2的26次方定时 2s
//#define watch_dog_interrupt_enable eie=eie|0x10 //dog中断允许
#define watch_dog_reset_enable ta=0xaa;ta=0x55;ewt=1 //dog复位允许
#define watch_dog_reset ta=0xaa;ta=0x55;rwt=1 //dog复位
#define esc 0x1b
#define int_int0 0
#define int_int1 2
#define int_timer0 1
#define int_timer1 3
#define int_timer2 5
#define int_serial 4
#define int_serial1 7
union u
{
uint word;
struct
{
uchar high;
uchar low;
}bytes;
};
union v /* 发送顺序为低位在前,高位在后 8019网卡的长度*/
{
uint word;
struct
{
uchar low;
uchar high;
}bytes;
};
union w
{
ulong dword;
struct
{
uint high;
uint low;
}words;
};
union f
{
ulong dword;
struct
{
uchar high1;
uchar high2;
uchar high3;
uchar high4;
}dwords;
};
bdata uchar indat; //用于前台程序
sbit dat0 = indat^0;
sbit dat1 = indat^1;
sbit dat2 = indat^2;
sbit dat3 = indat^3;
sbit dat4 = indat^4;
sbit dat5 = indat^5;
sbit dat6 = indat^6;
sbit dat7 = indat^7;
bdata uchar sbfdat; //用于中断程序
sbit fdat0 = sbfdat^0;
sbit fdat1 = sbfdat^1;
sbit fdat2 = sbfdat^2;
sbit fdat3 = sbfdat^3;
sbit fdat4 = sbfdat^4;
sbit fdat5 = sbfdat^5;
sbit fdat6 = sbfdat^6;
sbit fdat7 = sbfdat^7;
sbit sdi = P1^0; // mp3数据入015的移位数据入
sbit sckr = P1^1; // mp3数据入015的移位时钟
sbit m_scl = P1^2; // i2c总线时钟
sbit m_sda = P1^4; // i2c总线数据
sbit req = P1^5; // 数据空中断线
sbit vol_b0 = P1^3; // 低位
sbit vol_b1 = P1^6; // 三线对讲音量 0最大 7最小
sbit vol_b2 = P3^4; // 高位
sbit monitor_b = P1^7; // 监听控制 0=监听
sbit my_sond = P3^5; // 自己音接通 1=接通
sbit comm = p3^3; //与机芯板通讯
sbit comm1 = p3^2; //与机芯板通讯
#define reset_015_on indat=p4;dat1=0;p4=indat //mp3硬件复位
#define reset_015_off indat=p4;dat1=1;p4=indat
#define send_sond_1 indat=p4;dat3=1;p4=indat //送话控制
#define send_sond_0 indat=p4;dat3=0;p4=indat
#define reci_sond_1 indat=p4;dat2=1;p4=indat //收话控制
#define reci_sond_0 indat=p4;dat2=0;p4=indat
#define u4550_on indat=p4;dat0=1;p4=indat //4550播放开
#define u4550_off indat=p4;dat0=0;p4=indat
/* 按键代码 */
#define KEY_UP 0x5b00 //向上
#define KEY_DOWN 0x5d00 //向下
#define KEY_LEFT 0x5c00 //向左
#define KEY_RIGHT 0x5e00 //向右
#define KEY_OK 0x1c0d //ENTER
#define KEY_CANEL 0x5200 //小0
#define KEY_HELP 0xe800 //小num
#define KEY_DEL 0x2308 //<-退格
#define KEY_DEL1 0x5800 //DEL
//#define KEY_DIALOG 0x01e2
#define KEY_JMP 0x5100 //小3
#define KEY_VOLUP 0x4700 //小7
#define KEY_REC 0x5000 //小2
#define KEY_PLAY 0x4b00 //小4
#define KEY_FAST 0x4c00 //小5
#define KEY_FAW 0x4d00 //小6
#define KEY_STOP 0x4f00 //小1
#define KEY_VOLDOWN 0x4800 //小8
#define KEY_PGUP 0x5700 //PGUP
#define KEY_PGDN 0x5a00 //PGDN
#define KEY_TUP 0x4a00 //小+ 上题
#define KEY_TDN 0x6d00 //小ENTER 下题
#define KEY_TRACK 0x6000 //小/
#define KEY_CEYIN 0x6200 //小-
#define KEY_TIMBRE 0x6100 //小*
#define KEY_XIUGAI 0x4900 //小9
#define KEY_CALL 0x5300 //小DEL
#define KEY_FASTH 0x0000 //小5
#define KEY_FAWH 0x0001 //小6
#define KEY_ZW_START 0x4000 //f1
#define KEY_ZW_END 0x4100 //f2
#define KEY_ZW_SEND 0x4200 //f3
#define KEY_1 0x0231
#define KEY_2 0x0332
#define KEY_3 0x0433
#define KEY_4 0x0534
#define KEY_5 0x0635
#define KEY_6 0x0736
#define KEY_7 0x0837
#define KEY_8 0x0938
#define KEY_9 0x0a39
#define KEY_0 0x0b3a
#define KEY_XD 0x2960
#define KEY_SUBB 0x0c2d //-
#define KEY_DEN 0x0d3d //=
#define KEY_FAN 0x2b5c //|
#define KEY_q 0x1071
#define KEY_w 0x1177
#define KEY_e 0x1265
#define KEY_r 0x1372
#define KEY_t 0x1474
#define KEY_y 0x1579
#define KEY_u 0x1675
#define KEY_i 0x1769
#define KEY_o 0x186f
#define KEY_p 0x1970
#define KEY_ZUO 0x1a5b //[
#define KEY_YOU 0x1b5d //]
#define KEY_a 0x1e61
#define KEY_s 0x1f73
#define KEY_d 0x2064
#define KEY_f 0x2166
#define KEY_g 0x2267
#define KEY_h 0x2368
#define KEY_j 0x246a
#define KEY_k 0x256b
#define KEY_l 0x266c
#define KEY_FEN 0x273b //;
#define KEY_DAN 0x2827 //'
#define KEY_z 0x2c7a
#define KEY_x 0x2d78
#define KEY_c 0x2e63
#define KEY_v 0x2f76
#define KEY_b 0x3062
#define KEY_n 0x316e
#define KEY_m 0x326d
#define KEY_DU 0x332c //,
#define KEY_DIAN 0x342e //.
#define KEY_XIE 0x352f // /线
#define KEY_blank 0x3920
#define KEY_SUI 0x297e //~
#define KEY_1H 0x0221 //!
#define KEY_2H 0x0340 //@
#define KEY_3H 0x0423 //#
#define KEY_4H 0x0524 //$
#define KEY_5H 0x0625 //%
#define KEY_6H 0x075e //^
#define KEY_7H 0x0826 //&
#define KEY_8H 0x092a //*
#define KEY_9H 0x0a28 //(
#define KEY_0H 0x0b29 //)
#define KEY__ 0x0c5f //_
#define KEY_DENH 0x0d2b //+
#define KEY_ZI 0x2b7c //\
#define KEY_Q 0x1051
#define KEY_W 0x1157
#define KEY_E 0x1245
#define KEY_R 0x1352
#define KEY_T 0x1454
#define KEY_Y 0x1559
#define KEY_U 0x1655
#define KEY_I 0x1749
#define KEY_O 0x184f
#define KEY_P 0x1950
#define KEY_DZUO 0x1a7b //{
#define KEY_DYOU 0x1a7d //}
#define KEY_A 0x1a41
#define KEY_S 0x1f53
#define KEY_D 0x2044
#define KEY_F 0x2146
#define KEY_G 0x2247
#define KEY_H 0x2348
#define KEY_J 0x244a
#define KEY_K 0x254b
#define KEY_L 0x264c
#define KEY_MAO 0x273a //:
#define KEY_SHUANG 0x2822 //"
#define KEY_Z 0x2c5a
#define KEY_X 0x2d58
#define KEY_C 0x2e43
#define KEY_V 0x2f56
#define KEY_B 0x3042
#define KEY_N 0x314e
#define KEY_M 0x324d
#define KEY_KUOL 0x333c //<
#define KEY_KUOR 0x343e //>
#define KEY_WEN 0x353f //>
#define MBT_MAX 24 //主标题字节数
#define MY_MAX 14 //主页信息字节数
#define MWB_MAX 1390 //主文本字节数
#define MDJ_MAX 78 //主答卷字节数
#define MFZ_MAX 51 //主辅助信息字节数
#define MBF_MAX 15 //主音频播放进程字节数
#define MYL_MAX 12 //主音量图标字节数
#define FBT_MAX 22 //副标题字节数
#define FWB_MAX 78 //副文本字节数
// #define MBT_MAX 24 //主标题字节数
// #define MY_MAX 14 //主页信息字节数
// #define MWB_MAX 456 //主文本字节数
// #define MDJ_MAX 38 //主答卷字节数
// #define MFZ_MAX 11 //主辅助信息字节数
// #define MBF_MAX 15 //主音频播放进程字节数
// #define MYL_MAX 12 //主音量图标字节数
// #define FBT_MAX 22 //副标题字节数
// #define FWB_MAX 88 //副文本字节数
#define RECI_SOND_OFF 0
#define RECI_SOND_ON 1
#define SEND_SOND_OFF 0
#define SEND_SOND_ON 1
#define MONITOR_B_OFF 1
#define MONITOR_B_ON 0
#define MY_SOND_OFF 0
#define MY_SOND_ON 1
idata uchar timer1=0;
idata uchar timer2=0; //定时器
idata uchar timer10=0; //定时器
idata uchar timer40=0; //定时器
bit cee=0; //侧音标志=0关,=1开
xdata uchar text[2100]; //0-569为主界面文本显示缓冲区 570-679为副界面文本显示缓冲区
xdata uchar zwen[2100]; //作文接收缓冲区
#define reg00 XBYTE[0x8000]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -