📄 main.c
字号:
#include "include.h"
unsigned char code dizhibiao[]=
{
0x00,0x00,0x00,0x4b,0x00,0x96,0x00,0xe1,0x01,0x2c,0x01,0x77,0x01,0xc2,0x02,0x0d,
0x02,0x58,0x02,0xa3,0x02,0xee,0x03,0x39,0x03,0x84,0x03,0xcf,0x04,0x1a,0x04,0x65,
0x04,0xb0,0x04,0xfb,0x05,0x46,0x05,0x91,0x05,0xdc,0x06,0x27,0x06,0x72,0x06,0xbd,
0x07,0x08,0x07,0x53,0x07,0x9e,0x07,0xe9,0x08,0x34,0x08,0x7f,0x08,0xca,0x09,0x15};
/*
void delay(unsigned int time)
{
while(time!=0)
time--;
}
*/
//***************************
//串行发送子程序 8BIT
void send(unsigned char isdx)
{ unsigned char isxcounter;
SS=0;
SCLK=0;
for(isxcounter=0;isxcounter<8;isxcounter++)
{if((isdx&0x01)==1)
MOSI=1;
else
MOSI=0;
isdx=isdx>>1;
SCLK=1;
delay(24);
SCLK=0;
delay(24);
}
}
//****************************
//发送STOP指令,延时50MS
void isdstop(void)
{
delay(120);
send(0x30);
SS=1;
delay_ms(600);
}
//****************************
//发送上电指令,延时50MS
void isdpwrup(void)
{
delay(120);
SS=0;
send(0x20);
SS=1;
delay_ms(600);
}
//****************************
//发送掉电指令,延时50MS
void isdpwrdown(void)
{
delay(120);
send(0x10);
SS=1;
delay_ms(600);
}
//****************************
//发送paly指令
void isdplay(void)
{
LED=0;
send(0xf0);
SS=1;
}
//****************************
//发送rec指令
void isdrec(void)
{
LED=0;
send(0xb0);
SS=1;
}
//****************************
//发送setplay指令
void setplay(unsigned char adl,unsigned char adh)
{
delay_ms(24);
send(adl);
delay(24);
send(adh);
delay(24);
send(0xe0);
SS=1;
}
//****************************
//发送setrec指令
void setrec(unsigned char adl,unsigned char adh)
{
delay_ms(12);
_nop_();
send(adl);
_nop_();
delay(24);
_nop_();
send(adh);
_nop_();
delay(24);
send(0xa0);
SS=1;
}
//****************************
//定义端口
//sbit CCE =P1^7;
//sbit CDATA =P1^6;
//sbit CCLK =P1^5;
//*******************
//定义要接收数据数组***********
unsigned int duanhaozub[32]={0x1a,0x19,0x19,0x12,0x01,0x02,0x0b,0x00,0x00,0x0c,0x0e,0x05,0x0d,0x10,0x11,0x01,0x08,0x09,0x0b,0x06,0x07,0x0c,0x02,0x00,0x00,0x08,0x14,0x09,0x15,0x0a,0x07,0x16};
unsigned int duanhaozu[32]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f};
unsigned int bb;
//*****************************
//*****************************
/*unsigned char congrec()
{
unsigned char varible9;
int i;
for(i=0;i<8;i++)
{
while(CCLK==0)
{;}
if(CDATA==1)
{varible9=varible9|0x01;}
varible9=varible9<<1;
while(CCLK==1)
{;}
}
return varible9;
}
//************************************
void congshouzu(void)
{
int j;
for(j=0;j<15;j++)
{
duanhaozu[j]=congrec();
}
}
//************************************
*/
int a,b,c,i;
//PALY 全部的函数
void paly()
{
for(i=0;i<32;i++)
{
a=duanhaozu[i]*2;//调用数组duanhaozu
// a=duanhaozub[i]*2;//或者数组duanhaozub
_nop_;
b=dizhibiao[a];
_nop_;
a=a+1;
c=dizhibiao[a];
_nop_;
setplay(b,c);
delay(20);
while(ISDINT==1)//EOM未中断
{;}//若''中断‘’,向下执行
LED=1;
isdstop();
}
}
//************************************
main()
{
sys_init();
while(1)
{
// while(CCE==1)
// {;}
// congshouzu();//数组收完 准备放音
//**********************************
//查段号,进行放音
//if(START==0)
//{
paly();
//}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -