基于单片机的教室灯光自动控制器的研究

上传人:工**** 文档编号:576763249 上传时间:2024-08-20 格式:PDF 页数:35 大小:1.09MB
返回 下载 相关 举报
基于单片机的教室灯光自动控制器的研究_第1页
第1页 / 共35页
基于单片机的教室灯光自动控制器的研究_第2页
第2页 / 共35页
基于单片机的教室灯光自动控制器的研究_第3页
第3页 / 共35页
基于单片机的教室灯光自动控制器的研究_第4页
第4页 / 共35页
基于单片机的教室灯光自动控制器的研究_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《基于单片机的教室灯光自动控制器的研究》由会员分享,可在线阅读,更多相关《基于单片机的教室灯光自动控制器的研究(35页珍藏版)》请在金锄头文库上搜索。

1、基于单片机的教室灯光自动控制器的研究 专 业:电气自动化 班级学号:08 电气自动化 学生姓名: 龙广龙 指导教师: 杨红 基于单片机的教室电灯自动监测器设计 目 录 第 1 节 引言 1.1 教室电灯自动监测器概述 1.2 51 系列单片机(型号:STC89C51)简介 1.3 外扩存储器芯片简介 系统实现的主要功能 1.4 1.4.1 自动模式 1.4.2 延时模式 1.5 自动监测功能实现方案 第 2 节 系统主要硬件电路设计 2.1 原理图与原理框图 2.2 主控板电路模块 2.2.1 单片机工作模块 2.2.2 时钟模式 2.2.3 蜂鸣报警器模块 2.2.4 键盘控制模块 2.2.

2、5 后备供电电源模块 第 3 节 系统软件设计 3.1 程序流程图 3.2 系统主程序设计 3.3 加减人数子程序设计 3.4 设定时钟段程序设计 第 4 节 结束语 第 5 节 致谢 参考文献 第 1 节 引言 随着社会经济和科学技术的发展,人们的生活水平也不断提高,导致用电负荷的加剧,能源缺乏已成为世界所面临的严峻问题。而此问题对我国来说尤为严重。随着教室的扩建,教室照明的需求也越来越多,而教室照明的管理不到位,往往造成电能的巨大浪费,这样,提高教室用电效率就成为首要考虑的问题。目前对电灯的智能控制,国外已经开始采用,但对教室电灯的控制,尤其是我国教室电灯的智能控制尤为缺乏和不完善,依然是

3、传统式的人工管理。教室不断扩建,教室的用电负荷不断加大,教室用电管理不善,造成学校电能浪费,经济损失,这种的浪费与当今的节约能源理相违背。并且,现代自动化程度不断提高,电灯的管理也在朝着自动化、智能化方向发展,于是,开发简便实用的教室电灯自动控系统便具有重要的现实意义。 该电灯自动监测器的系统设计原理,提出了 51 系列单片机为核心,控制DS1302 时钟芯片电路以及数码显示管、蜂鸣报警器的硬件设计和软件设计方案,该系统具有体积小,控制方便,可靠性高,专用性强,性价比合理等优点,可以满足各类大、中专院校教室灯光控制 的要求,很大程度的达到节能目的。 1.1 教室电灯自动监测器设计概述 针对教室

4、电灯的能源节省,尤其是教室电灯的智能控制方面的发展现状,分析了教室电灯智能控制的原理和实现方法,提出了基于单片机的教室电灯智能控制系统的设计思路,并在此基础上制作出智能控制系统的硬件装置和相应软件。该系统以 AT89C51 单片机作为主控制装置的智能部件,令设计延时作为子程序,该延时采用加法器按键,进行加减进入教室的人数(原想使用热释红外人体传感器检测人体的存在,但考虑到实际,因为改用加法器按键),在每次下课后监测到电灯未关,一分钟后发出报警提示音,提醒教室人员离开时关闭教室电源;发出报警时可以选择延时关闭、立即关闭、或不与理睬。若选择延时关闭或立即关闭时,报警器都会停止报警。立即关闭时,人工

5、切断电源,系统不再作监测;延时关闭时,系统会一直监测教室人数,如发现无人时会自动关闭电源。不与理睬时系统会持续报警 10分钟,并在 10 分钟后自动切断电源。 1.2 51 系列单片机(型号:STC89C51)简介 AT89C51 具有如下特点:40 个引脚,4k Bytes Flash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM),32 个外部双向输入/输出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2 个 16 位可编程定时计数器,2 个全双工串行通信口,片内时钟振荡器。 此外,AT89C51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式。空闲模

6、式下,CPU 暂停工作,而 RAM 定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有 PDIP、TQFP 和 PLCC 等三种封装形式,以适应不同产品的需求 U2139 P10P00238P11P01 337P12P02436 P13P03535P14P04 634P15P05733P16P06 832P17P07 1321INT1P20 1222INT0P2123P22 1524T1P231425 T0P2426P25 3127EA/VPP2628P27 19X118 X2 910RESETRXD1

7、1TXD 1730RDALE/P1629 WRPSEN AT89C51 图 3-1 AT89C51 芯片引脚图 其主要功能特性: 兼容 MCS-51 指令系统 4k128x8 bit 内部 RAM 可反复擦写(1000 次)Flash ROM 2 个外部中断源 32 个双向 I/O 口 低功耗空闲和省电模式 4.5-5.5V 工作电压 中断唤醒省电模式 3 2 个 16 位可编程定时/计数器 时级加密 钟频率 0-33MHz 软件设置空闲和省电功能 全双工 UART 串行中断口线 双数据寄存器指针 可以看出 AT89C51 提供以下标准功能:4K 字节 Flash 闪速存储器,128 字节内部

8、 RAM,32 个 I/O 口线,两个数据指针,两个 16 位定时器/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,以及片内振荡器和时钟。同时, AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式时停止CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式是在 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到一个硬件复位。 1.3 外扩存储器芯片简介 特殊功能寄存器:特殊功能寄存器的片内空间分布如下图 3-3 所示。这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值。而写这

9、些地址单元将不能得到预期的结果。 中断寄存器:各中断允许控制位于 IE 寄存器,5 个中断源的中断优先级控制位于 IP 寄存器。 表 3-3 为 AUXR 辅助寄存器。 ARXR 地址=8EH 复位状态=XXX00XX0B Not Bit Addressable WDIDLE DISRTO DISALE Bit 7 6 5 4 3 2 1 0 保留为将来扩展用途位 DISALE ALE 禁止/使用 DISALE 操作模式 0 ALE 输出 1/6 震荡时钟频率脉冲 1 ALE 仅在执行 MOVX 或 MOVC 指令期间输出脉冲 DISRTO 禁止/使能复位输出 DISRTO 0 复位引脚在 W

10、ET 溢出时变高 1 复位引脚仅为输入 WDIDLE 禁止/使能 IDLE 模式的 WDT WDIDLE 0 IDLE 模式 WDT 继续计数 1 IDLE 模式 WDT 停止计数 双时钟指针寄存器:为方便地访问内部和外部数据存储器,提供了两个 16 位数据指针寄存储器:PD0 位于 SFR 区块中的地址 82H、83H 和 DP1 位于地址 84H、85H,当 SFR 中的位 DPS=0 时选择 DP0,而 DPS=1 时选择 DP1。在使用前初始化 DPS。 表 3-4 双时钟指针寄存器 AUXR1 地址=A2H 不可寻址位 复位状态=XXXXXXX0B DPS Bit 7 6 5 4 3

11、 2 1 0 保留为今后扩展用途 DPS 数据指针选择位 DPS 0 选择 DPTR 寄存器 DP0L.DP0H 1 选择 DPTR 寄存器 DP1L.DP1H 电源空闲标志:电源空闲标志(POF)在特殊功能寄存储器 SFR 中 PCON 的第 4 位(PCON.4),电源打开时 POF 置“1”,它可由软件设置睡眠状态并不为复位所影响。 存储器结构:MCS-51 单片机内核采用程序存储器和数据存储器空间分开的结构,均具有 64KB 外部程序和数据的寻址空间。 程序存储器:如果 EA 引脚接地(GND),全部程序均执行外部存储器。在 AT89S51,假如接至 VCC(电源,),程序首先执行从地

12、址 0000H,0FFFH(4KB)内部程序存储器,再执行地址为 1000H,FFFFH(60KB)的外部程序存储器。 数据存储器:在 AT89C51 的具有 128 字节的内部 RAM,这 128 字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128 字节均可设置为堆栈区空间。 系统实现的主要功能 1.4 教室电灯自动监测器可实现有效的教室电灯智能控制,结合学校的作息时间对教室电灯进行实时控制,达到方便和节约能源的目的。能自动关闭电灯及及时提醒教室内的同学关闭电源,同时为考虑到下课后仍有同学在教室内自习,必须进行延时关闭电灯,因此该系统存在两种模式:自动模式和延时模式 1

13、.4.1 自动模式 系统复位默认工作在自动控制模式,模式是结合学校作息的时间段,在每节课下课一分钟后,发出报警提示音,提醒教室内的同学离开时关闭教室电灯电源。(即下课时间为 10:00,报警提示音将在 10:01 分进行响起提示。)达到节约用电的效果。 发出报警提示音后,可以选择立即关闭、延时关闭、或不予理睬。当选择立即关闭时,人工切断电源,系统将不再作监测;当选择不予理睬时,系统报警提示音将会持续报警 10 分钟,并在 10 分钟后自动切断电源。(即下课时间为 10:00,报警提示音将在 10:01 分进行响起提示,当选择不予理睬时,系统在 10:11 分自动切断电源。)若选择延时关闭,即进

14、入到延时模式,通过报警提示音后的三种选择,体现了系统设计的灵活性。 1.4.2 延时模式 系统正常工作的情况下,通过按下延时按钮,就能对电灯进行延时模式的控制。系统考虑到下课后,同学因某种需求留在教室自习,那么必须延时系统对电灯的监测,直到教室无人后自动关闭电灯。假设下课时间为10:00,报警提示音将在10:01 分进行响起提示,当选择延时关闭模式后,系统会一直监测教室内的人数,若发现无人后即自动关闭电源。(进入教室与走出教室人数的监测,将由按钮模拟人数进入和走出进行加或减。) 1.5 自动监测功能实现方案分析 所研制的监测器以结合学校作息时间和教室进出人数作为监测器的主要监测参数。可以实现自

15、动模式与延时控制相兼容。在正常上课作息时间段内,设定相应的下课报警提示音,提醒学生及时关闭电源;在考虑到学生大意并不予理睬报警提示音时,将延时一定时间后关灯。同时,还要按考虑下课后仍有学生留下自习来控制,若还有人存在,则进入延时模式运行,改用按钮加减人数手动控制,以解决因特殊情况下,自动控制器的不人性化运行。本文所做的教室电灯控制器主要是由硬件和软件两大部分组成。硬件部分是前提,是整个系统执行的基础,它主要为软件提供程序运行的平台。而软件部分,是对硬件端口所体现的信号,加以采集、分析、处理,最终实现控制器所要实现的各项功能,达到控制器自动与手动相结合的教室电灯智能控制。 第 2 节 系统主要硬

16、件电路设计 2.1 原理图与原理框图 图 2-1 考虑到本监测器所安装的物理影响因素比较多,且教室控制设备中的进出人数会因上课情形变化而不稳定,所以在设计过程中,电子元器件的选用、线路布置和设备的安放要充分考虑到抗干扰问题。下图为原理框图: 电源输入 键盘输入 时钟电路 AT89C51 复位电路 报警电路 延时电路 2.2 系统主要硬件电路设计 系统控制单元是以单片机主控模块为核心,其它外围电路主要包括:AT89C51 单片机主控制模块、系硬件时钟模块、蜂鸣器报警提示音模块、按键模块、后备电源模块、延时模块数码管驱动显示模块、主电路原理图见图 2-1 所示。 2.2.1 单片机工作电路及时钟输

17、出电路 本系统的主控模块主要采用 51 系列单片机型号为 STC89C51 作为主控芯片。 89S52 引脚外围器件引脚说明 VCC:电源电压 GND:地 P0 口:P0 口是一组 8 位漏极开路型双向 I/O 口,也即地址/数据总线复用口,作为输出口用时,每位能驱动 8 个 TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1 口:P1 是一个带内部上拉电阻的 8 位双向

18、I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1 接收低 8 位地址。 P2 口:P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 I。在访问,位地址的外部数据存储器(如执行:MOVX Ri 指令)时,P2 口线上的内(也即

19、特殊功能寄存器,在整个访问期间不改变。Flash 编程或校验时,P2 也接收高位地址和其它控制信号。 P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端口时,被外部拉低的 P3 口将用上拉电阻输出电流 I。P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能,P3口的第二功能如下表 3-2。 表 3-2 为 P3 口的第二功能 端口功能 第二功能 端口引脚 第二功能 RXD(P3.0) 串行输入口 T0(P3.4) 定时

20、/计数器 0 外部输入 TXD(P3.1) 串行输出口 T1(P3.5) 定时/计数器 1 外部输入 INT0(P3.2) 外中断 0 WR(P3.6) 外部数据存储器写选通 INT1(P3.3) 外中断 1 RD(P3.7) 外部数据存储器读选通 RST:复位输入。当振荡工作时,RST 引脚出现两个机器周期上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。即使不再访问外部存储器,ALE 仍以时钟振荡频率的 1/6 输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:当访问外部数据存储器时将跳

21、过一个 ALE 脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置禁位后,只有一条 MOVX 和 MOVC 指令 ALE 才会被激活。此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置 ALE 无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。当访问外部数据存储器,高有两次有效的 PSEN 信号。 EA/VPP:外部访问允许。欲使 CPU 访问外部程序存储器(地址 0000H,FFFFH),EA端必

22、须保持低电平(接地)。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 VCC 端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上,12V 的编程电压 VPP。 XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。 2.2.2 时钟输出电路 根据教室电灯使用特性,该系统还应受到时间的控制,控制系统的时间应符合学校的作息时间。比如晚间休息、假期等时间段应该关掉教室电灯监测系统,以节约能源,因此本监测器还加入硬件时钟电路以保证系统的智能化运行,如MCl46818、(,iC68H

23、68T、LM8365 等,这些芯片的引脚太多,体积大,占用的口线多。而现在流行的串行时钟芯片很多,如 DSl302、DSl305、DSl307、PCF8485 等,这些电路的接口简单、价格低廉、使用方便,被广泛的使用。考虑到本系统停电时只需对时钟电路提供电源、且不需要占用太多单片杌资源, 8 的用于临时性存放数据的本系统采用美国 DALLAS 公司推出的具有充电能力的低功耗 3l RAM 寄存器的实时时钟芯片 DS1302。此芯片采用的是串行通信方式,还可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2(5

24、V,5(5V,DSl302 是 DSl202 的升级产品,与 DS1202 兼容,但增加了主电源,后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 而且本系统采用的 DS1302 只需三根线即可与单片机进行通信,体积小,使用简单,时钟精度较高,可以满足系统的要求,在 DS1302 的引脚排列,其中 Vcc1 为后备电源,VCC2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电。当 Vcc2 大于 Vcc1+0.2V 时,Vcc2 给DS1302 供电。当 Vcc2 小于 Vcc1 时,DS1302 由 Vcc

25、1 供电。X1 和 X2 是振荡源,外接 32.768kHz 晶振。RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。当 RST为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。如果在传送过程中 RST 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在 Vcc?2.5V 之前,RST 必须保持低电平。只有在 SCLK 为低电平时,才能将RST 置为高电平。I/O 为串行数据输入输出端(双向

26、), SCLK 始终是输入端。DS1302 主要用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。因此在本监测器中,DS1302 时钟芯片主要体现于结合学校的作息时间,设定相应的时间下课报警提示音。 2.2.3 蜂鸣报警器模块 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 ;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”

27、(旧标准用“FM”、“LB”、“JD”等)表示。 而本监测器使用的蜂鸣器是多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V 直流工作电压),多谐振荡器起振,输出 1.52.5kHZ 的音频信号,阻抗匹配器推动压电蜂鸣片发声。 图 2.2.3 教室电灯监测器之蜂鸣器模块 2.2.4 键盘控制模块 本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是由行线和列线组成的四方阵形式布局,能避免使用混乱和功能错乱。 图 2.2.4 按键其功能与原理图对应分析 2.2.5 后备供电电源模块 考虑到教室可能会出现供电问题或停电等问题,为确保硬件时钟的正常运行,因此设计一个 3V 的可充电

28、锂电池作为备用电源。 纽扣电池也称扣式电池,是指外形尺寸象一颗小纽扣的电池,一般来说直径较大,厚度较薄(相对于柱状电池如市场上的 5 号 AA 等电池)。纽扣电池是从外形上来对电池来分,同等对应的电池分类有柱状电池,方形电池和异形电池。 纽扣电池一般来说常见的有充电的和不充电的两种,充电的包括 3.6V 可充锂离子扣式电池(LIR 系列),3V 可充锂离子扣式电池(ML 或 VL 系列);不充电的包括 3V 锂锰扣式电池(CR 系列)及 1.5V 碱性锌锰扣式电池(LR )。而监测器使用的则是型号为 CR2032 的锂二氧化锰电池。 及 SR 系列 同时必须注意:1、正确连接电池的“,”,“-

29、”极性; 2、不同种类的电池不要在一起使用; 3、不要直接将焊料加在电池上; 4、避免电池储存在直射光、高温、高湿的环境下。 第 3 节 系统软件设计 3.1 程序流程图 3.2 系统主程序设计 #include sbit CLK= P10; sbit DIO= P11; sbit CE= P12; sbit setTime= P13; sbit tiaoshi= P14; sbit tiaofen= P15; sbit seeAlamT= P16; /查看报警时间 sbit delay_Lock=P31; /延时关灯 sbit countIn= P32; /计数进来人员数 sbit coun

30、tOut= P33; /计数出去人员数 sbit speeker= P35; /报警输出 sbit switchSign =P36; /灯状态 sbit lampswitch=P37; /灯开关模拟 bit xsd; bit disp_model=0; /显示模式切换,=0 时,显示主时间,=1 时,显示提醒时间 bit set_Time_En=0; /时间设置允许标志,=0,不可以设置,=1 时,可以调节时间 bit kaiguan=0; /内部开头标志位,=0 时表示关,=1 时表示开, bit chaoshi=0; /超时未关灯标志位,=0 时表示未超时,=1 表示超时未关。 bit d

31、elay_Lock_En=0; /延时关灯允许标志位,=1 时,允许延时 /bit time_Control=1; /时间控制标志,为 0 时可以自由开放,有人进入灯可以开启,为 1 时时间限制,不允许随便开灯 unsigned char xiaoshi,fenzhong,miao,shang_yi_miao; unsigned char xs1=9,fz1=40,xs2=11,fz2=50,xs3=15,fz3=40,xs4=17,fz4=50,xs5=20,fz5=40; /设定五组时间 unsigned char alam_Time_Count=0; /count=1-5,共五组,表示设

32、定的四个时间值 unsigned char Population=0; /教室人数计数 unsigned char count0; /time0 中断计数器 unsigned char LED_SEG=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; / 共阴/0x28,0xEE,0x32,0xA2,0xE4,0xA1,0x21,0xEA,0x20,0xA0; /共阳 void yan_shi(unsigned int shuju) while(-shuju); unsigned char du1302(unsigned char dizhi

33、) unsigned char i,jieguo; CLK=0; CE=1; for(i=0;i1; DIO=1; jieguo=0; if(DIO=1)jieguo=jieguo|0x80; for(i=0;i1; if(DIO=1)jieguo=jieguo| 0x80; CE=0; return(jieguo); void xie1302(unsigned char dizhi,shuju) unsigned char i; CE=1; for(i=0;i1; for(i=0;i1; CE=0; void display(void) unsigned char D1,D2,D3,D4,D

34、5,D6,D7; miao= du1302(0x81); fenzhong= du1302(0x83); xiaoshi= du1302(0x85); if(miao!=shang_yi_miao) xsd=1; TR0=1; shang_yi_miao=miao; if(disp_model=0) D1=xiaoshi4; D2=xiaoshi&0x0f; D3=fenzhong4; D4=fenzhong&0x0f; / D5=miao4; D6=miao&0x0f; else if(alam_Time_Count=1) D1=xs1/10; D2=xs1%10; D3=fz1/10; D

35、4=fz1%10; / D5=0; D6=0; if(alam_Time_Count=2) D1=xs2/10; D2=xs2%10; D3=fz2/10; D4=fz2%10; / D5=0; D6=0; if(alam_Time_Count=3) D1=xs3/10; D2=xs3%10; D3=fz3/10; D4=fz3%10; / D5=0; D6=0; if(alam_Time_Count=4) D1=xs4/10; D2=xs4%10; D3=fz4/10; D4=fz4%10; / D5=0; D6=0; if(alam_Time_Count=5) D1=xs5/10; D2=

36、xs5%10; D3=fz5/10; D4=fz5%10; / D5=0; D6=0; D5=Population/100; D6=Population%100/10; D7=Population%10; P0= LED_SEGD1; /display hour P2= 0x7F; yan_shi(200); P2= 0xFF; if(disp_model=0)&(xsd=0) P0= LED_SEGD2; else P0= LED_SEGD2|0x80; P2= 0xBF; yan_shi(200); P2= 0xff; P0= LED_SEGD3; /display minit P2= 0

37、xDF; yan_shi(200); P2=0xff; P0= LED_SEGD4; P2= 0xEF; yan_shi(200); P2=0xff; P0= LED_SEGD5; /display Population P2= 0xF7; yan_shi(200); P2=0xff; P0= LED_SEGD6; P2= 0xFB; yan_shi(200); P2=0xff; P0= LED_SEGD7; P2= 0xFD; yan_shi(200); P2=0xff; void keyscan(void) if(set_Time_En=1) if(disp_model=0) /主时间模式

38、 if(!tiaoshi) xie1302( 0x8E, 0x00); xie1302( 0x80, 0x80); xiaoshi+; if(xiaoshi& 0x0f) =10)xiaoshi=xiaoshi+ 0x10;xiaoshi=xiaoshi& 0xf0; if(xiaoshi = 0x24)xiaoshi=0; xie1302( 0x84,xiaoshi); xie1302( 0x8E, 0x80); do display(); while(!tiaoshi); if(!tiaofen) xie1302( 0x8E, 0x00); xie1302( 0x80, 0x80); fe

39、nzhong+; if(fenzhong& 0x0f) =10)fenzhong=fenzhong+ 0x10;fenzhong=fenzhong& 0xf0; if(fenzhong = 0x60)fenzhong=0; xie1302( 0x82,fenzhong); xie1302( 0x8E, 0x80); do display(); while(!tiaofen); else if(!tiaoshi) if(alam_Time_Count=1) xs1+; if(xs1=24) xs1=0; if(alam_Time_Count=2) xs2+; if(xs2=24) xs2=0;

40、if(alam_Time_Count=3) xs3+; if(xs3=24) xs3=0; if(alam_Time_Count=4) xs4+; if(xs4=24) xs4=0; if(alam_Time_Count=5) xs5+; if(xs5=24) xs5=0; do display(); while(!tiaoshi); if(!tiaofen) if(alam_Time_Count=1) fz1+; if(fz1=60) fz1=0; if(alam_Time_Count=2) fz2+; if(fz2=60) fz2=0; if(alam_Time_Count=3) fz3+

41、; if(fz3=60) fz3=0; if(alam_Time_Count=4) fz4+; if(fz4=60) fz4=0; if(alam_Time_Count=5) fz5+; if(fz5=60) fz5=0; do display(); while(!tiaofen); if(!setTime) if(set_Time_En=0) set_Time_En=1; else set_Time_En=0; if(set_Time_En=1)&(alam_Time_Count=0) xie1302( 0x8E, 0x00); xie1302( 0x80, 0x80); /停止计时 xie

42、1302( 0x8E, 0x80); else xie1302( 0x8E, 0x00); xie1302( 0x80, 0x00); /启动计时 xie1302( 0x8E, 0x80); do display(); while(!setTime); if(!seeAlamT) disp_model=1; alam_Time_Count+; if(alam_Time_Count=6) alam_Time_Count=0; disp_model=0; do display(); while(!seeAlamT); 3.3 延时子程序设计 if(!delay_Lock) /延时关灯模式 if(c

43、haoshi=1)&(Population0) delay_Lock_En=1; /开启延时 do display(); while(!delay_Lock); if(!countIn) /进人模拟信号 if(Population0) Population-; / 教室人数计数减 1 else Population=0; do display(); while(!countOut); 3.4 设定时钟段程序设计 if(alam_Time_Count=1) xs1+; if(xs1=24) xs1=0; if(alam_Time_Count=2) xs2+; if(xs2=24) xs2=0;

44、if(alam_Time_Count=3) xs3+; if(xs3=24) xs3=0; if(alam_Time_Count=4) xs4+; if(xs4=24) xs4=0; if(alam_Time_Count=5) xs5+; if(xs5=24) xs5=0; do display(); while(!tiaoshi); if(!tiaofen) if(alam_Time_Count=1) fz1+; if(fz1=60) fz1=0; if(alam_Time_Count=2) fz2+; if(fz2=60) fz2=0; if(alam_Time_Count=3) fz3+

45、; if(fz3=60) fz3=0; if(alam_Time_Count=4) fz4+; if(fz4=60) fz4=0; if(alam_Time_Count=5) fz5+; if(fz5=60) fz5=0; do display(); while(!tiaofen); if(!setTime) if(set_Time_En=0) set_Time_En=1; else set_Time_En=0; if(set_Time_En=1)&(alam_Time_Count=0) 第 4 节 结束语 以上为毕业期间所设计的电子监测控制系统的电路,它经过多次修改和整理,可以满足设计的基本

46、要求。但因为我们的水平有限,此电路中也存在一定的问题。譬如延时模式仍不够完善,使到在操作时容易出现错误。由于使用的是单片机作为核心的控制元件,配合其它器件,使本监测系统具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。 同时在程序设计过程中,发现采用合理的程序设计结构是一项关键技术。在本系统的设计过程中,总体设计采用自上至下的设计思想将主程序设计好,而在各个部分展开成从属程序或子程序时,是将各个小模块分别进行设计和编程,同时在编程的过程中又用到了结构程序设计的思想,唯有这样才能完整有效地组织起程序,使其顺畅地运作。 第 5 节 致谢 三年的大学即将结束了

47、,回顾几年的历程,老师们给了我们很多指导和帮助。他们严谨的治学,优良的作风和敬业的态度,为我们树立了为人师表的典范。要感谢我的毕业设计指 导老师杨红,在她的指导下我完成了毕业设计与论文,与老师多次探讨毕业设计,由选题到制作,并为我们指点迷津。还要感谢和我同一设计小组的几位同学,是你们在我设计中和我一起探讨问题,并指出我设计上的误区,使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地结稿,在此表示深深的谢意。 现在即将挥别我的学校、老师、同学,还有我三年的大学生活,虽然依依不舍,但是对未来的路,我充满了信心。最后,感谢在大学期间认识我和我认识的所有人,有你们的伴随,才有我

48、大学生活的丰富多彩,绚丽多姿谢谢 参考文献 【1】www(cps800(COm(国家未来五年将推广 I(5 亿只节能灯( 【2】张毅刚,彭喜源,谭晓钧,曲春波(MCS 一 51 单片机应用设计,哈尔滨工业大学出版社 2001(1( 【3】赵海兰毛玉良赵祥(实时时钟电路 DSl302 的原理及应用(电子元器件应用,2005,12( 【4】UWb,时钟芯片的低功耗设计方案,2006,1 1 【5】张道宏等(基于 DSl302 的子母钟系统(电子技术,2002,4( 【6】刘大茂严飞(单片机应用系统监控主程序的设计方法(福州大学学报(自然科学版)(1998。2(1) 【7】朱定华,戴汝平编著(单片机

49、原理与应用(清华大学出版社北方交通大学出版社,2003,8( 【8】张念祖,单片机遥控键盘接口,电测与仪表,1993 年 【9】李强,键盘接口编程技术,电子世界,2003(10) 【10】杨振江,杜铁军等,流行单片机使用子程序及应用实例,西安电子科技大学出版社,2002,7 【11】何立民,单片机应用技术选编(1) 北京航空航天大学出版社,2001,12 【12】何立民,单片机应用技术选编(2) 北京航空航天大学出版社,2000,10 【13】何立民,单片机应用技术选编(3) 北京航空航天大学出版社,2001,3 【14】楼然苗等编,5l 系统单片机设计实例,北京航空航天大学出版社,2003,3

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号