图2 放音中断服务程序流程图
程序代码如下:
#include "stc54.h"
#define SS P12 //片选
#define SCLK P14 //ISD时钟
#define MOSI P11 //数据输入
#define MISO P10 //数据输出
#define STOP P15 //停止当前操作
#define PR P16 //PR=0为放音 PR=1为录音
#define ISD_INT P32 //ISD中断
#define LED P17
#define reset P21
#define AN P20 //执行按键
unsigned char ovfflog;
/***********************************
* 延时n毫秒 *
************************************/
void delays(unsigned char n)
{
TMOD=0x01;
for(n;n>0;n--)
{
TH0=0xfc;
TL0=0x18;
TR0=1;
while(!TF0)
{;}
TR0=0;
TF0=0;
}
}
/************************************
* spi串口发送子程序 8位数据传送 *
*************************************/
void spi_send(isd_command)
{
unsigned char i;
SS=0;
SCLK=0;
for(i=0;i<8;i++) //spi为3总线的用8位
{
if(isd_command&0x01==1) MOSI=1;
else MOSI=0;
isd_command=isd_command>>1; //利用移位把数据送出去
SCLK=0;
delays(2);
SCLK=1;
delays(2);
}
}
|