STC硬件主板--电子乐谱展示的设计

摘要:本设计基于我们所学习的单片机课程讲座、实例以及自学,掌握单片机技术是一门不可或缺的技术,对我们将来的工作以及生活都有密切的联系。单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32300M的高速单片机。

 

关键词:IAP15F2K61S2芯片  STC89C51单片机  蜂鸣器 数码管 led灯 中断 定时器 嵌入式系统

 

前言:近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其运用领域也在不断的扩大,已在工业控制,尖端科学,智能仪器仪表,日用家电,汽车电子系统,办公自动化,个人信息终端及通信产品中得到了广泛的运用,成为现代电子系统中最重要的智能化的核心部件,在嵌入式系统中充当着人体头脑的最重要的作用。

 

一、课程设计目的,任务要求

设计概述:该设计的目的是设计出一个可以显示电子音乐的乐谱的工程。我们经常可以在酷狗,虾米音乐等等音乐app里使用听歌识曲的功能,哼着一个没有歌词的调子就可以搜出这个歌曲,对于喜欢音乐的人来说极其便捷。显然,通过一个曲调就识别然后匹配出相应的歌曲,这里必可以通过识别这首歌的一段乐谱,然后在乐曲库里寻找和这段曲调相似的歌曲。另一方面,有些人的确在音乐方面比较懵懂,播放一个乐曲直接学,很多调都听不准所以学不准,如果只有音乐没有乐谱,对于学习音乐就比较困难。所有如果能识别出音乐的乐谱并输出给人们看,会大大减小学习音乐的困难,是音乐感不强的人学音乐的福利。

 任务要求:播放一段音乐,通过不同按键控制不同显示乐谱的方式,在数码管上显示简谱,或者用led灯显示乐谱。

 二、程序的设计流程图

 

播放音乐子程序设计流程图如下:

整个程序设计流程图如下:

 


三、程序相关电路及工作原理说明

1.IAP15F2K61S2芯片40个引脚如下:

sbit beep=P3^4;                //蜂鸣器引脚

sbit sel_led=P2^3;           //控制数码管和led灯转换的引脚

sbit sel_0=P2^0;

sbit sel_1=P2^1;

sbit sel_2=P2^2;              //控制三个进位的引脚

sbit key1=P3^2;

sbit key2=P3^3;

sbit key3=P1^7;                    //3个按键引脚

2.共阴极数码管电路图如下: P0口输入高电压led灯亮

3.按键电路示意图:按下是低电平, 高电平时常态

4.无源蜂鸣器电路示意图如下:输入方波,发出声音

四、程序设计框架

1.宏定义

#defineuint unsigned int

#defineuchar unsigned char

2.变量定义

bit k1=0;

bit k2=0;

bit k3=0;                               //控制三种乐谱显示方式的标志位

uchar qudiao,jp,weizhi;          //曲调 音符 位置

uchar duanxuan[]                  //定义段选 数码管从0-7

uchar led[]                   //定义0-8led灯亮的情况

uchar timeh,timel;            //定义定时器的重装值 表示不同的频率


3.程序函数说明

      voiddelay(unsigned int xms)  //延时程序

      ucharquyin(uchar tem)              //找到tem音符在quzi数组中的位置值,识别输入的音符,并根据不同的按键按下来控制不同的乐谱输出方式

      voidplaymusic()                      //播放音乐函数

      voidinit()                           //定时器初始化配置io口(系统初始化)

void tim1()interrupt 1          //定时器0中断服务程序,重新装值,产生方波,对应蜂鸣器发声

 

五、下载与调试(实验日志)

1.   2016.8.22  问题:程序下载到板子上没有反映,没有显示

解决思路:显示电路主要有usb口 、晶振片和iap15f2k61s2芯片组成,检测到usb口电路没有焊错,应该就是晶振片坏了。

解决过程:换了晶振,果然可以了。

已解决。

 

2.  2016.8.30 霍尔实例下载验证不了

解决思路:磁铁靠近与远离,霍尔元器件没有任何反应,检查霍尔元器件,发现正负极焊反了。

解决过程:把霍尔元器件再重新焊对一遍。

已解决。

 

3.  2016.9.2 设计乐谱显示工程:

2016.9.2:刚开始只设计出一种在数码管上显示乐谱的显示方式,也没有按键控制功能。

多次修改程序,下载验证成功。

2016.9.3:加一个用led灯来输出乐谱的方式,没有按键功能。

多次修改程序,下载验证成功。

2016.9.4:在原来的基础上,用按键来控制选择哪种方式来输出乐谱。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值