收藏 分享(赏)

基于单片机的蜂鸣器放音乐课程设计.doc

上传人:HR专家 文档编号:4760186 上传时间:2019-01-10 格式:DOC 页数:17 大小:871.51KB
下载 相关 举报
基于单片机的蜂鸣器放音乐课程设计.doc_第1页
第1页 / 共17页
基于单片机的蜂鸣器放音乐课程设计.doc_第2页
第2页 / 共17页
基于单片机的蜂鸣器放音乐课程设计.doc_第3页
第3页 / 共17页
基于单片机的蜂鸣器放音乐课程设计.doc_第4页
第4页 / 共17页
基于单片机的蜂鸣器放音乐课程设计.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、单片机课程设计蜂鸣器放音乐设计 学 号:* 班 级:*姓 名:*指导教师:*日 期:2012.6课程设计任务书班 级: * 姓 名: *设计周数: 1 学分: 1指导教师: *设计题目: 设计目的及要求:目的: .熟悉印制电路板设计的步骤和方法,能够按照自己的思想设计出所需的电路功能,并能明白其原理和应用。.熟悉常用电子器件的类别、型号、规格、性能及其使用范围,能查阅有关的电子器件图书。.能够正确识别和选用常用的电子器件,并且能够熟练使用普通万用表和数字万用表。.能够熟练的使用单片机编程软件,实现硬件及软件的紧密结合,并能熟练地调试程序,明白程序的目的和编写步骤。要求:掌握设计电路和写单片机程

2、序及调试. 设计内容和方法:用 STC89C52 单片机和电平转换芯片 MAX232 组成一个简单的控制电路,用以控制蜂鸣器发出各种不同的声音,并利用虚拟仪器控制。方法:通过电脑的串口写入一段程序到单片机中,实现单片机的控制作用。利用按键控制蜂鸣器的发声,经 MAX232 与电脑相连,用虚拟仪器实现对单片机的控制。目 录第一章 绪论 .1第二章总体设计 2第三章硬件部分 3第四章软件部分 4第五章总结 5参考文献 6附 录 .7第一章 绪论单片机的发展概况单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪

3、表,及通讯设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。管脚图如图 1 所示。图 1 MCS51 单片机引脚图(1) 电源地组 Vcc 和 Vss; VCC(40)脚接+5V 电压; VSS(20)脚接地(2) 时钟电路组 XTAL1 和 XTAL2(3) 控制信号组 RST/ALE/PSEN 和 EA(4) I/O 端口 P0, P1, P2 和 P3近来,单片机的发展尤为迅猛,并且趋于高智能化、存储器大量化、更多的外围电路内装化以及工艺上的多元化等方向,广泛应用于单机应用领域、多机

4、应用领域、自动控制领域和智能化控制领域等。单片机应用系统的结构通常分为三个层次,即单片机、单片机系统和单片机应用系统。单片机通常指应用系统主处理机,即所选择的单片机器件等。单片机系统指按照单片机的技术要求和嵌入对象的资源要求而构成的基本系统。时钟电路、复位电路和扩展存储器等与单片机共同构成了单片机系统。单片机应用系统指能满足嵌入对象要求的全部电路系统。在单片机系统的基础上加上面向对象的接口电路,如前向通道、后向通道、人机交互通道(键盘、显示器、打印机等)和串行通信口(RS232)以及应用程序等。单片机应用系统层次关系如图 2 所示。向后通道单片机单片机系统单片机应用系统向前通道人机交互通道应用

5、程序串行通信口图 2 单片机应用系统三个层次的关系第二章 总体设计本设计是设计一个单片机控制的蜂鸣器发声系统的设计。近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。本秒表采用 89c52 为中心器件,将软、硬件有机地结合起来,使得系统能够实现控制蜂鸣器发声。其软件系统采用 c 语言编写程序,并在 keil下调试通过,硬件电路通过 MAX232 与电脑相连,并与软件相结合,调试修改,使达到预期的目的。第三章 硬件部分3.1 鸣器电路设计由于蜂鸣器的工作电流一般比较大,以致于单片机的 I/O 口是无法直接驱动的,所以要利用放大短路来驱动,一般使用三极管

6、来放大电流就可以了。3.2 电源电路电源电路是系统的最基本部分,任何部分都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所疏忽,其实有一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。3.3 单片机晶振电路52 单片机内部的振荡电路是一个增益反相放大器,引线 XYAL1 和 XTAL2分别为反相放大器的输入和内部时钟电路输入和来自反相放大器的输出,该反相放大器可以配置为片内振荡器。单片机内部虽然有震荡电路,但要形成时钟,外部还需要附加电路石晶振荡和陶瓷振荡均可采用,有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时

7、钟信号的脉宽无任何要求,单必须保证脉冲的高低电平要求的宽度。单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。利用其内部的震荡电路 XTAL1 和 XTAL2 外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到 XTAL2 的输出时钟信号。在 MCS-52 中通常用内部时钟方式,也就是在 XTAL1 和 XTAL2 之间连接晶体振荡器与电容构成稳定的自激震荡器。晶体和电容决定了单片机的工作精度为 1 微秒,晶体可在 1.2-12MHZ 之间选择。MCS-51 单片机在通常情况下,使用震荡频率为 6MHZ 的石英晶体,而12MHZ 频率主要是在高速串行通信情况才使用,在这

8、里我们用的是 12MHZ 的石英晶体。对电容无严格要求,但它在取值对震荡频率的输出的稳定性、大小及震荡电路起震荡速度有点影响。C1 和 C2 可在 10-100pF 之间取值,一般情况下取 30pF。外部时钟方式是把外部震荡信号源直接接入 XTAL1 或 XTAL2。由于 XTAL2 的逻辑电平不是 TTL,所以还要接上拉电阻。3.4 单片机复位电路单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个

9、机器周期以上的高电平,从而实现复位操作。3.5 按键电路3.6 通信电路第 4 章 软件部分4.1 单片机程序/*/* 音乐:新年好 */*/#include “REG51.H“#define uchar unsigned charsbit beepIO=P15;sbit S6=P32;sbit LED=P20;uchar m,n,Flag; uchar code T492=0,0,0xF8,0x8B,0xF8,0xF2,0xF9,0x5B,0xF9,0xB7,0xFA,0x14,0xFA,0x66,0xFA,0xB9,0xFB,0x03,0xFB,0x4A,0xFB,0x8F,0xFB,0x

10、CF,0xFC,0x0B,0xFC,0x43,0xFC,0x78,0xFC,0xAB,0xFC,0xDB,0xFD,0x08,0xFD,0x33,0xFD,0x5B,0xFD,0x81,0xFD,0xA5,0xFD,0xC7,0xFD,0xE7,0xFE,0x05,0xFE,0x21,0xFE,0x3C,0xFE,0x55,0xFE,0x6D,0xFE,0x84,0xFE,0x99,0xFE,0xAD,0xFE,0xC0,0xFE,0x02,0xFE,0xE3,0xFE,0xF3,0xFF,0x02,0xFF,0x10,0xFF,0x1D,0xFF,0x2A,0xFF,0x36,0xFF,0x

11、42,0xFF,0x4C,0xFF,0x56,0xFF,0x60,0xFF,0x69,0xFF,0x71,0xFF,0x79,0xFF,0x81;uchar code music2=0,4,19,4,19,4,19,8,14,8,23,4,23,4,23,8,19,8,19,4,23,4,26,8,26,8,24,4,23,4,21,16,21,4,23,4,24,8,24,8,23,4,21,4,23,8,19,8,19,4,23,4,21,8,14,8,18,4,21,4,19,16,0xFF,0xFF;void delay(uchar p)uchar i,j; for(;p0;p-)fo

12、r(i=181;i0;i-)for(j=181;j0;j-);/发送、接收初始化void init_sr()SCON=0x50; /REN=1 允许串行接受状态,串口工作模式 1 TMOD|= 0x20; /定时器工作方式 2 PT1=1; TH1=0xFD; TL1=0xFD; ES=1; /开串口中断TR1=1; void pause( )uchar i,j;for(i=150;i0;i-)for(j=150;j0;j-);void EX0_int() interrupt 0static bit a=1;EX0=0; if(a)a=0;delay(2);if(S6=0)LED=0;ET0=

13、0;beepIO=1;elsea=1;delay(2);if(S6=0)LED=1;ET0=1; EX0=1; void main()uchar i=0; TMOD=0x01; ET0=1; EX0=1;IT0=1;PX0=0;LED=1;EA=1;init_sr();while(1) m=musici0;n=musici1; if(m=0x00)TR0=0;delay(n);i+; else if(m=0xFF)TR0=0;delay(30);i=0;else if(m=musici+10) TR0=1;delay(n);TR0=0;pause();i+;elseTR0=1;delay(n)

14、;i+;void T0_int() interrupt 1beepIO=!beepIO; TH0=Tm0; TL0=Tm1;/串口中断程序void ser_int (void) interrupt 4if(RI = 1) /RI 接受中断标志RI = 0; /清除 RI 接受中断标志S6 = SBUF; /SUBF 接受Flag=1; 4.2 CVI 程序#include #include #include #include “kongzhi.h“static int panelHandle;int COM,kaishi,comselect,duqu;char aa = 0,status,FX

15、;char wrt1;void delay(unsigned char z)unsigned char x,y;for(x=110;x0;x-)for(y=z;y0;y-);void init_lianjie() aa=!aa;if(aa)GetCtrlVal (panelHandle, PANEL_COMSELECT, COM=comselect ;status=OpenComConfig(COM,“,9600,0,8,1,512,512);if(status!=0)MessagePopup(“Error“,“连接错误!“);aa=0;SetCtrlVal (panelHandle, PAN

16、EL_LED, aa);int main (int argc, char *argv)if (InitCVIRTE (0, argv, 0) = 0)return -1; /* out of memory */if (panelHandle = LoadPanel (0, “kongzhi.uir“, PANEL) 0)return -1;DisplayPanel (panelHandle);RunUserInterface ();DiscardPanel (panelHandle);return 0;int CVICALLBACK Press (int panel, int control,

17、 int event,void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT:if(aa=1)ComWrtByte (COM,0) ;ComWrtByte (COM,1) ;switch(FX+%8)case 0:SetCtrlVal (panelHandle, PANEL_LED_7, 0);SetCtrlVal (panelHandle, PANEL_LED_1, 1);break;case 1:SetCtrlVal (panelHandle, PANEL_LED_1, 0);Se

18、tCtrlVal (panelHandle, PANEL_LED_2, 1);break;case 2:SetCtrlVal (panelHandle, PANEL_LED_2, 0);SetCtrlVal (panelHandle, PANEL_LED_3, 1);break;case 3:SetCtrlVal (panelHandle, PANEL_LED_3, 0);SetCtrlVal (panelHandle, PANEL_LED_4, 1);break;case 4:SetCtrlVal (panelHandle, PANEL_LED_4, 0);SetCtrlVal (panel

19、Handle, PANEL_LED_5, 1);break;case 5:SetCtrlVal (panelHandle, PANEL_LED_5, 0);SetCtrlVal (panelHandle, PANEL_LED_6, 1);break;case 6:SetCtrlVal (panelHandle, PANEL_LED_6, 0);SetCtrlVal (panelHandle, PANEL_LED_7, 1);break;break;return 0;int CVICALLBACK Quit (int panel, int control, int event,void *cal

20、lbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT:CloseCom (COM);QuitUserInterface (0);break;return 0;int CVICALLBACK Lianjie (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)int comvalue;switch (event)case EVENT_COMMIT:init_lianjie();brea

21、k;return 0;第 5 章 总结作为一名电子信息工程的大三学生,我觉得做单片机课程设计是很有意义的,而且也是必要的。在做这次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的实际资料是十分必要的,也是必不可少的。其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:proteus 仿真、汇编语言、模拟和数字电路知识等。虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。参考文献:1:基于 LabWindow/CVI 的虚拟仪器设计与应用(第二版) 电子工业出版社2:单片机原理及接口技术 人民邮电出版社附录:

展开阅读全文
相关资源
猜你喜欢
相关搜索

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

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报