51单片机八音盒C语言,单片机八音盒程序和与仿真原理图

这篇博客详细介绍了如何使用51单片机通过C语言编程实现八音盒功能,包括歌曲切换、蜂鸣器控制和LCD显示。作者提供了具体的代码实现,包括不同歌曲的音符和节拍频率,并设置了中断服务函数进行音乐播放和中断处理。
摘要由CSDN通过智能技术生成

#include

#include

#define uhar unsigned char

#define uint  unsigned int

sbit key1=P3^2;//定义按key1可切换花样

sbit key2=P3^3;//定义按key2可切换歌曲

sbit fm=P3^5;//蜂鸣器连续的IO口,接蜂鸣器的管脚

sbit rs=P2^0;

sbit rw=P2^1;

sbit ep=P2^2;

uchar i;

uchar Tong_index=0;//音乐片段索引音符索引

uchar song_index=0;

uchar *discode;//暂存LCD需要显示的歌名

uchar *song_Tone,*song_Time;

uchar code dis1[]={"song1"};//第一首歌名,dis1~dis4位LCD第一行要显示的歌名;

uchar code dis2[]={"song2"};

uchar code dis3[]={"song3"};

uchar code dis4[]={"song4"};

uchar code dis[]={"K1:Down K2:Up"};        //第二行显示的内容

uint code Tong_tab[]={62018,62401,62491,62895,63184,63441,63506,63773,

63965,64137,64215,64360,64488,64603,64654,64751,64836,64876,64948,65012,65067,65535};

//---------------------------简谱---------------------------------------

//编程规则:字节高位是简谱,低位是持续时间,代表多少个十六分音符。

//1-7代表中央C调,8-E代表高八度,0代表停顿

//最后的0是结束标志

//uchar code song1_Tone[]={         //        歌曲1的演奏音符

//11,9,11,14,12,14,12,11,11,7,8,9,8,7,8,

//11,9,11,14,13,12,14,11,11,7,8,9,6,7,

//12,14,14,13,12,13,14,12,13,14,12,12,11,10,7,8,

//11,9,11,14,13,12,14,11,11,8,9,10,6,7,0xff};//结束标志

//uchar code song1_Time[]={ // 歌曲1的节拍频率

//4,2,2,8,4,2,2,8,4,2,2,4,2,2,12,

//4,2,2,4,2,4,4,8,4,2,2,4,2,12,

//4,4,8,4,2,2

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值