版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、专业:电气工程及其自动化 专业:电气工程及其自动化 学号:9210090214 Hebei Normal University of Science & Technology本科毕业设计(自然科学)题 目: 语音播报记事器 院(系、部): 机电科学与工程系 学 生 姓 名: 指 导 教 师: 职 称 2013 年 5 月 28日河北科技师范学院教务处制资料目录1.学术声明1-1 页2.河北科技师范学院本科毕业论文(设计)1-31 页3.河北科技师范学院本科毕业论文(设计)任务书1-2 页4.河北科技师范学院本科毕业论文(设计)开题报告1-3 页5.河北科技师范学院本科毕业论文(设计)中期检查表
2、1 页6.河北科技师范学院本科毕业论文(设计)答辩记录表1 页7.河北科技师范学院本科毕业论文(设计)成绩评定汇总表1 页8河北科技师范学院本科毕业论文(设计)工作总结1 页9其他反映研究成果的资料(如公开发表的论文复印件、效益证明等) 页河北科技师范学院本科毕业设计语音播报记事器专 业 名 称: 学 生 姓 名:学 生 学 号: 指 导 教 师: 2013 年 5 月 18 日河北科技师范学院教务处制摘 要本文主要介绍了由实时时钟RTC、提醒时间设置、语音录放控制、当前时间调整和LED译码及驱动模块、蜂鸣器控制、4位时钟型LED显示组成的语音播报记事器。主机是以Intel公司的8051单片机
3、为核心芯片,外接主要芯片包括语音芯片ISD1420和串行时钟芯片DS1302。能够实现显示当前时间、录制和播放语音信息、调整当前时间、设置闹钟时间并且在到闹钟时间后,能够以语音的形式进行提醒并以蜂鸣提示。最后详细地介绍了系统设计过程中各种模块的硬件设计和软件设计的实现过程,最终成功实现了语音播报、闹钟提醒蜂鸣、显示时间的基本功能。该设计的主要特点是:设计以语音播报的形式进行提醒,改变了以人们以前常用的无声的书本记录,这样可以及时提醒每日的行程,避免了迟到和耽误行程。并且这样的设计还能够显示和修改当前的年份、月份、星期,完全可以作为一般的钟表来使用,还有遇到闰年自动修正的功能,这样不仅便捷而且实
4、用功能得到加强。关键词:单片机;语音播报;时间调整AbstractThis article mainly introduced by the real-time clock RTC reminder time settings, voice recording control, time to adjust and LED decoder and driver module, buzzer control, four clock LED display consisting of voice broadcast Notepad. The host is based on Intels 8051
5、 core chip, the external chip ISD1420 voice chip and the serial clock chip DS1302. Aiming to achieve the current time, the recording and playback of voice messages, adjusting the current time, seting the alarm time and to the alarm time, the form of a voice reminded to Beeper. Finally, detailed desc
6、ription of the various modules in the system design process, hardware design and software design, implementation process, and ultimately successful voice broadcast, the alarm beep, display the basic functions of time.The design of the main features are: the design in the form of voice broadcast remi
7、nders, change to people previously silent books, records, a timely reminder of the trip on a daily basis to avoid late and delay the trip. And this design is also able to display and modify the current year, month, week, can as a general watch to use, as well as automatic leap year correction functi
8、on is encountered, so that not only convenient and practical function has been strengthened.Keywords: MCU;Voice broadcast;Time to adjust目 录 TOC o 1-3 h z u HYPERLINK l _Toc290283810 摘 要 HYPERLINK l _Toc290283811 Abstract HYPERLINK l _Toc290283812 1 绪论1 HYPERLINK l _Toc290283813 1.1 论文研究背景与意义 PAGEREF
9、 _Toc290283813 h 1 HYPERLINK l _Toc290283814 1.2 设计方案的提出1 HYPERLINK l _Toc290283815 1.2.1 设计要求1 HYPERLINK l _Toc290283816 1.2.2 设计思路2 HYPERLINK l _Toc290283817 1.3 系统设计2 HYPERLINK l _Toc290283818 1.3.1 系统设计框图2 HYPERLINK l _Toc290283820 2 系统方案论证3 HYPERLINK l _Toc290283816 2.1 ISD14203 HYPERLINK l _To
10、c290283816 2.2 DS13024 HYPERLINK l _Toc290283816 2.3 LED显示电路模块4 HYPERLINK l _Toc290283816 2.4 键盘设计5 HYPERLINK l _Toc290283816 2.5 蜂鸣器设计6 HYPERLINK l _Toc290283820 3 软件设计6 HYPERLINK l _Toc290283816 3.1 软件设计方案6 HYPERLINK l _Toc290283816 3.2 主程序设计6 HYPERLINK l _Toc290283823 结论8 HYPERLINK l _Toc29028382
11、4 致谢9 HYPERLINK l _Toc290283825 附录101 绪论 1.1 论文研究背景与意义随着时代的发展与进步,人们的生活节奏越来越快,竞争也越来越激烈。因此,合理安排时间,遵守时间,准时上课、上班、赴约、到会、洽谈等是每个人的迫切需要。对于现在的人来说,时间越来越重要,可以这样说吧,寸金难买寸光阴。但是,往往稍一疏忽又经常无人提醒,造成迟到或耽误行程,甚至产生严重的后果和经济损失。大部分的时候,我们都是通过看手表或者手机知道时间的,这是一个很经典的方法,但是现在有更时尚便捷的方法,比如有一台智能语音提示器,将各种约定时间记录下来,而且自动让我们知道我们想要知道的时间,按时进
12、行语音提醒,就可以避免迟到、缺席事件的发生,能在生活中抽出时间来,同时也给我们的工作和学习带来极大的方便。它不仅体积小,便于携带而且实用性更佳1。随着现代化技术的发展,有关专家分析指出,我国电子商务的基础设施将日臻完善,三网合一潮流势不可挡,高速宽带互联网将扮演越来越重要的角色,移动通讯将成为进行电子商务的主要媒介。而今,我们已经进入了数字时代,数字设备的使用将会越来越受欢迎。在这种瞬息万变的新形势下,全球的信息化使人们足不出户便可以获取全方位的知识和信息,与此同时人们的生活节奏也随之加快,竞争变得日趋激烈。因此,能够合理的安排和利用时间在日常的学习和工作中就显得尤为重要了。但是在充满压力的生
13、活中,往往很容易因一时的疏忽就耽误已安排好的事情造成迟到或其他延迟事件,甚至产生了严重的后果和经济损失。此时,若有一台智能语音记事器,将各种约定时间记录下来,按时进行语音提醒,就可以避免迟到、缺席事件的发生,从而给我们的工作和学习带来极大的方便2。本设计的目的在于通过本次设计能将学到的单片机理论知识应用于时间生产中,增强自己的社会实践能力,为将来在社会上更好的立足做充分的准备,同时在实践中学习更多的理论知识,继续深造。1.2 设计方案的提出1.2.1 设计要求以MSC-51系列单片机为核心器件组成一个语音提示系统。系统具有标准的日历/时钟,即年、月、日、星期、时、分、秒,遇闰年自动修正的功能。
14、系统显示器由4位数字型数码管组成。显示时间值和日期,常态下显示时间,利用一个按键控制显示日期。能够随时对当前时间进行调整。能够随时输入定时播报(闹钟)时间。定时播报(闹钟)时间到,发出语音提醒信号和蜂鸣器提示信号。 1.2.2 设计思路语音处理由ISD1420.74LS377与单片机相连实现,通过P0口与单片机连接3。系统的标准时间采用日历/时钟芯片DS1320实现,通过P2口与单片机连接4。时间显示使用4位LED数码管,接入P1口。LED数码管的段码输入,由并行端口P1低四位产生。LED数码管的位码输入,由并行端口P1高四位产生。同时本电路的LED显示还要通过74LS48芯片与单片机连接驱动
15、。时间调整与定时时间的输入由键盘电路控制。由5个按键控制,通过P3口与单片机连接。蜂鸣器由HA、三极管和上拉电阻组成的蜂鸣电路与单片机连接实现。1.3 系统设计1.3.1 系统设计框图实时时钟RTC实时时钟RTC提醒时间设置当前时间调整语音录放控制LED译码驱动模块4位时钟型LED显示实时时钟RTC蜂鸣器控制扬声器送话器单片机图1 系统设计框图本设计的语音播报系统采用8051单片机作为控制核心器件,具有可下载在线编程等功能容易操作,使用起来十分方便。 由B1、C8、C9组成系统工作时钟,由S1、R7、R8、C10组成系统复位电路。 系统语音处理模块由ISD1420、74LS377、HA1、MI
16、C1、R1-R6、R10和C1-C6、S2、R14、VD1、VD2组成模块,实现语音录入和语音播报功能。通过锁存器74LS377与单片机的P0口连接。 系统的时间模块由DS1302、B2、C11、C12和BAT1组成,产生系统的标准时间。DS1302内部具有事时时钟/日历和31B的静态RAM,给系统提供秒、分、时、日、月和年等信息,对小与31他的月末的日期进行调整,还包括闰年的校正功能。时钟的运行可选择24小时或带AM和PM的12小时格式。DS1302是一个串行接口芯片,既RST(复位线)、I/O(数据线)及SCLK(串行时钟线)通过P2口P2.0、P2.1、P2.2与单片机连接5。 采用4位
17、一体时钟型LED显示器,用与显示系统时间和一些提示信息。由74LS48、ULN2003、R15和DISP1组成时间显示模块,通过P1口与单片机连接6。 由5个独立式按键REC、SET、ALM、+1、RET,上拉电阻R13和中断扩展电路74LS08组成按键输入控制电路,与单片机的P3口的相应引脚连接,实现该系统的提示语音录入、定时时间设置和时间调整功能。 由蜂鸣器HA2、三极管VT1、R9、组成蜂鸣器控制电路,完成闹钟功能,通过编程可以实现时间到时发出蜂鸣的提示音7。系统电源由电源变压器T1(220V/9V)、桥式整流模块2W06、稳压模块7805以及C13-C16组成,提供系统所需的+5V电源
18、。2 系统方案论证2.1 ISD1420为实现语音播报的录入和播放功能,我们在此接入了ISD1420语音芯片,并采用锁存器74LS377对其控制锁存达到良好的语音信息的录制与播报。语音芯片ISD1420为单片语音记录、回放一体化芯片,记录时长为20s;可被划分为160小段,每段125ms。当REC脚为低电平时,进行录音,PLAYE或PLAYL为低时进行放音,ISD1420可进行连续录音,也可进行分段录音。语音芯片ISD1420的接入可以使语音播报应用系统工作时实现能够录入语音信息,能够对录入的语音信息进行播放两项基本功能。在单片机与ISD1420芯片中间连接一个锁存器,就解决了单片机与ISD1
19、420芯片在工作时存在工作时序上的不一致的问题8。在本设计中是用74LS377来做锁存器的。它的CLK端的信号由P2.6口来控制的。当P2.6端口产生上升沿脉冲时,74LS377将P0口送过来的地址锁存到74LS377的Q端,并等待语音芯片DS1420将该地址取走。其后芯片ISD1420便根据单片机传送给它的地址进行语音信息的录制与播报9。74LS377是一种8D触发器,它的/E端是控制端、CLK端是时钟端,当它的/E端为低电平时只要在CLK端产生一个正跳变,D1D7将被锁存到QOQ7端输出,在其他情况下Q0Q7端的输出保持不变10。模拟语音信号从MIC和MICREF两个端口输入,经放大器放大
20、后又从ANAOUT端输出,然后通过外接耦合电容输入到ANAIN端,该信号再经适当放大后就可被时钟信号采样存储到EPROM中。2.2 DS1302DS1302是一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿功能。表1 DS1302寄存器地址及命令字时钟/日历读操作写操作RAM读操作写操作秒81H80H第1个字节C1HC0H分 83H82H第2个字节C3HC2H小时85H84H日 87H86H月 89H88H星期 8BH8AH年 8DH8CH第30个字节FDHFCH控制寄存器 8FH8EH第31个字节FFHFEH2.3 LED显示电路模块L
21、ED显示器的驱动是一个非常重要的问题,由系统硬件设计框图可知,显示电路由LED显示器、段驱动电路和位驱动电路组成。由于单片机的并行口不能直接驱动LED显示器,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能够正常工作。如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏。因此,在实际使用中必须接入LED驱动电路。本设计采用的LED的输出接口是单片机的P1口,就是用P1口的低四位作LED的段码输出信号,P1口的高四位作LED位码的输出控制信号的13。电阻为可以保证LED可靠导通与截止的上拉电阻。74LS48的作用是接收来自单片机的BCD码型的输
22、入信号,经过锁存、译码和放大后,输出7段字型码到LED显示器,完成对BCD码到7段字型码的锁存、译码和驱动的功能。LED驱动电路的工作原理是:当P1口的低四位输出段码信号的BCD码后,通过74LS48芯片的锁存、译码和驱动作用,在其输出端输出具有一定驱动能力的七段字型码,由于4LED的段码输入引脚是并联在一起的,所以每一位LED的段码输入引脚都能获得这个段码信号。若要控制在每一时刻只有一位LED被点亮,必须靠位码信号控制。P1口的高4位输出位码信号,经ULN2003反向后接到LED的位码控制端,因此P1口的位码信号在每一时刻只有一位是“1”,其它位全为“0”,然后按时间顺序改变输出“1”的位置
23、,控制在每一时刻只有一位LED被点亮,达到动态显示的目的。LED的位驱动较常用的芯片是ULN2003,它具有7个达林顿电路的集成芯片。此种芯片集电极可以收集最大达500mA的电流,耐压为30V,能驱动常规的LED显示器。ULN2003的作用是接收来自单片机的位码输入信号,经过反相放大后输出,送到LED显示器位码引脚,完成对位码信号的反向和驱动的功能。2.4键盘设计将“1”键、“RET”键直接与单片机的P3.0与P3.1口连接;“SET”与“ALM”通过74LS08相与后连接到INT1口,“REC”与T0口通过74LS08相与后连接到INT0口,其中T0、T1口作为基本输入输出口使用。 “PLA
24、Y” 键与“REC”键的功能:这两键是用来控制语音信息的录音和放音的,在与“1”、“RET”键配合使用时可以对不同地址段进行的录音放音选择的。 “RET”键的功能:确认,即对“1”键调整位进行确认,该键按下时,说明被调整位的值已经修改完,转去调整下一位。 该引脚与P3.1引脚连接,使用在I/O接口方式,同样为了保证P3.1使用在输入方式在初始化程序中对它进行编程:SETB P3.1;即设置P3.1引脚作为输入口使用键盘的硬件电路设计只能保证六个按键信号的可靠进入,要想完成键盘的输入功能,还要靠软件编程来具体实现。“ALM”键与“SET”键的功能:“ALM”键设置时间而“SET”键则是调整当前时
25、间的,被调整值的修改和修改确认只要与“1”、“RET”键的配合使用就能完成。 按下“ALM”键时在单片机的INT1口产生一个中断, T1口为低电平,单片机就去执行设置闹钟时间的操作。按下“SET”键时,INT1口也产生一个中断, T1口为高电平,单片机就是执行对当前时间调整的操作。 INT1为服务程序的标号地址。 “1”键的功能:分别对时间值的小时十位、小时个位、分的十位、分的个位进行1调整,即该键每按下一次,对应的时间调整位1。该引脚与P3.0引脚连接,工作在I/O接口方式,为了保证P3.0工作在输入方式,在初始化程序中对它进行编程:SETB P3.0;P3.0引脚作为输入口使用。 “REC
26、”键是进行语音信息的录制。如果在单片机的INT0口产生一个中断,单片机先判断T0口是否是低电平,如果是,表明 “PLAY”键被按下了,就执行放音操作,如果不是,则表明按下的是“REC”键,程序转到录音操作。2.5 蜂鸣器设计本设计选择一只蜂鸣器来实现当预先规定的提醒时间到时有声音提醒信号产生。压电式蜂鸣器(HA)工作时约需要10mA的驱动电流,并设计一个相应的驱动及控制电路。 蜂鸣器(HA)作为三极管VT1的集电极负载,VT1用来控制蜂鸣器的发声与否。在单片机P2.7口通过限流电阻R9接入蜂鸣器(HA)作为三极管VT1的发射极负载,当P2.70时,VT1导通时,蜂鸣器中有电流通过,发出蜂鸣音。
27、反之蜂鸣器不发声。3 软件设计3.1 软件设计方案仅有这些硬件模块还达不到我们预期设计的目的,因此,我们要加入编程以实现电路设计的简洁优化,这其中包括系统对各组语音录放不同存放地址的设置及实现,对具体时间的规定和调整(如每星期的天数设定、每天的小时固定数字显示设定等),对记事器的定时中断等,从而达到预期的数据采集及传送的效果。根据设计要求,首选要确定软件设计方案,思考软件设计中应包括哪些功能,其次是规划为了完成这些功能需要分成多少个功能模块,以及每一个程序模块的具体任务是什么14。由于对每个模块进行划分时有很大的灵活性,但也不能随意划分。划分模块时应遵循下述原则:(1)每个模块应该具有独立的功
28、效,能产生一个明显的结果。(2)模块之间的控制参数应尽量简单,数据参数应尽量少。控制参数是模块进入和退出的条件及方式,数据参数是指模块间的信息交换方式、交换量的多少及交换的频繁程度。(3)长度适中。模块语句的长度通常在20100条比较适合。模块太长的时侯,会给分析和调试造成困难;模块太短则引起信息交换频繁,也不适合。(4)根据模块的划分原则,将该程序划分成五个模块。3.2 主程序设计 主程序的内容一般包括:主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序调用等等。(1)程序的起始地址MCS51系列单片机复位后,(PC)0000H,而0003H002BH分别为
29、各中断源的入口地址,所以,编程时应在0000H处写一跳转指令15。当CPU接收到中断请求信号予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入相应的中断服务程序入口处执行。一般应在相应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的起始地址进行编程。以/INT0为例,中断矢量地址为0003H,中断服务程序从INTA标号地址开始。(2)主程序的初始化内容对主程序初始化,其实是对将要用到的MCS51系列单片机内部部件或扩展芯片进行初始化,使其工作状态得到一个初始设定。如应对特殊功能寄存器IE、IP进行初始化,因为8051复位后,IE、IP中的内容均为00H,所
30、以应对其进行初始化编程,以开放CPU中断,允许某些其他中断源中断和设置中断优先级等。对于本设计,用T0、T1、INT0、INT1四个中断,其中:T0中断: T0定时中断,达到LED动态扫描的目的。T1中断: T1定时中断,达到每分钟从DS1302中读取当前时间的目的。INT0中断:接受外部中断信息,达到语音信息的录制与播报的目的。INT1中断:接受外部中断信息,达到对当前时间的调整和闹钟时间的设置的目的。(3)代码转换程序由于日常我们都是识别十进制数(BCD码),而计算机它只识别二进制数,因此,在程序设计中经常要涉及代码的转换。即将当前时间的二进制数转换成BCD码,并送到显示缓冲区最终显示出来
31、。 主程序主程序录放音当前时间定时时间显示LED显示定时一分钟中断键盘控制图2 软件设计框图(4)在主程序中进行各项初始化设置后,首先CPU会先查询当前有没有对闹钟设初值,如果有,就把此闹钟时间与当前时间相比较,看看是否到了闹钟所定的时间,如果到了,就进行语音提示,如果没有到,CPU就对P3.0口进行扫描,判断“1”键有没有按下,如果按下, 4LED就会显示当前的年份、月份、日期、星期、小时、分钟,满足人们的查询要求。结论语音提示在生活中的应用方便了人们的生活,保障了人们的生命和财产价值,人们是相当欢迎的,但是发展还有不够快,主要原因就是在智能化,微型化方向上的研究跟不上,这也与很多人的不重视
32、有关。在本论文中,本人按照“提出问题、分析问题、解决问题、总结问题”的写作思路,详细的阐述了语音播报系统的硬件、软件设计的全过程,并且从这些过程中分析提炼出了相关的技术难点以及相对应的解决思路,在完成这一切的同时,我从两个角度方面完成了所做的设计:其一,如何实现语音播报;其二,在完成既定功能的同时,如何开发出其它补充功能。在这过程中,我提炼出了具有普遍意义的类似开发过程的若干条准则。本论文的创新点就是将以前的无声记录提醒或蜂鸣提醒换成了形象的语音提醒,使提醒更加有效、及时、准确。本论文完成了软硬件主要功能模块的设计,为进一步设计开发及功能扩展打下了良好的基础。由于时间关系和自身的学术水平有限,
33、在设计中存在着一些缺陷和不足,还有待于在今后的进一步设计过程中不断完善。毕业设计是我大学四年来的总结,更是我走向社会一种新的生活的开始。虽然在本次的设计也暴露了我不少的缺点和不足,但是通过本次的设计,我提高了独立思考,独立解决问题的能力,同时也增强了自学能力。我认为本次设计不仅仅体现在设计的结果上,更重要的是设计过程中的那种精神,那种对新知识渴求的精神以及人与人之间的协作关系。参考文献 1 Rengang Chen;Strydom,J.T;Van Wyk,J.D. Design of plonar integrated passive module for zero-voltage-switc
34、hed asymmetrical half-bridge PWM converterJ. IEEE Transactions on Industry Applications the Industry of Electrical and Electronic Engineers.2002,(6):1112-1116.2 丁元杰.单片微机原理及应用M.第2版.机械工业出版社,2004:42893 周荷琴 吴秀青.微型计算机原理与接口技术M.第3版.中国科技大学出版社,2004:126155、263-3004 阎石.数字电子技术基础M.第4版.高等教育出版社,1998:150-1595 孙和平.单
35、片微机原理与接口技术M.冶金工业出版社,2002 6 沈红卫.单片机应用系统设计实例与分析M.北京航空大学出版社,20037 吴金戎.8051单片机实践与应用M.清华大学出版社,2002 8 李华.MCS51系列单片机实用接口技术M.北京航空航天大学出版社,19999 李朝表.单片机原理及接口技术M.北京航空航天大学出版社,200210 胡汉才.单片机原理及系统设计M.清华大学出版社,200211 公茂法.单片机人机接口实例集A.北京航空航天大学出版社,200212 余锡存.单片机接口及接口技术M.西安电子科技大学出版社,200013 马中梅.单片机的C语言程序设计M.北京航空航天大学出版社,
36、199914 肖红兵.跟我学用单片机M.北京航空航天大学出版社,200215 ZHANGShuyun,SUNJiangbei,HUOZhiming. The serial port communication of the computer and single chipJ. Chinese Science and Technology Information,2005 (10): 130-131.致谢本文的工作能得以顺利的完成完全离不开大家对我的关心和帮助,在此,谨向他们表示我最诚挚的感谢。首先由衷感谢我的指导老师刘金华老师,本文是在他的指导下完成的,导师严谨的治学作风和精益求精的治学态度给
37、我留下了深刻的印象。当我遇到问题的时候,他耐心的向我讲解,并且他工作认真,督促我们完成毕业设计。在此谨向我的指导老师致以深深的敬意和感谢!本人在四年的本科生学习期间,始终得到了机电科学与工程系所有的老师无微不至的关怀,是他们给了我许多帮助和指导使我能够在四年的时间里能够学有所成,同时本人的一些同学也在本人的学习过程中提出一些有益的建议和无私的帮助,在此也一并感谢!感谢支持过和关心过我的人们。毕业设计是一个艰苦的过程,同时也是一个学习的过程,通过它我涉足了许多未知领域,极大地拓宽了自己的知识面,为以后踏上工作岗位更好地学习和工作打下良好的基础。相信将来有一天,我将会以优秀的工作成绩来回报老师,回
38、报学校,回报社会。附录系统源程序: SCL EQU P2.0 DATA EQU P2.1 RST EQU P2.2 ORG 0000H LJMP MAIN ;转主程序 ORG 0003H ;外部中断0中断服务程序入口地址 LJMP INTA ;转外部中断0中断服务地址 ORG 000BH ;T0定时中断服务程序 LJMP T0SEV ORG 0013H ;外部中断1中断服务程序入口地址 LJMP INTB ;转外部中断1中断服务程序 ORG 001BH ;T1定时中断服务程序入口地址 LJMP T1SEV ;转T1中断服务程序 ORG 0030H ;设置主程序起始地址=0030HMAIN: M
39、OV SP, #60H ;设置堆栈指针 MOV R7, #10H ;系统初始化 MOV R0, #30H ;设置显示缓冲区 MOV A, #0 MOV R0, A INC R0 DJNZ R7, LOP MOV 35H, #01H ;设置上电后的初始和日期MOV 36H, #01H MOV 37H, #01H MOV 38H, #01H MOV 3CH, 33H MOV 3DH, 34H MOV 3EH, #01H MOV 44H, #10H ;LED位选择码 MOV 45H, #20H MOV 46H, #40H MOV 47H, #80H CLR RS1 CLR RS0 MOV R5, #
40、00H MOV R6, #00H MOV R7, #06H LCALL SET1302 ;DS1302时钟芯片初始化 SETB RS1 CLR RS0 ;选择工作寄存器2组 MOV R0, #4AH MOV TMOD, #10H ;设置T0 T1工作方式:定时器,工作方式1 MOV TH1, #3CH MOV TL1, #0B0H ;设置定时/计数器1初值 MOV TH0, #40H MOV TL0, #098H ;设置定时/计数器0初值 MOV IP, #08H ;定时/计数器1为优先级中断 MOV TCON, #40H ;启动定时器T1 MOV IE, #8DH ;定时/计数器1允许中断,
41、开中断 LOP: LCALL CHANGE ;当前时间送显示缓冲区 LCALL DISPLAY ;显示当前时间 SETB RS1 CLR RS0 MOV 3AH, R0 ;判断设置定时时间 INC R0 MOV 3BH, R0 MOV A, 3AH CJNE A, #0, NT MOV A, 3BH CJNE A, #0, NT NTM: INC R0 INC R0 CJNE R0, #59H, LOP MOV R0, #4AH SJMP BBX NT: MOV A, 3BH ;取当前时间与定时时间比较 CJNE A, 34H, NTM ;判断定时时间是否到 DEC R0 DEC R0 MOV
42、 39H, R0 INC R0 INC R0 INC R0 INC R0 CJNE R0, #59H, NT1 MOV R0, #4AH NT1: MOV A, 39H ;若定时时间到 CJNE A, #05H, BBXX LCALL YUYIN ;发出语音提示 CLR P2.7 ;启动蜂鸣器发出报警信号 SJMP LP0 BBX: SETB P2.7 SJMP LP0 BBXX: LCALL YUYIN SJMP LP0 LP0: JB P3.0, LP6 ;扫描键盘,判断切换显示日期按键有没有按下 LCALL DISPLAY JB P3.0, LP0 LP1: JNB P3.0, LP1
43、SETB P2.7 MOV 5EH, #06H LP1A: MOV 3CH, 35H MOV 3DH, 36H LCALL CHANGE LCALL DISPLAY ;切换显示日、月 LP1B: JB P3.0, LP1C LCALL DISPLAY JB P3.0, LP1B LP1D: JNB P3.0, LP1D SJMP LP2 LP1C: MOV A, 5EH CJNE A, #00H, LP1A LJMP FUZHI LP2: MOV 5EH, #06H LP3A: MOV 3CH, 38H MOV 3DH, #20H LCALL CHANGE LCALL DISPLAY ;切换显
44、示年份 LP3B: JB P3.0, LP3C LCALL DISPLAY JB P3.0, LP3B LP3D: JNB P3.0, LP3D SJMP LP4 LP3C: MOV A, 5EH CJNE A, #00H, LP3A LJMP FUZHI LP4: MOV 5EH, #06H LP5A: MOV 3CH, 37H MOV 3DH, #0BBH LCALL CHANGE LCALL DISPLAY ;切换显示星期 LP5B: JB P3.0, LP5C LCALL DISPLAY JB P3.0, LP5B LP5D: JNB P3.0, LP5D LJMP FUZHILP5C
45、: MOV A, 5EH CJNE A, #00H, LP5A LJMP FUZHI LP6: JB P3.1, LP6A SJMP LP6B LP6A: LJMP LOP LP6B: LCALL DISPLAY JB P3.0, LP6 LP7: LCALL DISPLAY JNB P3.0, LP7 SETB P2.7 MOV 3CH, 32H MOV 3DH, #0FFH LCALL CHANGE LCALL DISPLAY JB P3.1, LP7 LCALL DISPLAY JB P3.1, LP7 LP: LCALL DISPLAY JNB P3.1, LP8 FUZHI: MOV
46、 3CH, 33H MOV 3DH, 34H LJMP LOP CHANGE: MOV A, 3DH PUSH A ANL A, #0FH ;保留3DH单元中的低字节MOV 42H, A POP A SWAP A ANL A, #0FH ;保留3DH单元中的高字节 MOV 43H, A MOV A ,3CH PUSH A ANL A, #0FH ;保留3CH单元中的低字节 MOV 40H, A POP A SWAP A ANL A, #0FH ;保留3CH单元中的高字节 MOV 41H, A RET YUYIN: MOV A, 3FH CJNE A, #0, CC1 CLR P3.4 MOV
47、3FH, #01H CC1: RET ;4位LED动态扫描显示子程序 DISPLAY: SETB RS1 SETB RS0 ;选择工作寄存器3组 MOV R2, #04H ;显示指针 MOV R0, #40H MOV R1, #44H GOON: MOV A, R1 ADD A, R0 MOV P1, A LCALL DELAY1 INC R0 INC R1 DJNZ R2, GOON RET DELAY1:MOV R3, #14H AGAIN: MOV R4, #19H DELAY: DJNZ R4, DELAY DJNZ R3, AGAIN RET ;T1定时中断程序,定时1min中断一次
48、,读出当前时间 T1SEV: MOV TH1, #3CH MOV TL1, #0B0H CLR EA PUSH A ;恢复现场 PUSH B PUSH PSW CLR RS1 CLR RS0 INC R5 CJNE R5, #14H, EN MOV R5, #0 DEC 5EH MOV 30H, 33H LCALL RD1302 MOV A, 33H CJNE A, 30H, CLR3FH SJMP EN1 CLR3FH:MOV 3FH, #0 EN1: MOV 3CH, 33H MOV 3DH, 34H EN: POP PSW POP B POP A SETB EA RETI ;当前时间、定
49、时时间设置程序 INTB: SETB P3.0 SETB P3.1 CLR TR1 CLR ET1 CLR EX0 CLR EX1 SETB EA SETB ET0 SETB PT0 PUSH A ;保护现场 PUSH BPUSH PSW JB P3.5, TIME LJMP ALARM ;跳转到设置闹钟子程序 TIME: MOV 31H, #02H MOV 29H, 34H MOV 48H, #03H MOV 3CH, 33H MOV 3DH, 34H LCALL CHANGE LP0: JB P3.0, NEXT0 LCALL DISPLAY JB P3.0, LP0 LP1: LCALL
50、 DISPLAY JNB P3.0, LP1 MOV A, 29H ADD A, #01H DA A MOV 29H, A MOV A, 48H CJNE A, #03H, XX1 ;29H单元中的数是否为3 MOV 3DH, 34H MOV 3CH, 33H LCALL CHANGE LCALL DISPLAY LJMP LO1 XX1: CJNE A, #02H, XX2 ;对时,分值调整 MOV 3DH, 36HMOV 3CH, 35H LCALL CHANGE LCALL DISPLAY LJMP LO3 XX2: MOV 3DH, 38H ;对月,日值调整 MOV 3CH, 37H
51、LCALL CHANGE LCALL DISPLAY LJMP LO5 NEXT0: JNB P3.1, LF1 LJMP L1 LF1: LCALL DISPLAY JB P3.1, NEXT0 LD1: LCALL DISPLAY JNB P3.1, LD1 MOV A, 48H CJNE A, #03H, X1 MOV 3CH, 33H MOV 3DH, 34H LCALL CHANGE MOV 29H, 33H DJNZ 31H, LB1 DEC 48H MOV 31H, #02H MOV 29H, 36HMOV 3DH, 36H MOV 3CH, 35H LCALL CHANGE L
52、JMP L1 LB1: LJMP L1 X1: MOV A, 48H CJNE A, #02H, X2 MOV 3CH, 35H MOV 3DH, 36H LCALL CHANGE MOV 29H, 35H DJNZ 31H, LC1 DEC 48H MOV 31H, #02H MOV 29H, 38H MOV 3DH, 38H MOV 3CH, 37H LCALL CHANGE LJMP L1 LC1: LJMP L1 X2: MOV A, 48H CJNE A, #01H, X3 MOV 3CH, 37H MOV 3DH, 38H LCALL CHANGE MOV 29H, 37H DEC
53、 31H DEC 48H LJMP L1 X3: LJMP LL LO1: MOV A, 31H ;对年,星期值调整 CJNE A, #02H, LO2 MOV 3CH, 33H MOV A, 29H CJNE A, #24H, LA1 MOV 29H, #00H LA1: MOV 34H, 29H MOV 3DH, 34H LCALL CHANGE LJMP L1 LO2: MOV 3DH, 34H MOV A, 29H CJNE A, #60, LA2 MOV 29H, #0 LA2: MOV 33H, 29H ;小时修改子程序 MOV 3CH, 33H LCALL CHANGE LJMP
54、 L1 LO3: MOV A, 31H CJNE A, #02H, LO4 MOV 3CH, 35H MOV A, 29H CJNE A, #13, LA3 MOV 29H, #00H LA3: MOV 36H, 29H ;年修改子程序 MOV 3DH, 36H LCALL CHANGE LJMP L1 LO4: MOV A, 36H ;日期修改 MOV 3DH, 36H MOV A, 29H CJNE A, #30H, LA4 MOV 29H,#00H SJMP LA4 A1: MOV A, 29H CJNE A, 32H, LA4 MOV 29H, #00H LA4: MOV 35H, 2
55、9H MOV 3CH, 35H LCALL CHANGE LJMP L1 LO5: MOV A, 31H ;月,日值调整子程序 CJNE A, #02H, LO6 MOV 3CH, 37H MOV 38H, 29H MOV 3DH, 38H LCALL CHANGE LJMP L1 LO6: MOV A, 29H ;星期修改子程序 CJNE A, #08H, LA6 MOV 29H, #00H LA6: MOV 3DH, 38H MOV 37H, 29H MOV 3CH, 37H LCALL CHANGE L1: LCALL DISPLAY LJMP LP0 LL: MOV 32H, #00H
56、 LCALL SET1302 LJMP ET ;定时时间设置子程序 ALARM: SETB P3.5 MOV 39H, #01H LCALL SEARCH PP0: MOV 3CH, #0ABH LCALL CHANGE NEXTA: LCALL DISPLAY JB P3.1, NEXTA LCALL DISPLAY JB P3.1, NEXTA LD11B: LCALL DISPLAY JNB P3.1, LD11B LCALL SEARCH MOV 3DH, 3BHMOV 3CH, 3AH LCALL CHANGE MOV 31H, #02H MOV 29H, 3BH LP0B: JB
57、P3.0, NEXTB LCALL DISPLAY JB P3.0, LP0B LP1B: LCALL DISPLAY JNB P3.0, LP1B MOV A, 29H ADD A, #01H DA A MOV 29H, A SJMP LO1B NEXTB: LCALL DISPLAY JB P3.1, LQB LCALL DISPLAY JB P3.1, NEXTB LD1B: LCALL DISPLAY JNB P3.1, LD1B MOV 29H, 3AH DJNZ 31H, LO1B SJMP LLB LO1B: MOV A, 31H DJNE A, #02H, LO2B MOV A
58、, 29H CJNE A, #24H, LA1B ;闹钟小时时间是否为24 MOV 29H, #00H LA1B: MOV 3BH, 29H ;改变小时 MOV 3DH, 3BH LCALL CHANGE SJMP LQB LO2B: MOV A, 29H ;改变分钟 CJNE A, #60H, LA2B MOV 29H, #00H LA2B: MOV 3AH, 29H MOV 3CH, 3AH LCALL CHANGE L1B: MOV A, 31H CJNE A, #00H, LP0B LLB: LCALL WRIT INC 39H MOV A, 39H CJNE A, #6, PA0 S
59、JMP ET PA0: LJMP PP0 ET: POP PSW POP B POP A MOV TH1, #3CH MOV TL1, #0B0H SETB TR1 SETB ET1 SETB PT1 SETB EX0 SETB EX1 CLR TR0 CLR ET0 RETI WRIT: CLR RS1 SETB RS0 MOV A, 39H MOV B, #3 MUL AB ADD A, #46H MOV R1, A MOV R0, #39H MOV R2, #3 MORE: MOV A, R0 MOV R1, A INC R0 INC R1 DJNZ R2, MORE RET SEARC
60、H: CLR RS1 SETB RS0 MOV A, 39H MOV B, #3 MUL AB ADD A, #46H MOV R1, 0 MOV R0, #39H MOV R2, #2 INC R0 INC R1 MORE1: MOV A, R1 MOV R0, A INC R0 INC R1 DJNZ R2, MORE1 RET INTA: SETB P3.0 SETB P3.1 CLR TR1 CLR ET1 CLR EX0 CLR EX1 PUSH A PUSH B PUSH PSW JB P3.4, RECORD LJMP PLAY ;录音子程序 RECORD: MOV 3EH, #
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于9.18事件纪念日的国旗下讲话
- 手术室年终述职
- 华南理工大学《媒材艺术》2022-2023学年第一学期期末试卷
- 山东省淄博市桓台县2024-2025学年(五四学制)六年级上学期11月期中考试道德与法治试题含答案
- 服务规章制度管理【10篇】
- 甘肃省兰化某中学2024届高考语文押题试卷含解析
- 新中国医疗卫生成就
- 2024版商砼分销与代理合作协议3篇
- 职工纪律培训总结
- 2024年版本新建住宅装修验收详细合同
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 山东师范大学《文献学专题》期末考试复习题及参考答案
- 安全心理学智慧树知到答案章节测试2023年太原理工大学
- 山东省建筑工程施工许可现场踏勘记录表
- 白炭黑的应用(详细)
- 加筋土挡土墙工程图集[新版]
- 中国工业大类
- 最新人教版高中化学实验目录(修订版)
- 泵站自动化技术要求
- 钢筋混凝土工程施工方案(完整版)
- 锅炉检修规程(汽水系统检修)
评论
0/150
提交评论