天津大学智能装置课程设计电子时钟.docVIP

天津大学智能装置课程设计电子时钟.doc

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
智能装置课程设计 一.课程设计目的: 1.深入了解PIC16F877单片机的工作原理,熟练掌握汇编语言程序设计方法,熟练使用MPLAB-ICD仿真器及MPLAB-IDE仿真调试软件。 2.通过该课程设计使学生初步掌握以单片机为核心的智能装置设计的简单原则、步骤和方法。 3.熟悉智能装置设计中有关的硬件设计调试,如人机界面等。 4.熟悉智能装置设计中相关软件的设计、编程和调试。 二.课程设计内容 1.以16F877单片机为核心,结合给出的其他原器件和智能装置实验系统原有的内容设计电子时钟硬件电路电路。 2. 利用实验板上的半导体温度传感器和四个独立按键,温度传感器按其原理介绍采集,时钟利用液晶显示器进行显示。 3.时钟按照时分秒、温度以及年月日显示,并可以利用按键逐位进行修改设置。 4.利用PIC16F877自带EEPROM进行掉电保护(选做)。 三.课程设计要求: 1.根据实验指导书的设计内容及和智能装智实验系统所给出的元件,设计电子时钟的硬件原理图。 2.按照设计好的硬件原理图在实验系统上用导线搭建硬件电路。 3.用万用表检查硬件电路连接是否正确,检查无误后上电并编制简单的测试程 序分步调试各部分功能。 4.在各部分功能实现后,编制完整的电子时钟系统软件,并进行软硬件联调,直到达到设计要求。 5.按照设计内容要求测试仪表误差并做分析,给出仪表精度,完成后由教师进行验收检查。 四.课程设计设备 仪器: MPLAB-ICD模块与仿真头 智能装置实验系统 安装了MPLAB-IDE开发软件的计算机 数字万用表 导线若干 五.课程设计硬件原理图: 七.课程设计硬件设计思路: 电子时钟的硬件接线比较简单,复杂之处在于程序的设计,需要外部连接的硬件只有LCD液晶显示屏以及按键。 1.LCD屏写数据是串行输入,所以产生时序的问题。LCD显示输出采用手动时钟完成,这样便于控制时序,且传送字符时的传输效率比较高,当采用其他总线传送方式的时候,由于计算机在传送每个字节前也会加上相应的头部,这样与LCD所要求的时序不符,控制需要三条线,一条时钟线,一条数据线,一条片选线,三条线互相配合保证将数据正确写入LCD的数据缓冲区。所以使用三条I/O端口线向LCD写数据,选用RD0~RD2控制,其中RD0接CS端,RD1接CLK,RD2接SID。 2.四个按键分别与RC0.RC1.RC2.RC3相连,按键低电平有效,采用扫描方式判断哪一个按键按下。 八.调试步骤以及各步骤调试过程中出现的问题与解决方法: 1.LCD输出调试:由于所有实验现象都要在LCD屏显试才能看到,所以这是首先要调试好的一个程序。最初接线完成之后没有显示,先确定了一遍接线没有问题,进而检查程序。首先进行调试的是写命令子程序,方法就是将显示状态开/关的控制字设置成显示光标,如果这句控制字能够成功写入,屏幕上将有一个光标,则至少时钟书写命令程序是正确的,经试验写命令程序时正确的,后来在检查写数据程序时发现时首地址设错了,上行是80H到87H,我们给的首地址是89H,改变地址后输出正常。后来又产生一个问题就是在输出多个字的时候容易产生乱码,我们的解决方式是每写完一条指令后需要加一段短延时,大致在20ms左右,这样保证屏幕完成指令接收,并保证下一条指令可以正确写入。 2.二进制转BCD模块调试:由于只有将LCD输出模块与二进制转BCD码程序调试成功,才能看到实验现象进而调试其他模块,所以首先要将二进制转BCD码程序调试成功。此子程序采用了简单的加三移位算法,方法是结果字节首先清零,然后待转换字节向左移动8次,每次移动后都检查第四位LSD加3是否大于7,如果是则加3,否则不加,高四位MSD做同样处理。如果是要变换双字节的16位二进制,则要将待转换字节左移16次。在调试过程中整体比较顺利。 3.时分秒计时模块:在调试本模块的过程中,出现了时间已到60秒但是分钟数没有进位的情况,单步执行后发现是判断语句发生了问题。我们采用了XORLW这个语句,将秒数与60相异或,然后判断零标志位,当秒数到达六十时,异或操作使status寄存器零标志位为1,我们误以为这时候零标志位为零,所以判断语句用反,将BTFSS用成BTFSC,改正后,时分秒计时子程序正常工作。 4.年月日模块:这是程序中最为复杂的程序因为年月日计时子程序不仅仅要解决进位的问题,在每个月都要分清不同的天数,还有平闰年的问题,所以这部分子程序最为复杂。在日期数加一之前首先要确定本月月数。为了使程序具有更高的可读性,在编辑程序时舍弃了那些逻辑复杂的简便月份判断方法,如是不是1,3,5,7

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档