校园作息时间控制系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1校园作息时间控制系统摘要:设计了一个单片机控制打铃系统。以单片机AT89S52为控制核心,控制时钟芯片DS12887的读写,实现打铃功能以及液晶输出时间,年月日信息,扩展了红外遥控修改时间、作息时间表等功能.关键字:单片机,时钟芯片,红外遥控,液晶,打铃系统2目录1.系统设计方案与论证……………………………………………………………………32.1设计要求…………………………………………………………………………………32.2系统设计总体方案…………………………………………………………………..….32系统的硬件设计与实现………………..…………………………………………………42.1.1时钟芯片DS12887性能简介……………………………………………………….42.1.2时钟芯片读写时序……………………………………………………………….…62.1.3时间寄存器地址……………………………………………………………………62.1.4特殊控制寄存器功能………………………………………………………………72.2.1液晶SYB12864介绍………………………………………………………………82.2.2液晶与单片机的接口………………………………………………………………82.2.3液晶写操作时序……………………………………………………………………92.3.1红外发送与接收……………………………………………………………………102.3.2遥控码数据分析……………………………………………………………………102.3.3接收电路……………………………………………………………………………112.4.1电源部分电路图……………………………………………………………………113.程序设计…………………………………………………………………………………123.主程序流程图……………………………………………………………………………123.2按键识别……………………………..……………………………………………..…133.3课表计算………………………………………………………………………………133.4遥控解码………………………………………………………………………………144.系统测试与总结…………………………………………………………………………16附录1主要元器件清单………………………………………………………………….…17附录2程序清单………………………………………………………………………….…18附录3原理图与印制板图………………………………………………………………….35附录4系统使用说明……………………………………………………………………….36附录5系统实物图片……………………………………………………………………….3731.系统设计方案与比较1.1设计要求一、时钟功能:能显示年、月、日、星期、时、分、秒二、调整功能:能校正年份、日期、时间等三、打铃功能:按指定时间表播放音乐、现场修改作息时间表四、设置的作息时间表数据在单片机掉电后不会丢失1.2系统设计总体方案根据设计要求实现的功能,可以采用不同的设计系统方案如下:方案一:采用单片机自带定时器进行计时,外加存储器保存课表数据,普通键盘输入。由于单片机进行软件计时,硬件成本比较低,但是误差比较大,需要校准,日后的维护工作量比较大。可用廉价的AT24C04等存储器保存数据,读写比较容易。对于普通的独键盘,设置量比较大,改用矩阵键盘又会占用较大的电路板空间。方案二:采用实时时钟芯片计时,红外数据输入。时钟芯片常见的有美信公司的DS1302、DS12887等.前者与后者的最大区别在于有没有自带的备份电池。前者需要增加额外的电池以及相关的充电电路,后者DS12887本身已经集成了锂电池,而且掉电后相当长一段时间还可以正常走时,最重要的是它还剩下114字节的非易失RAM,由于有备份电池供电,相当于一个存储器,可以充分利用,而不需要增加另外的存储器,减少了外围电路。电视红外遥控比较常见,只要解码出来,可以充分利用面板上的多个数字键,接收电路也相当简单,另外由于是非接触式按键,避免了普通机械按键的磨损弊端。故本设计选用第二种方案.总体方框图如下:单片机89S52时钟芯片DS12887红外接收头遥控液晶显示蜂鸣器42.系统的硬件设计与实现2.1时钟芯片DS12887性能简介2.1.1时钟芯片特点功能简介及引脚分布如图:562.1.2读写时序2.1.3时间寄存器地址7值得注意的是上表中最后的寄存器地址0EH--7FH,这里就是剩余的144字节RAM,在本设计中实际使用的是10H—13H四个字节,用于保存课表上午和下午的起始数据。2.1.4特殊控制寄存器功能82.2液晶显示块部分电路2.2.1液晶SYB12864功能与技术参数简介SYB12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成.可完成图形显示,内置汉字库,可以显示8×4个(16×16点阵)汉字.主要技术参数和性能:1.电源:VDD:+5V;LCD外接驱动电压为3.0∽8.0V2.显示内容:128(列)×64(行)点3.全屏幕点阵4.七种指令5.与CPU接口采用8位数据总线并行输入输出和8条控制线.2.2.2液晶与单片机接口外部接口信号如下表所示:管脚号管脚名称LEVER管脚功能描述1VSS0V电源地2VDD5.0V电源电压3V0-液晶显示器驱动电压4RSH/LRS=“H”,表示DB7~DB0为显示数据RS=“L”,表示DB7~DB0为显示指令数据5R/WH/LR/W=“H”,E=“H”,数据被读到DB7~DB0R/W=“L”,E=“H→L”,DB7~DB0的数据被写到IR或DR6EH/L使能信号:R/W=“L”,E信号下降沿锁存DB7~DB0R/W=“H”,E=“H”DRAM数据读到DB7~DB07DB0H/L数据线8DB1H/L数据线9DB2H/L数据线10DB3H/L数据线11DB4H/L数据线12DB5H/L数据线13DB6H/L数据线14DB7H/L数据线15PSBH/LH:8或4位并口,L串口(本设计中硬件置高电平)16NC17RETH/L复位信号,低电平复位(如不需要经常复位可以悬空)18VOUT10VLCD驱动电压19LED+-LED背光板电源20LED--LED背光板电源9数据线D0~D7与单片机P0口相连,完成数据传送。单片机P1.0与液晶RS相连,控制显示数据和显示指令数据.单片机P1.1与液晶RW相连,控制数据读写.单片机P1.2与液晶E相连,液晶REST与电源相连,控制液晶复位信号。18脚是液晶背光驱动端,通过限流可变电阻调节对比度,由于经过试验测量可变电阻大概是16K,为了方便电路布局,用15K的固定电阻。1234567891011121314151617181920J1LCD12864P00P01P02P03P04P05P06P07P10P11P12VCCVCCVCCR115K液晶与单片机接口图2.2.3液晶写操作时序写操作时序R/W为低电平,CS为低电平写入指令,R/W为低电平,CS为高电平写入数据102.3红外遥控2.3.1发送与接收通用红外遥控系统由发射和接收两大部分组成。应用编/解码专用集成电路芯片来进行控制操作,如图所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。2.3.2遥控码数据分析遥控发射器专用芯片很多,这里我们以运用比较广泛,解码比较容易的一类来加以说明,以东芝公司的TC9012组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图所示。遥控码的“0”和“1”上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制,然后再通过红外发射二极管产生红外线向空间发射。一般电视遥控器的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位的操作码和8位的操作反码,用于核对数据是否接收准确。根据红外编码的格式,发送数据前需要先发送4.5ms的起始码和4.5ms的结果码作为引导码。遥控串行数据编码波形如下图所示:112.3.3接收电路接收电路较为简单,采用一体化接收头HS0038,滤波电容在这里可以减少电源带来的干扰。如图:123JP1IRReceiver+C410ufVCCGNDP35C81032.4电源2.3.3接收电路2.4.1电源部分电路图为达到提供稳定5V供电电压,变压器采用了玩具车电池充电适配器,由于此电源只包含了全波整流电路,在此加上滤波电路和稳压电路,如图。1122J4CON2VCCGND+C6470UF+C51000UFVin1GND2Vout3U37805C9104C10104D1LEDR41K123.系统的软件设计3.1主程序流程图主程序流程图:时钟与液晶复位退出菜单显示课次,播放音乐显示时间读取时间读取课表数据并计算欢迎界面TrueFalse选择调整时间选择查看课表选择修改课表调整时间上午课表修改课表下午课表保存设置True保存设置键扫比较课表上电133.2按键识别为了输入简单,用数字键直接输入要设置的数字,而且没有另外设置专门的光标移位键,即输入一个数字后自动换到一个位置,如果有现成的不需要修改的数字,可以直接按任意非数字键跳过。由于进行年月日等数据的保存时是以两个键为一个单位(比如23),由此将产生一个问题,怎样保存无效的键值,即如果第一个键是无效键或者第二个键是无效键,这个数据怎么保存。具体解决办法如下:从遥控按键解码结果可知,键值和数字键的数字对应关系为:如果键值小于9(0x09),按键数字就是键值加上1,而键值9对应按键“0”。所以两个按键的要分九种情况,第一个按键有三种情况,无效键,1~9键,0键,第二个键也有三种情况,考虑到第二个键有可能是无效键,所以按第一个键(十位)时候要保存个位数字,具体赋值如下:(以年为例,year0,year1,year2分别是原值、第一次按键后赋值、第二次按键后赋值)第一个按键后赋值如下表:key9(无效键)year1=year0key9(1~9键)year1=10*(key+1)+year0%10key=9(0键)year1=year0%10第二个按键后赋值如下表:第一个键第二个键赋值无效键0键year2=year1/10*101~9键0键year2=year1/10*100键0键year2=year1/10*10为方便编程没有用year2=0无效键1~9键year2=year1/10*10+key+11~9键1~9键year2=year1/10*10+key+10键1~9键year2=key+1无效键无效键year2=year11~9键无效键year2=year10键无效键year2=year1事实上第二个键是无效键的情况在刚开始已经考虑,所以键值不变,可以不做处理。3.3课表计算以上午为例,当设定好第一节课上课时间,以后的时间在此基础上往上加。第一节课下课第二节课上课第二节课下课第三节课上课第三节课下课第四节课上课第四节课下课小时增量0012223分钟增量4555400455540实际编写程序计算时,为了对齐,插入了无效的0值,当然如果schedule1[]表同样采用二维数组可避免此弊端,这也是当时编程时候总体设计考虑不周造成的,以至于要修改就要改动其很多的数据。143.4遥控解码具体解码过程如下:通过定时器读出相应的高低电平,先读出低电平,再读出高电平,如果中间有非正常的值则重新接收。每八个位为一个字节数据,总共四个有效数据,最后在数码管上显示。#includeAT89X51.H#define

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功