《基于51单片机的教学打铃控制器的毕业设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机的教学打铃控制器的毕业设计.doc(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 毕业设计(论文)任务书题目: 基于51单片机的教学打铃控制器的设计系 名 信息工程系 专 业 自动化 学 号 6010202392 学生 金奇 指导教师 扈书亮 职 称 讲 师 2013年12月10日一、原始依据(包括设计或论文的工作基础、研究条件、应用环境、工作目的等。)工作基础:了解基于DS1302实时时钟的基本命令格式,能熟练使用51系列单片机。研究条件:利用DS1302实现时间、日期的计量,利用数码管实现信息的显示,利用51单片机实现时间日期的获取,并可接受来自键盘的按键信息,完成时间、日期的设定,通过当期时间日期与设定时间日期的比对,实现打铃控制。设定信息将存储在存储芯片中。应用环
2、境:可编程的定时器的控制器的设定应用。工作目的:熟练掌握51单片机的C编程。 熟练掌握DS1302/AT24C02的编程方法。熟练掌握PROTEUS仿真技术。二、参考文献1单片机的C语言应用程序设计,马忠梅,航空航天大学,2007.2基于FM1702射频识别读写器的设计与实现,邢海霞,索明何.嵌入式计算机,2007.3新概念51单片机C语言教程,郭天祥,电子工业,2008.4C程序设计(第三版),谭浩强,清华大学,2007.5The 8051 Microcontroller and Embedded Systems, Muhammad Ali Mazidi etc.三、设计(研究)容和要求(包
3、括设计或研究容、主要指标与技术参数,并根据课题性质对学生提出具体要求。)1、完成DS1302的时间获取与设定。2、完成基于AT24C02的数据存储。3、完成当前时间/日期信息的显示以与设定信息的显示。4、能够进行时间日期的比对控制。指导教师(签字)年 月 日审题小组组长(签字)年 月 日本科生毕业设计(论文)开题报告课题名称基于51单片机的教学打铃控制器的设计系 名 称信息工程系专业名称自动化学生金奇指导教师扈书亮一、课题来源与意义近年来随着电子技术和微型计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大。已在工业控制尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备
4、、个人信息终端与通信产品中得到广泛应用,成为现代电子系统中最重要的智能化的核心部件。单片机比通用处理器最适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、计算器、家用电器、电子玩具、掌上电脑以与鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片
5、机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说智能控制与自动控制的核心就是单片机。现代社会发展速度越来越快,随之人们的时间观念也逐渐加强,在学校日常生活中师生也都需要一个准确的时间提醒来帮助自己更好地完成相关工作。本课题将利用DS1302获取当前时间、日期,数码管实现相应信息的显示,用51单片机实现对DS1302的控制,完成时间日期的获取,并可接受来键盘的按键信息,完成时间、日期的设定,通过当期时间日期与设定时间日期的比对,实现打铃控制,并设定信息将存储在存储芯片中。二、研究目标1、熟练掌握51单片机的C编程。2、熟练掌握DS1302AT24C02的编程方法。3
6、、完成基于51单片机的教学打铃控制器的程序设计并能够进行系统调试。三、研究容整体系统设计框图本次设计主要包括单片机模块、DS1302模块、数码管显示器模块、继电器模块四个部分。通过部定时产生中断,从而驱动电铃打铃。本设计采用5V供电,属于小功率稳压电源,所以可以采用三端稳压芯片。使用其设计的是线性开关、线性稳压电路,具有结构简单、调节方便、输出电压稳定性强、纹波电压小等优点。AT89C51具有体积小、功耗小。含有中断、定时计数器。且IO接口数相对较多,价钱也相对比较便宜。四、研究方法与手段利用DS1302实现时间、日期的计量,利用数码管实现信息的显示,利用51单片机实现时间日期的获取,并可接受
7、来自键盘的按键信息,完成时间、日期的设定,通过当期时间日期与设定时间日期的比对,实现打铃控制,完成该系统的C51程序设计,并在此基础上完成基于PROTEUS 7的系统仿真,实现系统联调,完成设计中所要求的功能。五、进度安排1、2013.12.102014.03.14 查找资料,通过书籍和视频学习使用AT89C51单片机编程的基本方法,了解DS1302系统的基本概念,完成开题报告。2、2014.03.152014.03.29 掌握AT89C51单片机编程的基本方法和液晶显示控制器的控制方法。3、2014.03.302014.04.20 编写程序,完成单片机基于DS1302处理。4、2014.04
8、.212014.05.25 完成基于51单片机的教学打铃控制器的设计,并进行检验和总结。5、2014.05.262014.06.05撰写论文,准备答辩。六、主要参考文献1凯 实宏等.基于GSM模块的收发控制系统设计J.工程大学学报.2011年.2田思源 玉霞等.智能化楼宇安防自动监控报警系统的研究J.3马士宝 国玉等.基于GSM模块的无线报警系统设计J.理工大学学报.2009年.4松 忠等.基于GSM的远程家庭智能监控系统设计J.产品设计与实现.2009年.5海成AVR单片机原理与测控工程应用M.航空航天大学,2008年.6周明德.微型计算机硬件软件与应用M.清华大学.1982年.7宋宏运.单
9、片微机计算机原理与应用M.大学.1990.8何立民.单片机应用系统设计M.航空航天大学.1990年.9王福瑞等.单片机测控系统设计大全M.航空航天大学.2002年.10康华光电子技术基础(模拟部分)M.:高等教育,2006年.11阎石数字电子技术基础(第五版)M.:高等教育,2006年.12谭浩强.C程序设计M.:清华大学.2005年.13维成,加国.单片机原理与应用与C51程序设计(第2版)M.清华大学,2009.14ISD4004SeriesSingle-ChipVoiceRecord/PlaybackDeviceDataBook,WinbondInc.2000.15Tan K M C,
10、Maxion R A. Determining the operational limits of an anomaly-based intrusion detector. IEEE Journal on Selected Areas in Communications. 2003.选题是否合适: 是 否课题能否实现: 能 不能 指导教师(签字) 年 月 日选题是否合适: 是 否课题能否实现: 能 不能 审题小组组长(签字) 年 月 日毕业设计(论文)说明书题目:基于51单片机的教学打铃控制器的设计系 名 信息工程系 专 业 自动化 学 号 6010202392 姓 名 金奇 指导教师 扈书亮
11、 2014年6月 6日摘要现在,生活节奏加快,人们对时间的规划也越来越重视,这就要用时钟提醒装置,即打铃装置。在校园生活中,用到最多的还是校园的自动打铃装置。每天都离不开打铃系统的使用,它不仅可以为学生和老师提供一个上下课的时间提醒,还可以提醒学生形成一个良好的作息时间表,科学合理的规划学习生活。因此,打铃系统的核心部分也是时钟部分,为系统提供时间基准。本设计主要是针对适用于校园打铃系统要求的,介绍了一种基于单片机的自动打铃系统的设计方法。系统以AT89C51单片机为控制器,以DS1302时钟芯片为系统提供时间,并在显示设备上显示,通过按键可以设定定时打铃时间和打铃时间间隔。系统软件设计采用C
12、51语言来完成,使用方便,用于完成软件设计非常方便。关键字:打铃器;AT89C51单片机;DS1302;显示器ABSTRACTNow, the accelerated pace of life, people have time to plan more and more attention , which use tutors in size device that rang the bell device .Most used in everyday life or campus automatic bell device . In school life, are inseparable
13、 from daily use to fight bell system, it can not provide a time to remind the class, but also to remind the students to form a good work schedule, rational planning of life science learning for students and teachers. Thus, the core of the bell system clock is also part of the system to provide a tim
14、e reference.This paper is mainly applied to the campus for the bell system requirements, describes the automatic bell system design approach based on a single chip. System is AT89S51 microcontroller controller DS1302 clock chip to provide time for the system, and on the LCD display, by pressing a bu
15、tton you can set the timer rang the bell and rang the bell time interval. System software design using C language to accomplish, Easy to use, very convenient for the completion of software design .Keywords: Belling;AT89S51 microcontroller;DS1302;Display0 / 61目录第一章绪论11.1课题背景与来源11.2课题意义11.3课题设计容11.4本章
16、小结2第二章系统的硬件设计32.1系统设计方案32.2单片机电路简介32.3时钟电路设计62.4显示电路设计82.5键盘电路设计82.6打铃电路设计92.7存储器102.8温度显示电路11第三章系统软件设计123.1软件设计流程图123.2读取DS1302时间程序设计123.4键盘设定程序设计153.5AT24C0216第四章系统调试与测试结果分析174.1系统调试174.2仿真结果17第五章总结与展望20参考文献21附录22外文资料中文译文致第一章绪论1.1课题背景与来源当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前
17、所未有的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校与企事业单位大规模地兴起。学习单片机的最有效的方法就是理论与实践并重,本文用AT89C51单片机设计的一个自动打铃系统。单片机自1976年由Intel公司推出MCS-48开始,迄今已有20多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列的优点。目前已经渗入到人们生活和工作的方方面面,单片机的应用领域已经从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费品、办公自动化、汽车
18、电子、PC机外围以与网络通讯等广大领域。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端与通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。1.2课题意义在日常生活中我们是常用到定时控制,如扩印过程的曝光定时等等。早期常用的一些时间控制单元都是用模拟电路设计制作的,其定时准确性和精度都不是很理想,现在基本上都是基于数字电子技术的新一代产品,随着单片机性价比的不断提高,新一代产品的应用也越来越广泛。大则可以构成复杂的工业过程控制系统,完成复杂
19、的功能,小则可以用于家电控制,甚至可以用于儿童电子玩具。它具有功能强大、体积小、质量轻、灵活好用等一系列特点。配以适当的接口芯片,可以构成各种各样、功能各异的微电子产品。随着电子技术突飞猛进的发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。这些具有人们所需要的智能化特性产品减轻了人们的劳动,扩大了数字化的围,为家庭数字化提供可能。根据这种实际情况,设计了一个单片机多功能定时打铃器,它有基本的定时打铃功能,还有时间功能,方便使用者能随时掌握时间,方便人们的生活。1.3课题设计容系统主要由主控模块,时钟模块,显示模块,键盘接口模块等4部分组成。通过部定时产生中断
20、,从而驱动电铃打铃。本设计采用5V电源,属于中小功率稳压电源,所以可以采用三端稳压芯片。用其设计的是线性开关、线性稳压电路,具有结构简单、调节方便、输出电压稳定性强、纹波电压小等优点。AT89C51具有体积小、功耗小。含有中断、定时计数器。且I/O接口数相对较多,价钱也相对比较便宜。利用DS1302实现时间、日期的计量,利用数码管实现信息的显示,利用51单片机实现时间日期的获取,并可接受来键盘的按键信息,完成时间、日期的设定,通过当期时间日期与设定时间日期的比对,实现打铃控制,完成该系统的C51程序设计,并在此基础上完成基于PROTEUS 7的系统仿真,实现系统联调,完成设计中所要求的功能。1
21、.4本章小结本章主要介绍了课题的背景和意义,对单片机的优点与结构做了简要叙述,也对本系统的应用和概况进行了说明。第二章系统的硬件设计2.1系统设计方案(1)设计能正常工作的一个单片机最小硬件系统,外围电路包括设置键盘,数码管显示屏; (2)进行软件设计,利用单片机系统时钟先设计一个高精度的部时钟系统,最小精确时间为期1秒; (3)在秒计数器的基础上设计一个24小时时钟,并设计若干定时功能; (4)设计打铃执行机构,完成自动打铃功能。图2-1系统设计框图2.2MCS-51单片机2.2.1AT89C51单片机性能AT89C51是一种带4K字节FLASH可编程可擦除只读存储器的低电压,高性能的8位微
22、处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将8位CPU和FLASH存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 引脚说明:VCC:供电电压。 P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8个TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口
23、:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带部
24、上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被部上拉为高电平,并用作输入。P3口也可作为AT89C51的一些特殊功能口,如下所示: P3口管脚备选功能 P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。AT89C51各部分引脚图如下:图2-2AT89C51引脚说明RST:复位输入。当振
25、荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR中的8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。为使该模块化自动打铃系统具有更加方便和灵
26、活性,对系统的硬件做了精心设计。硬件电路包括七段式数码管驱动模块、蜂鸣器驱动模块、按健控制模块等三大模块。2.2.2单片机最小系统电路单片机最小系统由晶振电路和复位电路组成。电路如下所示。晶振电路用于产生单片机工作时所需的时钟信号,单片机的指令必须在时钟信号下按照时序进行。晶振电路通常用两种设计方式:部振荡方式和外部振荡方式。部震荡方式是在单片机的XTAL1和XTAL2引脚外接一个晶振振荡器,与单片机部的振荡器组成时钟信号;外部振荡方式是在外部将已有脉冲信号引入单片机,一般用于使单片机的时钟与外部信号保持同步。本设计选用部振荡方式,在XTAL1和XTAL2引脚之间连一个12MHz的晶振,再分别
27、外接30p的对地电容。单片机在启动是需要复位,使系统各器件处于初始状态。复位引脚为RST,当系统上电后晶振电路稳定后,RST引脚有一个高电平且持续两个机器周期以上,单片机系统就能实现复位功能。手动复位是在RST引脚设置按键,当案件按下时,RST引脚会有高电平,即可实现复位功能;上电复位是在RST引脚连接一个电解电容接至电源,再接一个电阻接地,系统上电时,电容充电,只要电容上的上升时间不超过1ms,就可以实现复位功能。图2-3单片机最小系统2.3时钟电路设计2.3.1时钟芯片DS1302的结构与工作原理DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年
28、、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 2.3.2引脚功能与结构DS1302的引脚排列,其中VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vc
29、c2给DS1302供电。当Vcc2小于VCC1时,DS1302由VCC1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数
30、据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。 下图为DS1302的引脚功能图:图2-4DS1302引脚说明2.3.3DS1302的控制字DS1302的控制字如表2-1所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 表2-1DS1302 的控制字1RAM CKA4A3A2A1A0RAM K2.3.4数据输入输出(I/O)在控制指令字输入后的下一个SCLK
31、时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 2.3.5DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器与其控制字见表2-1。 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器与与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位
32、的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。2.3.6时钟电路设计图2-5DS1302时钟电路DS1302存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析与对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若
33、采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。2.4显示电路设计单片机采用数字屏作为显示器件,实现时间、日期、温度的选择。其中P0口用于驱动6个数码管的段码输入端,P1口通过同向驱动器用来驱动6个数码管的位选端。另外,有四个LED灯通过P3.1指示当前系统时钟电路的工作状态。图2-6单片机显示电路2.5键盘电路设计键盘是单片机应用中常用的一种输入器件,键盘的按键有触点式和非触点式之分,按接口原理有编码键盘和非编码键盘之分。编码键盘主要用硬件
34、来实现对按键的识别,非编码器件是由软件来实现键盘的定义和识别。常用的按键一般分为触点式按键,根据按键所连接的单片机引脚的电平高低来判断其是否按下。按功能分,独立按键每一路按键就占用单片机的一个控制引脚,单片机直接获取其信息:矩形按键将按键排成由行和列组成的行列式,通过确认按键的行号和列号来确定每一路按键。本设计按键电路图如下,由单片机的P1口控制按键电路。本设计中按键用于设定定时时间,打铃时间间隔。所以需8路按键即可实现所需功能,采用独立式按键即可。实验中按键0代表时间设置,按键1代表取消闹铃设置,按键2代表左移设置以便进行上一位时间设置,按键3代表增加时间数字,按键4代表减小时间数字,按键5
35、代表右移设置以便进行上一位时间设置,按键6代表取消以上所有正在进行的设置,恢复原位,按键7代表确定以上设置。图2-7单片机键盘设计2.6打铃电路设计打铃电路一般用声音或音乐作为提醒,本设计选用蜂鸣器和灯实现声光双重打铃功能,电路如图,打铃时间到时,单片机P3.3引脚置高,NPN型三极管2N2222A导通,使上面开关吸合,继电器导通,220V电压进入,电铃响。开关断开,继电器不导通,220V电压无法进入,电铃不响。图2-8单片机打铃电路2.7存储器图2-9储存器电路存储器用于存储设计时间、日期、以与温度等。I2C全称为芯片间总线,是目前使用广泛的芯片间串行扩展总线。串行总线只有两条信号线,一条是
36、数据线SDA,另一条是时钟线SCL。SDA和SCL是双向的,I2C总线上各器件的数据线都接到SDA线上,各器件的时钟线均接到SCL线上。带有I2C总线接口的单片机可直接与具有I2C总线接口的各种扩展器件(如存储器、I/O芯片、A/D、D/A、键盘、显示器、日历/时钟)连接。由于I2C总线采用纯软件的寻址方法,无需片选的连接,这样就大大简化了总线数量。I2C串行总线的运行由主器件控制。主器件是指启动数据的发送(发出起始信号)、发出时钟信号、传送结束时发出终止信号的器件,通常由单片机来担当。从器件可以是存储器、LED或LCD驱动器、A/D或D/A转换器、时钟/日历器件等,从器件必须带有I2C串行总
37、线接口。当I2C总线空闲时,SDA和SCL两条线均为高电平。由于连接到总线上器件的输出级必须是漏极或集电极开路的,只要有一个器件任意时刻输出低电平,都将时总线上的信号变低,即各器件的SDA与SCL都是“线与”的关系。由于各器件输出端为漏极开路,故必须通过上拉电阻接正电源,以保证SDA和SCL在空闲时被上拉为高电平。SCL线上的时钟信号对SDA线上的时钟信号对SDA线上的歌器件间的数据传输起同步控制作用。SDA线上的数据起始、终止与数据的有效性均要根据SCL线上的时钟信号来判断。在标准的I2C普通模式下,数据的传输速率为100kbit/s,高速模式下可达400bit/s。总线上扩展的器件数量不是
38、由电流负载决定的,而是由电容负载确定的。I2C总线上的每个器件的接口都有一定的等效电容,连接的器件越多,电容值就越大,这会造成信号传输的延时。总线上允许的器件数以器件的电容量不超过400pF为宜,据此可计算出总线长度与连接器件的数量。每个连到I2C总线上的器件都有一个唯一的地址,扩展器件时也要受到器件地址数目的限制。2.8 温度显示电路DSl820数字温度计提供9位(二进制)温度读数指示器件的温度信息经过单线接口送入DSl820或从DSl820送出因此从主机CPU到DSl820仅需一条线(和地线)DSl820的电源可以由数据线本身提供而不需要外部电源因为每一个DSl820在出厂时已经给定了唯一
39、的序号因此任意多个DSl820可以存放在同一条单线总线上这允许在许多不同的地方放置温度敏感器件DSl820的测量围从-55到+125增量值为0.5可在ls(典型值)把温度变换成数字。图2-10单片机温度显示设计第三章系统软件设计3.1软件设计流程图P3口驱动驱动继电器导通开始初始化读取DS1302的时间/日期键盘扫描读取24C02信息判断时间是否一致?NY图3-1软件设计流程图定时器1初始化,1302初始化,随后读取1302的时间或日期。键盘扫描是对已知程序的扫描与认可。读取已知信息之后就要判断时间是否与设定要求打铃时间一致,如果一致则进行上述后续步骤,P3口驱动,三极管2N222A导通即驱动
40、继电器导通。如果时间不一致直接跳步进行无限的循环,直到时间与设定打铃时间一致打铃为止。3.2读取DS1302时间程序设计3.2.1DS1302的寄存器有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81H8DH,写时80H8CH),存放的数据格式为BCD码形式。小时寄存器(85H、84H)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是,当为1时,表示PM。在24小时模式时,位5是第二个10小时位。 秒寄存器(81H、80H)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;
41、当该位置为0时,时钟开始运行。 控制寄存器(8FH、8EH)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。3.2.2DS1302的工作原理DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。 3
42、.2.3DS1302的寄存器和控制命令对DS1302的操作就是对其部寄存器的操作,DS1302部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器与与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。 表3-1日历、时间寄存器与控制字76543210寄存器名称1RAM/CKA4 A3A2A1A0RD/W秒寄存器1000000分寄存器1000001小时寄存器1000010日寄存器1000011月寄存器1000100星期寄存器1000101年寄存器1000110写保护寄
43、存器1000111慢充电寄存器1001000时钟突发寄存器1011111最后一位RD/W为“0”时表示进行写操作,为“1”时表示读操作。 DS1302部的RAM分为两类,一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为COHFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 现在已经知道了控制寄存器和RAM的逻辑地址,接着就需要知道如何通过外部接口来访问这些资源。单片机是通过简单的同步串行通讯与DS1302通讯的,每次通讯都必须由单片机发起,无论是读还是写操作,单片机都必须先向DS1302写入一个命令帧,这个帧的格式如表1所示,最高位BIT7固定为1,BIT6决定操作是针对RAM还是时钟寄存器,接着的5个BIT是RAM或时钟寄存器在DS1302的部地址,最后一个BIT表示这次操作是读操作抑或是写操作。 物理上,DS1302的通讯接口由3个口线组成,即RST,SCLK,I/O。其中RST从低电平变成高电平启动一次数据传输过程,SCLK是时钟线,I/O是数据线。具体的读写时序参考图5,但是请注意,无论是哪种同步通讯类型的串行接口
限制150内