欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6154|回復(fù): 0
收起左側(cè)

51單片機(jī)兩只老虎仿真加代碼

[復(fù)制鏈接]
ID:515538 發(fā)表于 2019-4-19 20:02 | 顯示全部樓層 |閱讀模式
/***************************************************************************
    程序名稱:program4-1.c
    程序功能:單片機(jī)控制的音樂盒
****************************************************************************/
#include "reg51.h"                                        //包含頭文件reg51.h
#define  uchar unsigned char
#include <intrins.h>
#define  uint unsigned int
sbit  BEEP=P3^7;                                        //蜂鳴器控制接口
uchar note;                                                //音符下標(biāo)
uchar code music[]={0xFC,0x44,0xFC,0xAC, 0xFD,0x09, 0xFD,0x34, 0xFD,0x82, 0xFD,0xC8};
                                                                        //T值
uchar code tiger[ ]=                             //兩只老虎音符數(shù)組
{
0x14,0x24,0x34,0x14,0x14,0x24,0x34,0x14,0x34,0x44,0x58,0x34,0x44,
0x58,0x53,0x61,0x53,0x41,0x34,0x14,0x53,0x61,0x53,0x41,0x34,0x14,
0x14,0x54,0x18,0x14,0x54,0x18,0x00,0x00
};                                                       
/***************************************************************************
    函數(shù)名稱:delay_125ms
    函數(shù)功能:實現(xiàn)125ms延時函數(shù)
    形式參數(shù):無
    返回值:無
****************************************************************************/
void delay_125ms()
{  
           uchar counter=0;                         //計數(shù)器初始化
   TR0=1;                                 //啟動T0
for(;counter!=5;)                         //判斷計數(shù)器值是否等于5
   {
         if(TF0==1)                                 //T0溢出判斷
         {
                TF0 = 0;                                //定時器0溢出位清零
                TH0=0xa6;                    //恢復(fù)計數(shù)器初值(可采用stc-isp軟件計算)
                TL0=0x00;
                counter++;                         //循環(huán)次數(shù)標(biāo)志位加1
         }
   }
   counter = 0;                                 //計數(shù)5次,計數(shù)器清零
}
/***************************************************************************
    函數(shù)名稱:palay_music
    函數(shù)功能:單片機(jī)控制蜂鳴器播放音樂
****************************************************************************/
                void paly_music()                                        //音樂播放函數(shù)
                {
uchar i,j,k;               
        j=0;
        while( tiger[j]!=0x00)       //一直播放到休止符0x00為止
        {
                k= tiger[j]&0x0F;                         //從音符數(shù)組中得到節(jié)拍
                note=tiger[j]>>4;             //從音符數(shù)組中得到音符
                TH1=music[2*note];                                //定時器1賦初值
                TL1=music[2*note+1];               
                TR1=1;                                                        // 啟動T1
                if((music[2*note]==0x00)&&(music[2*note+1]==0x00))//判斷是否停止       
                        {
                        TR1=0;                                //當(dāng)播放到停止符時關(guān)閉T1
                        BEEP=1;                                //關(guān)閉蜂鳴器
                }
                for(i=k;i>0;--i)                //延時,產(chǎn)生相應(yīng)的節(jié)拍
                {               
                        delay_125ms();                               
                }
                TR1=0;                                       
                j++;                                            //取數(shù)組中的下一個數(shù)據(jù)
        }
}                       
/***************************************************************************
    函數(shù)名稱:init
    函數(shù)功能:定時器T0、T1初始化
****************************************************************************/
void  init ()               
{
TMOD=0x11;                                        //T0工作定時工作方式
TH0=0xa6;                                        //賦T0計數(shù)器初值(25ms)
TL0=0x00;
ET1=1;                                        //允許T1中斷
EA=1;                                                //中斷允許
}
/***************************************************************************
    函數(shù)名稱:main
    函數(shù)功能:單片機(jī)控制蜂鳴器播放音樂
****************************************************************************/
         void main( )                                 //主函數(shù)
         {
           init();
           while(1)
{
          paly_music( );                        // 播放音樂
}
}
/***************************************************************************
    函數(shù)名稱:timer1
    函數(shù)功能:T1產(chǎn)生音符脈沖
****************************************************************************/
void timer1( ) interrupt 3
    {
          TH1=music[2*note];                        //恢復(fù)計數(shù)器初始值               
TL1=music[2*note+1];                       
BEEP=~BEEP;
         }







微信圖片_20190419200635.png

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表