久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
一個基于單片機的MY1690語音播放系統源程序
[打印本頁]
作者:
jiazhengjing
時間:
2017-5-14 18:25
標題:
一個基于單片機的MY1690語音播放系統源程序
這是我畢業設計的題目餐廳語音播放系統的碼源,用keil編的,資料包括所使用的元器件和語音模塊的說明說和電路圖。
0.png
(69.42 KB, 下載次數: 147)
下載附件
2017-5-14 18:50 上傳
單片機源程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar yytable[]={0x7e,0x05,0x41,0x00,0x0b,0x4f,0xef, //請
0x7e,0x05,0x41,0x00,0x00,0x44,0xef, //0
0x7e,0x05,0x41,0x00,0x00,0x44,0xef, //0
0x7e,0x05,0x41,0x00,0x00,0x44,0xef, //0
0x7e,0x05,0x41,0x00,0x0e,0x4a,0xef, //號顧客
0x7e,0x05,0x41,0x00,0x0c,0x48,0xef, //dao
0x7e,0x05,0x41,0x00,0x00,0x44,0xef, //0
0x7e,0x05,0x41,0x00,0x00,0x44,0xef, //0
0x7e,0x05,0x41,0x00,0x0d,0x49,0xef}; //號餐桌就餐
uchar yinjia[]={0x7e,0x03,0x15,0x16,0xef};
uchar yinjian[]={0x7e,0x03,0x16,0x15,0xef};
uchar xstable[]={0xc7,0Xeb,0xa3,0xb0,0xa3,0xb0,0xa3,0xb0,0xba,0xc5,0xb9,0xcb,0xbf,0xcd,0xa2,0xa0,
0xb5,0xbd,0xa3,0xb0,0xa3,0xb0,0xba,0xc5,0xb2,0xcd,0xd7,0xc0,0xbe,0xcd,0xb2,0xcd};
//請00 0號顧客_ 0x80 0x81 0x82 0x83 0x83 0x84 0x85 0x86
//到00號餐桌就餐
sbit rs=P1^0;
sbit rw=P1^1;
sbit e=P1^2;
sbit psb=P1^3;
void write_12864com(uchar com);
void write_12864dat(uchar dat);
void initial(void);
void display(void);
void send_cmd(uchar dat);
void send_yytable(void);
void Serial_init(void);
//****************************
//在12MHz的晶振下,延時5us
//*****************************
void delay_50us(uint t)
{
uchar j;
for (; t>0;t--);
for (j=19; j>0;j--);
}
//****************************
//在12MHz的晶振下,延時50ms
//*****************************
void delay_50ms(uint t)
{
uint j;
for (; t>0;t--);
for (j=6245; j>0;j--);
}
void Delay_Ms(int z)
{
int x=0 , y=0;
for(x=110 ; x>0 ;x--)
for(y=z; y>0;y-- );
}
void main ()
{ uchar b;
uint i;
uint Key_flag;
uchar key_l;
uchar key_h;
uchar key;
uchar xs7=0xb0;
uchar xs5=0xb0;
uchar xs3=0xb0;
uchar yy11=0x00;
uchar yy18=0x00;
uchar yy25=0x00;
uchar jy ;
Key_flag=0;
Serial_init();//串口初始化
initial();//液晶初始化
display();
while(1)
{ //jianpan
P2=0xf0;
key_l=P2;
key=0x00;
key_l=key_l&0xf0; //
if (key_l!=0xf0)
{
delay_50us(100);
if (key_l!=0xf0)
{
key_l=P2&0xf0;
key_l=key_l|0x0f;
P2=key_l;
key_h=P2;
key_h=key_h&0x0f;
key_l=key_l&0xf0;
key=key_l+key_h;
}
}
switch (key)
{
case 0xee:
if (Key_flag%2==0) //Key_flag偶數
{Key_flag++;
xstable[19]=0xb1; //顯示餐桌號1_
yytable[46]=0x01; //語音餐桌號1_
yytable[47]=0x45;
display();
delay_50ms(50000) ;
}
else //(Key_flag%2==0) Key1_flag奇數
{
Key_flag++;
xstable[21]=0xb1; //顯示餐桌號_1
yytable[53]=0x01; //語音餐桌號_1
yytable[54]=0x45;
display();
delay_50ms(50000) ;
}
break;
case 0xde:
if(Key_flag%2==0) //Key_flag偶數
{Key_flag++;
xstable[19]=0xb2; //顯示餐桌號2_
yytable[46]=0x02; //語音餐桌號2_
yytable[47]=0x46;
display();
delay_50ms(50000) ;}
else //Key1_flag偶數
{Key_flag++;
xstable[21]=0xb2; //顯示餐桌號_2
yytable[53]=0x02; //語音餐桌號_2
yytable[54]=0x46;
display();
delay_50ms(50000) ;
} break;
case 0xbe:
if (Key_flag%2==0) //Key_flag偶數
{Key_flag++;
xstable[19]=0xb3; //顯示餐桌號3_
yytable[46]=0x03; //語音餐桌號3_
yytable[47]=0x47;
display();
delay_50ms(50000) ;}
else //Key1_flag奇數
{Key_flag++;
xstable[21]=0xb3; //顯示餐桌號_3
yytable[53]=0x03; //語音餐桌號_3
yytable[54]=0x47;
display();
delay_50ms(50000) ;
} break;
case 0x7e: xs7=0xb0;
xs5=0xb0;
xs3=0xb0;
yy25=0x00;
yy18=0x00;
yy11=0x00;
xstable[7]=0xb0; //顧客號歸零
xstable[5]=0xb0;
xstable[3]=0xb0;
yytable[25]=0x00;
yytable[26]=0x44;
yytable[18]=0x00;
yytable[19]=0x44;
yytable[11]=0x00;
yytable[12]=0x44;
Key_flag=0;
display();
break;
case 0xed:;
if (Key_flag%2==0) //Key_flag奇數
{Key_flag++;
xstable[19]=0xb4; //顯示餐桌號4_
yytable[46]=0x04; //語音餐桌號4_
yytable[47]=0x40;
display();
delay_50ms(50000) ;}
else //Key1_flag偶數
{Key_flag++;
xstable[21]=0xb4; //顯示餐桌號_4
yytable[53]=0x04; //語音餐桌號_4
yytable[54]=0x40;
display();
delay_50ms(50000) ;
} break;
case 0xdd:
if (Key_flag%2==0) //Key_flag奇數
{Key_flag++;
xstable[19]=0xb5; //顯示餐桌號5_
yytable[46]=0x05; //語音餐桌號5_
yytable[47]=0x41;
display();
delay_50ms(50000) ;}
else //Key1_flag偶數
{Key_flag++;
xstable[21]=0xb5; //顯示餐桌號_5
yytable[53]=0x05; //語音餐桌號_5
yytable[54]=0x41;
display();
delay_50ms(50000) ;
} break;
case 0xbd:
if (Key_flag%2==0) //Key_flag奇數
{Key_flag++;
xstable[19]=0xb6; //顯示餐桌號6_
yytable[46]=0x06; //語音餐桌號6_
yytable[47]=0x42;
display();
delay_50ms(50000) ;}
else //Key1_flag偶數
{Key_flag++;
xstable[21]=0xb6; //顯示餐桌號_6
yytable[53]=0x06; //語音餐桌號_6
yytable[54]=0x42;
display();
delay_50ms(50000) ;
} break;
case 0x7d:
if (xs7==0xb9)
{
if (key_l!=0xf0)
{
delay_50us(100);
if (key_l!=0xf0)
{
xs7=0xb0;
xstable[7]=xs7;
xs5++;
xstable[5]=xs5; //? 顯示顧客號0X0變為0+0
yy25=0x00;
yytable[25]=yy25; // 語音顧客號009變為000
yytable[26]=0x44;
yy18++;
yytable[18]=yy18; //? 語音顧客號0X0變為0+0
jy=0x05^0x41^yy18;
yytable[19]=jy;
display();}
}}
else if (xs5==0xb9)
{
if (key_l!=0xf0)
{
delay_50us(100);
if (key_l!=0xf0)
{
xs5=0xb0;
xstable[5]=xs5;
xs3++;
xstable[3]=xs3;
yy18=0x00;
yytable[19]=0x44;
yytable[18]=yy18; //? 語音顧客號X90變為X00
yy11++;
yytable[11]=yy11; // 語音顧客號X00變+00
jy=0x05^0x41^yy11;
yytable[12]=jy;
display();}
}}
else
{Key_flag++;
yy25++;
yytable[25]=yy25; //? 語音播放顧客號000+1
jy=0x05^0x41^yy25;
yytable[26]=jy;
xs7++;
xstable[7]=xs7; //顯示屏顧客號000+1
delay_50ms(2000) ;
display();
send_yytable();}
break;
case 0xeb:
if (Key_flag%2==0) //Key_flag奇數
{ Key_flag++;
xstable[19]=0xb7; //顯示餐桌號7_
yytable[46]=0x07; //語音餐桌號7_
yytable[47]=0x43;
display();
delay_50ms(50000) ;}
else //Key1_flag偶數
{ Key_flag++;
xstable[21]=0xb7; //顯示餐桌號_7
yytable[53]=0x07; //語音餐桌號_7
yytable[54]=0x43;
display();
delay_50ms(50000) ;
} break;
case 0xdb:
if (Key_flag%2==0) //Key_flag奇數
{Key_flag++;
xstable[19]=0xb8; //顯示餐桌號8_
yytable[46]=0x08; //語音餐桌號8_
yytable[47]=0x4c;
display();
delay_50ms(50000) ;}
else //Key1_flag偶數
{Key_flag++;
xstable[21]=0xb8; //顯示餐桌號_8
yytable[53]=0x08; //語音餐桌號_8
yytable[54]=0x4c;
display();
delay_50ms(50000) ;
} break;
case 0xbb:
if (Key_flag%2==0) //Key_flag奇數
{
Key_flag++;
xstable[19]=0xb9; //顯示餐桌號9_
yytable[46]=0x09; //語音餐桌號9_
yytable[47]=0x4d;
display();
delay_50ms(50000) ;}
else //Key1_flag偶數
{Key_flag++;
xstable[21]=0xb9; //顯示餐桌號_9
yytable[53]=0x09; //語音餐桌號_9
yytable[54]=0x4d;
display();
delay_50ms(50000) ;
}break;
case 0x7b:
for (i=0;i<5;i++)
{ b=yinjia[i];
send_cmd(b);}break;
case 0xe7:
for (i=0;i<5;i++)
{ b=yinjian[i];
send_cmd(b);}break;
case 0xd7:
if (Key_flag%2==0) //Key_flag奇數
{Key_flag++;
xstable[19]=0xb0; //顯示餐桌號0_
yytable[46]=0x00; //語音餐桌號0_
yytable[47]=0x44;
display();
delay_50ms(50000) ;}
else //Key1_flag偶數
{Key_flag++;
xstable[21]=0x00; //顯示餐桌號_0
yytable[53]=0x00; //語音餐桌號_0
yytable[54]=0x44;
display();
delay_50ms(50000) ;
}break;
case 0xb7: Key_flag++;
yy25--;
yytable[25]=yy25; //? 語音播放顧客號000-1
jy=0x05^0x41^yy25;
yytable[26]=jy;
xs7--;
xstable[7]=xs7; //顯示屏顧客號000-1
display();
send_yytable();
delay_50ms(50000) ;
break;
}
}}
void write_12864com (uchar com)
{
rw=0;
rs=0;
delay_50us(1);
P0=com;
e=1;
delay_50us(10);
e=0;
delay_50us(2);
}
void write_12864dat (uchar dat)
{
rw=0;
rs=1;
delay_50us(1);
P0=dat;
e=1;
delay_50us(10);
e=0;
delay_50us(2);
}
void initial(void)
{ delay_50ms(2);
write_12864com(0x30);
delay_50us(4);
write_12864com(0x30);
delay_50us(4);
write_12864com(0x0c); //顯示開關,光標,白底都開,00001111,0c 00001100光標和白底都關了
delay_50us(4);
write_12864com(0x01);//清屏
delay_50us(300);
write_12864com(0x06);//模式設置
delay_50us(10);
}
void display(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<32;i++)
{
write_12864dat(xstable[i]);
delay_50us(1);
}}
/******************************************************************************
- 功能描述: 串口1初始化
- 注: 設置為9600波特率
******************************************************************************/
void Serial_init(void)
{
TMOD = 0x20; // 設置 T1 為波特率發生器
SCON = 0x50; // 0101,0000 8位數據位, 無奇偶校驗
PCON = 0x00; //PCON=0;
TH1=0xfd;//設置為9600波特率
TL1=0xfd;
TR1 = 1; //定時器1打開
REN = 1; //串口1接收使能
ES = 1; //串口1中斷使能
}
/*********************************************************************************
* 【函 數 名】: void send_cmd(uchar dat)
* 【功 能】: 串口發送數據命令
**********************************************************************************/
void send_cmd(uchar dat)
{
SBUF=dat; //發送指令到SBUF
while(!TI); //等待發送結束
TI=0; //清除結束標志,以便再發送數據
}
void send_yytable(void)
{ uchar a;
Delay_Ms(500);
a=yytable[0];
send_cmd(a);
a=yytable[1];
send_cmd(a);
a=yytable[2];
send_cmd(a);
a=yytable[3];
send_cmd(a);
a=yytable[4];
send_cmd(a);
a=yytable[5];
send_cmd(a);
a=yytable[6];
send_cmd(a);
Delay_Ms(800);
a=yytable[7];
send_cmd(a);
a=yytable[8];
send_cmd(a);
a=yytable[9];
send_cmd(a);
a=yytable[10];
send_cmd(a);
a=yytable[11];
send_cmd(a);
a=yytable[12];
send_cmd(a);
a=yytable[13];
send_cmd(a);
Delay_Ms(800);
a=yytable[14];
send_cmd(a);
a=yytable[15];
send_cmd(a);
a=yytable[16];
send_cmd(a);
a=yytable[17];
send_cmd(a);
a=yytable[18];
send_cmd(a);
a=yytable[19];
send_cmd(a);
a=yytable[20];
send_cmd(a);
Delay_Ms(800);
a=yytable[21];
send_cmd(a);
a=yytable[22];
send_cmd(a);
a=yytable[23];
send_cmd(a);
a=yytable[24];
send_cmd(a);
a=yytable[25];
send_cmd(a);
a=yytable[26];
send_cmd(a);
a=yytable[27];
send_cmd(a);
Delay_Ms(800);
a=yytable[28];
send_cmd(a);
a=yytable[29];
send_cmd(a);
a=yytable[30];
send_cmd(a);
a=yytable[31];
send_cmd(a);
a=yytable[32];
send_cmd(a);
a=yytable[33];
send_cmd(a);
a=yytable[34];
send_cmd(a);
Delay_Ms(1300);
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
語音播放系統.rar
(7.31 MB, 下載次數: 89)
2017-5-14 18:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
jxdianqi
時間:
2017-5-15 10:56
沙發,下載學習,謝謝樓主
作者:
fefen0
時間:
2017-5-16 17:12
如何給顧客編號呢。。。
作者:
值班室
時間:
2017-6-4 10:26
剛買了這樣的語音模塊,正好學習,謝謝
作者:
luojunhaolq
時間:
2017-9-7 22:01
學習中!
作者:
晉梅
時間:
2018-1-13 19:25
學習下!
作者:
meung
時間:
2018-2-7 16:47
謝謝樓主!電路原理圖和pcb圖不知為何打開是一片空白。
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
黄色av观看
|
亚洲国产欧美日韩
|
日韩欧美高清视频
|
亚洲超碰在线
|
久久九九国产
|
成人一级黄色片
|
91精品国产乱码久久久久久
|
一区二区三区高清
|
色综合视频在线观看
|
久久综合爱
|
天天操狠狠干
|
在线h片
|
97人人草
|
成年人黄色
|
国产午夜激情
|
免费成人小视频
|
国产精品一区二区三区免费
|
黄在线免费观看
|
免费看黄色小视频
|
日韩欧美视频
|
欧美亚洲在线观看
|
日韩在线高清
|
日韩激情一区二区
|
男女视频免费
|
中文字幕不卡在线
|
日韩三级一区
|
欧美成人毛片
|
91视频在
|
国产成人精品一区
|
欧美操
|
成人深夜福利视频
|
精品欧美黑人一区二区三区
|
日本欧美亚洲
|
在线观看欧美日韩视频
|
久久伊人热
|
青青草久久
|
黄色资源在线观看
|
伦理一区二区
|
欧美一区不卡
|
精品视频一区二区三区
|
张津瑜国内精品www在线
|