基于单片机的作息时间控制器系统设计_第1页
基于单片机的作息时间控制器系统设计_第2页
基于单片机的作息时间控制器系统设计_第3页
基于单片机的作息时间控制器系统设计_第4页
基于单片机的作息时间控制器系统设计_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的作息时间控制器系统设计LGGROUPsystemofficeroom【LGA16H-LGYY-LGUA8Q8-LGA162】《基于单片机的作息时间控学院(系):电子与信息工程学院年级专业:2011级电信(仪器仪表)学生姓名:文静指导教师:谢辉教师职称:教授制作日期2014年10月29日关键词........................................................第一章引言课题背景....................................................选题背景第二章设计方案论证设计要求.....................................................设计方案选择.................................................方案一:数字电路设计的作息时间控制器系统方案二:基于单片机的作息时间控制器系统设计方案确定基本方案.....................................................设计课题简要概述系统软硬件划分总体设计框图.................................................第三章硬件电路设计基本原理概述.................................................主要原件参数及功能简介.......................................主控器STC89C52DS1302单元电路的设计...............................................显示电路设计键盘接口电路设计响铃电路设计总体运行进程.................................................第四章软件电路设计及流程图基本原理概述.................................................中断服务程序设计显示程序设计和按键判断与按键处理程序设计流程图.......................................................系统主程序流程图系统定时中断流程图第五章系统程序设计程序设计概要.................................................源程序清单...................................................第六章作息时间器硬件原理图第七章实训总结参考文献附录附录1原理电路图..............................................附录2元件清单.................................................附录3实物图..................................................基于单片机的作息时间控制器系统设计重庆三峡学院电子与信息工程学院文静器系统,是以一片8位单片机为核心的实时时钟及控单片机的外接石英晶体振荡器能提供稳定、准确的基准频率向内部定时器提供实时基准频率信号,设定定时器工作在中断频率信号进行分频计数,便可得秒信号,再对秒信号进行计数便可得到分、时等实时时钟信息。如果石英晶体振荡器的频率信号为6MHZ,作方式1下,定时器为3CBOH,则定时器每100ms产生1次中断0次中断,则向秒计数器加1,秒计数器计数到60则向分计数器进位(并建立分进位标志),分计数器计数到60,则向此周而复始的连续计数,便可获得时、分、秒的信号,建立下来便可以进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间(小时与分、存放在RAM中)与信息时间表上的作息时间(小时与分,存放在ROM)是否相同,如有相同者,则进行报时处理计时电路、显示电路、定时打铃控制电路第一章引言表面装了一些己编好的程序而己.而这里要介绍一个系统,它能够让一个学校或企业集团实现打铃自是自动化智能控元件或数字逻辑电路构成的控制系统,正以前所未有的速系统所取代。单片机具有体积小、功能强、成本低、应用,智能控制与自动控制的核心就是单片机。目前,一个学潮正在工厂、学校及企事业单位大规模地兴起。而本文是第二章设计方案论证进行设置,定时打铃。按照自顶向下设统的功能。可分为:时间设置电路,计时电路,显示电02.2.1方案一:数字电路设计的作息时间控制器系统行脉冲信号输出,利用74160N来设置十进制和六利用数码显示器来显示时间,利用或门、与门、非门、与非2.2.2方案二:基于单片机的作息时间控制器系统设计节分别存放时钟的时、分、秒信息。利用定时定时中断,没产生一次中断,存储器内相应的秒值加1;字节值加1;若分值达到60,则清零字节清零。建立完一个实时处理和打铃输出,当主程序检测到有分进位标志时,便息时间表上的作息时间是否相同,相同者,则进行报时3方案确定定打铃时间不能完全自动打铃,且在修改打铃时方案二中的设计能完全实现自动化,诠释了我们这次改打铃时间上有了很大的方便,只需修改一部分程序2.3.1设计课题简要概述用于工厂、学校等地的时间控制,本设计是按照了电了钟显示时、分、秒。还根据学校的作息时间、调分、秒和强制打铃及强制关铃,以保证始终与标准图,根据框图设计电气原理图,简要概述.3.2系统软硬件划分件完成,如按键的去抖,采用延时,显示部分用动态显示设计可以采用单片机最小系统,所谓最小系统时仅有程序.3单片机选型,项用.与MSC-51单片机完全兼容的STC89C52第三章硬件电路设计述时钟模块,显示模块,键盘接口模块等4生中断,从而使驱动电铃打铃。设定51式1生10次中断就产生lS信号,这是秒单元加1分,时的值,通过六位七段显示显示法需要数据所存等硬件,接口较复杂,考虑显示只他浮躁的处理程序,所有采用动态扫描LED入间隔符1P07P01P07P06P05P04P03P02P01P00P12P104个8位I/O口R4GND时钟时间和设置时间一直时,驱动程序动作,进原件参数及功能简介3.2.1主控器STC89C52STCCSTC9C52单片机用高性能的静态89C51KFLASH器256字节内部RAMLCD1602液晶接口电源控制模式:时钟可停止和恢复,空闲模式,掉电模式BG/GNDBG/VCCDB7DB6DB5DBBG/GNDBG/VCCDB7DB6DB5DB4DB3DB2DB18DB07E6RW5RS4VO3VCC2GND1615141312104个中断优先级16151413121022KVCCVCC2DS13021)性能特性DS单片机之间能简单地采用同步串行的方式进行通信,仅需用到三时钟信息时功率小十1mW钟,2)管脚描述XIXZ晶振管脚GNDRST脚SCLK时钟Vcc1,Vcc2电源供电管脚DS串行时钟芯片8脚DIPDSS串行时钟芯片8脚SOICDS2Z串行时钟芯片8脚SOIC计DS显示电路设计TCC位共阳数码显示,由STC89C52芯片对该数P2口接入8个三极管对数码管的位控进行控制。该显示采用和位控都经过反相器,显示的字形代码是共阳的显示代码,采用的是点亮小数点信位调节器3.2键盘接口电路设计,if,因此使各按键的功能具有多样性和课重复使用性。因4下可为强制打铃,另一选择调整位,选中位闪减1。按强制打铃按钮是实现强3响铃电路设计C8位数码管显示,显示为时分秒,实现的格式打铃的方式分为起床、熄灯和上下课下可为强制打铃,另一复位和强制结束打铃。通过选择键选择调整位,选中位闪减1。按强制打铃按钮是实现强第四章软件电路设计及流程图述主要是计时单元清零,中断初始化,堆栈指针工作,然后是调用显示子程序。主程序的起始存储地址是0H本系统用了定时器T0的中断,中断服务程序入口地址为000BHH元起存放一条短调转指令AJMP,使真正的主程序从0300H单元4.1.1中断服务程序设计要执行DAA指令,还要注意的是时计到24就回零,分和秒4.1.2显示程序设计和按键判断与按键处理程序设计都经过反相器,显示的字形代码是共校时时,采用的是点亮小数缓冲区是2FH—AH,由于采用的是动态显示,所信号要延时一定的时间,使LED显示器显示的字符意按键的去抖动,该系统采用的是延时去抖动子程序来实现的,每个按键按下后都要等待释放后再时的,所以进入按键处理程序后就关闭定时中4.2.1系统主程序流程图4.2.2系统定时中断流程图9五章系统程序设计概要片机的作息时间器系统设计则不显示)。鸣器BEEP:。下可为强制打铃,另一SETKFY选择调整位,选中位闪烁,且在1键选择到设置闹ADDKEY中位加1。include//调用单片机头文件defineucharunsignedchar//无符号字符型宏定义defineuintunsignedint//无符号整型宏定义5//数码管段选定义012345678charcodesmgduxaxbbxxax,0x2c,0x24,0xBa,0x20,0x28,xxxe0x23,0x64,0x74,0xff};charcodesmgwexfexfdxfbxfxefxdfxbf0x7f};//数码管位选定义uchardissmg={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xBa};ucharsmgi;//显示数码管的个位数bitflag_200ms;bitflag_100ms;bitflagmssbitbeepP7;tflagbeepentclockvaluesflagsx管闪烁的变量flag_nl;//农历阳历显示标志位menu_1,menu_2,menu_i;sbitdat7=B^7;hufenshi/第1个打铃的时间起床fenshi第2个打铃的时间早自习fenshi3个打铃的时间早自习下fenshi个打铃的时间第一节上课fenshi个打铃的时间第一节下课fenshi个打铃的时间第二节上课fenshi个打铃的时间第二节下课fenshi个打铃的时间第三节上课fenshi个打铃的时间第三节下课fenshi//第10个打铃的时间第四节上课fenshi//第11个打铃的时间第四节下课fenshi//第12个打铃的时间第五节上课fenshi//第13个打铃的时间第五节下课fenshi//第14个打铃的时间第六节上课fenshi//第15个打铃的时间第六节下课fenshi//第16个打铃的时间第七节上课fenshi//第17个打铃的时间第七节下课fenshi//第18个打铃的时间第八节上课fenshi//第19个打铃的时间第八节下课fenshi//第20个打铃的时间晚自习上课fenshi//第21个打铃的时间晚自习下课fenshi//第22个打铃的时间熄灯fenshi//第23个打铃的时间fenshi//第24个打铃的时间ucharfenshi5;ucharfenshi6;时间时间**********把数据保存到单片机内部eeprom中******************/dwriteeeprom{ctorErasexbytewritex000,fen1);bytewritex2001,shi1);bytewritex002,fen2);bytewritex2003,shi2);bytewritex004,fen3);bytewritex2005,shi3);bytewritex006,fen4);bytewritex2007,shi4);bytewritex008,fen5);bytewritex2009,shi5);bytewritex010,fen6);bytewritex2011,shi6);bytewritex012,fen7);bytewritex2013,shi7);bytewritex014,fen8);bytewritex2015,shi8);bytewritex016,fen9);间间间间间间间间间bytewritex2017,shi9);bytewritex018,fen10);bytewritex2019,shi10);//第10个打铃的时间bytewritex020,fen11);bytewritex2021,shi11);//第11个打铃的时间bytewritex022,fen12);bytewritex2023,shi12);//第12个打铃的时间bytewritex024,fen13);bytewritex2025,shi13);//第13个打铃的时间bytewritex026,fen14);bytewritex2027,shi14);//第14个打铃的时间bytewritex028,fen15);bytewritex2029,shi15);//第15个打铃的时间bytewritex030,fen16);bytewritex2031,shi16);//第16个打铃的时间bytewritex032,fen17);bytewritex2033,shi17);//第17个打铃的时间bytewritex034,fen18);bytewritex2035,shi18);//第18个打铃的时间bytewritex036,fen19);bytewritex2037,shi19);//第19个打铃的时间bytewritex038,fen20);bytewritex2039,shi20);//第20个打铃的时间bytewritex040,fen21);bytewritex2041,shi21);//第21个打铃的时间byte_write(0x2042,fen22);//第22个打铃的时间bytewritex2043,shi22);bytewritex044,fen23);bytewritex2045,shi23);bytewritex046,fen24);bytewritex2047,shi24);bytewritex048,fen25);bytewritex2049,shi25);bytewritex050,fen26);时间时间时间时间bytewritex2051,shi26);bytewritex2058,a_a);}**********把数据从单片机内部eeprom中读出来*****************/dreadeeprom{fenbytereadxereadxfenbytereadxereadxfenbytereadxereadxfenbytereadxereadxfenbytereadxereadxfenbytereadx间间间间间间ereadxfenbytereadxereadx间fenbytereadxereadx间fenbytereadxereadx间fenbytereadx;tereadx//第10个打铃的时间fenbytereadx;tereadx//第11个打铃的时间fenbytereadx;tereadx//第12个打铃的时间fenbytereadx;tereadx//第13个打铃的时间fenbytereadx;tereadx//第14个打铃的时间fenbytereadx;tereadx//第15个打铃的时间fenbytereadx;tereadx//第16个打铃的时间fenbytereadx;tereadx//第17个打铃的时间fenbytereadx;shi18=byte_read(0x2035);//第18个打铃的时间fenbytereadx;tereadxfenbytereadx;tereadxfenbytereadx;tereadxfenbytereadx;tereadxfenbytereadx;tereadxfenbytereadx;tereadxfenbytereadx;tereadxfenbytereadx;tereadxaabyteread0x2058);}时间时间时间时间时间时间时间时间******开机自检eeprom初始化*****************/diniteeprom{adeeprom{aa单片机内问eepromwriteeeprom();//保存数据}}的函数voidsmgsuchardat{B=dat;tsmgxfftsmgxfftsmgxfftsmgxfftsmgxfftsmgxfftsmgxfftsmgxff}***************延时函数************************/voiddelayuintuintq){while(q--);***************1ms延时函数*****************************/voiddelayms(uintq){uinti,j;iqiforjjj}************独立按键程序*****************/ucharkeycan//按键值voidkey立按键程序{wkeycan20;P0x78;{msIO出为1{keynew=0;&&(key_new==1)){casexekeycanbreak;casexkeycanbreak;casexkeycanbreak;casexkeycanbreak;}write_sfm2(1,0,key_can);}}key_new=1;}**************设置函数************************/eywith{flag_500ms=1;{menu_1++;menu_2=1;gsxif(menu_1==2)//设置年月日gsxifmenu闹钟的开和关gsx{ifmenu///设置分gsxelse时gsx}u{menu_1=0;ags}}{flag_200ms=1;ifmenumenu//设置时间{menu_2++;menu_2=1;gsxsxc}{menu_1=0;ags}}ifmenu/{fmenu{timemiaoxtimemiaox}fmenu{timefenxtimefenx}fmenu{timeshixtimeshix}writetime();}月日{fmenu{timerixtimerix}fmenu{timeyuextimeyuex}fmenu{timenianxtimenianx}writetime();}期{ifmenu{imeweekximeweekxwritetime();//把时间写进去}}ifmenumenu//设置第1打铃时间{{stimefenxstimefenx}{stimeshixstimeshix}}ifmenumenu//设置第2打铃时间{{stimefenxstimefenx}{stimeshix}}stimeshix间{stimefenxstimefenx}{stimeshixstimeshix}ifmenu//设置第4打铃时间{stimefenxstimefenx}{stimeshixstimeshix}ifmenu//设置第5打铃时间{stimefenxstimefenx}{stimeshixstimeshix}ifmenu//设置第6打铃时间{stimefenxstimefenx}{stimeshixstimeshix}ifmenu//设置第7打铃时间{stimefenxstimefenx}{stimeshixstimeshix}ifmenu//设置第8打铃时间{stimefenxstimefenx}{stimeshixstimeshix}ifmenu//设置第9打铃时间{stimefenxstimefenx}{stimeshixstimeshix}ifmenu//设置第10打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第11打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第12打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第13打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第14打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第15打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第16打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第17打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第18打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第19打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第20打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第21打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第22打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第23打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第24打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第25打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}ifmenu//设置第26打铃时间{dstimefenxdstimefenx}{dstimeshixdstimeshix}}*****数码管显示**************/voiddisxianshiucharshiucharfen){dissmgsmgdu[fen%16];dissmgsmgdu[fen/16];dissmgxf//dissmgsmgdushi;//显示秒dissmgsmgdushi;//dissmgxff//dissmgsmgdudalinggeshu];dissmgsmgdudalinggeshu];}****菜单处理函数****************/idmenudis{ifmenu置时分秒{fflagms{dissmgsmgdumiao;dissmgsmgdumiao;ssmgxfdissmgsmgdufen;dissmgsmgdufen;ssmgxfdissmgsmgdushi;dissmgsmgdushi;i}}if((menu_1==2))//选设置年月日{fflagms{dissmgsmgduri;dissmgsmgduri;smgxfedissmgsmgduyue;dissmgsmgduyue;smgxfedissmgsmgdunian;dissmgsmgdunian;i}}ifmenu闹钟的开和关{fflagms{dissmgsmgdu[week%16];dissmgsmgdu[week/16];xffxffxffxffxffxff}}menumenu{dalinggeshu=1;fflagms{hishifen}}menumenu{inggeshufflagmshishifen}ifmenumenu))间间间{linggeshufflagmshishifen}ifmenumenu{nggeshufflagmshishifen}ifmenumenu{linggeshufflagmshishifen}ifmenumenu{inggeshufflagmshishifen}ifmenumenu==17)){间间间间alinggeshufflagmshishifen}ifmenumenu{inggeshufflagmshishifen}ifmenumenu{inggeshufflagmshishifen}ifmenumenu{dalinggeshu;fflagmsnshishifen}ifmenumenu{dalinggeshu;间间时间时间nshishifen}ifmenumenu{dalinggeshu;fflagmsnshishifen}ifmenumenu{dalinggeshu;fflagmsnshishifen}ifmenumenu{dalinggeshu;fflagmsnshishifen}ifmenumenu{dalinggeshu;fflagms时间时间时间时间nshishifen}ifmenumenu{dalinggeshu;fflagmsnshishifen}ifmenumenu{dalinggeshu;fflagmsnshishifen}ifmenumenu{dalinggeshu;fflagmsnshishifen}ifmenumenu{dalinggeshu;fflagmsnshishifen时间时间时间时间}ifmenumenu{nggeshufflagmsnshishifen}ifmenumenu{nggeshufflagmsnshishifen}ifmenumenu{nggeshufflagmsnshishifen}ifmenumenu{nggeshufflagmsnshishifen}时间时间时间时间ifmenumenu{nggeshufflagmsnshishifen}ifmenumenu{nggeshufflagmsnshishifen}ifmenumenu{nggeshufflagmsnshishifen}}*****打铃函数***************/idclockdis{时间时间时间uefflagms{flagms;ms{iffenfenshishi&(shi1!=0))判断判断判断判断判断判断判断判断fenfenshishishi!=0))||0))||0))||0))||0))||0))||0))||0))||0))||0))

温馨提示

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

评论

0/150

提交评论