版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、系统的结构和工作原理1.系统结构 此次课程设计的万年历,以AT89S52单片机为主控核心,由LCD显示屏、DS12C887时钟芯片、温度传感器DS18B20、蜂鸣器、功能键盘、复位电路、晶振、电源模块等组成,系统结构框图如图1所示。图1 系统结构框图2.工作原理主控制器每隔一段时间(小于一秒钟)读一次时钟芯片的内部寄存器的值,将读出的时间、星期、温度等值实时显示在LCD液晶屏上。同时,主控制器不断的扫描按键电路和温度测量电路,当有按键按下时,识别出按键的值并调整相应的时间、星期值再写入时钟芯片内部。温度数据由测量电路获得的环境温度值送人显示电路。二、硬件设计1.主控核心AT89S52单片机
2、AT89S52是一个低功耗,高性能CMOS8位单片机,具有8K 在系统可编程Flash 存储器。采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。2.DS12C887时钟电路DS12C887与计算机常用的时钟芯片MC146818和DS12887管脚兼容,可直接替换。采用DS12C887芯片设计的时钟电路无需任何外围电路和器件,并且有良好的微机接口。DS12C887芯片内有微功耗,外围接口简单,精度高,工作稳定可靠等优点,广泛用于各种需要较高精度的实时时钟系统中。DS12C887主要功能如下:(1)内含一个锂电池,断电后运行十年以上不丢失数据;(
3、2)计秒、分、时、天、星期、日、月、年、并有闰年补偿功能;(3)二进制数码或BCD码表示时间,日历和定闹;(4)12小时或24小时制,12小时时钟模式带有PM和AM指示,有夏令时功能;(5)Motorola和Intel总线时序选择;(6)有128个字节RAM单元与软件接口,其中14个字节作为时钟和控制寄存器,114 字节为通用RAM,所有RAM单元数据都具有掉电保护功能;(7)可编程方波信号输出;(8)中断信号输出(IRQ)和总线兼容、定闹中断、周期性中断、时钟更新周期、结束 中断可分别由软件屏蔽,也可分别进行测试;DS12C887时钟芯片和单片机的硬件连接如下图2 :图2 DS12C887与
4、单片机的连接3.DS18B20温度传感器采用数字式温度传感器DS18B20,其仅需一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。DS18B20特性如下:(1) 独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处 理器与DS18B20的双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围:+3.0+5.5 V。(4)测温范围:-55 +125 。固有测温分辨率为0.5 。(5)通过编程可实现912位的数字读数
5、方式。(6)用户可自设定非易失性的报警上下限值。(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 DS18B20芯片的连接如下图3所示:图3 DS18B20连接电路4.LCD1602显示屏本设计采用1602字符型LCD,可显示两行,每行16个字符,不能显示汉字,内置含128个字符的ASCII字符集字库,只有并行接口,无串行接口。 单片机的P2口与LCD的数据端口连接,用于数字信号的读取,控制端RS 、R/W分别与单片机的P3.3和P3.1相连。电路连接如图4所示。图4 1602LCD硬件电路
6、5.其它硬件电路蜂鸣器电路:为了实现闹钟功能,选择蜂鸣器作为闹铃。采用PNP型9015三极管,发射极e脚连接+5V,基极b脚连接10K电阻后接到单片机P1.6口上,c脚连接蜂鸣器。电路如图5所示。图5 蜂鸣器电路功能键盘:本设计采用了4个键盘,分别实现万年历时间日期的调整键、闹钟设置键、增加键(也为闹钟开启键)、减小键组成,分别连接P1.0P1.3口。复位电路:89S52的复位输入引脚RST为其提供了初始化的手段,可以使程序从指定处开始执行,在MCS-52的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作.只要RST保持高电平,则MCS-52循环复位.只有
7、当RST由高电平变低电平以后,MCS-52才从0000H地址开始执行程序.本系统采用按键复位方式的复位电路。电源电路:电路采用5V电源进行供电,为了得到稳定的直流电源,通过电源处理电路进行调理,得到稳定电压。三、软件设计本次系统设计软件部分采用模块化结构,由主程序DS12C887子程序、DS18B20子程序、LCD1602子程序构成。模块程序设计法的主要优点是:单个模块比起一个完整的程序易编写及调试;模块可以共存,一个模块可以被多个任务在不同条件下调用;模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。1.主程序说明及流程图主程序主要实现了从DS12C887各时间单元中读出数据和DS
8、18B20传感器中读取数据,并送到LCD1602中显示的功能,同时检测有没有按键按下,如果有键被按下,则执行按键处理子程序。首先进行DS12C887时钟芯片、DS18B20芯片和LCD1602的初始化函数,然后进行按键扫描,不断地检测按键是否按下,读取DS12C887时钟芯片、DS18B20检测环境温度的数据,并且送到液晶显示器显示;当数据发生变化时候,重新进行扫描写入。主程序流程图如图6。图6 主程序流程图2.DS12C887流程图及初始化程序进入主程序后,DS12C887首先进行初始化设置,若串行口有数据,最后则调用函数从日历时钟芯片获取日历时钟信息,调用显示函数显示日历时钟信息显示出来,
9、重复进行。这部分包括DS12C887某个单元写、读DS12C887某个单元的内容和DS12C887设定时间。DS12C887的流程图如图7所示。开始 DS12C887初始化 调用函数获取时钟信息 送数据显示 图7 DS12C887的流程图DS12C887的子程序:#ifndef DS12C887_H #define DS12C887_H #include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit fm=P14;sbit ds_as=P35;sbi
10、t 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;uchar ds_read(uchar add) /从DS12C887读数
11、据的函数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_write(2,59);ds_write(3,0);ds_wri
12、te(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;#endif3.DS18B20流程图及初始化程序 进入主程序后,DS18B20首先进行初始化设置,然后
13、通过对环境温度的检测,调用显示函数显示温度信息,重复进行。DS18B20的流程图如图8所示。开始 DS18B20初始化 检测环境温度获取信息 送数据显示 图8 DS18B20的流程图 DS18B20的子程序:#ifndef DS18B20_H#define DS18B20_H#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit ds18b20=P16;uchar flag2/*零下标志位*/;void delay1(uint z) /DS1
14、8B20 延时函数uint i;while(z)i=200;while(i>0)i-;z-;void dsreset() /发送复位和初始化uint i;ds18b20=0;i=103;while(i>0)i-;ds18b20=1;i=4;while(i>0)i-;bit tmpread_bit() /读取数据的一位uint i;bit dat;ds18b20=0;i+;ds18b20=1;i+;i+;dat=ds18b20;i=8;while(i>0)i-;return dat;uchar tmpread_byte() /读一个字节uchar i,j,dat;dat=
15、0;for(i=1;i<=8;i+)j=tmpread_bit();dat=(j<<7)|(dat>>1);return dat;void tmpwrite(uchar dat) /写一个字节uint i;uchar j;bit testb;for(j=1;j<=8;j+)testb=dat&0x01;dat=dat>>1;if(testb) /写“1”ds18b20=0;i+;i+;ds18b20=1;i=8;while(i>0)i-;else /写“0”ds18b20=0;i=8;while(i>0)i-;ds18b20=
16、1;i+;i+;void tmpchange() /DS18B20开始转换dsreset();delay1(1);tmpwrite(0xcc);tmpwrite(0x44);uint read_tmp() /读取温度uchar a,b;uint t;float tt;dsreset();delay1(1);tmpwrite(0xcc);tmpwrite(0xbe);a=tmpread_byte();b=tmpread_byte();t=b;t<<=8;t=t|a;if(t<0x0fff)flag2=0;elseflag2=1;t=-t;tt=t*0.0625;t=tt*10+
17、0.5;return t;/*void rom() /读取期间序列号子程序/uchar i;uchar sn1,sn2;dsreset();delay1(1);tmpwrite(0x33);sn1=tmpread2();sn2=tmpread2();*/void display_tem() /显示温度的函数uchar a,b,c,flagdate;uint d;tmpchange();delay1(200);d=read_tmp();a=d/100;b=d%100/10;c=d%10;if(flag2=0)flagdate=0x20;elseflagdate=0x2d;write_spe(9,
18、flagdate);write_tem(10,a);write_tem(11,b);write_spe(12,46);write_tem(13,c);write_spe(14,223);write_spe(15,'C');#endif 四、个人心得及总结 通过这次的课程设计使我:掌握智能数字万年历系统的基本设计方法;熟悉智能数字万年历系统的电路接口设计及常用的通信接口器件应用;熟练应用PROTEL99进行电路图的绘制。理解数据采集处理模块、DS12C887时钟模块、RS232串口通信模块、键盘模块、点阵模块、数码管模块等接口应用。课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,这次课程设计虽然很累,但我学到了很多东西,对软件的设计过程和方法有了更深入的了解,培养了我们的团队精神,锻炼了我们的沟通和表达能力。通过这次的课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的。只有把理论知识与实践相结合起来,才能真正的为社会服务,从而提高自己的实际动手能力和独立思考能力。这次课程实际,使我们在基本理论的综合应用及正确解决实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 崇明县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解参考
- 2026年清远市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)(含答案详解)
- 2026年武威市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(达标题)
- 2026年省属虚拟市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(典优)
- 2025年特种作业人员考试(煤矿采煤机操作作业)全真模拟试题及答案
- 2025年特种设备检验人员资格考试(起重机械检验师QZS)复习题及答案
- 体育与健康知识试卷及答案
- 2026年马鞍山市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(典优)
- 2025年云南省特种作人员取证培训以及特种设备作业人员取证培训考试制冷与空调设备安装修理作业复习题及答案
- 2025年全国特种设备检验检测人员专业培训考试压力容器检验师复习题库及答案
- 《艺术概论》考试复习题库(附答案)
- 《汉语拼音》基础知识
- Soreha-Biodex-S4-多关节等速肌力测试训练系统课件
- 派车单(标准样本)
- 混凝土膨胀剂检试验报告
- 村卫生室基本公共卫生服务项目绩效考核指标明细表格模板(参照省级标准)
- 舒伯特的艺术歌曲《魔王》
- 沧州临港仁国化工有限公司30万吨_年高纯液体二氧化碳精制项目环境报告书
- 体育场改造拆除专项施工方案
- 未知碱的测定
- 绿色建筑专项施工方案
评论
0/150
提交评论