语音播报记事器_第1页
语音播报记事器_第2页
语音播报记事器_第3页
语音播报记事器_第4页
语音播报记事器_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、毕毕业业设设计计(论论文文)题题 目目 语音播报记事器英文题目英文题目 the pronunciation disseminates the news record 学生姓名学生姓名 班班 级级 指导教师指导教师 专专 业业 自动化二 零 零 六 年 六 月摘要本设计以单片机为基础,能够完成对语音信息的录制、播放以达到对人们的提醒。其中包括整机硬件电路的设计和全部软件部分的设计。该语音播报系统由 led 显示电路模块、按键电路模块、蜂鸣电路模块、语音录放模块和串行时钟模块组成。主机是以 intel 公司的 8051 单片机为核心芯片,外接主要芯片包括语音芯片 isd1420 和串行时钟芯片 d

2、s1302。能够实现显示当前时间、录制和播放语音信息、调整当前时间、设置闹钟时间并且在到闹钟时间后,能够以语音的形式进行提醒并以蜂鸣提示。该设计的主要特点是:设计以语音的形式进行提醒,改变了以人们以单纯无声的书本记录,并且设计能够显示和修改当前的年份、月份、星期,完全可以作为一般的钟表来使用。此外,文章力求语言流畅、条理清晰、深入浅出,能为一般的读者所读懂。关键词单片机;语音信息;闹钟abstractthis design take the monolithic integrated circuit as a foundation, can complete to pronunciation

3、information transcribing,the broadcast by achieves to peoples reminder. including entire machine hardware electric circuit design and complete software partial designs.this pronunciation disseminates news the system by the led display circuit module, the pressed key electric circuit module, the buzz

4、ing electric circuit module, the pronunciation recording and sending out module and the serial clock module is composed. the main engine is take the intel corporations 8051 monolithic integrated circuits as the core chip, outside meets the main chip including pronunciation chip isd1420 and serial cl

5、ock chip ds1302. it can realize the demonstration current time, transcribing and the broadcast pronunciation information, the adjustment current time, the establishment alarm clock time and in after the alarm clock time, can carry on the reminder by the pronunciation form and prompt by the buzzing.t

6、his design main characteristic is: the design carries on the reminder by the pronunciation form, changed by the people by the pure silent books record, and designs can demonstrate and revise the current year, month, the week, definitely may take the common clock and watch uses. in addition, this art

7、icle makes every effort the language smoothly, orderliness is clear, explains the profound in simple language, can read for the common reader.key word single-chip microcomputer;information of pronunciation;alarm clock目录摘要绪论.11. 系统的性能指标及要求.21.2 语音播报记事器的功能及主要组成 .21.3 系统主要设计框图 .22. 系统硬件构成与实现.42.1 led 显

8、示模块设计.42.2 按键电路模块设计 .72.3 蜂鸣电路模块设计 .92.4 语音录放模块设计 .92.4.1 isd1420 芯片的介绍.92.4.2 isd1420 芯片与单片机的连接.102.5 串行时钟模块设计 .112.5.1 ds1302 芯片 的介绍.112.5.2 时钟芯片与单片机的硬件连接 .123. 系统软件的总体构成与实现.133.1 语音播报定时器系统软件设计方案及框图 .133.2 电子播报记事器的主程序设计 .144.1 录音与放音模块设计 .164.1.1 录音与放音选择模块设计 .164.1.3 放音模块设计 .174.1.4 录放音控制模块设计 .184.

9、2 当前时间的调整与闹钟的时间设置模块设计 .194.2.1 当前时间的调整与闹钟的时间设置选择模块设计 .194.2.2 调整当前时间程序设计 .204.2.3 闹钟设置子程序 .234.3 led 动态显示模块设计.244.4 产生一分钟时间模块设计 .264.5 键盘接收模块的设计 .28结论.30致 谢.31参考文献.32附录 1 .33附录 2 .52绪论 计算机的发展经历了从电子管、晶体管、集成电路、到大规模集成电路共 4 个发展阶段。微型计算机是大规模集成技术发展的直接产物,属于第四代计算机。随着微型机的研制成功,不久就出现了单片微型计算机,又称单片机或微控制器。它在一块芯片上集

10、成了中央处理器、只读存储器、随机存储器、定时/记数器以及 i/o接口电路等主要计算机部件。换言之,它就是把微型计算机所有的功能部件都集成在一块芯片上了,故国内常称其为单片机。由于单片机体积小、质量轻、功耗低、价格便宜、控制能力强、运行稳定可靠,自问世以来,在各领域得到了广泛的应用。尤其是在近几年的工业控制、自动检测、智能仪器仪表、家用电器等领域发挥着不可替代的作用,使它不断拓宽应用范围,增添了新的活力。随着电子技术的迅速发展,人类生活亦得到了根本性的改变。如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸张地说,单片机技术的出现则是给现代工业控领域带来了一次新的技术革命。在这种

11、瞬息万变的新形势下,全球的信息化使人们足不出户便可以获取全方位的知识和信息,与此同时人们的生活节奏也随之加快,竞争变得日趋激烈。因此,能够合理的安排和利用时间在日常的学习和工作中就显得尤为重要了。但是在充满压力的生活中,往往很容易因一时的疏忽就耽误已安排好的事情造成迟到或其他事件,甚至产生了严重的后果和经济损失。此时,若有一台智能语音记事器,将各种约定时间记录下来,按时进行语音提醒,就可以避免迟到、缺席事件的发生,从而给我们的工作和学习带来很大的方便。单片机技术的发展为这一设想提供了技术基础。在以 mcs51 系列单片机为核心器件组成的一个语音提示系统中,其所具有的标准日历、能够随时对当前时间

12、进行调整、随时输入定时播报(闹钟)时间等功能满足了人们的要求,使人们不再担心会忘记重要的约会。 1. 系统的性能指标及要求为了使人们在日常生活中不会忘记已安排好的日程,本设计语音播报记事器采用了主意提示的方法去提醒人们,满足了人们的要求。1.2 语音播报记事器的功能及主要组成在通常情况下,人们总是通过如下的方式提醒自己:将将要发生的事情记录下来,这种发法虽然有效,但到时又难免忘记;再者就是将将要发生的事情的时间刻录在电子表类的仪器上,等时间到时,仪器便以蜂鸣的形式进行提醒,但如果时间太久了,虽然知道了事情的时间,却又容易想不起是什么事情。所以本设计语音播报记时器将采用语音播报的形式对人们进行主

13、动提醒,不管时间有多久,它也能准确、及时地进行时间和语音播报的提醒。本系统以 8051 单片机为核心器件,以语音芯片 isd1420 和串行时钟 ds1302 芯片为辅助芯片,并通过一定的硬件电路连线,能够完成对语音的录制与播放,能够对当前时间进行调整各对提醒时间的设定,并且同时能以四位时钟 led 显示出来。有了这样的设计,相信人们在百忙的生活中就不会因一时的疏忽而耽误一些重大事宜。本设计具备了语音的录入和提示功能,改变了以往的无声书本的记录方法,当你有什么重要的事情而又担心忘记时,你就可以对其进行录音,并设置好提醒时间,到时,它就会将录音内容播报出来,并在最后进行蜂鸣提醒。除了具备电子记事

14、本的功能外,本系统也可以当作钟表来使用,因为它具有四位 led 数码管,可对当前时间进行显示,当时间发生差错时,还可以按照一定的方法进行调整,不会因时间无法调整而进行错误提醒。有了语音播报记事器,你也不用担心会出现在录制了一次事情后而没有办法再次录制的情况,因为本设计能够进行五组录音,当某件事情已过去时,可以将以前的语音信息覆盖,再次进行录音。此外,本系统对时间的设置是随意的,因为该设计具有标准的日历/时钟,即年、月、日、星期、时、分和秒,遇到闰年还可以自动修正。有了这样的设计,相信人们在百忙的生活中就不会因一时的疏忽而耽误一些重大事宜。1.3 系统主要设计框图根据设计要求与设计思路,本系统采

15、用单片机作为核心控制部件,采用可擦除、可分段语音处理芯片 isd1420 记录语言以及其他外围电路组成语音提示系统。系统由实时时钟、语音录放控制、当前时间调整、提醒时间设置、led 译码/驱动、时间显示和语音处理等模块组成。系统设计框图如图 11 所示:图 11 系统设计框图 仅有这些硬件模块还达不到我们预期设计的目的,因此,我们要加入编程以实现电路设计的简洁优化,这其中包括系统对各组语音录放不同存放地址的设置及实现,对具体时间的规定和调整(如每星期的天数设定、每天的小时固定数字显示设定等) ,对记事器的定时中断等,从而达到预期的数据采集及传送的效果。单片机实时时钟 rtc提醒时间设置当前时间

16、调整语音录放控制4 位时钟型led 显示led 译码/驱动模块语音处理模块蜂鸣器控制扬声器送话器2. 系统硬件构成与实现 在本章的硬件设计电路中,主要阐述了 led 显示电路模块、按键电路模块、蜂鸣电路模块、语音录放模块和串行时钟模块六个模块。其中介绍了模块中所用到的主要芯片、硬件连线电路原理和各模块所实现的功能。2.1 led 显示模块设计为实现单片机应用系统中的人机对话,即人对应用系统的状态干预、数据输入或应用系统向人们显示运行状态结果等,需加入显示器、键盘等外围设备,这就是用来完成人机对话活动的人机通道。在本系统的设计中,由系统硬件设计框图可知,这样的人机对话通道的显示电路由 led 显

17、示器、段驱动电路和位驱动电路组成。(1)led 显示器的介绍 e 1 d 2 dp 3 c 4 g 5 d4 6 b 7 d3 8 d2 9 f 10 a 11 d1 12 dp 图 21 4led 显示器引脚原理图如图 2-1 所示,本设计中采用 4 位一体的时钟型 led 显示器,简称“4led” ,“:”的前 2 位显示“小时”的十位和个位 , “:”的后 2 位显示“分”的十位和个位。从其引脚可知,它是一个共阴极接法的 4 位时钟型 led 显示器。4 位一体时钟型 led 显示器的内部结构如图 22 所示。它是由 4 个单独的 led 和一个“:” led组成,每个 led 的段输出

18、引脚在内部并联后,引出到器件的外部。 abc de f gdpabc de f gdpabc de f gdpabc de f gdpdpdpdpdpd1d2d3d4位位位位位位 位 位 位 位图 22 4led 显示器内部结构原理图(2)led 的段驱动芯片的介绍在本设计中,可以选择 74ls48 作为段驱动电路。该芯片具有锁存、译码、驱动的功能。即在输入端输入要显示字型的 bcd 码,在输出端就可以得到具有一定驱动能力的 7 段显示字型码。图 23 给出了 74ls48 的引脚图。引脚图中大写字母 a、b、c、d 为 bcd 码的输入端,小写字母 a、b、c、d、e、f、g 为字型码输出端

19、。表 21 给出了 74ls48bcd段锁存/译码/驱动器的输入与输出信号的对应关系, 74ls48 的作用是接收来自3单片机的 bcd 码型的输入信号,经过锁存、译码和放大后,输出 7 段字型码到 led显示器,完成对 bcd 码到 7 段字型码的锁存、译码和驱动的功能。b1c2lt3bi/rbo4rbi5d6a7vss8e9d10c11b12a13g14f15vdd16图 23 74ls48 芯片引脚图表 21 74ls48bcd7 段码器输入/输出端信号对照表(3)led 的位驱动芯片的介绍本设计中采用的 led 位驱动芯片是 uln2003,其引脚图如图 24 所示,其中in1in7

20、引脚是输入端,out1out7 引脚是输出端。该芯片的输入端引脚in1、in2、in3 、in4 与单片机的 p1 口连接,输出端引脚 out1、out2、out3、out4与 led 显示器的 4 个位码引脚 d1d4 相连接。uln2003 接收来自单片机的位码输入信号,经过反相放大后输出,送到 led 显示器位码引脚,完成对位码信号的反向和驱动。in11in22in33in44in55in66in77comm89out710out611out512out413out314out215out116图 24 uln2003 芯片的引脚图(4)led 驱动电路与单片机的连接单片机的 p1 口作

21、为 led 的输出接口,其低四位作为 led 的段码输出信号,高四位作为 led 位码的输出控制信号。硬件电路连接如图 25 所示。驱动中的上拉电 1 阻保证了 led 的可靠导通与截止。输入端电平输出端电平输入端电平输出端电平dcbag f e d c b a显示字型dcbag f e d c b a显示字型00000111111(3fh)001011101011(6dh)500010000110(06h)101101111011(7dh)600101011011(5bh)201110000111(07h)700111001111(4fh)310001111111(7fh)801001100

22、110(66h)410011101111(6fh)9p101p112p123p134p145p156p167p178rest9rxd10txd11int012int113t014t115x218x119ea/vp31wr16rd17psen29ale/p30p2021p2122p2223p2324p2425p2526p2627p2728p0039p0138p0237p0336p0435p0534p0633p07328051u1p10p11p12p13p14p15p16p17rbi5bi/rbo4lt3e9d10c11b12a13g14f15d6c2b1a7r474ls48in11in22in3

23、3in44in55in66in77out115out214out313out412out511out610out79u7uln2003p10p11p12p13p14p15p16p17a11b7c4d2e1f10g5p3d112d29d38d46disp1r151kvcc9012vt2r12100r1120vccp15图 25led 驱动电路与单片机的连接 驱动电路的工作原理为:当 p1 口的低四位输出段码信号的 bcd 码后,通过74ls48 芯片的锁存、译码和驱动,在其输出端输出具有一定驱动能力的七段字型码,并通过 uln2003 的反向后驱动达到明确有序的动态显示的目的。p1 口的控制信号

24、及4led 的显示状态如表 22 所示。表 22 4led 动态扫描显示状态p1 口输出控制字点亮顺序位码 段码74ls48 输出段码g f e d c b a2003 输出位码d1 d2 d3 d4110000000b(80h)0111111b(3fh)0111201000001b(41h)0000110b(06h)1011300100010b(22h)1011011b(5bh)1101400010011b(13h)1001111b(4fh)1110由于 74ls48 是 bcd 码 7 段译码器,对小数点位没有驱动作用,因此,必须给4led 显示器中的“:”符号设计一个驱动电路。dp(“:

25、”)的驱动电路由vt2、r11、r12 器件组成,该电路的工作原理是:当 vt2 的基极为低电平时,vt2 导通,dp 段被点亮。即“:”与 led 数码管的第二位一起被点亮;当 vt2 的基极为高电平时,vt2 截止,dp 段熄灭。2.2 按键电路模块设计本设计应用系统工作时应具备两项基本功能,一是随时输入定时(闹钟)时间,二是随时对当前时间进行调整。要实现这两项功能,可以接入键盘输入电路。(1)键盘结构的介绍在本设计中选择的独立式键盘为五个按键,如图 26 所示,电路由按键和六个电阻组成,按键分别命名为“play” 、 “rec” 、 “set” 、 “alm” 、 “1” 、 “ret”

26、键。(2)键盘与单片机的接口电路设计如图 26 所示,将“1”键、 “ret”键直接与单片机的 p3.0 与 p3.1 口连接;“set”与“alm”通过 74ls08 相与后连接到 int1 口, “rec”与 t0 口通过 74ls08相与后连接到 int0 口,其中 t0、t1 口作为基本输入输出口使用。p101p112p123p134p145p156p167p178rest9rxd10txd11int012int113t014t115x218x119ea/vp31wr16rd17psen29ale /p30p2021p2122p2223p2324p2425p2526p2627p2728

27、p0039p0138p0237p0336p0435p0534p0633p07328051u1vccb112khzc922pfc822pf74ls0874ls08123456recs3se ts4alms5+1s6rets7p20p21p22r8200s2rstr71ks1pl ay位c1022ufp20p21p22r131kvcc图 26 按键与单片机的硬件连接“play”键所实现的功能是进行语音信息的播放, “rec”键是进行语音信息的录制。如果在单片机的 int0 口产生一个中断,单片机先判断 t0 口是否是低电平,如果是,表明 “play”键被按下了,就执行放音操作,如果不是,则表明按下

28、的是“rec”键,程序转到录音操作。这两键可与“1” 、 “ret”键的配合使用对进行不同地址段的录放、音选择。 “1”键用来选择录音的段数, “ret”用来确认录、放音段已完成。“alm”键所实现的功能是进行闹钟时间的设置, “set”键则是对当前时间进行调整。如果在单片机的 int0 口产生一个中断,单片机先判断 t1 口是否是低电平,如果是,表明“alm”键被按下了,单片机就去执行设置闹钟时间的操作,如果不是,表明按下的是“set”键,则单片机就是执行对当前时间调整的操作。这两键可与“1” 、 “ret”键同时完成各自的功能, “1”键用来对调整位进行加 1 操作,“ret”用来确认调整

29、位已修改完。键盘的硬件电路设计只能保证六个按键信号的可靠进入,要想完成键盘的输入功能,还要靠软件编程来具体实现。设置当前时间和闹钟时间的中断服务程序,请参考软件设计一节 inta、intb 子程序设计。2.3 蜂鸣电路模块设计本设计中选择了蜂鸣器来实现定时(闹钟)时间的声音提醒,其电路如图 27所示,在单片机 p2.7 口通过限流电阻 r9 接入蜂鸣器(ha)作为三极管 vt1 的发射极负载,当 p2.70 时,vt1 导通时,蜂鸣器中有电流通过,发出蜂鸣音。反之蜂鸣器不发声。p101p112p123p134p145p156p167p178rest9rxd10txd11int012int113

30、t014t115x218x119ea/vp31wr16rd17psen29ale/p30p2021p2122p2223p2324p2425p2526p2627p2728p0039p0138p0237p0336p0435p0534p0633p07328051u1r9100vccha2gnd9012vt1图 27 蜂鸣电路原理图2.4 语音录放模块设计 在本设计中选用了 isd1420 作为系统的语音芯片,在确保语音质量好的情况下使其元器件达到最少。2.4.1 isd1420 芯片的介绍isd1420 语音录放电路芯片由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组

31、成。电路外形图引出端功能说明:(1)a0-a7:地址输入端或控制命令输入端。当 a7、a6 同时为高电平时,a4-a0为控制命令;否则,a0-a7 为地址。(2)dgnd:数字信号地线。(3)agnd:模拟信号地线。(4)sp-,sp+:音频信号输出端,连接 816 扬声器。(5)v+:模拟信号电源,5v.(6)mic:话筒参考输入端,通过电容耦合,连接驻极体话筒。(7)micref:话筒参考输入端。(8)agc:自动增益控制端,调整芯片内部前置放大器增益,使录入信号不失真。(9)ana in:模拟信号输入端。 ana out:模拟信号输出端。(10)playl:放音控制电平触发端。该端为低电

32、平时,芯片进入放音同期;当该端为高电平时,停止放音。(11)playe:放音控制脉冲触发端。该端输入由高电平向低电平跳变的下降沿时,芯片进入放音周期。(12)recled:录音显示端。该端接发光二极管,在录音时作悄音指示灯。(13)xclk:时钟控制端(14)rec:录音控制端。该端为低电平时,芯片进入录音状态,录音期间该端必须保持低电平,rec 信号的优先级高于 playl 和 playe 两种放音信号。其芯片引脚如图 28 所示。a01a12a23a34a45a56nc7nc8a69a710nc11dgnd12agnd13sp-14sp+15v+16mic17mic re f18agc19

33、ana in20ana out21nc22pl ayl23pl aye24recl ed25xclk26rec27v+28a01a12a23a34a45a56nc7nc8a69a710nc11dgnd12agnd13sp-14sp+15v+16mic17mic re f18agc19ana in20ana out21nc22pl ayl23pl aye24recl ed25xclk26rec27v+28图 28 isd1420 的外部引脚图在芯片的引脚中,模拟语音信号从 mic 和 micref 两个端口输入,经放大器放大后又从 anaout 端输出,然后通过外接耦合电容输入到 anain 端

34、,该信号再经适当放大后就可被时钟信号采样存储到 eeprom 中。2.4.2 isd1420 芯片与单片机的连接为实现语音播报的录入和播放功能,我们在此接入了 isd1420 语音芯片,并采用锁存器 74ls377 对其控制锁存达到良好的语音信息的录制与播报。其硬件电路图如图 29 所示。p101p112p123p134p145p156p167p178rest9rxd10txd11int012int113t014t115x218x119ea/vp31wr16rd17psen29ale /p30p2021p2122p2223p2324p2425p2526p2627p2728p0039p0138p

35、0237p0336p0435p0534p0633p07328051u1e1q02d03d14q15q26d27d38q39clk11q412q515q616q719d413d514d617d718u374ls377p26p00p01p02p03p04p05p06p07p00p01p02p03p04p05p06p07q0q1q2q3q4q5q6q7a01a12a23a34a45a56a69a710pl ayl23pl aye24rec27recl ed25xclk26vccd28vcca16vssd12vssa13sp+14sp-15ana in20out21m ic re f18m ic 17

36、agc19u2isd1420gndr61kvd1greec70.001ufs1pl aygndq0q1q2q3q4q5q6q7r141kvcc位c20.1ufgnd12ys1ha1c30.1ufr2 5.1kc40.1ufr11k位c1220ufr310kvccm ic1r410kc50.1ufr5470k位c64.7ufgndr104.7kvd2red图 29 语音芯片与单片机的连接2.5 串行时钟模块设计 播报记事器除了有播放和录入的功能外,还具有作为时钟的显示功能及中断控制。 2.5.1 ds1302 芯片 的介绍ds1302 是一种高性能、低功耗、带 ram 的实时时钟芯片,它可以对年

37、、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能, ds1302 的引脚如图 210 所示。图 210 ds1302 的外部引脚图ds1302 中当复位端 rst 为高电平时,所有的数据传送被初始化,允许对ds1302 进行操作。否则将会终止此次数据传送,且 i/o 引脚变为高阻态。上电运行时,在 vcc2.5v 之前,rst 必须保持低电平。只有在 sclk 为低电平时,才能将rst 置为高电平。ds1302 共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 bcd 码形式。其日历、时间寄存器及其控制字如表 23 所示。v1x1x2gndv2scl ki/or

38、st表 23 ds1302 寄存器地址及命令字2.5.2 时钟芯片与单片机的硬件连接ds1302 与单片机的通信仅需要三根线,即 rst(复位线) 、i/o(数据线)及sclk(串行时钟线) ,ds1302 与 cpu 连接的电路原理如图 211 所示,v1 在单片机电源与电池供电的系统中提供低电源并提供低功率的电池备份。当 v1 在双电源系统中提供主电源时,v2 连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据,ds1302 由 v1 和 v2 两者中较大者供电。图 211 时钟芯片 ds1302 与单片机的硬件连接原理图当单片机中的 t1 定时器发生中断时,单片机便将 p2.

39、2 置高电平,使得 ds1302时钟/日历读操作写操作ram读操作写操作秒81h80h第 1 个字节c1hc0h分83h82h第 2 个字节c3hc2h 小时85h84h日87h86h月89h88h 星期8bh8ah 年8dh8ch第 30 个字节 fdhfch控制寄存器8fh8eh第 31 个字节 ffhfehp101p112p123p134p145p156p167p178rest9rxd10txd11int012int113t014t115x218x119ea/vp31wr16rd17psen29ale /p30p2021p2122p2223p2324p2425p2526p2627p272

40、8p0039p0138p0237p0336p0435p0534p0633p07328051u1vcc1x12x23gnd4rst5i/o6scl7vbat8ds1302vccgndbt1b232.768khzc115.6pfc125.6pf3v的 rst 处于高电平,由此 ds1302 便将当前时间传送到单片机中的显示缓冲区,因t1 每分钟中断一次,所以每隔一分钟,4led 显示器便刷新一次重新显示当前时间。3. 系统软件的总体构成与实现因为对语音播报记事器进行软件设计,要涉及到很多的子程序,如录音、放音、定时等,所以我针对上面的问题考虑用模块化设计方法进行软件的设计,其优点是:(1)每个模块

41、的程序结构简单,任务明确,易于编写、调试和修改。(2)程序可读性好,对程序修改可局部进行,其他部分可以保持不变,便于功能扩充和版本升级。(3)对于使用频繁的子程序可以建立子程序库,便于多个模块调用。(4)便于分工合作,多个程序员同时进行程序的编写和调试工作,加快软件研制进度。3.1 语音播报定时器系统软件设计方案及框图根据设计要求,首选要确定软件设计方案,思考软件设计中应包括哪些功能,其次是规划为了完成这些功能需要分成多少个功能模块,以及每一个程序模块的具体任务是什么。由于对每个模块进行划分时有很大的灵活性,但也不能随意划分。划分模块时应遵循下述原则:(1)每个模块应具有独立的功能,能产生一个

42、明确的结果。(2)模块之间的控制参数应尽量简单,数据参数应尽量少。控制参数是模块进入和退出的条件及方式,数据参数是指模块间的信息交换方式、交换量的多少及交换的频繁程度。(3)长度适中。模块语句的长度通常在 20100 条较合适。模块太长时,分析和调试比较困难;模块太短则信息交换太频繁,也不合适。(4)根据模块的划分原则,将该程序划分成五个模块,如图 3-1 所示。主程序录放音当前时间定时时间设置led显示定时一分钟中断键盘控制图 3-1主程序及其子程序模块3.2 电子播报记事器的主程序设计主程序的内容一般包括:主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序

43、调用等等。(1)程序的起始地址mcs51 系列单片机复位后, (pc)0000h,而 0003h002bh 分别为各中断源的入口地址,所以,编程时应在 0000h 处写一跳转指令。当 cpu 接收到中断请求信号予以响应后,cpu 把当前的 pc 内容压入栈中进行保护,然后转入相应的中断服务程序入口处执行。一般应在相应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的起始地址进行编程。以/int0 为例,中断矢量地址为 0003h,中断服务程序从 inta 标号地址开始。(2)主程序的初始化内容对主程序初始化,其实是对将要用到的 mcs51 系列单片机内部部件或扩展芯片

44、进行初始化,使其工作状态得到一个初始设定。如应对特殊功能寄存器 ie、ip 进行初始化,因为 8051 复位后,ie、ip 中的内容均为 00h,所以应对其进行初始化编程,以开放 cpu 中断,允许某些其他中断源中断和设置中断优先级等。 1 对于本设计,用 t0、t1、int0、int1 四个中断,其中:t0 中断: t0 定时中断,达到 led 动态扫描的目的。t1 中断: t1 定时中断,达到每分钟从 ds1302 中读取当前时间的目的。int0 中断:接受外部中断信息,达到语音信息的录制与播报的目的。int1 中断:接受外部中断信息,达到对当前时间的调整和闹钟时间的设置的目的。(3)代码

45、转换程序由于日常我们都是识别十进制数(bcd 码) ,而计算机它只识别二进制数,因此,在程序设计中经常要涉及代码的转换。即将当前时间的二进制数转换成 bcd 码,并送到显示缓冲区最终显示出来。(4)在主程序中进行各项初始化设置后,首先 cpu 会先查询当前有没有对闹钟设初值,如果有,就把此闹钟时间与当前时间相比较,看看是否到了闹钟所定的时间,如果到了,就进行语音提示,如果没有到,cpu 就对 p3.0 口进行扫描,判断“1”键有没有按下,如果按下, 4led 就会显示当前的年份、月份、日期、星期、小时、分钟,满足人们的查询要求。(5)程序设计框图参照图 3-2 所示。y显示当前小时、分钟定时器

46、 t0、t1 初始化nnyy有定时时间否?定时时间到否?开始设置各级中断服务程序入口地址设置堆栈指针设置起始日期设置显示缓冲区ds1302 初始化设置中断优先级语音提示蜂鸣提醒nnynyynnyny显示当前年份显示当前月、日“+1”键按下否?“ret”键按下否?“+1”键按下否?“ret”键按下否?显示当前星期“+1”键按下否?“ret”键按下否?图 3-2 主程序流程图4.系统软件各模块的设计与实现本设计中大部分具体的操作都以子程序的形式出现在程序中,从功能上来讲主要包括“录放音” 、 “当前时间调整及时钟设置” 、 “led 动态显示” 、 “定时一分钟中断”及“键盘接受”五个模块。4.1

47、 录音与放音模块设计 4.1.1 录音与放音选择模块设计对 into 外部中断,不能直接接入是因为 int0 的外部中断有两个,所以直接接入是不可以的,我们采用对 t0 口进行扫描,从而解决了这一问题。由硬件电路图可以看出来,有两种方法可以使 int0 口产生中断,一是当“play”键按下时,另一种是“rec”键按下时。当 cpu 接收到 int0 口产生的中断时,先对 t0 口进行扫描,如果 t0 口为低电平,表明“play”键被按下了,cpu 则进行放音操作;如果 t0 口为高电平,表明按下的是“rec”键,cpu 则去执行录音操作。其程序流程图如图 33 所示。图 3-3录音与放音选择模

48、块设计的程序流程图4.1.2 录音模块设计在录音控制中,录音顺序号位显示后通常应先调整,并通过“ret”键来判断是yn跳转到放音子程序跳转到录音子程序恢复现场inta 服务程序开中断reti 返回关中断保护现场“rec”键按下否?否需要进行调整,如果“ret”键按下了,表明不进行调整,如果没有按下,则表明需要进行调整。调整时,用“1”键来完成调整 ,每按下一次,被调整值就做加1 调整,调整结束后,按下“ret”键进行确认。之后,便根据顺序号,在相应的起始地址开始录音,在录音完成后,按下“ret”键来表明录音操作已完成。其程序流程图如图 34 所示。图 34 录音程序流程图4.1.3 放音模块设

49、计放音子程序的实现方法与录音控制子程序的实现方法大体相同,就不作介绍了,其程序流程图如图 3-5 所示。调整录音顺序号显示录音顺序号调用录放音子程序录入从 40h 的语音信息调用录放音子程序录入从 48h 的语音信息调用录放音子程序录入从 50h 的语音信息调用录放音子程序录入从 58h 的语音信息录音子程序调用录放音子程序录入从 60h 的语音信息顺序号1?顺序号2?顺序号3?顺序号4?ret 返回yyyynn图 35 放音程序流程图4.1.4 录放音控制模块设计本模块的设计所实现的功能是使 74ls377 在 p2.6 口产生一个上升沿脉冲,使得74ls377 在这个上升沿脉冲时将单片机送

50、到 d 端的地址锁存到 q 端,并等待 isd1420取走该地址,完成单片机对语音芯片 isd1420 传送地址的不同时序的控制。其程序流程图如图 36 所示。调整放音顺序号显示放音顺序号调用录放音子程序播放 80h 的语音信息调用录放音子程序播放 88h 的语音信息调用录放音子程序播放 90h 的语音信息调用录放音子程序播放 98h 的语音信息调用录放音子程序播放 a0h 的语音信息顺序号1?顺序号2?顺序号3?顺序号4?ret 返回yyyynnn放音子程序图 3-6 录放音控制程序流程图4.2 当前时间的调整与闹钟的时间设置模块设计 语音播报的主要特点之一就是可以对其播报事件的时间随时设定

51、,并做好相应的时间调整,下面将主要论述到如何来实现这一功能以达到预期的目的。4.2.1 当前时间的调整与闹钟的时间设置选择模块设计同 int0 口一样,int1 口也要接入两个外部中断,其实现方法与 int0 中断选择相同,其流程图如图 37 所示。录放音控制子程序将 p2.6 口置低电平将单片机 a 中的内容送到 p0 口将 p2.6 口置高电平产生一上升沿脉冲ret 返回将 p0 口的地址锁存到 74ls377 的 q 端intb 服务程序关中断保护现场跳转到设置闹钟子程序跳转到当前时间调整子程序“alm”键按下否?开中断恢复现场reti 返回yn 图 37时间的调整与闹钟的时间设置选择程

52、序流程图4.2.2 调整当前时间程序设计该子程序主要实现的功能是对当前时间进行调整。在实现其功能时,将调整年、星期、调整月、日和调整小时、分的值又分为了三个子程序。程序先显示 29h 单元存放的数,同时可以通过“1”键进行调整,并且以“ret”键来进行确认。程序还对 29h 单元中存放的数进行判断,看是否在 13 之间,如果不是就将其置 1,并使其在 13 之间循环。取 29h 中的数分别进行比较,如果 29h 单元中存放的数字是 1,程序便转入到对年、星期值的调整;如果 29h 单元中存放的数字是 2,程序便转入到对月、日值的调整;如果 29h 单元中存放的数字是 3,程序便转入到对时、分值

53、的调整。如果不是以上值,程序便转入到对小时、分钟值的调整。其流程图如图 38 所示。yn(29h)4?“ret”按下否?(29h)1?(29h)2?调整年、星期的值当前时间调整子程序显示 29h 中调整序号(29h)=1调整月、日的值调整小时、分钟的值ret 返回按“1”键调整序号ynynyn 图 38调整当前时间程序设计流程图 (1)调整年、星期的子程序先显示年份的后两位,并通过“ret”键来判断是否需要进行调整,如果“ret”键按下了,表明不进行调整,如果没有按下,则表明需要进行调整。调整时,用“1”键来完成调整 ,每按下一次,被调整值就做加一调整,调整结束后,按下“ret”键进行确认。这

54、时,就进入到对星期的调整,其调整方法与年份的调整相同。其流程图如图 39 所示。 图 3-9调整年、星期的子程序流程图(2)调整月份、日期的子程序先显示月份,并通过“ret”键来判断是否需要进行调整,如果“ret”键按下了,表明不进行调整,如果没有按下,则表明需要进行调整。调整时,用“1”键来完成调整 ,每按下一次,被调整值就做加一调整。因为每年只有 12 个月,所以不能出现 12 个月以上的数字,所以将月份的值设置有012 之间。当月份调整完后,按下“ret”键进行确认。程序就转入到对日期进行调整的部分。因为 2 月份只有 28 天,所以不能出现 28 以上的数字。所以当月份是y调整年份、星

55、期的子程序显示年份的后两位“ret”键按下否?按“1”键进行调整(37h)1显示星期几“ret”键按下否?按“1”键进行调整(37h)8?ret 返回nynyn二时,必须将日期控制在 128 之间,其他月份限制在 131 之间,在调整结束后,按“ret”键进行确认。其程序流程图如图 310 所示。 图 3-10调整月份、日期的子程序流程图(3)调整小时、分的子程序先显示当前小时,并通过“ret”键来判断是否需要进行调整,如果“ret”键按下了,表明不进行调整,如果没有按下,则表明需要进行调整。调整时,用“1”键来完成调整,每按下一次,被调整值就做加一调整。因为每天只有 24 个小时,所以其值只

56、能在 023 之间,调整完毕后,按下“ret”键进行确认。程序就转入到对分钟的调整部分,因为一个小时只有 60 分钟,所以不能出现 60,因此必须将分钟的值控制在 059 之间。其流程图如图 311 所示。显示日期显示月份调整月、日的子程序“ret”键按下否?按“1”键进行调整(36h)13?(36h)1nyny(35h)1“ret”键按下否?(36h)2?按“1”键进行调整(35h)29?(35h)32?(35h)1ret 返回ynynynyn 图 3-11 调整小时、分的子程序流程图4.2.3 闹钟设置子程序闹钟设置子程序实现的功能是对闹钟时间进行设定。先显示闹钟的顺序号,如果需要调整,则

57、配合使用“1”键和“ret”键对其进行调整。然后对当前小时,和分钟进行调整,因为其调整方法与前面大体相同,这里就不再说明。其程序流图如图 312 所示。调整小时、分的子程序“ret”键按下否?显示小时按“1”键进行调整(34h)24?(34h)0“ret”键按下否?按“1”键进行调整(33h)60?(33h)0显示分钟ret 返回ynynynyn 图 3-12 闹钟设置程序流程图4.3 led 动态显示模块设计在采用动态扫描方式时,要使得 led 显示的比较均匀,以有足够的亮度,需要设置适当的扫描频率。当扫描频率在 70hz 左右时,能够产生足够的图形和较好的显示效果。一般可以采用间隔 10m

58、s 对 led 进行动态扫描一次,每一位 led 的显示时间为 1ms。在单片机中,定时功能既可以由硬件(定时/计数器)实现,也可以通过软件定yy闹钟时间设置子程序显示闹钟顺序号调整闹钟顺序号显示小时按“1”键调整(3bh)24?(3bh)0“ret”键按下否?显示分钟按“1”键调整(3ah)60?(3ah)0ret 返回“ret”键按下否?nnynyn时程序实现。软件延时程序占用 cpu 的时间,因此,它降低了 cpu 的利用率;硬件定时是利用单片机内定时器定时,启动以后定时器可与 cpu 并行工作,不占用 cpu的时间,使 cpu 有较高的工作效率。本设计中,采用硬件定时和软件定时并用的方

59、式,即用定时器 0 溢出中断功能10ms 实现定时,通过软件延时程序 1ms 的定时。1.t0 定时器中断服务程序的功能(1)从显示缓冲区分别取出 4 位 led 显示器显示数据的位码和段码,送到 p1 口,依次显示每一位,每一位的显示时间为 1ms,显示 4 位需要 4ms 的时间。(2)在设置当前时间或输入闹钟时间时,当前调整位应具有闪烁功能,用来显示当前调整位是哪一位。因此,在每一位显示之前都要判断,该位是否闪烁位,然后决定进行正常显示还是闪烁显示。(3)led 显示器的每一位的显示时间是 1ms,延时 1ms 子程序是典型的软件定时程序。2. 定时器 t0 的计数初值设时钟频率为 6m

60、hz,1 个机器周期时间为 2s.t0 定时器产生 10ms 的定时,可以计算出计数值和计数初值:计数值定时时间/机器周期时间10ms/2s5000计数初值65536500060536ec78h初值寄存器的初值为:th00ech,tl078h工作方式寄存器 tmod1h。t0 定时器中断服务程序流程图如图 313 所示。 图 3-13 led 动态显示程序流程图4.4 产生一分钟时间模块设计本设计采用了 t1 定时器与软件定时相结合的方法,产生了一分钟,它所实现的功能是每分钟从 ds1302 中读出当前时间。(1)一分钟的产生选择定时器 t1,工作方式 1,定时 100ms,t1 定时 100

温馨提示

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

评论

0/150

提交评论