日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

51单片机两只老虎c语言程序,51单片机两只老虎仿真加代码

發(fā)布時間:2023/12/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51单片机两只老虎c语言程序,51单片机两只老虎仿真加代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

/***************************************************************************

程序名稱:program4-1.c

程序功能:單片機控制的音樂盒

****************************************************************************/

#include "reg51.h"? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //包含頭文件reg51.h

#define??uchar unsigned char

#include

#define??uint unsigned int

sbit??BEEP=P3^7;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //蜂鳴器控制接口

uchar note;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //音符下標

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;? ? ? ? ? ? ? ?? ???//恢復計數(shù)器初值(可采用stc-isp軟件計算)

TL0=0x00;

counter++;? ? ? ? ? ? ? ? ? ? ? ???//循環(huán)次數(shù)標志位加1

}

}

counter = 0;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???//計數(shù)5次,計數(shù)器清零

}

/***************************************************************************

函數(shù)名稱:palay_music

函數(shù)功能:單片機控制蜂鳴器播放音樂

****************************************************************************/

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;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //當播放到停止符時關(guān)閉T1

BEEP=1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //關(guān)閉蜂鳴器

}

for(i=k;i>0;--i)? ? ? ?? ?? ?? ?//延時,產(chǎn)生相應的節(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ù)功能:單片機控制蜂鳴器播放音樂

****************************************************************************/

void main( )? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???//主函數(shù)

{

init();

while(1)

{

paly_music( );? ? ? ? ? ? ? ? ? ? ? ? // 播放音樂

}

}

/***************************************************************************

函數(shù)名稱:timer1

函數(shù)功能:T1產(chǎn)生音符脈沖

****************************************************************************/

void timer1( ) interrupt 3

{

TH1=music[2*note];? ? ? ? ? ? ? ? ? ? ? ? //恢復計數(shù)器初始值

TL1=music[2*note+1];

BEEP=~BEEP;

}

總結(jié)

以上是生活随笔為你收集整理的51单片机两只老虎c语言程序,51单片机两只老虎仿真加代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。