ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:18.66KB ,
资源ID:6062335      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6062335.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机原理及系统课程设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机原理及系统课程设计.docx

1、单片机原理及系统课程设计单片机原理及系统课程设计评语:考勤(10)守纪(10)过程(40)设计报告(30)答辩(10)总成绩(100)专 业: 自动控制 班 级: 1103班 姓 名: 徐越 学 号: 201108902 指导教师: 李亚宁 兰州交通大学自动化与电气工程学院2013 年 9月 1 日基于单片机的音乐播放器设计摘 要随着我国现代化技术建设的发展,电子产品多种多样,但同类电子产品工作原理基本相同,只不过在硬件电路的是实现上有所不同。例如我们我们平时所用的MP3音乐播放器,就可以用单片机和一些电子元件来实现它的基本功能。我的设计是以89C51单片机作为核心工作元件的音乐播放器,依据单

2、片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。它在实现音乐播放功能上简单易行,在制作硬件电路上也不困难。因此,此次课程设计,我除了完成了系统的软件设计和实物电路仿真外,利用空余时间制作出了实物。关键字 音乐播放器,AT89C51单片机,KEIL,PROTEUS。1 引言1.1 设计目的此次制作的音乐播放器,只需将音乐编码导入C语言程序,经过KEIL软件运行生成HEX文件,经BDM下载器导入单片机

3、中即可。可以同时生成多首歌曲的音乐编码,再次我选择了两首歌的音乐编码。学生自己动手就可以制作属于自己的个性化的音乐播放器,通过自己动手将所学的单片机知识应用到实践中。1.2 设计要求 设计一个基于AT89C51的音乐播放器,利用软件编程和相应的硬件电路实现不同歌曲的播放,先利用KEIL软件编程,再用PROTEUS仿真实现,生成可执行的HEX文件,最后焊接实物电路。1.3 设计方法采用AT89C51单片机、蜂鸣器,晶体振荡器,晶体管2N2905,复位开关为主要硬件。 PROTEUS仿真软件设计和C语言编程方法实现播放器的模拟,用AT89C51实现音乐编码的处理,用晶体管2N2905对电路中电流放

4、大,进而驱动蜂鸣器播放音乐。2 设计方案及原理按照系统设计要求,将系统分为主控模块,电源电路复位电路、晶振电路、功率放大电路,蜂鸣器发声电路等模块。系统框图如图1所示。 图1 系统组成框图AT89C51简介 AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT

5、89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机外形及引脚排列如图2所示。 图2 AT89C51单片机引脚图3 硬件设计3.1 晶振电路晶振电路,对于单片机系统而言是必须的,因为单片机内部是由各种各样的数字逻辑器件构成,而这些器件又必须按时间顺序完成。所以在管脚的XTAL1和XTAL2引脚外接石英晶体和俩个谐振电容,电容采用2个30pf电容,采用12M的石英晶体。这样就可以构成单片机的基本时钟电路,时钟频率为12M。如图2所示 图2晶振电路3.2 复位电路复位电路是对单片机进行初始化操作,使单片机处于一个确定的初始状态。而要AT89S51复位得在RESE

6、T引脚上加5V的高电平信号就可以了。复位电路参数为30U的电解电容和1k的电阻。如图3为单片机的复位电路。图3复位电路3.3 功率放大电路功率放大电路对工作电流进行放大,因为单片机电路本身的电流不足以带动蜂鸣器发生,加一个三极管放大器2N2905可以带动蜂鸣器发生。图4功率放大电路3.4 晶振、复位、功放之间连线电路 图5复位电路、晶振电路与单片机之间的连线图3.4 系统连接图整体硬件连接图如图6所示。图6系统连接图4 软件设计4.1 主程序设计 主程序流程图如图6所示。 图7主程序流程图 5 系统仿真及调试软件调试,先编写显示程序并进行硬件的正确性检验,然后分别进行主程序,音乐播放程序和定时

7、程序的编译和调试;硬件调试,仔细检查电路有没有漏接或是错接的地方,再接一个电压表检查供给蜂鸣器的电压是否合适,调节电阻的阻值以调节工作电路的阻值。并且外接了一个数字滤波器检测P1.7引脚的电平高低。如果不理想,继续调整程序和硬件电路,直到得到正确结果。仿真图详见第4图6。6 总结通过此次基于单片机的音乐播放器的设计,使我进一步加深了对课堂上知识的理解,对单片机的寻址方式及定时中断的理解更加深刻,熟悉了单片机应用系统设计的各主要环节的设计,了解了三极管2N2905的参数,及使用方法,蜂鸣器的正常工作条件,示波器在PROTEUS中的使用方法,使用外部晶体振荡器如何选取电容,及晶体振频率。但是动手制

8、作实物的过程的,动手焊接能力还是不行,容易把引脚焊接在一起,因此,在以后的学习要加强自己实践能力的锻炼。软件调试,先编写显示程序并进行硬件的正确性检验,然后分别进行主程序,A/D转换程序和LED显示器程序编译和调试;硬件调试,仔细检查电路有没有漏接或是错接的地方,再接一个电压表检查LED显示器显示的数值是否和电压表的示数一致,如果不理想,继续调整程序,直到得到正确结果。附录1音乐播放器源程序/音乐播放器代码#include#define uchar unsigned char#define uint unsigned intuchar Count;sbit Speak =P17; /蜂鸣器器控

9、制脚 /*以下数组是音符编码*/unsigned char code SONG = /祝你平安0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,0x30,0x20,0x3

10、0,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x2

11、6,0x20,0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x2

12、6,0x10,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00, /路边的野华不要采0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1

13、C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x1

14、8,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,0x05,0x20,0x10,0x1

15、C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,;/* 名称 :

16、 Time0_Init()* 功能 : 定时器的初始化,定时时间可用光碟中软件计算,11.0592MZ晶振,10ms* 输入 : 无* 输出 : 无*/void Time0_Init() TMOD = 0x01; IE = 0x82; TH0 = 0xDC; TL0 = 0x00; /* 名称 : Time0_Int()* 功能 : 定时器中断,中断中实现 Count 加一* 输入 : 无* 输出 : 无*/void Time0_Int() interrupt 1 TH0 = 0xDC; TL0 = 0x00; Count+; /长度加1/* 名称 : Delay_x Ms()* 功能 : 延

17、时子程序,经过软件调试,测得延时程序大概为55us.* 输入 : x * 输出 : 无*/void Delay_x Ms(uint x) uint i,j; for(i=0; ix; i+) for(j=0; j3; j+); /* 名称 : Play_Song()* 功能 : 播放蜂鸣器控制程序* 输入 : i (选择播放哪首歌曲,0为“祝你平安”,1为“路边的野花你不要采”* 输出 : 无*/void Play_Song(uchar i) uchar Temp1,Temp2; uint Addr; Count = 0; /中断计数器清0 Addr = i * 217; while(1) T

18、emp1 = SONGAddr+; if (Temp1 = 0xFF) /休止符 TR0 = 0; Delay_x Ms(100); else if (Temp1 = 0x00) /歌曲结束符 return; else Temp2 = SONGAddr+; TR0 = 1; while(1) Speak = Speak; Delay_xMs(Temp1); if(Temp2 = Count) Count = 0; break; /* 名称 : Main()* 功能 : 主函数* 输入 : 无* 输出 : 无*/void Main() Time0_Init(); /定时器0中断初始化 while

19、(1) Play_Song(0); /Play_Song(0)为祝你平安 Play_Song(1)为路边的野花你不要采 附录2完整仿真图和实物图音乐播放器的仿真图及实物图,分别如图8、图9所示。 图7音乐播放器仿真图 图8音乐播放器实物图 参考文献1 李建忠.单片机原理及应用M,西安电子科技大学出版社,2008.2. 2 黄智伟.全国大学生电子设计竞赛系统设计M,北京:北京航空航天大学出版社,2006.6.3 黄智伟.凌阳单片机课程设计指导M,北京:北京航空航天大学出版社,2006.11.4 李广弟,朱月秀,王秀山.单片机基础M,北京:北京航空航天大学出版社,2001.7.5 康华光. 模拟电子技术基础(第四版)M, 武汉:华中理工大学出版社,1999.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1