|
题主是初学者 最近用arduino结合pm66准备实现放音功能
声音在买芯片的时候就已经录好了 地址是0X00到0X0F
芯片的K1 K2 O1 以及电源端 电源地 和单片机相连
另外芯片SPP与SPN连一个小喇叭来放音
但是一直没有声音
而且检查程序发现O1端一直处于高电平
以下代码是根据51单片机串行模式的代码改编的
求大家帮忙看看代码哪里出现了问题
感激不尽
- int K1 = 11; //数据端
- int K2 = 12; //时钟端
- int O1 = 3;//忙信号端
- void sp(unsigned char k1_data)
- {
- unsigned char i;
-
- digitalWrite(K2, HIGH);
- delayMicroseconds(2);
-
- digitalWrite(K1, LOW);
- delayMicroseconds(2);
-
- delay(25);
-
- digitalWrite(K1, HIGH);
- delayMicroseconds(2);
-
- delay(25);
-
- for (i=0;i<8;i++)
- {
- digitalWrite(K2, LOW);
- delayMicroseconds(2);
-
- if ((k1_data&0X01)==1)//qu zui hou yi wei
- {
- digitalWrite(K1, HIGH);
- delayMicroseconds(2);
- }
- else
- {
- digitalWrite(K1, LOW);
- delayMicroseconds(2);
- }
- k1_data = k1_data >>1;//you yi
- delayMicroseconds(170);
-
- digitalWrite(K2, HIGH);
- delayMicroseconds(2);
-
- delayMicroseconds(170);
- }
- digitalWrite(K1, HIGH);
- delayMicroseconds(2);
- }
- void setup()
- {
- Serial.begin(9600);
- pinMode(K1, INPUT);
- pinMode(K2, INPUT);
- pinMode(O1, OUTPUT);
- }
- void loop()
- {
- unsigned char h;
- for(h = 0X00;h<=0X0F;h++)
- {
- sp(h);
- while (HIGH == 01)
- delay(5);
- }
- }
复制代码 |
|