青岛理工大学毕业设计(论文)
附录二 语音提示参考程序
#include
void delay(unsigned int i) //延时程序 {
while(i--); }
void stopmode() //停止 { }
void powerdown() //掉电 {
unsigned char m,i,j;
32
unsigned char m,i,j; cs_4004=1; sclk_4004=0; cs_4004=0; m=0x30; for(i=0;i<8;i++) { }
cs_4004=1;
m=_cror_(m,1); j=m<<1; mosi_4004=CY; sclk_4004=0; sclk_4004=1;
青岛理工大学毕业设计(论文)
cs_4004=1; sclk_4004=0; cs_4004=0; m=0x10; for(i=0;i<8;i++) { m=_cror_(m,1); j=m<<1; mosi_4004=CY; sclk_4004=0; sclk_4004=1;
}
cs_4004=1;
}
void powerup() //上电 { unsigned char m,i,j; cs_4004=1; sclk_4004=0; cs_4004=0; m=0x20; for(i=0;i<8;i++) { m=_cror_(m,1); j=m<<1; mosi_4004=CY; sclk_4004=0; sclk_4004=1;
}
cs_4004=1;
}
void record4004(unsigned int address) {
unsigned char i,m,j;
33
//录音 address—0—2400 青岛理工大学毕业设计(论文)
unsigned int datasoute=0; powerup();
delay(5118); //上电延时 powerup();
delay(5118); //上电延时 delay(5118); //上电延时 cs_4004=1; sclk_4004=0; m=0xa0; cs_4004=0; for(i=0;i<16;i++) { }
for(i=0;i<8;i++) {
m=_cror_(m,1); j=m<<1; mosi_4004=CY; sclk_4004=0; sclk_4004=1;
address=_iror_(address,1); datasoute=address<<1; mosi_4004=CY; sclk_4004=0; sclk_4004=1;
}
cs_4004=1; P0=0xff; datasoute=0;
while(int_4004==1) //存储地址换行标志 {
if(rac_4004) {
delay(20000);
34
青岛理工大学毕业设计(论文)
}
datasoute++;
} //while end;
void audioout(unsigned int address) //放音程序 {
unsigned char i,m,j; unsigned int datasoute powerup(); cs_4004=1; sclk_4004=0; cs_4004=0; m=0xe0; for(i=0;i<16;i++) { }
for(i=0;i<8;i++) { }
cs_4004=1; for(i=0;i<8;i++) {
m=_cror_(m,1); j=m<<1; sclk_4004=0;
35
address=_iror_(address,1); datasoute=address<<1; sclk_4004=0; mosi_4004=CY; sclk_4004=1;
m=_cror_(m,1); j=m<<1; sclk_4004=0; mosi_4004=CY; sclk_4004=1;
青岛理工大学毕业设计(论文)
mosi_4004=CY; sclk_4004=1;
}
cs_4004=1; P0=0xff;
while(int_4004==1){}
}
void main() { record4004(0); audioout(0); while(1);
}
36