学士学位论文基于单片机的多功能时钟设计Word文档格式.docx
《学士学位论文基于单片机的多功能时钟设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《学士学位论文基于单片机的多功能时钟设计Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
Keywords:
RTC;
speechchronopher;
LCD;
DTS
第一章绪论
1.1发展现状、目的及意义
单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机具有体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片机在出现时,Intel公司就给其单片机取名为嵌入式微控制器(embeddedmicrocontroller)。
单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。
这一点是巨型机和网络不可能做到的。
单片机在内部已集成了越来越多的部件,这些部件包括一般常用的电路,例如:
定时器,比较器,A/D转换器,D/A转换器,串行通信接口,Watchdog电路,LCD控制器等。
近年来单片机技术飞速发展,产品质量越来越好,而成本却越来越低,现阶段许多复杂、多用的电子器件普遍采用单片机来实现。
随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:
单片机与微机系统之间的距离越来越小,甚至难以辨认。
同时,随着人们生活节奏的加快,时钟已经成为人们日常生活中的必需品,许多家用电器都带着时钟模块,而人们也不再满足于仅仅具有时间显示功能的时钟,对时钟功能的要求也越来越全面,单片机以其强大的功能成为多功能电子时钟的首选,为电子时钟的功能扩展提供了强大的支持,实现一物多用,提高电子时钟的使用价值。
当然们不再满足于电子时钟的计时显示功能时语音时钟在社会生活中已经得到了广泛应用,本文探讨的系统即为其中一种,给出的实现方案和系统设计过程中实现的单片机模拟单线总线通信方式,单片机模拟SPI通信方式,有一定参考价值。
此外,文中探讨的系统也对传统的语音时钟做了扩充,增加了数字温度计模块。
本设计详细介绍了该系统的组成和基本原理,中带你介绍了硬件设计的思想和软件设计的思路,保证在系统功能齐全,性能良好的前提下,最大限度的简化电路,降低系统的整体成本,提高系统的可靠性!
1.2设计内容
基于单片机的多功能时钟设计,主要探讨了一种带数字温度计的语音时钟的实现方案。
本方案采用单片机AT89C52作为控制单元,与数字温度芯片DS18B20接口获得温度数据,与实时时钟芯片DS1302接口获得时间/日历数据,通过与液晶模块OCM12864-1接口显示温度,时间和日历。
按键中断模块包含四个按键,分别与单片机INT0,INT1,T0,T1引脚连接,实现四个外部中断源,用以调整时间和闹钟,开关闹钟和控制语音报时。
语音报时通过语音芯片ISD4003-4和扬声器实现。
第二章系统硬件设计
2.1整体框架概述
系统结构如图2-1所示。
本方案采用单片机AT89C52作为控制单元,与数字温度芯片DS18B20接口获取温度数据,与实时时钟芯片DS1302接口获取时间/日历数据,通过与液晶模块OCM12864-1接口显示温度、时间和日历。
按键中断模块包含了四个按键,分别与单片机的INT0,INT1,T0,T1连接,实现四个外部中断源,用以调整时间和闹钟,开关闹钟和控制语音报时。
图2-1系统结构图
2.2主控器AT89C52
2.2.1概述
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
2.2.2主要性能
(1)兼容MCS51指令系统,8k可反复擦写(>
1000次)FlashROM;
(2)32个双向I/O口,256*8bit内部RAM;
(3)3个16位可编程定时/计数器中断,时钟频率0-24MHz;
(4)2个串行中断,可编程UART串行通道;
(5)2个外部中断源,共8个中断源;
(6)2个读写中断口线,3级加密位;
(7)低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。
2.2.3功能性描述
AT89C52为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
AT89C52的主要管脚有:
(1)XTAL1(19脚)和XTAL2(18脚):
振荡器输入输出端口,外接12MHz晶振。
RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端;
P0~P3:
为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
(2)P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
Flash编程或校验时,P2亦接收高位地址和一些控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
(3)RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
(4)ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
(5)PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
(6)EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
(7)XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
(8)XTAL2:
振荡器反相放大器的输出
2.3实时时钟芯片DS1302
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。
图2-3所示为DS1302的引脚排列,其中VCC1为后备电源,VCC2为主电源。
DS1302由VCC1或VCC2两者中的较大者供电。
所以在主电源关闭的情况下,也能保持时钟的连续运行。
X1和X2是振荡源,外接32.768KHz晶振用来为芯片提供计时脉冲。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;
其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电行动时,在VCC大于等于2.5V之前,RST必须保持低电平。
在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。
SCLK始终是输入端。
图2-3DS1302的硬件接线图
时钟芯片DS1302的工作原理:
a)DS1302的控制字节
DS1302控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;
位5至位1指示操作单元的地址;
最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
b)数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
c)DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;
当该位为0时,时钟开始运行。
“WP”是写保护位,在任何的对时钟和RAM的写操作之前,“WP”必须为0。
当“WP”为1时,写保护位防止对任一寄存器的写操作。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;
另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
2.4温度传感器DS18B20
本设计的测温元件采用DS18B20数字温度传感器,该产品采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
使用DS18B20数字温度传感器,可以感测周围环境温度变化,并将数据传送给单片机进行处理,实现周围环境实时温度的监测。
DS18B20具有独特的单线接口,只需1个接口引脚即可通信;
多点能力使分布式温度检测应用得以简化;
不需要外部元件;
可用数据线供电,不需备份电源;
测量范围从-55℃至+125℃,增量值为0.5℃。
等效的华氏温度范围是-67°
F至257°
F;
以9位数字方式读出温度;
在1秒(典型值)内把温度变换为数字;
用户可定义的,非易失性的温度告警设置;
告诫搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况);
应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统。
下图(图2-4)为DS18B20硬件接线图:
图2-4DS18B20引脚接线
引脚说明:
GND为接地引脚;
DQ为数据输入输出脚。
用于单线操作,漏极开路;
VCC接电源正;
a)DS18B20的主要特性
1)适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电。
2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
5)温范围-55℃~+125℃,在-10~+85℃时精度为±
0.5℃。
6)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
8)测量结果直接输出数字温度信号,以"
一线总线"
串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
9)负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
DS18B20只需要接到控制器(单片机)的一个I/O口上,由于单总线为开漏所以需要外接一个4.7K的上拉电阻。
DS18B20数据线是开漏结构,这就意味着,在没有数据的时候,总线处于什么样的状态是不确定的.加一个上拉电阻就可以使总线在空闲的时候处于高电平状态.
b)DS18B20的供电方式
DS18B20的供电方式有两种:
寄生电源供电方式和外部电源供电方式。
本设计采用外部电源供电方式,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度。
外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统
2.5液晶显示模块12864
2.5.1概述
OCM12864液晶显示模块是128*64点阵型液晶显示模块,可显示各种字符及图形,可与CPU直接接口,具有8为标准数据接口、6条控制线及电源线。
采用KSO108控制IC,其接线图如2-5
外观尺寸:
113×
65×
11mm(ocm12864-1),93×
70×
10mm(ocm12864-2)78×
10mm(ocm12864-3)
视域尺寸:
73.4×
38.8mm(ocm12864-1)
70.7×
38mm(ocm12864-2),64×
44mm(ocm12864-3)
2.5.2最大工作范围
(1)逻辑工作电压(Vcc):
4.5~5.5V;
(2)电源地(GND):
0V;
(3)LCD驱动电压(Vee):
0~-10V;
(4)输入电压:
Vee~Vdd;
(5)工作温度(Ta):
0~55℃(常温)/-20~70℃(宽温);
(6)保存温度(Tstg):
-10~65℃
图2-5液晶显示模块接线图
2.6语音芯片及功放
2.6.1概述
ISD4003-4单片录放时间为4分钟,其通信方式为SPI方式(详见ISD公司关于该芯片的数据手册),本系统中以单片机模拟SPI方式与其接口。
单片机对其写入16位格式命令时序。
2.6.2芯片内部框图以及电路图
图2-6ISD4003-4内部框图
图2-7语音模块电路图
2.6.3芯片管脚
语音芯片管脚排列图如2-8所示:
图2-8芯片管脚排列图
引脚描述:
●电源(VCCA,VCCD):
为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦合电容应尽量靠近器件。
●地线(VSSA,VSSD):
芯片内部的模拟和数字电路也使用不同的地线。
几个VSSA尽量在引脚焊盘上相连,并用低阻通路连到电源上,VSSD也用低阻通路连到电源上。
●同相模拟输入(ANAIN+):
录音信号的同相输入端,输入放大器可用单端或差分驱动。
单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3KΩ电阻输入阻抗决定芯片频带的低端截止频率。
差分驱动时,信号最大幅度为峰峰值16mV。
●反相模拟输入(ANAIN-):
差分驱动时,这是录音信号的反相输入端。
信号通过耦合电容输入,最大幅度为峰峰值16mV,本端的标称输入阻抗为56KΩ,单段驱动时,本端通过电容接地,两种方式下,ANAIN+、ANAIN-端的耦合电容值应相同。
●音频输出(AUDOUT):
提供音频输出,可驱动5KΩ的负载。
●片选(SS):
此端为低,即向该ISD4000芯片发送指令,两条指令之
●间为高电平。
●串行输入(MOSI):
此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。
●串行输出(MISO):
ISD的串行输出端。
ISD未选中时,本端呈高阻态。
●串行时钟(SCLK):
ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据转输。
数据在SCLK上升沿锁存到ISD,在下降沿移出ISD。
●中断(/INT):
漏极开路输出,ISD在任何操作(包括快进)中检测到EOM或OVF时,本端变低并保持。
中断状态在下一个SPI周期开始时清除。
中断状态也可用RINT指令读取。
●OVF标志—指示ISD录、放操作已到达存储器的末尾。
●EOM标志只在放音中检测到内部的EOM标志时,此状态位置1。
●行地址时钟(RAC):
漏极开路输出。
每个RAC周期表示ISD存储器的操作进行了一行(ISD4000系列中的存储器共600至2400行)。
该信号175ms保持高电平,低电平为25ms。
快进模式下,RAC的218.75us是高电平31.25us为低电平。
该端用于存储管理技术。
●外部时钟(XCLK):
本端内部有下拉元件,芯片内部的采样时钟出厂前已调校,误差在±
1%内。
商业级的芯片在整个温度和电压范围内,其频率变化在±
2.25%内。
工业级芯片在整个温度和电压范围内,频率变化在-6/+4%内,建议使用稳压电源。
若要求更高精度,可从本端输入外部时钟(如前表所列)。
由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。
输入时钟的占空比无关紧要,因内部首先进行了分频。
在不外接时钟时,此端必须接地。
●自动静噪(AMACP):
当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰减,这样有助于减小无信号(静音)时的噪声。
通常,本端对地接1uF的电容,构成内部信号