时间温度显示实训报告.doc_第1页
时间温度显示实训报告.doc_第2页
时间温度显示实训报告.doc_第3页
时间温度显示实训报告.doc_第4页
时间温度显示实训报告.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

学号姓名答辩成绩(30%)实物演示(40%)论文成绩(30%)总成绩评语: 指导老师:朱华贵 年 月 日电子实时时钟/万年历系统 2013年 05 月 31 日摘要随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。由其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便。本文首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。本设计以数字集成电路技术为基础,单片机技术为核心。本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。本系统以单片机的C语言进行软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。系统通过点阵式液晶为载体显示数据,所以具有人性化的操作和美观的页面效果。可以显示年月日、星期、时、分、秒、温度等。关键词:单片机;电子实时时钟,数字温度计,DS1302;LM016L;DS18B20目 录1. 设计任务11.1 任务描述11.1.1 小任务11.2 技术指标11.3 难点分析22. 方案比较与论证32.1 方案选择32.2 方案论证32.3 小结33. 系统硬件设计43.1 总体设计43.2 硬件模块电路分析43.3 发挥部分设计43.5 电路原理图43.6 小结44. 系统仿真与软件设计54.1 仿真设计与分析54.2 软件设计54.3 工程文件54.4 小结55. 系统调试与组装65.1 PCB板65.2 样机调试65.3 样机功能65.4 发挥部分测试结果65.5 小结66. 结论7参考文献8附录9.设计任务此设计即在液晶上显示年、月、日、时、分、秒及星期和温度,时间和日期可通过四个按键K1-K4调试,原理框图如图(1.1),电路一般包括以下几个部分:键盘、单片机、温度芯片DS18B20,时间芯片DS1302,及显示电路。LM016L显示屏DS18B20温度计DS1302单片机 图1.1四个时间日期调试按键1.1任务描述(1)为使时钟走时与标准时间一致,而且每次重新上电后,时间和日期都会复位显示初始设置值,因此校时电路是必不可少的,键盘就是用来校正液晶上显示的时间和日期。(2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。(3)温度传感器用来显示当天的确定温度值。(4)单片机发送的信号经过显示电路通过译码最终在液晶上显示出来。1.1.1小任务1阅读相关材料,熟悉DS1302;LM016L;DS18B20的结构,掌握其寄存器和时序。2学会DS1302;LM016L;DS18B20的编程,通过单片机控制相应模块。3.编程通过单片机编程将S1302;LM016L;DS18B20各模块组合起来,使结果显示在液晶屏上。并且数据可通过按键调整。1.2技术指标Ds1302具有有能力计算2100年之前的秒、分、时、日、月、年的能力。Ds1302工作电压范围2.05.5VDs1302工作电流2.0V时小于300nA。Ds1302工作电压2.05.5V工作温度范围:-40+851.3难点分析这次一周之内学会使用DS1302,DS18B20,LCD1602.对我们来说真的很难,每个芯片入门都不容易,其中更是复杂,每一个芯片的质料就有十几页,程序更是比我们平时课本上多的多,而且复杂多,各芯片的驱动程序搞得我们晕头转向,这次实验做的非常吃力,做的非常烦。.方案比较与论证方案一 :用EDA技术及VHDL语言控制来实现显示及测温度,且显示也可以用数码管,但是数码管屏幕有限不是很方便的显示很多的数据以及文字等。方案二: 用C()语言编程来控制单片机让它在液晶上显示数据及文字。由于单片机结构简单、控制功能强、可靠性高、体积小、价格低等优点,以及液晶屏幕可以完整的同时显示数据及文字等内容,综合上述方案的选择与比较,选择方案二。主要是由于电器元件的熟悉程度以及市场的供求关系。.方案选择由于对于VHDL语言也不够了解,故不采用方案一。而在方案二中,大部分的电器元件我们较熟悉并且更容易获得,而且我们对语言有一定的基础,即选择方案二。.方案论证设计的电路主要由五大模块构成:温度传感器电路,单片机控制电路,时间日期传输电路,显示电路以及校正电路。当温度传感器接受到外面的信号,送入单片机,单片机将接受到的信号输出,让它在液晶上显示。同时由单片机控制的万年历以及时间显示,当时间及秒计数计满60时就向分进位,分计数器计满60分后向时计数器进位,小时计数器按“24翻1”规律计数。时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。时计数器计满24小时后自动向日计数器进一,日计数器由平年、闰年的28/30/31对大、小月和二月的判断应与当月相应的日期相一致,当日计数器计满时,向月计数器进位,月计数器计满12月向年计数器进位,当年计数器计满100时所以计数器清零。设计采用的是年、月、日和时、分、秒、星期显示,所以在单片机通过对数据处理进行同时在液晶上显示。.小结本次设计主要用单片机控制程序让它在液晶上显示年、月、日、时、分、秒及星期,同时用18B20温度传感器来接受外面的信号,让单片机来接受它,且也让它在液晶上显示测的温度。时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。时计数器计满24小时后自动向日计数器进一,日计数器由平年、闰年的28/30/31对大、小月和二月的判断应与当月相应的日期相一致,当日计数器计满时,向月计数器进位,月计数器计满12月向年计数器进位,当年计数器计满100时所以计数器清零。设计采用的是年、月、日和时、分、秒、星期以及温度同时显示。3. 系统硬件设计.总体设计设计的电路主要由五大模块构成:温度传感器电路,单片机控制电路,时间日期传输电路,显示电路以及校正电路。单片机显示键盘温度传感器实时时钟其电路原理图如下图.单片机控制模块.校正模块.温度模块.时间日期模块.显示模块图.3.2 硬件模块电路分析.显示模块第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:V使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。1602液晶模块内部的控制器共有11条控制指令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址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地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。时间日期模块Vcc1:主电源;Vcc2:备份电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2 Vcc1时,由Vcc1向DS1302供电。 SCLK:串行时钟,输入,控制数据的输入与输出; I/O:三线接口时的双向数据线; CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法 。 DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h8Dh,写时80h8Ch),存放的数据格式为BCD码形式,如图.所示。图DS1302与单片机的连接仅需要3条线:CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。温度模块图. 如图.所示,DS18B20只需要接到控制器(单片机)的一个I/O口上。脚借电源,脚接地。DS18B20的主要特征: u全数字温度转换及输出。 u先进的单总线数据通信。 u最高12位分辨率,精度可达土0.5摄氏度。 u12位分辨率时的最大工作周期为750毫秒。 u可选择寄生工作方式。 u检测温度范围为55C +125C (67F +257F) u内置EEPROM,限温报警功能。 u64位光刻ROM,内置产品序列号,方便多机挂接。 u多样封装形式,适应不同硬件系统。DS18B20引脚功能: GND 电压地 DQ 单数据总线 VDD 电源电压 NC 空引脚 DS18B20工作原理及应用:DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。18B20共有三种形态的存储器资源,它们分别是: ROM 只读存储器:用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。 RAM 数据暂存器:用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。.校正模块图.如图.所示,、分别与单片机的、引脚相连。可以通过调试时间日期。单片机控制模块图图.AT89S52的简介AT89S52是一种低功耗,高性能的CMOS8位微处理器,内部有8K字节的闪速PEROM ,该芯片采用ATMEL公司高密度、非挥发性存储器工艺制成且与工业标准的MCS-51系列的引脚及指令兼容,FLASH系列存储器为快速擦写存贮器。相对于MCS-51系列芯片而言,其特点如下 :1、可擦写1000次2、全静态操作:0Hz.24MHz3、32根可编程I/O口线4、内部RAM为256字节5、三个16位的定时/计数器6、8个中断源AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89S52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。.AT89S52芯片的管脚、引线与功能 (1)引脚信号介绍:P00P07 :P0口8位双向口线 P10P17 :P1口8位双向口线P20P27 :P2口8位双向口线 P30P37 :P3口8位双向口线引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用) 访问程序存储器控制信号:当 信号为低电平时,对ROM的读操作限定在外部程序存储器;而当 信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。ALE地址锁存控制信号:在系统扩展时,ALE用于控制把P0口输出低8位地址锁存起来,以实现低位地址和数据的隔离。此外由于ALE是以晶振六分之一的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲作用。 外部程序存储器读选取通信号:在读外部ROM时 有效(低电平),以实现外部ROM单元的读操作。XTAL1和XTAL2外接晶体引线端:当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于拉外部的时钟脉冲信号。RST复位信号:当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。VSS:地线 VCC:+5V电源引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断0)P3.3INT0(外部中断0)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通).AT89S52的总线结构AT89S52的管脚除了电源、复位、时钟接入、用户I/O口部分P3外,其余管脚都是为实现系统扩展而设置的。这些管脚构成了三总线形式,即:(1)地址总线(AB):地址总线宽度为16位,因此,其外部存储器直接地址外围为64K字节。16位地址总线由P0经地址锁存器提供低8位地址(A0A7);P2口直接提供高8位地址(A8A15)。(2)数据总线(DB):数据总线宽度为8位,由P0口提供。(3)控制总线 (CB):由部分P3口的第二功能状态和4根独立控制线RESET、 、ALE、 组成。 .时钟电路设计时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地作。(1)时钟信号的产生单片机内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。电容器C1和C2的作用是稳定频率和快速起振,电容值的范围在5pF30pF,典型值为30pF。晶振的频率通常选择两种6MHz和12MHz。只要在单片机的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器并在单片机内部产生时钟脉冲信号。. 复位电路设计 复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这上状态开始工作。(1)单片机常见的复位电路通常单片机复位电路有两种:上电复位电路,按键复位电路。上电复位电路:上电复位是单片机上电时复位操作,保证单片机上电后立即进入规定的复位状态。它利用的是电容充电的原理来实现的。按键复位电路:它不仅具有上电复位电路的功能,同时它的操作比上电复位电路的操作要简单的多。如果要实现复位的话,只要按下RESET键即可。它主要是利用电阻的分压来实现的在此设计中,采用的按键复位电路。(2)复位电路工作原理上电复位要求接通电源后,单片机自动实现复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。上电与按键均有效的复位电路不仅在上电时可以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作。因此本设计选用第二种上电复位与按键有效的各单位电路.发挥部分设计其设计的三维立体图如下所示。.电路原理图.小结电路的硬件设计还是蛮重要的,像电源地可以统一接在一起,而硬件的放置位置线路的连接也是有讲究是,硬件放的有条理线路有规则能让我们更容易看懂电路原理图,对电路的观察有更清新的思路,也可以方便检查电路,而且硬件的散热也有一定的好处。.系统仿真与软件设计通过protues软件画好电路原理图,上电检查是否有错误,用keil软件编写程序,编译直至无误,生成*.hex文件。4.1 仿真设计与分析将编译生成的*.hex文件加载到原理图中的单片机中,按下仿真按钮,看液晶显示屏上是否显示正确的初值,显示出错则调试程序,显示无误后,分别按下五个按键,看是否能正确调试时间日期和复位。.软件设计、中断时钟流程图中断服务程序流程图如下图所示。流程图分析:由中断查询当有中断请求时,及进行现场保护,保护断点,将定时器赋初值,且开定时器便于计数,且赋值50000,当中断进行20次刚好一秒,当秒计数60时便向分进位,当分计数60时,向时进位,当时到24时,清零,及恢复现场。.温度子程序流程图温度显示流程图如下图所示。流程图分析:开始进入初始化DS18B20,就是通过主机拉低单线产生复位脉冲然后释放该线,如果有应答脉冲,及发起ROM命令当成功的执行操作命令后,就使用内存操作命令,即温度转换等,当转换完后,又初始化DS18B20是否有应答脉冲,若有,就发起读时隙命令,既同时读出第1,2个字节,既为温度的数据。万年历流程如下图所示。流程图分析:开始既当日加一天,同时星期也就相应的加1,看星期是否加到7,若加到了7,就返回到1,若没有就返回到时钟状态,当日加到相应的最大数时,月分就相应的加1,看月份是否加到了13, 若没有到13,就一直等待,若到了13就返回1,且年份就加1,当年份到2099时就清到2005年,若没有,就一直等待,直到2099为止。4.3 工程文件其中protues软件生成工程文件主要有Keil软件生存的工程文件主要有4.4小结软件的设计和仿真的设计很重要,尤其是软件的设计,需要很好逻辑思维,使各个模块程序都有清晰的思路,软件的设计也要与仿真图结合起来,因此仿真的设计也是要很好的逻辑思维,要布置好原件的位置,接好端口,总得来说系统的仿真与软件设计需要较强的逻辑思维,需要很清晰的思路,这样设计软件才能更容易,而不会把自己搞得晕头转向。5.系统调试与组装一、KEIL uVision3简介8051开发工具 KEIL C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision3的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision3 IDE可为它们提供单一而灵活的开发环境。 C51 V7版本是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。因此,C51 V7版本无疑是8051开发用户的最佳选择。 二、uVision3集成开发环境 (1)、项目管理 工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。 一个单一的uVision3工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。 uVision3包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定 微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特 性。 uVision3可以为片外存储器产生必要的连接选项:确定起始地址和规模。 (2)、集成功能 uVision3的强大功能有助于用户按期完工。 1.集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。 2.文件寻找功能:在特定文件中执行全局文件搜索。 3.工具菜单:允许在V3集成开发环境下启动用户功能。 4.可配置SVCS接口:提供对版本控制系统的入口。 5.PCLINT接口:对应用程序代码进行深层语法分析。 6.Infineon的EasyCase接口:集成块集代码产生。 7.Infineon的DAVE功能:协助用户的CPU和外部程序。DAVE工程可被直接输入uVision3。三、Proteus简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision3等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本章介绍Proteus ISIS软件的工作环境和一些基本操作。1.进入Proteus ISIS双击桌面上的ISIS 6 Professional图标或者单击屏幕左下方的“开始”“程序”“Proteus 6 Professional” “ISIS 6 Professional”,出现如图4.1所示屏幕,表明进入Proteus ISIS集成环境2.工作界面Proteus ISIS的工作界面是一种标准的Windows界面,如图4.2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。四、软件调试软件调试的任务是利用ISIS开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现仿真结果故障。程序的调试应一个模块一个模块地进行,我们首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来总调。联调需要注意的是,各程序模块间能否正确传递参数,特别要注意各子程序的现场保护与恢复。调试的基本步骤如下:(1)、修改显示缓冲区内容,屏蔽拆字程序,调试动态扫描显示功能。例如将DISP0DISP5单元置为“012345”,应能在LCD上从左到右显示“012345”。若显示不正确,可在中断子程序相应位置设置断点调试检查。然后修改计时缓冲区内容,调用拆字程序,调试显示模块。 (2)、运行主程序调试模块,不按下任何键,检查是否能开始正确显示。若不能正确显示,则应在定时器中断服务子程序中设置断点,检查HOUR、MIN、SEC单元是否随断点运行而变化。然后屏蔽缓冲区初始化部分,用仿真器修改万年历显示缓冲区内容为2013年5月27日09时52分00秒,运行主程序(调进位键),检验能否正确进位,以及试调时间看能否正确的进位,以及温度显示。(3)、调试键盘扫描模块,先用延时5ms子程序代替显示子程序延时消抖,在求取键号后设置断点,中断后观察A累加器中的键号是否正确;然后恢复用显示子程序延时消抖,检验与显示模块能否正确连接。(4)、调试时间设置模块。首先屏蔽COMB子程序,单独调试键盘设置模块,观察显示缓冲区DISP0DISP5单元的内容是否随键入的键号改变,以及键号能否在LCD上显示。然后屏蔽子程序,单独调试合字模块。(5)、运行主程序联调,检查能否用键盘修改当前万年历,时间,以及温度能否正确显示。5.1 PCB板5.2 样机调试设计原理图定义元件封装PCB基本图纸设置生成网络表和加载网络表元件布局布线规则设置手动或自动布线编译5.3 样机功能通过LCD1602显示出日历、年、月、日、时、分、秒,且时间不停的在运行,还显示出温度,通过按键的按键不同LCD显示也不同。5.4 发挥部分测试结果5.5 小结通过本次画板PCB让我了解基本的pcb画法的步骤、不仅仅要提前阅读相关设计所需要的元件资料,还要非常的了解,因为在编写程序是要用到芯片的资料。在PCB时也要知道他的外围的体型、边框的长度和宽、高。设计时要要考虑的他的可行性、以及他的美观。他的大小。要尽量的小。布线的宽度要适宜。6. 结论这次的实验对从我们来说很兴庆,从这次的实验中,让我们更加了解和掌握单片机结构以及液晶内部的结构,提高我们编程的能力,理解软件对硬件的控制以及硬件对软件的制约。本次设计的重点在于定时中断的合理使用,各相互独立的程序通过有机的组合,来完成所需功能则是本次设计的精妙之所在,也正是因为此,深刻领悟到“实践出真知”这句俗语。其实有好多的知识需要在一步一步的实际动手当中慢慢地体会,慢慢地学习。不能只是想当然怎样就会怎样,还要靠自己亲手去验证它才行在设计的过程中还是会学到不少东西,但是经过这次实验使我对它们有了一定的了解。经过这一次实验我们认识到实验是一门能够提高个人动手能力的一门课程,同时也帮助了我们,怎么样把书本上理论的知识应用到实践中去。通过这次的锻炼,我们不仅动手能力得到了加强,更重要的是学到了很多新的专业技能知识,经验也更加丰富了。我觉得我还有很多不足的地方,如:基本知识掌握不牢固、动手能力不强、知识面不够宽。我争取在以后的学习当中弥补它,不断的完善自己。虽然期间我们遇到了不少的难题,但是经过努力,再大的困难也被我们给一一的解决了。本实验还有很多做的不够好的地方,还望老师批评指正。参考文献中文书:1郭天祥 新概念51单片机C语言教程.入门、提高、开发, 电子工业出版社 2012中文文献2百度文库中:DS1302中文数据手册 DS18B20中文数据手册 LCD1602中文数据手册附录DS1302的部分程序/*函数功能:向1302写一个字节数据入口参数:x*/ void Write1302(unsigned char dat) unsigned char i; SCLK=0; /拉低SCLK,为脉冲上升沿写入数据做好准备 delaynus(2); /稍微等待,使硬件做好准备 for(i=0;i=1; /将dat的各数据位右移1位,准备写入下一个数据位 /*函数功能:根据命令字,向1302写一个字节数据入口参数:Cmd,储存命令字;dat,储存待写的数据*/ void WriteSet1302(unsigned char Cmd,unsigned char dat) RST=0; /禁止数据传递 SCLK=0; /确保写数居前SCLK被拉低RST=1; /启动数据传输delaynus(2); /稍微等待,使硬件做好准备Write1302(Cmd); /写入命令字Write1302(dat); /写数据SCLK=1; /将时钟电平置于已知状态RST=0; /禁止数据传递 /*函数功能:从1302读一个字节数据入口参数:x*/ unsigned char Read1302(void) unsigned char i,dat;delaynus(2); /稍微等待,使硬件做好准备for(i=0;i=1; /将dat的各数据位右移1位,因为先读出的是字节的最低位if(DATA=1) /如果读出的数据是1 dat|=0x80; /将1取出,写在dat的最高位 SCLK=1; /将SCLK置于高电平,为下降沿读出 delaynus(2); /稍微等待 SCLK=0; /拉低SCLK,形成脉冲下降沿 delaynus(2); /稍微等待 return dat; /将读出的数据返回 /*函数功能:根据命令字,从1302读取一个字节数据入口参数:Cmd*/ unsigned char ReadSet1302(unsigned char Cmd) unsigned char dat; RST=0; /拉低RST SCLK=0; /确保写数居前SCLK被拉低 RST=1; /启动数据传输 Write1302(Cmd); /写入命令字 dat=Read1302(); /读出数据 SCLK=1; /将时钟电平置于已知状态 RST=0; /禁止数据传递 return dat; /将读出的数据返回/*函数功能: 对1302进行写设置和写数据*/ void Init_DS1302(void) WriteSet1302(0x8E,0x00); /1302进行初始化,根据写状态寄存器命令字,写入不保护指令 WriteSet130

温馨提示

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

评论

0/150

提交评论