📄 speak.c
字号:
#include <reg51.h>
#define uchar unsigned char
sbit P3_2=P3^2;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
uchar read(void)
{ uchar a;
P3_2=0; /* to read */
while(P3_4==1); /* ready? */
a=P1;
P3_2=1;
return(a);
}
void write(uchar od)
{ P1=od;
P3_5=0; /* to write */
while(P3_4==1);
P3_5=1;
P1=0xff;
}
void send(uchar sdata)
{ do {
if((read()&0x40)!=0) write(sdata);
} while ((read()&0x80)!=0);
}
void speak(sdatap)
uchar code *sdatap;
{ uchar len;
len=*sdatap;
while((read()&0x80)!=0); /* to read station */
write(0x60); /* to write instruction */
do {
send(*(++sdatap)); /* to send data */
}while(--len);
len=9;
do {
send(0xff); /* end */
}while(--len);
}
uchar code qingjie[256]={0xb9,0x04,0xd8,0xcd,0x5d,
0x01,0xe7,0x56,0x30,0x60,0xdf,0xaa,0x10,0xad,0x59,0xc3};
uchar code beijing[256]={0xc0,0x25,0x2a,0xaa,0xd4,
0xcc,0x13,0xb7,0x38,0xb9,0xd4,0xcc,0xaa,0x34,0x92,0x14};
uchar code junqu[256]={0xc0,0x02,0x58,0x29,0x53,
0x01,0x6b,0x4c,0x24,0xaf,0x27,0x21,0x89,0x58,0x3d,0xbc};
void main(void)
{ speak(qingjie);
speak(beijing);
speak(junqu);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -