基于单片机的语音报时系统论文_第1页
基于单片机的语音报时系统论文_第2页
基于单片机的语音报时系统论文_第3页
基于单片机的语音报时系统论文_第4页
基于单片机的语音报时系统论文_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的语音报时系统中文摘要本文主要介绍了利用凌阳科技公司的SPCE061A单片机作为主控制器设计的语音报时系统方案。结合SPCE061A强大的语音功能,语音报时、播报日期的功能。这是一种用新型凌阳单片机来实现的SPCE061A单片机作为控制器制作的语音报时系统。该方案充分利用单片机强大的编程、语音处理、以及中断,并且操作简单、易于修改,是理想的数字控制系统。本文首先简介凌阳单片机的发展,紧接着详细描述了凌阳单片机SPCE061A的组成原理及其功能。根据它的组成原理及其指令系统,设计了语音报时系统的软件部分,包括主程序,语音播放程序。此类单片机特别是在数字处理及语音处理方面有着明显的优越性,所以本次设计中采用凌阳SPCE061A单片机,它能够使所设计的产品更具智能化和先进性。关键词电子钟;SPCE061A;语音SCMPRODUCTIONUSINGDIGITALCLOCKABSTRACTTHISPAPERDESCRIBESTHEUSEOFSUNPLUSTECHNOLOGY,INCSPCE061ASCMASTHEMAINCONTROLLEROFDIGITALELECTRONICBELLPROGRAMMESUNPLUSSPLC501AUSEOFLCDMODULE,WITHSPCE061APOWERFULVOICEANDREALIZEDTHEGREGORIANCALENDAR,LUNARNEWYEAR,STOPWATCH,ALARMCLOCKANDVOICEBROADCAST,THEBROADCASTDATE,ANDOTHERFUNCTIONSTHISISANEWSUNPLUSMICROCONTROLLERTOACHIEVETHESPCE061ASCMASACONTROLLERANDLCDMODULESPLC501AADIGITALCLOCKTHEPROGRAMMEFULLUSEOFAPOWERFULMICROCONTROLLERPROGRAMMING,VOICEPROCESSING,ANDMULTIFUNCTIONINTERRUPTINPUT/OUTPUTANDSIMPLE,EASYTOMODIFY,ISTHEIDEALDIGITALCONTROLSYSTEMTHISPAPERFIRSTBRIEFSUNPLUSTHEDEVELOPMENTOFSCM,FOLLOWEDBYADETAILEDDESCRIPTIONOFTHECOMPOSITIONOFSUNPLUSSCMSPCE061APRINCIPLEANDFUNCTIONACCORDINGTOITSCOMPOSITIONANDITSCOMMANDSYSTEMTHEORYANDDESIGNOFDIGITALELECTRONICCLOCKCONTROLSYSTEMSOFTWARE,INCLUDINGTHEMAINPROGRAM,DISPLAY,VOICEPLAYERSCMESPECIALLYINSUCHDIGITALPROCESSINGANDVOICEPROCESSINGTHEREAREDISTINCTADVANTAGES,SOTHISDESIGNINTHEUSEOFSUNPLUSSPCE061ASCM,ITCANMAKETHEPRODUCTSMOREINTELLIGENTDESIGNANDADVANCEDKEYWORDCLOCK;SPCE061A;PRONUNCIATIONTIMEWATCH目录第一章前言111系统功能212基本参数213注意事项2第二章模块特性简介321SPCE061A单片机3211SPCE061A简介3212芯片特性422SPCE061A精简开发板523SPLC501A液晶模组624语音的设计及工作原理725系统总体方案介绍8第三章系统硬件设计1131SPCE061A最小系统1132电源模块1133音频输出模块1234液晶显示模块13341显示RAM区映射情况13342SPLC501驱动控制器芯片15第四章系统软件设计1741软件的结构1742各模块程序的说明18421概述18422主程序18423中断服务程序19424时间日期模块21425SPLC501液晶显示模组显示汉字22426常用功能函数介绍(用户API)24第五章操作步骤2851软件的操作步骤28511LCD汉字显示操作步骤28512程序烧入硬件操作步骤31513语音播放操作步骤3352操作界面34第六章结论37参考文献38致谢39附录一软件编写程序40附录二主要元器件清单48第一章前言20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。数字钟是采用数字电路实现对时、分、秒、数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播芯片自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到了广泛的应用。随着科技的发展,人们对电子产品的应用要求越来越高,数字电子钟不但可以显示当前的时间,而且可以显示日期、农历、以及星期等,给人们的生活带来了方便。另外数字钟还具备秒表和闹钟功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。本方案利用凌阳16位单片机SPCE061A作为主控芯片,充分利用SPCE061A精简开发板(简称61板)上面的三个按键,完成一个简易的数字系统数字电子钟。该数字钟可以将当前的日期和时间播报出来,以及调时功能,具有较强的可扩展性,满足了不同人的需要。该方案的主要功能是能通过SPCE061A的音频通道播报当前的日期和时间。61板上面的三个按键可以控制实现所有的功能,在播报日期和时间状态下按KEY1播报年、月、日,再按一下播报时、分长按KEY1键达到15秒,则进入日期时间调整模式,KEY2在调整模式下,使年、月、日、时、分、秒增加,KEY3在调整模式下,使年、月、日、时、分、秒减小。11系统功能本系统利用凌阳科技公司的SPCE061A单片机作为控制器。系统具有以下功能1可以语音播报日期和时间;2具有调整日期和时间功能;12基本参数1工作电压45V(3节干电池);2日期显示范围20012100年;3时间采用24小时制。13注意事项1请将61板上的J5跳线选择33V;2在安装电池时注意正负极,否则容易烧坏芯片;3在印制电路板上的焊接元器件前要认真对照原理图,仔细查看印制电路板,找到对应的元器件功能区;4在电源测试期间请勿将单片机芯片插入座中,以免电源部分有问题造成芯片烧坏。第二章模块特性简介该数字钟系统主要由SPCE061A精简开发板(简称61板)构成。系统通过61板上的三个按键控制扬声器播放语音。所以这里主要介绍SPCE061A精简开发板。21SPCE061A单片机211SPCE061A简介SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,具有易学易用且效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与汇编语言的互相调用,并且,提供了语音录放和语音识别的函数库,只要了解库函数的使用方法,就可以很容易完成语音录放,为软件开发提供了方便的条件。SPCE061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入/输出、通用异步串行接口、低电压监测和复位等电路,并且内置在线仿真电路ICE接口,使其能够快速地处理复杂的数字信号。SPCE061A片内还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(UNSPIDE),用户可以进行在线调试、仿真;而程序的下载(烧写)也是通过该接口完成。图1SPCE061A内部结构图212芯片特性16位NSP微处理器;工作电压内核工作电压VDD为3036VCPU,I/O口工作电压VDDH为VDD55VI/O;CPU时钟032MHZ49152MHZ;内置2K字SRAM;内置32K闪存ROM;可编程音频处理;晶体振荡器;系统处于备用状态下时钟处于停止状态;2个16位可编程定时器/计数器可自动预置初始计数值;2个10位DAC数模转换输出通道;32位通用可编程输入/输出端口;14个中断源可来自定时器A/B,时基,2个外部时钟源输入,键唤醒;具备触键唤醒的功能;使用凌阳音频编码SACM_S240方式24K位/秒,能容纳210秒的语音数据;锁相环PLL振荡器提供系统时钟信号;32768HZ实时时钟;7通道10位电压模数转换器ADC和单通道声音模数转换器;声音模数转换器输入通道内置麦克风放大器和自动增益控制AGC功能;具备串行设备接口;低电压复位LVR功和低电压监测LVD功能;内置在线仿真板ICE,INCIRCUITEMULATOR。22SPCE061A精简开发板SPCE061A精简开发板(简称61板),是以凌阳16位单片机SPCE061A为核心的精简开发仿真实验板,大小相当于一张扑克牌,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等,采用电池供电,方便学生随身携带使学生在掌握软件的同时,熟悉单片机硬件的设计制作,锻炼学生的动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会61板上有调试器接口(PROBE接口)以及下载线(EZ_PROBE)接口,分别可接凌阳科技的在线调试器、简易下载线,配合UNSPIDE,可方便地在板上实现程序的下载、在线仿真调试。61板上的主要功能模块如下1SPCE061A单片机最小系统外围电路模块;2电源输入模块;3音频电路(包含MIC输入、DAC音频功放输出)模块;4按键模块;5I/O端口接口模块;6调试、下载接口模块;图2为61板的实物图图261板实物图23语音的设计及工作原理本次设计的要求为整个系统在运行时能够根据要求及时的发出声音,以增加效果。为了配合设计要求,设计了语音模块。语音是SPCE061A的一大特点。应用SPCE061A可以方便的实现语音的录放,该芯片拥有8路10位精度的AD。其中1路AD为音频转化通道,并且内置自动增益电路。这为语音的录入提供方便的硬件条件。2路10位精度的DA,只需外接1个功放即可完成语音播放。一般都是用C语言作为主程序,用汇编语言编制各种模块,供主程序调用。凌阳音频格式常用的有3种,将压缩前的数据量比上压缩后的数据量即可以得到凌阳不同音频格式压缩比SACMA2000压缩比为81,8125,815;SACMS480压缩比为803,8045;SACMS240压缩比为8015;压缩比越大,存储空间越小,更加节省资源。25系统总体方案介绍电子钟的系统结构如图3,图4为电子钟功能结构图,61板作为整个系统的控制中心,负责控制键盘扫描;年、月、日、星期以及时间的计算;并根据按键值播报当前的日期或者时间。在声音的处理上主要采用凌阳科技的语音压缩格式,将需要播放的声音压缩存在SPR模组里面,然后通过61板将语音资源取出播放出来。本系统采用了语音的录入和输出播放。图3系统结构框图图4功能结构图用61板控制数字钟系统,使用了IOA口的IOA0IOA2位连接SPCE061A上的三个按键,另外使用了61板的语音输出模块;以及61板上的三个按键,电路连接如图5。第三章系统硬件设计31SPCE061A最小系统SPCE061A最小系统包括SPCE061A芯片及其外围的基本模块,其中外围的基本模块有晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等,如图7所示。图5SPCE061A最小系统32电源模块SPCE061A板采用3节5号电池进行供电,由J10接入,其中前后两组电容用来去耦滤波,使其供给芯片的电源更加干净平滑。为了获得标准的33伏电压,在电路上加入SPY0029三端稳压器和两个二极管,是为了防止误将电源接反造成不必要损失而设置的。在操作过程中千万不要将电源接反,因为反向电压超过一定值,二极管将会被损坏,达不到保护的目的。后面的零电阻及其电源分成不同的几路是为了减少电磁干扰设置的。图6是电源部分的电路,45V直流电压经过SPY0029后产生33V给整个系统供电。SPY0029是凌阳公司设计的电压调整IC,采用CMOS工艺。SPY0029具有静态电流低、驱动能力强、线性调整出色等特点。42图中的VDDH3为SPCE061A的I/O电平参考,接SPCE061A的51脚,这种接法使得I/O输出高电平为33V;VDDP为PLL锁相环电源,接SPCE061A的7脚;VDD和VDDA分别为数字电源与模拟电源,分别接SPCE061A的15脚和36脚;AVSS1是模拟地,接SPCE061A的24脚;VSS是数字地,接SPCE061A的38脚;AVSS2接音频输出电路的AVSS2。61板电源模块电路如图8,SPCE061A的内核供电为33V,而I/O端口可接33V5V,所以在电源模块(61板上)中有一个端口电平选择跳线,如图中的J5。本系统需要的端口高电平为33V,所以图8中的J5跳线需要跳到2和3上。图6电源模块33音频输出模块音频输出(D/A)部分的原理图如图7所示,可以直接听喇叭输出的声音。图中的SPY0030也是凌阳公司的产品。它的详细说明可以参见SPY0030DATASHEET。和LM386相比,SPY0030还具有下述优势,比如LM386工作电压需在4V以上,SPY0030仅需24V即可工作两颗电池即可工作;LM386输出功率100MW以下,SPY0030约700MW。芯片将声音处理后输出(J2),经SPY0030音频放大输出(J3)通过扬声器还原为声音。SPY0030A是凌阳公司开发的专门用于语音放大的芯片。SPY0030的输入电压的范围是2460伏,该电路中采用的电压是33伏。SPCE061A内置2路10位DAC,只需要外接功放电路即可完成语音的播放。图7音频输出电路图第四章系统软件设计41软件的结构下图中可以看出各文件之间的调用关系。图8软件结构数字钟主要还是软件实现的,数字钟的软件设计由以下程序构成1、MAINC实现系统的初始化、键盘扫描和语音播报;2、SYSTEMC包含工程中大部分的功能函数,包括时间和日期的调整等;3、KEYC键盘扫描文件,文件中定义了键盘扫描函数、延时函数、用来实现对键盘的扫描等功能、键盘扫描采用查询方式;4、ISRASM中断服务函数文件,实现语音解码以及时间、日期的修改;5、SPEAKC语音播报函数,实现语音播报日期、时间。42各模块程序的说明421概述由于凌阳SPCEA061A,使得外围电路变的更简单。制作好系统的硬件电路后,整个系统的主体任务主要落在了程序的编写上。SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,具有易学易用且效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与汇编语言的互相调用,并且,提供了语音录放和语音识别的函数库,只要了解库函数的使用方法,就可以很容易完成语音录放,为软件开发提供了方便的条件。此次系统采用了模块程序结构,模块程序结构包括了初始化,系统主程序模块,语音播放模块,显示模块。C语言属于高级语言,有着汇编语言无法比拟的优点,而SPCE061A开发系统抓住了这个关键,两者结合,充分发挥各自的优势。在用到语音的时候,一般都是用C语言作为主程序,用汇编语言编制各种模块,供主程序调用。本系统采用了这种编制方法使得相互调用非常简单。422主程序主程序流程如图9所示,在主程序中初始化了整个工程中用到的变量,初始化了液晶显示模块。开2HZ中断实现计时。在主程序中调用了键盘扫描程序,对IOA口的低三位进行扫描,如果有键按下,就把相应的键值存入到一个变量中,通过主程序来判断是哪个键按下,并执行相应的功能按KEY1播报年、月、日,再按一下播报时、分长按KEY1键达到15秒,则进入日期时间调整模式,KEY2在调整模式下,使年、月、日、时、分、秒增加,KEY3在调整模式下,使年、月、日、时、分、秒减小。图9主程序流程图423中断服务程序中断服务程序有三个一个是2HZ中断服务程序,用来计时;一个是1KHZ中断服务程序,用于秒表计时;另外一个是FIQ中断服务程序,用来播放语音。程序的流程分别如图10、图11、图12。图10IRQ5时基中断流程图另外一个是FIQ中断服务程序,用来播放语音。图11IRQ4时基中断流程图图12FIQ中断程序424时间日期模块时间日期程序模块的流程图如图13所示,该模块用到了2HZ的时基中断,用来实现计时,同时实现了日期的更新。图13时间日期模块流程图第五章操作步骤51软件的操作步骤511程序烧入硬件操作步骤步骤一根据图5数字钟连接示意图连接硬件,并连接好下载线。步骤二打开电池盒电源。步骤三启动UNSPIDE。打开数字钟应用实例程序(路径数字电子钟礼包参考源代码MONTHDAYCLOCKMONTHDAYCLOCKSP),编译、链接确认没有错误。如图14所示图14打开数字钟应用实例程序步骤四下载程序代码到61板上。步骤五下载成功后会有几秒钟的开机画面,随后会进入时间日期显示界面,初始时间设定为000000,日期为2006年8月1日。按KEY1播报年、月、日,再按一下播报时、分长按KEY1键达到15秒,则进入日期时间调整模式,KEY2在调整模式下,使年、月、日、时、分、秒增加,KEY3在调整模式下,使年、月、日、时、分、秒减小。具体操作流程图如图15图15具体操作流程图第六章结论SPCE061A芯片强大的语音处理功能,为本系统的设计提供了便利条件;32个可编程I/O口,使得扩展外围设备非常方便;CPU可工作在032MHZ49MHZ的主频范围,并且拥有丰富的中断源,使得系统在语音播放、数据显示等方面游刃有余,扩展性强。根据硬件的选择和电路的搭配进行了软件的设计和编程,在实现硬件功能时,我们曾遇到一些问题,在参阅了许多资料结合实际条件选择了一种全面和简单的数字钟系统,其次在焊接中和元器件的购买都是在胡老师的指导下购买的。在这次毕业设计中锻炼了我的分析能力、解决问题和动手能力。显然,这是一个比较简单的数字钟,在这个基础上,稍微改动,或者扩展其他模块可以设计出一个更加完善的数字钟系统。比如,扩展外部存储器可以增加铃声的数目、可以改变铃声的播放格式使铃声更加动听、增加掉电保护功能等等,以此来提高同学们的对单片机的兴趣。本次设计中,我从基础做起,做好每一个程序模块,在最后的硬件调试中,取得成功,实现了数字钟的基本功能,达到了我们预期的设计目的。系统实物照片如图16。图16系统实物照片参考文献1李全利,迟荣强单片机原理及接口技术M,北京高等教育出版社,200412黄智伟全国大学生电子设计竞赛系统设计M,北京北京航空航天大学出版社,200663黄智伟凌阳单片机课程设计指导M,北京北京航空航天大学出版社,2006114李广弟,朱月秀,王秀山单片机基础M,北京北京航空航天大学出版社,200175赵曙光,郭万有,杨颂华可编程逻辑器件原理开发与应用M,西安西安电子科技大学,20006候伯亨VHDL硬件描述语言与数字逻辑电路设计M,西安西安电子科技大学出版社,19997康华光模拟电子技术基础第四版M,武汉华中理工大学出版社,19998谭浩强C语言程序设计(第二版)M,北京清华大学出版社,19919陈小忠,黄宁单片机接口技术实用子程序M,北京北京人民邮电出版社,200510欧伟明,周春临,瞿遂春电子信息系统设计M,西安电子科技大学出版社,2005911贾立新,王涌电子系统设计与实践M,北京清华大学出版社,200712罗亚非凌阳16位单片机应用基础M,北京北京航空航天大学出版社,200313SPLC501A液晶显示模块产品说明书Z凌阳大学计划网站(WWWUNSPCOM)14雷思孝凌阳单片机原理及实用技术M,西安电子科技大学,2004附录一软件编写程序主程序/工程名称61_SPEECHCLOCK/功能描述61板程序示例具有语音播报功能的电子钟/使用61板上的三个按键控制报时和时间调整/KEY1按一下播报年、月、日,再按一下播报时、分/长按KEY1键达到15秒,则进入日期时间调整模式/KEY2在调整模式下,使年、月、日、时、分、秒增加/KEY3在调整模式下,使年、月、日、时、分、秒减小/涉及的库CMACRO1016LIB/SACMV26ELIB/组成文件MAINC,SOUNDC,CLOCKC,CLOCK_SPEECHC,CLOCK_ADJUSTC/KEYASM,HARDWAREASM,ISRASM/A2000H,SOUNDH,CLOCKH,CLOCK_SPEECHH,CLOCK_ADJUSTH,KEYH,SPCE061AH,/硬件连接61板自带的三个按键已经连接在IOA0IOA2上/维护记录2006830V10/文件名称MAINC/功能描述主程序/维护记录20060830V10/INCLUDE“SPCE061AH“INCLUDE“SOUNDH“INCLUDE“KEYH“INCLUDE“CLOCKH“INCLUDE“CLOCK_SPEECHH“INCLUDE“CLOCK_ADJUSTH“/语法格式INTMAINVOID/实现功能主函数/参数无/返回值无/INTMAINUNSIGNEDINTKEYCODEUNSIGNEDINTFLAG0KEY_INIT/初始化按键扫描程序CLOCK_START/初始化计时程序WHILE1KEYCODEKEY_GET/获取按键值SWITCHKEYCODECASEKEY_1/KEY1键,播放日期/时间IFFLAG0PLAYDATEFLAG1ELSEPLAYTIMEFLAG0BREAKCASEKEY_LONG_1/KEY1键长按,调整日期和时间ADJUSTBREAKDEFAULTBREAKP_WATCHDOG_CLEAR0X01/清看门狗P_SYSTEMCLOCK0X001F/进入睡眠模式子程序1/文件名称CLOCKC/功能描述计时模块,使用2HZ时基中断/维护记录20060830V10/INCLUDE“SPCE061AH“TYPEDEFSTRUCTSTR_CLOCK/定义时钟结构体UNSIGNEDINTYEARUNSIGNEDINTMONUNSIGNEDINTDAYUNSIGNEDINTHOURUNSIGNEDINTMINUNSIGNEDINTSECUNSIGNEDINTHALFSECCLOCKCLOCKCLOCK2006,1,1,0,0,0,0/时钟初始值2006年1月1日0点0分CONSTUNSIGNEDINTMONTH_DAY1231,28,31,30,31,30,31,31,30,31,30,31/每月包含的天数/语法格式VOIDCLOCK_ISRVOID/实现功能计时模块的2HZ中断服务程序,应在IRQ5_2HZ中断中调用/参数无/返回值无/VOIDCLOCK_ISRIFCLOCKHALFSEC0/05秒CLOCKHALFSEC1ELSECLOCKHALFSEC0CLOCKSEC1IFCLOCKSEC60/处理秒进位CLOCKSEC0CLOCKMIN1IFCLOCKMIN60/处理分进位CLOCKMIN0CLOCKHOUR1IFCLOCKHOUR24/处理小时进位CLOCKHOUR0CLOCKDAY1/处理天进位IFCLOCKDAYMONTH_DAYCLOCKMON1IFCLOCKMON2|CLOCKYEARCLOCKMON1IFCLOCKMON12/处理月进位CLOCKMON1CLOCKYEAR1/语法格式VOIDCLOCK_STARTVOID/实现功能开始计时/参数无/返回值无/VOIDCLOCK_STARTP_INT_CTRL_NEW|C_IRQ5_2HZ_ASM“IRQON“/语法格式UNSIGNEDINTCLOCK_GETYEAR/实现功能查询当前年/参数无/返回值当前年/UNSIGNEDINTCLOCK_GETYEARRETURNCLOCKYEAR/语法格式UNSIGNEDINTCLOCK_GETMONVOID/实现功能查询当前月/参数无/返回值当前月/UNSIGNEDINTCLOCK_GETMONRETURNCLOCKMON/语法格式UNSIGNEDINTCLOCK_GETDAYVOID/实现功能查询当前日/参数无/返回值当前日/UNSIGNEDINTCLOCK_GETDAYRETURNCLOCKDAY/语法格式UNSIGNEDINTCLOCK_GETHOURVOID/实现功能查询当前小时/参数无/返回值当前时/UNSIGNEDINTCLOCK_GETHOURRETURNCLOCKHOUR/语法格式UNSIGNEDINTCLOCK_GETMINVOID/实现功能查询当前分/参数无/返回值当前分/UNSIGNEDINTCLOCK_GETMINRETURNCLOCKMIN/语法格式UNSIGNEDINTCLOCK_GETSECVOID/实现功能查询当前秒/参数无/返回值当前秒/UNSIGNEDINTCLOCK_GETSECRETURNCLOCKSEC/语法格式VOIDCLOCK_SETYEARUNSIGNEDINTYEAR/实现功能设置年/参数YEAR年/返回值无/VOIDCLOCK_SETYEARUNSIGNEDINTYEARCLOCKYEARYEAR/语法格式VOIDCLOCK_SETMONUNSIGNEDINTMON/实现功能设置月/参数MON月/返回值无/VOIDCLOCK_SETMONUNSIGNEDINTMONCLOCKMONMON/语法格式VOIDCLOCK_SETDAYUNSIGNEDINTDAY/实现功能设置日/参数DAY日/返回值无/VOIDCLOCK_SETDAYUNSIGNEDINTDAYCLOCKDAYDAY/语法格式VOIDCLOCK_SETHOURUNSIGNEDINTHOUR/实现功能设置小时/参数HOUR时/返回值无/VOIDCLOCK_SETHOURUNSIGNEDINTHOURCLOCKHOURHOUR/语法格式VOIDCLOCK_SETMINUNSIGNEDINTMIN/实现功能设置分/参数MIN分/返回值无/VOIDCLOCK_SETMINUNSIGNEDINTMINCLOCKMINMIN/语法格式VOIDCLOCK_SETSECUNSIGNEDINTSEC/实现功能设置秒/参数SEC秒/返回值无/VOIDCLOCK_SETSECUNSIGNEDINTSECP_TIMEBASE_CLEAR0X01/时基计数器清零CLOCKSECSECCLOCKHALFSEC0/半秒计数清零子程序2/文件名称CLOCK_ADJUSTC/功能描述调整日期和时间的函数集/维护记录20060830V10/INCLUDE“SPCE061AH“INCLUDE“SOUNDH“INCLUDE“CLOCKH“INCLUDE“CLOCK_SPEECHH“INCLUDE“KEYH“/语法格式UNSIGNEDINTADJUSTYEARUNSIGNEDINTYEAR/实现功能调整年/参数YEAR调整前的年/返回值调整后的年/UNSIGNEDINTADJUSTYEARUNSIGNEDINTYEARUNSIGNEDINTKEYCODEUNSIGNEDINTTEMPYEARYEARPLAYYEARTEMPYEAR/播放当前年WHILE1P_WATCHDOG_CLEAR0X01KEYCODEKEY_GET/获取按键SWITCHKEYCODECASEKEY_1RETURNTEMPYEAR/按KEY1键返回调整后的年CASEKEY_2TEMPYEAR/按KEY2键,年数加1PLAYYEARTEMPYEARBREAKCASEKEY_3TEMPYEAR/按KEY3键,年数减1PLAYYEARTEMPYEARBREAKDEFAULTBREAK/语法格式UNSIGNEDINTADJUSTMONUNSIGNEDINTMON/实现功能调整月/参数MON调整前的月/返回值调整后的月/UNSIGNEDINTADJUSTMONUNSIGNEDINTMONUNSIGNEDINTKEYCODEUNSIGNEDINTTEMPMONMONPLAYMONTEMPMON/播报调整前的月WHILE1P_WATCHDOG_CLEAR0X01KEYCODEKEY_GETSWITCHKEYCODECASEKEY_1/KEY1,返回调整后的月RETURNTEMPMONCASEKEY_2TEMPMON/KEY2,月数加1,到12后回复为1IFTEMPMON12TEMPMON1PLAYMONTEMPMONBREAKCASEKEY_3TEMPMON/KEY3,月数减1,到1后变为12IFTEMPMONMONTH_DAYMON1/如果当前的日期已经超过调整后月的最大天数则日期置为1IFTEMPDAY29/处理闰年IFYEARELSETEMPDAY1PLAYDAYTEMPDAY/播放调整前日WHILE1P_WATCHDOG_CLEAR0X01KEYCODEKEY_GETSWITCHKEYCODECASEKEY_1RETURNTEMPDAY/KEY1,返回调整后日CASEKEY_2TEMPDAY/KEY2,日数加1,达到当月最大日之后回复为1IFTEMPDAYMONTH_DAYMON1IFTEMPDAY29/处理闰年IFYEARELSETEMPDAY1PLAYDAYTEMPDAYBREAKCASEKEY_3TEMPDAY/KEY3,日数减1,减到0时转为当月最大日IFTEMPDAY23TEMPHOUR0PLAYHOURTEMPHOURBREAKCASEKEY_3IFTEMPHOUR0TEMPHOUR23/KEY3,时数减1,到0后回复为23ELSETEMPHOURPLAYHOURTEMPHOURBREAKDEFAULTBREAK/语法格式UNSIGNEDINTADJUSTMINUNSIGNEDINTMIN/实现功能调整分/参数MIN调整前的分/返回值调整后的分/UNSIGNEDINTADJUSTMINUNSIGNEDINTMINUNSIGNEDINTKEYCODEUNSIGNEDINTTEMPMINMINPLAYNUMTEMPMIN/播报调整前的分钟数PLAYSNDS_FENWHILE1P_WATCHDOG_CLEAR0X01KEYCODEKEY_GETSWITCHKEYCODECASEKEY_1RETURNTEMPMIN/KEY1,返回调整后的分CASEKEY_2TEMPMIN/KEY2,分钟数加1,到59后变为0IFTEMPMIN59TEMPMIN0PLAYNUMTEMPMINPLAYSNDS_FENBREAKCASEKEY_3IFTEMPMIN0TEMPMIN59/KEY3,分钟数减1,到0后变为59ELSETEMPMINPLAYNUMTEMPMINPLAYSNDS_FENBREAKDEFAULTBREAK/语法格式UNSIGNEDINTADJUSTSECUNSIGNEDINTSEC/实现功能调整秒/参数SEC调整前的秒/返回值调整后的秒/UNSIGNEDINTADJUSTSECUNSIGNEDINTSECUNSIGNEDINTKEYCODEUNSIGNEDINTTEMPSECSECPLAYSECTEMPSEC/播报调整前的秒数WHILE1P_WATCHDOG_CLEAR0X01KEYCODEKEY_GETSWITCHKEYCODECASEKEY_1RETURNTEMPSEC/KEY1,返回调整后的秒CASEKEY_2TEMPSEC/KEY2,秒加1,到59后变为0IFTEMPSEC59TEMPSEC0PLAYSECTEMPSECBREAKCASEKEY_3IFTEMPSEC0TEMPSEC59/KEY3,秒减1,到0后变为59ELSETEMPSECPLAYSECTEMPSECBREAKDEFAULTBREAK/语法格式VOIDADJUSTVOID/实现功能调整日期时间/参数无/返回值无/VOIDADJUSTUNSIGNEDINTTEMPYEAR,TEMPMON,TEMPDAY,TEMPHOUR,TEMPMIN,TEMPSECTEMPYEARADJUSTYEARCLOCK_GETYEAR/调整年TEMPMONADJUSTMONCLOCK_GETMON/调整月TEMPDAYADJUSTDAYTEMPYEAR,TEMPMON,CLOCK_GETDAY/调整日TEMPHOURADJUSTHOURCLOCK_GETHOUR/调整时TEMPMINADJUSTMINCLOCK_GETMIN/调整分TEMPSECADJUSTSECCLOCK_GETSEC/调整秒CLOCK_SETYEARTEMPYEAR/保存调整后的日期时间CLOCK_SETMONTEMPMONCLOCK_SETDAYTEMPDAYCLOCK_SETHOURTEMPHOURCLOCK_SETMINTEMPMINCLOCK_SETSECTEMPSECPLAYSNDS_DING/播报调整后的日期时间PLAYYEARTEMPYEARPLAYMONTEMPMONPLAYDAYTEMPDAYPLAYHOURTEMPHOURPLAYMINTEMPMIN子程序3/文件名称CLOCK_SPEECHC/功能描述语音播报日期和时间的函数集/维护记录20060830V10/INCLUDE“CLOCKH“INCLUDE“SOUNDH“/语法格式VOIDPLAYNUMUNSIGNEDINTNUM/实现功能播放100以内的数字/参数NUM待播报的数字/返回值无/VOIDPLAYNUMUNSIGNEDINTNUMUNSIGNEDINTTEMPNUMNUMIFTEMPNUM0/数字为0则直接播报0PLAYSNDS_0ELSEIFTEMPNUM20PLAYSNDTEMPNUM/10/十位IFTEMPNUM10PLAYSNDS_10/“十“TEMPNUMTEMPNUM10IFTEMPNUM0PLAYSNDTEMPNUM/个位/语法格式VOIDPLAYYEARUNSIGNEDINTYEAR/实现功能播报年/参数YEAR待播报的年/返回值无/VOIDPLAYYEARUNSIGNEDINTYEARUNSIGNEDINTTEMPYEARYEARPLAYSNDTEMPYEAR/1000/千位TEMPYEARTEMPYEAR1000PLAYSNDTEMPYEAR/100/百位TEMPYEARTEMPYEAR100PLAYSNDTEMPYEAR/10/十位TEMPYEARTEMPYEAR10PLAYSNDTEMPYEAR/个位PLAYSNDS_NIAN/“年“/语法格式VOIDPLAYMONUNSIGNEDINTMON/实现功能播报月/参数MON待播报的月/返回值无/VOIDPLAYMONUNSIGNEDINTMONPLAYSNDMONPLAYSNDS_YUE/语法格式VOIDPLAYDAYUNSIGNEDINTDAY/实现功能播报日/参数DAY待播报的日/返回值无/VOIDPLAYDAYUNSIGNEDINTDAYPLAYNUMDAYPLAYSNDS_RI/语法格式VOIDPLAYHOURUNSIGNEDINTHOUR/实现功能播报小时/参数HOUR待播报的时/返回值无/VOIDPLAYHOURUNSIGNEDINTHOURIFHOUR12PLAYSNDHOUR12/12小时制ELSEPLAYSNDHOURPLAYSNDS_DIAN/“点“/语法格式VOIDPLAYMINUNSIGNEDINTMIN/实现功能播报分/参数MIN待播报的分/返回值无/VOIDPLAYMINUNSIGNEDINTMINIFMIN0PLAYSNDS_ZHENG/00分播报“整“ELSEPLAYNUMMIN/播报数字PLAYSNDS_FEN/“分“/语法格式VOIDPLAYSECUNSIGNEDINTSEC/实现功能播报秒/参数SEC待播报的秒/返回值无/VOIDPLAYSECUNSIGNEDINTSECPLAYNUMSECPLAYSNDS_MIAO/语法格式VOIDPLAYTIME/实现功能播报当前时间/参数无/返回值无/VOIDPLAYTIMEUNSIGNEDINTTEMPHOUR,TEMPMINTEMPHOURCLOCK_GETHOURTEMPMINCLOCK_GETMINPLAYSNDS_DINGPLAYSNDS_XZSKPLAYHOURTEMPHOURPLAYMINTEMPMIN/语法格式VOIDPLAYDATE/实现功能播报当前日期/参数无/返回值无/VOIDPLAYDATEUNSIGNEDINTTEMPYEAR,TEMPMON,TEMPDAYTEMPYEARCLOCK_GETYEARTEMPMONCLOCK_GETMONTEMPDAYCLOCK_GETDAYPLAYYEARTEMPYEARPLAYMONTEMPMONPLAYDAYTEMPDAY子程序4/文件名称ISRASM/功能描述中断服务程序/维护记录20060830V10/INCLUDESPCE061AINCINCLUDEA2000INCINCLUDEKEYINCPUBLIC_FIQ,_IRQ5,_IRQ6EXTERNAL_CLOCK_ISRTEXT/函数名称_FIQ/实现功能FIQ中断服务程序,用于语音播放/入口参数无/出口参数无/破坏寄存器无/_FIQPUSHR1,R5TOSPR1C_FIQ_TMAP_INT_CLEARR1CALLF_FIQ_SERVICE_SACM_A2000POPR1,R5FROMSPRETI/函数名称_IRQ5/实现功能IRQ5_2HZ中断服务程序,用于计时/入口参数无/出口参数无/破坏寄存器无/_IR

温馨提示

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

评论

0/150

提交评论