PIC单片机课程设计_第1页
PIC单片机课程设计_第2页
PIC单片机课程设计_第3页
PIC单片机课程设计_第4页
PIC单片机课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

NORTH CHINA UNIVERSITY OF SCIENCE AND TECHNOLOGY单片机课程设计报告学生姓名: 王文帅 学 号: 201214570405 学 院: 信息工程学院 专业班级: 12 级电信四班 指导教师: 崔博 2015 年 06 月 21 日PIC 单片机课程设计报告- 1 -一、课程设计目的本课程设计是在PIC单片机原理及应用及单片机C语言编程课程的基础上,通过硬件设计、软件编程及仿真调试的实践,进一步掌握PIC单片机的应用方法,熟练掌握PICC C语言程序的编写与调试,是毕业设计前的一次重要实践,为今后走上工作岗位打下坚实的单片机应用基础。二、设计题目及要求2.1 设计题目:基于PIC16F877单片机的多功能电子时钟2.2 功能实现:实时时钟显示,时间可调;实时温度显示,并具有超限报警功能。输出显示采用LCD1602或LED七段数码显示器。2.3 设计要求:自己设计硬件和程序编程,画出完整的电路原理图,用Multisim或Proteus仿真,最终可实现脱机运行。三、设计原理说明3.1 时钟模块DS1307是美国DALLAS公司推出的I 2C总线接口实时时钟芯片,它可独立于CPU 工作,不受CPU主晶振及其电容的影响,且计时准确,月累积误差一般小于10秒。芯片还具有主电源掉电情况下的时钟保护电路,DS1307的时钟靠后备电池维持工作,拒绝CPU对其读出和写入访问。同时还具有备用电源自动切换控制电路,因而可在主电源掉电和其它一些恶劣环境场合中保证系统时钟的定时准确性。DS1307具有产生秒、分、时、日、月、年等功能,且具有闰年自动调整功能。同时,DS1307芯片内部还集成有一定容量、具有掉电保护特性的静态RAM,可用于保存一些关键数据。3.2 显示模块如用LCD1602作为显示设备,要求显示屏分两行显示,第一行显示日期(年-月-日)和星期,第二行显示时间(时:分:秒)和温度。显示秒由00一直加到59,分钟数也由00加到59,小时采用24小时制,由00加到23,如此循环显示。PIC 单片机课程设计报告- 2 -3.3 按键模块按键用来作为时间调整。要求至少设计4个按键,按键1作为设置键;按键2、按键3分别为增加、减少键,在设置键按下时,此两个按键方有效;按键4是确定键,在设置键按下时方才有效。3.4 温度采集模块DS18B20是美国DALLAS公司推出的单总线数字温度传感器。DS18B20内部集成了温敏元件、数据转换芯片、存储器芯片和计算机接口芯片等多功能模块。其主要技术特点有:具有独特的单线接口方式;可以通过数据线供电,具有超低功耗工作方式;测温范围为-55125,测温精度为0.5;温度转换精度912位可编程,直接将温度转换值以二进制数码的方式串行输出。四、硬件原理图(含原理图、电路仿真图)时间显示:PIC 单片机课程设计报告- 3 -按下温度键 temp 后显示温度:PIC 单片机课程设计报告- 4 -五、软件设计(含流程图、带注释的程序清单)#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 RA2PIC 单片机课程设计报告- 5 -/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 RC7extern unsigned char DateTime;extern char WEEK4= “SUN“,“MON“,“TUS“,“WEN“,“THU“,“FRI“,“SAT“;/0,1,2,3,4,5,6 分别对应周日,周一至周六/所读取的日期时间(秒,分,时,日,月,星期,年)unsigned int temper;unsigned int settempe = 570 ;unsigned char DateTime 7;unsigned char tmp=“0000“;/向 DS1302 写入一个字节unsigned char RB1_FLAG = 0;const unsigned char tone=108,102,91,86,77,68,61,57;/发声的频率常数PIC 单片机课程设计报告- 6 -void delay18us(unsigned char x) /18us,每次加 1,增加 9usunsigned char i;for(;x0;x-) for(i=0;i0;x-)for(i=0;i4)*10 + (dat/从 DS1302 指定位置读数据unsigned char read_data(unsigned char addr)unsigned char dat;RST = 1;write_byte_to_DS1302(addr);dat = get_byte_form_DS1302();RST = 0;return dat;/向 DS1302 指定地址写数据void Write_DS1302(unsigned char addr,unsigned char dat)RST = 1;write_byte_to_DS1302(addr);write_byte_to_DS1302(dat);RST = 0;void port_init()ADCON1 = 0X06; /RA 设置为普通 IO 口TRISA = 0X00; /端口 A 设置为输出OPTION = 0X00; /端口 B 弱上拉使能TRISB = 0xFF;PIC 单片机课程设计报告- 8 -PORTC = 0X00;TRISC = 0X00; /端口 C 设置为输出PORTD = 0X00;TRISD = 0X00; /端口 D 设置为输出speak=0;void song(unsigned char x)unsigned char i,j;for(i=0;i60;i+)for(j=0;j3;j+)speak = 1;delay18us(tonex);speak = 0; /翻转发声delay18us(tonex);void keyscan()unsigned char a ,b ;DateTime0=0;Write_DS1302(0x8E,0x00); /Write_DS1302(0x80,0x80); / if(RB2=0) /小时+1PIC 单片机课程设计报告- 9 -DateTime2 = DateTime2+1; /第三个元素小时+1if(DateTime2 = 24) DateTime2= 0;/当变为 24H 时,小时位归零a = DateTime2/10*16+DateTime2%10; /变成 16 进制数据Write_DS1302(0x84,a);if(RB3=0)DateTime1 = DateTime1+1; /第二个元素分钟+1if(DateTime1 = 60) DateTime1= 0;/当变为 60min 时,小时位归零b = DateTime1/10*16+DateTime1%10; /变成 16 进制数据W

温馨提示

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

评论

0/150

提交评论