一、设计目的
按键发音程序
为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。
1、通过本设计,使学生综合运用《单片机技术原理与应用》、《DSP原理与应用》《C语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。
2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用程序,并仿真运行,保证设计的正确性。
3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等。
二 设计内容
单片机的P1口分别接有7个按键,分别对应输出7个音符。当某一按键按下时,发出对应的音符的声音。 三、设计要求
1、掌握原理图的画法,在PROTEUS平台上用单片机完成所选题目的原理图设计 2、在KEIL C平台上使用C语言编程实现编程,并调试通过
3、在PROTEUS平台上利用设计好的原理图和调试好的程序完成整个仿真。 4、按设计报告要求完成课程设计报告
四 方案实施所需的条件
1 软件条件
软件平台用的是Keil、Proteus软件 语言:C语言
2. 硬件条件
PC机一台,ATS51,蜂鸣器
3 系统整体方案
利用ATS51产生乐曲音符,再把乐谱翻译成计算机音乐语言,由单片机进行信息处理,经过信号放大,由蜂鸣器放出声音。由于音符和节拍是由计算机产生的,所以发音音符和节拍准确。实现功能如下: 1、按下开关K1,K2,K3,K4 K5 K6 K7发出不同声音。
4 电路原理 1、发出声音部分电路
音乐播放部分电路原理图如2-1图所示:
图2-1音乐播放电路原理图
图2-1音乐播放电路原理图中可以看出:从单片机T0/3.5口的定时器送出脉冲调制方波信号,经三极管NPN放大后传输至蜂鸣器输出,发出乐曲声。R17是限流电阻防止电流过大烧坏三极管及蜂鸣器。三极管是属于流控流型的器件,在这用于驱动蜂鸣器,通过三极管可以控制流过蜂鸣器的电流,达到我们想要的功率。
2、按键电路原理
按键部分电路原理图如2-2图所示:
图2-2按键电路原理图
此按键电路的K1~K4开关分别接至单片机P1.0~P1.4口,由单片机内置程序控制。当按下K1~K7中任意一个开关播放。
3、核心部分电路原理
核心部分电路原理图如2-3图所示:
图2-3核心部分原理图
图2-4三点式电容振荡电路图
这是核心部分电路中的并联晶体振荡器电路图,在这中晶体振荡器为单片提供一个稳定的准确的时钟信号,2个电容与晶体振荡器构成三点式电容振荡器电路,
五 硬件介绍
此次设计中用到了ATS51单片机,蜂鸣器,LED,NPN三极管,晶体振
荡器等。
1、ATS51:
图2-5 ATS51管脚图 ATS51概述:
ATS51是一个低功耗,高性能CMOS8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位处理器和ISP Flash存储单元,ATS51在众多嵌入式控制应用系统中得到广泛应用。 主要性能:
1、4k Bytes Flash片内程序存储器; 2、128 bytes的随机存取数据存储器(RAM); 3、32个外部双向输入/输出(I/O)口;4、2个中断优先级、2层中断嵌套中断; 5、6个中断源;6、2个16位可编程定时器/计数器 7、2个全双工串行通信口; 8、看门狗(WDT)电路;9、片内振荡器和时钟电路;10、与MCS-51兼容; 11、全静态工作:0Hz-33MHz;12、三级程序存储器保密锁定 13、可编程串行通道; 14、低功耗的闲置和掉电模式。
2、蜂鸣器:
图2-6 蜂鸣器电路
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 ;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA (旧标准用“FM”、“LB”、“JD”等)表示。
六 软件部分 1 程序流程图
主程序流程图:
程序开始 程序初始化 主程序 Y 有无按N
蜂鸣器发声
主程序流程图
2 核心代码
#include #define uchar unsigned char #define uint unsigned int sbit BEEP = P3^7; sbit K1 = P1^1; sbit K2 = P1^2; sbit K3 = P1^3; sbit K4 = P1^4; sbit K5 = P1^5; sbit K6 = P1^6; sbit K7 = P1^7; void DelayMS(uint x) { uchar t; while(x--) { for(t=0;t<120;t++); } } void Play(uchar t) { uchar i; for(i=0;i<100;i++) { BEEP = ~BEEP; DelayMS(t); } BEEP = 0; } void main() { P1 = 0xff; while(1) { if(K1==0) Play(1); if(K2==0) Play(2); if(K3==0) Play(3); if(K4==0) Play(4); } if(K5==0) Play(5); if(K6==0) Play(6); if(K7==0) Play(7); } 3 电路的调试 1、按下开关按键,接通电源。 2、按下K1,K2,K3,K4,K5,K6,K7键。 运行电路原理图如下图所示: 七 调试过程中的主要难点及解决思路和办法 调试过程中发生了蜂鸣器长鸣的现象,经过仔细查找发现是,晶振中的参数设置出现了问题,经过,查找资料和向同学咨询,将参数设置正确,使仿真成功。 八 课设结果及分析、收获、体会和建议 通过本次课程设计我更好的巩固了PROTEUS的使用和加深了对单片机工作原理的认识,提高了运用理论知识解决实际问题的能力。同时在具体的制作过程中我发现书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的。本次设计的简易音乐播放器采用ATS51单片机为中心器件来设计按键发声器,实现了按键发声的功能。特别需要加强的是对程序的认识,由于编写C语言能力的缺乏,导致很多程序很难理解,需要提高。 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- shangjiatang.cn 版权所有 湘ICP备2022005869号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务