|
例程到?jīng)]有
自己寫(xiě)的不行,想問(wèn)一下在原因
#include <reg52.h>
#define UC8 unsigned char
#define UI16 unsigned int
#define one_line_DATA P1
sbit DATA = P0^1;
sbit keys = P3^0;
int z;
void Delay_10us(z) //延時(shí)子程序1
{
unsigned char a,b,c;
for(a=15;a>0;a--)
for(b=200;b>0;b--)
for(c=100;c>0;c--);
}
void Line_1A_WT588H(UI16 USER_DATA)
{
UC8 i;
bit B_DATA;
UC8 num_temp=0;
UI16 ddata_temp ,pdata_temp;
ddata_temp = USER_DATA;
pdata_temp = ddata_temp& 0X00FF;
ddata_temp>>= 8;
pdata_temp<<= 8;
ddata_temp |= pdata_temp;//用戶(hù)數(shù)據(jù)賦值
num_temp = 16;
one_line_DATA = 0;
Delay_10us(500); //延時(shí) 5MS
B_DATA = (bit)(ddata_temp&0X0001);
for(i=0;i<num_temp;i++)
{
if(i==8)
{
one_line_DATA = 1;
Delay_10us(200); //延時(shí) 2MS
one_line_DATA = 0;
Delay_10us(500); //延時(shí) 5MS
}
one_line_DATA = 1; //拉高數(shù)據(jù)傳輸線(xiàn),準(zhǔn)備傳輸數(shù)據(jù)
if(B_DATA==0)
{ /*表示邏輯電平 0*/
Delay_10us(20); // 延時(shí) 200us
one_line_DATA = 0;
Delay_10us(60); // 延時(shí) 600us
}
else
{ /*表示邏輯電平 1*/
Delay_10us(60); // 延時(shí) 600us
one_line_DATA = 0; Delay_10us(20); // 延時(shí) 200us
}
ddata_temp = ddata_temp>>1;
B_DATA = (bit)(ddata_temp&0x0001);
}
one_line_DATA = 1;
}
void main()
{
while(1)
{
if(keys==0)
{
Delay_10us(100);
if(keys==0) //接收低電平觸發(fā)
{
Line_1A_WT588H(0x0001); //播放1地址音樂(lè)
Line_1A_WT588H(0xFFF2); //循環(huán)1地址播放
}
}
}
} |
|