基于单片机的校园作息时间控制系统大学学位论文.docx
《基于单片机的校园作息时间控制系统大学学位论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的校园作息时间控制系统大学学位论文.docx(37页珍藏版)》请在冰豆网上搜索。
基于单片机的校园作息时间控制系统大学学位论文
基于单片机的校园作息时间控制系统
摘要:
校园作息时间控制系统主要用于学校,对一些以24小时为周期的开关量进行自动控制。
如上下课打铃、教学楼照明的定时开与关、学生宿舍灯及校园路灯的定时开关、水泵的定时启动以及自来水供水时间控制等等。
本文介绍了基于单片机的校园作息时间控制系统,该控制系统是采用STC89C52单片机来实现对上述开关量的控制,利用DS1302时钟芯片来提供时钟信息,LCD显示器,实时显示时间。
系统设有输入键盘,用以修改实时时钟。
并设有停电保护,避免了停电等偶然因素所带来的不便。
整个设计总体体现了系统简单、工作稳定可靠、价廉、控制时间精确及系统体积小等优点。
关键词:
STC89C52;作息时间;DS1302;仿真
CampusworkschedulescontrolsystembasedonSingle-ChipMicrocomputer
Abstract:
Campusworkschedulescontrolsystemwhichismainlyusedinthecampus,itauto-controlsomeswitcheswhichhaveperiodsof24hours.Suchasthebellsringingwhenclassesbeginorfinish,thetimeswitchesoflampsinteachingbuildingsandstudentdormitories,thetimestart-upofwaterpump,andthetapwatersupplycontrolsystem,etc.
ThisarticledescribesthecharacteristicofCampusworkschedulescontrolsystembasedonSingle-ChipMicrocomputer,itcontrolsystemcarriesouttheswitchparametercontrolsallabovebySCMSTC89C52.ItusestheclockchipcalledDS1302toprovidetheclockinformation.ItcouldshowtherealtimewithLCDMonitor.Anditcouldmodifytherealtimeclockwiththeinputkeyboard.Italsohaspowerfailureprotection,toavoidinconveniencesuchasaccidentalpoweroutagesandotherfactors.Thedesignreflectstheoverallsystemissimple,reliable,cheapandaccuratecontroloftimeandtheadvantagesofsmallsize.
Keywords:
STC89C52,Workschedules,DS1302,Simulation
第1章绪论
1.1概述
随着国民经济的快速发展和社会进步,教育在全社会愈加被关注和重视,校园规模也随着受教育者的数量增加而不断扩大,教室的数量和开设的课程等也在大幅增加。
为使师生有舒适的教学和学习环境,无论是教室的面积、设施和照明,校方在力所能及的范围内都付出了十分的努力。
长期以来由于学生作息时间时段多、控制不便,但又不得不进行打铃来提示师生的上下课。
这就对如何控制学生的作息时间提出新的问题。
目前大多数作息时间控制器大多数是定点打铃、人工校时。
虽然用人工的方法在一定程度上解决了打铃时间段多不好控制的问题,但毕竟人工打铃的效率不高,操作也不便,造成人力资源的大大浪费。
为了提高工作效率,实现智能化控制,只有不断改善其作息时间的控制设备。
随着智能控制技术的发展和微电子技术的进步,以单片微型计算机为代表的处理器的功能不断增强,为先进的控制算法提供载体,许多高性能的新型机种应运而生。
单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化领域和其他测控领域中广泛应用的器件,成为工业生产中必不可少的器件。
在新一代智能控制系统中,单片机更是起到了不可替代的核心作用。
以单片机等芯片设计的学生作息时间控制系统不仅能体现节省人力资料、智能化控制等方面的优势,而且还能提高学校的科学管理水平,节省开支,做到真正的智能化、效率化。
1.2国内外发展现状
学生作息时间控制系统的研发是一个新兴的课题。
它是以智能化取代以前的人工操作,所以市场上的学生作息时间控制系统并不多。
从使用的广泛度来讲,目前市面上流行的学生作息时间控制系统有以下两种:
1、基于SPCE061A的学生作息时间控制系统
基于SPCE061A的具有报时功能的作息时间控制钟。
它利用SPCE061A单片机的2Hz时基计时,进行年历计算,并用SPCE061A的语音功能将它报出来;在进行时间计算,分每加一时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。
由键盘、声音输出模块和指示灯三部分组成,系统扩展三个按键用于报时及校正时间。
学校要求对时间加以控制,要按时打铃及播放广播,以保证学习与工作的正常运行。
整体性好,人性化强、可靠性高,实现了对时间控制的智能化。
2、基于PLC的学生作息时间控制系统
基于PLC控制的作息时间控制系统,具有外设电路配置简单、扩展方便、操作容易、可靠性高、实用性强等特点,集电铃、路灯、宿舍灯、教室灯、音乐广播自动控制于一体,并具有周末与假期控制功能,实现了作息时间无人控制的自动化、科学化管理与操作。
1.3课题的题出
从上述背景可以看出,目前市面上流行的学生作息时间控制系统不是价格昂贵性价比不高,就是计时不精确,误差大。
一种性价比高、计时精确的学生作息时间控制系统的市场需求极大,开发这种高效、廉价的系统尤为重要。
因此,本文将对校园作息时间控制系统进行研究,从可靠性与性价比出发,设计一种基于单片机的校园作息时间控制系统。
该系统具有以下功能:
(1)开机时初始状态显示为00时00分,显示星期为“星期一”。
按下启动按钮,控制器开始计时工作;
(2)时间能显示当前的日期及时间;
(3)可按所设置的时间要求打铃,实现教学楼照明、学生宿舍灯及校园路灯的定时开关;
(4)设置相应的手动按钮,使控制器使用更加方便;
(5)周末和假期停止打铃。
1.4本文设计内容与结构
本文介绍基于单片机的校园作息时间控制系统设计的基本原理。
以KeilC51与Protues两软件联调,对其硬件设计进行软件仿真。
最后以蜂鸣器与发光二极管模拟打铃与路灯的开关,进行硬件仿真,实现单片机校园作息时间控制系统的任务要求。
本文的结构安排如下:
第一章概述,本章主要介绍同类系统的研究现况。
第二章方案设计与论证,本章阐述了根据需求确定可行的方案。
第三章系统硬件设计,对芯片的选型及其功能做出具体的介绍并给出各个部分的硬件电路。
第四章系统软件设计,阐述软件设计,包括主程序、各模块的子程序等。
第五章系统调试,在介绍了KeilC51与Protues两软件对系统软件仿真的基础上,论述硬件仿真与调试的过程。
第2章方案设计与论证
2.1系统的设计思想
基于单片机的学生作息时间控制系统主要包括:
控制模块、实时时钟模块、模拟输出模块、数码显示模块及键盘输入模块。
其中以控制模块为主控模块,对整个系统进行控制;实时时钟模块设有时钟芯片,用于提供准确的实时时间;显示模块显示实时时间;键盘输入模块设有输入键盘,用以修改实时时钟,实现人机交互。
系统的结构框图如图2-1所示。
图2-1校园作息时间控制系统组成
2.2方案设计与论证
2.2.1单片机芯片
作为控制系统的核心,单片机的选择也是本设计的重点之一。
本系统是面向市场的设计,故在系统的核心控制芯片的选择上,首先要考虑其性价比。
其次功耗也作为构建一个系统必须要考虑的因素。
基于以上两点,本设计对主控芯片的选择提出了以下几种方案:
方案一:
采用51系列芯片作为硬件核心,以AT89C51作为代表,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,128×8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。
方案二:
采用AVR单片机,这是先进的低端单片机,使用简单,有自带10位AD,受外部干扰很小。
同时它还具有其它众多优点。
AVR单片机的单周期指令能够保证高的执行效率和低成本,AVR单片机可以提供高达16MIPS的执行时间,具有128K字节的可编程Flash存储器,同时具备4096字节的静态RAM。
AVR单片机自带看门狗定时器,在强烈的电磁干扰条件下可以防止程序跑飞。
内部包含有硬件乘法器,加快乘法运算速度;I/O端口引脚数多达32根。
虽然AVR单片机无论是在资源上还是在运行速度上都比51单片机强大很多,但由于对性价比要求比较高,同时出于功耗的考虑,所以选择51单片机作为主控芯片。
同时出于现有资源与程序容量的考虑,本设计采用STC89C52单片机作为主控芯片。
2.2.2显示模块
学生作息时间控制系统工作是需要显示模块来提供实时时间,同时需要通过显示来体现学生作息时间控制系统良好的控制性,操作性。
所以显示部分为本设计重点之一,常用的显示方法有LED显示,LCD显示等,本设计对于显示模块有如下实现方法:
方案一:
采用LED数码管动态扫描,LED数码管价格适中,对于显示数字合适。
采用动态扫描法与单片机连接时,虽然占用的单片机口线少,但连线需要花费一点时间。
方案二:
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,但显示数字显得太浪费,且价格也相对较高。
方案三:
采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形,显示多样、清晰可见,且其控制方便,显示程序简单,省了很多麻烦。
通过以上三种方案的对比,明显看出LCD液晶显示对于本设计具有很大的优势,故选用LCD字符型液晶作为显示模块,虽然其只能显示两行,但其体积小,简单易控制、成本低,且两行字符型显示已完全能满足本设计的需求。
目前市面上的字符型液晶绝大多数是LCD1602。
LCD1602液晶是一款很常用,也很易用的字符液晶。
可以显示2行每行16个即32个字符,对比度可调、黄绿色背光。
所以本设计选用LCD1602用来显示时间等。
2.2.3时钟芯片
在电子时钟设计中,常用的实时时钟芯片有DS12887、DS1216、DS1643、DS1302。
每种芯片的主要时钟功能基本相同,只是在引脚数量、备用电池的安装方式、计时精度和扩展功能等方面略有不同。
本设计对于实时时钟模块提出了以下几种实现方法:
方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但实现的时间误差较大。
方案二:
使用并行接口时钟芯片DS12887设计时钟电路。
该设计方案用STC89C52芯片主控,利用并行时钟芯片DS12887为核心计时芯片,组成数字时钟电路。
该电路能够准确计时,还附加许多其它功能,在掉电时能保存用户设置参数和故障状态参数等重要参数。
该设计虽然能完成所要求的任务,综合性能也较好,但其并行接口方式占用大量接口资源,给其它设计带来诸多不便。
方案三:
使用串行接口时钟芯片DS1302设计时钟电路。
该设计方案以单片机STC89C52为主控芯片,以串行时钟芯片DS1302为核心计时芯片,组成数字时钟电路。
该电路不但能准确地计时,且其三线接口可以节省接口资源,加上锂电池在断电后不会丢失时间和数据信息。
通过以上三种设计方案的比较,可以看出,设计方案三接口简单、计时可靠、综合性能良好。
所以选用第三种设计方案。
2.2.4电路设计方案
通过上述方案论证,本系统采用STC89C52作为处理器,DS1302实时时钟芯片作为时钟计时单元,其不仅可以计时,而且高性能、低功耗、带RAM的实时时钟芯片,可对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,计时精确。
显示电路采用了LCD1602液晶屏来作为其显示模块。
LCD1602可以显示2行每行16个字符,对比度可调、黄绿色背光。
方便易用,使整个设计更加简单方便。
输出驱动电路部分PNP三级管来驱动蜂鸣器工作。
用发光二极管表示路灯,教学楼照明等工作情况。
2.3本章小结
在本章中,首先介绍了学生作息时间控制系统的整体设计思想。
然后对设计所用的核心芯片选择进行了详细的方案论证,通过详细阐述各个芯片的优势,对比以及本设计的特殊需求进行合理的选择,为整个设计打下了坚实的基础。
第3章系统硬件设计
3.1主控模块设计
3.1.1STC89C52单片机
STC89C52RC系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机。
片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),有3个定时器/计数器和6个中断源。
指令代码完全兼容传统8051单片机,片内具有FlashMemory程序存储器。
其引脚图如图3-1所示。
图3-1STC89C52引脚图
外部引脚说明:
VCC:
供电电压。
GND:
接地。
P0口(P0.0~P0.7):
为双向8位三态I/O接口。
在不接片外存储器与不扩展I/O接口时,可作为准双向输入/输出口;在接有片外存储器或扩展I/O接口时,P0口是地址总线低8位及数据总线分时复用口,可驱动8个TTL负载。
一般作为扩展时的地址/数据总线口使用。
P1口(P1.0~P1.7):
为8位准双向I/O接口。
它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1),可启动4个TTL负载。
对于52子系列单片机,P1.0与P1.1还有第二功能:
P1.0可用做定时器/计数器2的计数脉冲输入端T2,P1.1可用做定时器/计数器2的外部控制端T2EX。
P2口(P2.0~P2.7):
为8位准双向I/O接口,当它作为I/O接口是使用时,可直接连接外部I/O设备;在接有片外存储器或扩展I/O接口时且寻址范围超过256字节时,P2口用做高8位地址总线。
一般作为扩展时地址总线的高8位使用。
P3口(P3.0~3.7):
为8位准双向I/O接口,还可以将每一位用于第二功能。
P3口的第二功能定义见表3-1。
表3-1STC89C52的特殊功能口
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外中断0)
P3.3
(外中断1)
P3.4
T0(定时/计数器0)
P3.5
T1(定时/计数器1)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
RST:
复位输入,当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.1.2电路设计
系统电路如图3-2所示,18引脚和19引脚接晶振电路,XTAL1接外部晶振和微调电容的一端,XTAL2接外部晶振和微调电容的另一端。
20引脚为接地端,40引脚为电源端。
P1口作为键盘输入,P0口与P2的三个口P2.5、P2.6、P2.7分别作为LCD液晶显示的数据口与控制口,以实现良好的人机交换。
P3口的P3.0、P3.1、P3.2作为DS1302时钟芯片的数据交换口,而P3口的另外三个口P3.5、P3.6、P3.7作为输出控制口,控制模拟打铃与灯的开关。
图3-2系统电路图
3.2时钟模块设计
3.2.1DS1302时钟芯片
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。
实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。
工作电压宽达2.5~5.5V。
采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。
有主电源和备份电源双引脚,而且备份电源可由大容量电容(>1F)来替代。
需要强调的是,DS1302需要使用32.768KHz的晶振。
1、DS1302引脚图
DS1302引脚如图3-3所示。
图3-3DS1302芯片引脚图
其引脚功能参照表3-2。
表3-2DS1302引脚功能说明
引脚号
名称
功能
1
VCC1
备份电源输入
2
X1
32.768KHz晶振输入
3
X2
32.768KHz晶振输出
4
GND
地
5
RST
控制移位寄存器/复位
6
I/O
数据输入/输出
7
SCLK
串行时钟
8
VCC2
主电源输入
2、DS1302的控制字节说明
DS1302的控制字如表3-3所示。
表3-3DS1302控制字(即地址及命令字节)
BIT7
BIT6
BIT5
BIT4
BIT3
BIT2
BIT1
BIT0
1
RAM
A4
A3
A2
A1
A0
RD
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
3、数据输入输出
在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7,数据读写时序如图3-4所示。
图3-4DS1302数据读写时序
4、DS1302的寄存器
DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
其日历、时间寄存器及其控制字如表3-4所示。
表3-4DS1302有关日历、时间的寄存器
读寄
存器
写寄
存器
BIT7
BIT6
BIT5
BIT4
BIT3
BIT2
BIT1
BIT0
范围
81H
80H
CH
10秒
秒
00-59
83H
82H
10分
分
00-59
85H
84H
0
10
时
时
1-12
0-23
AM/PM
87H
86H
0
0
10日
日
1-31
89H
88H
0
0
10月
月
1-12
8BH
8AH
0
0
0
0
0
周日
1-7
8DH
8CH
10年
年
00-99
8FH
8EH
WP
0
0
0
0
0
0
0
—
此外DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
3.2.2电路设计
系统时钟应用实时时钟日历芯片DS1302,其连接如图3-5所示。
该硬件电路设计简单,抗干扰能力强。
同时DS1302芯片计时精确,不受系统电源影响;外接锂电池,提供断电保护。
图3-5时钟电路
如图3-5所示,STC89C52单片机P3.2直接接DS1302的RST端,上电后,STC89C52的P3.2脚自动输出高电平。
P3.1作为串行时钟接口,P3.0作为时钟数据的I/O。
DS1302采用双电源供电,平时由+5V电源供电,当+5V掉电之后,由图3-5中B1(+3V备用锂电池)供电。
特别需要注意X1和X2两端连接的晶振Y1,该晶振频率为32.768KHz。
3.3键盘接口电路设计
根据功能需要,本时钟需要设置以下功能键:
时间设置键,手动自动模式设计键,打铃设置键,路灯与教学楼灯点亮设置键,路灯与教学楼灯手动点亮键,手动打铃键,加1操作键,减1操作键。
按照键盘与CPU的连接方式可分为独立式键盘和矩阵式键盘。
独立式键盘是各个按键相互独立,每个按键占用一个I/O口线,每根I/O口线上的按键不会影响其他I/O口上按键工作状态。
独立式键盘电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口,在按键数量较多时,I/O口线浪费较大,且电路结构复杂。
矩阵式键盘适合按键较多时使用。
由于本设计的电子钟最多需要7个按键,若采用矩阵式键盘时会有按键浪费,故采用的是独立式键盘。
并且对于内置了上拉电阻的I/O引脚来说,外接上拉电阻没有意义。
键盘电路如图3-6所示。
图3-6键盘接口原理图
3.4显示模块设计
3.4.1LCD1602液晶显示模块
液晶显示器以其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。
液晶显示器通常可分为两大类:
一类是点阵型,另一类是字符型。
点阵型液晶通常面积较大,可以显示图形;而一般的字符型液晶只有两行,面积小,只能显示字符和一些很简单的图形,简单易控制且成本低。
目前市面上的字符型液晶绝大多数是LCD1602。
LCD1602液晶是一款很常用,也很易用的字符液晶,可以显示2行每行16个即32个字符,对比度可调,黄绿色背光。
其具体引脚图如图3-7所示。
图3-7LCD1602管脚图
1、管脚功能
字符型LCD通常有14条引脚线,市面上也有很多16条引脚线的LCD,多出来的2条线是电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,定义如表3-5所示。
表3-5LCD1602的引脚定义
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
VL
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端(H/L)
12
D5
Dat