音乐播放器设计_第1页
音乐播放器设计_第2页
音乐播放器设计_第3页
音乐播放器设计_第4页
音乐播放器设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、 音乐播放器系统的设计与制作 课题名称:音乐播放器 专 业:电气自动化 班 级:XXXXXXXXXXXX 指导老师:XXXXXXXXXXX制作成员:XXXXXXXXXXXXX20XX年X月XX日 摘要 本设计是采用单片机为核心设计的数字音乐播放器。它可以实现音乐的播放,可以通过功能键来选择乐曲,播放或暂停,并且可以通过LCD屏幕显示正在播放的歌曲的序号,及乐曲播放时间,开机时有英文欢迎提示字符,本音乐播放器可以播放十首音乐。 主控芯片采用AT89S52,采用汇编语言进行编程,编程后利用KEIL C51来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能得以正常实现。

2、 本系统功能键有一个4×4的键盘组成,其中1号到A号键是歌曲序列号键,可以直接选择音乐;C号键选择当前播放音乐的上一首音乐,D号键选择当前播放音乐的下一首音乐,E号键使音乐暂停播放,F号键显示开机画面。 键盘采用动态扫描方式。每次扫描一行键盘,送此行低电平,读输入口的状态值,判断有没有键按下。若有键按下,根据读入口的值选择显示值并送至显示值寄存单元,判断键值,启动计数器T0,根据次值为偏移地址找到要选择的音乐的代码的首地址,根据代码产生一定频率的脉冲,驱动扬声器,放出音。同时启动定时器T1,计算音乐的播放的时间,并且启动LCD,在LCD上显示序号和播放时间。关键词: 智能化 实用化

3、单片机 音乐播放器前言 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐播放器可以给人们带来美好的回忆,提高人们的精神文化享受。传统的音乐播放器多是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计的音乐播放器是以单片机为核心元件的电子式音乐播放器,体积小,重量轻,能演奏和旋音乐,功能多,使用方便,可以批量生产,具有一定的商业价值。 本设计是基于单片机控制的数字音乐播放器的设计,由单片机AT89S52芯片和LCD1602液晶显示为核心,辅以必要的电路,构成的一个单片机数字音乐播放器。 市场上的音乐芯片有很多,种类也不同,根据音乐输出的特点我们将音乐电路分为以

4、下几类:单曲、复音、音乐带闪灯、唱歌;它们主要应用在做单一的音乐播放器上,如生日贺卡芯片是单曲芯片。上述在现实的制作工艺中,我们难以达到,再者音乐芯片大都是用来制作固定的音乐,在演奏中过于死板,有太大的局限性,难以达到用户的要求。所以本次设计我们采用了AT89S52单片机,通过烧写不同的程序,来实现多首不同音乐的更换。从而达到用户多视听的要求。若该设计使用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性

5、,而且其成本也有所降低,所以在该设计中采用单片机利用AT89S52,它是低功耗、高性能的CMOS型8位单片机。片内带有8KB的Flash存储器,且允许在系统内改写或用编程器编程。另外, AT89S52的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、3个16位定时计数器、8个中断源、全双工串行口等。适合于我们平时的学习和简单的制作,以及在特殊场合的高精度控制系统中。 在该设计中利用单片机I/O口产生一定频率的方波,驱动扬声器,发出各种不同的音调,从而演奏乐曲,并能够由LCD显示信息。键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主

6、要手段。本设计采用4*4键盘,LCD1602液晶显示。目录第一章 功能介绍51.1 功能特点51.2 原理说明5第二章 电路设计52.1 主要元器件的选择52.1.1 AT89S52 芯片简介5 2.1.2 LCD1602引脚图,引脚说明72.2 电子音乐播放器的组成8第三章 软件设计93.1 总体设计93.2 音调的确定113.3 定时器/计数器133.4 编码143.5 程序流程图14第四章 实物制作154.1 实物制作工具材料清单154.2 电路元器件清单164.3实物制作步骤164.4 布局图(实物图)17总 结18致 谢19参考文献20附录120附录221第1章 功能介绍1.1 功能

7、特点 本设计是一个基于AT89S52系列单片机的音乐播放器,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐播放器。该音乐播放器主要由按键电路、复位电路、时钟电路以及扬声器组成。本设计利用KEIL编程软件对音乐播放器源程序进行编程并调试。1.2 原理说明 当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动扬声器,放出乐曲。同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。1) 硬件电路中用P1.0-P1.7控制按键,其中P1.0-P1.3扫描行,P1.4-P1.7扫描列;2)用P2.0-P2.2作为LCD的RS、R/W

8、、E的控制信号;3)用P0.0-P0.7作为LCD的D0-D7的控制信号;4)用P3.7口控制扬声器;5)电路为12MHz晶振频率工作,起振电路中C1,C2均为30pf。 第二章 电路设计2.1 主要元器件的选择2.1.1 AT89S52 芯片简介 AT89S52是美国Atmel公司生产的低功耗、高性能CMOS 8位单片机,片内含8KB的可反复檫写的程序存储器和256B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89S52单片机可灵活应用于各种控制领域

9、。AT89S52单片机属于AT89S51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。1) 主要功能特性;· 兼容MCS51指令系统 · 8k可反复擦写(>1000次)Flash ROM· 32个双向I/O口 · 256x8bit内部RAM· 2个16位可编程定时/计数器中断 · 时钟频率0-24MHz· 2个串行中断 · 可编程UART串行通道· 2个外部中断源 · 6个中断源· 2个读写中断口线 · 3级加密位

10、83; 低功耗空闲和掉电模式 · 软件设置睡眠和唤醒功能2) 芯片封装与引脚功能; 电源: VCC - 芯片电源,接+5V; GND - 接地端; 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根。 ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ALE功能:用来锁存P0口送出的低8位地址 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD功能:在Vcc掉电情况下,接备用电源。 EA/Vp

11、p:内外ROM选择/片内EPROM编程电源。 EA功能:内外ROM选择端。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 I/O线 AT89S52共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。2.1.2 LCD1602引脚图,引脚说明1 引脚图:322 引脚说明: 1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线 VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中: 引脚符号功能说明1VSS一般接地2V

12、CC接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0低4位三态、 双向数据总线 0位(最低位)8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双向数据总线 2位10DB3低4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12D

13、B5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极寄存器选择控制表 RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0-DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据2.2 电子音乐播放器的组成(1) 单片机最小系统的设计;单片机的最小系统设计包括:时钟电路、复位电路、电源电路;(2) 功率放大电路设计; 功率放大电路由单片机P3.7 接口外接一个1K电阻和两个N

14、PN型三极管来驱动扬声器。其主要任务是输出大信号和大功率,对音频信号有效不失真的进行放大以推动扬声器发出声音。(3) 显示电路设计; 显示电路是有单片机的P0.0P0.7管脚外接8个470欧姆的电阻并联到LCD1602液晶显示屏上来实现显示功能;第三章 软件设计3.1 总体设计1. 主要模块设计; 主模块是系统软件的主框架。结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。它的合理与否关系到程序最终的功能的多少和性能的好坏。本系统的主模块的程序框图如下图所示;2. 基本模块设计; 基本显示模块设计的重点是由显示代码取得相应的段码,显示段码数据的并行发

15、送,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。 程序流程如图所示;3. 系统初始化程序设计;RS BIT P2.0;定义液晶显示端口标 RW BIT P2.1E BIT P2.2L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU

16、EQU 63HORG 0000HLJMP MAIN LJMP TT0ORG 001BHLJMP T1INTORG 1000HMAIN: 液晶初始化MOV SP,#70H MOV P0,#01H ;清屏CALL ENABLEMOV P0,#38H ;8位,2行显示LCALL ENABLEORG 000BH3.2 音调的确定 不同音高的乐音是用C、D、E、F、G、A、B来表示,这7个字母就是音乐的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的1、2、3、4、5、6、7,相当于汉字“都喏米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫“音调”,即Tone。把C、D、E、

17、F、G、A、B这一组音的距离分成12个等份,每一个等份叫一个“半音”。两个音之间的距离有两个“半音”,就叫“全音”。在钢琴等键盘乐器上,CD、DE、FG、GA、AB两音之间隔着一个黑键,他们之间的距离就是全音;EF、BC两音之间没有黑键相隔,它们之间的距离就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它们的左上角加上号或者b号的叫变化音。叫升记号,表示把音在原来的基础上升高半音,b叫降记音,表示在原来的基础上降低半音。例如高音DO的频率(1046Hz)刚好是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266 Hz)的一倍;同样的,高音R

18、E的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE频率(294 Hz)的一倍。1)要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。2)利用AT89S52的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产

19、生相应的停顿效果。3)例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每次技术956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系公式如下:N=Fi2FrN:计算值;Fi:内部计时一次为1us,故其频率为1MHz;其计数值的求法如下:T=65536-N=65536-Fi2Fr例如:设K=65536,F=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的计算值T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-50

20、0000/Fr低音DO的T=65536-500000/262=63627低音DO的T=65536-500000/523=64580低音DO的T=65536-500000/1047=65059C调各音符频率与计数值T的对照表如表3.1所示。表3.1 C调各音符频率与计数值T的对照表;低音频率T参数中音频率T参数高音频率T参数Do2621908229Do523956115Do10465757Do2771805217Do554903108Do11095454Re2941701204Re587852102Re11755151Re3111608193Re62280497Re12454848Mi33015

21、15182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa3701351162Fa74067681Fa14804141So3921276153So78463877So15683838So4151205145So83160272So16613636La4401136136La88056868La17603434La4641078129La93253664La18653232Si4941012121Si98850661Si197630303.3 定时器/计数器工作方式寄存器TMOD用于选择定时器/计数器的工作方式和工作模式。其格式如下表3

22、.2:TMODD7D6D5D4D3D2D1D0GATEM1M0GATEM1M0T1方式字段T0方式字段 表3.2下面表3.3对TMOD各位进行说明:门控位GATE工作方式选择位M1、M0M1M0工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,8位的常数自动重新装载的定时器/计数器11方式3,仅适用于T0 表3.3其中,在本设计中采用方式1的16位定时器/计数器。计数器模式和定时器模式选择位=0,为定时器模式。=1,为计数模式。定时器/计数器控制寄存器TCON,其格式如下表3.4:TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1

23、IE0ITO 表3.4其各位的功能如下:TF1、TF0计数溢出标志位当计数器溢出时,该位置1。TR1、TR0计数运行控制位3.4 编码 do re mi fa so la si分别编码为1-7,重音do编为8,重音re编为9,停顿编为0。播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。以0xff作为曲谱的结束标志。举例1:音调do,发音长度为两拍,即二分音符,将其编码为0x18。举例2:音调re,发音长度为半拍,即八分音符,将其编码为0x22歌曲播

24、放的设计。先将歌曲的简谱进行编码,储存在一个数据类型为unsigned char 的数组中。程序从数组中取出一个数,然后分离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作扬声器,得出相应的音调;接着分离出该数的低4位,得到延时时间,接着调用软件延时。表4.3 简谱对应的简谱码、T值、节拍数;简谱发音简谱码T值节拍码节拍数5低音SO16426011/4拍6低音LA26440022/4拍7低音TI36452433/4拍1中音DO46458041拍2中音RE56468451又1/4拍3中音MI66477761又1/2拍4中音FA76482082拍5中音SO864898A2又1/2拍6中

25、音LA964968C3拍7中音TIA65030F3又3/4拍1高音DOB650582高音REC651103高音MID651574高音FAE651785高音SOF652173.5 程序流程图本设计的程序流程如下:先从主程序开始,接着初始化变量及 LCD 接口,然后初始化方波发生器、晶振管,使 LCD 显示信息,就进入了开机状态,等待动作选择按键,包括播放键,暂停键,停止键,当然也可以选择返回;加入选择的是播放键,LCD 上就会1 -A现实歌曲编号,与此同时演奏相应的乐曲,此时,你可以按上一曲或下一曲键,使其演奏上一个或者先一个乐曲。 其流程图如下:第四章 实物制作4.1 实物制作工具材料清单1)

26、 :电烙铁一个 2) :松香若干3) :锡线若干4) :吸抢一个5) :拨线钳一把6) :导线若干7) :剪刀一把4.2 电路元器件清单元器件名称数量(个)AT89S52 芯片110K 电阻1470 电阻910uF 电解电容130pF 电容212MHZ 晶振1按键开关18欧扬声器1万能电路板1按钮17三极管NPN2发光二级管1LCD1602液晶屏14.3实物制作步骤1) :确定设计命题2) :查询有关设计命题电路及原理3) :实施电路仿真原理4) :网上订购电路元器件5) :确认电路元器件无误6) :在万能电路板上进行电路元器件布局7) :利用电烙铁进行电路元器件焊接8) :对焊接后的电路板进

27、行修剪9) :对单片机进行程序写入10) :进行实物调试4.4 布局图(实物图)正面;背面;总 结通过此次课程设计,让我进一步了解了对单片机的编程、电路的分析以及系统控制原理等专业知识的分析方法和解决实际问题的全面综合的锻炼。尤其是对编程方面有了进一步认识与掌握,通过查阅资料不断的总结和对比发现自己的不足。通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。在这次设计中,我们完成了一个基于单片机的音乐播

28、放器设计,尽管结果不是完美,但是努力了,获得了丰富的知识,和理论的仿学习。我从资料的收集中,掌握了很多单片机的知识,不过还是遇到很多的问题,在仿真的过程中。如发声元器件选择、功率放大电路等方面,用什么放大电路驱动发音,选择扬声器还是蜂鸣器这些问题,在经过的实验之后,达到这样的目的其实很简单,就用两只三级管和一个8欧的扬声器就可达到理想的效果。经过这次的设计是我们不断巩固和提高,并且让我对当今单片机的最新发展技术有所了解。在整个过程中,我学到了新知识,增长了见识。当然,通过本次设计,也发现了我在许多知识上的欠缺。通过毕业设计,我们不单单是完成了我们的设计题目,而且认识到了设计的方法和思路。在今后

29、的日子里,我仍然要不断地充实自己,争取在所学领域有所作为。 在这个过程中,有很多值得总结的地方。尤其在应用Proteus画图,以及在做实物过程中,都需要对细节性的东西比较清楚,返工的几率才会比较少。当准备调试板子的时候,一定要先认真的做好目视检查,检查在焊接的过程中是否有可见的短路和管脚搭锡等故障,检查是否有元器件型号放置错误,第一脚放置错误,漏装配等问题,然后用万用表测量各个电源到地的电阻,以检查是否有短路,这个好习惯可以避免贸然上电后损坏单板。调试的过程中要有平和的心态,遇见问题是非常正常的,要做的就是多做比较和分析,逐步的排除可能的原因,要坚信“凡事都是有办法解决的”和“问题出现一定有它

30、的原因”,这样最后一定能调试成功。 脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设计中最大的收益。我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助。 致 谢在这次毕业设计的整个过程中,虽然设计结果不是很完美,但是,在这整个毕业设计期间,使我学到了很多在这之前没有学到的知识、技能。也让我学到了怎样才能更好的与人合作。使我把整个大学期间所学到的知识进行了一个最后的总结和复习,也使我对所学的知识有了进一步的思考。也让我从另一个方面认识了我所学专业的重要性。可以说,在这长达一个学期的设计过程中,我是收获多多,这些都要感谢这次

31、设计过程中给予我帮助的每一个老师和同学。首先,应该感谢的是学院为我们提供了良好的设计环境,为我们提供了很方便的查询各种需要资料的环境。也为我们每一个学生的设计提供了很好的设计平台,并在整个设计过程中不断的督促我们完成我们的毕业设计。更应该感谢的是我的指导老师*,在极其繁忙的工作中还抽出大量的时间来为我们辅导,为我们的设计分配任务,提供了思路,解决我们在设计过程中遇到的各种困难,为我们的论文的编写提供了很好的思路和建议,并指引着我们朝着完美设计的方向发展。在此我要向老师致以最衷心的感谢。 总之,要感谢这次设计中给我帮助的所有同学和老师,有了他们的指导、帮助和鼓励,才使得我能在学校规定的时间内顺利

32、的完成这次的设计任务。也使我在这次的设计中成长了许多。参考文献151单片机应用开发案例精选王为青 邱文勋等编 人民邮政出版社,20072单片机基础李广第 朱月秀 王秀山编 北京航空航天大学出版社,20013单片机课程设计实例知道李光飞等编 北京航空航天大学出版社,20044电子技术房建东 高胜利编 内蒙古大学出版社,20045单片机实用系统设计技术房小翠 王金凤编 国防工业出版社,19996电子创新设计与实践王松武 于鑫 武思军编 国防工业出版社,20057单片微型计算机原理及应用张毅坤等 西安:西安电子科技大学出版社, 20058单片机课程设计实例指导北京航空航天出版社,20029单片机外围

33、电路设计 沙占有 王彦朋等编 电子工业出版社附录1十首歌的音乐播放器仿真电路图附录2以下是以下是十首歌音乐播放器的单片机控制源程序:RS BIT P2.0 ;定义液晶显示端口标号RW BIT P2.1E BIT P2.2;*L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H;*org 0000hljmp mainORG 000BHLJMP TT0ORG 001BHLJMP T1INTorg 1000hmain: ;-;液晶初始化MOV SP,#70H MOV P0,#01H ;清屏CALL ENABL

34、EMOV P0,#38H ;8位,2行显示lCALL ENABLEMOV P0FH ;屏显on,光标on,闪烁onlCALL ENABLEMOV P0,#06H ;计数地址加1,显示幕onlCALL ENABLE;-内存初始化lcall initil ;-key1:lcall keylcall modd ljmp key1;-键盘扫描key:nopnoplcall ksjnz k1 ;有按键转到K1lcall kaijilcall SOPxn:ljmp keyk1:lcall moddlcall moddlcall ksjnz k2ljmp keyk2:mov R2,#0feh ;读键盘mov

35、 R4#00hk3:mov A,R2mov P1,Amov A,P1JB ACC.4,L1 ;为1跳转,第一行无按键mov a,#00hljmp lkL1:jb acc.5,L2mov a,#04hljmp lkL2:jb acc.6,L3mov a,#08hljmp lkL3:jb acc.7,next1mov a,#0ch;-lk:add a,R4push acck4:lcall delay1 ;若同时有其他按键,则等待lcall ksjnz k4;-mov r3,#07h clr amov r0,#30hmov r1,#31hmm1:mov a,r1mov r0,ainc r0inc r

36、1djnz r3,mm1pop accmov r0,a RET;-next1:inc R4 ;-列扫描mov a,R2JNB acc.3,n2ljmp n1n2:ljmp keyn1:rl amov R2,aljmp k3;-ks:mov a,#0f0h ;判断P1口mov P1,anopnopmov a,P1cpl aanl a,#0f0hRET;-DELAY1:SETB RS0dl:mov R5,#0ahdl2:mov R6,#63dl3:nop nopdjnz R6,dl3djnz R5,dl2 CLR RS0 RET;- ;30H-37H初值为零;-initil: mov r3,#08

37、hmov r0,#30hm1:mov r0,#00hinc r0djnz r3,m1 RET;-;显示 ;-modd: MOV P0,#8EHlCALL ENABLE mov A,37Hmov DPTR,#TABLE3 MOVC A,A+DPTRlCALL WRITE2 RET;-;开机提示字;-kaiji:mov a,37hcjne a,#0fh,DFFMOV P0,#80H ;设光标地址 lCALL ENABLEMOV DPTR,#TABLE1;写数据lCALL WRITE1 DFF:RET;-;按键值播放歌曲;-SOP:mov a,37hcjne a,#01h,A11LCALL MODD

38、MOV 52H,#HIGH TABLE10MOV 53H,#LOW TABLE10LCALL INITILE2lcall MAIN0A11:CJNE A,#02H,A22LCALL MODDMOV 52H,#HIGH TABLE20MOV 53H,#LOW TABLE20 LCALL INITILE2 lcall MAIN0A22:CJNE A,#03H,A33LCALL MODDMOV 52H,#HIGH TABLE30MOV 53H,#LOW TABLE30 LCALL INITILE2 lcall MAIN0 A33:CJNE A,#04H,A44LCALL MODDMOV 52H,#H

39、IGH TABLE40MOV 53H,#LOW TABLE40 LCALL INITILE2 lcall MAIN0A44:CJNE A,#05H,A55LCALL MODDMOV 52H,#HIGH TABLE50MOV 53H,#LOW TABLE50 LCALL INITILE2 lcall MAIN0A55:CJNE A,#06H,A66LCALL MODDMOV 52H,#HIGH TABLE60MOV 53H,#LOW TABLE60 LCALL INITILE2 lcall MAIN0 A66:CJNE A,#07H,A77LCALL MODDMOV 52H,#HIGH TABL

40、E70MOV 53H,#LOW TABLE70 LCALL INITILE2 lcall MAIN0 A77:CJNE A,#08H,A88LCALL MODDMOV 52H,#HIGH TABLE80MOV 53H,#LOW TABLE80 LCALL INITILE2 lcall MAIN0A88:CJNE A,#09H,A99LCALL MODDMOV 52H,#HIGH TABLE90MOV 53H,#LOW TABLE90 LCALL INITILE2 lcall MAIN0 A99:CJNE A,#0AH,AAALCALL MODDMOV 52H,#HIGH TABLE100MOV

41、 53H,#LOW TABLE100 LCALL INITILE2 lcall MAIN0 AAA:RET ;*INITILE2:MOV L50MS,#20MOV L1MS,#00HMOV L250MS,#00HMOV SEC,#00HMOV MIN,#00HMOV HOU,#00HMOV A,HOUMOV B,#10DIV ABADD A,#30H ;将BCD吗转化为ASIIC码MOV P0,#0C8H ;显示小时十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H ;显示小时个位CALL ENABLECALL WRITE2MOV A,#

42、3AHMOV P0,#0DH ;显示冒号CALL ENABLECALL WRITE2MOV A,MINMOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;显示分十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;显示分个位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0CDH ;显示冒号CALL ENABLECALL WRITE2MOV A,SECMOV B,#10DIV ABADD A,#30H MOV P0,#0CEH ;显示秒十位CALL ENABLECALL WRITE

43、2MOV A,BADD A,#30HMOV P0,#0CFH ;显示秒个位CALL ENABLECALL WRITE2MOV P0,#0C0H ;设光标地址 CALL ENABLEMOV DPTR,#TABLE2;写数据CALL WRITE1 RET;*写指令ENABLE: CLR RSCLR RWCLR ELCALL DELAYSETB ERET;*写数据WRITE1:MOV R1,#00HA1:MOV A,R1MOVC A,A+DPTRCALL WRITE2INC R1CJNE A,#0FEH,A1 ;未到字符串末尾继续RETWRITE2:MOV P0,ASETB RSCLR RWCLR

44、ECALL DELAYSETB ERET;*DELAY:MOV R4,#05D1:MOV R5,#0FFHDJNZ R5,$DJNZ R4,D1RET ;-TAB:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0a1h,86h,8ehTAB1:db 89h,86h,0c7h,0c7h,0c0hTAB2:db 0c6h,88h,0c0hTABLE1:DB 'WELCOM HERE',0FEHTABLE2:DB 'DFF WB' ,0FEHTABLE4:DB 'CAU',

45、0FEHTABLE3:DB 30H,31H,32H,33h DB 34H,35H,36H,37HDB 38h,39H,41H,42HDB 43H,44H,45H,46H ;-;播放歌曲程序;-MAIN0:MOV TMOD,#11HMOV IE,#8aH ;MOV TH1,#3cH;MOV TL1,#0b0H lcall ksjnz TTM12 MOV 40H,#00H;-NEXT20:MOV A,40HMOV DPH,52HMOV DPL,53HMOVC A,A+DPTRMOV R2,AJZ STOPANL A,#0FHMOV R1,AMOV A,R2SWAP AANL A,#0FHJNZ SINGCLR TR0JMP W1;-

温馨提示

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

评论

0/150

提交评论