基于51单片机(bluesky开发板)的电子琴程序

上传人:汽*** 文档编号:447897058 上传时间:2023-09-16 格式:DOCX 页数:4 大小:20.60KB
返回 下载 相关 举报
基于51单片机(bluesky开发板)的电子琴程序_第1页
第1页 / 共4页
基于51单片机(bluesky开发板)的电子琴程序_第2页
第2页 / 共4页
基于51单片机(bluesky开发板)的电子琴程序_第3页
第3页 / 共4页
基于51单片机(bluesky开发板)的电子琴程序_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于51单片机(bluesky开发板)的电子琴程序》由会员分享,可在线阅读,更多相关《基于51单片机(bluesky开发板)的电子琴程序(4页珍藏版)》请在金锄头文库上搜索。

1、精品文档#欢迎下载 。#include#include#include/包含LCD1602的显示函数等/包含键值扫描函数,输出key_num#define FSCLK 11059200/晶振频率sbit BEEP=P1A4;/蜂鸣器输出脚unsigned int fre16/存好预定的频率值,可以设定任意想要的频率=100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600;附6 胃对*上齿隼粗匕百3MmZF7彳TIM1221,DFHWTIM/HIEh111心如UrE1JJUMl?F黑1357备hyEWM11KH

2、eJ加am31HAbJIB4113/LA444MC,加现3Bb3tt玩aeW即W31/*函数功能 函数说明 入口参数 出口参数延时函数,函数名 Delay_ms()利用软件延时,占用 CPU经调试最小单位大约为1mstime:需要延时的时间,单位 ms无*/ void Delay_ms(unsigned int time) unsigned int i,j;for(i = 0;i time;i +)for(j = 0;j 930;j +);/*函数功能 函数说明 入口参数 出口参数定时翻转跟蜂鸣器相连的引脚的电平,输出一定频率的脉冲信号 定时器0中断服务函数无无*/使用定时器0的工作方式2,定

3、时器中断服void time0() interrupt 1务程序TH0 = (65536-FSCLK/(12*frepiano)/256;/ 每次中断,重新配置定时器的高8位TL0 = (65536-FSCLK/(12*frepiano)%256;/ 每次中断,程序配置定时器的低8位BEEP=!BEEP;/ 然后取反音乐输出,输出一个反电平/ 短时间内多次取反则输出一定频率的脉冲/*函数功能 入口参数 出口参数主函数无无*/ void main() unsigned char piano=0 , key=0;/ 初始值LCD_1602_Init(); / 液晶显示前进行初始化TMOD = 0X

4、01;/ 定时器使能TH0 = (65536-FSCLK/(12*fre0)/256;/ 配置定时器的高8位TL0 = (65536-FSCLK/(12*fre0)%256;/ 配置定时器的低8位ET0 = 1;/ 允许定时器0 中断EA = 1;/ 打开总中断/ 开机显示欢迎语: Welcome/ 显示作者: 20152305007延时 5s 后开始进入正式程序/ 液晶屏初始化/ 显示开始使用: Happy PlayWrite_1602_String(Welcome,0X80);Write_1602_String(By 20152305007,0X80+0x40);Delay_ms(5000

5、);LCD_1602_Init();Write_1602_String(Happy Play,0X80);while(1)/ 在这段函数中,不断扫描键值,每当键值不等于/ 此时开始播放对应的音阶。key=Key_Scan();if(key!=0)0 时,说明有键被按下,/不断扫描键值若键值不等于0 , 说明有按键被按LCD_1602_Init();Write_1602_String(You had played,0X80);Write_1602_String(Key:,0X80+0x40);if(key10)/初始化LCD屏/ 显示所按下的键Write_1602_Data(0x30+key);/ 当键值为个位数,显示按键值piano=key;TR0=1;Delay_ms(500);/ 频率调整为键值对应的频率/ 启动定时器/ 每按键一次,蜂鸣器响一次,每次响0.5sTR0=0;/ 关闭定时器 else / 同上Write_1602_Data(0x31);/ 键值为两位数,先显示1 ,再显示按键值Write_1602_Data(0x30+key-10);piano=key;TR0=1;Delay_ms(500);TR0=0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号