久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
串口通信 PC機向單片機發送命令啟動或停止蜂鳴器播放音樂
[打印本頁]
作者:
yin...
時間:
2018-11-6 21:14
標題:
串口通信 PC機向單片機發送命令啟動或停止蜂鳴器播放音樂
PC機向單片機發送命令啟動或停止蜂鳴器播放音樂,
當播放音樂時該怎么停止,這時是播放函數運行中,pc輸入數據要等到放完才接受,也就是停不下來
是不是應該換個播放函數?該怎么寫?
#include<reg52.h>
#include<string.h>
unsigned char Count;
sbit speak = P3^4;
unsigned char code SONG[] ={ //祝你平安
0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,
0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,
0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,
0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,
0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,
0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,
0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,
0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,
0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,
0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,
0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00};
void Delay_xMs(unsigned int x)
{
unsigned int i,j;
for( i =0;i < x;i++ )
{
for( j =0;j<3;j++ );
}
}
void Play_Song(unsigned char i)
{
unsigned char Temp1,Temp2;
unsigned int Addr;
Count = 0; //中斷計數器清0
Addr = i * 217;
while(1)
{
Temp1 = SONG[Addr++];
if ( Temp1 == 0xFF ) //休止符
{
TR0 = 0;
Delay_xMs(100);
}
else if ( Temp1 == 0x00 ) //歌曲結束符
{
return;
}
else
{
Temp2 = SONG[Addr++];
TR0 = 1;
while(1)
{
speak = ~speak;
Delay_xMs(Temp1);
if ( Temp2 == Count )
{
Count = 0;
break;
}
}
}
}
}
void main (void)
{ char a,b=0;
SCON=0x50;//串行口方式1
PCON=0x00;//T1初始化,
TMOD=0x21;//T1設為方式2 T0設為方式1
TH1=0xFD;//選9600波特,fosc=11.0592MHz
TR1=1;//啟動T1
IE = 0x82;
TH0 = 0xD8;
TL0 = 0xEF;
while(1)
{
if(RI)//如果接收到數據,就把接收到的數回發給PC
{ RI=0;//清接收標志
a=SBUF ;//讀串行口數據
SBUF=a;//把從PC機發送過來的數據返回給PC機
while(!TI);//沒有發送完等待
TI=0;//清發送完中斷標志
switch(a)
{
case 0x00 : P0=0xff; break;
case 0x01 : P0=0xAA; break;
case 0x02 : P0=0x00; break;
case 0x03 : Play_Song(0);break; //播放
case 0x04 : P0=0xff;
TR0 = 1;speak=0;
break;
}
}
}
}
void Time0_Int() interrupt 1
{
TH0 = 0xD8;
TL0 = 0xEF;
Count++; //長度加1
}
新建文件夾 (2).zip
2018-11-6 21:14 上傳
點擊文件名下載附件
65.57 KB, 下載次數: 12
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧洲性生活视频
|
成人在线观看黄
|
久久久久亚洲国产
|
鸳鸯谱在线观看高清
|
久久九七
|
国产成人精品网站
|
国产日韩欧美
|
好好的日在线视频
|
一区二区三区在线播放视频
|
国产性生活一级片
|
97精品国产97久久久久久免费
|
av网站在线免费观看
|
日韩视频专区
|
爱高潮www亚洲精品 中文字幕免费视频
|
www.国产日本
|
欧美a√
|
欧美综合自拍
|
欧美一区不卡
|
亚洲成人网在线
|
日韩精品 电影一区 亚洲
|
日本三级播放
|
久久精品欧美一区二区三区不卡
|
日韩成人av在线
|
亚洲精品乱码久久久久久蜜桃91
|
日韩亚洲欧美一区
|
99久久免费精品视频
|
中文字幕日韩欧美
|
国产中文字幕在线
|
国产亚洲一区二区三区在线
|
国产亚洲精品精品国产亚洲综合
|
中文字幕亚洲区一区二
|
亚洲精品成人在线
|
亚洲精品视频在线
|
亚洲三级在线观看
|
亚洲 欧美 日韩 精品
|
亚洲欧美视频一区
|
国内在线视频
|
盗摄精品av一区二区三区
|
日本一二三区电影
|
久久三级av
|
7799精品视频天天看
|