语音播报超声波测距程序
// *********************单片机实验室******************************/
// *功能 : 语音播报超声波测距程序 (测量范围:4~80cm)
// *引脚连接 : ISD4004 SS接P1.2 MOSI接P1.0 MISO接P1.1 SCLK接P1.3
// * 超声波模块 TX接P3.1 RX接P3.2 J7接上插冒
// *当前版本 :1.0
// *作者 : 刘松
// ****************************************************************/
#include
#include
#include"lcd.h" // 液晶显示
#include"ds18b20.h" //温度传感器
// *功能
// *引脚连接 : ISD4004 SS接P1.2
// *
// *当前版本 :1.0
// *作者
//
#include
#include
#include"lcd.h"
#include"ds18b20.h"
sbit P3_1=P3^1;
sbit key1=P2^1; //定义按键
sbit SS=P1^2; //以下四行定义ISD4004引脚
sbit MOSI=P1^0;
sbit MISO=P1^1;
sbit SCLK=P1^3;
sbit key1=P2^1;
sbit SS=P1^2;
sbit MOSI=P1^0;
sbit MISO=P1^1;
sbit SCLK=P1^3;
uchar addr; //语音地址全局变量
uchar s; //语音所对应数字
int VD; //扩大十倍的声速
int D; //测量的距离
int temp; //超声波反射时间
uchar s;
int VD;
int D;
int temp;
void timer() //初始化计数器
{
TMOD=0x10;
TH1=0;
TL1=0;
EA=1;
EX0=1;
}
{
}
void delay25us_40KHz(unsigned char us) //产生方波用于超声波发射
{
}
rec() interrupt 0
{
}
void delayms(uchar ms)
{
}
void delay2(int m) //长延时用于语音播放http://www.jiaoqb.com/
{
////////////////////////////液晶显示子函数//////////////////////////////////
void display()
{
}
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
////////////////放音部分子程序,放音地址由ADDR决定http://www.jiaoqb.com/
void play(addr)
{
uchar y;
SS=0;
MOSI=0;//发送开始
SCLK=0;
for(y=0;y<8;y++)
{
SCLK=0;
if((0x20>>y)&0x01)MOSI=1; //上电命令
else MOSI=0;
_nop_();
_nop_();
_nop_();
SCLK=1;
_nop_();
_nop_();
_nop_();
}//发送结束
SS=1;//上电结束
delayms(50);
SS=0;
MOSI=0;//发送地址
SCLK=0;
for(y=0;y<16;y++)
{
SCLK=0;
if((addr>>y)&0x01)MOSI=1;
else MOSI=0;
_nop_();
_nop_();
_nop_();
SCLK=1;
_nop_();
_nop_();
_nop_();
}//发送地址结束
MOSI=0;//放音
SCLK=0;
for(y=0;y<8;y++)
{
SCLK=0;
if((0xe0>>y)&0x01)MOSI=1; //指定地址放音命令电子小制作_我爱制作_电子DIY制作套件http://www.5imcu.net/
else MOSI=0;
_nop_();
_nop_();
_nop_();
SCLK=1;
_nop_();
_nop_();
_nop_();
}
SS=1;
SS=0;
MOSI=0;
SCLK=0;
for(y=0;y<8;y++)
{
SCLK=0;
if((0xf0>>y)&0x01)MOSI=1; //忽略地址放音命令(连贯播放后续空间)
else MOSI=0;
_nop_();
_nop_();
_nop_();
SCLK=1;
_nop_();
_nop_();
_nop_();
}
SS=1;
}
///////////////////////////////////////////////////////////////
{
}
///////////////////////////////////////////////////////////////
///////////////////读数字子函数///////////////////////////////
void speaknum()
{
}
////////////////////////////////////////////////////////////////
关键词:
语音播报超声波测
评论