数字电子钟的设计仿真与制作.docx
《数字电子钟的设计仿真与制作.docx》由会员分享,可在线阅读,更多相关《数字电子钟的设计仿真与制作.docx(146页珍藏版)》请在冰豆网上搜索。
数字电子钟的设计仿真与制作
大学生课外创新实验竞赛
暨第五届实验竞赛月总结报告
项目名称:
数字电子钟的设计、仿真与制作
参赛院系:
电气工程学院电气工程基础实验中心
项目组成员:
**涛
项目负责人电话:
日期:
2013.4.26
项目简介:
该数字时钟以STC89C51单片机为核心控制系统,51单片机主要通过控制高低电平来实现数据的传输和读取,操作简单。
时钟芯片采用DS12C887,该时钟芯片内部自带振荡器,走时精准,而且内部自带备用电池,断电后数据不会丢失,还会自动走时长达十年,避免了开机就得重新校时的麻烦。
时间的显示通过1602液晶显示屏显示,为并行数据传输。
该系统除了具有基本的时间显示外,还有校时,闹钟,温度,计时,倒计时,录音功能,语音报时。
其中时间显示包括年月日,时分秒,星期。
温度的测量采用DS18B20,小巧精致,精度可达0.625。
计时和倒计时分别用单片机的定时器0,和定时器1。
闹钟为时钟芯片内部控制,通过单片机的外部中断来控制铃声的放出。
录音采用ISD4004语音芯片,为串行数据传输,录音时间可达8分钟。
语音报时则是事先在语音芯片录入声音,再通过单片机对声音进行剪接,使之组成所需的一句话。
仿真工具为proteus,仿真效果与实际接近。
PCB的绘制采用AltiumDesigner6.9,功能强大。
该数字时钟功能多样,操作仅用四个按键实现,而且显示界面简洁,利于实现人机互动。
关键字:
单片机时钟芯片温度录音语音报时
项目创新点:
第一:
该项目采用了DS12C887时钟芯片,走时精准,而且断电后不丢失数据,内部有备用电源,可在断电后自行走10年,所以在任何时候开机时,时间都是准的,避免了上电就需校时的麻烦。
第二:
该数字钟具有录音的功能,闹钟的铃声可自行录取,比单一的蜂鸣器声音好很多。
第三:
语音报时功能,事先将所需的字或则词录入语音芯片中,再通过单片机对声音进行剪接,组成一句所需的话。
第一章绪论……………………………………………………………………………………4
1.1数字时钟概述……………………………………………………………………………4
1.2单片机概述………………………………………………………………………………4
第二章主要元器件介绍……………………………………………………………………5
2.1STC89C51单片机………………………………………………………………………5
2.2LCD1602液晶显示屏……………………………………………………………………6
2.3DS12C887时钟芯片………………………………………………………………………9
2.4DS18B20温度传感器……………………………………………………………………12
2.5ISD4004…………………………………………………………………………………13
2.6LM386……………………………………………………………………………………17
第三章模块介绍……………………………………………………………………18
3.1主系统---------------单片机…………………………………………………………18
3.2日期显示部分---------LCD1602………………………………………………………18
3.3测温部分-------------温度传感器DS18B20…………………………………………18
3.4日期,闹钟产生部分---DS12C887………………………………………………………19
3.5录音与语音报时模块---ISD4004………………………………………………………21
3.6语音放大电路--------LM386…………………………………………………………24
3.7计时与定时器---------定时器0,1……………………………………………………24
3.8其他………………………………………………………………………………………25
3.9系统总的原理图…………………………………………………………………………26
3.10系统总的程序设计流程图………………………………………………………………26
第四章仿真与调试………………………………………………………………………29
4.1仿真…………………………………………………………………………………………29
4.2调试过程……………………………………………………………………………………30
附录一:
PCB图…………………………………………………………………………31
附录二:
源程序
程序一:
系统主程序……………………………………………………………………32
程序二:
语音录入………………………………………………………………………60
附录三:
元器件清单…………………………………………………………………………………67
附录四:
收获与与体会………………………………………………………………………………68
第一章绪论
1.1数字时钟概述
现在是一个知识爆炸的新时代。
新产品、新技术层出不穷,电子技术的发展更是日新月异。
可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。
在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。
因此我们需要一个定时系统来提醒这些忙碌的人。
数字化的钟表给人们带来了极大的方便。
近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。
单片机在数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。
但是却很少知道它的内部结构以及工作原理。
由单片机作为数字钟的核心控制器,利用时钟芯片,将其时间数据经单片机输出,利用显示屏显示出来。
通过键盘可以进行定时、校时功能。
输出设备显示屏可以用液晶显示技术和数码管显示技术。
1.2单片机概述
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!
单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
第二章主要元器件介绍
2.1STC89C51单片机
2.1.1单片机简介
STC系列单片机是美国STC公司最新推出的一种新型程序存储器、SRAM、UART、SPI、机完全兼容。
内置标准51内核,机器周期:
增强型为6时钟,普通型为12时钟;
(1).工作频率范围:
0~40MHZ,相当于普通8051的0-80MHZ
(2).STC89C5xRC对应Flash空间:
4KB\8KB\15KB
(3).内部存储器(RAM):
512B;
(4).定时器\计数器:
3个16位;
(5).通用异步通信口(UART)1个;
(6).中断源:
8个;
(7).有ISP(在系统可编程)\IAP(在应用可编程无需专用编程器\仿真器
(8).通用I\O口:
32\36个;
(9).工作电压:
3.8-5.5V;
(10).外形封装:
40脚PDIP、44脚PLCC3.和PQFP等
2.1.2引脚说明
(1)VCC,GND—单片机电源引脚,不同的单片机接入不同的电源,常压为+5V,低压为+3.3V。
(2)XTAL1,XTAL2—外接时钟引脚。
XTAL1为片内振荡电路的输入端,XTAL2为片内振荡引脚的输出端。
8051的时钟有两种方式,一种是片内时钟振荡方式,振荡电容一般取10P-30P;另一种是外部时钟方式,XTAL1接地,外部时钟信号从XTAL2脚输入。
(3)RST—单片机复位引脚。
当输入连续的两个周期以上的高电平时为有效,用来完成单片机的复位初始化操作,复位后的程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码,通俗的讲,就是单片机从头开始执行程序。
(4)PSEN—此输出为单片机内访问外部程序存贮器的读选通信号。
在从外部程序存贮器取指令(或常数)期间,每个机器周期PSEN————两次有效,但在此期间,每当访问外部数据存贮器时,这两次有效的PSEN————信号将不出现,PSEN————同样可以驱动8个TTL负载。
(5)ALE/PROG————(30引脚):
当单片机访问外部存贮器时,ALE(地址锁存允许)输出脉冲的下降沿用于锁存16位地址的低8位。
即使不访问外部存贮器,ALE端仍有周期性正脉冲输出,其频率为振荡器频率的1∕6。
但是,每当访问外部数据存贮器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。
ALE端可以驱动8个TTL负载。
对于片内具有EPROM型的单片机8751,在EPROM编程期间,此引脚用于输入编程脉冲PROG。
(6)EA——/VPP(31脚):
当EA端保持高电平时,单片机访问的是内部程序存贮器(对8051、8751来说),但当PC(程序计数器)值超过某值(如8751内部还有4KBEPROM,值为0FFFH)时,将自动转向执行外部程序存贮器内的程序。
当EA——端保持低电平时,则不管是否有内部程序存贮器而只访问外。
对8031来说,因其无内部程序存贮器所以该引脚必须接地,即此时只能访问外部程序存贮器。
对于片内有EPROM型的单片机型的单片机8751,在EPROMEPROM编程期间,此引脚用于施加电源VPP。
(7)I/O口引脚—P0口,P1口,P2口,P3口。
P0口(P0.0—P0.7)--为双向:
为双向8位三态I/O口,当作为口,当作为I/O口使用时,可直接连口使用时,可直接连外部I/O设备。
它是地址总线低8位及数据总线分时复用口,可驱动8个TTL负载输,一般作为扩展时地址/数据总线使用。
P1口(P1.0~P1.7):
为8位准双向I/O口,它的每一位都可以分别定义为输入口,它的每一位都可以分别定义为输入线或输出线(作为入时,口锁存器必须置1),可驱动),可驱动4个TTL负载。
P2口(P2.0~P2.7):
为8位准双向I/O口,当作为口,当作为I/O口使用时,可直接连外口使用时,可直接连外部I/O设备。
它是与地址总线高设备。
它是与地址总线高8位复用,可驱动位复用,可驱动4个TTL负载,一般作为扩展时地址负载,一般作为扩展时地址总线上网高8位使用。
P3口(P3.0~P3.7):
位):
位):
位8位准双向I/O口,时双功能复用可驱动口,时双功能复用可驱动口,时双功能复用可驱动4个TTL负载。
P3口的第二功能
a.P3.0:
RXD(串行输入口);
b.P3.1:
TXD(串行输出口);
c.P3.2:
INT0(外部中断0);
d.P3.3:
INT1(外部中断1);
e.P3.4:
T0(定时器0外部中断);外部中断);
f.P3.5:
T1(定时器1外部中断);
g.P3.6:
WR(外部数据存储器写选通);
h.P3.7:
RD(外部数据存储器读选通)。
图2-1STC89C51单片机引脚图
2.2LCD1602液晶显示屏
2.2.1液晶简介
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
2.2.2引脚介绍
(1)第1脚:
VSS为电源地
(2)第2脚:
VCC接5V电源正极
(3)第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
(4)第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
(5)第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
(6)第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
(7)第7~14脚:
D0~D7为8位双向数据端。
(8)第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
图2-2LCD1602引脚图
2.2.3使用方法
(1)指令集
指令码
功能
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
清除显示
0
0
0
0
0
0
0
0
0
1
将DDRAM填满"20H",并且设定DDRAM的地址计数器(AC)到"00H"
地址归位
0
0
0
0
0
0
0
0
1
X
设定DDRAM的地址计数器(AC)到"00H",并且将游标移到开头原点位置;这个指令不改变DDRAM的内容
显示状态开/关
0
0
0
0
0
0
1
D
C
B
D=1:
整体显示ONC=1:
游标ONB=1:
游标位置反白允许
进入点设定
0
0
0
0
0
0
0
1
I/D
S
指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位
游标或显示移位控制
0
0
0
0
0
1
S/C
R/L
X
X
设定游标的移动与显示的移位控制位;这个指令不改变DDRAM的内容
功能设定
0
0
0
0
1
DL
X
RE
X
X
DL=0/1:
4/8位数据RE=1:
扩充指令操作RE=0:
基本指令操作
设定CGRAM地址
0
0
0
1
AC5
AC4
AC3
AC2
AC1
AC0
设定CGRAM地址
设定DDRAM地址
0
0
1
0
AC5
AC4
AC3
AC2
AC1
AC0
设定DDRAM地址(显示位址)第一行:
80H-87H第二行:
90H-97H
读取忙标志和地址
0
1
BF
AC6
AC5
AC4
AC3
AC2
AC1
AC0
读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值
写数据到RAM
1
0
数据
将数据D7——D0写入到内部的RAM(DDRAM/CGRAM/IRAM/GRAM)
读出RAM的值
1
1
数据
从内部RAM读取数据D7——D0(DDRAM/CGRAM/IRAM/GRAM)
(2)基本操作时序
读状态
输入
RS=L,R/W=H,E=H
输出
D0-D7=状态字
读数据
输入
RS=H,R/W=H,E=H
输出
无
写指令
输入
RS=H,R/W=L.D0-D7=指令码,E=高脉冲
输出
D0-D7=数据
写数据
输入
RS=H,R/W=L,D0-D7=数据,E=高脉冲
输出
无
(3)读写时序图
图2-31602读操作时序
图2-41602写操作时序
2.3DS12C887时钟芯片
2.3.1简介
DS12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决了“千年”问题;DS12C887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。
在12小时制模式中,用AM和PM区分上午和下午;时间的表示方法也有两种,一种用二进制数表示,一种是用BCD码表示;DS12C887中带有128字节RAM,其中有11字节RAM用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,称为控制寄存器,113字节通用RAM使用户使用;此外用户还可对DS12C887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。
2.3.2引脚介绍
(1)GND、VCC:
直流电源,其中VCC接+5V输入,GND接地,当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读、写操作;当VCC的输入小于+4.25V时,禁止用户对内部RAM进行读、写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入小于+3V时,DS12C887会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。
(2)MOT:
模式选择脚,DA12C887有两种工作模式,即Motorola模式和Intel模式,当MOT接VCC时,选用的工作模式是Motorola模式,当MOT接GND时,选用的是Intel模式。
本做品采用主要讨论Intel模式。
(3)SQW:
方波输出脚,当供电电压VCC大于4.25V时,SQW脚可进行方波输出,此时用户可以通过对控制寄存器编程来得到13种方波信号的输出。
(4)AD0~AD7:
复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在AD0~AD7上的是地址信息,可用以选通DS12C887内的RAM,总线周期的后半部分出现在AD0~AD7上的数据信息。
(5)AS:
地址选通输入脚,在进行读写操作时,AS的上升沿将AD0~AD7上出现的地址信息锁存到DS12C887上,而下一个下降沿清除AD0~AD7上的地址信息,不论是否有效,DS12C887都将执行该操作。
(6)DS/RD:
数据选择或读输入脚,该引脚有两种工作模式,当MOT接VCC时,选用Motorola工作模式,在这种工作模式中,每个总线周期的后一部分的DS为高电平,被称为数据选通。
在读操作中,DS的上升沿使DS12C887将内部数据送往总线AD0~AD7上,以供外部读取。
在写操作中,DS的下降沿将使总线AD0~AD7上的数据锁存在DS12C887中;当MOT接GND时,选用Intel工作模式,在该模式中,该引脚是读允许输入脚,即ReadEnable。
(7)R/W:
读/写输入端,该管脚也有2种工作模式,当MOT接VCC时,R/W工作在Motorola模式。
此时,该引脚的作用是区分进行的是读操作还是写操作,当R/W为高电平时为读操作,R/W为低电平时为写操作;当MOT接GND时,该脚工作在Intle模式,此时该作为写允许输入,即WriteEnable。
(8)CS:
片选输入,低电平有效。
(9)IRQ:
中断请求输入,低电平有效,该脚有效对DS12C887内的时钟、日历和RAM中的内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET可以直接接VCC,这样可以保证DS12C887在掉电时,其内部控制寄存器不受影响。
图2-5DS12C887引脚图
2.3.3使用方法
(1)寄存器定义(二级制模式DM=1)
a.寄存器A
更新位UIP:
用来标志芯片是否即将进行更新。
当UIP位为1时,表示芯片正处于更新周期或即将开始更新周期。
此时不准读/写时标寄存器;当它为0时,表示在至少244us后才开始更新周期(即在这244us内,芯片不会更新)。
此时,时钟、日历和闹钟信息可以通过读写相应的字节获得和设置。
UIP位为只读位且不受复位信号(RESET)的影响。
通
过把寄存器B中的SET位设置为1,可以禁止更新并将UIP位清0。
b.寄存器B:
当该位为0时,芯片处于正常工作状态,每秒产生一个更新周期来更新时标寄存器;该位为1时,芯片停止工作,程序在此期间可初始化芯片的各个时标寄存器。
SET位可读写,并不会受到复位信号的影响。
PIE——周期中断当PIE=0:
禁止周期中断输出到IRQ;当PIE=1:
允许周期中断输出到IRQ。
AIE——闹钟中断当AIE=0:
禁止闹钟中断输出到IRQ;当AIE=1:
允许闹钟中断输出到IRQ。
UIE——更新结束中断当UIE=0:
禁止更新结束中断输出到IRQ;当UIE=1:
允许更新结束中断输出到IRQ。
此位在复位或设置SET为高时清0SQWE——方波输出允许位当SQWE=0:
SQW脚保持低电平;当SQWE=1:
按寄存器A输出速率选择位所确定的频率方波。
DM——格式选择位DM=0:
BCD格式;DM=1:
二进制格式。
此位不受复位信号影响24/12——小时模式设置位为1—24小时制;为0—12小时制DSE——夏令时允许标志DSE=1,夏令制设置有效,夏时制结束可自动刷新恢复时间;DES=0,无效。
夏令时:
在四月的第一个星期日的1:
59:
59AM,时钟调到3:
00:
00AM;在十用的最后一个星期日的1:
59:
59AM,时钟调到1:
00:
00A。
c.寄存器C
Irqf—中断请求标志。
当一下四种情况有一种或则几种发生时,IRQF置高;PF=PIE=1;AF=AIE=1;UF=UIE=1;IRQF=PF.PIE+AF.ALE+UF.UIE;IRQF一旦为高,IRQ输出低电平。
d.寄存器D
VRT—VRT=0,表示内置电池能量耗尽,此时RAM中的数据的正确性就不能保证了。
(2)读写时序图
图2-5DS12C887读时序图
图2-6DS12C887写时序图
2.4DS18B20温度传感器
2.4.1简介
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封