PIC单片机课程设计报告重点.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NORTH CHINA UNIVERSITY OF SCIENCE AND TECHNOLOGY 单片机课程设计报告 学生姓名: 王文帅 学 号: 座机电话号码0405 学 院: 信息工程学院 专业班级: 12级电信班06 月 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位可编程,直接将温度转换值以二进制数码的方式串行输出。 四、硬件原理图 (含原理图、电路仿真图) 时间显示: 按下温度键temp后显示温度: 五、软件设计 (含流程图、带注释的程序清单) #include #include #include #define _XTAL_FREQ 1000000UL #define speak RC3 #define ON 0 #define OFF 1 #define DQ RB5 //设置数据方向 #define DQ_IN TRISB5 1 //输入 #define DQ_OUT TRISB5 0 //输出 //DS1302引脚定义 #define IO RA1 #define SCLK RA0 #define RST RA2 //DS1302端口数据读写方向 #define SET_IO_RD TRISA1 1 #define SET_IO_WR TRISA1 0 #define LCD_CLS 0x01 #define LCD_HOME 0x02 #define LCD_SETMODE 0x04 #define LCD_SETVISIBLE 0x08 #define LCD_SHIFT 0x10 #define LCD_SETFUNCTION 0x20 #define LCD_SETCGADDR 0x40 #define LCD_SETDDADDR 0x80 #define PORT_LCD_DAT PORTD #define PORT_LCD_CTL PORTC #define TRIS_LCD_DAT TRISD #define TRIS_LCD_CTL TRISC #define RS RC5 #define RW RC6 #define E RC7 extern unsigned char DateTime[]; extern char WEEK[][4] SUN,MON,TUS,WEN,THU,FRI,SAT ;

文档评论(0)

***** + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档