电子万年历的设计与制作毕业设计论文 精品.docx

上传人:b****8 文档编号:9916923 上传时间:2023-02-07 格式:DOCX 页数:34 大小:563.77KB
下载 相关 举报
电子万年历的设计与制作毕业设计论文 精品.docx_第1页
第1页 / 共34页
电子万年历的设计与制作毕业设计论文 精品.docx_第2页
第2页 / 共34页
电子万年历的设计与制作毕业设计论文 精品.docx_第3页
第3页 / 共34页
电子万年历的设计与制作毕业设计论文 精品.docx_第4页
第4页 / 共34页
电子万年历的设计与制作毕业设计论文 精品.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

电子万年历的设计与制作毕业设计论文 精品.docx

《电子万年历的设计与制作毕业设计论文 精品.docx》由会员分享,可在线阅读,更多相关《电子万年历的设计与制作毕业设计论文 精品.docx(34页珍藏版)》请在冰豆网上搜索。

电子万年历的设计与制作毕业设计论文 精品.docx

电子万年历的设计与制作毕业设计论文精品

天津电子信息职业技术学院

课程设计

 

课题名称电子万年历的设计与制作

班级通信S11-1班

专业通信技术

所在系电子技术系

电子万年历的设计与制作

摘要

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

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

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

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

关键词:

单片机;时钟电路;动态扫描;

 

目录

一、设计要求与方案论证6

1.设计要求:

6

2.系统基本方案选择:

7

(1)单片机芯片的选择方案和论证:

7

(2)显示模块选择方案和论证:

7

(3)显示器的结构8

3.键盘模块的选择:

8

4.方案论证:

9

(1)技术可行性:

9

二、系统的硬件设计与实现9

1.电路设计框图:

9

2.系统硬件概述:

10

(1)控制模块10

(2)结构10

3.脚定义及功能10

(1)源及时钟引脚10

(2)控制引脚10

(3)I/O口引脚11

3.片外总线结构11

4.要单元电路的设计:

11

(1)控制模块的设计:

11

(2)模块器件12

(3)电路模块的设计14

(4)电路原理及说明15

(5)数据的输出与输入(I/O)16

(6)DS1302的寄存器16

5.显示模块的设计17

三、系统的软件设计18

1.程序流程框图:

18

2.子程序的设计:

21

(1)键盘子程序的实现:

21

(2).读写DS1302子程序21

3.系统硬件电路设计:

23

4.系统硬件PROTEUS仿真原理图:

24

5.主要单元电路的设计:

24

(1)显示4.1显示部分设计24

(2)键盘接口:

25

(3)按键开关去抖动问题:

25

(4)查询式按键及其接口:

26

(5)矩阵式键盘及其接口26

(6)键盘扫描控制方式:

26

四、测试结果分析与结果27

1.测试结果分析27

(1)在测试中遇到LEDLCD16824不显示27

(2)按键调整时,不是按单位递增和递减28

五、系统评价28

六、系统程序清单28

七、谢辞31

八、参考文献31

绪论

随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。

二十一世纪的今天,最具代表性的计时产品就是电子时钟,它是近代世界钟表业界的第三次革命。

第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。

第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。

第三次革命就是单片机数码计时技术的应用,使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期的显示功能,它更符合消费者的生活需求!

因此,电子时钟的出现带来了钟表计时业界跨跃性的进步……  

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

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

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

一、设计要求与方案论证

1.设计要求:

本电子时钟能动态显示分钟、秒。

2.系统基本方案选择:

(1)单片机芯片的选择方案和论证:

方案一:

采用89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

方案二:

采用AT89S52,片内ROM全都采用FlashROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。

所以选择采用AT89S52作为主控制系统.

方案三:

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

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

工作电压宽达2.5~5.5V。

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

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

(2)显示模块选择方案和论证:

方案一:

采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏.

方案二:

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

方案三:

采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。

LED显示数码管

常见的LED显示具有清晰明亮的特点。

是显示接口也是绝大多数单片机应用系统必备的部件之一。

发光二极管组成的显示器是单片机应用产品中最常用的廉价输出设备。

它由若干个发光二极管按一定的规律排列而成。

当某一个发光二极管导通时,相应的一个点或一笔画被点亮,控制不同组合的二极管导通,就能显出各种字符。

所以采用了LED数码管作为显示。

(3)显示器的结构

常用的7段显示器的结构如图所示,发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的成为共阴显示器。

1位显示器由8个发光二极管组成,其中7个发光二极管a~g控制7个笔画的亮或暗,另一个控制一个小数点的亮和暗,这种笔画的七段显示器能显示的字符较少,字符的形状有些失真,但失控简单,使用方便。

3.键盘模块的选择:

在对日期和时间进行切换,对日期和时间进行调节校准过程中,系统需要产生激励电流,因此需要用按键。

方案一:

使用独立式键盘。

独立式键盘是指直接用I/O口线构成的单个按键电路。

独立式按键电路配置灵活,软件结构简单。

方案二:

使用矩阵式键盘。

矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。

其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。

根据以上的论述,因本系统需要的按键不多,日期加1键,月数加1键,年数加1键,分数加1键,时数加1键,时间/日期切换键,要求简单。

所以采用方案一独立式键盘。

4.方案论证:

(1)技术可行性:

随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。

集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行I/O口、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-ChipMicrocomputer)。

而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元、PWM控制输出单元、PWM输出时的死区可编程控制功能等。

因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。

 ①单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关:

 ②单片机构成的应用系统有较大的可靠性。

这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。

 ③系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。

 ④由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。

有优异的性能、价格比。

综上各方案所述,对此次作品的方案选定:

采用C52作为主控制系统;LED数码管动态扫描作为显示。

二、系统的硬件设计与实现

1.电路设计框图:

AT89C52

主控制模块

2.系统硬件概述:

(1)控制模块

AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

如图所示。

(2)结构

按功能分为8部分:

CUP,程序存储器,数据存储器,时钟电路,串行口,并行I/O口,中断系统,定时/计数器。

3.脚定义及功能

(1)源及时钟引脚

Vcc:

接+5V电源

Vss:

接地

XTAL1和XTAL2:

时钟引脚,外接晶体引线端。

当使用芯片内部时钟时,此两引脚端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

(2)控制引脚

RST/Vpq:

RST是复位信号输入端,Vpd是备用电源输入端。

当RST输入端保持2个机器周期以上高电平时,单片机完成复位初始化操作。

当主电源Vcc发生故障而突然下降到一定低电压或断电时,第2功能Vpd将为片内RAM提供电源以保护片内RAM中的信息不丢失。

ALE/PROG:

地址锁存允许信号输入端。

在存取外存储器时,用于锁存低8位地址信号。

当单片机正常工作后,ALE端就周期性地以时钟振荡频率的1/6固定频率向外输出正脉冲信号。

此引脚的第2功能PROG是对片内带有4K字节EPROM的8751固外程序时,作为编程脉冲输入端。

PSEN:

程序存储器允许输出端。

当片外程序存储器的读选通信号,低电平有效。

CPU从外部程序存储器取指令时,PSEN信号会自动产生负脉冲,作为外部程序存储器的选通信号。

EA/Vpp:

程序存储器地址允许输入端。

当EA为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令;当EA为低电平时,CPU只执行片外程序存储器指令。

(3)I/O口引脚

P0.0~P0.7:

P0口8位双向I/O口;

P1.0~P1.7:

P1口8位准双向I/O口;

P2.0~P2.7:

P2口8位准双向I/O口;

P3.0~P3.7:

P3口8位准双向I/O口。

3.片外总线结构

分为三部分:

数据总线DataBus(DB),地址总线AddressBus(AB),控制总线ControlBus(CB).

本电路是由AT89C52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。

可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由DS18B20构成;显示部份由4个数码管,74ls138、74ls47译码器构成。

使用动态扫描显示方式对数字的显示。

4.单元电路的设计:

(1)控制模块的设计:

①单片机原理

单片机就是简化的微型计算机。

CPU中本身自带存储器ROM和RAM。

CPU片内也有总线。

IC(集成电路)技术是将电路通过特殊工艺做在一块硅基片上封装成芯片,比如CPU,片外存储器等等。

将单片机CPU(比如51系列),晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器),按钮(类似键盘),扩展芯片,接口等通过PCB工艺(比如SMT贴片,或者插装)做在环氧树脂板上。

这样才是一个完整的单片(做在一块PCB板上)的微型计算机。

AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端.如图-1所示

图-1主控制系统

(1)一个8位的微处理器(CPU)

(2)片内数据存储器RAM(128B/256B)

(3)片内程序存储器ROM/EPROM(4kB/8kB)

(4)4个8位并行I/O拉口P0-P3,每个口既可以作输入也可以作输出

(5)2个16位定时器/计数器

(6)5个中断源的中断控制系统

(7)1个全双工的串行I/O接口

(8)片内时钟振荡器

(2)模块器件

①74LS164

它是个串入并出的8位移位寄存器,它常用于单片机系统中,下面结束一下这个元件的基本知识:

74LS164引脚图

74LS164_内部功能图

74LS164_逻辑符合表

串行输入带锁存

时钟输入,串行输入带缓冲

异步清除

最高时钟频率可高达36Mhz

功耗:

10mW/bit

74系列工作温度:

0°Cto70°C

Vcc最高电压:

7V

输入最高电压:

7V

高电平:

-0.4mA

低电平:

8mA

(3)电路模块的设计

图-2示出DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由Vcc1或Vcc2两者中的较大者供电。

当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

X1和X2是振荡源,外接32.768KHz晶振。

RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。

RST输入有两种功能:

首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。

中有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。

SCLK始终是输入端。

图-2DS1302的引脚图

(4)电路原理及说明

①时钟芯片DS1302的工作原理:

DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图4所示。

图5为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。

对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。

位1至位5指操作单元的地址。

位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。

控制字节总是从最低位开始输入/输出的。

表6为DS1302的日历、时间寄存器内容:

“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。

“WP”

是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。

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

②DS1302的控制字节:

DS1302的控制字如表-1所示。

控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

(5)数据的输出与输入(I/O)

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。

同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。

如下图-4所示

图-4DS1302读/写时序图

(6)DS1302的寄存器:

DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表-1。

表-1DS1302的日历、时间寄存器

此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。

时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。

DS1302与RAM相关的寄存器分为两类:

一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。

5.显示模块的设计

如图-5所示,采用动态扫描显示,由21个数码管,3-8译码器74LS138接1K限流电阻,再接8550三极管接到共阳数码管的CoM端作为选通位码,每位选择相应的列。

74ls47接240Ω限流电阻,再接共行的LED数码管的断码。

 

图-5LED动态扫描显示

三、系统的软件设计

1.程序流程框图:

 

图-A主程序流程图

 

图-B计算阳历程序流程图

图-C时间调整程序流程图

2.子程序的设计:

(1)键盘子程序的实现:

键盘示意图如图所示

图21按键示意图

主要函数模块(C语言):

函数名:

voidkey_count()

功能描述:

设置状态转换函数,根据变量count的不同值,对应不同的设置状态按下设置键,自动切换设置位

函数名:

voidkey_out()

功能描述:

跳出设置模式

函数名:

ucharkey_up(inttemp,intmax,intmin)

功能描述:

按键加函数,在最大值与最小值之间变化

函数名:

ucharkey_down(inttemp,intmax,intmin)

功能描述:

按键减函数,在最大值与最小值之间变化

函数名:

voidset_year();voidset_month();voidset_day();voidset_hour();

voidset_minute();

(2).读写DS1302子程序

CLRSCLK

NOP

SETBRST

NOP

MOVA,32H

MOVR4,#8

WRITE1:

RRCA;送地址给1302

NOP

NOP

CLRSCLK

NOP

NOP

NOP

MOVIO,C

NOP

NOP

NOP

SETBSCLK

NOP

NOP

DJNZR4,WRITE1

CLRSCLK

NOP

MOVA,31H

MOVR4,#8

WRITE2:

RRCA

NOP;送数据给1302

CLRSCLK

NOP

NOP

MOVIO,C

NOP

NOP

NOP

SETBSCLK

NOP

NOP

DJNZR4,WRITE2

CLRRST

RET

;读1302程序

READ:

CLRSCLK

NOP

NOP

SETBRST

NOP

MOVA,32H

MOVR4,#8

READ1:

RRCA;送地址给1302

NOP

MOVIO,C

NOP

NOP

NOP

SETBSCLK

NOP

NOP

NOP

CLRSCLK

NOP

NOP

DJNZR4,READ1

MOVR4,#8

READ2:

CLRSCLK

NOP;从1302中读出数据

NOP

NOP

MOVC,IO

NOP

NOP

NOP

NOP

NOP

RRCA

NOP

NOP

NOP

NOP

SETBSCLK

NOP

DJNZR4,READ2

MOV31H,A

CLRRST

RET

3.系统硬件电路设计:

本设计硬件电路图如下

 

 

 

 

4.系统硬件PROTEUS仿真原理图:

 

5.主要单元电路的设计:

(1)显示4.1显示部分设计

基本显示原理:

时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1,到9后,10秒位加1,秒位回0。

10秒位到5后,即59秒,分钟加1,10秒位回0。

依次类推,时钟最大的显示值为23小时59分59秒。

这里只要确定了1秒的定时时间,其他位均以此为基准往上累加。

同时时钟达到最大值的时候天数也增加一位,知道显示了7后再变为1,同时阴历和阳历的天数也加1,根据不同的月份显示的天数阳历有28,29,30,31天,阴历就要经过计算得到,到了12个月后,年数自动增加1,以此类推,显示万年历的现实。

另外,连接方式总电路图上可以看到,这里就不做说明了,下图为显示部分的电路图。

显示部分电路图电路:

显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路。

采用动态扫描,显示时采用串行口输出段码。

(2)键盘接口:

键盘在单片机系统中是一个很重要的部件。

为了输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段

(3)按键开关去抖动问题:

按键开关在电路中的连接如图所示。

按键未按下时,A点电位为高电平5V;按键按下时,A点电位为低电平。

A点电位就用于向CPU传递按键的开关状态。

但是由于按键的结构为机械弹性开关,在按键按下和断开时,触点在闭合和断开瞬间还会接触不稳定,引起A点电平不稳定,如图2-11b所示,键盘的抖动时间一般为5~10ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。

因此必须设法消除抖动的不良后果。

 

图2.3键操作和键抖动

为了节省硬件,通常在单片

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1