单片机课程设计(论文)基于DS12C887时钟芯片的多功能万历设计.doc
《单片机课程设计(论文)基于DS12C887时钟芯片的多功能万历设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计(论文)基于DS12C887时钟芯片的多功能万历设计.doc(18页珍藏版)》请在三一办公上搜索。
1、单片机课程论文基于DS12C887时钟芯片的多功能万年历设计 学生姓名 学 号 院 系 电子与信息工程学院专 业 电子信息工程指导教师 二一一年 六 月 十三 日基于DS12C887时钟芯片的多功能万年历设计 1、 设计目的(1)巩固单片机课程学习知识,熟悉单片机的开发流程。 (2)掌握硬件电路的设计、焊接以及调试的基本能力。(3)掌握单片机编程语言,学会运用模块化的设计思想。(4)培养动手实践能力, 具备设计、开发、应用单片机系统的能力。2、 系统功能(1)自动计时,显示年、月、日、时、分、秒、星期。(2)测试环境温度并显示(3)具备闰年闰月自动补偿功能(4)可设定每日的某一时刻闹钟(5)时
2、间显示可调整3、 系统的结构和工作原理3.1 系统结构 此次课程设计的万年历,以AT89S52单片机为主控核心,由LCD显示屏、DS12C887时钟芯片、温度传感器DS18B20、蜂鸣器、功能键盘、复位电路、晶振、电源模块等组成,系统结构框图如图1所示。图1 系统结构框图3.2 工作原理 主控制器每隔一段时间(小于一秒钟)读一次时钟芯片的内部寄存器的值,将读出的时间、星期、温度等值实时显示在LCD液晶屏上。同时,主控制器不断的扫描按键电路和温度测量电路,当有按键按下时,识别出按键的值并调整相应的时间、星期值再写入时钟芯片内部。温度数据由测量电路获得的环境温度值送人显示电路。4、 硬件设计4.1
3、 主控核心AT89S52单片机AT89S52是一个低功耗,高性能CMOS8位单片机,具有8K 在系统可编程Flash 存储器。采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。4.2 DS12C887时钟电路DS12C887是美国Dallas半导体公司推出的并行接口实时时钟日历芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池,同时它与计算机常用的时钟芯片MC146818和DS12887管脚兼容,可直接替换。采用DS12C887芯片设计的时钟电路无需任何外围电路和器件,并且有良好的微机接口。DS12C887芯片内有微功耗,外围接口简单
4、,精度高,工作稳定可靠等优点,广泛用于各种需要较高精度的实时时钟系统中。DS12C887主要功能如下:(1)内含一个锂电池,断电后运行十年以上不丢失数据;(2)计秒、分、时、天、星期、日、月、年、并有闰年补偿功能;(3)二进制数码或BCD码表示时间,日历和定闹;(4)12小时或24小时制,12小时时钟模式带有PM和AM指示,有夏令时功能;(5)Motorola和Intel总线时序选择;(6)有128个字节RAM单元与软件接口,其中14个字节作为时钟和控制寄存器,114 字节为通用RAM,所有RAM单元数据都具有掉电保护功能;(7)可编程方波信号输出;(8)中断信号输出(IRQ)和总线兼容、定闹
5、中断、周期性中断、时钟更新周期、结束 中断可分别由软件屏蔽,也可分别进行测试;DS12C887时钟芯片和单片机的硬件连接如下图2 :图2 DS12C887与单片机的连接4.3 DS18B20温度传感器采用数字式温度传感器DS18B20,其仅需一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。DS18B20特性如下:(1) 独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处 理器与DS18B20的双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围:+
6、3.0+5.5V。(4)测温范围:-55+125。固有测温分辨率为0.5。(5)通过编程可实现912位的数字读数方式。(6)用户可自设定非易失性的报警上下限值。(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 DS18B20芯片的连接如下图3所示:图3 DS18B20连接电路4.4 LCD1602显示屏本设计采用1602字符型LCD,可显示两行,每行16个字符,不能显示汉字,内置含128个字符的ASCII字符集字库,只有并行接口,无串行接口。 单片机的P2口与LCD的数据端口连接,用于数字信
7、号的读取,控制端RS 、R/W分别与单片机的P3.3和P3.1相连。电路连接如图4所示。图4 1602LCD硬件电路4.5 其它硬件电路蜂鸣器电路:为了实现闹钟功能,选择蜂鸣器作为闹铃。采用PNP型9015三极管,发射极e脚连接+5V,基极b脚连接10K电阻后接到单片机P1.6口上,c脚连接蜂鸣器。电路如图5所示。图5 蜂鸣器电路功能键盘:本设计采用了4个键盘,分别实现万年历时间日期的调整键、闹钟设置键、增加键(也为闹钟开启键)、减小键组成,分别连接P1.0P1.3口。复位电路:89S52的复位输入引脚RST为其提供了初始化的手段,可以使程序从指定处开始执行,在MCS-52的时钟电路工作后,只
8、要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作.只要RST保持高电平,则MCS-52循环复位.只有当RST由高电平变低电平以后,MCS-52才从0000H地址开始执行程序.本系统采用按键复位方式的复位电路。电源电路:电路采用5V电源进行供电,为了得到稳定的直流电源,通过电源处理电路进行调理,得到稳定电压。5、 软件设计本次系统设计软件部分采用模块化结构,由主程序DS12C887子程序、DS18B20子程序、LCD1602子程序构成。模块程序设计法的主要优点是:单个模块比起一个完整的程序易编写及调试;模块可以共存,一个模块可以被多个任务在不同条件下调用;模块程序允许设计者分
9、割任务和利用已有程序,为设计者提供方便。5.1 主程序说明及流程图主程序主要实现了从DS12C887各时间单元中读出数据和DS18B20传感器中读取数据,并送到LCD1602中显示的功能,同时检测有没有按键按下,如果有键被按下,则执行按键处理子程序。首先进行DS12C887时钟芯片、DS18B20芯片和LCD1602的初始化函数,然后进行按键扫描,不断地检测按键是否按下,读取DS12C887时钟芯片、DS18B20检测环境温度的数据,并且送到液晶显示器显示;当数据发生变化时候,重新进行扫描写入。主程序流程图如图6。图6 主程序流程图5.2 DS12C887流程图及初始化程序进入主程序后,DS1
10、2C887首先进行初始化设置,若串行口有数据,最后则调用函数从日历时钟芯片获取日历时钟信息,调用显示函数显示日历时钟信息显示出来,重复进行。这部分包括DS12C887某个单元写、读DS12C887某个单元的内容和DS12C887设定时间。DS12C887的流程图如图7所示。开始 DS12C887初始化 调用函数获取时钟信息 送数据显示 图7 DS12C887的流程图DS12C887的子程序:#ifndef DS12C887_H #define DS12C887_H #include#include#define uchar unsigned char#define uint unsigned
11、intsbit fm=P14;sbit ds_as=P35;sbit ds_wr=P36;sbit ds_ds=P37;sbit ds_cs=P20;sbit ds_irq=P32;char second,minute,hour,asecond,aminute,ahour,day,week,month,year;void ds_write(uchar add,uchar date) /向DS12C887写数据的函数ds_cs=0;ds_as=1;ds_ds=1;ds_wr=1;P0=add;ds_as=0;ds_wr=0;P0=date;ds_wr=1;ds_as=1;ds_cs=1;ucha
12、r ds_read(uchar add) /从DS12C887读数据的函数uchar ds_date;ds_as=1;ds_ds=1;ds_wr=1;ds_cs=0;P0=add;ds_as=0;ds_ds=0;P0=0xff;ds_date=P0;ds_ds=1;ds_as=1;ds_cs=1;return ds_date;void settime() /设定时间初始值的函数第一次上电使用,之后可以屏蔽ds_write(0x0b,0x26); /设置24小时模式,数据二进制格式ds_write(0x0a,0x20); /打开振荡器ds_write(0,55);ds_write(1,0);ds
13、_write(2,59);ds_write(3,0);ds_write(4,23);ds_write(5,0);ds_write(6,5);ds_write(7,1);ds_write(8,1);ds_write(9,9);void setalarm() /将设定的闹钟时间写进DS12C887的函数ds_write(1,asecond);ds_write(3,aminute);ds_write(5,ahour); void beep() /闹钟的声音函数 fm=0;delay(100);fm=1;delay(20);fm=0;delay(100);fm=1;#endif5.3 DS18B20流
14、程图及初始化程序 进入主程序后,DS18B20首先进行初始化设置,然后通过对环境温度的检测,调用显示函数显示温度信息,重复进行。DS18B20的流程图如图8所示。开始 DS18B20初始化 检测环境温度获取信息 送数据显示 图8 DS18B20的流程图 DS18B20的子程序:#ifndef DS18B20_H#define DS18B20_H#include#include#define uchar unsigned char#define uint unsigned intsbit ds18b20=P16;uchar flag2/*零下标志位*/;void delay1(uint z) /
15、DS18B20 延时函数uint i;while(z)i=200;while(i0)i-;z-;void dsreset() /发送复位和初始化uint i;ds18b20=0;i=103;while(i0)i-;ds18b20=1;i=4;while(i0)i-;bit tmpread_bit() /读取数据的一位uint i;bit dat;ds18b20=0;i+;ds18b20=1;i+;i+;dat=ds18b20;i=8;while(i0)i-;return dat;uchar tmpread_byte() /读一个字节uchar i,j,dat;dat=0;for(i=1;i=8
16、;i+)j=tmpread_bit();dat=(j1);return dat;void tmpwrite(uchar dat) /写一个字节uint i;uchar j;bit testb;for(j=1;j1;if(testb) /写“1”ds18b20=0;i+;i+;ds18b20=1;i=8;while(i0)i-;else /写“0”ds18b20=0;i=8;while(i0)i-;ds18b20=1;i+;i+;void tmpchange() /DS18B20开始转换dsreset();delay1(1);tmpwrite(0xcc);tmpwrite(0x44);uint
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 论文 基于 DS12C887 时钟 芯片 多功能 万历 设计
链接地址:https://www.31ppt.com/p-4147721.html