基于--单片机控制数字音乐盒设计_第1页
基于--单片机控制数字音乐盒设计_第2页
基于--单片机控制数字音乐盒设计_第3页
基于--单片机控制数字音乐盒设计_第4页
基于--单片机控制数字音乐盒设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、-PAGE . z.本设计是基于单片机控制的数字音乐盒的设计,由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机数字音乐盒。假设该设计使用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比拟复杂,本钱也非常高。假设用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,则就降低了硬件电路的复杂性,而且其本钱也有所降低,所以在该设计中采用单片机利用AT89C51,它是低功耗、高性能的CMOS型8位单片机。片带有4KB的Flash存储器,且允许在系统改写或用编程器编程。另外, AT89

2、C51的指令系统和引脚与8051完全兼容,片有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。在该设计中利用单片机I/O口产生一定频率的方波,驱动蜂鸣器,发出各种不同的音调,从而演奏乐曲最少三首乐曲,每首不少于30秒,并能够由LCD显示信息。键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。本设计采用4*4键盘,16*2 LCD,七段显示数码管LED。在开机按钮按下时有英文欢送提示字符,播放时显示歌曲序号或名称。在演奏过程中可通过功能键选择乐曲,暂停,播放。目录TOC o 1-3 h z uHYPERLINK

3、l _Toc2174120041 概述 PAGEREF _Toc217412004 h 3HYPERLINK l _Toc2174120052 系统总体方案及硬件设计 PAGEREF _Toc217412005 h 5HYPERLINK l _Toc2174120062.1 系统构成 PAGEREF _Toc217412006 h 5HYPERLINK l _Toc2174120072.1.1 AT89C51单片机简介 PAGEREF _Toc217412007 h 5HYPERLINK l _Toc2174120212.1.2 LED显示器 PAGEREF _Toc217412021 h 7

4、HYPERLINK l _Toc2174120212.1.3 键盘 PAGEREF _Toc217412021 h 8HYPERLINK l _Toc2174120212.1.4 系统复位电路的设计 PAGEREF _Toc217412021 h 9HYPERLINK l _Toc2174120212.1.5 时钟电路模块 PAGEREF _Toc217412021 h 9HYPERLINK l _Toc2174120212.2硬件电路端口分配 PAGEREF _Toc217412021 h 10HYPERLINK l _Toc2174120213 软件设计 PAGEREF _Toc21741

5、2021 h 11HYPERLINK l _Toc2174120213.1 主模块的设计 PAGEREF _Toc217412021 h 11HYPERLINK l _Toc217412021 3.2 外部中断源系统设计 PAGEREF _Toc217412021 h 12HYPERLINK l _Toc2174120213.3 根本显示模块设计 PAGEREF _Toc217412021 h 13HYPERLINK l _Toc2174120213.4 系统初始化程序 PAGEREF _Toc217412021 h 13HYPERLINK l _Toc2174120214 Proteus软件

6、仿真 PAGEREF _Toc217412021 h 14HYPERLINK l _Toc2174120215课程设计体会 PAGEREF _Toc217412021 h 16HYPERLINK l _Toc217412021参考文献 PAGEREF _Toc217412021 h 17HYPERLINK l _Toc217412021附1:源程序代码 PAGEREF _Toc217412021 h 18HYPERLINK l _Toc217412022附2:系统原理图 PAGEREF _Toc217412022 h 281 概述本设计是基于单片机的数字音乐盒设计,由单片机AT89C51芯片和

7、LED数码管为核心,辅以必要的电路,构成的一个单片机电子数字音乐盒。要求利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调并采用LCD显示信息,从而演奏乐曲最少三首乐曲,每首不少于30秒,开机时有英文欢送提示字符,播放时显示歌曲序号或名称,可通过功能键选择乐曲,暂停,播放。本设计采用4*4键盘,16*2 LCD,七段显示数码管LED。课设准备中根据具体的要求,查找资料,然后按要求根据已学过的时钟程序编写定时闹钟的程序,依据程序利用proteus软件进展了仿真试验,对出现的问题进展分析和反复修改源程序,最终得到正确并符合要求的结果。2 系统总体方案及硬件设计2.1 系统构成2.1.1 A

8、T89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器寿命:1000写/擦循环数据保存时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位部RAM32可编程I/O线两个16位定时器/计数器5个中断源

9、可编程串行通道低功耗的闲置和掉电模式片振荡器和时钟电路 2管脚说明如图1: 图1VCC:供电电压。GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进展校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的

10、缘故。在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

11、个TTL门电流。当P3口写入1后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流ILL这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:管口管脚 备选功能P3.0 R*D串行输入口P3.1 T*D串行输出口P3.2 /INT0外部中断0P3.3 /INT1外部中断1P3.4 T0记时器0外部输入P3.5 T1记时器1外部输入P3.6 /WR外部数据存储器写选通P3.7 /RD外部数据存储器读选通P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PR

12、OG:当外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想制止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOV*,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE制止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在外部数据存储器时

13、,这两次有效的/PSEN信号将不出现。 /EA/VPP:/EA保持低电平时,在此期间外部程序存储器0000H-FFFFH,不管是否有部程序存储器。注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源VPP。 *TAL1:反向振荡放大器的输入及部时钟工作电路的输入。 *TAL2:来自反向振荡器的输出。3振荡器特性:*TAL1和*TAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片振荡器。石晶振荡和瓷振荡均可采用。如采用外部时钟源驱动器件,*TAL2应不接。有余输入至部时钟信号要通过一个二分频触发器,

14、因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的上下电平要求的宽度。4芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写1且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停顿工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的容并且冻结振荡器,制止所用其他芯片功能,直到下一个硬件复位为止。 LED显示器LEDLight Emitting Dio

15、de是发光二极管英文名称的缩写。LED显示器是由发光二极管构成的,所以在显示器前面冠以LED。LED显示器在单片机系统中的应用非常普遍。(1)LED显示器的构造: 常用的LED显示器为8段。每一个段对应1个发光二极管,这种显示器有共阳极和共阴极两种:共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。当*个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当*个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。为了使LED显示器显示不同的符号或数字,就要把不同段的发光二极管点亮,

16、这样就要为LED提供代码,因为这些代码可使LED相应的段发光,从而显示不同字型,因此该代码称为段码。7段发光二极管,再加上1个小数点位,共计8位。因此提供应LED显示器的段码正好是1B。各段与字节中各位对应关系如下列图2: 8段LED构造及外形代码位D7D6D5D4D3D2D1D0显示位dpgfEdcba 图2(2) LED显示器工作原理由N个LED显示块可以拼接成N位的LED显示器。如图是LED显示器的构造原理图3。N个LED显示器有N个位选线和8*N位 根段码线。段码线控制显示字符的字型,而位选线为各个LED显示块中各段的公共端,它控制该LED显示位的亮或暗。LED显示器有静态显示和动态显

17、示两种。 键盘键盘在单片机应用系统中能实现向单片机输入数据,传送命 图3令等功能,是人工干预单片机的主要手段。1键盘输入的特点键盘实质上是一级按键开关的集合。通常,键盘开关利用了机械触点的合、断作用。2按键确实认键的闭合与否,反映在行线输出电压上就呈现高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,通过对行线电平上下状态的检测,便可确认按键按下与否。为了确保CPU对一次按键动作只确认一次按键有效,必须消除抖动的影响。3如何消除按键的抖动采用软件来消除按键抖动的根本思想是:在一次检测到有键按下时,该键所对应的行线为低电平,执行一段延时10MS的子程序后,确认该行线电平是不否仍为低电平,

18、如果仍为低电平,则确认为该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时10MS的子程序后,检测该行线为高电平,说明按键确实已经松开。 系统复位电路的设计智能系统一般应有手动或上电复位电路。复位电路的实现通常有两种方式:RC复位电路和专用监控电路。前者实现简单,本钱低,但复位可靠性相对较低;后者本钱较高,但复位可靠性高,尤其是高可靠重复复位。对于复位要求高、并对电源电压进展监视的场合,大多采用这种方式。本次课程设计采用了上电按钮电平复位电路,如图四 图4 时钟电路模块时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的根底。在一个单片机应用系统中,时钟是保障系统正

19、常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。为到达振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,另外有两个22P的独石电容,两晶振引脚分别连到*TAL1和*TAL2振荡脉冲输入引脚。具体连接图如图5所示: 图52.2硬件电路端口分配(1)硬件电路中用P1.0-P1.7控制按键,其中P1.0-P1.3扫描行,P1.4-P1.7扫描列。 (2)用P0.0-P0.7,P2.0-P2.7控制LED,其中P0.0-P0.7控制七段a,b,c,d,e,f,g,用P2.0-P2.7为数码管位选信号。 (3)用,P2.0-P2.2作为LCD的RS,R

20、/W,E的控制信号。用P0.0-P0.7作为LCD的D0-D7的控制信号。 (4)用P3.7口控制蜂鸣器。 (5)电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。3 软件设计3.1 主模块的设计主模块是系统软件的主框架。构造化程序设计一般有自上而下和自下而上两种方式,自上而下法的核心就是主框架的构建。它的合理与否关系到程序最终的功能的多少和性能的好坏。本系统的主模块的程序框图如下列图6所示:主程序开场初始化变量及LCD接口初始化数字器T0,定时器T1LCD显示英文欢送字符等待按键,是否有按键.包括播放,暂停,停顿按键歌曲号及播放时间显示在LCD按照按键码播放对应的歌曲YN图 6

21、3.2 外部中断源系统设计在本设计中中断源是采用外部中断0方式,其入口地址是0003H。其中断响应级别最高。1定时器/计数器工作方式存放器TMOD用于选择定时器/计数器的工作方式和工作模式。其格式如下表一:TMODD7D6D5D4D3D2D1D0GATEM1M0GATEM1M0T1方式字段T0方式字段 表一下面对TMOD各位进展说明:门控位GATE工作方式选择位M1、M0M1M0工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,8位的常数自动重新装载的定时器/计数器11方式3,仅适用于T0 表二其中,在本设计中采用方式1的16位定时器/计数器。计数器模式和

22、定时器模式选择位=0,为定时器模式。=1,为计数模式。定时器/计数器控制存放器TCON,其格式如下:TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0ITO 表三其各位的功能如下:TF1、TF0计数溢出标志位当计数器溢出时,该位置1。TR1、TR0计数运行控制位3.3 根本显示模块设计根本显示模块设计的重点是由显示代码取得相应的段码,显示段码数据的并行发送,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代

23、替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进展时和分的校对,片选的灵活性好。程序流程如图7所示。将进制时分秒数据转化为显示代码关显示以免显示抖动通过串口将时分秒数据传入数码管翻开显示图 73.4 系统初始化程序-. zRS BIT P2.0;定义液晶显示端口标-. zRW BIT P2.1E BIT P2.2L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63HORG 0000HLJMP MAINORG 000BHLJMP TT0ORG 001BHLJMP

24、 T1INTORG 1000HMAIN: 液晶初始化MOV SP,*70H MOV P0,*01H ;清屏CALL ENABLEMOV P0,*38H ;8位,2行显示LCALL ENABLE-. z4 Proteus软件仿真本次课程设计所采用的程序调试软件为wave6000集成调试软件,所采用的仿真软件为protus 6 professional软件。本次试验的效果图如下所示:按键功能说明:1A:十首歌曲C:上一首歌曲D:下一首歌曲E:歌曲暂停F:开机画面开机时有英文欢送提示字符,播放时显示歌曲序号或名称可通过功能键选择乐曲,暂停,播放。选作容:显示乐曲播放时间或剩余时间.构造化软件程序的调

25、试一般可以将重点放在分模块调试上,统调是最后一环。软件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。本次课设,采用wave6000集成调试软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。仿真局部采用protus 6 professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。首先翻开protus 6 professional软件,在元件库中找到要选用的所有元件,然后进展原理图的绘制;绘制好后再选择wave6000已经编译好的*.he*文件,选择运行,观察显示结

26、果,根据显示的结果和课设的要求再修改程序,再运行查,直到满足要求。5课程设计体会单片机是一门应用性很强的学科,课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。虽然在做课程设计以前已经系统的把单片机课本认真的学习了一下,但是在刚拿到设计任务书时还是有点一头雾水,不知道该从哪里下手。令人欣慰的是经过一周的学习,虽然过程很艰辛,但是总算实现了定时闹钟的功能,所有的努力都很值得。这一周的大局部时间都在研究程序怎么处理,在这个过程中加深了我对汇编语言命令的应用,而且也更加了解到软硬件配套的重要性。在设计的过程中不仅稳固

27、了以前所学过的知识,加深了我对所学知识的理解,而且学到了很多在书本上所没有的知识。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。总之,通过这次课程设计不仅使我稳固了本课程所学的根本知识,还使我具有了撰写科研报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,一切的辛苦和困难都是值得的。参考文献 2 刚,周群.电子系统设计与实践.电子工业.2004:18-23 341-347 118-1223 何立民.单片机高级教程应用与设计.:航空航天大学,2000

28、年.53984 涂时亮,友德.单片微机控制技术.清华大学.1994:86-87 146-1475 融会贯穿 Protel99电路设计 弘道工作室 人民交通出版设,2000.6单片机原理及接口技术实验 朱定华 北方交通大学2002.11附1:源程序代码RS BIT P2.0;定义液晶显示端口标号 -. zRW BIT P2.1 E BIT P2.2;*L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H;*ORG 0000HLJMP MAINORG 000BHLJMP TT0ORG 001BHLJMP T

29、1INTORG 1000HMAIN: 液晶初始化MOV SP,*70H MOV P0,*01H ;清屏CALL ENABLEMOV P0,*38H ;8位,2行显示LCALL ENABLEMOV P0,*0FH ;屏显ON,光标ON,闪烁ONLCALL ENABLEMOV P0,*06H ;计数地址加1,显示幕ONLCALL ENABLE 存初始化LCALL INITIL KEY1:LCALL KEYLCALL MODD LJMP KEY1键盘扫描KEY:NOPNOPLCALL KSJNZ K1 有按键转到K1LCALL KAIJILCALL SOP*N:LJMP KEYK1:LCALL MO

30、DDLCALL MODDLCALL KSJNZ K2LJMP KEYK2:MOV R2,*0FEH ;读键盘MOV R4,*00HK3:MOV A,R2MOV P1,AMOV A,P1 ACC.4,L1为1跳转,第一行无按键MOV A,*00HLJMP LKL1: ACC.5,L2MOV A,*04HLJMP LKL2: ACC.6,L3MOV A,*08HLJMP LKL3: ACC.7,NE*T1MOV A,*0CHLK:ADD A,R4PUSH ACCK4:LCALL DELAY1 ;假设同时有其他按键,则等待LCALL KSJNZ K4MOV R3,*07H CLR AMOV R0,*

31、30HMOV R1,*31HMM1:MOV A,R1MOV R0,AINC R0INC R1DJNZ R3,MM1POP ACCMOV R0,A RETNE*T1:INC R4 ;列扫描MOV A,R2JNB ACC.3,N2LJMP N1N2:LJMP KEYN1:RL AMOV R2,ALJMP K3KS:MOV A,*0F0H ;判断P1口MOV P1,ANOPNOPMOV A,P1CPL AANL A,*0F0HRETDELAY1:SETB RS0DL:MOV R5,*0AHDL2:MOV R6,*63DL3:NOP NOPDJNZ R6,DL3DJNZ R5,DL2 CLR RS0

32、RET 30H-37H初值为零INITIL: MOV R3,*08HMOV R0,*30HM1:MOV R0,*00HINC R0DJNZ R3,M1 RETMODD: 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,*01

33、H,A11LCALL MODDMOV 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

34、 MODDMOV 52H,*HIGH 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

35、 52H,*HIGH TABLE70MOV 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,*H

36、IGH TABLE100MOV 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

37、WRITE2MOV A,*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 ENA

38、BLECALL WRITE2MOV 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 RSC

39、LR RWCLR ECALL DELAYSETB ERETDELAY: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:DBWEL HERE,0FEHTABLE2:DBDFF WB ,0FEHTABLE4:DB CAU,0FEHTABLE3:DB 30H,31H,32H,33h

40、DB 34H,35H,36H,37HDB 38h,39H,41H,42HDB 43H,44H,45H,46H播放歌曲程序MAIN0:MOV TMOD,*11HMOV IE,*8aH MOV TH1,*3cHMOV TL1,*0b0H lcall ksjnz TTM12 MOV 40H,*00HNE*T20:MOV A,40HMOV DPH,52HMOV DPL,53HMOVC A,A+DPTRMOV R2,AJZ STOPANL A,*0FHMOV R1,AMOV A,R2SWAP AANL A,*0FHJNZ SINGCLR TR0JMP W1SING:DEC AMOV 22H,ARL AM

41、OV DPTR,*TABLE00MOVC A,A+DPTRMOV TH0,AMOV 21H,AMOV A,22HRL AINC AMOVC A,A+DPTRMOV TL0,AMOV 20H,ASETB TR0SETB TR1W1:LCALL DELAY30INC 40HLCALL KS ;有键跳出JNZ STOPLJMP NE*T20STOP:CLR TR0CLR TR1LJMP MAIN0 TTM12:LCALL K2MOV A,37HCJNE A,*0EH,TTM13CLR TR1LCALL DELAY1TTM120:LCALL KSLCALL DELAY1JZ TTM120LCALL K

42、2MOV A,37HCJNE A,*0EH,TTM120SETB TR1LJMP NE*T20TTM13:CJNE A,*0CH,TTM14MOV A,52HINC AMOV 52H,AMOV A,53HINC AMOV 53H,AMOV A,36HINC AMOV 37H,ALJMP TTM2TTM14:CJNE A,*0DH,TTM2MOV A,52HDEC AMOV 52H,AMOV A,53HDEC AMOV 53H,AMOV A,36HDEC AMOV 37H,A TTM2:RET定时器中断子程序0TT0:PUSH ACCPUSH PSWMOV TL0,20HMOV TH0,21HC

43、PL P3.7POP PSWPOP ACCRETI定时器中断子程序1T1INT: MOV TH1, *3cHMOV TL1, *0b0HDJNZ L50MS,*4MOV L50MS,*20每秒种时钟刷新秒显示一次SECSET:MOV A,SECMOV B,*10DIV ABADD A,*30H MOV P0,*0CEH ;显示秒十位lCALL ENABLElCALL WRITE2MOV A,BADD A,*30HMOV P0,*0CFH ;显示秒个位lCALL ENABLElCALL WRITE2MOV A,SECINC AMOV SEC,A*RL A,*60*4:JNZ OUTMINSET:

44、MOV SEC,*00H MOV A,MININC AMOV MIN,A MOV B,*10DIV ABADD A,*30HMOV P0,*0CBH ;显示分十位lCALL ENABLElCALL WRITE2MOV A,BADD A,*30HMOV P0,*0CCH ;显示分个位lCALL ENABLElCALL WRITE2MOV A,MIN MOV B,*3MUL ABMOV B,*100DIV ABMOV R2,AMOV A,*10*CH A,BDIV ABMOV A,MIN*RL A,*60JNZ OUTHOUSET:MOV MIN,*00H MOV A,HOUMOV B,*10DI

45、V ABADD A,*30H ;将BCD吗转化为ASIIC码MOV P0,*0C8H ;显示小时十位CALL ENABLECALL WRITE2MOV A,BADD A,*30HMOV P0,*0C9H ;显示小时个位CALL ENABLECALL WRITE2MOV A,HOUINC AMOV HOU,A*RL A,*10JNZ OUTSJMP OVERFLOWOUT:RETIOVERFLOW:MOV L50MS,*20MOV L1MS,*00HMOV L250MS,*00HMOV SEC,*00HMOV MIN,*00HMOV HOU,*00HRETIDELAY30: MOV R7,*2W2:MOV R4,*125W3:MOV R3,*248DJNZ R3,$DJNZ R4,W3DJNZ R7,W2DJNZ R1,DELAY30RETTABLE00:DW 64580,64684,64777,64820DW 64898,64968,65030,64260DW 64400,64524,65058,63835,64021第一首精忠报国TABLE10: DB 66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22HDB 32H,52H,

温馨提示

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

评论

0/150

提交评论