可编程作息时间控制器设计单片机_第1页
可编程作息时间控制器设计单片机_第2页
可编程作息时间控制器设计单片机_第3页
可编程作息时间控制器设计单片机_第4页
可编程作息时间控制器设计单片机_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

- 0 -20132014 学年 第 2 学期 单片机原理与应用课 程 设 计 报 告学 校: 北华航天工业学院题 目: 可编程作息时间控制器设计 专 业: 惺惺惜惺惺 班 级: Bxxxxx 姓 名: xxxxx 学 号: 惺惺惜惺惺信息学、 、指导教师: xx 电子工程系2013 年 6 月 14 日- 1 -可编程作息时间控制器设计任务书课题名称 可编程作息时间控制器设计指导教师 xx执行时间 20132014 学年第一学期 第 16 周学生姓名 学号 承担任务Zzz Zxxxx设计目的1、掌握汇编语言的基本结构及应用;2、掌握各个部分功能的设计及应用;3、学会使用 protues 软件进行电路仿真。设计要求1、 按照给定的时间模拟控制实现上下课打铃、灯光控制(屏幕显示) ;2、 具有各日期和时钟显示。摘 要本课题是应用 AT89C52 为核心控制器件的作息时间控制钟,由键盘、声音输出模块、电源转换模块和存储模块四部分组成。它利用 AT89C52 的定时/计- 2 -数器来计算时间,并用存储器记录数据,保证了系统的可靠性。AT89C52 单片机是整个设计的核心控制器件,根据从键盘接受的数据控制整个设计的工作流程。整体性好,人性化强,可靠性高,实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,可对一些以 24 小时为周期的开关量进行自动控制。如上下课打铃及扩音设备的开与关。采用 AT89C52 单片机来实现对上述开关量的控制,设有 8 位数码管、可以实时显示时间、系统还设有输入键盘,用以修改实时实时时钟,体现了系统简单、工作稳定可靠、价廉、控制时间精确及系统体积小等特点。首先设计各个模块的屏幕显示,其次是各个模块需要调用的小程序,有 PC机的日期和时钟,响铃声音,按键,屏幕显示以及延时的调用等等,最后是将各个功能模块与其中需要的小程序通过正确的汇编语言组建起来。这样便完成了源文件的建立。再通过.ASM 源文件生成的.EXE 可执行文件进行仿真。该仿真可以模拟实现:与 PC 机日期时钟保持一致的显示功能,仿照已设定的响铃时间进行打铃功能,根据已设定的早晚作息时间灯光控制的功能,键盘输入修正响铃时间,随时手动按键实现响铃的功能。目 录摘 要 .- 2 -目 录 .- 4 -第一章 绪论 .- 5 -1.1 课题研究的目的与意义 .- 5 -1.2 研究内容及采用方法 .- 5 -1.2.1 主要研究内容 .- 5 -1.2.2 主要采用方法 .- 5 -1.3 课题的研究原理 .- 6 -第 2 章 可编程作息时间控制器的方案设计 .- 7 -2.1 总体方案组成框图及设计流程图 .- 7 -2.2 具体步骤实施 .- 9 -2.2.1 日期和时钟显示功能的设计 .- 9 -2.2.2 上下课打铃功能的设计 .- 11 -2.2.3 灯光显示功能的设计 .- 14 -2.2.4 修改响铃时间功能的设计 .- 14 -2.2.5 模拟手动控制功能的设计 .- 15 -第 3 章 可编程作息时间控制器的 protues 仿真 .- 17 -3.1 仿真结果 .- 17 -3.2 性能及误差分析 .- 19 -附 录 .- 20 -参 考 文 献 .- 27 - 3 -第一章 绪论1.1 课题研究的目的与意义20 世纪末,电子技术得到了飞速的发展。在其推动下,现代电子产品几乎渗透到了社会的各个领域,有力的推动和提高了社会生产力的发展与信息化程度,同时也使现代电子产品性能进一步提升,产品更新换代的节奏也越来越快。时间对于人来说总是那么珍贵,工作的忙碌性和繁杂让人容易忘记当前时间。然而遇到重大事情的时候,一旦忘记时间,就会给自己或他人造成更大的麻烦。对于学校来说作息时间尤为重要。如今,在电子计算机基础上发展而来的可编程作息时间控制器,它可以利用电子计算机的内部时间,通过程序判断处理,完成对作息时间的精确控制,并且由于是程序控制,所以可通过改变程序而进而灵活改变作息时间,同时可以实时显示时间,并实现打铃功能。可编程时间控制器可实现对时间控制的智能化,摆脱由人控制时间的长短不同的不便,并且可以在必要时人工切入控制,完美的满足作息时间控制。1.2 研究内容及采用方法1.2.1 主要研究内容用 C 语言编写作息时间控制程序,按照给定的时间模拟控制,上下课打铃、灯光控制(屏幕显示) ,并且具备日期和时钟显示。给定的时间可修改,可模拟手动控制,用扬声器模拟打铃。1.2.2 主要采用方法通过汇编语言编程,先在数据段中开几段缓冲区,以存放需要显示的提示信息以及存储 PC 机内部时钟日期等等,调用子程序的清屏部分来显示已经设定好的屏幕部分,再调用 DOS 的日期及时钟调用功能,读取 PC 机内部日期和时钟,并将数据存入显示缓冲区,然后调用时间和日期显示功能,把程序设计成用刷新的方式来不断获取系统时间,这样就有了一秒一秒走动的日期时钟显- 4 -示,在此过程需要用到延时程序,所以把延时程序单独做成一个子程序,然后在需要的时候调用它,使得时间显示程序更加精炼,此时日期和时钟显示功能已经完成;而后设计灯光控制(屏幕显示) ,采用比较跳转的方式即可,当到达设定的时间区域时通过比较来判断是亮灯还是灭灯;随后是上下课打铃的模拟,需要调用 DOS 显示功能,将设定好的时间在屏幕上显示出来,然后调用 PC 机内部时钟,判断时钟与给定时间是否相同,进而判断是否响铃,若响铃则调用设定好的响铃程序,并实现屏幕模拟显示;给定时间修改是调用键盘 I/O 中断功能号,获取键值的方法来进入,先确定应该修改哪个响铃,再将新的响铃时间数据存入要修改时钟的缓冲区,并将其覆盖来实现;模拟手动控制、用扬声器模拟打铃,同样采用调用键盘 I/O 中断功能号,获取键值的方法,判断是否与设定的手动按键相同,若相同则进入手动控制,进入后调用响铃程序,而后自动退出响铃,开始其他响应功能。1.3 课题的研究原理将定时闹钟改造为 4 路可调闹钟,从而实现打铃等功能。当四路闹钟中的任一路到时,均会点亮灯、打铃。如有需求,可对程序进行调整,增加闹钟的路数,及到时后的处理方式- 5 -第 2 章 可编程作息时间控制器的方案设计2.1 总体方案组成框图及设计流程图时间作息控制的主体电路应包括秒信号发生器、时间显示电路按键电路、供电电源以及闹铃指示电路等几部分。时间作息控制的系统组成框图如图 2-1-1 所示:图 2-1-1 时间作息控制的系统组成框图复位、时钟等电路电源供电电路声光指示电路LED 显示电路按钮电路AT89C52- 6 -图 2-1-2 介绍了作息时间控制器的大致设计思路否是图 2-1-2 方案实施流程图开始系统日期时间并且转二进制为 ACSII 码将日期时间存入显示器缓冲区结束灯光控制显示显示日期、时间和界面响铃设定和修正时间调用清屏程序按下 Esc?手动控制- 7 -2.2 具体步骤实施2.2.1 日期和时钟显示功能的设计2.2.1.1 日期和时钟显示流程图图 2-2-1 是时钟和日期设计的大体思路,先在数据段中开辟存储日期时间等的缓冲区,便于后续程序的使用,再调日期和时钟的 DOS 功能调用中的显示功能,将数据由二进制转换为 ASCII 码,存储并显示。图 2-2-1 日期和时钟显示流程图数据段存储显示时间提示开辟存储日期时间缓冲区 代码段中调用日期二进制转换为 ASCII 码存储缓冲区调用时间二进制转换为 ASCII 码存储缓冲区调用界面和日期时钟显示- 10 -2.2.1.2 日期和时钟设计步骤分析该模块设计中,先在数据段开了两段缓冲区,以存储显示日期和时间的提示 Time is 以及从 PC 机读到的日期和时间。而后是调用 DOS 的日期功能,其功能号是 2ah,日期分别存于 cx,dx 中,在该设计中调用出来的日期时间均是二进制数,如果要在界面中显示必须要转换成 ASCII 码。每一次数制转换后均要将转换后的数据存储于数据段开辟的存储缓冲区 tbuf 内,接下来便可调用DOS 的的 9 号显示功能,只需将提示信息、日期及时间的存储缓冲区的偏移地址赋予 dx,再使用 DOS 功能,调用 9 号的显示功能即可。这样,日期和时间的第一次显示时间完成,由于 PC 机的日期时间一直在变化,所以需要不断调用PC 机的显示时间并显示,因此需要再回转至最初的调用日期程序,这样,显示日期时间的功能才真正完成。下面是针对数制转换和日期时间的显示做的更为细致的解读。(1) 数制转换通常在计算机当中,从键盘输入的十进制数的每一位数码或者是向 CRT 输出的十进制的每一位数,均是以它的 ASCII 码表示的。而在机器中的一个十进制数,是以相应的二进制数存放或者是以 BCD 码的形式存放。因此,如果我们想将 PC 机中读取的日期时间显示到 .EXE 的界面中,必须将从中读取的二进制数转换为 ASCII 码。本设计是先将二进制数转换为十进制数,再将十进制数转换为 ASCII 码的,使其在屏幕上显示出来。由于调用该小程序段的显示数值都是十位数或个位数,所以该段小程序的设计思路是使用减法,统计需要转换的数值中有多少 10、1,即为十进制数中的十、个位上的数,然后将十进制数转换为 ASCII 码输出。首先,在数据段中已经设计好了被减数,即 const 内的数据,用需要数据转换的数据已经在之前的数据中赋值给了 ax,使用 sub ax,si语句实现上述的减法,若不够减,则需要重复减,并累计次数,直至不够减为止,累计的次数即为该数据十位数的数值,此时 仍旧通过 or dI,30h 语句转换为 ASCII 码,并将转换后的数据都存储于bx 中。(2)日期时钟显示功能9 号 DOS 功能调用可实现日期时钟显示功能,由于需要在.EXE 界面显示提示信息 mess1 中的相关内容,因此调用 BIOS 功能,置光标于 0 行 0 列,将ah 赋值 2 即可置光标, dh 的赋值表示行,dI 的赋值表示列,使用 Iea dx,messI语句,将 messI 的偏移地址赋予 dx,使用 mov ah,9 和 int 21h 语句完成 DOS 的 9号功能调用,这样.EXE 界面就出现了 mess 1 中的相关内容;再使用 BIOS 功能调用,将光标置于 1

温馨提示

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

评论

0/150

提交评论