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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3532|回復: 3
打印 上一主題 下一主題
收起左側

如何使用STC15f系列單片機的兩個定時器來播放音樂,求可用的源代碼

[復制鏈接]
跳轉到指定樓層
樓主
如何使用STC15f系列單片機的兩個定時器來播放音樂,求可用的源代碼
一個定時器用于控制音調
一個用于控制節拍
中間不使用delay延時
網上找了好久沒找到
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:82765 發表于 2017-7-31 22:01 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

板凳
ID:164602 發表于 2017-8-1 08:08 | 只看該作者
我這個程序是STC89C52RC的,你可以試試,應該可以直接用的。#include <reg51.h>

sbit voice=P1^5;//蜂鳴器

unsigned char code sound[]={0xff,
0x26,0x20,0x2b,0x20,0x26,0x80,0xff,0x20,0x2b,0x20,0x26,0x20,0x26,0x10,//兩只蝴蝶
0x2b,0x10,0x30,0x80,0xff,0x40,0x39,0x20,0x30,0x20,0x2b,0x40,0x2b,0x20,
0x26,0x20,0x2b,0x20,0x30,0x20,0x39,0x20,0x39,0x10,0x30,0x10,0x40,0x80,
0x40,0x80,0x26,0x20,0x2b,0x20,0x26,0x80,0xff,0x20,0x2b,0x20,0x26,0x20,
0x26,0x10,0x2b,0x10,0x30,0x80,0xff,0x40,0x39,0x20,0x30,0x20,0x2b,0x40,
0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x39,0x20,0x30,0x20,0x2b,0xc0,
0x26,0x20,0x2b,0x20,0x26,0x80,0xff,0x20,0x2b,0x20,0x26,0x20,0x26,0x10,
0x2b,0x10,0x30,0xc0,0x39,0x20,0x30,0x20,0x2b,0x40,0x2b,0x20,0x26,0x20,
0x2b,0x20,0x30,0x20,0x39,0x20,0x39,0x10,0x30,0x10,0x40,0xc0,0x26,0x20,
0x20,0x20,0x20,0x80,0xff,0x20,0x20,0x20,0x1c,0x20,0x20,0x20,0x26,0xc0,
0x2b,0x20,0x2b,0x20,0x2b,0x60,0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,
0x39,0x20,0x39,0x20,0x30,0x20,0x30,0x20,0x30,0xc0,0xff,0x40,0xff,0x40,
0xff,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x18,0x20,0x19,0x20,0x19,0x20,
0x1c,0x20,0x26,0x20,0x2b,0x20,0x2b,0x20,0x26,0x20,0x26,0x80,0xff,0x20,
0x26,0x20,0x26,0x20,0x20,0x20,0x1c,0x40,0x1c,0x40,0xff,0x20,0x39,0x20,
0x26,0x20,0x2b,0x20,0x2b,0xc0,0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x20,
0x20,0x40,0xff,0x20,0x18,0x40,0x19,0x20,0x1c,0x20,0x1c,0x10,0x19,0x10,
0x26,0x40,0xff,0x20,0x1c,0x20,0x1c,0x20,0x19,0x20,0x1c,0x20,0x20,0x20,
0x26,0x20,0x2b,0x20,0xff,0x20,0x26,0x20,0x2b,0x20,0x26,0x20,0x20,0x80,
0xff,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x18,0x20,0x19,0x20,0x19,0x20,
0x1c,0x20,0x26,0x20,0x2b,0x20,0x2b,0x20,0x26,0x20,0x26,0x80,0xff,0x20,
0x26,0x20,0x26,0x20,0x20,0x20,0x1c,0x40,0x1c,0x40,0xff,0x20,0x39,0x20,
0x26,0x20,0x2b,0x20,0x2b,0xc0,0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x20,
0x20,0x40,0xff,0x20,0x18,0x40,0x19,0x20,0x1c,0x20,0x1c,0x10,0x19,0x10,
0x26,0x40,0xff,0x20,0x1c,0x20,0x1c,0x20,0x19,0x20,0x1c,0x20,0x20,0x20,
0x26,0x20,0x2b,0x20,0xff,0x20,0x40,0x40,0x39,0x20,0x30,0xc0,0xff,0xc0,
0x00
};//音樂數據,0xff為起始數據,0x00為終止數據,以后數據兩兩一組,前者為音階,后者為節拍

unsigned char zdjs=0,jp;

void del(yj);

void main(void)
{
        unsigned int dpjs=0;
        unsigned char yj;
        TMOD=0x01;
        IE=0x82;
        TH0=0xd8;
        TL0=0xf0;
        TR0=1;
        while(1)
        {  
                zdjs=0;
                dpjs++;
                yj=sound[dpjs];
                dpjs++;
                jp=sound[dpjs];
                while(zdjs!=jp)
                {
                        if(yj!=0xff)
                        {
                                if(yj!=0)
                                {
                                        voice=!voice;
                                        del(yj);
                                }
                                else
                                {
                                        dpjs=0;
                                        break;
                                }
                        }
                        else
                        {
                                voice=1;
                                del(jp);
                        }
                }
        }
}

time0() interrupt 1  using 1//定時器中斷,記錄時間
{
        TH0=0xd8;
        TL0=0xf0;
        zdjs++;
}

void del(yj)
{
        unsigned char yj2=2;
        while(yj!=0)
        {      
                while(yj2!=0)
                {
                        yj2--;
                }
                yj2=2;
                yj--;  
        }
}

只用了一個定時器。
回復

使用道具 舉報

地板
ID:111634 發表于 2017-8-1 10:58 | 只看該作者
本帖最后由 zl2168 于 2017-8-1 10:59 編輯

實例75  定時器控制播放生日快樂歌
Proteus仿真一下,確認有效。
實例75 定時器控制播放生日快樂歌.rar (26.96 KB, 下載次數: 15)
實例76 定時器控制播放世上只有媽媽好歌曲.rar (27.15 KB, 下載次數: 5)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。書中電路和程序設計有詳細說明,程序語句條條有注解。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一级淫片a直接免费看 免费a网站 | 国产精品不卡 | 国产午夜精品视频 | 三级视频在线观看 | 欧美精品在线观看 | 久久久久国产精品午夜一区 | 国产精品999 | 亚洲有码转帖 | 国产日韩一区二区三免费高清 | 99视频在线播放 | 亚洲精品日韩一区二区电影 | 精品国产三级 | 有码一区| 精品国产乱码久久久久久老虎 | 超碰在线人人 | 亚洲大片在线观看 | 亚洲精品区| a级黄色片视频 | 亚洲国产成人精品女人久久久 | 在线一区二区观看 | 国产精品亚洲一区二区三区在线 | 亚洲视频在线观看一区二区三区 | 亚洲精品日韩综合观看成人91 | 免费久久视频 | 久草在线 | 国产一区二区三区四区三区四 | 高清视频一区二区三区 | 一区二区三区国产在线观看 | 欧美在线观看一区 | 黄色免费在线观看网站 | 一区精品国产欧美在线 | 日韩国产欧美在线观看 | 国产极品91| 久久免费视频在线 | 亚洲欧美一区二区三区在线 | 成人深夜福利网站 | 美女视频一区 | 成人免费精品 | 亚洲精品第一国产综合野 | 免费国产视频在线观看 | 精品av |