51单片机用c语言如何去制作电子音乐盒

需要屏幕可以显示所播放的歌曲,可以切换下一曲和上一曲,谢了图片说明图片说明

c

2个回答

qq_31935255
乐果儿 谢了〜棒棒哒
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
制作51单片机音乐盒的程序
单片机音乐的程序,对于做一个单片机音乐盒的朋友很有用哦!
用51单片机制作电子时钟
准确延时,数码管显示!用于电子时钟 #include <reg51.h> //*** 函数定义 *** void long_delay(void); // 长延时 void short_delay(void); // 短延时 void delay10ms(unsigned char); // 延时10MS void write7279(unsigned char, unsigned char);// 写入到HD7279 unsigned char read7279(unsigned char);//从HD7279读入 void send_byte(unsigned char); // 发送一个字节 unsigned char receive_byte(void); //接收一个字节 void init_timer(); /*定时器T0初始化*/ void conv(); /*时、分、秒单元及走时单元转换*/ void dirve(); /*时间显示程序*/ void time_adj(); /*时间调整设置*/ unsigned char digit[6]; unsigned char j; unsigned int tmr; unsigned long wait_cnter; unsigned char hour=0,min=0,sec=0; /*时、分、秒单元清零*/ unsigned char deda=0; /*5mS计数单元清零*/ bit sign; //设置标志位 sbit cs=P1^5; // cs at P1.5 sbit clk=P1^4; // clk 连接于 P1.4 sbit dat=P1^3; // dat 连接于 P1.3 sbit set=P3^7; // key 连接于 P3.7 //****** HD7279A 指令 ****** #define CMD_RESET 0xa4 #define CMD_TEST 0xbf #define DECODE0 0x80 #define DECODE1 0xc8 #define CMD_READ 0x15 #define UNDECODE 0x90 #define RTL_CYCLE 0xa3 #define RTR_CYCLE 0xa2 #define RTL_UNCYL 0xa1 #define RTR_UNCYL 0xa0 #define ACTCTL 0x98 #define SEGON 0xe0 #define SEGOFF 0xc0 #define BLINKCTL 0x88 //*** 主函数 *** main() { for (tmr=0;tmr<0x2000;tmr++); // 上电延时 send_byte(CMD_RESET); // 复位HD7279A //****************************************** // 测试指令演示 //****************************************** send_byte(CMD_TEST); // 指令测试 for (j=0;j<3;j++) // 延时哟3秒? { delay10ms(100); } send_byte(CMD_RESET); // 清除显示 //********************************************** //时间显示 //********************************************** init_timer();/*定时器T0初始化*/ while(1) { if(set==0) time_adj(); conv(); /*时、分、秒单元及走时单元转换*/ dirve(); /*时、分、秒单元显示*/ } } /*定时器T0 5mS初始化*/ void init_timer() { TMOD=0x01; TH0=-(4800/256); TL0=-(4800%256); IE=0x82; TR0=1; } /*5mS定时中断服务子函数*/ void zd(void) interrupt 1 { TH0=-(4800/256); TL0=-(4800%256); deda++; } /*时、分、秒单元及走时单元转换*/ void conv() { if(deda>=200){sec++;deda=0;} if(sec==60){min++;sec=0;} if(min==60){hour++;min=0;} if(hour==24){hour=0;} } void dirve() { digit[0]=sec%10; //计数个位 write7279(DECODE0,digit[0]); //显示个位 digit[1]=0x80|(sec/10); //计数十位 write7279(DECODE0+1,digit[1]); //显示十位 digit[2]=0x80|(min%10); //计数百位 write7279(DECODE0+2,digit[2]); //显示百位 digit[3]=0x80|(min/10); //计数千位 write7279(DECODE0+3,digit[3]); //显示千位 digit[4]=0x80|(hour%10); //计数万位 write7279(DECODE0+4,digit[4]); //显示万位 digit[5]=hour/10; //计数十万位 write7279(DECODE0+5,digit[5]); } void write7279(unsigned char cmd, unsigned char dta) { send_byte (cmd); send_byte (dta); } unsigned char read7279(unsigned char command) { send_byte(command); return(receive_byte()); } void send_byte( unsigned char out_byte) { unsigned char i; cs=0; long_delay(); for (i=0;i<8;i++) { if (out_byte&0x80) { dat=1; } else { dat=0; } clk=1; short_delay(); clk=0; short_delay(); out_byte=out_byte*2; } dat=0; } unsigned char receive_byte(void) { unsigned char i, in_byte; dat=1; // 设置为输入状态 long_delay(); for (i=0;i<8;i++) { clk=1; short_delay(); in_byte=in_byte*2; if (dat) { in_byte=in_byte|0x01; } clk=0; short_delay(); } dat=0; return (in_byte); } void long_delay(void) { unsigned char i; for (i=0;i<0x30;i++); } void short_delay(void) { unsigned char i; for (i=0;i<8;i++); } // ********************* 延时 n*10ms ********************** void delay10ms(unsigned char time) { unsigned char i; unsigned int j; for (i=0;i<time;i++) { for(j=0;j<0x390;j++) { } } } /*时间调整程序*/ void time_adj() { if(set==0) //有键按下,判断按键时间 { delay10ms(200); //1s延时程序 if(set==0) //大于1s,进入时间设置 { ET0=0; TR0=0; //关定时器0 while(set==0) dirve(); //等键释放 // ET1=1;TR1=1; con=0xF3; //开定时器1,让调整位闪烁 write7279(BLINKCTL,0xF3); do { while(set!=0) dirve(); //等待按键 delay10ms(100); if(set!=0) //小于0.5s,进入分钟设置 { while(set==0) dirve(); //等待按键释放 sign=1; min++; if(min==60)min=0; //分钟加1 dirve(); } else sign=0; //大于0.5s,进入小时设置 }while(sign); while(set==0)dirve(); //等待按键释放 // con=0xCF; write7279(BLINKCTL,0xCF); do { while(set!=0) dirve(); //等待按键 delay10ms(100); if(set!=0) //小于0.5s,进入小时设置 { while(set==0) dirve(); //等待按键释放 sign=1; hour++; //小时加1 if(hour==24)hour=0; dirve(); } else sign=0; //大于0.5s,结束时间设置 }while(sign); // ET1=0;TR1=0; //关定时器1 ET0=1;TR0=1; //开定时器0 write7279(BLINKCTL,0xFF); } else //小于1s,进入省电模式 { ET0=1; TR0=1; //开定时器0 while(set!=0); //等待按键 do { dirve(); //有键按下,调显示程序消抖 }while(set!=0); //是干扰则继续循环 } while(set==0) dirve(); //等待按键释放 } else ; //无键按下,跳出按键扫描程序 }
51单片机 C语言 电子教程
单片机言开发 C语言教程的最佳选择 其中也包括了学习单片机和应用单片机开发的所有工具的使用教程哦
51单片机电子日历_C语言
我也发单片机的资料,希望对大家有用======51单片机电子日历_C语言,Word文档格式的。
51单片机音乐盒
本资源包含keil源程序和proteus电路,能够实现播放《两只老虎》的功能。
音乐盒C 语言源代码
用C51单片机实现音乐播放的功能 通过安键控制,实现播放不同种音乐
C语言音乐盒
C语言仿制音乐盒,自己做的,能实现基本音乐播放
51单片机电子万年历制作
电子万年历设计含有年月日时分秒,温度,星期及设计电路图和仿真
如何使用51单片机自制音乐盒
51单片机音乐盒 一.材料 发光二极管 18个; 按键 4个; STC89c52单片机 1个; 单片机插座 1个; 11.0592M...
51单片机C语言电子时钟程序设计程序
51单片机 C语言 电子时钟 程序设计程序
51单片机设计音乐盒
这个音乐盒设计真的很不错,大家可以来围观
基于51单片机的音乐盒
自己做的一个51单片机音乐盒,里面包含了我的代码、线路图、元器件的需求,希望可以给大家一点相关方面的灵感。
51单片机12路音乐盒
12路音乐盒 可以产生12个音调和演奏简短的《欢乐颂》 4*4键盘控制
单片机的音乐盒c语言代码
建立在英飞凌单片机基础上的实现音乐播放及控制的c语言代码。
基于51单片机的音乐盒设计
运用51实现电子音乐盒,可以发音,我实现过,来看看
51单片机蜂鸣器音乐盒程序代码
基于51单片机的蜂鸣器音乐播放器代码,直接在代码中包含头文件,调用函数即可使用,可自行添加歌曲谱播放
51单片机音乐盒的相关程序
这是学单片机需要用的实验程序,.各位学习单片机是必不可少的工具啊!可以下载下来作为参考...
51单片机控制的音乐盒
利用计算机的发声原理,通过51单片机控制其演奏一首歌曲
51单片机音乐盒程序
51单片机音乐盒程序 音乐演奏汇编程序这是一个音乐程序,按大写字母“A”,唱乐曲“玛丽有只小羔羊”;好多
电子音乐盒的单片机设计
1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲(内存六首乐曲)。 2.采用七段数码管显示当前播放的歌曲序号。 3. 可通过功能键选择乐曲,暂停,播放,上一曲,下一曲。
基于单片机的电子音乐盒
电子音乐盒电子音乐盒电子音乐盒电子音乐盒电子音乐盒电子音乐盒电子音乐盒电子音乐盒电子音乐盒电子音乐盒
Java课程设计——电子音乐盒
使用JMF开发的一个音乐播放器,支持滚动歌词显示,歌词文件需放在指定目录下。
单片机电子音乐盒设计
有论文,有代码 挺好的!我们的单片机应用课要求设计,我就是选这个课题的,分享
用51单片机制作密码锁
简单判断按键输入的密码是否正确,用矩阵键盘输入密码,通过串口发送给电脑,液晶显示
用c语言菜单制作
这个东西真的很好用,看过之后就有感觉了,适用的c万能,其实c语言什么都能写,运用好c语言也不错。
用51单片机制作的马表
记数器每0.01ms益出一次,每益出100次,LED灯的1/100 位更新一次,每十次1/10位进位一次,如此循环实现每位的进位, 记数器记数期间,对按键扫描一次.有开始/暂停,清零的功能
51单片机电子时钟C语言程序
51单片机电子时钟C语言程序 #include<reg52.h>//头文件 #define uchar unsigned char//宏定义 #define uint unsigned int sbit P32=P3^2;//位声明 sbit P36=P3^6; sbit P37=P3^7;
51单片机电子时钟c语言程序
c语言编的电子时钟,可闹铃!用的是51单片机的at89s52芯片,可以设置时间,调时间,由二极管,数码管,lcd液晶任命显示,效果那可不一样哦!!!!!!!!!!!!!!
基于51单片机的可调音乐盒设计
基于51单片机的可调音乐盒设计 包含: 论文 protel99se制板图以及其他 protues仿真 keil c文件以及hex 仿真视频 仿真图
51单片机C语言
磁动力工作室提供一个51单片机C语言学习经验和一些初学者不易掌握的知识点的另类解说。。。。
51单片机及C语言入门教程
第一课 建立你的第一个C项目 第二课 初步认识51芯片 ...
51单片机C语言入门教程
在进行单片机开发设计时,C语言是首选工具! 然而,有一本好的单片机C语言辅导教程也起到事半功倍得作用,《51单片机C语言入门教程》让你也成为的单片机C语言的高手!
51单片机C语言入门
51单片机C语言入门51单片机C语言入门
51单片机C语言教程
主要包括51单片机C编程51单片机Keil和C语言入门教程。
51单片机C语言实例
单片机编程的实例。有大量的简单地实例,简单易懂,由浅入深的体会单片机开发。
51单片机C语言的编程技巧
51单片机C语言的编程技巧,供大家参考。
51单片机C语言简介
51单片机C语言简介,C语言高级应用。欢迎下载。
51单片机 流水灯 C语言
51单片机 流水灯 C语言 不同的实验板,具体的电路连接方式不同,也就是硬件不一样,但是原理是一样的,看懂后,进行适当的修改和转化就行了。
51单片机c语言
51c语言,数组、指针、do..while、for、参数传递等等例子,,适合初学者
51单片机C语言快速入门
帮助初学者,不赖 与C语言有着千丝万缕的关系
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件