汇编语言可编程作息时间控制器

合集下载

可编程作息时间控制器设计

可编程作息时间控制器设计

可编程作息时间控制器设计作息时间控制器是一种用来帮助人们管理健康作息时间的设备。

它可以根据个人的需求和习惯自定义作息时间,并通过可编程功能来控制各种任务和提醒。

作息时间控制器的设计主要分为硬件和软件两个部分。

硬件部分包括显示屏、按钮、电源供应和时钟模块等,用于显示时间和设置参数。

软件部分则负责运行用户设置的程序,实现相应的功能。

首先,用户可以通过硬件部分的按钮界面来设置睡眠时间和起床时间。

可以根据个人需要设置每天起床时间、睡眠时间、午休时间和提醒时间等。

用户还可以设置不同的作息时间表,如工作日和周末的作息时间可以不一样。

其次,作息时间控制器可以通过软件部分的程序来控制各种任务和提醒。

用户可以设置不同的任务,如早晨运动、午休、提醒喝水等,控制器会在设定的时间触发相应的提醒。

此外,控制器还可以通过定时器功能来控制其他设备,如自动开启关闭灯光、咖啡机等。

最后,作息时间控制器还可以提供统计和分析功能来帮助用户更好地管理作息时间。

它可以记录用户的作息时间,并生成相应的报告,帮助用户了解自己的作息情况和睡眠数据,以便做出相应的调整。

总而言之,可编程作息时间控制器是一种方便实用的设备,它能够帮助人们管理健康的作息时间。

通过具备硬件和软件的设计,用户可以自定义作息时间、设置任务和提醒,并通过统计和分析数据来实现更好的作息管理。

作息时间对于个人的健康和生活品质有着重要的影响。

良好的作息时间可以提高工作和学习效率,增加身体健康和免疫力,改善睡眠质量和心理状态。

然而,现代社会的快节奏和各种干扰因素往往使人们难以维持规律的作息时间。

为了帮助人们更好地管理作息时间,可编程作息时间控制器成为了一种理想的解决方案。

硬件部分是可编程作息时间控制器的基础,它主要由显示屏、按钮、电源供应和时钟模块组成。

显示屏用于显示当前时间、设置参数以及展示任务和提醒的信息。

用户可以通过按钮来操作控制器,包括设置作息时间、添加任务和提醒等。

电源供应保证控制器的正常运行,时钟模块则提供精准的时间计量,确保作息时间的准确性和可靠性。

作息时间控制器的设计

作息时间控制器的设计

前言本次毕业设计的课题是《作息时间控制器》控制的设计,用时间来控制自动打铃,开(熄)学生宿舍灯等。

在指导老师的悉心指导及本组成员的共同努力下,完成了0~24小时循环显示的程序、自动打铃程序、开(熄)学生宿舍灯程序的设计,及电路板的制作。

通过本次设计领悟了作为一名技术员所具备分析、解决问题的能力,为今后的工作打下基础。

由于时间仓促、能力有限,程序难免有不足之处,请老师批评指正。

目录一、设计任务1、作息时间控制器控制设计大纲 (4)2、设计步骤 (4)二、设计过程1、时间控制显示程序 (5)1.1秒脉冲显示程序 (5)1.2分钟显示程序 (6)1.3小时显示程序 (7)1.4星期显示程序 (9)1.5自动扫描秒程序 (11)1.6开机显示 (12)2、电铃控制程序 (14)2.1作息时间电铃控制 (16)2.2双休日电铃控制 (17)3、学生宿舍开(熄)灯程序 (18)4、控制器输入输出点分配 (19)5、PCB接线图及元器件 (21)5.1 PCB的外部接线图 (21)5.2 元器件 (22)6、作息时间控制器控制梯形图 (22)7、作息时间控制器使用说明 (23)三、设计总结 (24)概述PLC即可编程控制器(Programmable logic Controller),是指以计算机技术为基础的新型工业控制装置。

PLC是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。

它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。

PLC及其有关的外围设备都应该按易于与工业控制系统形成一个整体,易于扩展其功能的原则而设计。

20世纪70年代中末期,可编程控制器进入实用化发展阶段,计算机技术已全面引入可编程控制器中,使其功能发生了飞跃。

更高的运算速度、超小型体积、更可靠的工业抗干扰设计、模拟量运算、PID功能及极高的性价比奠定了它在现代工业中的地位。

可编程作息时间控制器设计复习进程

可编程作息时间控制器设计复习进程

武汉工程大学单片机课程设计可编程作息时间控制器设计姓名:陈文斌学号:1004030105学院:电气信息学院专业:电子信息工程班级:电信一班指导老师:赵振华2012年12月27日可编程作息时间控制器程序设计摘要:本次课题是应用AT89C51为核心控制器件的作息时间控制钟,由键盘、声音输出模块、电源转换模块和存储模块四部分组成。

它利用AT89C51的定时/计数器来计算时间,并用存储器记录数据,保证了系统的可靠性。

AT89C51单片机是整个设计的核心控制器件,根据从键盘接受的数据控制整个系统的工作流程。

整体性好,人性化强、可靠性高,实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,可对一些以24小时为周期的开关量进行自动控制。

如上下课打铃及扩音设备的开与关。

采用AT89C51单片机来实现对上述开关量的控制,利用24C02芯片来存储数据,设有六位数码管、可以实时显示时间、系统还设有输入键盘,用以修改实时时钟,体现了系统简单、工作稳定可靠、价廉、控制时间精确及系统体积小等优点。

关键词:AT89C51单片机动态扫描仿真设计时钟电路1.概述1.1设计目的:通过本次课程设计,我们就所学习的MCS-51单片机进行一次实践上的设计与仿真,对以前我们所学习的理论知识进行进一步的巩固和深化,更重要的是学习以MCU为控制核心的应用的实际设计流程及基本的实践能力。

通过课程设计,培养我们独立工作能力,为将来毕业设计打好基础。

1.2设计要求:(1)用汇编语言或C语音编写作息时间控制程序(2)按照给定的时间模拟控制,实现广播、上下课打铃、灯光控制(屏幕显示)(3)具备日期和时钟显示1.3扩充功能:(1)给定的时间可修改(2)可模拟手动控制(3)用扬声器模拟打铃给定的时间可修改;可模拟手动控制;用扬声器模拟打铃2.系统总体方案及硬件设计2.1 电路设计方案图根据设计要求画出系统框图,如图2.1所示:图2.1系统总体框图 该系统是由微处理器、存储器、数码显示部分以及键盘输入部分所组成。

2940.可编程作息时间控制器 设计报告 包含源代码,设计背景完整报告等内容

2940.可编程作息时间控制器   设计报告  包含源代码,设计背景完整报告等内容

计算机科学与技术学院硬件课程设计报告姓名:专业:计算机科学与技术班级:设计题目:可编程作息时间控制器成员:指导教师:职称:2008年6月30日课程设计指导教师评阅书指导教师评语:成绩:指导教师签字:年月日控制器摘要在本次可编程作息时间控制器的设计的过程中我们三人分工合作,完成了:1、键盘的扫描程序的设计,利用8255A并行口做一个扫描键盘程序,把按键输入的键码,通过8255 PC口输出显示在七段数码管上。

8255PA口低4位做键盘行的输入线,PB口低4位作为键盘的列输入线,同时其高4位读取键盘的行信息,这样一来,用输入指令读取B口状态时,可同时读取键盘的行列信息。

8255 PA口高4位作为四位七段数码管的位选线。

编写程序通过逐行逐列扫描,可获得所按键的行列信息,及该键所对应的键号并利用查表找出其所对应的数码管显示码。

将该信息通过8255 PC口输出到七段数码管上,显示当前按键值。

每次按键输出键值时,通过改变8255 PA口高4位状态,使四位七段数码管轮流显示不同的键值。

2、定时计时程序,通过上述所设计的键盘输入定时时间,计算初值,利用可编程的计数/定时器8253A进行计时,实现定时报告。

完成可编程作息时间控制器的设计。

本设计实现了设定时间的显示,到时提示等功能,基本上到达了我们最初设计的要求。

3、本设计中所用芯片:8255,8253,74LS138;利用了4×4矩阵的小键盘,及指示灯。

所用做图工具:PROTELL99SE、WORD关键词8255A ;8253 ;键盘 ;设置定时时间 ;计数定时目录总体设计部分1 设计任务与要求 (1)1.1、题目理解 (1)1.2、任务要求 (1)2 总体方案 (1)2.1、设计思路 (1)2.2、总体设计电路图 (1)3硬件方案 (2)3.1、所用芯片简介 (2)3.1.1、8255芯片简介 (2)3.1.2、8253芯片简介 (4)3.2、各部分电路图 (7)3.2.1、键盘部分电路图 (7)3.2.2、键盘及显示部分电路图 (9)3.2.3、计时部分电路图 (10)4软件方案 (10)4.1、设计的原理 (10)4.1.1、键盘的设计原理 (10)4.1.2、显示部分的设计原理 (12)4.1.3、计时部分的设计原理 (13)4.2、程序流程图 (14)4.2.1、键盘扫描流程图 (14)4.2.2、显示部分程序图 (15)专题设计部分1 硬件(软件)详细设计 (16)1.1、程序清单及相应的说明 (16)1.2、设计方案测试 (22)1.2.1、单个程序测试 (22)1.2.2、总体程序测试 (23)2总结 (23)2.1、本设计的可行性与优点分析 (23)2.2、设计中的不足分析与改进 (23)3.心得体会 (26)参考文献 (26)总体设计部分1 设计任务与要求1.1、题目理解可编程作息时间控制器可理解为可编程即可设置且可重置的闹钟。

作息时间控制器设计

作息时间控制器设计

题目7 可编程作息时间控制器设计
1. 设计要求
设计一个以单片机为核心的可编程作息时间控制器:
按照给定的时间模拟控制,实现广播、上下课打铃、灯光控制(屏幕显示),同时具备日期和时钟显示。

2. 实验原理
本题目原理与题目4相同,程序是在题目4的基础上将定时闹钟改造为4路可调闹钟,从而实现打铃等功能。

当四路闹钟中的任一路到时,均会点亮灯、打铃。

如有需求,可对程序进行调整,增加闹钟的路数,及到时后的处理方式。

题目中4个按键的功能分别为:设置限制的时间/时的调整、显示闹钟设置的时间/分的调整、设置闹钟的时间/设置完成、闹钟更换。

3. 电路设计(Proteus仿真通过)
本可编程作息时间控制器程序设计电路原理图,如下页图所示:
4. Proteus仿真
加载目标代码文件打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件“keil-17.hex”;在“Clock Frequency”栏中输入晶振频率为11.0592MHz。

启动仿真如下页图所示,当四路闹钟中的任一路到时,均会点亮灯、打铃。

可编程作息时间控制器设计

可编程作息时间控制器设计

可编程作息时间控制器设计Company number:【0089WT-8898YT-W8CCB-BUUT-202108】信息工程学院课程设计报告书题目: 可编程作息时间控制器设计专业:电子信息科学与技术班级:学号:学生姓名指导教师:2013 年 5 月 13日信息工程学院课程设计任务书年月日信息工程学院课程设计成绩评定表摘要本设计是可编程作息时间控制器设计,由单片机AT89C51芯片和LCD、LED显示器,辅以必要的电路,构成一个单片机四路可调闹钟。

电子钟可采用数字电路实现,也可以采用单片机来完成。

LCD 显示“时”,“分”,LED亮灯来表示闹钟的到来,定时时间到能发出警报声。

现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。

在这次设计中主要是用AT89S51来进行定时,也结合着其他辅助电路实施控制,在定时的时候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。

关键字:四路可调闹钟 AT89C51 LCD目录1 任务提出与方案论证单片机型号的选择通过对多种单片机性能的分析,最终认为AT89C51是最理想的电子时钟开发芯片。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程序存储器和1000次擦写循环,数据保留时间为10年,是最好的选择。

按键的选择本次设计按照题目要求使用独立式按键。

由于按键较少,在修改时间或设置闹铃时间时就不能直接输入,只能通过加或减完成,稍为麻烦一些,但其程序简单。

(优质)(时间管理)可编程作息时间控制器设计

(优质)(时间管理)可编程作息时间控制器设计

(时间管理)可编程作息时间控制器设计信息工程学院课程设计任务书年月日信息工程学院课程设计成绩评定表本设计是可编程作息时间控制器设计,由单片机AT89C51芯片和LCD、LED显示器,辅以必要的电路,构成一个单片机四路可调闹钟。

电子钟可采用数字电路实现,也可以采用单片机来完成。

LCD显示“时”,“分”,LED亮灯来表示闹钟的到来,定时时间到能发出警报声。

现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。

在这次设计中主要是用AT89S51来进行定时,也结合着其他辅助电路实施控制,在定时的时候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。

关键字:四路可调闹钟AT89C51LCD1任务提出与方案论证11.1单片机型号的选择11.2按键的选择11.3显示器的选择11.4计时部分的选择12总体设计22.1系统总框图22.2原理及工作过程说明22.3系统电路图33详细设计43.1主程序部分的设计43.2独立式键盘的接口电路43.31602LCD液晶显示器53.4闹钟子函数104总结11参考文献121任务提出与方案论证1.1单片机型号的选择通过对多种单片机性能的分析,最终认为AT89C51是最理想的电子时钟开发芯片。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程序存储器和1000次擦写循环,数据保留时间为10年,是最好的选择。

1.2按键的选择本次设计按照题目要求使用独立式按键。

可编程作息时间控制器设计

可编程作息时间控制器设计

武汉工程大学单片机课程设计可编程作息时间控制器设计姓学学专班名:号:院:业:级:陈文斌1004030105电气信息学院电子信息工程电信一班指导老师:赵振华2012 年12月27日可编程作息时间控制器程序设计摘要:本次课题是应用AT89C51为核心控制器件的作息时间控制钟,由键盘、声音输出模块、电源转换模块和存储模块四部分组成。

它利用AT89C51的定时/计数器来计算时间,并用存储器记录数据,保证了系统的可靠性。

AT89C51单片机是整个设计的核心控制器件,根据从键盘接受的数据控制整个系统的工作流程。

整体性好,人性化强、可靠性高,实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,可对一些以24小时为周期的开关量进行自动控制。

如上下课打铃及扩音设备的开与关。

采用AT89C51单片机来实现对上述开关量的控制,利用24C02芯片来存储数据,设有六位数码管、可以实时显示时间、系统还设有输入键盘,用以修改实时时钟,体现了系统简单、工作稳定可靠、价廉、控制时间精确及系统体积小等优点。

关键词:AT89C51单片机动态扫描仿真设计时钟电路1.概述1.1设计目的:通过本次课程设计,我们就所学习的MCS-51单片机进行一次实践上的设计与仿真,对以前我们所学习的理论知识进行进一步的巩固和深化,更重要的是学习以MCU为控制核心的应用的实际设计流程及基本的实践能力。

通过课程设计,培养我们独立工作能力,为将来毕业设计打好基础。

1.2设计要求:(1)用汇编语言或C语音编写作息时间控制程序(2)按照给定的时间模拟控制,实现广播、上下课打铃、灯光控制(屏幕显示)(3)具备日期和时钟显示1.3扩充功能:(1)给定的时间可修改(2)可模拟手动控制(3)用扬声器模拟打铃给定的时间可修改;可模拟手动控制;用扬声器模拟打铃2.系统总体方案及硬件设计2.1 电路设计方案图根据设计要求画出系统框图,如图2.1所示:图2.1系统总体框图该系统是由微处理器、存储器、数码显示部分以及键盘输入部分所组成。

可编程作息时间控制器设计讲解

可编程作息时间控制器设计讲解

信息工程学院课程设计报告书题目: 可编程作息时间控制器设计专业:电子信息科学与技术班级:学号:学生姓名指导教师:2013 年 5 月 13日信息工程学院课程设计任务书年月日信息工程学院课程设计成绩评定表摘要本设计是可编程作息时间控制器设计,由单片机AT89C51芯片和LCD、LED显示器,辅以必要的电路,构成一个单片机四路可调闹钟。

电子钟可采用数字电路实现,也可以采用单片机来完成。

LCD显示“时”,“分”,LED亮灯来表示闹钟的到来,定时时间到能发出警报声。

现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。

在这次设计中主要是用AT89S51来进行定时,也结合着其他辅助电路实施控制,在定时的时候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。

关键字:四路可调闹钟 AT89C51 LCD目录1 任务提出与方案论证 (1)1.1 单片机型号的选择 (1)1.2 按键的选择 (1)1.3 显示器的选择 (1)1.4 计时部分的选择 (1)2 总体设计 (2)2.1系统总框图 (2)2.2原理及工作过程说明 (2)2.3系统电路图 (3)3详细设计 (4)3.1主程序部分的设计 (4)3.2独立式键盘的接口电路 (4)3.3 1602LCD液晶显示器 (5)3.4闹钟子函数 (9)4总结 (10)参考文献 (11)1 任务提出与方案论证1.1 单片机型号的选择通过对多种单片机性能的分析,最终认为AT89C51是最理想的电子时钟开发芯片。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程序存储器和1000次擦写循环,数据保留时间为10年,是最好的选择。

可编程作息时间控制器设计方案

可编程作息时间控制器设计方案

可编程作息时间控制器设计方案1、阅读中外文献资料摘要:数字钟是采用数字电路实现对"年、月、日、周、时、分、秒"数字显示的计时装置.由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

可编程作息时间控制器就是其中的一个部分,它能很好的帮助我们完成对操控方面的时序和时间的控制,可见可编程时钟控制器在未来有很大的发展潜力,其研究领域十分宽广,应用领域十分广泛。

2、立题依据及主要研究内容:数字钟能长期、连续、可靠、稳定地工作;同时还具有体积小,功耗低等特点,便于携带,使用方便。

目前应用广泛是可编程作息时间控制器,它不仅具有数字钟的一般优点,还有控制时间精确,且通过改变单片机的程序能够灵活改变冬、夏季作息时间,同时能够实时显示时间. 能够让我们来掌握运筹时间而不是让时间来催促逼迫我们。

可编程作息时间控制器实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,实现代学校必不可少的设备.本次研究的主要内容是可编程作息时间控制器系统,系统包括:单片机、LCD驱动及显示系统、按键输入系统、功率放大系统和电源组成。

利用单片机提供的基信号作为基准计时信号,进行年月日周时分秒计时,根据设定时间完成语音播报,可按照设定的时间进行相应的控制,能够随意设置语音播报时间和内容。

3、设计方案及思路:主要的设计方案为:1.硬件设计由单片机系统、输入键盘、功率放大器、显示系统等部分组成。

系统扩展了四个按键用于报时及设定时间。

利用单片机的DAC为电流型输出,经负载电阻R1、三极管Q1,放大驱动扬声器放音,SPEAKER 可选用4Ω或8Ω扬声器,作为调试和当地语音播报使用,留有音频输出接口经功率放大器驱动音箱。

用一个LED 显示作息时间到等相关信息,根据具体需要可控制电铃、播放提示语音等。

2.软件设计整个程序分为:主程序、键盘扫描程序、校时子程序、语音子程序等几部分。

可编程作息时间控制器设计单片机课程设计

可编程作息时间控制器设计单片机课程设计

单片机系统计 设课 程 成绩评定表 可编程作息时间控制器设计设计课题 : 电气工程学院学院名称 : :专业班级 :学生姓名 :号 学 指导教师: :设计地点 :设计时间单片机系统计设 课 程可编程作息时间控制器设计课程设计名称: :级 业 班 专 : 姓 名学生 :学 号: 师 指 导 教 课程设计地点: 课程设计时间:1、引言 01.1研究背景和用途 (2)1.2设计思想及基本功能 (3)1.3研究内容及采方法 (3)3 ...................................................................................................... (1)主要研究内容3 ...................................................................................................... 2)主要采用方法(4............................................................................................................................ .2、总体设计方案4 .......................................................................................................................... 2.1 方案选取4........................................................................................................................... .2.2系统框图5................................................................................................................... .2.3系统工作原理5................................................................................................................. 3、硬件电路及芯片介绍5单片机............................................................................................................... 3.1 A T89C518....................................................................................................... 3.2 1602LCD液晶显示器9.................................................................................................................... 3.3其他重要元件9独立式键盘地接口电路: (1)9 ............................................................................................................. )蜂鸣器:(210............................................................................................................. 硬件电路设计图.3.4 10......................................................................................................................... .、4 系统软件设计............................................................................................................. 11.主程序软件设计4.1 ......................................................................................................... 11 键盘扫描程序设计.4.212.......................................................................................................... 4.3时钟调节程序设计13.................................................................................................. 4.4闹钟时间调节程序设计14............................................................................................. 闹钟时间判断子程序设计.4.515.......................................................................................................................................... 总结5、16献...................................................................................................................................... 考文参16 ............................................................................................................................................ 附录:、引言1研究背景和用途1.120世纪末,电子技术得到了飞速地发展.在其推动下,现代电子产品乎渗透到了社会地各个领域,有力地推动和提高了社会生产力地发展与信息化程度,同时也使现代电子产品性能进一步提升,产品更新换代地节奏也越来越快.时间对然而遇到.于人来说总是那么珍贵,工作地忙碌性和繁杂让人容易忘记当前时间.对于学校.重大事情地时候,一旦忘记时间,就会给自己或他人造成更大地麻烦如今,在电子计算机基础上发展而来地可编程作息时间.来说作息时间尤为重要控制器,它可以利用电子计算机地内部时间,通过程序判断处理,完成对作息时间地精确控制,并且由于是程序控制,所以可通过改变程序而进而灵活改变可编程时间控制器可实现.作息时间,同时可以实时显示时间,并实现打铃功能对时间控制地智能化,摆脱由人控制时间地长短不同地不便,并且可以在必要.时人工切入控制,完美地满足作息时间控制设计思想及基本功能1.2该系统能够实现以往地人工控制时间具有地功能,即到达所规定地时间后打铃地功能,再在选取设计方案和采取元器件方次功能地前提下,还具有以往方式不具备地时间显示功能..面,该系统本着简单实用经济地思想,尽量简化电路,以最经济地方式达到设计要求可编程作息时间控制器具备以下功能:)可以通过键盘进行时间设定1 ()具有屏幕显示地功能(2.(3)到达所设定地时间,能够进行上下课打铃研究内容及采方法1.3)主要研究内容(1用C语言编写作息时间控制程序,按照给定地时间模拟控制,上下课打铃、灯光控制(屏幕显示),并且具备日期和时钟显示.给定地时间可修改,可模拟手动控制,用扬声器模拟打铃.(2)主要采用方法程需要用到延时程序,所以把延时程序单独做成一个子程序,然后在需要地时候调用它,使得时间显示程序更加精炼,此时日期和时钟显示功能已经完成;而后设计灯光控制(屏幕显示),采用比较跳转地方式即可,当到达设定地时间区域时通过比较来判断是亮灯还是灭灯;随后是上下课打铃地模拟,需要调用DOS 显示功能,将设定好地时间在屏幕上显示出来,然后调用PC机内部时钟,判断时钟与给定时间是否相同,进而判断是否响铃,若响铃则调用设定好地响铃程序,并实现屏幕模拟显示;给定时间修改是调用键盘I/O中断功能号,获取键值地方法来进入,先确定应该修改哪个响铃,再将新地响铃时间数.据存入要修改时钟地缓冲区,并将其覆盖来实现;模拟手动控制、用扬声器模拟打铃,同样采用调用键盘I/O中断功能号,获取键值地方法,判断是否与设定地手动按键相同,若相同则进入手动控制,进入后调用响铃程序,而后自动退出响铃,开始其他响应功能.2、总体设计方案2.1 方案选取通常通过单片机对时钟模块进行设计有两种方案:一是通过单片机内部地定时器计数器,采用软件编程实现时钟技术,一般为软时钟,这个方法硬件线路简单,系统功能一般与软件设计有关,通常用在对时间精度要求不高地场所;二是采用时钟芯,它地功能强大,功能部件集中在芯片内部,自动产生时钟等相关功能.硬件成本相对较高,软件编程简单.通常用在对时钟要求较高地场所.综合两者特点,此次设计精度不高,而且根据设计思想地经济性,采用第一种方案.2.2系统框图系统框图2.3系统工作原理显示器设计一个简易地可编程作息时间控制器,若LCD使用AT89C51单片机结合字符型程序执行后工作指示灯.LCD选择有背光显示地模块,在夜晚或黑暗地场合中也可使用路可调闹钟组4闪动,表示程序开始执行,同时显示系统时间.作息时间控制器是由LED其中操作键..当四路闹钟中地任一路到时,均会点亮灯、打铃成,从而实现打铃等功能分地调整、设置//时地调整、显示闹钟设置地时间K1~K4地功能分别为:设置限制地时间.设置完成、闹钟更换闹钟地时间/、硬件电路及芯片介绍3 单片机3.1 AT89C51 本设计地核心硬件就是8051芯片,这里选择了AT89C51,AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read OnlyMemory)地低电压,高性能CMOS8位微处理器,俗称单片机.该器件采用A TMEL高密度非易失存储器制造技术制造,与工业标准地MCS-51指令集和输出管脚相兼容.由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL地AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉地方案.引脚图图3.1 AT89C51引脚及其功能:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流.当P1口地管脚第一次写1时,被定义为高阻输入.P0能够用于外部程序数据存储器,它可以被定义为数据/地址地第八位.在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高.P1口:P1口是一个内部提供上拉电阻地8位双向I/O口,P1口缓冲器能接收输出4TTL门电流.P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉地缘故.在FLASH编程和校验时,P1口作为第八位地址接收. P2口:P2口为一个内部上拉电阻地8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入.并因此作为输入时,P2口地管脚被外部拉低,将输出电流.这是由于内部上拉地缘故.P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址地高八位.在给出地址口输出其特P2时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,“1”殊功能寄存器地内容.P2口在FLASH编程和校验时接收高八位地址信号和控制信号.P3口:P3口管脚是8个带内部上拉电阻地双向I/O口,可接收输出4个TTL门电流.当P3口写入“1”后,它们被内部上拉为高电平,并用作输入.作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉地缘故. P3口也可作为AT89C51地一些特殊功能口,如下所示:备选功能口管脚P3(串行输入口)P3.0 RXD)P3.2 /INT0(外部中断0 P3.1 TXD(串行输出口)外部输入)P3.4 T0(记时器0 P3.3 /INT1(外部中断1)外部输入)P3.5 T1(记时器1(外部数据存储器写选通)P3.6 /WR(外部数据存储器读选通)P3.7 /RD. 口同时为闪烁编程和编程校验接收一些控制信号P3. 脚两个机器周期地高电平时间当振荡器复位器件时,要保持RST RST:复位输入. ALE/PROG:当访问外部存储器时,地址锁存允许地输出电平用于锁存地址地地位字节.在FLASH编程期间,此引脚用于输入编程脉冲.在平时,ALE端以不变地频率周期输出正脉冲信号,此频率为振荡器频率地1/6.因此它可用作对外部输出地脉冲或用于定时目地.然而要注意地是:每当用作外部数据存储器时,将跳过一个ALE脉冲.如想禁止ALE 地输出可在SFR8EH地址上置0.此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用.另外,该引脚被略微拉高.如果微处理器在外部执行状态ALE禁止,置位无效.PSEN:外部程序存储器地选通信号.在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效.但在访问外部数据存储器时,这两次有效地/PSEN信号将不出现.EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器.注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器.在FLASH编程期间,此引脚也用于施加12V编程电源(VPP).. XTAL1:反向振荡放大器地输入及内部时钟工作电路地输入XTAL2:来自反向振荡器地输出. P1.0口接K1按键,P1.1口接K2按键,P1.2口接K3按键,P1.3口接K4按键,P2.0口接RS口,P2.1口接RW口,P2.2口接E口,P2.3口接发光二极管D2阳极,P2.4口接发光二极管D1阳极,P2.5口接电阻R3,P3口地8个口依次和LCD地数据口D0~D7.液晶显示器3.2 1602LCD LM016L 液晶模块采用HD44780 控制器.HD44780 具有简单而功能较强地指令集,可以实现字符移动、闪烁等功能.LM016L 与单片机MCU(Microcontroller Unit)通讯可采用8 位或者4 位并行传输两种方式.HD44780 控制器由两个8 位寄存器、指令寄存器(IR)和数据寄存器(DR)、忙标志(BF)、显示数据RAM(DDRAM)、字符发生器ROM(CGROM)、字符发生器RAM(CGRAM)、地址计数器(AC).IR 用于寄存指令码,只能写入不能读出;DR 用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM 读出地数据.BF 为1 时,液晶模块处于内部处理模式,不响应外部操作指令和接受数据.DDRAM 用来存储显示地字符,能存储80 个字符码.CGROM 由8 位字符码生成5*7 点阵字符160 种和5*10 点阵字符32 种,8 位字符编码和字符地对应关系,可以查看参考文献[3]中地表4.CGRAM 是为用户编写特殊字符留用地,它地容量仅64 字节.可以自定义8 个5*7 点阵字符或者4 个5*10 点阵字符.AC 可以存储DDRAM 和CGRAM地地址,如果地址码随指令写入IR,则IR 自动把地址码装入AC,同时选择DDRAM 或者CGRAM 单元.LM016L 液晶模块地引脚功能见表:引脚图3.2 LCD1602图. 为地电源脚:VSS 第1. 5V正电源2脚:VDD接第第3脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K地电位器调整对比度.. 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器RS脚:4第第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作.当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据.第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令. 第7~14脚:D0~D7为8位双向数据线.将respack-8地1口接电源,2~8口顺序和P3口相连接,并和LCD地数据口D1~D7相接,VSS 接地,VDD接电源,VEE接滑动变阻器,RS口接P2.0口,RW口接P2.1口,E口接P2.2口.其他重要元件3.3(1) 独立式键盘地接口电路:在单片机应用系统中,有时只需要几个简单地按键向系统输入信息.这时,可将每个按键接在一根I/O接口线上,这种方式地连接称为独立式键盘.每个独立式按键单独占有一根I/O接口线,每根I/O接口线地工作状态不会影响到其他I/O接口线.这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O接口线,I/O接口线浪费较大.故只在按键数量不多时采用这种按键电路.在此电路中,按键输入都采用低电平有效.上拉电阻保证了按键断开时,I/O接口线有确定地高电平.当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻.独立式键盘3.3 图(2)蜂鸣器:将发出有规律地P2.5将蜂鸣器地一端电源,另一端接至晶闸管集电极,当需要闹钟响时,电平使得晶闸管导通,从而使得蜂鸣器发出声响.蜂鸣器接线图图3.4.口相接K1~K4上拉电阻键分别与单片机地P1.0~P1.3 (3)respack-8:硬件电路设计图3.4 将respack-8地1口接电源,2~8口顺序和P3口相连接,并和LCD地数据口D1~D7相接.发光二极管D1和P2.4口相连接用以显示秒计时,发光二极管和P2.3口相连接用以显示闹钟时地广播,按键K1~K4分别与单片机地P1.0~P1.3口相接,以实现按键地多功能使用.系统整体电路图图3.54、系统软件设计.系统软件主要包括主程序、显示子程序、键盘扫描子程序、定时子程序等.本章节系统地介绍了可编程作息控制器地主程序和主要功能子程序地设计流程,具体地代码见附录.主程序软件设计4.1 主程序无限循环,采用了程序结构地模块化,避免了一些函数地不必要地重复书写.主要完成LCD初始化,单片机初始化,键盘扫描和显示时间等功能.主程序流程图如图所示:主程序流程图图4.1键盘扫描程序设计4.2 由于键位未按下,输出高电平,键位按下,输出低电平,因此可以通过检测输出线路上地电平高低来判断有无按键按下.但是无论按下键位还是松开键位都会产生抖动.如果抖动不做处理,必然会出现错误.抖动消除有两种方法:硬件消除和软件消除.硬件消除是通过在按键输出电路上加上一定硬件线路来消除抖动,一般采用R-S触发器.软件消除是利用延时来跳过抖动过程.一般情况下,延时10ms就可以跳过抖动过程了,然后又单片机开始执行相应地命令,下图为键盘程序设计流程图:键盘扫描程序流程图4.2图时钟调节程序设计4.3 按下K1键,进入始终调节模式,可是可以通过按下K1,K2按键来调节时钟时和分地大小,设置完毕后,按下K3,返回时钟显示模式.流程图如下时钟调节流程图4.3图闹钟时间调节程序设计4.4 按下K3键进入闹钟模式,此时显示器第二行显示闹钟时间,K1和K2可调节闹钟地时间,设置完毕后,按下K3键完成设置此时会显示设置好地闹钟时间,250ms过后,自动返回时钟模式.流程图如下:闹钟时间调节程序流程图4.4图闹钟时间判断子程序设计4.5 闹钟时间地判别主要是通过设定时间与实时时间逐位对比确定是否进行闹铃,流程图如图所示图4.5闹钟时间判断子程序流程图5、总结在整个设计过程中,充分发挥人地主观能动性,自主学习,学到了许多没学到地知识.这次课程设计地制作过程是我地一次再学习,再提高地过程.在课程设计中我充分地运用了大学期间所学到地知识.我从资料地收集中,掌握了很多单片机、LED数码管地知识,让我对我所学过地知识有所巩固和提高,并且让我对当今单片机、LED地最新发展技术有所了解.在整个过程中,我学到了新知识,增长了见识.在今后地日子里,我仍然要不断地充实自己,争取在所学领域有所作为.脚踏实地,认真严谨,实事求是地学习态度,不怕困难、坚持不懈、吃苦耐劳地精神是我在这次设计中最大地收益.我想这是一次意志地磨练,是对我实际能力地一次提升,也会对我未来地学习和工作有很大地帮助.在此次设计中,知道了做凡事要有一颗平常地心,不要想着走捷径,一步一脚印.也练就了我地耐心,做什么事都在有耐心.此次课程设计中学了很多很多东西,这是最重要地.献文参考2004 [1] 张毅刚主编,单片机原理及应用,北京:高等教育出版社,2008 程序设计,北京:机械工业出版社,C51 [2] 陈涛编著,单片机应用及2007 入门实用教程,北京:机械工业出版社,[3] 周润景主编,PROTEUS2010皮大能主编,单片机课程设计指导书,北京:北京理工大学出版社,[4][5] 楼然苗主编,单片机实验与课程设计(Proteus仿真版),浙江:浙江大学出版社,2010附录:***************作息时间控制器。

可编程作息时间控制器设计(DOC 35页)

可编程作息时间控制器设计(DOC 35页)

信息工程学院课程设计报告书题目: 可编程作息时间控制器设计专业:电子信息科学与技术班级:学号:学生姓名指导教师:2013 年 5 月 13日信息工程学院课程设计任务书年月日信息工程学院课程设计成绩评定表摘要本设计是可编程作息时间控制器设计,由单片机AT89C51芯片和LCD、LED显示器,辅以必要的电路,构成一个单片机四路可调闹钟。

电子钟可采用数字电路实现,也可以采用单片机来完成。

LCD显示“时”,“分”,LED亮灯来表示闹钟的到来,定时时间到能发出警报声。

现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。

在这次设计中主要是用AT89S51来进行定时,也结合着其他辅助电路实施控制,在定时的时候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。

关键字:四路可调闹钟 AT89C51 LCD目录1 任务提出与方案论证 (11)1.1 单片机型号的选择 (11)1.2 按键的选择 (11)1.3 显示器的选择 (11)1.4 计时部分的选择 (11)2 总体设计 (22)2.1系统总框图 (22)2.2原理及工作过程说明 (22)2.3系统电路图 (33)3详细设计 (33)3.1主程序部分的设计 (33)3.2独立式键盘的接口电路 (44)3.3 1602LCD液晶显示器 (44)3.4闹钟子函数 (88)4总结 (99)参考文献 (1010)1 任务提出与方案论证1.1 单片机型号的选择通过对多种单片机性能的分析,最终认为AT89C51是最理想的电子时钟开发芯片。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

2940.可编程作息时间控制器 设计报告 包含源代码,设计背景完整报告等内容

2940.可编程作息时间控制器   设计报告  包含源代码,设计背景完整报告等内容

计算机科学与技术学院硬件课程设计报告姓名:专业:计算机科学与技术班级:设计题目:可编程作息时间控制器成员:指导教师:职称:2008年6月30日课程设计指导教师评阅书指导教师评语:成绩:指导教师签字:年月日控制器摘要在本次可编程作息时间控制器的设计的过程中我们三人分工合作,完成了:1、键盘的扫描程序的设计,利用8255A并行口做一个扫描键盘程序,把按键输入的键码,通过8255 PC口输出显示在七段数码管上。

8255PA口低4位做键盘行的输入线,PB口低4位作为键盘的列输入线,同时其高4位读取键盘的行信息,这样一来,用输入指令读取B口状态时,可同时读取键盘的行列信息。

8255 PA口高4位作为四位七段数码管的位选线。

编写程序通过逐行逐列扫描,可获得所按键的行列信息,及该键所对应的键号并利用查表找出其所对应的数码管显示码。

将该信息通过8255 PC口输出到七段数码管上,显示当前按键值。

每次按键输出键值时,通过改变8255 PA口高4位状态,使四位七段数码管轮流显示不同的键值。

2、定时计时程序,通过上述所设计的键盘输入定时时间,计算初值,利用可编程的计数/定时器8253A进行计时,实现定时报告。

完成可编程作息时间控制器的设计。

本设计实现了设定时间的显示,到时提示等功能,基本上到达了我们最初设计的要求。

3、本设计中所用芯片:8255,8253,74LS138;利用了4×4矩阵的小键盘,及指示灯。

所用做图工具:PROTELL99SE、WORD关键词8255A ;8253 ;键盘 ;设置定时时间 ;计数定时目录总体设计部分1 设计任务与要求 (1)1.1、题目理解 (1)1.2、任务要求 (1)2 总体方案 (1)2.1、设计思路 (1)2.2、总体设计电路图 (1)3硬件方案 (2)3.1、所用芯片简介 (2)3.1.1、8255芯片简介 (2)3.1.2、8253芯片简介 (4)3.2、各部分电路图 (7)3.2.1、键盘部分电路图 (7)3.2.2、键盘及显示部分电路图 (9)3.2.3、计时部分电路图 (10)4软件方案 (10)4.1、设计的原理 (10)4.1.1、键盘的设计原理 (10)4.1.2、显示部分的设计原理 (12)4.1.3、计时部分的设计原理 (13)4.2、程序流程图 (14)4.2.1、键盘扫描流程图 (14)4.2.2、显示部分程序图 (15)专题设计部分1 硬件(软件)详细设计 (16)1.1、程序清单及相应的说明 (16)1.2、设计方案测试 (22)1.2.1、单个程序测试 (22)1.2.2、总体程序测试 (23)2总结 (23)2.1、本设计的可行性与优点分析 (23)2.2、设计中的不足分析与改进 (23)3.心得体会 (26)参考文献 (26)总体设计部分1 设计任务与要求1.1、题目理解可编程作息时间控制器可理解为可编程即可设置且可重置的闹钟。

作息时间控制器介绍

作息时间控制器介绍

作息时间控制器介绍作息时间控制器是一种帮助人们管理和规划自己的作息时间的设备。

它通过设置预定的起床、睡觉和其他重要活动的时间来帮助人们建立良好的作息习惯,并提醒人们按时完成各项任务。

作息时间控制器通常具有可编程的功能,可以根据个人的需求和喜好进行个性化定制。

它能够有效地帮助人们提高生活质量,提高工作效率,并改善健康状况。

一个典型的作息时间控制器通常由一个数字显示屏、多个按键和一组内置的电子时钟来组成。

用户可以通过按键来设置起床时间、就寝时间以及其他重要活动的提醒时间。

作息时间控制器通常会通过声音、灯光或者振动等方式向用户发出提醒信号,以确保用户按时完成各项任务。

作息时间控制器的使用非常简单和方便。

用户只需要根据自己的实际情况设定好起床时间和就寝时间,然后按照指示进行操作即可。

作息时间控制器通常还具有自动调整功能,可以根据用户的实际使用情况自动修改提醒时间,以适应日常生活的变化。

作息时间控制器的优点有很多。

首先,它可以帮助人们建立一套规律的作息习惯。

研究表明,规律的作息时间可以提高人们的睡眠质量,增强身体的免疫力,并减少患上一些慢性病的风险。

其次,作息时间控制器可以帮助人们提高工作效率。

按时起床和就寝可以增加工作时间,提高工作效率,并减少因疲劳而造成的错误。

此外,作息时间控制器还可以帮助人们合理安排时间,提高日常生活的时间管理能力。

作息时间控制器的应用范围非常广泛。

首当其冲的是办公室一族,他们需要按时起床、就寝和完成各项工作任务。

作息时间控制器可以帮助他们建立良好的作息习惯,提高工作效率。

此外,学生、家庭主妇和长者等人群也可以通过使用作息时间控制器来规划自己的时间,提高日常生活的质量。

然而,作息时间控制器也存在一些不足之处。

首先,作息时间控制器无法适应突发事件和紧急情况。

当发生紧急情况时,用户可能需要暂时调整作息时间,而作息时间控制器无法提供相应的灵活性。

其次,对于一些习惯性不守时间的人来说,作息时间控制器可能无法起到有效的作用。

【VIP专享】汇编语言可编程作息时间控制器

【VIP专享】汇编语言可编程作息时间控制器

沈阳航空航天大学课程设计报告课程设计名称:单片机课程设计课程设计题目:可编程作息时间控制器院(系):计算机学院专业:计算机科学与技术班级:34010101学号:2012040101035姓名:赵政指导教师:刘鲲说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。

报告和电子数据必须作为实验现象重复的关键依据。

学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。

尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。

与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。

报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。

本人签名: 日期:年月日沈阳航空航天大学课程设计任务书课程设计名称XXXX课程设计专业学生姓名班级学号题目名称起止日期年月日起至年月日止课设内容和要求:参考资料:教研室审核意见:教研室主任签字:指导教师(签名)年月日学生(签名)年月日课程设计总结:通过自己的不懈努力,我终于完成了设计的任务要求。

功能上基本达标:时钟的显示、日期显示、LCD功能、广播功能和打铃功能。

其精确可以满足日常生活显示时间的需要。

在本次设计的过程中,我发现很多的问题,虽然以前没有做过这样的设计但通过这次设计我学会了很多东西,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,比如写一个程序看其功能很少认为编写程序简单,但到编程的时候才发现一些细微的知识或低级错误经常犯做不到最后常常失败,所以有些东西只有学精弄懂并且要细心才行,只学习理论有些东西是很难理解的,更谈不上掌握。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

沈阳航空航天大学课程设计报告课程设计名称:单片机课程设计课程设计题目:可编程作息时间控制器院(系):计算机学院专业:计算机科学与技术班级:34010101学号:2012040101035姓名:赵政指导教师:刘鲲说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。

报告和电子数据必须作为实验现象重复的关键依据。

学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。

尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。

与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。

报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。

本人签名: 日期:年月日沈阳航空航天大学课程设计任务书目录1 设计方案 (1)1.1课程设计内容要求 (1)1.2实验原理 (1)1.3设计思路 (1)1.4实验环境 (1)2 模块设计 (3)2.1时钟日期显示模块 (4)2.2打铃模块 (5)2.3广播模块 (5)2.4LCD模块 (5)3 程序流程图 (6)3.1时钟日期流程图 (6)3.2打铃广播流程图 (8)3.3月份天数流程图 (9)4 测试及运行结果 (10)4.1测试及发现的问题 (10)4.1.1LED模块调试分析 (11)4.1.2 打铃功能模块调试分析 (11)4.2运行结果 (11)参考文献 (12)附录(关键部分程序清单) (13)1 设计方案1.1 课程设计内容要求本次课设要求设计一个可容纳16张病床的病房呼叫系统;病房里每个床位有一个按钮,当患者需要呼叫护士时,按动按钮,此时护士值班室内的系统板上显示该患者的床位号,并振铃3秒;当护士按下“响应”键时,取消当前呼叫。

1.2 实验原理作息时间系统主要是电子时钟日期显示,每当年月日时分秒达到特定的数值时自动进位,而且具有判断平年和闰年功能。

在系统上有相应的声、光呼叫信号指示,并能显示出呼叫号码。

此系统主要由51单片机,2个按键,6个数码管,1个喇叭组成和一个液晶屏显示器组成。

管理人员要呼叫可以通过控制按键发出广播和查询日期功能,同时会有喇叭响,数码管分别显示年月日时分秒。

1.3设计思路硬件平台结构一旦确定,大的功能框架即形成。

软件在硬件平台上构筑,完成各部分硬件的控制和协调。

系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。

因此,软件是本系统的灵魂。

软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。

同时,对软件进行全面测试也是检验错误排除故障的重要手段。

由于编程多涉及到数值运算,比较复杂,用我们平时常用的汇编语言编程完成,此设计以51单片机为核心,利用Keil软件环境和LAB8000实验箱硬件环境来实现可编程作息时间控制器。

由单片机I/O口采集检测开关信号,经过单片机内部MCU程序处理后通过数码管显示相应的日期显示和时间显示,并进行相应的时间判断。

达到特定时间就会响,且LCD就会显示相应的文字。

采用中断达到计时功能,每秒进行一次中断。

判断秒是否达到60。

是则清零,分加一:否则不清零,秒加一。

以此类推进行年月日时分秒判定和进位。

1.4实验环境·硬件环境:lab8000实验箱,PC机。

·软件环境:keil uvision2模块设计该作息时间控制系统根据功能的分析可以分成五个模块,即时钟日期显示模块、打铃电路模块、广播电路模块和屏幕显示模块。

可编程作息时间控制器系统的构成示意图如图2.1所示。

2.1 时钟日期显示模块显示电路采用静态数码显示技术,用74LS164作为数码管的驱动芯片,74HC164是串行输入并行输出的移位寄存器,并带有清除端,其中Q0-Q7为并行输出端,MR为清除端,当它为零电平时使74HC164清零,A、B为串行输入端,CLK 为时钟脉冲输入端,在脉冲的上升沿实现移位。

当CLK=0、MR=1时,74HC164保持原来的数据状态。

图中外接6片74HC164作为6位LED显示器的静态连接口,74HC164的低电平输出电流为8MA,显示电路模块采用LED共阴极数码管,采用6 位8段码LED数码管的其中两个。

显示数码管共有6位,用动态方式显示。

8位段码、6位位码是由两片74LS374输出。

位码经MC1413或ULN2003倒相驱动后,选择相应显示位。

使用的lab8000实验箱的8位段码输出地址为0X004H,位码输出地址为0X002H。

此处X是由KEY/LED CS 决定。

做LED实验时,需将KEY/LED CS 接到相应的地址译码上。

以便用相应的地址来访问。

例如,将KEY/LED CS 接到CS0上,则段码地址为08004H,位码地址为08002H。

七段数码管的字型代码表如表2.2.1所示。

图2.1.1 6位数码管串口显示电路2.2打铃模块该电路由P1.0口外接串联3.3K电阻、5.6K电阻、三极管8550以及蜂鸣器构成,该电路可以实现时钟电路的整点报时功能,每到一特定的时候,该电路就工作,蜂鸣器就发出声音示警电路模块采用lab8000实验箱上的喇叭实现。

原理是端口输出的方波经放大滤波后,驱动扬声器发声,声音的频率由端口输出时延时控制。

如图2.2.1所示开始输出音频脉冲低电平延时输出音频脉冲高电平延时图2.2.1 报警电路图2.2.2 喇叭发声2.3广播模块该模块采用控制K键的高低电平来实现对响应的中断,当K键为高电平时喇叭响,当K键为低电平时,喇叭停止。

2.4 LCD显示模块初始化程序、清屏、写指令代码子程序、写显示数据子程序、读显示数据子程序、中文字符库、中文演示显示程序段。

3程序流程图3.1时钟日期计时功能流程图时钟日期计时功能流程图,采用中断达到计时功能,每秒进行一次中断。

判断秒是否达到60。

是则清零,分加一:否则不清零,秒加一。

以此类推进行年月日时分秒判定和进位。

图3.1.1计时主程序流程图3.2打铃广播流程图3.3月份天数判断流程图4 测试及运行结果4.1 测试4.1.1编码出现的问题Jz L...Jnc L...Cjne L...Cjne L...Cjne L...Cjne L...Cjne L...Cjne L...L:......由于Jz 、Jnc、cjne跳转距离较短所以长篇幅代码会出现跳转距离不够,于是我上网搜索了一些解决办法例如:Jz L......L:ljmp p......P:..这样跳转距离就够了。

但是在我片成过程中由于插入新的跳转程序使后面程序不能正常进行于是我在间接跳转语句前加了一条判断语句。

如果满足条件跳过间接跳转语句。

之后就能正常进行。

Mov a,dayMov a,monthcjne a ,#30,LOOP2mov Day,#1inc Monthmov a,Monthcjne a,#12,LOOP2sjmp M由于累加器多次命名,导致复制混乱不能够得到正确判断。

Mov r1,dayMov a,monthcjne r1 ,#30,LOOP2mov Day,#1inc Monthmov a,Monthcjne a,#12,LOOP2sjmp M更改后天数和月份数据互不干扰能够得到正确执行。

4.1.2LED模块调试分析连接cs0和key/led执行程序数字清晰无乱码,可以正常运行。

4.1.3打铃广播模块调试分析连接p1.0和喇叭运行发声,可以正常运行。

4.2 运行结果连线准备完毕后运行程序:广播功能:拨动开关一使其打开,蜂鸣器发声;使其关闭,蜂鸣器停止发声。

打铃功能:达到指定时间铃声自动响,一分钟后结束。

时钟功能:时间正常进位。

日期功能:拨动开关二显示日期且能正常进位。

LCD功能:到达指定时间显示特定的文字如“上课了”。

参考文献[1]王迎旭.《单片机原理及及应用》.北京:机械工业出版社[2]张迎新.《单片微型计算机原理、应用及接口技术》.北京:国防工业出版社[3]郭天祥.《新概念51单片机C语言教程》.北京:电子工业出版社[4]蔡明文冯先成编著.《单片机课程设计》.北京:华中科技大学出版社[5]王晓明.《电动机的单片机控制》.北京航空航天大学出版社[6]张毅刚.刘杰.MCS-51单片机原理及应用[M].哈尔滨:哈尔冰工业大学出版社,2008附录(关键部分程序清单)OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN equ 08001h ; 键盘读入口Speaker equ P1.0LEDBuf equ 60h ; 显示缓冲Hour equ 40hMinute equ 41hSecond equ 42hC100us equ 43hYear equ 45hMonth equ 46hDay equ 47hCWADD1 EQU 09000H ;写指令代码地址(E1)DWADD1 EQU 09001H ;写显示数据地址(E1)CRADD1 EQU 09002H ;读状态字地址(E1)DRADD1 EQU 09003H ;读显示数据地址(E1)CWADD2 EQU 09004H ;写指令代码地址(E2)DWADD2 EQU 09005H ;写显示数进地址(E2)CRADD2 EQU 09006H ;读状态字地址(E2)DRADD2 EQU 09007H ;读显示数据地址(E2)PD1 EQU 3DH ;122/2 分成左右两半屏122x32COLUMN EQU 30HPAGE_ EQU 31H ;页地址寄存器D1,DO:页地址CODE_ EQU 32H ;字符代码寄存器COUNT EQU 33H ;计数器DIR equ 34hdtp1 equ 35hdtp2 equ 36hdtp3 equ 37hCTEMP EQU 38HCOM EQU 20H ;指令寄存器DAT EQU 21H ;数据寄存器Tick equ 10000T100us equ 256-100ljmp Startorg 000bhclr p1.1T0Int:push PSWpush ACCmov a, C100us+1jnz Goondec C100usGoon:dec C100us+1mov a, C100usorl a, C100us+1jnz LOOP7mov C100us, #high(Tick)mov C100us+1, #low(Tick)inc Secondmov a, Secondcjne a, #60, LOOP7mov Second, #0inc Minutemov a, Minutecjne a, #60, LOOP7mov Minute, #0inc Hourmov a, Hourcjne a, #24, LOOP7subb a,#24jz T3LOOP7: ljmp LOOP2T3: mov Hour, #0inc Daymov r1,Daymov a,yearmov b,#4div abmov 80H,bjnb 80H,LOOP8mov a,monthsubb a,#2jz D1LOOP8: mov a,monthsubb a,#2jz D2mov a,monthsubb a,#4jz D3mov a,monthsubb a,#6mov a,monthjz D3subb a,#9mov a,monthjz D3subb a,#11mov a,monthjz D3jnz D4D1: cjne r1 ,#29,LOOP2mov Day,#1inc Monthmov a,Monthcjne a,#12,LOOP2sjmp MD2: cjne r1 ,#30,LOOP2mov Day,#1inc Monthmov a,Monthcjne a,#12,LOOP2sjmp MD3: cjne r1 ,#31,LOOP2mov Day,#1inc Monthmov a,Monthcjne a,#12,LOOP2sjmp MD4: cjne r1 ,#32,LOOP2mov Day,#1inc Monthmov a,Monthcjne a,#12,LOOP2sjmp MM: mov Month,#1inc Yearmov a,Yearcjne a,#99,LOOP2mov year,#0LOOP2:pop ACCpop PSWretiDelay: ; 延时子程序mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h DisplayLED:mov r0, #LEDBufmov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loopret; ===============================================ToLED:mov dptr, #LEDMapmovc a, @a+dptrretStart:mov TMOD, #02h ; 模式2, 定时器mov TH0, #T100usmov TL0, #T100usmov IE, #10000010b ; EA=1, IT0 = 1mov Hour, #23mov Minute, #59mov Second, #50mov Year,#16mov Month,#6mov Day,#30mov C100us, #high(Tick)mov C100us+1, #low(Tick)setb TR0 ; 启动定时器0 MLoop:mov a, Hourmov b, #10div abcall ToLEDmov LEDBuf, amov a, bcall ToLEDorl a, #80hmov LEDBuf+1, amov a, Minutemov b, #10div abcall ToLEDmov LEDBuf+2, amov a, bcall ToLEDorl a, #80hmov LEDBuf+3, amov a, Secondmov b, #10div abcall ToLEDmov LEDBuf+4, amov a, bcall ToLEDmov LEDBuf+5, amov a, Yearmov b, #10div abcall ToLEDmov LEDBuf+6, amov a, bcall ToLEDmov LEDBuf+7, aljmp CCBB:ljmp MLoop CC: mov a, Monthmov b, #10div abcall ToLEDmov LEDBuf+8, amov a, bcall ToLEDmov LEDBuf+9, amov a, Daymov b, #10div abcall ToLEDmov R0, amov a, bcall ToLEDmov R1, ajnb p1.2,LP1jnb p1.3,lp2call DisplayLEDmov a,Hoursubb a,#0jz PPmov a,Hoursubb a,#5jz PPmov a,Hoursubb a,#9jz PPmov a,Hoursubb a,#10jz PPmov a,Hoursubb a,#11jz PPmov a,Hoursubb a,12jz PPjnz BBPP: mov a,minutesubb a,#0cjne a,#2,BBring:mov a,#0ffhmov 80h,acpl p1.1clr Speakercall Delay1setb Speakercall Delay1dec 80hjnb 80h, rrgljmp ringrrg: ljmp MloopDelay1:mov r0, #50djnz r0, $retLP1:mov a,LEDBuf+6mov LEDBuf,amov a,LEDBuf+7mov LEDBuf+1,amov a,LEDBuf+8mov LEDBuf+2,amov a,LEDBuf+9mov LEDBuf+3,amov a,R0mov LEDBuf+4,amov a,R1mov LEDBuf+5,acall DisplayLEDljmp MLooplp2:ljmp mainmain: mov r3,#99hljmp ring1ring1: setb p1.0mov a,#52hacall desyclr p1.0mov a,#52hacall desydjnz r3,ring1mov r3,#0ffhring3: setb p1.0mov a,#62hacall desyclr p1.0mov a,#62hacall desydjnz r3,ring3mov r3,#0ffhring4: setb p1.0mov a,#52hacall desyclr p1.0mov a,#52hacall desydjnz r3,ring4mov r3,#0ffhring5: setb p1.0mov a,#42hacall desyclr p1.0mov a,#42hacall desydjnz r3,ring5mov r3,#0ffhring6:setb p1.0mov a,#34hacall desyclr p1.0mov a,#34hacall desydjnz r3,ring6mov r3,#0ffhring7: setb p1.0mov a,#24hacall desyclr p1.0mov a,#24hacall desydjnz r3,ring7mov r3,#0ffhring8:setb p1.0mov a,#66hacall desyclr p1.0mov a,#66hacall desydjnz r3,ring8mov r3,#0ffhring9:setb p1.0mov a,#62hacall desyclr p1.0mov a,#62hacall desydjnz r3,ring9mov r3,#0ffhring10:setb p1.0mov a,#52hacall desyclr p1.0mov a,#52hacall desydjnz r3,ring10mov r3,#0ffhring2: setb p1.0mov a,#024hacall desyclr p1.0mov a,#024hacall desydjnz r3,ring2ljmp Mloopajmp mainretdesy: dec ajnz desyretLC: // ORG 0;jmp mainmov dptr, #0f002hmov a,#56hmovx @dptr,amov a,#0movx a,@dptrJMP MAIN3;---------------------------------------; 初始化程序INIT1: MOV COM, #0E2H ;复位LCALL PROLCALL PR3MOV COM, #0A4H ;关闭休闭状态LCALL PROLCALL PR3MOV COM, #0A9H ;设置1/32占空比LCALL PROLCALL PR3MOV COM, #0A0H ;正向排序设置LCALL PROLCALL PR3MOV COM, #0C0H ;设置显示起始行为第一行LCALL PROLCALL PR3MOV COM, #0AFH ;开显示设置LCALL PROLCALL PR3RET;------------------------------------------------; 清屏CLEAR: MOV R4,#00H ;页面地址暂存器设置CLEAR1: MOV A,R4 ;取页地址值ORL A,#0B8H ;"或"页面地址设置代码MOV COM,A ;页面地址设置LCALL PROLCALL PR3MOV COM,#00H ;列地址设置为"0"LCALL PROLCALL PR3MOV R3,#50H ;一页清80个字节CLEAR2: MOV DAT,#00H ;显示数据为"0"LCALL PR1LCALL PR4DJNZ R3,CLEAR2 ;页内字节清零循环INC R4 ;页地址暂存器加一CJNE R4,#04H,CLEAR1;RAM区清零循环RET;-----------------------------------;1.写指令代码子程序(E1)PRO: PUSH DPLPUSH DPHMOV DPTR,#CRADD1 ;设置读状态字地址PR01: MOVX A,@DPTR ;读状态字JB ACC.7,PR01 ;判"忙"标志为句"0",否再读MOV DPTR,#CWADD1 ;设置写指令代码地址MOV A,COM ;取指令代码MOVX @DPTR,A ;写指令代码POP DPHPOP DPLRET;------------------------------------;2.写显示数据子程序(E1)PR1: PUSH DPLPUSH DPHMOV DPTR,#CRADD1 ;设置读状态字地址PR11: MOVX A,@DPTR ;读状态宇JB ACC.7,PR11 ;判"忙"标志为"0",否再读MOV DPTR,#DWADD1 ;设置写显示数据地址MOV A,DAT ;取数据MOVX @DPTR,A ;写数据POP DPHPOP DPLRET;-------------------------------------;3.读显示数据子程序(E1)PR2: PUSH DPLPUSH DPHMOV DPTR,#CRADD1 ;设置读状态字地址PR21: MOVX A,@DPTR ;读状态字JB ACC.7,PR21 ;判"忙"标志为"0"否,否再读MOV DPTR,#DRADD1 ;设置读显示数据地址MOVX A,@DPTR ;读数据MOV DAT,A ;存数据POP DPHPOP DPLRET;-------------------------------------;4.写指令代码子程序(E2)PR3: PUSH DPLPUSH DPHMOV DPTR,#CRADD2 ;设置读状态字地址PR31: MOVX A,@DPTR ;读状态字JB ACC.7,PR31 ;判"忙"陈志为"0"否,否再读MOV DPTR,#CWADD2 ;设置写指令代码地址MOV A,COM ;取指令代码MOVX @DPTR,A ;写指令代码POP DPHPOP DPLRET;-------------------------------------; 5.写显示数据子程序(E2)PR4: PUSH DPLPUSH DPHMOV DPTR,#CRADD2 ;设置读状态字地址PR41: MOVX A,@DPTR ;读状态字JB ACC.7,PR41 ;判"忙"标志为"0"否,否再读MOV DPTR, #DWADD2 ;设置写显示数据地址MOV A,DAT ;取数据MOVX @DPTR,A ;写数据POP DPHPOP DPLRET;---------------------------------------; 6.读显示数据子程序(E2)PR5: PUSH DPLPUSH DPHMOV DPTR,#CRADD2 ;设置读状态字地址PR51: MOVX A,@DPTR ;读状态字JB ACC.7,PR51 ;判"忙"标志为"0",否再读MOV DPTR,#DRADD2 ;设置写显示数据地址MOVX A,@DPTR ;读数据MOV DAT,A ;存数据POP DPHPOP DPLRET; 中文显示子程序CCW_PR: MOV DPTR,#CCTAB ;确定字符字模块首地址MOV A,CODE_ ;取代码MOV B,#20H ;字模块宽度为32个字节MUL AB ;代码×32ADD A,DPL ;字符字模块首地址MOV DPL,A ;字模库首地址+代码×32MOV A,BADDC A,DPHMOV DPH,APUSH COLUMN ;列地址入栈PUSH COLUMN ;列地址入栈MOV CODE_,#00H ;代码寄存器借用为间址寄存器CCW_1: MOV COUNT,#10H ;计数器设置为16MOV A,PAGE_ ;读页地址寄存器ANL A,#03H ;取页地址有效值ORL A,#0B8H ;"或"页地址设置代码MOV COM,A ;设置页地址LCALL PRoLCALL PR3POP COLUMN ;取列地址值MOV A,COLUMN ;读列地址寄存器CLR CSUBB A,#PD1 ;列地址-模块参数JC CCW_2 ;<0为左半屏显示区域(E1)MOV COLUMN,A ;≥0为右半屏显示区域(E2)MOV A,PAGE_SETB ACC.3 ;设置区域标志位。

相关文档
最新文档