




免费预览已结束,剩余20页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 1 页 共 25 页 目目 录录 一一 摘要摘要 2 2 二二 引言引言 3 3 三三 系统设计系统设计 4 4 3.13.1 方案论证方案论证 .4 3.1.1 lcd 显示模块4 3.1.2 语音模块(a/d) 5 3.1.4 led 模块5 3.1.5 触键唤醒模块 .5 3.23.2 硬件设计硬件设计 .5 3.2.1 lcd 的电路7 3.2.2 led 电路8 3.2.3 按键电路 .9 3.2.4 语音电路(a/d) .10 3.2.5 电源电路 11 3.33.3 软件设计及流程图(主要是主程序及软件设计及流程图(主要是主程序及 l leded部分)部分).11 3.3.1 系统主体(main.c) 11 3.3.2 led 程序:.15 3.3.43.3.4 lcdlcd 22 四四 总结及心得体会总结及心得体会 2424 参考文献:参考文献: 2525 第 2 页 共 25 页 一 摘要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技 术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件 来使用。随着人类科技文明的发展,人们对于时钟的要求在不断地提高。时钟已不仅仅被 看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。高 精度、多功能、小体积、低功耗,是现代时钟发展的趋势。在这种趋势下,时钟的数字化、 多功能化已经成为现代时钟生产研究的主导设计方向。我们小组正是基于这种设计方向, 以单片机为控制核心,设计制作一个多功能数字时钟。 本设计基于单片机技术原理,以 spce061a 单片机作为核心控制器,通过硬件电路的制作以 及软件程序的编制,设计制作出一个多功能数字时钟系统。该时钟系统主要由时钟模块、 计时模块、语音播报模块、液晶显示模块、键盘控制模块组成。系统具有简单清晰的操作 界面,能够准确显示时间以及日期,并且实现同步播报功能,可随时进行时间调整,同时 系统还具有闹钟时间设置、闹钟开/关、止闹功能以及秒表的应用。设计以硬件软件化为指 导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳 定性高。同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性,而且系统 具有一定的可扩展性。 关键字:单片机、电子时钟、阴历查询、液晶显示、语音关键字:单片机、电子时钟、阴历查询、液晶显示、语音 播报播报 abstractabstract:with the rapid development of science and technology in recent years, scm applications are deepening at the same time promote the growing of traditional control detection technology updates. in real-time detection and automatic control of the microcomputer application system, the microcontroller is often used as a core component. with the development of technological society, people demand the clock continues to improve. the clock has not only seen as a tool used to display the time, in many practical applications, it needs to be able to achieve more other features. high- precision, multifunction, small size, low power consumption, the development 第 3 页 共 25 页 trend of the modern clock. in this trend,clock digital, multi-functional clock production research has become a modern leading design direction. our group is based on this design direction for the control of single-chip microcomputer core, designed a multi-function digital clock. the design is based on principles of microcomputer technology in order to spce061a mcu as the core controller, through the production of the hardware circuits and software programming for the design to produce a multi-functional digital clock system. the clock system mainly consists of the clock module, timer module, voice broadcast module, liquid crystal display module, keyboard control module. system has a simple and clear interface, the ability to accurately display the time and date, and to achieve simultaneous broadcast capabilities, they can always be time to adjust, while the system also has alarm time settings, alarm on / off, only the downtown functions and stopwatch applications.design hardware and software into the guiding ideology, give full play to microcontroller functions, most of the functionality through software programming to implement, the circuit simple and clear, high stability of the system. meanwhile, the clock system also has a power consumption and low cost features, has a strong practicality, and the system has a certain degree of scalability. keywordskeywords: microcontroller, electronic clock, lunar query, liquid crystal display, voice broadcast 二二 引言引言 单片机自 20 世纪 70 年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应 用很广、发展很快。单片机具有体积小、重量轻、抗干扰能力强、环境要求不高、价格低 廉、可靠性高、灵活性好、开发较为容易。目前单片机渗透到我们生活的各个领域,几乎 很难找到哪个领域没有单片机的踪迹。 第 4 页 共 25 页 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应 用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、 流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使 得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精 密的测量设备(功率计,示波器,各种分析仪) 。用单片机可以构成形式多样的控制系统、 数据采集系统。例如工厂流水 线的智能化管理,电梯智能化控制、各种报警系统,与计算 机联网构成二级控制系统等。甚至可以这样说,现在的家用电器基本上都采用了单片机控 制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备, 五花八门,无所不在。 1957 年,ventura 发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开 始迅速的发展。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的 时间中断,用于一秒的定义,通过计数方式进行满六十秒进一,满六十分进一,满二十四 小时清零,从而达到计时的功能,是人民日常生活不可缺少的工具。 电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有 走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的 不断改善和美化,在许多场合可以看到数字电子钟。在城市的主要营业场所、车站、码头 等公共场所使用 lcd 数字电子钟已经成为一种时尚。但目前市场上各式各样的 lcd 数字电 子钟大多数用全硬件电路实现,电路结构复杂,功率损耗大等缺点。因此有必要对数字电 子钟进行改进。 本设计基于单片机技术原理,以 spce061a 单片机作为核心控制器,通过硬件电路的制作以 及软件程序的编制,设计制作出一个 lcd 多功能数字时钟系统。该时钟系统主要由时钟模 块、计时模块、语音播报模块、液晶显示模块、键盘控制模块组成。系统具有简单清晰的 操作界面,能够准确显示时间以及日期,并且实现同步播报功能,可随时进行时间调整。 三三 系统设计系统设计 3.13.1 方案论证方案论证 3.1.1 lcd 显示模块 第 5 页 共 25 页 这一模块可以使用 lcd 或者 led 数码管来实现。我组最后选择用 lcd 液晶显示来显示时间 以及日期。之所以选择 lcd 来实现,是因为它具有很多优点。低压微功耗,平板型结构, 被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳)而且 显示信息量大(因为像素可以 做得很小) 无电磁辐射(对人体安全,利于信息保密)。 具体的实现方法是利用 c 语言的编程(代码见程序 system.c) 。下面的硬件设计将详细的 介绍 lcd 的模块的接口电路以及具体的接线方法。 3.1.2 语音模块(a/d) 凌阳单片机本身具备语音识别功能,不需要外扩语音识别模块,虽然具有一点点 dsp 功能,就能做到语音识别功能。凌阳压缩算法中 sacm_a2000、sacm_s480、sacm_s240 主要 是用来放音,可用于语音提示,而 dvr 则用来录放音。对于音乐合成 ms01,该算法较繁琐, 而且需要具备音乐理论、配器法及和声学知识。凌阳的 spce061a 是 16 位单片机,具有 dsp 功能,有很强的信息处理能力,最高时钟频率可达到 49mhz,具备运算速度高的优势等 等,这些都无疑为语音的播放、录放、合成及辨识提供了条件。本小组使用的是 sacm_s480 模块。利用 c 语言对其进行编程(代码为 speak.c) 。 本模块是本设计的关键环节,因为电子时钟的功能就是正确的显示时间。具体的计时 实现是利用 spce061a 自带的定时器以及计数器功能。通过 c 语言编程,采用延时程序产生 一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒进一,满六十分进一,满 二十四小时清零,从而达到计时的功能。 3.1.4 led 模块 由于 lcd,led 对 io 口的占用,使得本小组的 led 设计不得不使得其与其他的模块分 开执行。同时由于不可能再去利用 led 再去设计一个系统所以只实现了简单的功能(简单 的计数) 。 3.1.5 触键唤醒模块 触键唤醒中断源主要是在系统进入睡眠状态后,通过 a 口低八位的按键来唤醒系统的 时钟,同时 进入触键唤醒中断,恢复睡眠时的 pc 指针。在进行程序编写的时候,要注意 只有当 ioa7ioa0 内的控制字为 000、001、010 时,相应位才有唤醒功能。 第 6 页 共 25 页 3.23.2 硬件设计硬件设计 试验箱 第 7 页 共 25 页 总体接线 3.2.1 lcd 的电路 这部分的主要接线如下: ioa8-15 接液晶显示模块 db0-db7 iob4 接液晶显示模块 ao iob5 接液晶显示模块的 r/w iob6 接液晶显示模块的 ep db0-db7 为双向数据口,ao 为数据/使命控制位,r/w 为读/写信号,ep 是全能端(低 电平有效) 要这部分工作时 key 接线与 ioa 低八位相连就可以了。 第 8 页 共 25 页 lcd 模块接口电路 程序下载后会显示日期、时间。按 key1 可以进入时间调整界面。 3.2.2 led 电路 连线:ioa 口低 8 位连接 ag iob2iob5 连接数码管片选段 6 位 led 数码管引脚图 第 9 页 共 25 页 硬件连接 3.2.3 按键电路 按键电路简单,易于控制;按键控制接口部分由 9 个按键组成 : 调整时间/闹钟键、时钟开/关键、小时按键、分钟按键、加记数键、减记数键、确定键、 切换温度/频率和电压键、接触式止闹键 按键功能说明: 1、调整时间/闹钟键:按一次:开始设置时间;按两次:开始设置闹钟;依次循环。 2、小时按键: 调整时间/闹钟状态下,此键开始有效。按一次表示开始设置相应的小时; 3、分钟按键: 调整时间/闹钟状态下,此键开始有效。按一次表示开始设置相应的分钟; 、加、减计数键 在时间调整时,按一下,分钟或小时数加减一 、确定键 调整完后按此键确认 、切换温度/频率和电压键,切换屏幕 、接触试止闹键,当闹铃响时,按下此键,停止振动 按键电路直接与 ioa 口连接。其原理图如下: 第 10 页 共 25 页 3.2.4 语音电路(a/d) 下图为音频输入电路 连接的时候就使用实验箱默认的接法 第 11 页 共 25 页 上图的作用就是完成语音的输出响应。 3.2.5 电源电路 3.33.3 软件设计及流程图(主要是主程序及软件设计及流程图(主要是主程序及 ledled 部分)部分) 3.3.1 系统主体(main.c) 第 12 页 共 25 页 key1 初始化 键扫描 键处理 键按下 下 调整时间播日期播时间 key2 key3 n y 主程序框图 主程序(主程序(main.cmain.c):编写首先进行函数声明,定义文件中用到的变量以及常数数 组,再编写真正的主体部分。 首先进行键盘以及液晶显示的初始化。置 2hz 的中断,开 2hz 的中断。 keyinitial(); lcd501_init(0); lcd501_circle(64,32,15,1); lcd501_clrscreen(0); lcd501_fontset(0) *p_int_ctrl_new = *p_int_ctrl_new | 0x0004; _asm(“int irq“); 第 13 页 共 25 页 然后进行键盘扫描。 如果 key1 键按下,接着调用清屏函数,进而显示调整界面、显示鼠标位置。再进行键 盘扫描,如果是 key1 按下则进入相应的调整。利用 switch 语句判断此时的鼠标指向。编 写程序鼠标指向的方向。如果按下 key2,则鼠标指向下移,同理按下 key3,鼠标指向上移, 而且在每一步之后修改箭头的坐标,这一部分在 lcd 子程序中详细的介绍。 如果开始的时候按下的是 key2 则播报时间,此过程调用时间播报函数。 如果开始的时候按下的是 key3 则播报时间,此过程调用日期播报函数。 最后清看门狗。 程序如下: int main(void) int i=0,j=1,k; *p_iob_dir=0xffff; *p_iob_attrib=0xffff; *p_iob_data=0x0000; for(i=0;i 1) playrespond(daytemp/10+c_t00); /十位1 报 if(daytemp/10)0) playrespond(c_t10); /报十,十位 为 1 不报 1 if(daytemp%10)!= 0) playrespond(daytemp%10+c_t00); playrespond(c_day); void playspeakhour(int daytemp) /小时的播报 if(daytemp10 /报 2 再报 10 再报个位的数 playrespond(c_t10); playrespond(daytemp%20); playrespond(c_dian); /点 void playspeakminute(int mintemp) /分钟的播报 if(mintemp=0) playrespond(c_t00); if(mintemp/10)1) playrespond(mintemp/10); /分十位 if(mintemp/10) 0) playrespond(c_t10); /分的十位 大于 1 报,为 1 不报 1 if(mintemp%10)!=0) playrespond(mintemp%10); /分的个位 不为 0 则报 playrespond(c_min); /分 void speaktime() playrespond(c_bell); /报时声 第 22 页 共 25 页 playspeakhour(hour); /时 playspeakminute(min); /分 void speakday() playspeakyear(year); /年 playspeakmonth(gmonth); /月 playspeakday(gday); /日 3.3.43.3.4 lcdlcd 1 加载 spce061a.h,model.h,splc501user.h 头文件。对键盘扫描函数,语音播放函数, 显示小时函数,铃声选择函数进行声明。存放需要使用的一些变量。 2 首先将 2hz 的中断频率缩小为 1hz,也就是标准化了时钟的时间量,然后就是对时 间量进行逐一调整。秒数自加一,到 60 自动转为 0,并在分位加一,分位自加一,到 60 自动转为 0,并在小时位加一,小时自加一,到 24 自动转为 0,并在日位加一。再就是调 整公历农历日期了。首先要计算什么时候是公历的 2 月为闰月的年份,是的话就是 29 天, 否的话就是 28 天。1,3,5,7,8,10,12 月为 31 天,其他月为 30 天。农历的话都是 30 天,同时也有农历日期计算,详细见主函数。再就是用计算星期的公式通过公历日期来计 算当前星期。 分别设置秒,分,时,公历以及农历的年,月,日,星期的 lcd 显示。采用高位降位, 低位保留其余数的方法。就用秒程序为例,程序段如下: void showsec(int showsec) /显示秒单元子函数 int mshi = 0; /定义秒单元的十位 int sg = 0; /定义秒单元的个位 mshi = showsec/10; /秒单元的十位取秒单元除以十位后的数字,也就是原来 的十位数字 第 23 页 共 25 页 sg = showsec%10; /秒单元的个位取秒单元除以十位后的余数,也就是原来的 个位数字 lcd501_putchar(66,20,numbersg); /在(66,20)的位置显示个位 lcd501_putchar(60,20,numbermshi) /在(60,20)的位置显示十位 ; 3 开机之后再固定位置显示年月日等汉字,以及正常运行界面时调用各个数据量后在 屏幕上的位置显示。 4 调整界面我采用闪烁的方式使肉眼可以观察。用 keynowvalue,也就是当前闪烁。 选择闪烁的位置,比如 case0: case 0: if(int2hz=0) showyear(year); else lcd501_putchar(18,2, ); lcd501_putchar(12,2, ); lcd501_putchar(6,2, ); showsec(sec); /调用显示秒单元子函数 showmin(min); /调用显示分单元子函数 showhour(hour); /调用显示小时单元子函数 showgmonth(gmonth); /调有显示公历月单元子函数 showgday(gday); /调用显示公历日单元子函数 shownmonth(nmonth); /调用显示农历月单元子函数 shownday(nday); /调用显示农历日单元子函数 一共 8 个位置可以修改,所以列出了 8 个中断向量可能的值。 在调整之前也要进行时间日期调整界面的设置。也是显示汉字的方式来执行的。如: void nextdisplay() /显示时间日期调整子程序 lcd501_bitmap(28,0,(unsigned int*)encoding_shi); /时 第 24 页 共 25 页 lcd501_bitmap(40,0,(unsigned int*)encoding_jian); /间 lcd501_bitmap(52,0,(unsigned int*)encoding_day); /日 lcd501_bitmap(64,0,(unsigned int*)encoding_qi); /期 lcd501_bitmap(76,0,(unsigned int*)encoding_tiao); /调 lcd501_bitmap(88,0,(unsigned int*)encoding_zheng); /整 lcd501_bitmap(28,45,(unsigned int*)encoding_fan); /返 lcd501_bitmap(40,45,(unsigned int*)encoding_hui); /回 然后进行时间日期调整界面,用键盘来设置时间日期的加减控制。前面已经设定过各 个变量超过固定值将会变为 0 等,这里设定的是各个变量低于 0 的话将会从 0 变回固定的 值,再进行继续的降低操作,同时也会降低上一位的数字。 四四 总结及心得体会总结及心得体会 单片机课程设计已经接近尾声,留给我印象最深的不是我最后做成了什么或者我的设 计实现了什么功能,我认为最重要的是设计的过程。因为设计的过程在整个过程中所占时 间最多,锻炼我们的价值也是最大的。设计开始的时候我真的是毫无头绪,甚至有过放弃 的想法,但终于坚持了下来。我明白了要设计一个成功的电路,除了有创新能力之外,必 须要有扎实的知识基础,要熟练地掌握课本上的知识,只有这样才能对试验中出现的问题 进行分析解决。在整个电路的设计过程中,花费时间最多的方案设定,很多就属于那种想 法很好但是要实现非常困难的设计以及超出能力范围的。开始的时候非常着急,但是当选 好了方案后,干劲就起来了。 同时通过这次对数字秒表的设计与制作,让我了解了设计电路的程序,也让我了解了 关于电子时钟的原理与设计理念。在此次的电子时钟设计过程中,更进一步地熟悉了 spce061a 单片机芯片的结构及工作原理,提高了自己的自学能力以及团队合作的能力,这 对今后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海旅游高等专科学校《日语写作二》2023-2024学年第二学期期末试卷
- 锡林郭勒职业学院《酒类生产工艺与产品质量控制》2023-2024学年第二学期期末试卷
- 晋中师范高等专科学校《建筑制图与》2023-2024学年第二学期期末试卷
- 哈尔滨广厦学院《组织行为学》2023-2024学年第二学期期末试卷
- 郑州信息工程职业学院《中医养生与美容》2023-2024学年第二学期期末试卷
- 保定一层轻钢房施工方案
- 马鞍山交通标志牌施工方案
- 西双版纳职业技术学院《综合日语(3)》2023-2024学年第二学期期末试卷
- 铺设沥青路面工程施工方案
- 第1课时 认识6~9(教学设计)-2024-2025学年一年级上册数学苏教版
- 四川省泸州市各县区乡镇行政村村庄村名居民村民委员会明细
- 《邹忌讽齐王纳谏》课件(共45张)
- 机械制图教学课件(全套)
- 热能与动力工程测试技术- 液位测量
- 化学纤维精品课件
- 中式面点师初级(五级)教学计划、大纲
- QC成果构造柱浇筑新技术的研发创新(附图)
- 2020 ACLS-PC-SA课前自我测试试题及答案
- BIM技术应用管理办法
- 信息论与编码第4章信息率失真函数
- 空间几何向量法之点到平面的距离
评论
0/150
提交评论