找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13748|回复: 24
打印 上一主题 下一主题
收起左侧

用proteus仿真时,想添加一个能模拟声音的元器件

  [复制链接]
跳转到指定楼层
楼主
ID:155591 发表于 2016-12-18 14:11 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
用proteus仿真时,想添加一个能模拟声音的元器件,哪些元器件可以呢?初学者,望大神们赐教

评分

参与人数 1黑币 +5 收起 理由
BayZbq + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155617 发表于 2016-12-18 15:25 来自手机 | 只看该作者
Sounder.
回复

使用道具 举报

板凳
ID:155591 发表于 2016-12-18 15:57 | 只看该作者
回复

使用道具 举报

地板
ID:111634 发表于 2016-12-18 17:30 | 只看该作者
本帖最后由 zl2168 于 2016-12-18 17:32 编辑

实例13  双音频输出


Proteus仿真一下,确认有效。
实例13 双音频输出.rar (26.69 KB, 下载次数: 140)

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1.。书中电路和程序设计有详细说明,程序语句条条有注解。
回复

使用道具 举报

5#
ID:111634 发表于 2016-12-18 17:33 | 只看该作者
本帖最后由 zl2168 于 2016-12-18 17:34 编辑

实例75  定时器控制播放生日快乐歌


Proteus仿真一下,确认有效。
实例75 定时器控制播放生日快乐歌.rar (26.96 KB, 下载次数: 133)
实例76 定时器控制播放世上只有妈妈好歌曲.rar (27.15 KB, 下载次数: 42)
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行书中电路和程序设计有详细说明,程序语句条条有注解。



回复

使用道具 举报

6#
ID:155591 发表于 2016-12-18 21:44 | 只看该作者
zl2168 发表于 2016-12-18 17:30
实例13  双音频输出

好用心的回复啊,谢谢
回复

使用道具 举报

7#
ID:155591 发表于 2016-12-18 21:45 | 只看该作者
zl2168 发表于 2016-12-18 17:33
实例75  定时器控制播放生日快乐歌

很贴心,谢谢
回复

使用道具 举报

8#
ID:155591 发表于 2016-12-18 22:24 | 只看该作者
zl2168 发表于 2016-12-18 17:33
实例75  定时器控制播放生日快乐歌

灰常感谢
回复

使用道具 举报

9#
ID:155591 发表于 2016-12-18 22:27 | 只看该作者
zl2168 发表于 2016-12-18 17:30
实例13  双音频输出

好用心的回复,谢谢
回复

使用道具 举报

10#
ID:155591 发表于 2016-12-18 22:28 | 只看该作者
zl2168 发表于 2016-12-18 17:30
实例13  双音频输出

真心感谢
回复

使用道具 举报

11#
ID:155758 发表于 2016-12-18 22:29 | 只看该作者
可以可以....
回复

使用道具 举报

12#
ID:155591 发表于 2016-12-18 23:01 | 只看该作者

能发一下世上只有妈妈好的程序代码吗,想看看代码
回复

使用道具 举报

13#
ID:155591 发表于 2016-12-19 10:37 来自手机 | 只看该作者
zl2168 发表于 2016-12-18 17:33
实例75  定时器控制播放生日快乐歌



能发一下代码看看吗?谢谢
回复

使用道具 举报

14#
ID:111634 发表于 2016-12-19 19:37 | 只看该作者
仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。
回复

使用道具 举报

15#
ID:155591 发表于 2016-12-19 22:18 来自手机 | 只看该作者
zl2168 发表于 2016-12-19 19:37
仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。

好可惜没有书,不过还是谢谢你
回复

使用道具 举报

16#
ID:156126 发表于 2016-12-20 08:59 来自手机 | 只看该作者
仿真怎么做
回复

使用道具 举报

17#
ID:111634 发表于 2016-12-20 17:06 | 只看该作者
看门狗 发表于 2016-12-19 22:18
好可惜没有书,不过还是谢谢你

到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
回复

使用道具 举报

18#
ID:152262 发表于 2016-12-20 21:16 | 只看该作者
扬声器可以的
回复

使用道具 举报

19#
ID:156667 发表于 2016-12-21 21:10 | 只看该作者
用Sounder,程序可以自己在百度上找翻译软件翻译一下
回复

使用道具 举报

20#
ID:153199 发表于 2016-12-25 19:14 | 只看该作者
可以发一下源代码吗,回复的很给力
回复

使用道具 举报

21#
ID:111634 发表于 2017-1-19 17:08 | 只看该作者
liuzhaoxin1020 发表于 2016-12-25 19:14
可以发一下源代码吗,回复的很给力

仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。
回复

使用道具 举报

22#
ID:162539 发表于 2017-1-20 16:13 | 只看该作者
proteus发声器件
回复

使用道具 举报

23#
ID:154786 发表于 2017-1-20 17:50 | 只看该作者
根据程序的不同,代码也不一样,会有变化的,
0xA9,0xEF,//00220HZ ,1  //0
0x93,0xF0,//00233HZ ,1#
0x73,0xF1,//00247HZ ,2
0x49,0xF2,//00262HZ ,2#
0x07,0xF3,//00277HZ ,3
0xC8,0xF3,//00294HZ ,4
0x73,0xF4,//00311HZ ,4#
0x1E,0xF5,//00330HZ ,5  
0xB6,0xF5,//00349HZ ,5#
0x4C,0xF6,//00370HZ ,6
0xD7,0xF6,//00392HZ ,6#
  0x5A,0xF7,//00415HZ ,7     
  0xD8,0xF7,//00440HZ 1     //12
  0x4D,0xF8,//00466HZ 1#    //13
  0xBD,0xF8,//00494HZ 2     //14
  0x24,0xF9,//00523HZ 2#    //15
  0x87,0xF9,//00554HZ 3     //16
  0xE4,0xF9,//00587HZ 4     //17
  0x3D,0xFA,//00622HZ 4#    //18   0x90,0xFA,//00659HZ 5     //19
  0xDE,0xFA,//00698HZ 5#    //20
  0x29,0xFB,//00740HZ 6     //21
  0x6F,0xFB,//00784HZ 6#    //22
  0xB1,0xFB,//00831HZ 7     //23
0xEF,0xFB,//00880HZ `1
0x2A,0xFC,//00932HZ `1#
0x62,0xFC,//00988HZ `2
0x95,0xFC,//01046HZ `2#
0xC7,0xFC,//01109HZ `3
0xF6,0xFC,//01175HZ `4
  0x22,0xFD,//01244HZ  `4#
0x4B,0xFD,//01318HZ `5
0x73,0xFD,//01397HZ `5#
0x98,0xFD,//01480HZ `6
0xBB,0xFD,//01568HZ `6#
  0xDC,0xFD,//01661HZ `7     //35
};
timer0() interrupt 1   
{
    TL0=tl0_f;TH0=th0_f;  
    BEEP=~BEEP;
}
  
changedata(uchar *song,uchar *diao,uchar *jie)
{
    uchar i,i1,j;
    char gaodi;
    uchar banyin;
    uchar yinchang;
    uchar code jie7[8]={0,12,14,16,17,19,21,23};

    *diao=*song;
    for(i=0,i1=0;;)
    {
        gaodi=0;
        banyin=0;
        yinchang=4;
        if((*(song+i)=='|') || (*(song+i)==' ')) i++;

        switch(*(song+i))  
        {     
            case ',': gaodi=-12;i++;
            break;
     
            case '`': gaodi=12;i++;
            break;
        }

        if(*(song+i)==0)  
        {
            *(diao+i1)=0;
            *(jie+i1)=0;
            return;
        }

        j=*(song+i)-0x30; i++;
        j=jie7[j]+gaodi;
      

yinc:   switch(*(song+i))  
        {     
            case '#':
                i++;j++;
    goto yinc;  
            

            case '-':
                yinchang+=4;
                i++;  
                goto yinc;

            case '_':  
                yinchang/=2;
                i++;  
    goto yinc;
            
            
            case '.':
                yinchang=yinchang+yinchang/2;
    i++;
    goto yinc;              
        }

        *(diao+i1)=j;
        *(jie+i1)=yinchang;
        i1++;     
    }
}
void play(uchar *songdata)
{
    uchar i,c,j=0;
    uint  n;
    uchar xdata diaodata[112];
    uchar xdata jiedata[112];   

    changedata(songdata,diaodata,jiedata);
    TR0=1;
    for(i=0;diaodata[i]!=0;i++)  
    {
        tl0_f=freq[diaodata[i]*2];
        th0_f=freq[diaodata[i]*2+1];
        for(c=0;c<jiedata[i];c++)
  {
            for(n=0;n<32000;n++);
   if(!key1)
   {  
    TR0=0;
    return;  
   }
  }
        TR0=0;
        for(n=0;n<500;n++);   
        TR0=1;
              //turn();
    }
    TR0=0;
}

uchar code mamahao[]={
"6.5_35|`16_5_6-|35_6_53_2_|1_,6_5_3_2-|"
"2.3_55_6_|321-|5.3_2_1_,6_1_|,5--"
};
这是种比较复杂的
回复

使用道具 举报

24#
ID:154786 发表于 2017-1-20 17:53 | 只看该作者
第二种,要分开弄的。程序只是个大概的程序
uchar code yinfu[]={0xfb,0xe9,      //Do
                   0xfc,0x5c,      //Re
                   0xfc,0xc1,      //Mi
                   0xfc,0xef,      //Fa
                   0xfd,0x45,      //So
                   0xfd,0x92,      //La
                   0xfd,0xd0,      //Si
                   0xfd,0xee,      //Do#
                                   0x00,0x00,           //间隔
};
uchar code shengri_tone[]={        1,0,1,2,1,4,3,0, //生日快乐音调
                                   1,0,1,2,1,5,4,0,
                                   1,0,1,8,6,4,3,2,0,
                                   7,0,7,6,4,5,4,0       //0代表不发声,即停顿;数字即为音调
};

uchar code shengri_beat[]={   24,1,24,48,48,48,72,5,//节拍
                                   24,1,24,48,48,48,72,5,
                                   24,1,24,48,48,48,48,72,5,
                                   24,1,24,48,48,48,72,5    //节拍,即tone表各音调的延时
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表