久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

用單片機+PWM來解碼WAV真人聲樂

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年07月25日   【字體:

本程序是51hei單片機開發板所提供一個列子,用單片機解碼wav真人聲音音樂,并用pwm的方法輸出,開發板的p2.2口是接的蜂鳴器,但蜂鳴器的效果實在是太差,在使用中直接把蜂鳴器去掉,接上一個2w的小喇叭效果更佳.wav.h是wav數據請從下面的壓縮包下載: http://www.zg4o1577.cn/f/waefc.rar   下面是主程序部分:

#include<reg52.h>
#include "wav.h"

sbit dataOut = P2^2;
#define maxSize    2060

unsigned char pwmData=0;      
unsigned char pwmCycle=256;        //pwm的頻率 
unsigned int datIndex=0;

void TimerInit() {
 TMOD=0x22;
 TH0=(256-pwmData)%256; 
 TH1=(256-(pwmCycle-pwmData))%256;

 RCAP2H=0xfe; //1
 RCAP2L=0xc7; //199
  TH2=RCAP2H; 
 TL2=RCAP2L;
 
 PT2=0; //高中斷優先級 
   
    TR0=1; TR1=0; TR2=1;  //啟動/停止定時器
 ET0=1; ET1=1; ET2=1;  //打開中斷
 EA=1;
}
                                                                          
///////////////////定時器0中斷//////////////////////
Timer0() interrupt 1 {
 TR0=0;              //turn off Timer0
 dataOut=0; 
 TR1=1;              //turn on Timer1
  

///////////////////定時器1中斷///////////////////////
Timer1() interrupt 3 {
 TR1=0;              //turn off Timer1
 dataOut=1;
 TH0=(256-pwmData)%256;
 TH1=(256-(pwmCycle-pwmData))%256;
 TR0=1;              //turn on Timer0 
}

///////////////////定時器2中斷///////////////////////
Timer2() interrupt 5 {
 TF2=0;
 pwmData=wavdata1[datIndex];
 if(++datIndex==maxSize) {
  datIndex=0; 
 }
}

main(){
 TimerInit();
 while(1);
 { }
}

關閉窗口

相關文章

主站蜘蛛池模板: 久久久精彩视频 | 亚洲一区 中文字幕 | 欧美一级黄色免费 | 精品久草 | 成人免费福利视频 | 成人夜晚看av | 国产精品视频久久久久久 | 成人av大全 | 国产午夜精品一区二区三区在线观看 | 大吊一区二区 | 本道综合精品 | 国产综合久久 | 国产精品无码久久久久 | 黑人精品xxx一区一二区 | 国产在线不卡视频 | 日韩在线观看中文字幕 | 91福利网| 欧美激情a∨在线视频播放 成人免费共享视频 | 日本不卡一区二区三区 | 一区二区视频在线 | 亚洲二区视频 | av中文字幕在线观看 | 一区二区三区视频在线观看 | 国产免费一区二区 | v片网站 | 午夜男人免费视频 | 亚洲综合在线视频 | 欧美成人一区二区 | hsck成人网 | 国产精品视频一区二区三区四蜜臂 | 国产av毛片 | 国产小视频自拍 | 久久久男人的天堂 | 亚洲综合日韩精品欧美综合区 | 成人免费在线 | 国产精品福利一区二区三区 | 91久久久久久| 男人天堂国产 | 91精品国产综合久久久久久蜜臀 | 高清亚洲 | 黄色片大全在线观看 |