基于单片机的音乐数字钟的设计与仿真毕业设计.doc_第1页
基于单片机的音乐数字钟的设计与仿真毕业设计.doc_第2页
基于单片机的音乐数字钟的设计与仿真毕业设计.doc_第3页
基于单片机的音乐数字钟的设计与仿真毕业设计.doc_第4页
基于单片机的音乐数字钟的设计与仿真毕业设计.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的音乐数字钟的设计与仿真 郑州轻工业学院轻工职业学院专科毕业设计 题 目 基于单片机的音乐数字钟的设计与仿真 学生姓名 张培成 专业班级 自动化生产设备及应用121 学 号 院 (系)机电工程系 指导教师(职称) 徐艳 完成时间 2基于单片机的音乐数字钟的设计与仿真摘要 近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。单片机是单片微型计算机的简称,随着制造集成电路技术的发展可以将完成计算机功能的零部件集成在一个芯片上。这样的一个芯片就具有计算机的全部或大部分功能,称为单片机微型计算机,简称单片机。关键词 单片机/设计/开发/调试41music based on single chip microcomputer digital clock design and simulationabstract in recent years, along with the computer penetration in the field of society and the development of large scale integrated circuit, scm applications are constantly go, because it has strong function, small volume, low power consumption, cheap, reliable work, convenient use, etc, therefore particularly suitable for related to the control system, more and more widely used in automatic control, intelligent instruments, meters, data acquisition, military products and household appliances and other fields, the microcontroller is often used as a core component, in according to the specific hardware structure, and in combination with the software according to the characteristics of the specific application object, to be improved. microcontroller is short for single chip microcomputer, with the development of integrated circuit technology manufacturing complete computer functions of components can be integrated on a chip. such a chip has all or most of the function of the computer, known as the single chip microcomputer, referred to as single chip microcomputer.key words scm,design,development,debugging目录摘要 1abstract 21课题介绍 5 1.1 单片机与单片机系统 52单片机系统的硬件设计 2.1系统构成 2.1.1at89c51芯片的介绍 6 2.1.2引脚功能 92.2显示部分 2.2.1 led显示器92.2.2 led数码显示管的基本原理 92.2.3 数码管显示模块分析 112.3 键盘 132.4 74ls245简介 182.5 蜂鸣器 193 控制部分电路的设计 3.1 系统复位设置 20 3.2 数字时钟的设计 21 3.3 音乐模块 22 4 硬件电路端口分配 24 5 软件设计 5.1 程序 25 5.2 proteus软件仿真与实现 32结束语 35致谢 36参考文献 36 1 课题介绍本设计是基于单片机的音乐数字钟设计,由单片机at89c51芯片和led数码管为核心,辅以必要的电路,构成的一个单片机电子音乐数字钟。要求利用i/o口产生一定频率的方波,来驱动蜂鸣器,发出相应的音调。可通过功能键选择乐曲,暂停,播放。本设计采用4*3键盘,七段显示数码管led。蜂鸣器、按键电路、复位电路、时钟电路,通过软件程序来控制单片机内部的定时器使其产生音乐频率。与传统的机械式相比,用单片机设计的音乐数字钟体积更小巧,且制作工艺简单。课设准备中根据具体的要求,查找资料,然后根据已经学过的始终程序编写定时闹钟的程序,依据程序利用proteus软件进行了仿真实验,对出现的问题进行分析和反复修改原程序,最终得到正确并符合要求的结果。1.1 机与单片机系统随着电子技术的发展,电子设备、仪器的智能化水平越来越高,而且越来越来多的家用电器具备了“自动”、“智能”、“电脑”和“微电脑控制”等功能,如全自动洗衣机、智能冰箱、电脑万年历、微电脑控制电磁炉等。这些“自动”、“智能”和“电脑控制”是怎么回事?又是如何实现的呢?事实上,能够实现这些功能全是单片机的功劳,下面我们就先来认识一下单片机吧。一、什么是单片机大家都使用过计算机,我们知道计算机最主要的部分就是主板了。主板就是一块电路板,在这块电路板上有cpu、存储器、时钟等,还有很多接口电路,以便和各种设备连接。如果把这些组成计算机的基本部件集成在一块集成电路上就构成了单芯片微型计算机。单片微型计算机,简称单片机,它是把组成微型计算机的各功能部件:中央处理器cpu、随机存取存储器ram、只读存储器rom、多种i/o接口电路、定时器/计数器、中断系统以及串行通讯系统等部件制作在一块硅片上,构成一个小而完善的微型计算机系统。有的单片机可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、a/d转换器等电路。单片机示意图如图1-34所示。cpu 中央处理器(运算器和控制器)时钟电路只读存储器随机存储器定时器/计数器输入/输出接口中断系统图1-34 单片机示意图单片机既是一块集成电路,也是一个微型计算机,和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。各种单片机实物图如图1-35所示。at89s51-dip stc89c52rc-dip at89s52-tqfp at89c2051-dip 图1-35 各种单片机实物图单片机是其早期的含义,由于单片机更多的应用于控制系统及与控制有关的数据处理场合,是典型的嵌入式微控制器,因而目前应确切称其为微控制器(microcontroller unit),英文缩写为mcu,单片机的称谓只是保留了其习惯称呼。单片机的应用从根本上改变着传统的控制系统设计思想和设计方法。以往由继电器接触器控制,模拟电路、数字电路实现的大部分控制功能,现在都能够使用单片机通过软件的方式来实现,这种以软件取代硬件并能够提高系统性能的微控制技术,随着单片机应用的推广普及,不断发展,日益完善。因此,了解单片机,掌握其应用及开发技术,具有划时代的意义。二、什么是单片机系统在各类电子产品中,利用单片机实施控制的系统称为单片机应用系统。单片机应用系统是由硬件系统和软件系统两部分组成,二者缺一不可,如图1-36所示。单片机接口电路及外设等单片机程序+硬件软件单片机应用系统图1-36 单片机应用系统硬件是应用系统的基础,软件则是在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务,软件是单片机应用系统的灵魂。2单片机系统的硬件设计 2.1系统构成 2.1.1 at89c51芯片的介绍 at89c51是一种带4k字节闪烁可编程可擦除只读存储器的低电压高性能cmos8位微处理器俗称单片机。该器件采用atmel高密度非易失存储器制造技术制造与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中atmel的at89c51是一种高效微控制器为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 1主要特性 与mcs-51 兼容 4k字节可编程闪烁存储器 寿命1000写/擦循环 数据保留时间10年 全静态工作0hz-24hz 三级程序存储器锁定 128*8位内部ram 32可编程i/o线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 2 管脚说明如图3.1 图3.1 vcc供电电压。 gnd接地。图 3.1 p0口p0口为一个8位漏级开路双向i/o口每脚可吸收8ttl门电流。当p1口的管脚第一次写1时被定义为高阻输入。p0能够用于外部程序数据存储器它可以被定义为数据/地址的第八位。在fiash编程时p0 口作为原码输入口当fiash进行校验时p0输出原码此时p0外部必须被拉高。 p1口p1口是一个内部提供上拉电阻的8位双向i/o口p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后被内部上拉为高可用作输入p1口被外部下拉为低电平时将输出电流这是由于内部上拉的缘故。在flash编程和校验时p1口作为第八位地址接收。 p2口p2口为一个内部上拉电阻的8位双向i/o口p2口缓冲器可接收输出4个ttl门电流当p2口被写“1”时其管脚被内部上拉电阻拉高且作为输入。并因此作为输入时p2口的管脚被外部拉低将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时p2口输出地址的高八位。在给出地址“1”时它利用内部上拉优势当对外部八位地址数据存储器进行读写时p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口p3口管脚是8个带内部上拉电阻的双向i/o口可接收输出4个ttl门电流。当p3口写入“1”后它们被内部上拉为高电平并用作输入。作为输入由于外部下拉为低电平p3口将输出电流ill这是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口如下表所示 管口管脚 备选功能 p3.0 rxd串行输入口 p3.1 txd串行输出口 p3.2 /int0外部中断0 p3.3 /int1外部中断1 p3.4 t0记时器0外部输入 p3.5 t1记时器1外部输入 p3.6 /wr外部数据存储器写选通 p3.7 /rd外部数据存储器读选通 p3口同时为闪烁编程和编程校验接收一些控制信号。 rst复位输入。当振荡器复位器件时要保持rst脚两个机器周期的高电平时间。 ale/prog当访问外部存储器时地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间此引脚用于输入编程脉冲。在平时ale端以不变的频率周期输出正脉冲信号此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是每当用作外部数据存储器时将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时 ale只有在执行movxmovc指令是ale才起作用。另外该引脚被略微拉高。如果微处理器在外部执行状态ale禁止置位无效。 /psen外部程序存储器的选通信号。在由外部程序存储器取指期间每个机器周期两次/psen有效。但在访问外部数据存储器时这两次有效的/psen信号将不出现。 /ea/vpp/ea保持低电平时在此期间外部程序存储器0000h-ffffh不管是否有内部程序存储器。注意加密方式1时/ea将内部锁定为reset当/ea端保持高电平时此间内部程序存储器。在flash编程期间此引脚也用于施加12v编程电源vpp。 xtal1反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2来自反向振荡器的输出。 3 振荡器特性 xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为 片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器因此对外部时钟信号的脉宽无任何要求但必须保证脉冲的高低电平要求的宽度。 4 芯片擦除 整个perom阵列和三个锁定位的电擦除可通过正确的控制信号组合并保持ale 管脚处于低电平10ms 来完成。在芯片擦操作中代码阵列全被写“1”且在任何非空存储字节被重复编程以前该操作必须被执行。此外at89c51设有稳态逻辑可以在低到零频率的条件下静态逻辑支持两种软件可选的掉电模式。在闲置模式下cpu停止工作。但ram定时器计数器串口和中断系统仍在工作。在掉电模式下保存ram的内容并且冻结振荡器禁止所用其他芯片功能直到下一个硬件复位为止。2.2显示部分 2.2.1 led显示器基本介绍 led显示屏(led panel),是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。led显示器分类 (1)按字高分:笔画显示器字高最小有1mm(单片集成式多位数码管字高一般在23mm)。其他类型笔画显示器最高可达12.7mm(0.5英寸)甚至达数百mm。(2)按颜色分有红、橙、黄、绿等数种。(3)按结构分,有反射罩式、单条七段式及单片集成式。(4)从各发光段电极连接方式分有共阳极和共阴极两种。 2.2.2 led显示器工作原理 多个发光二极管封装在一起的七段数码显示器按其连接形式可分为共阳显示器和共阴显示器。图7-1所示为共阳和共阴的七段显示器,在显示器中除了显示数字必须的七段笔画外,还提供了小数点。共阳显示器的阳极连接在一起,此时对阳极提供一正电压,通过限流电阻控制其阴极为高电平或是低电平来决定其暗或是亮。共阴显示器的阴极连在一起,此时可将阴极接地,通过限流电阻控制其阳极为高电平或是低电平来决定其亮或是暗。图7-1七段数码显示器采用七段数码显示器显示的字型受到显示器本身结构的限制。因此,在显示比较复杂的字符、汉字或图形时,可采用点陈显示的办法。用单片机驱动led数码管有很多方法按显示方式分有静态显示和动态显示按译码方式可分为硬件译码和软件译码。 静态显示是显示驱动电路具有输出锁存功能单片机将要显示的数据送出后不再控制led直到下次显示时再传送一次新的显示数据。静态显示的数据稳定占用cpu时间少。 动态显示要cpu时刻对显示器件进行刷新显示数据有闪烁感占用cpu时间多。 这两种显示方式各有利弊静态显示虽然数据显示稳定占用很少的cpu时间但每个显示单元都需要单独的显示驱动电路使用的电路硬件较多动态显示虽然有闪烁感占用的cpu时间多但使用的硬件少能节省线路板空间。 动态扫描显示接口是单片机中应用最广泛的一种显示方式。其接口电路是把所有led显示器的8个笔划段ad、dp的同名端连在一起而每一个数码管的公共端com是各自独立地受i/o线控制。cpu向字段输出口送出字形码时所有显示器接受到相同的字形码但究竟是哪个显示器亮则取决于com端而这一端是由i/o控制的可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法轮流控制各个显示器的com端是各个显示器轮流点亮。 在轮流点亮扫描过程中每位显示器的点亮时间是极为短暂的约1ms左右但由于人的视觉暂留现象及发光二极管的余辉效应尽管实际上各位显示器并非同时点亮但只要扫描的速度足够快给人的印象就是一组稳定的显示数据不会有闪烁感。 从上述的论述中可以看出动态显示方案具备一定的实用性也是目前单片机数码管显示中较为常用的一种显示方法。所以本设计也采用动态显示方案。 2.2.3 数码管显示模块分析 译码器驱动数码管显示数值, 显示部分采用普通共阳极数码管显示采用动态扫描,以减少硬件电路。考虑到一次扫描12位数码管显示时会出现闪烁情况设计时分两排显示一排显示时间和年月日一排显示星期和温度 共阳极数码管中8个发光 二极管的阳极二极管正端连在一起。通常公共阳极接高电平一般接电源其它管脚接段驱动电路输出端。当某段驱动电路的输入端为低电平时该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时要求段驱动电路能吸收额定的段导通电流还需根据外接电源及额定段导通电流来确定相应的限流电阻。采用动态显示方式比较节省i/o口硬件电路也较静态显示简单但其亮度不如静态显示方式而且在显示位数较多时cpu要依次扫描占用cpu较多时间。 为了提供共阳led数码管的驱动电压用三极管9012作电源驱动输出。采用12mhz晶振有利于提高秒计时的精确性。数码管字形段码共阴型和共阳型的led数码管各笔划段名和安排位置是相同的,分别用a、b、c、d、e、f、g和dp表示,如图4-15(a)所示。将单片机的一个8位并行i/o接口与七段led数码管的管脚ag端及dp端对应相连,并输出不同的8位二进制数,即可显示不同的数字或字符。控制8个发光二极管的8位二进制数称为段码。例如,对于共阳极型led数码管,当公共阳极接高电平,单片机并行口输出二进制数11000000(对应十六进制数c0)时,显示数字“0”,则数字“0”的段码是0xc0。依此类推可求得数码管段码表如表4-2所示。表4-2 七段led数码管段码表显示字符字形共 阳 极共 阴 极dpgfedcba段码dpgfedcba段码0110000000xc0001111110x3f1111110010xf9000001100x062101001000xa4010110110x5b3101100000xb0010011110x4f4100110010x99011001100x665100100100x92011011010x6d6100000100x82011111010x7d7111110000xf8000001110x078100000000x80011111110x7f9100100000x90011011110x6f熄灭111111110xff000000000x00小帖士:在单片机系统开发时,有时为了接线方便,有时不按i/o口的高低位与数码管各段的顺序接线,这时的段码就需要根据接线进行调整。数码管的静态显示方式数码管的静态显示是指数码管显示某一数字或字符时,相应的发光二极管恒定导通或恒定截止。这种显示方式的各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。每个数码管的8个笔段分别与一个8位i/o口相连,i/o口只要有段码输出,相应字符即显示出来,并保持不变,直到i/o口输出新的段码,其示意图如图4-17所示。采用静态显示方式占用cpu时间少、编程简单、便于控制,但是每1个数码管要占用一个并行i/o口,所以只适合于显示位数较少的场合。 (a)显示数字“0” (b)显示数字“5”图4-17 数码管静态显示方式示意图数码管的动态扫描显示方式当单片机系统中需要多个数码管显示时,如果采用静态显示方式,并行i/o接口的引脚数将不能满足需要,这时可采用动态扫描显示方式。动态扫描显示是一位接一位的轮流点亮各位数码管。动态扫描显示方式在接线上不同于静态显示方式,它是将所有七段led数码管的8个显示笔段a、b、c、d、e、f、g、dp中相同的笔段连接在一起,称为段控端,每个数码管的公共端com不再接固定高电平或低电平,而是由独立的i/o口线控制,称为位控端,2位数码管动态扫描显示方式接线示意图如图4-18所示。图4-18 两位数码管动态扫描显示方式接线示意图动态扫描显示方式的显示过程:当cpu送出某个数字的段码时,所有的数码管都会接收到,但只有需要显示的数码管的位控端com被选通时,接收到有效电平才被点亮,而没有被选通的数码管不会亮。这种通过分时轮流控制各个数码管的com端送出相应段码,使各个数码管轮流受控、依次显示且循环往复的方式称为动态扫描显示。动态扫描显示意图如图4-19所示。 图4-19 动态扫描显示示意图在数码管轮流显示的过程中,每个数码管被点亮的时间为1ms左右,虽然各位数码管并非同时点亮,但由于人眼的视觉暂留效应,主观感觉各位数码管同时在显示。为了使用方便,有专门生产的供动态扫描显示的多位数码管,这些数码管内部已经将相应的笔段连接在一起,引出一组段控脚,每一位数码管引出一个公共端。2.3 键盘 方案一采用独立式按键。独立式按键易于控制编写程序简单容易理解但i/o口占用较多。 方案二采用阵列式按键。阵列式按键编程困难按键过多减少了i/o口的使用。 经过两种方案比较选择方案二。采用4*3的键盘。例 1. 行列键盘的接口电路行列键盘又叫做矩阵键盘。行列键盘的接口电路如图4-23所示,用一些i/o口线组成行结构,用另一些i/o口线组成列结构,其交叉点处不接通,设置为按键,这种接法称为行列式键盘。利用这种行列结构只需m条行线和n条列线,就可组成具有mn的键盘,因此减少了键盘与单片机接口时所占用i/o接口的数目。同样,如果是接于p0口,必须要有上拉电阻,如果接于p1、p2或p3口,上拉电阻可以省略。图4-23 行列式键盘接口电路2. 闭合键的识别为了提高cpu的效率,对闭合键的识别一般分为两步:第一步是快速检查整个键盘中是否有键按下,如果没有键按下,则直接转到其它程序,如果有键按下,再进行下一步;第二步是确定按下的是哪一个键。第一步:快速检查整个键盘中是否有键按下。其方法是先通过输出端口在所有的行线上发出全“0”信号,然后检查输入端口的列线信号是否为全“1”。若为全“1”,表示无键按下,如图4-24(a)所示;若不是全“1”,则表示有键按下,如图4-24(b)所示。这时还不能确定按下的键处于哪一行上。(a)无键按下 (b)有键按下图4-24 检查是否有键按下示意图第二步:确定按下的是哪一个键。识别闭合键有两种方法:一种称为逐行扫描法,另一种称为线反转法。(1)逐行扫描法逐行扫描法是识别闭合键的常用方法,在硬件电路上要求行线作输出、列线作输入,列线上要有上拉电阻。44键盘逐行扫描法的工作原理是:先扫描第0行,即输出1110(第0行为“0”,其余3行为“1”),然后读入列信号,判断是否为全“1”。若为全“1”,表示第0行无键按下;若不为全“1”,则表示第0行有键按下,闭合键的位置处于第0行和不为“1”的列线相交之处。如果第0行无键按下,就扫描第1行,用同样的方法判断第1行有没有键按下,直到找到闭合键为止,如图4-25(a)(d)所示。(a)扫描第0行 (b)扫描第1行(c)扫描第2行 (d)扫描第3行图4-25 逐行扫描法示意图行列式键盘的闭合键处理程序中,仍需要进行按键去抖和等待按键的释放。在图4-23所示的行列键盘电路中,采用逐行扫描法识别闭合键的程序如下:p1=0xf0;if (p1!=0xf0)/判断是否有按键按下delay();/延时去抖if (p1!=0xf0)/再次判断是否有按键按下p1=0xfe;/扫描第0行switch (p1)case 0xee:第0行第0个按键的功能代码;break;case 0xde:第0行第1个按键的功能代码;break;case 0xbe:第0行第2个按键的功能代码;break;case 0x7e:第0行第3个按键的功能代码;break;p1=0xfd;/扫描第1行switch (p1)case 0xed:第1行第0个按键的功能代码;break;case 0xdd:第1行第1个按键的功能代码;break;case 0xbd:第1行第2个按键的功能代码;break;case 0x7d:第1行第3个按键的功能代码;break;p1=0xfb;/扫描第2行switch (p1)case 0xeb:第2行第0个按键的功能代码;break;case 0xdb:第2行第1个按键的功能代码;break;case 0xbb:第2行第2个按键的功能代码;break;case 0x7b:第2行第3个按键的功能代码;break;p1=0xf7;/扫描第3行switch (p1)case 0xe7:第3行第0个按键的功能代码;break;case 0xd7:第3行第1个按键的功能代码;break;case 0xb7:第3行第2个按键的功能代码;break;case 0x77:第3行第3个按键的功能代码;break;p1=0xf0;while (p1!=0xf0);(2)线反转法线反转法也是识别闭合键的一种常用方法,该方法比行扫描法速度要快,但在硬件电路上要求行线与列线都要既能作输出又能作输入,行线和列线上都要有上拉电阻。下面仍以44键盘为例说明线反转法的工作原理。首先将行线作为输出线,列线作为输入线,先通过行线输出全“0”信号,读入列线的值,如果此时有某1个键被按下,则必然使某1列线值为“0”;然后将行线和列线的输入输出关系互换(输入输出线反转),列线作输出线、行线作输入线,再通过列线输出全“0”信号,读入行线的值,那么闭合键所在的行线上的值必定为“0”。这样当1个键被按下时,必定读得一对唯一的行值和列值,根据这一对值即可确定闭合键。线反转法示意图如图4-26所示。(a)行线输出全“0”得列值1101 (b)列输出全“0”得行值1011图4-26 线反转法示意图在图4-23所示的行列键盘电路中,采用线反转法识别闭合键的程序如下:unsigned char temp;temp=0xff; p1=0xf0;if (p1!=0xf0) /判断是否有按键按下delay();/延时去抖if (p1!=0xf0)/再次判断是否有按键按下p1=0xf0;/行作输出,列作输入temp=p1;/读取列值p1=0x0f;/列作输出,行作输入temp=temp|p1;/读取行值并和列值合并switch (temp)case 0xee:第0行第0个按键的功能代码;break;case 0xde:第0行第1个按键的功能代码;break;case 0xbe:第0行第2个按键的功能代码;break;case 0x7e:第0行第3个按键的功能代码;break;case 0xed:第1行第0个按键的功能代码;break;case 0xdd:第1行第1个按键的功能代码;break;case 0xbd:第1行第2个按键的功能代码;break;case 0x7d:第1行第3个按键的功能代码;break;case 0xeb:第2行第0个按键的功能代码;break;case 0xdb:第2行第1个按键的功能代码;break;case 0xbb:第2行第2个按键的功能代码;break;case 0x7b:第2行第3个按键的功能代码;break;case 0xe7:第3行第0个按键的功能代码;break;case 0xd7:第3行第1个按键的功能代码;break;case 0xb7:第3行第2个按键的功能代码;break;case 0x77:第3行第3个按键的功能代码;break;p1=0xf0;while (p1!=0xf0);需要说明的是,若用线反转法来确定闭合键时,如果遇到多个键闭合的情况,则得到的行值和列值中一定有1个以上的“0”。由于按键处理程序中没有这样的值,因而可以判断为重键而丢弃,由此可见,用这种方法可以很方便地解决重键问题。2.4 74ls245简介 74ls245引脚图与用法74ls245引脚图74ls245是我们常用的芯片,用来驱动led或者其他的设备,用法很简单如上图,这里简单的给出一些资料,他是8路同相三态双向总线收发器,可双向传输数据。74ls245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的p0口总线负载达到或超过p0最大负载能力时,必须接入74ls245等总线驱动器。当片选端/ce低电平有效时,dir=“0”,信号由b向a传输;(接收)*dir=“1”,信号由a向b传输;(发送)当/ce为高电平时,a、b均为高阻态。2.5 蜂鸣器 蜂鸣器 一)蜂鸣器的介绍1蜂鸣器的作用 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。2蜂鸣器的分类 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。3蜂鸣器的电路图形符号 蜂鸣器在电路中用字母“h”或“ha”(旧标准用“fm”、“lb”、“jd”等)表示。(二)蜂鸣器的结构原理 蜂鸣器的原理图1压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515v直流工作电压),多谐振荡器起振,输出1.52.5khz的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。2电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。蜂鸣器 的制作(1)制备电磁铁m:在长约6厘米的铁螺栓上绕100圈导线,线端留下5厘米作引线,用透明胶布把线圈粘好,以免线圈松开,再用胶布把它粘在一个盒子上,电磁铁就做好了.(2)制备弹片p:从铁罐头盒上剪下一条宽约2厘米的长铁片,弯成直角,把电磁铁的一条引线接在弹片上,再用胶布把弹片紧贴在木板上(3)用曲别针做触头q,用书把曲别针垫高,用胶布粘牢,引出一条导线,如图连接好电路(4)调节m与p之间的距离(通过移动盒子),使电磁铁能吸引弹片,调节触点与弹片之间的距离,使它们能恰好接触,通电后就可以听到蜂鸣声。3 控制部分电路的设计 3.1 系统复位设置 单片机复位电路是使cpu和系统中的其他功能部件都处在一个确定的初始状态,并从该状态开始工作例如复位后pc=0000h使单片机从第一个单元取指令。无论是在单片机刚接上电源时还是断电后或者发生故障后都要复位。 单片机各种复位电路原理复位电路的作用在上电或复位过程中,控制cpu的复位状态:这段时间内让cpu保持复位状态,而不是一上电或刚复位完毕就工作,防止cpu发出错误的指令、执行错误操作,也可以提高电磁兼容性能。无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。基本的复位方式单片机在启动时都需要复位,以使cpu及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从rst引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果rst引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则cpu就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位1、手动按钮复位手动按钮复位需要人为在复位输入端rst上加入高电平(图1)。一般采用的办法是在rst端和正电源vcc之间接一个按钮。当人为按下按钮时,则vcc的+5v电平就会直接加到rst端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。3.2 数字时钟的设计 数字时钟具有走时准确一钟多用等特点在生活中已经得到广泛的应用。虽然现在市场上已有现成的电子钟集成电路芯片出售价格便宜、使用也方便但是人们对电子产品的应用要求越来越高数字钟不但可以显示当前的时间而且可以显示日期、农历 、以及星期等给人们的生活带来了方便。另外数字钟还具备秒表和闹钟的功能且闹钟铃声可自选使一款电子钟具备了多媒体的色彩。 时间对人们来说总是那么宝贵工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情当事情不是很重要的时候这种遗忘无伤大雅。但是一旦重要事情一时的耽误可能酿成大祸。数字时钟已成为人们日常生活中必不可少的必需品广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术使电子时钟具有走时准确、性能稳定、携带方便等优点它还用于计时、自动报时及自动控制等各个领域。数字时钟是采用单片机原理实现对年、月、日、周、时、分、秒数字显示及到时提醒的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振。1. 技能要求数字时钟需要显示时、分、秒三个计时单位,每个计时单位有2位数字共需6个数码管,为显示美观和读取时间方便,在时、分、秒之间显示分隔符“-”,共用8个数码管,显示格式如图6-6所示。另外,数字时钟还必须可以通过按键调整时间,为了调整的方便,本任务使用行列键盘,各按键定义如图6-7所示。 1234577890设置图6-6 数字时钟数码管显示格式 图6-7 键盘按键定义示意图2. 仿真电路图数字时钟电路如图6-8所示。显示电路采用8位数码管动态扫描显示,最高2位显示时,中间2位显示分,最低2位显示秒,时、分、秒之间用“-”隔开。调整时间时,按下“设置”键,小时数开始闪烁,表示设置小时数,第一次输入数字键调整十位,第二次输入数字键调整个位,再次按下“设置”键,分钟数开始闪烁,第一次输入数字键调整十位,第二次输入数字键调整个位,再次按下“设置”键,退出调整,数码管不再闪烁。图6-8 数字时钟电路3.3 音乐模块 单片机产生音调的基本原理 音乐播放器是利用单片机产生乐曲音符再把乐曲音符翻译成计算机音乐语言用单片机进行信息处理再通过蜂鸣器或喇叭放出音乐。 音乐的产生主要是通过单片机的i/o口输出高低不同的脉冲信号来控制蜂鸣器发音。要想产生音频脉冲信号需要算出某一音频的周期(1/频率)然后将此周期除以2即为半周期的时间。利用单片机定时器计时这个半个周期时间每当计时到后就将输出脉冲的i/o口反相然后重复计时此半周期时间再对i/o口反相这样就能在此i/o口上得到此频率的脉冲。 通常利用单片机的内部定时器0工作在方式1下改变计数初值th0和tl0来产生不同频率。 对于音乐的节拍每个音符使用1个字节字节的高4位代表音符的高低低4位代表音符的节拍。如果1拍为0.4s1/4拍为0.1s只要设定延迟时间就可求得节拍的时间。假设1/4拍为1delay那么1拍应为4delay以此类推。所以只要求得1/4拍的delay,其余的节拍就是它的倍数。总而言之一首乐曲是由音阶和节拍两大要素构成。一首乐曲演奏的原理是不同音阶分别对应不同的频率发出不同的音调而节拍则控制发出音调时间的长短若将乐曲的音调连续发出并使其按相应的节拍变化即可演奏一首乐曲。根据这一特点我们采用单片机辅以相应的接口来设计音乐播放器。 音乐播放器的组成 根据系统音乐播放器的功能要求一个完整的音乐播放器电路相当于一个简单的单片机系统该系统由按键开关、单片机、led显示电路、扬声器控制电路4个方面构成。 51单片机。51单片机为整个系统的核心部分是带动整个系统工作的重要部件。 键盘输入。键盘输入用来控制输入指令发出指令至单片机使单片机按照指令工作。 扬声器。扬声器作为输出部分按照键盘给单片机的指令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论