基于单片机的校园打铃系统设计_毕业设计说明书(论文).doc_第1页
基于单片机的校园打铃系统设计_毕业设计说明书(论文).doc_第2页
基于单片机的校园打铃系统设计_毕业设计说明书(论文).doc_第3页
基于单片机的校园打铃系统设计_毕业设计说明书(论文).doc_第4页
基于单片机的校园打铃系统设计_毕业设计说明书(论文).doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

信息职业技术学院 毕业设计说明书(论文) 设计题目: 基于单片机的校园打铃系统设计 专 业: 应用电子技术 班 级: 应电 08-2 学 号: 姓 名: 指导教师: 二一年九月十日 信息职业技术学院毕业设计(论文)任务书信息职业技术学院毕业设计(论文)任务书 学 生 姓 名 学号班级应电 082专业应用电子技术 设计(或论文)题目基于单片机的校园打铃系统设计 指导教师姓名职 称工作单位及所从事专业联系方式备 注 工程师学01 设计(论文)内容:利用单片机做为主控器件,设计一校园打铃系统的硬件部分: 1.实现打铃时间的设置和修改; 2.显示当前日期、时间; 3.掉电情况下计时工作正常进行、能保存以前设置的时刻。 基本要求: 1.正确选择元器件完成相应功能; 2.设计整机电路、明晰系统工作原理; 3.系统仿真; 4.完成说明书撰写。 进度安排: 第 36 周:选题及查找相关资料主要查找与课题相关的资料; 第 7 周:相关资料的整理并对其进行理解; 第 8 周:对毕业论文的资料进行初步的整理; 第 9 周:期中检查; 第 10 周:对论文进行修改及进行仿真实验; 第 11 周:对毕业论文进行排版; 第 12 周:检查排版及内容; 第 13 周:加深对毕业论文的理解准备答辩; 第 14 周:检查毕业设计论文的地方准备答辩; 第 15 周:答辩。 主要参考文献、资料(写清楚参考文献名称、作者、出版单位): 1苏平.单片机原理与接口技术.北京:电子工业出版社,2003 2林伸茂.8051 单片机彻底研究实习篇.北京:人民邮电出版社,2005 3韩志军.单片机应用系统设计.北京:机械工业出版社,2005 4陈坤.电子设计技术.成都:电子科技大学出版社,1997 5郑应光.模拟电子线路(一).南京:东南大学出版社,2005 6李秀忠.单片机应用技术.北京:人民邮电出版社,2007 审 批 意 见 教研室负责人: 年 月 日 备注:任务书由指导教师填写,一式二份。其中学生一份,指导教师一份。 四川信息职业技术学院毕业设计说明书(论文) 目 录 摘 要 1 第 1 章 绪论 2 第 2 章 方案设计与论证 3 2.1 系统方案选择与比较 3 2.1.1 控制模块方案选择.3 2.1.2 显示模块方案选择.4 2.2.3 存储模块方案选择.4 2.2 总体方案设计思想 5 第 3 章 硬件电路设计 6 3.1 控制模块设计 6 3.1.1 单片机 at89c51 简介.6 3.1.2 单片机时钟电路复位电路介绍.7 3.2 打铃模块 8 3.3 存储模块 8 3.3.1 实时时钟 ds1302 简介8 3.3.2 存储器 24c02c .10 3.4 键控模块 .12 3.4.1 独立式键盘介绍12 3.4.2 键盘接口及键位的功能介绍13 3.5 显示模块 .13 3.5.1 数码管的组成及工作原理14 3.5.2 数码管的显示14 第 4 章 整机原理 .16 4.1 整机原理图 .16 四川信息职业技术学院毕业设计说明书(论文) i 4.2 整机电路原理 .16 第 5 章 软件设计 .18 5.1 打铃系统流程图 .18 5.2 读时间日期显示流程图 .18 5.3 led 显示流程图 19 5.4 主程序流程图 .20 第 6 章 仿真和调试 .21 6.1 调试软件的介绍 .21 6.2 调试的操作步骤 .21 6.3 仿真软件对于本设计的仿真 .22 结 论 .25 参考文献 .26 附录 1 整机原理图27 附录 2 元件明细表28 附录 3 源程序29 四川信息职业技术学院毕业设计说明书(论文) 第 0 页 共 34 页 摘 要 本设计以单片机 at89c51 为控制核心,与 ds1302、24c02c 和 led 等组成校园打铃 系统,运用实时时钟芯片 ds1302 实现时间控制,同时运用 led 七段数码管完成当前的 年、月、日、时、分、秒和星期以及打铃时间的显示,再利用键盘可以对系统当前时 间以及打铃时间进行调节、存储、清空操作,并且使用外部存储器 24c02c 完成打铃时 间的存储。此设计在系统掉电状态下仍可以正常的打铃、时间设定、数据保持,整体 性好、人性化强、可靠性高、功能强,体积小,功耗低,价格便宜,工作可靠,使用 方便等特点。 关键词关键词 单片机;at89c51;ds1302;24c02c 打铃 四川信息职业技术学院毕业设计说明书(论文) 第 1 页 共 34 页 第 1 章 绪论 校园打铃系统就是利用现代计算机、通讯等技术,以传统的铃声系统为基础,根 据用户对铃声系统功能的要求,由单片机来控制、管理、播放的系统。 通过把播放的内容以数字形式存放在存储器中,然后单片机通过控制软件,按照 学校设定的播放时间和内容控制单片机自动将存储器中的数字音乐文件播放出来。铃 声控制系统整体由两部分组成:主控中心和终端电铃。主控中心以单片机为核心,包 括控制电路、显示电路、键盘电路和存储电路。终端电铃为响应控制设备,通过其自 身的控制系统可以获得清晰、响亮的声响。 单片机在电子产品中的应用已经越来越广泛,并且在很多电子产品中也将其用到 校园铃声和广播控制。单片机又称单片微控制器,是把一个计算机系统集成到一个芯 片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为 学习、应用和开发提供了便利条件。 现在,这种单片机的使用领域已十分广泛,如智 能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机, 就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型” ,如智能型 洗衣机等。 本次设计是实现一个单片机的校园打铃系统,能过设置打铃时间,同时要求能够 在系统掉电时,时间能够继续,数据能够保持,能够实现打铃。 四川信息职业技术学院毕业设计说明书(论文) 第 2 页 共 34 页 第 2 章 方案设计与论证 2.1 系统方案选择与比较 2.1.1 控制模块方案选择 校园打铃系统设计方案有多种,下面提出两种电路方案。 方案一:主要是由石英晶体振荡电路和分频器电路组成的脉冲发生器、校时电路、 报时电路以及时、分、秒计数器和译码显示电路等电路组成,其中采用计数器 74ls290、译码器 74ls49、分频器和八段数码管显示器等器件组成的校园打铃系统,整 个系统有控制简单,调试容易等优点,但是其显示功能单一、电路复杂。其组成方框 图如下 2-1 所示: 显示器显示器显示器 译码器译码器译码器 二十四进 制时计数 器 六十进制 分计数器 六十进制 秒计数器 校时电路报时电路晶体振荡 器 单刀双 置开关 单刀双 置开关 分频器 图 2-1 方案一组成方框图 方案二:采用 atc 公司的单片机 atc89c51 作为控制器。单片机运算能力强,软件 编程灵活,自由度大。它是 mcs-51 系列单片机的派生产品,在指令系统、硬件结构和 片内资源上与标准 8051 单片机完全兼容,使用时容易掌握;采用 atc89s52 单片机稳 定可靠、应用广泛、通用性强。 四川信息职业技术学院毕业设计说明书(论文) 第 3 页 共 34 页 单片机 时钟电路 复位电路 键盘电路 显示电路 存储电路 声音驱动输出电路 图 2-2 方案二组成方框图 方案选择:采用方案一实现的校园打铃控制系统调试容易,价格相对较为便宜, 但是电路结构复杂,控制单一,且整个系统性能不是很高,倒计时不是非常精确,功 能不完整,如果要求系统调节打铃时间时不容易调整。采用方案二实现的校园打铃系 统其电路结构简单,可实现多功能控制,计时精确,全自动化实现其所用功能,并且 能在断电的情况下任能正常的实现打铃。因而对于完成此题目,方案二完全能实现设 计要求,并且容易掌握,此方案是利用编程来实现,易于调整时间,且 i/o 接口很多, 易于扩展外围电路,故选择方案二。 2.1.2 显示模块方案选择 该系统要求完成当下年、月、日、时、分、秒、星期的显示等功能。基于上述原 因,考虑了三种方案。 方案一:完全采用点阵式 led 显示。这种方案实现复杂,且须完成大量的软件工 作;但功能强大,可方便的显示各种英文字符,汉字,图形等。 方案二:用七段 led 数码管完成年、月、日、时、分、秒、星期显示,这种方案 只能显示数字、英文字符及一些简单的数学符号,但价格相对便宜。 方案比较:相对比较而言,方案二比方案一更符合此设计要求,方案一采用点阵 式 led 显示的方法,而设计只要求年、月、日、时、分、秒、星期的显示输出。因此 这种方案既软件工作量大,又价格相对较贵,因此权衡利弊,选择方案二。 2.2.3 存储模块方案选择 存储器是整个系统的“连接线” ,它是系统稳定工作的保障,为使各个模块稳定工 作,须有可靠存储器。下面考虑了两种电源方案。 方案一:采用单片机存储器。该方案的优点是存储方便,节约成本;缺点是断电 后存储数据消失。 四川信息职业技术学院毕业设计说明书(论文) 第 4 页 共 34 页 方案二:采用存储器 24c02c。该方案保证设置的打铃时间数据在掉电时也不会丢 失,同时实现在系统运行时能够修改打铃时间,采用开关电源作为整个系统的供电, 它具有多路电源输出,缺点是价格较贵。 方案比较:方案一只采用单片机自身的存储是不行的,而方案二虽然要给另外购 买,但却能在断电的情况下仍能存储数据并且继续计数。故选择第二种方案。 2.2 总体方案设计思想 根据校园打铃系统的设计,可将本系统分为四个模块,第一个模块是控制模块, 主要负责整个系统工作的控制和运算,从而使各模块正常工作;第二个模块为显示模 块,主要是对现时刻内年、月、日、时、分、秒和星期的直观显示;第三个模块是键 控模块,它的主要作用是辅助控制模块,相当于输入装置,利用它可以对打铃时间进 行调节;第四个模块是存储模块,它是整个系统的连接线,负责给各模块提供合适的 信息,让各模块能稳定工作。其系统设计结构如图 2-3 所示。 控 制 模 块 显 示 模 块 键 控 模 块 存储模块 图 2-3 系统设计结构图 四川信息职业技术学院毕业设计说明书(论文) 第 5 页 共 34 页 第 3 章 硬件电路设计 3.1 控制模块设计 at89c51 在此设计中起到非常重要的作用,它就像一个人的大脑,控制着整个设计 的所有系统。此设计的控制模块由单片机、复位电路、时钟电路组成的。 3.1.1 单片机 at89c51 简介 at89c51 是一种带 4k 字节闪烁可编程可擦除只读存储器(fper-om-flash programmable and erasable read only memory)的低电压。单片机的可擦除只读存储 器可以反复擦除 100 次。该器件采用 atmel 高密度非易失存储器制造技术制造,与工 业标准的 mcs-51 指令集和输出管脚相兼容。由于将多功能 8 位 cpu 和闪烁存储器组合 在单个芯片中,atmel 的 at89c51 是一种商效微控制器,at89c51 是它的一种精简版本。 at89c51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 图 3-1 at89c51 引脚图 at89c51 单片机引脚分布如图 3-1 所示。 p0 口:p0 口为一个 8 位漏级开路双向 i/o 口,每脚可吸收 8ttl 门电流。当 p1 口 的管脚第一次写 1 时,被定义为高阻输入。p0 能够用于外部程序数据存储器,它可以 被定义为数据/地址的第八位。在 fiash 编程时,p0 口作为原码输入口,当 fiash 进行 四川信息职业技术学院毕业设计说明书(论文) 第 6 页 共 34 页 校验时,p0 输出原码,此时 p0 外部必须被拉高。 p1 口:p1 口是一个内部提供上拉电阻的 8 位双向 i/o 口,p1 口缓冲器能接收输出 4ttl 门电流。p1 口管脚写入 1 后,被内部上拉为高,可用作输入,p1 口被外部下拉为 低电平时,将输出电流,这是由于内部上拉的缘故。在 flash 编程和校验时,p1 口作 为第八位地址接收。 p3.0(rxd):串行输入口 p3.1(txd):串行输出口 3.1.2 单片机时钟电路复位电路介绍 1.时钟电路模块 单片机的时钟信号用来为单片机芯片内部的各种操作提供时间基准。 时钟电路为单片机产生时钟脉冲序列,作为单片机工作的时间基准,典型的晶体 管振荡频率为 12mhz。 at89c51 单片机内有时钟振荡电路,只要在单片机的 xtal1 和 xtal2 引脚外接石英 晶体和微调电容,就构成了自激振荡器并在单片机内部产生时钟脉冲信号,具体电路 设计如图 3-2 所示。图中电容 c1 和 c2 的作用是稳定频率和快速起振,其值为 530pf,在此选择 30pf;晶振 x1 的振荡频率范围在 1.212mhz 之间选择。 图 3-2 单片机时钟、复位电路 2.复位电路模块 复位电路使单片机或系统中的其他部件处于某种确定的状态。 当在单片机的 rst 引脚处引入高电平并保持 2 个机器周期,单片机内部就执行复 四川信息职业技术学院毕业设计说明书(论文) 第 7 页 共 34 页 位操作。实际应用中,复位操作有两种基本形式:一种是上电复位,另一种是按键复 位。在单片机运行期间,可以利用此按键完成复位操作。具体电路设计如上图 3-2 所 示。 3.2 打铃模块 电铃工作在交流电 220v 下,单片机工作电压为直流电+5v,所以单片机引脚不能 直接控制电铃工作,因此我们使用单片机控制电铃工作电路的通断。由于单片机驱动 能力有限,因而需要硬件将单片机输出的高、低电平变成控制电铃通断的电路,能够 具体实现该功能的电路有多种。常见的方式是采用将单片机输出信号放大后驱动继电 器,用继电器的触头控制电铃电路的接通和断开,如图 3-3 所示。 三极管在电路当中起开关作用,管型为 pnp 型。单片机的 p1.7 通过三极管驱动继 电器,当 p1.7 脚输出高电平时,给三极管基极送入高电压。此时,三极管呈截止状态, 继电器不吸合电铃停止打铃;当 p1.7 脚输出低电平时,给三极管基极送入的是低电压。 此时,三极管呈导通状态,促使继电器吸合,电铃打铃。 继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统 (又称输出回路) ,通常应用于自动控制电路中,它实际上是用较小的电流去控制较大 电流的一种“自动开关” 。当输入量达到规定值时,使被控制的输出电路导通或断开的 电器。继电器线圈在断电时会产生一个很大的反感生电动势,这个电压会损失继电器 或者电路中的元件,在继电器线圈上反向并联一个二极管,可将产生的反感生电动势 通过二极管回路释放掉、保护继电器线圈和电路中的电子元件不受高压损坏。 p1.6 p1.7 8 p3.7/rd 17 p3.6/wr at89c51 q1 2n2905 r9 200r rl1 5v d1 1n4148 ls1 sounder 图 3-3 声音控制电路图 四川信息职业技术学院毕业设计说明书(论文) 第 8 页 共 34 页 3.3 存储模块 3.3.1 实时时钟 ds1302 简介 它可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电 压为 2.5v5.5v。采用三线接口与 cpu 进行同步通信,并可采用突发方式一次传送多 个字节的时钟信号或 ram 数据。ds1302 内部有一个 318 的用于临时性存放数据的 ram 寄存器。ds1302 是 ds1202 的升级产品,与 ds1202 兼容,但增加了主电源/后备电 源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 1.引脚功能及结构 图 3-4 ds1302 引脚图 如图 3-4 所示,ds1302 的引脚排列,其中 vcc1 为后备电源,vcc2 为主电源。在主 电源关闭的情况下,也能保持时钟的连续运行。ds1302 由 vcc1 或 vcc2 两者中的较大 者供电。当 vcc2 大于 vcc10.2v 时,vcc2 给 ds1302 供电。当 vcc2 小于 vcc1 时, ds1302 由 vcc1 供电。x1 和 x2 是振荡源,外接 32.768khz 晶振。rst 是复位/片选线, 通过 rst 输入高电平来启动所有的数据传送。rst 输入有两种功能:首先,rst 接通控 制逻辑,允许地址/命令序列送入移位寄存器;其次,rst 提供终止单字节或多字节数 据的传送手段。当 rst 为高电平时,所有的数据传送被初始化,允许对 ds1302 进行操 作。如果在传送过程中 rst 置为低电平,则会终止此次数据传送,i/o 引脚变为高阻态。 上电运行时,在 vcc2.5v 之前,rst 必须保持低电平。只有在 sclk 为低电平时,才 能将 rst 置为高电平。i/o 为串行数据输入输出端(双向),sclk 始终是输入端。 2.实时时钟 ds1302 的控制字节 ds1302 的控制字节的最高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据 写入 ds1302 中,位 6 如果为 0,则表示存取日历时钟数据,为 1 表示存取 ram 数据; 位 5 至位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表 示进行读操作,控制字节总是从最低位开始输出。 四川信息职业技术学院毕业设计说明书(论文) 第 9 页 共 34 页 3.数据输入输出(i/o) 在控制指令字输入后的下一个 sclk 时钟的上升沿时,数据被写入 ds1302,数据输 入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 sclk 脉冲的下降沿 读出 ds1302 的数据,读出数据时从低位 0 位到高位 7。 4.实时时钟 ds1302 的寄存器 ds1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 bcd 码形式,其日历、时间寄存器及其控制字。 此外,ds1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 ram 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器 内容。ds1302 与 ram 相关的寄存器分为两类:一类是单个 ram 单元,共 31 个,每个单 元组态为一个 8 位的字节,其命令控制字为 c0hfdh,其中奇数为读操作,偶数为写 操作;另一类为突发方式下的 ram 寄存器,此方式下可一次性读写所有的 ram 的 31 个 字节,命令控制字为 feh(写)、ffh(读)。 5.引脚连接图 图 3-5 ds1302 引脚连接图 在学校正常上课中,不可能保证学校随时都有电,为了不影响学校的正常运转, 同学们能够正常的上、下课。所以就采用能在学校停电时借助电池也能工作的芯片, 而 ds1302 能够在学校掉电时,vcc2 无法给实时时钟 ds1302 供电,只有通过干电池 b1 给实时时钟 ds1302 的 vcc1 提供电量让 ds1302 继续工作,系统能够继续计时。而这时 四川信息职业技术学院毕业设计说明书(论文) 第 10 页 共 34 页 的其它电路停止工作,但存储器中的打铃时间不会因为没有电而丢失。其与单片机连 接方式如上图 3-5 所示。 3.3.2 存储器 24c02c 要保证设置的打铃时间数据在掉电时也不会丢失,同时实现在系统运行时能够修 改打铃时间,在本系统中采用 i2c 总线的串行存储器 24c02c 存储打铃数据。 1.存储器 24c02c 的引脚介绍 考虑到串口线、稳定性等方面,本系统采用串行数据传输存储器。其容量计算如 下:若以打铃次数较多的校园为例,每天按 12 节课计算,每节课打铃 2 次,再加上起 床和熄灯的次数,打铃大约在 20 次左右。这样每个信息单元占 8 个字节,存储时均按 照非压缩型 bcd 码存储,则需要存储空间大约在 160 个字节左右,选用 256 字节的存 储器就能够满足容量的要求,可以采用 atmel 公司的 24c02c。根据硬件电路的设计可 得 24c02c 的 i2c 硬件地址为:0a2h/0a3h。 (1)行数据(sda)引脚 串行数据引脚为双向引脚,用于把地址和数据输入/输出期间。该引脚为漏极开路。 因此,sda 总线要求在该引脚与 vcc之间接入上拉电阻(通常频率为 100khz 时该电阻 阻值为 10k,频率为 400khz 和 1mhz 时,阻值为 2k) 。 对于正常的数据传输,只允许在 scl 为低电平期间改变 sda 电平。而 sda 电平在 scl 高电平期间若发生变化,表明起始和停止条件产生。 (2)写保护(wp)引脚 该引脚必须连接到 vss或者 vcc。如果连接到 vss,写操作使能。如果连接到 vcc, 写操作被禁止,但读操作不受影响 2.引脚连接方法 引脚采用 i2c 总线连接方法,这种方法能够节约 i/o 输出端口。它主要的特点有: (1)总线只有两根线,即串行时钟线和串行数据线,这在设计中大大简化了硬件 接口; (2)每个连接到总线上的器件地址同时由芯片内部硬件电路和外部地址引脚决定, 避免了片选线的线连接方法,并建立简单的主从关系,主器件既可以作为发送器,又 可作为接收器; 四川信息职业技术学院毕业设计说明书(论文) 第 11 页 共 34 页 (3)它是一个真正的多主总线,带有竞争监测和仲裁电路,多个主机可以任意发 送而不破坏总线上的数据; (4)同步时钟可以作为停止或重新启动串行口发送的握手方式; (5)连接到同一总线的集成电路数量只受 400pf 最大总线电容的限制。 学校设定的系统时间和打铃时间存储在 24c02c 中。24c02c 的三个地址端口 a0、a1、a2 都接地,因而其存储地址为 a000h-a6ffh,共 1kb 的存储空间。其中,wp 是 24c02c 的写保护控制引脚,wp 为低电平时,串行存储器可以正常地读/写;wp 为高 电平时,对串行存储器内部的数据进行写保护。在系统掉电时不会丢失其中的内容, 保证了设置的打铃时间不会因系统掉电而需要重新设置。如图 3-6 所示。 图 3-6 24c02c 引脚连接图 3.4 键控模块 键盘是一组按键的组合,它是各种仪表中最常用的输入设备。操作人员可通过键 盘输入数据或命令,实现简单的人机对话。在单片机应用系统中,有的是单个按键, 有的是矩阵式的按键,即行列式按键。按键是一种常开型按钮开关,常态时按键的两 个触点处于断开状态,按下键时它们才闭合。根据本设计本的要求,我们选用独立式 键盘实现整个功能。 四川信息职业技术学院毕业设计说明书(论文) 第 12 页 共 34 页 3.4.1 独立式键盘介绍 图 3-7 独立式按键结构 独立式键盘的按键相互独立,每个按键占用一根 i/o 口线,每根 i/o 口线上的按 键工作状态不会影响其他按键的工作状态。这种按键软件程序简单,但占用 i/o 口线 较多(一根口线只能接一个键) ,适用于键盘应用数量较少的系统中。独立式按键电路 配置灵活,软件结构简单,但每个按键必须占用一根 i/o 口线,因此,在按键较多时, i/o 口线浪费较大,不宜采用。独立式按键结构图如图 3-7 所示。 3.4.2 键盘接口及键位的功能介绍 按键功能介绍: 模式按键:它的主要功能就是选择时钟芯片里的年、月、日、时、分、秒,当按 下模式这个键时,它从年到月依次往后的选中,这时按调节按钮就能从当前的时间往 上调。 调节按键:它的主要功能就是想改变当前的系统时间首先要按模式键,选中要修 改的时间,再按调节键就能控制当前系统时间递增。 存入按键:它的主要功能就是把系统不正确的时间修改后按下存入键,系统的时 间就为按下那瞬间的时间。 清空按键:它的主要功能就是当学校要重新输入打铃时间的时候,就先按下清空 键,再输入新的时间。 通过上述每个按键的功能介绍,实现对打铃系统的打铃时间设置。与单片机具体 链接图,如图 3-8 所示。 四川信息职业技术学院毕业设计说明书(论文) 第 13 页 共 34 页 图 3-8 键盘的接口连接 3.5 显示模块 在本系统中因为要显示年、月、日、星期、时、分、秒,如果用发光二极管不能 具体的显示出来,所以采用了七段数码显示管来作为显示元件。 3.5.1 数码管的组成及工作原理 数码管由 8 个发光二极管构成,可以用来显示数字、字符等它在家电及工业控制 中有着很广泛的应用。数码管实际上是由 7 个发光管组成“8”字形构成的,加上小数 点就是 8 个。这些段分别由字母 a、b、c、d、e、f、g、dp 来表示。数码管的引脚结 构如图 3-9 所示,其中 com 引脚为公共端,用来控制数码管显示的打开或关闭,既起 到“使能”作用。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我 们眼睛看到的字样。 根据公共端接法方式的不同,数码管又分为共阴极和共阳极两种结构的二极管, 分别如下: 共阳极就是将 8 个 led 的阳极连接到一起组成公共端 com,接到正极,当相应字段 为低电平“0”时,可以点亮该字段;但相应字段为高电平“1”时,该字段不亮。 共阴极就是将 8 个 led 的阴极连接到一起组成公共端 com,接负极,当相应字段为 高电平“1”时,可以点亮该字段;当相应字段为低电平“0”时,该字段不亮。 四川信息职业技术学院毕业设计说明书(论文) 第 14 页 共 34 页 图 3-9 led 数码管引脚 数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发 光二极管单元(多一个小数点显示) ;按发光二极管单元连接方式分为共阳极数码管和 共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(com) 的数码管。共阳数码管在应用时应将公共极 com 接到+5v,当某一字段发光二极管的阴 极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。 3.5.2 数码管的显示 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们 要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 四川信息职业技术学院毕业设计说明书(论文) 第 15 页 共 34 页 图 3-10 数码管动态显示电路 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之 一,动态驱动是将所有数码管的 8 个显示笔划“a、b、c、d、e、f、g、dp”的同名端 连在一起,另外为每个数码管的公共极 com 增加位选通控制电路,位选通由各自独立 的 i/o 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟 是那个数码管会显示出字形,取决于单片机对位选通 com 端电路的控制,我们只要将 需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。 通过分时轮流控制各个数码管的的 com 端,就使各个数码管轮流受控显示,这就是动 态驱动。在轮流显示过程中,每位数码管的点亮时间为 12ms,由于人的视觉暂留现 象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速 度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和 静态显示是一样的,能够节省大量的 i/o 端口,而且功耗更低。数码管动态显示连接, 如图 3-10 所示。 四川信息职业技术学院毕业设计说明书(论文) 第 16 页 共 34 页 第 4 章 整机原理 4.1 整机原理图 图 4-1 整机原理图 4.2 整机电路原理 电路中采用 i2c 总线的串行存储器 24c02c,在系统掉电时不会丢失其中的内容, 保证了设置的打铃时间不会因系统掉电而需要重新设置。24c02c 的三个地址端口 a0、a1、a2 都接地,因而其存储地址为 a000h-a6ffh,共 1kb 的存储空间。其中,wp 是 24c02c 的写保护控制引脚,wp 为低电平时,串行存储器可以正常地读/写;wp 为高 电平时,对串行存储器内部的数据进行写保护。 实时时钟芯片 ds1302 采用 3v 的电池作为后备电源,使 ds1302 内部的时钟不会因 为系统掉电而停止。在系统正常供电时,ds1302 通过内部的涓流充电电阻给后备电池 充电,能保证系统电池的长时间工作。 四川信息职业技术学院毕业设计说明书(论文) 第 17 页 共 34 页 掉电情况下:由 bat1 干电池通过 ds1302 的引脚 vcc1 供电,系统时间不会因为没 有电而停止工作,显示电路、键盘电路、存储电路、声音控制电路因为 at89c51 没有 电,所以停止工作。来电时,数码管上显示的系统时间不会是停电时刻的时间,系统 继续工作。 正常情况下:按键按钮通过 at89c51 的 p1.3、p1.4、p1.5、p1.6 脚进行调节、存 入、清空系统当前时间和打铃时间和模式选择。当前系统时间在数码管上显示系统时 间和打铃时间,学校设置的打铃时间存储在外部存储器 24c02c 中。ds1302 时钟芯片为 单片机提供实时时间并与 24c02c 中的打铃时间进行比较来控制 at89c51 的 p1.7 脚输 出高、低电平。如果当前系统与打铃时间不一致,at89c51 中的 p1.7 脚就输出高电平, 三极管 q1 截止,继电器断开,电铃电路不导通。如果当前系统时间与打铃时间一致, at89c51 中的 p1.7 脚就输出低电平,三极管 q1 导通,继电器闭合,电铃电路导通打铃。 四川信息职业技术学院毕业设计说明书(论文) 第 18 页 共 34 页 第 5 章 软件设计 本系统中软件部分应承担日期时间显示、按键扫描、系统状态设置、打铃时间判 断等功能。 5.1 打铃系统流程图 打铃系统程序打铃是是调用存储器中存储的打铃时间,把闹铃值与计时值的时、 分单元比较,看是否相等,如果不相等就不打铃,如果相等就启动闹铃,闹铃延时时 间为 12 秒。程序流程图如图 5-1 所示。 闹钟值与计数值时, 分单元相等? 开始 初始化 停闹、清除闹钟标 志和 2 秒计时标志 启动闹钟 标志置位 返回 闹钟计时 12 秒? y y n 图 5-1 打铃系统流程图 5.2 读时间日期显示流程图 读时间日期显示程序是先对时间日期进行初始化,再对是显示年月日还是显示时 分秒进行判断,并利用总线加以显示。程序流程图如图 5-2 所示。 四川信息职业技术学院毕业设计说明书(论文) 第 19 页 共 34 页 显示时、分、 秒、星期 开始 返回 开始 显示年、月、日 开始 赋初值 开始 timetodisplay 开始 if(yh | mode_n3) y n n 图 5-2 读时间日期显示流程图 5.3 led 显示流程图 显示子程序采用动态扫描法实现三位数码管的数值显示。测量数据在显示时需转 换成 10 进制 bcd 码放在 24c02c 存储器中,再转换成十进制进过总线输出,经由单片 机控制 led 显示。程序流程图如图 5-3 所示。 图 5-3 led 显示的流程图 n y 四川信息职业技术学院毕业设计说明书(论文) 第 20 页 共 34 页 5.4 主程序流程图 主程序比较简单,初始化完成后,调用按键扫描程序,取得键值,并根据当前系 统状态调用相应的子程序。这里有五个基本的子程序供调用,分别对应系统的各种功 能状态。分别是打铃时间设置子程序、当前时间显示子程序、键盘模块子程序、打铃 校准子程序等。程序流程图如图 5-4 所示。 main( ) 赋初值年、月、日、 时、分、秒、星期 while(1) 模式键? 调节键? 校正 led 显示模式 主循环计数 打铃点设置 打铃 返回 图 5-4 控制模块的流程图 n y n y 四川信息职业技术学院毕业设计说明书(论文) 第 21 页 共 34 页 第 6 章 仿真和调试 下面用 keil 与 porteus 仿真软件实现校园打铃的仿真与调试。 6.1 调试软件的介绍 keil 软件是目前最流行开发 mcs-51 系列单片机的软件,keil 提供了包括 c 编译 器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案, 通过一个集成开发环境(uvision)将这些部份组合在一起。 keil c51 vision2 集成开发环境是 keil software,inc/keil elektronik gmbh 开发的基于 80c51 内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发 工具,可以完成从工程建立到管理、编译、链接、目标代码的生成、软件仿真、硬件 仿真等完整的开发流程尤其是 c 编译工具在产生代码的准确性和效率方面达到了较高 的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。 proteus 是目前最好的模拟单片机外围器件的工具,它不仅能仿真单片机 cpu 的工 作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。可以仿 真 51 系列、avr,pic 等常用的 mcu 及其外围电路(如 lcd,ram,rom,键盘,马达, led,ad/da,部分 spi 器件,部分 iic 器件) 。 6.2 调试的操作步骤 1.在 uvision 集成开发环境中创建新项目(project) ,扩展文件名为 uv2,并为该 项目选定合适的单片机 cpu 器件。 2.用 uvision 的文本编辑器编写源文件,可以是汇编文件(.asm) ,也可以使 c 语 言文件(扩展名.c) ,并将该文件添加到项目中去。一个项目文件可以包含多个文件, 除了源程序文件外,还可以是库文件、头文件或文本说明文件。 3.通过 uvision2 的相关选择项,配置编译环境、连接定位器以及 debug 调试器的 功能。 4.对项目中的源文件进行编译连接,生成绝对目标代码和可选的 hex 文件,如果 出现编译连接错误则返回到第 2 步,修改源文件中的错误后重构整个项目。 5.对没有语法错误的程序进行仿真调试,调试成功后将 hex 文件写入到单片机应 四川信息职业技术学院毕业设计说明书(论文) 第 22 页 共 34 页 用系统的 rom 中。 6.下一步就可以在 proteus 软件中将 hex 文件烧入单片机。 6.3 仿真软件对于本设计的仿真 通过以上步骤,来实现校园打铃系统设计的仿真: 状态 1:led 数码管对年、月、日显示的仿真效果如图 6-1 所示。 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c51 r1 200r r2 200r r3 200r r4 200r r5 200r r6 200r r7 200r r8 200r a b c d e f g dp 1 2 3 4 5 6 7 8 a b c d e f g dp 1 2 3 4 5 6 7 8 rst 5 sclk 7 i/o 6 x1 2 x2 3 vcc1 8 vcc2 1 u2 ds1302 模式 调节 sck 6 sda 5 wp 7 a0 1 a1 2 a2 3 u3 24c02c q1 2n2905 r9 200r 清空 存入 i2c sda scl rl1 5v d1 1n4148 bat1 3v ls1 sounder 图 6-1 当前年、月、日的显示 状态 2:led 数码管对时、分、秒和星期显示的仿真效果如图 6-2 所示。 四川信息职业技术学院毕业设计说明书(论文) 第 23 页 共 34 页 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c51 r1 200r r2 200r r3 200r r4 200r r5 200r r6 200r r7 200r r8 200r a b c d e f g dp 1 2 3 4 5 6 7 8 a b c d e f g dp 1 2 3 4 5 6 7 8 rst 5 sclk 7 i/o 6 x1 2 x2 3 vcc1 8 vcc2 1 u2 ds1302 模式 调节 sck 6 sda 5 wp 7 a0 1 a1 2 a2 3 u3 24c02c q1 2n2905 r9 200r 清空 存入 i2c sda scl rl1 5v d1 1n4148 bat1 3v ls1 sounder 图 6-2 当前年、月、日的显示 proteus 的 isis 是一款 labcenter 出品的电路分析实物仿真系统,可仿真各种电 路和 ic,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿 真系统。 表 6-1 器件库及所选器件 器件库器件名称 microprocessor ics89c51 memory ics24c02c switches sbit key_change=p14; sbit key_wr_2402=p15; sbit key_clr_2402=p16; sbit l_out=p17; /数码管显示: 0 1 2 3 4 5 6 7 8 9 a b c d e f uchar code dis=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa 1,0x86,0x8e, / 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. a. b. c. d. e. f. 0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06, 0x0e, / y l j 黑 全亮 点 - 0x91,0xc7,0xe1,0xff,0x00, 0x7f, 0xbf; uchar disp_buf8; /显示缓冲区 uchar time7; /时间缓冲区 /延时子程序 void delay(unsigned int a) while(-a); /显示子程序 void display() uchar i; uchar ik; /赋初值 ik=0x01; /初始化为 1 for(i=0;i4)*10+(a /变成 16 进制并加 1 temp=temp/10*0x10+temp%10; /转回 bcd 码 return temp; /退出 bit yh; /显示标志,0=时分钞星期,1=年月日 uchar mode_n=0; /工作模式,0=常态,1=校分,2=校时,3=星期,4=校日,5=校月,6=校 年 void timetodisplay() /读时间日期送显示缓 time0=read_ds1302(year); /年 year time1=read_ds1302(month); /月 month time2=read_ds1302(date); /日 date time3=read_ds1302(week); /星期 week time4=read_ds1302(hour); /时 hour time5=read_ds1302(minute); /分 minute time6=read_ds1302(second); /秒 second if(yh | mode_n3) disp_buf0=0x02; /显示年月日 disp_buf1=0x00; disp_buf2=time0/0x10; disp_buf3=time0%0x10|0x10; disp_buf4=time1/0x10; disp_buf5=time1%0x10|0x10; disp_buf6=time2/0x10; disp_buf7=time2%0x10; else disp_buf0=ti

温馨提示

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

评论

0/150

提交评论