可编程作息时间控制器设计——毕业设计_第1页
可编程作息时间控制器设计——毕业设计_第2页
可编程作息时间控制器设计——毕业设计_第3页
可编程作息时间控制器设计——毕业设计_第4页
可编程作息时间控制器设计——毕业设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息工程学院课程设计报告书题目可编程作息时间控制器设计专业电子信息科学与技术班级学号学生姓名指导教师2013年5月13日信息工程学院课程设计任务书学号学生姓名专业(班级)设计题目可编程作息时间控制器设计设计技术参数05V低电压驱动蜂鸣器5V外部稳压电源供电1602LCD显示日期和时间LED提示闹钟到来设计要求1按照给定的时间模拟控制,实现广播、上下课打铃、灯光控制(屏幕显示)。2具备日期和时钟显示。工作量文字报告字数大约在2000字,页数在20页左右工作计划1整体设计构思(2查阅有关资料(3)编写调试程序(4)画出电路图(5)装载程序,查看结果参考资料1单片机原理及应用(第二版)张毅刚彭喜元彭宇北京高等教育出版社2刘和平单片机编程与入门重庆大学出版社,20026899,1111223陈明荧89C51单片机课程设计实训教材清华大学出版社,20033867,102118指导教师签字教研室主任签字年月日信息工程学院课程设计成绩评定表学生姓名学号专业(班级)电子课程设计题目可编程作息时间控制器设计指导教师评语成绩指导教师年月日摘要本设计是可编程作息时间控制器设计,由单片机AT89C51芯片和LCD、LED显示器,辅以必要的电路,构成一个单片机四路可调闹钟。电子钟可采用数字电路实现,也可以采用单片机来完成。LCD显示“时”,“分”,LED亮灯来表示闹钟的到来,定时时间到能发出警报声。现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。在这次设计中主要是用AT89S51来进行定时,也结合着其他辅助电路实施控制,在定时的时候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。关键字四路可调闹钟AT89C51LCD目录1任务提出与方案论证111单片机型号的选择112按键的选择113显示器的选择114计时部分的选择12总体设计221系统总框图222原理及工作过程说明223系统电路图33详细设计431主程序部分的设计432独立式键盘的接口电路4331602LCD液晶显示器534闹钟子函数104总结11参考文献121任务提出与方案论证11单片机型号的选择通过对多种单片机性能的分析,最终认为AT89C51是最理想的电子时钟开发芯片。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,而且它与MCS51兼容,且具有4K字节可编程序存储器和1000次擦写循环,数据保留时间为10年,是最好的选择。12按键的选择本次设计按照题目要求使用独立式按键。由于按键较少,在修改时间或设置闹铃时间时就不能直接输入,只能通过加或减完成,稍为麻烦一些,但其程序简单。13显示器的选择选用1602LCD液晶显示器。14计时部分的选择如果使用时钟芯片,系统就不怕掉电且时间精确。但这种芯片比较贵,况且,设计本系统主要是为了学习单片机程序的编写和调试以及设计硬件电路的一些方法,因此采用软件的方法来计时而没有采用价格较高的时钟芯片。2总体设计21系统总框图22原理及工作过程说明制作一个可编程作息时间控制器闹钟,当4路闹钟中的任一路到时,均会点亮灯、打铃。如有需求,可对程序进行调整,增加闹钟的路数及到时后的处理方式。定时闹钟的基本功能如下。1显示时钟时间,格式为“时时分分”,并可重新设置。2显示闹铃时间,格式为“时时分分”,且显示闪烁以便与时钟时间相区分。闹铃时间可重新设置。3程序执行后工作指示灯LED闪烁,表示时钟工作为时钟显示模式LCD显示的初始时间为“2358”。按下K2,闪烁显示的“0000”为闹铃的时间,单击K3又返回时钟显示模式。时钟从“2358”开始计时,定时时间“0000”到时,继电器开关接通,控制电器的开启,且可发出声响(可控)。时钟与闹铃时问的设置可通过4个功能按键KLK4实现,具体说明如下。1时钟时间的设置首先单击KL进入时钟设置模式。此时每单击一下KL,则小时增L,单击一下K2,则分钟增1,再单击K3则设置完成,返回时钟显示模式。此时小时和分钟均已发生变化。2闹铃的时间设置首先单击,K3进入闹铃的设置模式。此时每单击一下KL,则小时增1,单击一下K2,则分钟增L,最后单击K3则设置完成,返回闹铃显示模式。此时闹铃的小时和分钟均已发生变化。3K4的功能闹钟更换。4K2单独的功能显示闹铃时间。23系统电路图VDGNDVDGNDRWVDRSERSEXTAL218XTAL119ALE301PSN29RST9P0/AD0391/18P02/AD2373/36P04/AD4355/54P06/AD637/72P1012P12334P14556P16778P30/RXD101/TP32/IN012/IT13P34/014P37/RD176/W65/T15P27/A1528P20/A8211/9P2/A0233/14P24/A2255/1366/47U1AT89C51R11KX1CRYSTALC130PFC230PFC330PFD71463D5124D31029D1807E6RW5S4VS1D2VE3LCD1LM016L1234567816514312109RNRX8VCVDVCBUZ1BUZERD2LEDREDR215R330SW1SWSPT3详细设计31主程序部分的设计程序部分主要采用了程序结构的模块化设计,避免了一些函数的不必要的重复书写,使程序变得单间易懂。程序在执行时,主程序要须通过调用子函数就可完成相应的功能。主程序流程图如下图31。图31主程序流程图32独立式键盘的接口电路XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD63P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD1P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A92P22/A1023P23/A124P24/A1225P25/A1326P26/A1427U1AT89C51PROGRAMKEILWANGHEX在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。这时,可将每个按键接在一根I/O接口线上,这种方式的连接称为独立式键盘。每个独立式按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O接口线,I/O接口线浪费较大。故只在按键数量不多时采用这种按键电路。在此电路中,按键输入都采用低电平有效。331602LCD液晶显示器VDDGNDGNDRWRSED714D613D512D41D310D29D18D07E6RW5RS4VS1VD2VE3LCD1LM016L1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图331所示图3311602LCD尺寸图1602LCD主要技术参数显示容量162个字符芯片工作电压4555V工作电流20MA50V模块最佳工作电压50V字符尺寸295435WHMM引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表31所示表31引脚接口说明表编号符号引脚说明编号符号引脚说明日期显示定时计数器闹铃1时间到闹铃2时间到闹铃3时间到闹铃4时间到时间显示1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚VSS为地电源。第2脚VDD接5V正电源。第3脚VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚D0D7为8位双向数据线。第15脚背光源正极。第16脚背光源负极。108231602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表32所示表32控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回0000000013置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L6置功能00001DLNF7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明1为高电平、0为低电平)指令1清显示,指令码01H,光标复位到地址00H位置。指令2光标复位,光标返回到地址00H。指令3光标和显示模式设置I/D光标移动方向,高电平右移,低电平左移S屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4显示开关控制。D控制整体显示的开与关,高电平表示开显示,低电平表示关显示C控制光标的开与关,高电平表示有光标,低电平表示无光标B控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5光标或显示移位S/C高电平时移动显示的文字,低电平时移动光标。指令6功能设置命令DL高电平时为4位总线,低电平时为8位总线N低电平时为单行显示,高电平时双行显示F低电平时显示5X7的点阵字符,高电平时显示5X10的点阵字符。指令7字符发生器RAM地址设置。指令8DDRAM地址设置。指令9读忙信号和光标地址BF为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10写数据。指令11读数据。与HD44780相兼容的芯片时序表如下表33基本操作时序表读状态输入RSL,R/WH,EH输出D0D7状态字写指令输入RSL,R/WL,D0D7指令码,E高脉冲输出无读数据输入RSH,R/WH,EH输出D0D7数据写数据输入RSH,R/WL,D0D7数据,E高脉冲输出无读写操作时序如图332和333所示图333读操作时序图333写操作时序1602LCD的RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图334是1602的内部显示地址。图3341602LCD内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)10000000B80H11000000BC0H。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图335所示,这些字符有阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”图335字符代码与图形对应图1602LCD的一般初始化(复位)过程延时15MS写指令38H(不检测忙信号)延时5MS写指令38H(不检测忙信号)延时5MS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H显示模式设置写指令08H显示关闭写指令01H显示清屏写指令06H显示光标移动设置写指令0CH显示开及光标设置34闹钟子函数闹钟时间的判别主要是通过设定时间与实时时间对逐位对比确定是否进行闹铃。其工作流程图如下图34。中断闹钟1到闹钟2到闹钟3到闹钟4到闹钟打开显示时间和日期NNYYYY图344总结通过自己的不懈努力,我终于完成了设计的任务要求。功能上基本达标时钟的显示,日期显示,调时功能、校时功能、闹铃功能、闹钟设功能。其精确可以满足日常生活显示时间的需要。在本次设计的过程中,我发现很多的问题,虽然以前没有做过这样的设计但通过这次设计我学会了很多东西,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,比如写一个程序看其功能很少认为编写程序简单,但到编程的时候才发现一些细微的知识或低级错误经常犯做不到最后常常失败,所以有些东西只有学精弄懂并且要细心才行,只学习理论有些东西是很难理解的,更谈不上掌握。从这次的课程设计中,我们真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的练习的过程中才能提高,我想这就是我在这次课程设计中的最大收获。NN参考文献1单片机原理及应用(第二版)张毅刚彭喜元彭宇北京高等教育出版社2刘和平单片机编程与入门重庆大学出版社,20026899,1111223陈明荧89C51单片机课程设计实训教材清华大学出版社,20033867,102118附录INCLUDEDEFINEUINTUNSIGNEDINTDEFINEUCHARUNSIGNEDCHARSBITKEY1P10SBITKEY2P11SBITKEY3P12SBITKEY4P13SBITLCDENP34SBITLCDRSP35SBITLCDRWP36SBITLEDP22SBITSOUNDP27INTA,B,I,MIN,HOUR,MINGE,MINSHI,HOURGE,HOURSHI,SEC,SECGE,SECSHI,CNT,CNT1,NIAN2013,YUE5,RI5,AMIN11,AHOUR1,AMINGE1,AMINSHI1,AHOURGE1,AHOURSHI1,AMIN21,AHOUR2,AMINGE2,AMINSHI2,AHOURGE2,AHOURSHI2,AMIN31,AHOUR3,AMINGE3,AMINSHI3,AHOURGE3,AHOURSHI3,AMIN41,AHOUR4,AMINGE4,AMINSHI4,AHOURGE4,AHOURSHI4UCHARCODETABLE10,1,2,3,4,5,6,7,8,9UCHARCODETABLE2“TIME0000“UCHARCODEALARM_1“ALAR10000“UCHARCODEALARM_2“ALAR20000“UCHARCODEALARM_3“ALAR30000“UCHARCODEALARM_4“ALAR40000“UCHARCODERIQI“20130506“UCHARNUM1,NUM2,ALARM1,ALARM2,ALARM3,ALARM4BITFLAG0VOIDDELAYUNSIGNEDINTZ/延时程序UINTI,JFORIZI0IFORJ110J0JVOIDWRITE_COMUCHARCOM/LCD命令控制,写指令函数DELAY5LCDRS0P0COMDELAY5LCDEN1DELAY5LCDEN0VOIDWRITE_DATAUCHARDATE/LCD数据控制,写数据函数DELAY5LCDRS1P0DATEDELAY5LCDEN1DELAY5LCDEN0VOIDWRITE_NIANUCHARADD,UINTDATE/年显示函数UCHARQIAN,BAI,SHI,GEQIANDATE/1000BAIDATE1000QIAN/100SHIDATEQIAN1000BAI100/10GEDATE10WRITE_COM0X800X40ADDWRITE_DATATABLE1QIANWRITE_DATATABLE1BAIWRITE_DATATABLE1SHIWRITE_DATATABLE1GEVOIDWRITE_YUEUCHARADD,UCHARDATE/月显示函数UCHARSHI,GESHIDATE/10GEDATE10WRITE_COM0X800X40ADDWRITE_DATA0X30SHIWRITE_DATA0X30GEVOIDWRITE_RIUCHARADD,UCHARDATE/日显示函数UCHARSHI,GESHIDATE/10GEDATE10WRITE_COM0X800X40ADDWRITE_DATA0X30SHIWRITE_DATA0X30GEVOIDQIWRITE_NIAN0,NIANWRITE_YUE5,YUEWRITE_RI8,RIWRITE_COM0X800X407WRITE_DATAWRITE_COM0X800X404WRITE_DATAVOIDTIME/设置时间函数WHILE1IFKEY10DELAY10IFKEY10IFHOUR23/“时“设置HOUR0ELSEHOURHOURGEHOUR10HOURSHIHOUR/10WRITE_COM0X0FDELAY2WRITE_COM0X806WRITE_DATATABLE1HOURGE/“时“个位写入LCD第1行第6位DELAY5WRITE_COM0X805DELAY2WRITE_DATATABLE1HOURSHI/“时“十位写入LCD第1行第5位WHILEKEY1IFKEY20DELAY10IFKEY20IFMIN59/“分“设置MIN0ELSEMINMINGEMIN10MINSHIMIN/10WRITE_COM0X0FWRITE_COM0X809WRITE_DATATABLE1MINGE/“分“个位写入LCD第二行第9位DELAY1WRITE_COM0X808WRITE_DATATABLE1MINSHI/“分“十位写入LCD第二行第8位DELAY1WHILEKEY2IFKEY30DELAY10IFKEY30WRITE_COM0X0C/整体显示,关光标,不闪烁TR11/定时计数器1启动WHILEKEY3BREAK/KEY3松开时,显示时间“时“分“位均已设置完毕VOIDDISPLAY1/设置闹钟1时间函数WHILE1IFKEY10DELAY10IFKEY10IFAHOUR123/闹钟“时“设置AHOUR10ELSEAHOUR1AHOURGE1AHOUR110AHOURSHI1AHOUR1/10WRITE_COM0X0FWRITE_COM0X800X408WRITE_DATAWRITE_COM0X800X407WRITE_DATATABLE1AHOURGE1DELAY1WRITE_COM0X800X406WRITE_DATATABLE1AHOURSHI1DELAY1WHILEKEY1IFKEY20/闹钟“分“设置DELAY10IFKEY20IFAMIN159AMIN10ELSEAMIN1AMINGE1AMIN110AMINSHI1AMIN1/10WRITE_COM0X0FWRITE_COM0X800X4010WRITE_DATATABLE1AMINGE1DELAY1WRITE_COM0X800X409WRITE_DATATABLE1AMINSHI1DELAY1WHILEKEY2IFKEY30ALARM1ALARM1DELAY10IFKEY30WRITE_COM0X0CWRITE_COM0X800X40FORI0I4CNT10ELSEIFKEY30CNTDELAY10IFCNT1WHILEKEY3/表示闹钟时间设置退出AHOURGE1AHOUR110AHOURSHI1AHOUR1/10WRITE_COM0X800X407WRITE_DATATABLE1AHOURGE1DELAY5WRITE_COM0X800X406DELAY2WRITE_DATATABLE1AHOURSHI1AMINGE1AMIN110AMINSHI1AMIN1/10WRITE_COM0X800X4010WRITE_DATATABLE1AMINGE1DELAY5WRITE_COM0X800X409DELAY2WRITE_DATATABLE1AMINSHI1WRITE_COM0X800X40FORI0I10CNT0ELSEIFKEY40DELAY5IFKEY40WHILEKEY4AIFA20FORB0B6BSOU

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论