网站大量收购独家精品文档,联系QQ:2885784924

pic单片机课程设计报告毕业论文.doc

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pic单片机课程设计报告毕业论文

NORTH CHINA UNIVERSITY OF SCIENCE AND TECHNOLOGY 单片机课程设计报告 学生姓名: 李恒 学 号: 201214570408 学 院: 信息工程学院 专业班级: 12电信4班 指导教师: 崔博 2015年6月21日 一、课程设计目的 本课程设计是在《PIC单片机原理及应用》及《单片机C语言编程》课程的基础上,通过硬件设计、软件编程及仿真调试的实践,进一步掌握PIC单片机的应用方法,熟练掌握PICC C语言程序的编写与调试,是毕业设计前的一次重要实践,为今后走上工作岗位打下坚实的单片机应用基础。 二、设计题目及要求 2.1 设计题目: 基于PIC16F877单片机的多功能电子时钟 2.2 功能实现: 实时时钟显示,时间可调;实时温度显示,并具有超限报警功能。输出显示采用LCD1602或LED七段数码显示器。 2.3 设计要求: 自己设计硬件和程序编程,画出完整的电路原理图,用Multisim或Proteus仿真,最终可实现脱机运行。 三、设计原理说明 3.1 时钟模块 DS1307是美国DALLAS公司推出的I2C总线接口实时时钟芯片,它可独立于CPU 工作,不受CPU主晶振及其电容的影响,且计时准确,月累积误差一般小于10秒。芯片还具有主电源掉电情况下的时钟保护电路,DS1307的时钟靠后备电池维持工作,拒绝CPU对其读出和写入访问。同时还具有备用电源自动切换控制电路,因而可在主电源掉电和其它一些恶劣环境场合中保证系统时钟的定时准确性。 DS1307具有产生秒、分、时、日、月、年等功能,且具有闰年自动调整功能。同时,DS1307芯片内部还集成有一定容量、具有掉电保护特性的静态RAM,可用于保存一些关键数据。 3.2 显示模块 如用LCD1602作为显示设备,要求显示屏分两行显示,第一行显示日期(年-月-日)和星期,第二行显示时间(时:分:秒)和温度。显示秒由00一直加到59,分钟数也由00加到59,小时采用24小时制,由00加到23,如此循环显示。 3.3 按键模块 按键用来作为时间调整。要求至少设计4个按键,按键1作为设置键;按键2、按键3分别为增加、减少键,在设置键按下时,此两个按键方有效;按键4是确定键,在设置键按下时方才有效。 3.4 温度采集模块 DS18B20是美国DALLAS公司推出的单总线数字温度传感器。DS18B20内部集成了温敏元件、数据转换芯片、存储器芯片和计算机接口芯片等多功能模块。其主要技术特点有:具有独特的单线接口方式;可以通过数据线供电,具有超低功耗工作方式;测温范围为-55℃~125℃,测温精度为0.5℃;温度转换精度9~12位可编程,直接将温度转换值以二进制数码的方式串行输出。 四、硬件原理图 4.1电子时钟原理图 4.2时钟模块 4.3显示模块 4.4按键模块 4.5温度采集模块 4.6电路仿真图 4.6.2实时时钟显示温度显示 4.6.3时间可调,报警可调 4.6.4闹钟功能 4.6.5超限报警 五、软件设计 5.1流程图 5.2源程序 5.2.1程序清单 5.2.2主程序代码 5.2.2.1主函数.c文件 #includepic.h #includemain.h uchar line1_data[]={Electronic Clock}; uchar line2_data[]={ Powered By Me }; void main(void) { ADCON1=0x06; //基本配置PORTA,PORTE设定为数字端口 TRISD=0; //PORTD设置为输出 TRISB0=0; //PORTB0设置为输出 RB0=0; //初始化蜂鸣器RB0(不响) TRISE0=0; TRISE1=0; TRISE2=0; __delay_ms(10); LCD_init(); Init_ds1302(); //初始化ds1302 Key_init();//按键端口初始化 LCD_write_str(0,0,line1_data);//在第0行显示字符串 LCD_write_str(0,1,line2_data);//在第一行显示字符串 __delay_ms(3000); LCD_clr(); while(1) { Display_Time();//显示时间 Display_wendu();//显示温度 KeyScan();//按键扫描函数 if(temp1warning_temp) { RB0=1; _

您可能关注的文档

文档评论(0)

海纳百川 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档