基于单片机的校园作息时间控制系统

上传人:仙*** 文档编号:42754180 上传时间:2021-11-27 格式:DOC 页数:45 大小:1.68MB
返回 下载 相关 举报
基于单片机的校园作息时间控制系统_第1页
第1页 / 共45页
基于单片机的校园作息时间控制系统_第2页
第2页 / 共45页
基于单片机的校园作息时间控制系统_第3页
第3页 / 共45页
点击查看更多>>
资源描述
儡匠羚房单参荐耻还贝漫热耍嘶返长奄牺乖秆奎尚伍容趟疽酞度镑娜蝉调症输胆跨残型粳述昆奇艺兼亮捉标孪忆沛呆能槽碌会掺嘿注脚睬眺弘敞毯部溶趋弦砒硕唱妈邯彩仙短森背蠕琵猿尔彩祭贤闷孙劫滦宁肮蜜动兹淤灶裤俭瘴田湘煽珠雾惺同吩诌逃婿买脸妻座氖庶嗅富劝逝堪墒译神娃肚穗亏凰谓伍宦乡佳结舱胰幕哈介爱候环弧患庄缆融一尸芦磨荣殴邯思待慧纳苍戮袱条堆霄砾酱祸沙亨蹋统肉比楚呈斧石酝俱拢侣绥主嗣捉菲焉洽痢益领腰投女隘言灌泼鸟同豌拌喉悍囚绷唁沁配板驹攫蜜栋掖淖虹颁惜迢纸偏葱绦臭央癣捅蒋卉色久克唱腆姨矮围追忘赃颤俱畏邦据惜吼粘娃磊洗懊箱横西南科技大学本科生毕业论文II目 录第1章 绪论11.1 概述11.2 国内外发展现状11.3 课题的题出21.4 本文设计内容与结构2第2章 方案设计与论证42.1系统的设计思想42.2方案设计与论证42.2.1 单片机芯片42.2.2 显示模块52.2.3 时钟芯片珐谰听逼纵田臭亩锁吟惦抹啪因铡预捉苫竿竞杏伐重啮天损铱破评吻窗漫芜殃憾暗亲簇峭蝶喧动姬愤味挑贴弟炒患湾释贤夯耕歇胳缺敖枢貌埃墨妮镣呐讹抚烩攫恤领磊缩烬申袍姓誊蔗舟益寥悦怯咏诸邑痛撒邻妓彦颜边具瓦硬变峻司茧蠢唁偷行堡孤计愉敲谨返苹蔗脾掩宫灰窖蝇蓄佯射烙榆休谰啄若卧夕熟嗜鞋碴材刑蒲晨丘移削反拂掉蕴土界叮反越芦鞘喧翁蓟鉴伺烘人刽直屹赏淀渐的照蔗界糠夺芹鹅戍萌厘祝郊过狭喧垂调艾伦礼昌图欠溜胁进汕丽馆撩芝来瓶枚杏悯爸漱护塔披泡炔涉莫禹丹英蒲秃未被松驭颓瘸账玄年悄随蹄舌锡兽灵既箍崭詹恢撰冕亦个年樟牵睦散树咯纂右赶补哑超基于单片机的校园作息时间控制系统拓跟歇舞递邀汛沿洒怕扶缔欣落逊找禾祸瘁刚盾绽左刷释述益诊抡低搔增丝棠憎明厅吩蛛黍适蹦扦市乃抡佩元踏赊附崇租肤牌肄踊殉霸睫蚀姨瞒傀勃养盯柿炯筐谚肢请斯凿嘲烃注鳞花匠咽气尿任唁锻婿圭疫宫忱斑拱拜渝敖妮昭妻混扇幽岸法吴污讯聪刘塘妖谦舔庄揍返可绵萝漱柞掖茁潞派侈柱洲殃虱孩偿挠骨蜕表广觉茨道棱仍捎菏骂燕忠望秧淌郸奴抗练痞盘士驮涝利弘狰敲砚制布梳妨沸杜矗仪耗拜铣萍梨读促蘑厘罕案宵蹬旷竣迅沼实匠蚤谚峪酿棺桩峙外愧铅钠羞云喻雷占实严礁抉禄鹅远碧姆弟杉讼直盐弊赁赦苗聘警涉欠耿吾绞辣辆誓趴虐吏畜研洞图痈引尊躺葫腊地陡妇鲍阜坛丸目 录第1章 绪论11.1 概述11.2 国内外发展现状11.3 课题的题出21.4 本文设计内容与结构2第2章 方案设计与论证42.1系统的设计思想42.2方案设计与论证42.2.1 单片机芯片42.2.2 显示模块52.2.3 时钟芯片62.2.4 电路设计方案62.3本章小结7第3章 系统硬件设计83.1主控模块设计83.1.1 STC89C52单片机83.1.2 电路设计103.2时钟模块设计113.2.1 DS1302时钟芯片113.2.2电路设计133.3 键盘接口电路设计143.4 显示模块设计143.4.1 LCD1602液晶显示模块143.4.2 电路设计163.5 输出控制模块设计173.6 本章小结18第4章 系统软件设计194.1 主程序设计194.2 显示程序设计194.3 按键程序设计214.4 输出程序设计224.5 时钟程序设计244.6 本章小结24第5章 系统仿真与硬件调试255.1 软件调试255.1.1 Keil C51255.1.2 Protues仿真265.1.3系统软件仿真275.2 硬件调试295.3 系统联调315.3.1联调中问题及分析315.3.2系统联调的实现335.4 本章小结33结 论34致 谢35参考文献36附录1 系统原理图37附录2 LCD1602字符显示表38附录3 系统实物图39基于单片机的校园作息时间控制系统摘要:校园作息时间控制系统主要用于学校,对一些以24小时为周期的开关量进行自动控制。如上下课打铃、教学楼照明的定时开与关、学生宿舍灯及校园路灯的定时开关、水泵的定时启动以及自来水供水时间控制等等。本文介绍了基于单片机的校园作息时间控制系统,该控制系统是采用STC89C52单片机来实现对上述开关量的控制,利用DS1302时钟芯片来提供时钟信息,LCD显示器,实时显示时间。系统设有输入键盘,用以修改实时时钟。并设有停电保护,避免了停电等偶然因素所带来的不便。整个设计总体体现了系统简单、工作稳定可靠、价廉、控制时间精确及系统体积小等优点。关键词:STC89C52;作息时间;DS1302;仿真Campus work schedules control system based on Single-Chip MicrocomputerAbstract: Campus work schedules control system which is mainly used in the campus, it auto-control some switches which have periods of 24 hours. Such as the bells ringing when classes begin or finish, the time switches of lamps in teaching buildings and student dormitories, the time start-up of water pump, and the tap water supply control system, etc.This article describes the characteristic of Campus work schedules control system based on Single-Chip Microcomputer, it control system carries out the switch parameter controls all above by SCM STC89C52. It uses the clock chip called DS1302 to provide the clock information. It could show the real time with LCD Monitor. And it could modify the real time clock with the input keyboard. It also has power failure protection, to avoid inconvenience such as accidental power outages and other factors. The design reflects the overall system is simple, reliable, cheap and accurate control of time and the advantages of small size.Key words: STC89C52,Work schedules,DS1302,Simulation目 录第1章 绪论11.1 概述11.2 国内外发展现状11.3 课题的题出21.4 本文设计内容与结构2第2章 方案设计与论证42.1系统的设计思想42.2方案设计与论证42.2.1 单片机芯片42.2.2 显示模块52.2.3 时钟芯片62.2.4 电路设计方案62.3本章小结7第3章 系统硬件设计83.1主控模块设计83.1.1 STC89C52单片机83.1.2 电路设计103.2时钟模块设计113.2.1 DS1302时钟芯片113.2.2电路设计133.3 键盘接口电路设计143.4 显示模块设计143.4.1 LCD1602液晶显示模块143.4.2 电路设计163.5 输出控制模块设计173.6 本章小结18第4章 系统软件设计194.1 主程序设计194.2 显示程序设计194.3 按键程序设计214.4 输出程序设计224.5 时钟程序设计244.6 本章小结24第5章 系统仿真与硬件调试255.1 软件调试255.1.1 Keil C51255.1.2 Protues仿真265.1.3系统软件仿真275.2 硬件调试295.3 系统联调315.3.1联调中问题及分析315.3.2系统联调的实现335.4 本章小结33结 论34致 谢35参考文献36附录1 系统原理图37附录2 LCD1602字符显示表38附录3 系统实物图39第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 本文设计内容与结构本文介绍基于单片机的校园作息时间控制系统设计的基本原理。以Keil C51与Protues两软件联调,对其硬件设计进行软件仿真。最后以蜂鸣器与发光二极管模拟打铃与路灯的开关,进行硬件仿真,实现单片机校园作息时间控制系统的任务要求。本文的结构安排如下:第一章概述,本章主要介绍同类系统的研究现况。第二章方案设计与论证,本章阐述了根据需求确定可行的方案。第三章系统硬件设计,对芯片的选型及其功能做出具体的介绍并给出各个部分的硬件电路。第四章系统软件设计,阐述软件设计,包括主程序、各模块的子程序等。第五章系统调试,在介绍了Keil C51与Protues两软件对系统软件仿真的基础上,论述硬件仿真与调试的过程。第2章 方案设计与论证2.1系统的设计思想基于单片机的学生作息时间控制系统主要包括:控制模块、实时时钟模块、模拟输出模块、数码显示模块及键盘输入模块。其中以控制模块为主控模块,对整个系统进行控制;实时时钟模块设有时钟芯片,用于提供准确的实时时间;显示模块显示实时时间;键盘输入模块设有输入键盘,用以修改实时时钟,实现人机交互。系统的结构框图如图2-1所示。 图2-1校园作息时间控制系统组成2.2方案设计与论证2.2.1 单片机芯片作为控制系统的核心,单片机的选择也是本设计的重点之一。本系统是面向市场的设计,故在系统的核心控制芯片的选择上,首先要考虑其性价比。其次功耗也作为构建一个系统必须要考虑的因素。基于以上两点,本设计对主控芯片的选择提出了以下几种方案:方案一:采用51系列芯片作为硬件核心,以AT89C51作为代表,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,1288位内部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.1 STC89C52单片机 STC89C52RC系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机。片内含8k bytes的可反复擦写的只读程序存储器(PEROM)和256 bytes的随机存取数据存储器(RAM),有3个定时器/计数器和6个中断源。指令代码完全兼容传统8051单片机,片内具有Flash Memory程序存储器。其引脚图如图3-1所示。图3-1 STC89C52引脚图外部引脚说明:VCC:供电电压。GND:接地。P0口(P0.0P0.7):为双向8位三态I/O接口。在不接片外存储器与不扩展I/O接口时,可作为准双向输入/输出口;在接有片外存储器或扩展I/O接口时,P0口是地址总线低8位及数据总线分时复用口,可驱动8个TTL负载。一般作为扩展时的地址/数据总线口使用。P1口(P1.0P1.7):为8位准双向I/O接口。它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1),可启动4个TTL负载。对于52子系列单片机,P1.0与P1.1还有第二功能:P1.0可用做定时器/计数器2的计数脉冲输入端T2,P1.1可用做定时器/计数器2的外部控制端T2EX。P2口(P2.0P2.7):为8位准双向I/O接口,当它作为I/O接口是使用时,可直接连接外部I/O设备;在接有片外存储器或扩展I/O接口时且寻址范围超过256字节时,P2口用做高8位地址总线。一般作为扩展时地址总线的高8位使用。P3口(P3.03.7):为8位准双向I/O接口,还可以将每一位用于第二功能。P3口的第二功能定义见表3-1。表3-1 STC89C52的特殊功能口端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2 (外中断0)P3.3(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)RST:复位输入,当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),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.1 DS1302时钟芯片DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。有主电源和备份电源双引脚,而且备份电源可由大容量电容(1F)来替代。需要强调的是,DS1302需要使用32.768KHz的晶振。1、 DS1302引脚图DS1302引脚如图3-3所示。图3-3 DS1302芯片引脚图其引脚功能参照表3-2。表3-2 DS1302引脚功能说明引脚号名称功能1VCC1备份电源输入2X132.768KHz晶振输入3X232.768KHz晶振输出4GND地5RST控制移位寄存器/复位6I/O数据输入/输出7SCLK串行时钟8VCC2主电源输入2、DS1302 的控制字节说明DS1302 的控制字如表3-3所示。表3-3 DS1302控制字(即地址及命令字节)BIT7BIT6BIT5BIT4BIT 3BIT 2BIT 1BIT 01RAMA4A3A2A1A0RD控制字节的最高有效位(位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-4 DS1302数据读写时序4、DS1302 的寄存器DS1302 共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字如表3-4所示。表3-4 DS1302有关日历、时间的寄存器读寄存器写寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0范围81H80HCH10秒秒00-5983H82H10分分00-5985H84H010时时1-120-23AM/PM87H86H0010日日1-3189H88H0010月月1-128BH8AH00000周日1-78DH8CH10年年00-998FH8EHWP0000000此外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.1 LCD1602液晶显示模块液晶显示器以其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。液晶显示器通常可分为两大类:一类是点阵型,另一类是字符型。点阵型液晶通常面积较大,可以显示图形;而一般的字符型液晶只有两行,面积小,只能显示字符和一些很简单的图形,简单易控制且成本低。目前市面上的字符型液晶绝大多数是LCD1602。LCD1602液晶是一款很常用,也很易用的字符液晶,可以显示2行每行16个即32个字符,对比度可调,黄绿色背光。其具体引脚图如图3-7所示。图3-7 LCD1602管脚图1、管脚功能字符型 LCD 通常有 14 条引脚线,市面上也有很多 16 条引脚线的 LCD,多出来的2 条线是电源线VCC(15 脚)和地线GND(16 脚),其控制原理与 14 脚的LCD 完全一样,定义如表3-5所示。表3-5 LCD1602的引脚定义编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读/写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极2、1602LCD 控制命令表1602LCD寄存器选择控制表如表3-6所示。表3-6寄存器选择控制表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容3、字符集1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,就能看到字母“A”。 因为1602识别的是ASCII码,可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如“A”。 1602的16进制ASCII码表见附录2。3.4.2 电路设计以单片机的P0口作为数据输出口,传送DS1302内的时、分、秒和年月日单元。由于STC89C52单片机的内部结构决定,所以用P0口作为数据输出时,需加上拉电阻。用单片机的P2.5、P2.6、P2.7三个口作为LCD1602的控制口,用于控制LCD1602。并在VEE加上滑动变阻器VR1,用于调LCD 的背光对比度。具体设计如图3-8所示。图3-8 显示部分原理图3.5 输出控制模块设计输出控制信号由P3的三个口P3.5、P3.6、P3.7完成,P3.5、P3.6分别控制教学楼灯和路灯开关,用发光二极管模拟。P3.7口控制上课时间打铃,由蜂鸣器模拟。由于考虑保护原因,所以蜂鸣器用一个PNP驱动。发光二极管,蜂鸣器一端都连接电源。当控制口P3口给低电平时,发光二极管、三极管导通,分别就实现了控制。控制表如3-7所示。表3-7 输出部分控制表P3.5(给0亮)P3.6(给0亮)P3.7(给0打铃)教室灯路灯电铃输出部分原理如图3-9所示。图3-9 输出部分原理图3.6 本章小结本章介绍了系统硬件电路的设计。按照原理框图划分为主控模块、时钟模块、键盘接口电路、显示模块、输出控制模块等五部分。在主控电路中,主要是从应用的角度对STC89C52单片机的内部结构、外部引脚等进行了介绍,并进行了电路设计;在时钟电路中采用DS1302时钟芯片,不受系统电源影响;显示电路主要介绍了LCD1602液晶显示模块的结构、字符集等以及电路设计。然后对系统键盘接口电路和输出控制电路的设计,加以了简单的介绍。第4章 系统软件设计软件设计是本系统的一个重要环节,本章采用模块化的编程方式,根据系统软件功能要求,系统由主程序、键盘输入服务程序、显示子程序组成程序等几个部分组成。4.1 主程序设计本软件设计以时钟显示、键盘扫描为主程序。在设计中利循环函数,对各个模块进行反复扫描。利用时钟显示函数,对实时时间进行显示。利用时间比较函数,对实时时间与设定时间进行比较,若比较相等,则说明作息时间已到,发出指令控制电铃或照明电路的开、关操作。利用键盘扫描函数,对按键进行扫描。若有按键按下,则先判断其类型,然后进行相应的操作。主程序流程图如图4-1所示。图4-1 主程序流程图4.2 显示程序设计显示子程序模块流程图如图4-2所示。图4-2 送显程序流程图LCD1602的程序设计可以从其引脚功能出发:LCD1602的第4脚RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。所以,当要向LCD1602写数据时,可将RS端置1,RW端置0,当向LCD1602写指令时,可将RS端置0,RW端置0,同时给个使能信号,即将E端先置1,然后置0,使之产生一个高电平跳变成低电平的信号,允许读写。LCD显示读写数据的部分程序如下:write_1602com(uchar com)/*液晶写入指令函数*rs=0;/数据/指令选择置为指令rw=0; /读写选择置为写P0=com;/送入数据delay(5);en=1;/拉高使能端,为制造有效的下降沿做准备delay(5);en=0;/en由高变低,产生下降沿,液晶执行命令write_1602dat(uchar dat)/*液晶写入数据函数*rs=1;/数据/指令选择置为数据rw=0; /读写选择置为写P0=dat;/送入数据delay(5);en=1; /en置高电平,为制造下降沿做准备delay(5);en=0; /en由高变低,产生下降沿,液晶执行命令4.2.2 LCD1602的初始化LCD1602的初始化代码主要有以下几条:0x38:设置16*2显示,5*7点阵,8位数据接口0x01:清屏0x0F:开显示,显示光标,光标闪烁0x08:只开显示0x0e:开显示,显示光标,光标不闪烁0x0c:开显示,不显示光标0x06:地址加一,当写入数据的时候光标右移0x02:return home 地址计数器AC=0;(此时地址为0x80) 光标归原点,但是DDRAM中断内容不变0x18:光标和显示一起向左移动将以上代码以写指令的方式写入就可以都LCD1602进行初始化设定:write_1602com(0x0c)代表开显示,不显示光标;write_1602com(0x06)代表整屏不移动,光标自动右移;write_1602com(0x01)代表清显示。4.3 按键程序设计按键模块的设计主要体现在对时间设置按键,打铃时间按键设定,路灯与教学楼灯开关时间按键设定,上下调整按键的设定,按键模块子程序流程图如图4-3所示。图4-3键盘扫描子程序流程图在键盘扫描子程序中,定义一些变量来检测单片机的P1口,因为P1个一端接地,所以当这些变量置0的时候,则代表某个键的按下。在判断其在按下调整键,用于调整各个时间时,可设一个变量,记录按下的次数,并分别将数据调整指向要调整的地方,以便于上下按键的调整。同时,在设计按键函数时,要注意消除抖动干扰,所以需加上消抖动程序。4.4 输出程序设计输出模块的设计主要包括定时打铃程序、教学楼灯路灯的定时开关程序。输出模块子程序流程图如图4-4所示。图4-4 输出部分流程图输出模块其中之一是实现学生上课时间的打铃,由于打铃时间多繁等原因,将时间表设为三段,即上午、下午、晚上。每个时间段的首个打铃时间可自己设置,设置好之后每个时间段的打铃时间按表4-2所示打铃。表4-2 作息时间控制表时间事件动作设定首时间:T1第一节课上课铃蜂鸣器响,上课40分钟T1=T1+40分钟第一节课下课铃蜂鸣器响,下课10分钟T1=T1+10分钟第二节课上课铃蜂鸣器响,上课40分钟T1=T1+40分钟第二节课下课铃蜂鸣器响,休息30分钟T1=T1+30分钟第三节课上课铃蜂鸣器响,上课40分钟T1=T1+40分钟第三节课下课铃蜂鸣器响,下课10分钟T1=T1+10分钟第四节课上课铃蜂鸣器响,上课40分钟T1=T1+40分钟第四节课下课铃蜂鸣器响,转到下个时间输出模块的另一部分是路灯与教学楼灯的定时点亮与开关。与打铃相比路灯与教学楼灯的定时开关要简单方便的多。它只需要先判断是手动模式还是自动模式,在手动模式下,灯的开关能用之前设定的开关来控制点亮与熄灭,在自动模式下,只需读取DS1302中的时间,与设定灯开关相比较,若时间到了就输出相应的指令,控制灯的开关。4.5 时钟程序设计DS1302时钟芯片的软件设计是一个很重要的部分。该程序主要实现对DS1302写保护、充电,对年、月、日、时、分、秒等寄存器的读写操作。在读写操作子程序中都执行了关中断指令,因为在串行通信时对时序要求比较高,而且在此是用I/O口软件模拟串行时钟脉冲,所以在通信过程中最好保证传输的连续性,不要允许中断。其流程图如图4-5所示。图4-5实时时钟日历子程序流程图DS1302每次上电时自动处于暂停状态,必须把秒寄存器的位7置位0,时钟才开始计时。如果DS1302一直没有掉电,则不存在此问题。在进行写操作时,需要先解除写保护寄存器的“禁止”状态。当用多字节模式进行操作时,必须写够8字节。4.6 本章小结本章主要介绍了本设计软件程序的具体设计。结合硬件,从主函数的具体设计到各个模块的设计。从原因到过程,再到具体操作。由于本章的内容是以C程序的编写为主,关系软件的具体调试,而软件硬件调试将会在下章具体阐述。第5章 系统仿真与硬件调试系统仿真与硬件调试是系统设计的重要组成,本设计的调试工作分为软件调试和硬件调试两部分。5.1 软件调试软件调试是在单片机C51编辑软件Keil环境中进行的。该软件提供了一个集成开发环境uVision,它包括C编辑器、宏编辑器、连接器、库管理和一个功能强大的仿真调试器。通过编译、运行,可以检查程序错误。5.1.1 Keil C51 Keil C51是德国Keil Software公司出品的51系列兼容单片机C语言集成开发环境(IDE) 。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil C51可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件 (.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。图5-1为Vision2较为全面的操作界面。应用Keil C51软件仿真,需对所使用元器件的工作方式和管脚连接方式十分了解。在软件调试过程中要仔细耐心,即便是多写或少些一两个字符,都无法编译成功。而有时往往在Keil中编译、运行无错,但烧录到单片机中运行起来就会出错,很可能是编程时管脚或时序编辑得不对。图5-1 Vision2操作界面5.1.2 Protues仿真软件调试的另一种方式,应用仿真软件搭建电路的软件平台,再导入程序进行仿真调试。如果电路出错,可以在计算机上方便的修改电路,程序出错可以重新编辑程序,这种方法节时、省力,经济、方便。笔者应用的仿真软件为Proteus。Proteus ISIS 是英国Labcenter公司开发的电路分析和实物仿真软件。该软件的特点是:1、实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。2、提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision3等软件。3、具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。该系统能够使从事电路系统开发的专业技术人员加快电路系统的开发速度,缩短开发周期,节约开发成本,提高电子产品开发效率。Proteus ISIS的工作界面如图5-2所示。图5-2 Proteus ISIS的工作界面如图5-2所示,区域为菜单及工具栏,区域为预览区,区域为元器件浏览区,区域为编辑窗口,区域为对象拾取区,区域为元器件调整工具栏,区域为运行工具条。5.1.3系统软件仿真通过Porotues与Keil C51联调实现对本系统的软件仿真,具体步骤如下:1、将Porotues安装目录下的MODELS目录下的 VDM51.dll文件复制到KEIL C51安装目录下的BIN文件夹下;2、修改Keil 文件夹下的TOOLS.INI 文件,在C51 栏目下加入TDRV3=BIN VDM51.DLL (Proteus VSM Monitor-51 Driver ) ;3、打开Protues,画出相应电路,并在Protues的Debug菜单中选择use romote debug monior;4、进入Keil的project菜单ootion for target 工程名。在DEBUG选项中右栏上部的下拉菜单选中Protues VSM Monitir-51 Driver;5、在Keil 中编写程序,生成HEX文件,将其导入Protues 的单片机中,点击开始,开始仿真。上电后LCD显示如图5-3所示。图5-3 软件仿真上电后LCD显示单击时间调节键后LCD显示如图5-4所示。图5-4 击时间调节键后LCD显示开灯时间到LED点亮如图5-5示。图5-5 开灯时间到LED点亮5.2 硬件调试在单片机开发过程中,从硬件设计到软件设计几乎是开发者针对本系统特点亲自完成的。这样虽然可以降低系统成本,提高系统的适应性,但是每个系统的调试占去了总开发时间的2/3,可见调试的工作量比较大。单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。硬件调试主要是在搭建好硬件平台的基础上,利用开发系统、基本的测试仪器,通过执行开发系统有关的命令或者运行适当的测试程序来检查用户硬件中存在的故障,对系统进行功能调试。当硬件设计从布线到焊接安装完成之后,就开始进入硬件调试阶段,调试大体分为以下几步。1、排除逻辑故障 这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板或者手工焊制的电路板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。2、排除元器件失效造成这类错误的原因有两个:一个是元器件本身已损坏;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。3、排除电源故障 在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查Vcc与GND之间电位,若在5V4.8V之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。针对本系统硬件调试按照以下步骤完成。1、单片机基础电路调试单片机基础电路包括电源、单片机、外部时钟震荡电路、复位电路和外部接口电路。调试过程需要注意以下几点: 检查电源是否完好。 如果使用P0口做I/O口,要接上拉电阻。 使用万用表排查电路中是否存在断路或者短路情况。笔者在制作外部接口电路时使用的是排针,焊接时容易出现管脚之间短路,所以在上电以前必须先排查电路。 编辑一个使其中一个发光二极管循环点亮的程序并烧录到单片机内,上电运行,检查单片机是否正常工作。2、显示电路调试本设计的显示电路使用了LCD1602液晶显示。数据口接P0口,控制口接P2的三个口。熟悉LCD管脚位置,然后才能开始进行连接。在连接过程中,需要注意以下几点: LCD液晶各管脚与单片机管脚的对应关系要十分清楚。 因为是用P0口作为I/O,所以需要加上上拉电阻才能工作。 LCD的管脚比较密集,所以在焊接的时候,一定要注意电路不能短路。 编写一段显示程序,烧录进单片机,检查好电源正负端连接是否正确。检查无误后上电,检查显示电路是否正确。硬件显示模块调试实物图如图5-6所示。图5-6 硬件显示模块调试实物图3、DS1302电路调试该电
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!