好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

课程设计(论文)--基于PIC16F887单片机的数字钟课程设计报告.docx

10页
  • 卖家[上传人]:ss****gk
  • 文档编号:233334155
  • 上传时间:2022-01-01
  • 文档格式:DOCX
  • 文档大小:221.07KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 《Pic单片机》课程设计学生姓名: 学 号: 010900616专业班级: 2009级6班指导教师: 江和 目 录L课程设计题目和要求 32. 设计方案 33. 硬件设计及说明 34. 软件设计及说明 55. 实验验证 86. 实验小结 91.1课程设计的性质和目的《PIC单片机课程设计》是电气工程及其自动化专业及相近专业的一门重要 的专业实践课,本课程在《PIC单片机》课程的基础上,通过硬件设计与软件编 程与调试的实践,进一步掌握PIC单片机的应用方法,熟练PIC单片机的C程序的 编写与调试,是毕业设计前的一次重要的实践,为今后走上工作岗位打下坚实的 单片机应用基础1.2课程设计内容和要求设计一个具有完整功能、有一定工作量与一定难度的单片机应用线路,并绘 制能用于仿真的proteus线路图,编制相应的单片机c语言,分别在proteus仿 真界面和实物板上调试运行正确最后用实物进行运行演示,并写出符合规范的 课程设计报告1. 设计方案利用PIC16F887单片机设计…个万年历,通过IIC通信将DS1307时钟芯片 中的时间用LCD液晶屏显示同时,该设计还兼具闹钟功能和温度显示功能,可 以通过键盘设置当前时间、日期、闹钟。

      2. 硬件设计及说明3. 1硬件设计思路根据所要实现的预期功能,硬件必须要有最小系统模块、LCD显示模块、时 钟模块、闹铃模块、温度模块、按键模块等根据所提供的实验板资料,可以设计如下电路(proteus图):LCD1602288PDA'-VI'j.'TiGSCL X1sourVBAT X2 最小系统包括16F887单片机、复位模块、4M外部晶振、排针等部件组成如下 最基本电路,其中芯片供电的引脚略去本课设板所用的单片机为PIC16F887, 是877A的升级,其主要参数与887A类似,但使用更为灵活、有的参数更为细化 (如异步通信的波特率为双字节),而价格比887A更低,887引脚与877A兼容.RE3/MCLR/VPPRCornoso/TiCKiRC1/T1OSI/CCP2RA0/AN0/ULPWU/C12IN0-RC2/P1A/CCP1RA1/AN1/C12IN1-RC3/SCK/SCLRA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDARA3/AN3/VREF+/C11N+RC5/SDORM/T0CK1/C1OUTRC6fTX/CKRA5/AN4/SS/C2OUTRA6/OSC2/CLKOUTRC7/RX/DTRA7/OSC1/CLKINRDORD1RB0/AN12/INTRD2RB1/AN10/C12IN3-RD3RB2/AN8RD4RB3/AN9/PGM/C12IN2-RD5/P1BRB4/AN11RD6/P1CRB5/AN13THG-RB6/ICSPCLKRD7/P1DRB7/ICSPDATRE0/AN5RE1/AN6RE2AN70.1R210k26RA6I 1 X1C1lOu_一C3J I1 120p:333435373839403. 3 LCD显示模块如图所示,为了节省I/O □,采用4位接线法,RD 口的低四位和LCD的高4 位连接,RD7用于背光显示(RD7=1), RD4、RD5、RD6用于读写和使能控制.上电 后要延时15ms后,才能进行初始。

      选用始终芯片DS1307,温度芯片TC74,皆通过IIC和单片机通信,时钟芯片 带备用3V电池,电阻RA4和RA5设置为数字电阻DS1307是实时时钟芯片,它提 供秒、分、时、日、月、、年和星期等数据,并能自动计算闰年至2100年通常 时钟芯片是要接备用电池,当主电源掉电时,备用电源为DS1307提供维持电源, 此电源只供DS1307使用,此时时钟仍正常运行,时钟晶振是典型的32. 768kHzo3.5闹铃模块闹铃模块是一个简单的喇叭通过放大器、限流电阻与16F887单片机连RC1 接,通过单片机CCP2模块产生PWM使喇叭响起 采用普通按键实现时间和闹钟的修改、设定,MODE键实现模式切换,SET实 现位置的选择,其他两个按键是加减功能按键可以采用电平中断,此时注意按 下和放开都可能产生中断,也可以采用查询方式实现3. 软件设计及说明4. 1程序设计思路初始化程序成功后,循环从时钟芯片、TC74里面读出数值并显示,判断时间 是否为闹钟时间,同时通过查询的方式判断按键是否按下并进行相应的操作可 以通过查询的方式修改时间和闹钟,并且把闹钟的设定值显示在LCD屏幕上4. 2主函数流程图和程序4. 3显示模块初始化模块后,通过指令:LCD_WRITE(LINEX+Y, COM);LCD_WRITE(STR, DAT);实现LCD的写和显示,LINEX表示X行,Y表示X行的第Y个字符,STR代表字 符的对应码值,COM表示写指令,DAT表示写数据。

      4.4时钟和温度模块始终和温度模块的实现首先要进行正确的IIC初始化:void IIC_CSH()时钟程序要通过编写和调用始终读写子程序实现:void write_DS1307(char addr, char data)void READ DS1307(char addr, char n)从时钟芯片读出的是BCD码,需要进行转换才可以送入LCD显示至于温度模块是比较简单的,设置好好就只需要定时从里面读数显示即可显示温度需要注意当其值为负数时候需要进行取补码再显示,同时显示负号4. 5闹铃模块MODE键可以进行模式切换,当M=1时是时间设置模式,当M=2时是闹钟设置 模式,为了确定主函数的循环体是否需要从DS1307读写数,必须设置一个flag 标志位,当M=1或0时,flag=0,执行DS1307的读和显示;否则跳过,只进行 闹铃设置,确保设置闹铃时候屏幕的数不会一直变化当sect、hourt> mint 与时钟芯片匹配时候开PWM程序,按任意键退出闹钟这段程序比较有技巧,稍 不注意就会出错: void clock () { if(!mod| !set| !add| !miu)(delaynms(30);if(!mod||!set| !add||!miu);CCP2C0N=0b00000000; 〃关PWM模式,按任意键退出}如上程序,比较时候要先比较秒,否则无法匹配,无法输出PWM.4. 6按键模块采用查询方式的按键模块,要特别注意延时消抖和按键释放检测,M作为模 式切换的标志位,a作为位置确定位,add、miu实现加减。

      一下给出部分检测消 抖程序:if(mod==0){delaynms (30); 〃消抖if(mod==0){while(!mod) ;//等待按键释放M++;if (M==3){ M=0;flag=0;f=0;5, 实验验证5. Iproteus仿真验证把写好的程序进行仿真,并不断修改程序,最终程序基本实现了预期的功能仿真结果如下:I LM016L LCD1602th 2012-05-04 Fritil 16:13:40 023°C阳2出心 OlZE寸S9Z> > > CC 沱山 R' 1k-T—CNE寸L1Jg-8iZTi-CNE T—寸XXcXXX—\7hO T- CN 005. 2实验室调试用PIC16F887实验板,通过PIC3连接,进行调试和脱机运行,发现问 题问题一:无法显示时间和温度,IIC通信停止解决办法:TC74仿真和实物的地址不一样,只需把地址1001101改为1001000问题二:按键调整时光标没有和仿真一样闪动解决办法:由于程序刷新太快,人眼无法分辨,所以只需在按键后面加50ms 的延时即可问题三:不能掉电保护,每次脱机或者复位都会进行时钟初始化解决办法:DS1307初始化前先进行判断秒的最高位是否为1,为1则进行初 始化问题四:上电了喇叭就能会响解决办法:闹钟判断程序修改如下原程序:BCD(sect);i f (SW== (A [0] »4) &&GW== (A [0] &0x0F))BCD(mint);i f (SW== (A[l]»4) &&GW== (A [ 1 ] &OxOF))BCD (hourt);if (SW== (A[2]»4) &&GW== (A [2] &0x0F))CCP2C0N=0b0000U00; 〃开 PWM 模式修改后:BCD (sect):if (SW== (A[0]»4) &&GW== (A [0] &0x0F))(BCD(mint);i f (SW== (A[l]»4) &&GW== (A [ 1 ] &0x0F))(BCD (hourt);if (SW== (A[2]»4) &&GW== (A [2] &0x0F))CCP2C0N=0b0000U00; 〃开 PWM 模式}6. 实验小结本次课程设计,收获颇多。

      通过本次课程设计,加深了我对单片机的理解, 提高了编程能力、动手能力、分析问题和解决问题的能力,同时也多学了很多知 识,补充了课内没有涉及的很多知识数字时钟的成功设计也激发了我对单片机 的浓厚兴趣,积累了一定的设计经验认真编写程序和做好注释与备份就是在节 省时间,模块换编程才比较简单可靠,同时最终的结果要以实物的实际情况为准 在编程和调试过程中遇到的很多问题,培养了我细心、耐心、严谨的精神,虽然, 很多时候调试程序到深夜,但当看到自己的成果一点一点出来的时候,成功的喜 悦和满足早已洗去了疲劳参考书目:[1] 《PIC16系列单片机C程序设计与PROTEUS仿真》江和,北京航空航天大学出版社,2010[2] 《福州大学PIC单片机课程设计指导书》江和,鲍光海,2012年3月。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.