单片机课程设计基于52单片机万年历设计.doc

上传人:wj 文档编号:4861319 上传时间:2023-05-07 格式:DOC 页数:66 大小:3.28MB
下载 相关 举报
单片机课程设计基于52单片机万年历设计.doc_第1页
第1页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第2页
第2页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第3页
第3页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第4页
第4页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第5页
第5页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第6页
第6页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第7页
第7页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第8页
第8页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第9页
第9页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第10页
第10页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第11页
第11页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第12页
第12页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第13页
第13页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第14页
第14页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第15页
第15页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第16页
第16页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第17页
第17页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第18页
第18页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第19页
第19页 / 共66页
单片机课程设计基于52单片机万年历设计.doc_第20页
第20页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计基于52单片机万年历设计.doc

《单片机课程设计基于52单片机万年历设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计基于52单片机万年历设计.doc(66页珍藏版)》请在冰点文库上搜索。

单片机课程设计基于52单片机万年历设计.doc

基于52单片机电子万年历设计

目录

一、摘要·········································································2

二、设计任务···································································3

1、设计任务································································3

2、设计要求································································3

三、总体方案设计与论证························································3

1、液晶显示模块····························································3

2、实时时间计算模块·······················································3

3、实时环境温度采集模块··················································4

4、报警模块·····························································4

5、设置模块·····························································4

四、总体方案组成框图························································5

五、系统硬件设计····························································6

1、LCD显示模块··························································6

2、实时时间计算模块····················································10

3、实时环境温度检测模块···············································13

4、报警模块·····························································18

5、设置模块·····························································19

六、系统软件设计···························································19

七、系统硬件电路设计·······················································21

八、系统硬件PROTEUS仿真原理图············································22

九、系统硬件仿真运行结果图················································22

1、显示欢迎界面·························································22

2、显示实时时间·························································23

3、显示当前温度·························································23

4、时间设置·····························································24

5、最高报警温度设置····················································24

6、闹钟时间设置·························································25

7、超温··································································25

8、闹钟时间到···························································26

十、心得体会及总结·························································27

附录一:

实物图······························································35

附录二:

源程序代码·························································65

附录三:

参考文献···························································66

学校:

西安科技大学

班级:

自动化0703

姓名:

基于52单片机电子万年历设计

1.摘要

单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片。

单片机接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统。

将它嵌入到形形色色的应用系统中,就构成了众多产品、设备的智能化核心。

本设计就是应用单片机强大的控制功能制作而成的电子万年历,该电子万年历包括三大功能:

实时显示年、月、日、时、分、秒;实时监测环境温度(可根据需要启动高温报警功能);电子闹钟。

本设计采用的是AT89S52单片机,该单片机采用的MCU51内核,因此具有很好的兼容性,内部带有8KB的ROM,能够存储大量的程序,最突出特点是具有ISP在系统烧写功能,使得烧写程序更加方便。

计时芯片采用DALLAS公司的充电时钟芯片DS1302,该芯片通过简单的串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时分、秒信息,采用双电源供电,当外部电源掉电时能够利用后备电池准确计时。

温度检测采用DALLAS公司的数字化温度传感器,该芯片采用的是独特的“一线总线”的方式与单片机进行通信,一线总线独特而且经济的特点,是用户可以轻松的组建传感器网络,为测量系统的构建引入全新的概念。

实时温度采用一线总线的方式传输大大的提高了信号的抗干扰性,分辨率可通过软件设置,其小巧的体积为各种环境下测量温度提供了方便。

显示器件采用通用型1602液晶,可显示32个字符,如果使用数码管来做显示器件需消耗大量的系统资源,因此采用低功耗的1602液晶,该液晶显示方便,功能强大,完全能满足数字万年历的显示要求。

通过此次设计能够更加牢固的掌握单片机的应用技术,增强动手能力、硬件设计能力以及软件设计能力。

关键词:

时钟芯片DS1302;温度采集DS18B20;单片机AT89C52;液晶显示1602

2.设计任务

1.1、设计任务:

利用单片机、时钟芯片DS1302、温度传感器DS18B20、1602液晶等实现日期、时间、温度的显示即一个简单的万年历。

1.2、设计要求:

(1)通过DS1302能够准确的计时,时间可调并在液晶上显示出来。

(2)通过DS18B20能够实时、准确的检测当前环境温度。

(3)利用单片机自身功能实现闹钟。

3.总体方案论证与设计

本系统以AT89C52单片机为控制核心,通过与DS1302和DS18B20通信获取实时时间和实时环境温度,并将得到的数据通过1602液晶显示出来,同时通过相应的按键调整相应的值。

因此本设计可分为一下模块:

显示模块、实时时间计算模块、实时环境温度采集模块、报警模块、设置模块(时间设置模块、最高温度设置模块、闹钟设置模块)。

下面对各个模块逐一进行论证分析:

3.1、液晶显示模块

方案

(1):

数码管是利用发光二极管的特性组合而成数字显示器件,通过控制相应的二极管的状态显示相应的数字。

要使数码管正常显示就得有驱动电路驱动相应的段码,数码管的现实方式可分为静态显示和动态显示,静态显示方式只适合显示单个的数字,因此本设计应采用动态显示方式。

由于动态显示方式利用的是人眼视觉暂留的特性,扫描的时间应不大于20毫秒,占用系统资源大,而且显示的个数和字型有限,在本设计中不易采用。

方案

(2):

采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示.

方案(3):

1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。

每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用。

1602的驱动电路带有11条指令,可以很方便的控制液晶的现实效果如:

清屏、左移右移、光标显示。

而且1602显示的字符在下一条指令为到来之前不会改变,也就是能够维持显示的字符,1602液晶占用的系统资源也少。

综合比较上述两种方案,应采用1602液晶组成本设计的显示模块。

3.2、实时时间计算模块

方案

(1):

AT89C52单片机内部带有定时/计数功能,此定时功能是通过对外部晶振的脉冲进行计数,从而达到计时功能,只要使用11.0592的晶振就能实现零误差的计时,因此可以利用此功能实现计时,但因为只有单一的计时功能要实现“万年历”的功能需要较复杂的程序,而且如果单片机掉电无法继续进行计时,所以使用不便。

方案

(2):

DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。

实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。

工作电压宽达2.5~5.5V。

采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。

利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少,程序简单。

综合上述两种方案,宜采用方案

(2)实现实时计时功能。

3.3、实时环境温度采集模块

方案

(1):

热敏电阻是开发早、种类多、发展较成熟的敏感元器件.热敏电阻由半导体陶瓷材料组成,利用的原理是温度引起电阻变化.

通过一定的电路可以将周围环境的温度变化转化成电压的变化,通过AD转化器件将信号传输给单片机进行分析,从而测出当前环境温度,但误差大,不稳定,对环境要求较高。

方案

(2):

DS18B20是美国DALLAS公司生产的数字温度传感器,采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

测量温度范围宽,测量精度高,在使用中不需要任何外围元件,支持多点组网功能多个DS18B20可以并联在惟一的单线上,实现多点测温,供电方式灵活DS18B20可以通过内部寄生电路从数据线上获取电源。

因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。

因此非常适合本系统使用。

综上比较上述两种方案,宜采用方案(3)构成本设计的实时温度采集模块。

3.4、报警模块

此模块采用无源蜂鸣器实现,只要编写相应的程序即可实现发出不同频率的声音。

3.5、设置模块

因设置模块只需编写相应的程序外加相应的按键即可实现,实现方法较简单,在此不再论述。

4.总体方案组成框图

报警模块(蜂鸣器)

显示模块(1602液晶)

AT89C52

实时温度采集模块

(DS18B20)

时间计算模块

DS1302

设置模块

(独立按键)

5.系统硬件设计

5.1、LCD显示模块设计

5.1.1、1602液晶功耗较小可直接与单片机接口相接,电源直接与电源电路相接,使用单片机的P0口和P1口与1602进行通信。

5.1.2、功能特性介绍

n+5V电压,对比度可调

n内含复位电路

n提供各种控制命令,如:

清屏、字符闪烁、光标闪烁、显示移位等多种功能

n有80字节显示数据存储器DDRAM

n内建有160个5X7点阵的字型的字符发生器CGROM

n8个可由用户自定义的5X7的字符发生器CGRAM

5.1.3、介绍

5.1.4、11条指令介绍

(1).清屏指令

功能:

①清除液晶显示器,即将DDRAM的内容全部填入“空白”的字符码20H;

②光标归位,即将光标撤回液晶显示屏的左上方;

③将地址计数器(AC)的值设为0;

(2).光标归位指令

功能:

①把光标撤回到显示器的左上方;

②把地址计数器(AC)的值设置为0;

③保持DDRAM的内容不变;

(3).输入模式设置指令

功能:

设定每次写入1位数据后光标的移位方向,并且设定每次写入的一个字符是否

移动。

参数设定的情况如下所示:

位名              设置

I/D            0=写入新数据后光标左移     1=写入新数据后光标右移

S                0=写入新数据后显示屏不移动1=写入新数据后显示屏整体右移1个字

(4).显示开关控制指令

功能:

控制显示器开/关、光标显示/关闭以及光标是否闪烁。

参数设定的情况如下:

位名              设置

D                0=显示功能关          1=显示功能开

C                0=无光标                  1=有光标

B                0=光标不闪烁              1=光标闪烁

(5).设定显示屏或光标移动方向指令

功能:

使光标移位或使整个显示屏幕移位。

参数设定的情况如下:

S/C              R/L                设定情况

0                0          光标左移1格,且AC值减1

0                1          光标右移1格,且AC值加1

1                0          显示器上字符全部左移一格,但光标不动

1                1          显示器上字符全部右移一格,但光标不动

(6).功能设定指令(非常重要的指令)

功能:

设定数据总线位数、显示的行数及字型。

参数设定的情况如下:

位名               设置

DL                            0=数据总线为4位1=数据总线为8位

N                              0=显示1行1=显示2行

F                                0=5×7点阵/每字符  1=5×10点阵/每字符

(7).设定CGRAM地址指令

功能:

设定下一个要存入数据的CGRAM的地址。

(8).设定DDRAM地址指令

功能:

设定下一个要存入数据的CGRAM的地址。

(9).读取忙信号或AC地址指令

功能:

①读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF=0时,液晶显示器可以接收单片机送来的数据或指令;

②读取地址计数器(AC)的内容。

(10).数据写入DDRAM或CGRAM指令

功能:

①将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;

②将用户自己设计的图形存入CGRAM。

(11).从CGRAM或DDRAM读出数据的指令

功能:

读取DDRAM或CGRAM中的内容。

基本操作时序:

读状态          输入:

RS=L,RW=H,E=H      输出:

DB0~DB7=状态字

写指令          输入:

RS=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码

输出:

读数据          输入:

RS=H,RW=H,E=H      输出:

DB0~DB7=数据

写数据          输入:

RS=H,RW=L,E=下降沿脉冲,DB0~DB7=数据

输出:

5.1.5、1602液晶与单片机接口电路

5.2、时间计算模块设计

DS1302通过三根口线实现与单片机的通信,因DS1302功耗很小,即使电源掉电后通过3V的纽扣电池仍能维持DS1302精确走时。

5.2.1、DS1302特性介绍

DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。

实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。

工作电压宽达2.5~5.5V。

采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。

5.2.2、DS1302引脚介绍

各引脚的功能为:

8、Vcc1:

备用电池端;

1、Vcc2:

5V电源。

当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2

7、SCLK:

串行时钟,输入; 

6、I/O:

数据输入输出口;

5、CE/RST:

复位脚

23、X1、X2是外接晶振脚(32.768KHZ的晶振)

4、地(GND)

5.2.3、DS1302有关日历、时间的寄存器

寄存器的说明如下:

1、秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。

当初始上电时该位置为1,

时钟振荡器停止,DS1302处于低功耗状态;只有将秒寄存器的该位置改写为0时,时钟才能开

始运行。

2、小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。

当为

高时,选择12小时模式。

在12小时模式时,位5是,当为1时,表示PM。

在24小时模式时,

位5是第二个10小时位

3、控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。

在对任何的时钟和

RAM的写操作之前,WP位必须为0。

当WP位为1时,写保护位防止对任一寄存器的写操作。

也就是说在电路上电的初始态WP是1,这时是不能改写上面任何一个时间寄存器的,

只有首先将WP改写为0,才能进行其它寄存器的写操作。

5.2.4、DS1302控制字介绍

控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。

位6:

如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;

位5至位1(A4~A0):

指示操作单元的地址;

位0(最低有效位):

如为0,表示要进行写操作,为1表示进行读操作。

读数据:

读数据时在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,

读出的数据是从最低位到最高位。

写数据:

控制字总是从最低位开始输出。

在控制字指令输入后的下一个SCLK时钟的上升沿时,

数据被写入DS1302,数据输入也是从最低位(0位)开始。

位0(最低有效位):

为1表示进行读操作。

如为0,表示要进行写操作,

控制字后SCLK下降沿读数据SCLK上升沿写数据

5.2.5、DS1302单字节读写时序介绍

DS1302的数据读写是通过I/O串行进行的。

当进行一次读写操作时最少得读写两个字节,第一个字节是控制字节,就是一个命令,告诉DS1302是读还是写操作,是对RAM还是对CLOK寄存器操作,以及操作的址。

第二个字节就是要读或写的数据了。

我们先看

单字节写:

在进行操作之前先得将CE(也可说是RST)置高电平,然后单片机将控制字的位0放到I/O上,当I/O的数据稳定后,将SCLK置高电平,DS1302检测到SCLK的上升沿后就将I/O上的数据读取,然后单片机将SCLK置为低电平,再将控制字的位1放到I/O上,如此反复,将一个字节控制字的8个位传给DS1302。

接下来就是传一个字节的数据给DS1302,当传完数据后,单片机将CE置为低电平,操作结束。

单字节读操作的一开始写控制字的过程和上面的单字节写操作是一样,但是单字节读操作在写控制字的最后一个位,SCLK还在高电平时,DS1302就将数据放到I/O上,单片机将SCLK置为低电平后数据锁存,

单机机就可以读取I/O上的数据。

如此反复,将一个字节的数据读入单片机。

读与写操作的不同就在于,写操作是在SCLK低电平时单片机将数据放到IO上,当SCLK上升沿时,DS1302读取。

而读操作是在SCLK高电平时DS1302放数据到IO上,将SCLK置为低电平后,单片机就可从IO上读取数据。

5.2.6、DS1302操作指令介绍

操作说明:

1首先要通过8EH将写保护去掉,将日期,时间的初值写时各个寄存器。

2然后就可以对80H、82H、84H、86H、88H、8AH、8CH进行初值的写入。

同时也通过秒寄存器将位7的CH值改成0,这样DS1302就开始走时运了。

3将写保护寄存器再写为80H,防止误改写寄存器的值。

4不断读取80H-8CH的值,将它们格式化后显示到1602LCD液晶上

5.2.7、DS1302与单片机接口电路

5.3、实时环境温度检测模块

DS18B20通过单总线实现与单片机的通信,每个DS18B20都有一个唯一的序列号,可以方便的实现组网检测。

5.3.1、单总线介绍

n单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。

n单总线通常要求外接一个约为4.7K—10K的上拉电阻,这样,当总线闲置时其状态为高电平。

5.3.2、DS18B20特性介绍

nDS18B20单线数字温度传感器,即“一线器件”,其具有独特的优点:

n采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

n测量温度范围宽,测量精度高DS18B20的测量范围为-55℃~+125℃;在-10~+85°C范围内,精度为±0.5°C。

n在使用中不需要任

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2