毕业设计(论文)-基于CPLD的MIDI音乐播放器的设计.doc_第1页
毕业设计(论文)-基于CPLD的MIDI音乐播放器的设计.doc_第2页
毕业设计(论文)-基于CPLD的MIDI音乐播放器的设计.doc_第3页
毕业设计(论文)-基于CPLD的MIDI音乐播放器的设计.doc_第4页
毕业设计(论文)-基于CPLD的MIDI音乐播放器的设计.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

无锡城市职业技术学院 毕毕 业业 设设 计计 报报 告告 中文题目中文题目 基于基于 cpldcpld 的的 midimidi 音乐播放器的音乐播放器的 设计设计 英文题目英文题目 design and production of six multi- function digital clock based on mcu 姓姓 名名 所在系部所在系部 电子信息工程系 所学专业所学专业 物联网应用技术 班级名称班级名称 物联网 1301 班 学学 号号 指导教师指导教师 日日 期期 2015 年 08 月 28 日 目录目录 摘要.i abstract.ii 一、引言 .1 二、系统设计.1 (一)设计思路.1 (二)系统原理方框图.2 三、硬件设计.2 (一)系统整体电路图.2 (二)单片机 at89c2051 .2 (三)复位电路.3 (四)时钟电路.4 (五)按键电路.5 (六)迅响电路及输入、输出电路5 (七)数码管显示电路.6 (八)稳压电路.7 四、软件设计.7 (一)主程序流程图.7 (二)闹铃程序设计.8 (三)中断程序设计.9 五、制作与调试.10 六、结束语.11 参考文献.13 谢辞.14 附录.15 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) i 摘要摘要 摘要摘要:本文主要介绍了用 at89c2051 单片机控制的数字钟的功能以及相应的硬 件电路的设计,并且用 c 语言编写了相应的程序下载到单片机上进行调试,结合 硬件电路实现对应的功能:时间功能、校时功能、闹钟功能、倒计时功能和计数 器功能。数字电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统 的机械钟相比,它具有定时准确、显示直观、无机械传动装置等优点,因而得到 广泛应用。数字电子钟的设计方法有多种,例如可用中小规模集成电路组成电子 钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子 钟;还可以利用单片机来实现电子钟等等,这些方法都各有特点。其中,利用单 片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,精确度高等特点。 关键词关键词:at89c2051;数码管;7805 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) ii abstract abstract: this article mainly introduced the function of digital clock using at89c2051 single chip microcomputer control and the corresponding hardware circuit design, and the corresponding program written in c language to download to the single chip microcomputer to debug, combined with the corresponding hardware circuit implementation function: the functions of time, when the school, alarm, countdown timer and counter. digital electronic clock is a digital circuit is used to display seconds, minutes, when the timing device, with the traditional mechanical zhong xiang ratio, it has the time accurate, direct display, the advantages of no mechanical transmission device, and widely used. there are many types of design method of digital electronic clock, for example, can use of small and medium scale integrated circuit, electronic clock, also can use special electronic clock chip with display circuit and its peripheral circuit of electronic clock needed; also can take advantage of the single chip microcomputer to realize electronic clock and so on. these methods all have different characteristics, among them, the use of single-chip microcomputer implementation of electronic clock with flexible programming, facilitate electronic clock function expansion, high accuracy, etc. keywords:at89c2051;led;7805 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 1 页 共 27 页 基于单片机的多功能六位数字钟设计与制作基于单片机的多功能六位数字钟设计与制作 一、引言一、引言 时间对于我们来说是极其的宝贵,浪费时间就等于浪费我们的生命。因此, 设计出一个好的精确度高的时钟是极其重要的。数字钟已成为人们日常生活中必 不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学 习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的 石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、 自动报时及自动控制等各个领域。钟表的数字化给人们生产生活带来了极大的力 便,而且大大地扩展了钟农原先的报时功能。数字钟是一种用数字电路技术实现 时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机 械装置,具有更长的使用寿命,已得到广泛的使用。数字钟的设计力法有许多种, 可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路 及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟。本文主要 介绍了数字钟的功能以及相应的硬件电路的设计,并且用 c 语言编写了相应的程 序下载到单片机上进行调试,结合硬件电路实现对应的功能:时钟功能、校时功 能、闹钟功能、倒计时功能、秒表功能和计数器功能,具有实用性。 二、二、系统设计系统设计 (一)(一)设计思路设计思路 本文所设计的系统,s1 为功能选择按键,s2 为功能扩展按键,s3 为数值加 一按键。具有如下功能: 1、时钟功能:上电后即显示 10:10:00 ,寓意十全十美。 2、校时功能:短按一次 s1,即当前时间和冒号为闪烁状态,按动 s2 则小 时位加 1,按动 s3 则分钟位加 1,秒时不可调。 3、闹钟功能:短按二次 s1,显示状态为 22:10:00,冒号为长亮。按动 s2 刚小时位加 1,按动 s3 则分钟位加 1,秒时不可调。当按动小时位超过 23 时则 会显示-:-:-,这个表示关闭闹钟功能。闹铃声为蜂鸣器长鸣 3 秒钟。 4、倒计时功能:短按三次 s1,显示状态为 0,冒号为长灭。按动 s2 则从低 位依此显示高位,按动 s3 则相应位加 1,当 s2 按到第 6 次时会在所设定的时间 状态下开始倒计时,再次按动 s2 将再次进入调整功能,并且停止倒计时。 5、秒表功能:短按四次 s1,显示状态为 00:00:00,冒号为长亮。按动 s2 则开始秒表计时,再次按动 s2 则停止计时,当停止计时的时候按动 s3 则秒 表清零。 6、计数器功能:短按五次 s1,显示状态为 00:00:00,冒号为长灭,按动 s2 则计数器加 1,按动 s3 则计数器清零。 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 2 页 共 27 页 (二)系统原理方框图(二)系统原理方框图 图 1 为系统原理方框图。如图 1 所示,本系统由 at89c2051、时钟电路、按 键电路、复位电路、迅响电路及输入输出电路和六位数码管显示等部分组成,其 中 at89c5051 单片机为控制核心。 复位电路 迅响电路 及输入输 出电路 at89c2051 稳压电路 六位数码管 显示 按键电路 时钟电路 图图 1 1:系统原理方框图:系统原理方框图 三、硬件设计三、硬件设计 (一)系统整体电路图(一)系统整体电路图 附录 1 为系统整体电路图。如附录 1 所示,本文所设计的系统以 at89c2051 为核心器件,具有上电复位的功能。显示部分主要器件为 2 位共阳红色数码管, 驱动采用 pnp 型三极管驱动,各端口配有限流电阻,驱动方式为扫描,占用 p1.0p1.6 端口。冒号部分采用 4 个 3mm 的红色发光二极管,驱动方式为独立 端口驱动,占用 p1.7 端口。按键 s1s3 采用复用的方式与显示部分的 p3.5、p3.4、p3.2 口复用,其工作方式为:在相应端口输出高电平时读取按键 的状态并由单片机支除抖动并赋予相应的键值。迅响电路由有源蜂鸣器和 pnp 型三极管组成,其工作原理是当 pnp 型三极管导通后有源蜂鸣器立即发出定频 声响。驱动方式为独立端口驱动,占用 p3.7 端口。 (二二)单片机)单片机 at89c2051at89c2051 at89c2051 是由 atmel 公司推出的一种小型单片机。95 年出现在中国市场。 其主要特点为采用 flash 存贮器技术,降低了制造成本,其软件、硬件与 mcs-51 完全兼容,可以很快被中国广大用户接受,其程序的电可擦写特性,使得开发与 试验比较容易。图 2 为 at89c2051 引脚图。 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 3 页 共 27 页 图图 2 2: at89c20151at89c20151 如图 2 所示,其引脚功能如下: 1、vcc:电源电压。 2、gnd:地。 3、p1 口:p1 口是一个 8 位双向 i/o 口。引脚 p1.2p1.7 提供内部上拉电阻, p1.0 和 p1.1 要求外部上拉电阻。p1.0 和 p1.1 还分别作为片内精密模拟比较器 的同相输入(ani0)和反相输入(ain1)。p1 口输出缓冲器可吸收 20ma 电流并能直 接驱动 led 显示。当 p!口引脚写入“1”时,其可用作输入端,当引脚 p1.2p1.7 用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输 入端。当引脚 p1.2p1.7 用作输入并被外部拉低时,它们将因内部的上拉电阻而 流出电流。 4、p3 口:p3 口的 p3.0p3.5、p3.7 是带有内部上拉电阻 的七个双向 i/o 口引脚。p3.6 用于固定输入片内比较器的输出信号并且它作为一通用 i/o 引脚而 不可访问。p3 品缓冲器可吸收 20ma 电流。当 p3 口写入“1”时,它们被内部上 拉电阻拉高并可用作输入端。用作输入时,被外部时拉低的 p3 口脚将用上拉电 阻而流出电流。p3 口还接收一些用于闪速存储器编程和程序校验的控制信号。 5、rst:复位输入。rst 一旦变成高电平所有的 i/o 引脚就复位到“1” 。当 振荡器正在运行时,持续给出 rst 引脚两个机器周期的高电平便可完成复位。每 一个机器周期需 12 个振荡器或时钟周期。 6、xtal1:作为振荡器反相器的输入和内部时钟发生器的输入。 7、xtal2:作为振荡器反相放大器的输出。 (三)复位电路(三)复位电路 本设计采用了单片机 at89c2051 为核心器件,它与 c51 相比除少了 p0、p2 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 4 页 共 27 页 口外指令完全相同。在电路中 p1 口输出段码数据,接六位数码管的段码引脚,p3 口作扫描控制,控制各位数码管的显示情况!并配合所有的外围电路,具有上电 复位的功能,无手动复位功能,其复位电路如图 3 所示。 图图 3 3:复位电路:复位电路 at89c2051 单片机的复位是由外部的复位电路来实现的。复位引脚 rst 通过 一个施密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周 期的 s5p2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复 位操作所需要的信号。上电复位电路是种简单的复位电路,只要在 rst 复位引 脚接一个电容到 vcc,接一个电阻到地就可以了。上电复位是指在给系统上电时, 复位电路通过电容加到 rst 复位引脚一个短暂的高电平信号,这个复位信号随着 vcc 对电容的充电过程而回落,所以 rst 引脚复位的高电平维持时间取决于电容 的充电时间。为了保证系统安全可靠的复位,rst 引脚的高电平信号必须维持足 够长的时间。上电自动复位是通过外部复位电路的电容充电来实现的。只要 vcc 的上升时间不超过 1ms,就可以实现自动上电复位。 (四)时钟电路(四)时钟电路 时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有 条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的 质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部 时钟方式,另一种为外部时钟方式。图 4 为时钟电路,如图 4 所示,本文用的是 内部时钟方式。 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 5 页 共 27 页 图图 4 4:时钟电路:时钟电路 (五)按键电路(五)按键电路 按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相 应的 i/o 端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳 定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时 间的常长短与开关的机械特性有关,一般在 5-10ms 之间。为了避免 cpu 多次处 理按键的一次闭合,应采用措施消除抖动。图 5 为按键电路。如图 5 所示,本文 采用的是独立式按键,直接用 i/o 口线构成单个按键电路,每个按键占用一条 i/o 口线,每个按键的工作状态不会产生互相影响。按键 s1s3 采用复用的方 式与显示部分的 p3.5、p3.4、p3.2 口复用。其工作方式为,在相应端口输出高 电平时读取按键的状态并由单片机消除抖动并赋予相应的键值。 图图 5 5: 按键电路按键电路 (六)迅响电路及输入、输出电路(六)迅响电路及输入、输出电路 图 6 为迅响电路及输入、输出电路。如图 6 所示,迅响电路由有源蜂鸣器和 pnp 型三极管组成,当 pnp 型三极管导通后有源蜂鸣器立即发出定频声响,驱 动方式为独立端口驱动,占用 p3.7 端口。 输出电路是与迅响电路复合作用的,其电路结构为有源蜂鸣器,5.1k 定值电 阻 r6,排针 j3 并联。当有源蜂鸣器无迅响时 j3 输出低电平,当有源蜂鸣器发出 声响时 j3 输出高电平,j3 可接入数字电路等各种需要。驱动方式为迅响复合输 出,不占端口。 输入电路是与迅响电路复合作用的,其电路结构是在迅响电路的 pnp 型三 极管的基极电路中接入排针 j2。引脚排针可改变单片机 i/o 口的电平状态,从而 达到输入的目的。驱动方式为复合端口驱动,占用 p3.7 端口。 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 6 页 共 27 页 图图 6 6: 迅响电路及输入、输出电路迅响电路及输入、输出电路 (七)数码管显示电路(七)数码管显示电路 1、led 数码管结构及工作原理数码管结构及工作原理 led 数码管(led segment displays)是由多个发光二极管封装在一起组成 “8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电 极。每一笔划都是对应一个字母表示 dp 是小数点。led 数码管内部引脚图如图 7 所示。led 数码管根据 led 的接法不同分为共阴和共阳两类。本文所设计的系 统采用共阴接法。 图图 7 7:ledled 数码管内部引脚图数码管内部引脚图 2 2、显示原理显示原理 图 8 为数码管电路。如图 8 所示,显示部分主要器件为三个两位一体共阳极 数码管,驱动采用 pnp 型三极管驱动,各端口配有限流电阻,驱动方式为动态 扫描,占用 p3.0p3.5 端口,段码由 p1.0p1.6 输出。冒号部分采用 4 个 3.0 的红色发光二极管,驱动方式为独立端口 p1.7 驱动。 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 7 页 共 27 页 图图 8 8:数码管电路:数码管电路 (八)稳压电路(八)稳压电路 图 9 为稳压电路,如图 9 所示,系统采用 7805 稳压器,不论其输入端接多少 伏电源,其输出是固定的 5v。因为是线性稳压,所以其输出波形杂波比较严重, 而且其输出会复制输入的波形出来。所以前后都要滤波,在输入端加电容时相当 于平滑电容,起到一个滤波的作用,提高 ic 工作稳定性。输出端加电容是为本 地器件提供能量的存储器件,它能使稳压器的输出均匀化,降低负载需求。 图图 9 9: 稳压电路稳压电路 四、软件设计四、软件设计 (一)(一)主程序流程图主程序流程图 图 10 为系统主程序流程图,如图 10 所示,程序里先定义两个中断定时器 t0 和 t1,一个作为秒记数用,另一个作为调整时闪烁用。编程时先将 p1 和 p3 口数据 清零,然后 p1 和 p3 口作动态扫描显示,由于人的眼睛有延迟性,当扫描频率非常 高时人就感觉数码管一直亮着,而同时记数器在遵循时间的变化方式执行着秒到 了 60 分加一,分到了 60 小时加一,小时到了 24 就归零。p3.7 作为时间调整按 钮当长按按住 2 秒以上进入校准时间状态及换档和退出,快速点触用于调节时间 数值,归零是复位按钮。 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 8 页 共 27 页 开始 显示时钟 to、t1 一个用秒计数,另 一个用于调整时闪烁 允许调整子程序 允许 to 中断 按键按下 进入功能程序序 图图 1010:主程序流程图:主程序流程图 (二)闹(二)闹铃铃程序程序设计设计 闹铃功能的实现设计到两个方面:闹铃时间设定和是否闹铃判别和处理。闹 铃时间设定模块的设计可参照时间设计模块,这里着重阐述闹铃判别与处理模块 的设计问题。闹铃判别与闹铃处理的关键在于判别何时要进行闹铃判别。闹铃判 别与处理的代码包含在定时器 0 的中断子程序中,其程序流程图如图 11 所示: 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 9 页 共 27 页 闹钟判别处理 时十位、个位,分十位、个位改变 了 是否设置了闹铃 判断当前的时间是 设定的时间 闹铃响 设定闹铃 中断返回 中断返回 n y y n 图图 1111:闹铃程序流程图:闹铃程序流程图 (三)中断程序设计(三)中断程序设计 中断程序完成时间计数,时间调整,误差消除等功能。图 12 为中断程序流 程图。如图 12 所示,采用 at89c2051 内部 t0 中断实现,定时时间为 125ms,当 时间到达 125ms8,即 1 分钟时,分计数缓冲器 minbuffer 增加 1,到达 1 小时, 则时计数缓冲器 hourbuffer 增加 1,并将分、时的个位、十位放入显示缓冲器。 当分计数缓冲器和时计数缓冲器分别到达 60min、24h 时,则对它们清零,以便 重新计数。在中断设计中,还通过软件实现了累计误差消除功能,使整个系统时 间的精 确定得到保证。 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 10 页 共 27 页 定时器中断 是否到下 1 秒 是否整分 是否整时 秒值增加 1 分钟值增加 1 小时值增加 1 中断返回 n y y n n y 图图 1212:中断程序流程图:中断程序流程图 五、制作与调试五、制作与调试 本系统电路的制作主要运用到“无线电装接工”这门课程的专业知识。主要 制作步骤如下:首先是制作准备,主要是器件采购和焊接工具的准备。需准备好 电路所需的元器件、导线、电烙铁、焊锡丝、万能板,万用表等器材和工具。接 下来是器件检测,用万用表检查元器件的好坏,对于不良器件,应当剔除。之后 就是装配与焊接了,要按照先低后高,先小后大,先卧式后立式的顺序,正确插 入元件,其高低、极性要符合规定。先从最低元件安装。应先安装、焊接跳线机 及电阻,用电阻多余的脚做跳线,电阻引脚不分正负,焊接时间最好控制在 2-3 秒。然后安装、焊接瓷片电容。瓷片电容部分正负极。然后安装、焊接轻触开关 然后安装、焊接三极管。三极管的外形基本一样,注意分青,且方向要和电路板 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 11 页 共 27 页 上的方向一致。然后安装、焊接 12mhz 晶振。晶振没有正负极。然后安装、焊接 电解电容,装的时候要躺着安装,立着会影响发光二极管的显示不整齐。然后安 装、焊接 20 脚 ic 插座,从用一小缺口或小圆点标记的地方以逆时针数依次为 1- 20 脚,安装时要注意缺口和电路上的缺口相一致。20 只引脚都插到位后,先用 手指按住,固定对角两只引脚,防止插入的引脚掉出来,再把板放到桌面上把剩 下的引脚焊好。焊好后不要急于插入单片机芯片,因为还有其他元件焊接,防止 电烙铁带静电击坏单片机芯片。然后安装、焊接蜂鸣器。然后后安装、焊接 led。因为 led 和普通二极管一样,有正负极之分,所以安装时要比较小心,不 能装错。最后安装、焊接数码管。把调试好的程序灌入 at89s52 芯片后,接上 5v 电源,此时,数码管显示设置时间。这数字钟不是很复杂,因此调试过程中 没遇到很大的困难,只是焊接时,线路板小线又多,必须得小心也要有耐心。要 插好,焊好,要小心短路或者接错之类。要想焊的漂亮,电烙铁的温度也要掌握 好,正确使用助焊剂。图 13 为实物图片。 图图1313:实物图片:实物图片 六、结束语六、结束语 经过这次毕业设计,我学到了很多,自己的知识积累和成长方面都有了明显 的提高。然而虽然自己这么用心努力的做好毕业设计,但是难免不出错,或是有 些地方不完善,其实这些问题多多少少是不可避免的,所以今后遇到什么问题仍 然需要继续专研,继续努力。经过大量查找资料和老师的不断指点,我将所设计 的六位数码管电子钟焊接成功,虽然不是很稳定,但在这个过程中,我了解了各 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 12 页 共 27 页 个元器件的识别与测量,也了解了 at89c2051 单片机及其引脚功能。同时明白了 六位数码管电子钟的工作原理并实现了其功能。本程序设计时,只用了一个定时 器 t0,其他的中断全部关断,定时器工作在两个 8 位自动加载初始值状态。简短 的定时中断程序只负责时间的计数和进位功能,这是保证走时精确。有三个轻触 式按键:功能选择按键 s1,功能扩展按键 s2,数值加一按键 s3。此数字钟采用 了一只 npn 型的三极管及蜂鸣器为闹时讯响电路。 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 13 页 共 27 页 参考文献参考文献 1江路明, 模拟电子技术基础 ,江西高校出版社,2008 年 2林知秋, 电路基础 ,江西高校出版社,2004 年 3陈永庆, 数字电路基础 ,北京交通大学出版社,2010 年 4张越南, c 语言程序设计案例教程 ,交通大学出版社,2011 年 5王宜怀, 嵌入式技术基础与实践(第 2 版) ,清华大学出版社,2011 年 6刘爽, 电子 cad 技术(第三版) ,电子工业出版社,2012 年 7刘近峰, 无线电装接工 ,中国劳动出版社,1999 年 8魏立峰, 单片机原理与应用技术 ,北京大学出版社,2006 年 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 14 页 共 27 页 谢辞谢辞 经过这次毕业设计,我学到了很多,自己的知识积累和成长方面都有了明显 的提高。然而虽然自己这么用心努力的做好毕业设计,但是难免不出错,或是有 些地方不完善,其实这些问题多多少少是不可避免的,所以今后遇到什么问题仍 然需要继续钻研,继续努力。这次毕业设计的制作,相当于对在大学三年专业知 识的一次综合检测与运用。在做本次毕业设计的一开始遇到许多专业上面的难题, 比如说 c 语言的一些掌握存在不足,硬件的连接,所以总会出现难题,但是随着 时间的推移,通过查阅书籍,询问同学或是指导老师,从而不断完善,不断的克 服解决以上问题。这不仅是一次简单的毕业设计,更是理论与现实有效结合的机 会。 以前我的单片机学的不是很好,对很多的器件运行很是不熟对他们不能够应 用的得心应手。为了写这次的毕业论文我不断的在网上书籍上找寻各种器件和电 路,并不断的对他们进行了解分析又不懂的及时向导师请教。现在我喜欢上了这 门课程,我觉得这里面有很多好玩的东西神奇的东西,能让我学到很多。 在此衷心的感谢所有在我大学期间在学习、生活上关心我、支持我和还有陪 我大学一起度过的好同学! 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 15 页 共 27 页 附录附录 1系统整体电路图 附录附录 1 1:系统整体电路图:系统整体电路图 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 16 页 共 27 页 2程序主要代码 #include code senen_seg10=0x81,0xe7,0x92,0xa2,0xe4,0xa8,0x88,0xe3,0x80,0xa0; /p1.7(冒号)口高电平 bit key1_enter=0,key2_enter=0,key3_enter=0,countdown_mark=0,stopwatch_mark =0,count_mark=0,bell_mark=0; /状态标志 unsigned char program=0,program_variable=0,count_bit=0,count=0; unsigned char hour=10,minute=10,second=0; /时间变量 unsigned char delayed_hour=22,delayed_minute=10,delayed_second=0; /定时变量 unsigned char count_hour=0,count_minute=0,count_second=0; /计时计数变量 unsigned char count_time=0,count_count=0; void delay(unsigned int t)/延时子程序 unsigned int i,j; for(i=0;i=199) count_time=0; second+; if(second=60) second=0; minute+; if(minute=60) minute=0; hour+; if(hour=24)hour=0; if(delayed_hour=hour count_second-; if(count_second=60) count_second=59; 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 18 页 共 27 页 count_minute-; if(count_minute=60) count_minute=59; count_hour-; if(count_hour=100) count_hour=99; if(count_second=0 if(stopwatch_mark=1) /秒表程序 count_count+; if(count_count=2) count_count=0; count_second+; if(count_second=100) count_second=0; count_minute+; if(count_minute=60) count_minute=0; count_hour+; if(count_hour=60) count_hour=0; unsigned char show_key (void) unsigned char x=0,y=0; switch (program) case 0: p1 /时钟秒的个位 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 19 页 共 27 页 break; case 1: if(count_time=90) p1 /校正秒的个位 break; case 2: if(delayed_hour=24) p1=0xfe;/闹钟秒的个位 else p1 break; case 3: if(count_bit=0) p1/倒计时秒的个 位 else p1=0xff; break; case 4: p1 /秒表秒的个位 break; case 5: p1 /计数器个位 break; p3_3=0; delay(10); if(p3_5=0)/功能键1识别 key1_enter=1; if(count=90) p1 /校正秒的十位 break; case 2: if(delayed_hour=24) p1=0xfe; /闹钟秒的十位 else p1 break; case 3: if(count_bit=1) p1/倒计时秒的十 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 20 页 共 27 页 位 else p1=0xff; break; case 4: p1 /秒表秒的十位 break; case 5: p1 /计数器十位 break; p3_1=0; delay(10); p3_1=1; p1|=0xff; switch (program) case 0: p1 /时钟分的个位 break; case 1: if(count_time=90) p1 /校正分的个位 break; case 2: if(delayed_hour=24) p1=0xfe;/闹钟分的个位 else p1 break; case 3: if(count_bit=2) p1/倒计时分的个 位 else p1=0xff; break; case 4: p1 /秒表分的个位 break; case 5: p1 /计数器百位 break; p3_2=0; delay(10); p3_2=1; p1|=0xff; 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 21 页 共 27 页 switch (program) case 0: p1 /时钟秒的个位 break; case 1: if(count_time=90) p1 /校正秒的个位 break; case 2: if(delayed_hour=24) p1=0xfe;/闹钟秒的个位 else p1 break; case 3: if(count_bit=3) p1/倒计时秒的个 位 else p1=0xff; break; case 4: p1 /秒表秒的个位 break; case 5: p1 /计数器千位 break; p3_5=0; delay(10); p3_5=1; p1|=0xff; switch (program) case 0: p1 /时钟时的个位 break; case 1: if(count_time=90) p1 /校正时的个位 break; case 2: if(delayed_hour=24) p1=0xfe; /闹钟时的个位 else p1 break; case 3: if(count_bit=4) p1/倒计时时的个位 else p1=0xff; break; case 4: p1 /秒表时的个位 break; 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 22 页 共 27 页 case 5: p1 /计数器万位 break; p3_0=0; delay(10); if(p3_4=1 /确认功能键2识别,返回 3 key2_enter=0; p3_0=1; p1|=0xff; switch (program) case 0: p1 /时钟时的个位 break; case 1: if(count_time=90) p1 /校正时的个位 break; case 2: if(delayed_hour=24) p1=0xfe; /闹钟时的个位 else p1 break; case 3: if(count_bit=5)p1 /倒计时时的个 位 else p1=0xff; break; case 4: p1 /秒表时的个位 break; case 5: p1 /计数器万位 break; p3_4=0; delay(10); if(p3_5=1 /确认功能键1为长按,返回1 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 23 页 共 27 页 else x=2; /确认功能键1为短按,返回2 key1_enter=0; count=0; if(p3_2=1 /确认功能键3识别,返回4 key3_enter=0; p3_4=1; p1|=0xff; if(program=100) p1/校时和显示功能时钟 时冒号闪烁 if(program=24)hour=0; break; case 4: minute+; if(minute=60)minute=0; break; break; case 2: while(program=2) /闹钟菜单 switch(show_key() case 0: break; case 1:program=0; break; case 2:program=3; break; case 3:delayed_hour+; if(delayed_hour=25)delayed_hour=0; break; case 4:delayed_minute+; if(delayed_minute=60)delayed_minute=0; break; break; 无锡城市职业技术学院 2011 级物联网应用专业毕业设计报告(论文) 第 25 页 共 27

温馨提示

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

评论

0/150

提交评论