精品校园打铃系统单片机.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统综合设计实训报告 ——校园打铃系统的设计 校园打铃系统的设计 一、实训目的 1、设计一个校园打铃系统,使用的是24小时计时制,能够设置多个打铃时间,同时要求能够在系统掉电时,时间能够继续,打铃时间的数据能够保持。 2、掌握LCD1602、DS1302、DS18b20、AT24C02等相关知识 3、进一步了解时钟电路、复位电路、工作电源电路、程序存储器选择电路 二、实训内容 1、时钟功能:能显示年、月、日、星期、时、分、秒、温度等信息 2、调整功能:能校正年、月、日、时、分、秒、星期等信息 3、打铃功能:按指定的时间发出声音,并且闪光 4、设置的作息时间数据在单片机掉电后不会丢失 三、实训整体框图 图1 系统总体设计图 四、各功能模块介绍 1、最小系统 单片机最小系统包括单片机(STC89C52)、时钟电路、复位电路、工作电源电路、程序存储器选择电路五个部分。 2、时钟模块DS1302 DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。 3、存储模块AT24C02 AT24C02提供2k位的串行电可擦写可编程只读存储器(EEPROM),组织形式为256字×8位字长,采用IIC总线接口。 4、温度采集模块DS18B20 DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 5、打铃模块 采用蜂鸣器和LED指示灯作为系统打铃的声光报警器。 6、液晶显示模块LCD1602 LCD1602液晶显示器可以显示2行16列,共32个字符。 7、键盘输入模块 采用16键的矩阵式键盘,分别定义为0-9的数字键与其他的功能键。 图2 矩阵式键盘 8、LCD1602显示介面设计 2 0 1 1 - 0 8 - 2 2 S u n 2 3 : 1 2 : 4 9 ? ± 2 6 . 7 o C 当前时间显示介面(“?”为打铃标志符号) 2 0 1 1 - 0 8 - 2 2 S u n 2 3 : 1 2 : 4 9 ± 2 6 . 7 o C 修改时间显示介面 S e t u p r i n g b e l l t i m e r 0 1 2 3 : 1 2 : 4 9 设置打铃时间显示介面 9、矩阵键盘功能划分 “15”键:界面切换功能,能够依次显示主界面、修改时间界面、打铃时间界面 “14”键:保存修改后的时间 “12”键:关闭响铃 10、系统流程图 五、程序代码 以下代码实现的功能是: 能够显示年月日、时分秒、星期、温度 能够修改小时、分钟、秒钟并且保存修改的时间 能够设置打铃时间,到设置的时间时蜂鸣器发出响声,设定为响10s,小灯亮。 1、zdy.h int a,b,T;//自定义的变量 2、ds18b20.h #includeintrins.h sbit DQ=P2^2; //DQ的控制位 void delay5us(void) //延时5微秒 { _nop_(); } void delay1(int x) //x=(1. 20us,2. 28us,3. 36us,5. 52us,50. 412us,60. 492us,65. 535us) { unsigned int i; for(i=0;ix;i++); } //初始化,主机发送复位脉冲,从机如果存在则发送存在的应答脉冲 bit rst1bus(void) { bit f; DQ=1;//准备阶段 DQ=0 ;//将DQ线拉低 delay1(65);//延时500us,主机发送复位脉冲:480us至960us的低电平 DQ=1 ;//将DQ线拉高 delay1(3); //延时40us;//主机释放总线:15us至60us的高电平 f=DQ;//从机如果存在则60us至240us内回复低电平 delay1(10);// 延时100us; DQ=1; delay1(40);// 延时350us;//结束阶段 return(f);//f=0:从设备存在;f=1:从设备不存在 } //位写入函数:每次写1位数据 void writebit(bit x) {

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档