基于单片机和lcd的电子钟设计.docx

上传人:b****8 文档编号:11007168 上传时间:2023-02-24 格式:DOCX 页数:55 大小:1.44MB
下载 相关 举报
基于单片机和lcd的电子钟设计.docx_第1页
第1页 / 共55页
基于单片机和lcd的电子钟设计.docx_第2页
第2页 / 共55页
基于单片机和lcd的电子钟设计.docx_第3页
第3页 / 共55页
基于单片机和lcd的电子钟设计.docx_第4页
第4页 / 共55页
基于单片机和lcd的电子钟设计.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

基于单片机和lcd的电子钟设计.docx

《基于单片机和lcd的电子钟设计.docx》由会员分享,可在线阅读,更多相关《基于单片机和lcd的电子钟设计.docx(55页珍藏版)》请在冰豆网上搜索。

基于单片机和lcd的电子钟设计.docx

基于单片机和lcd的电子钟设计

XXXXXXX

毕业设计

 

题目xxx

姓名xxx

学号xxx

专业班级xxx

分院xxx

指导教师xxx

 

xxxx年xxx月xxx日

利用单片机制作数字式时钟

摘要

本文主要介绍了利用凌阳科技公司的SPCE061A单片机作为主控制器设计的数字电子钟方案。

利用凌阳SPLC501A液晶模组,结合SPCE061A强大的语音功能,实现了公历、农历、秒表、闹钟及语音报时、播报日期等功能。

这是一种用新型凌阳单片机来实现的SPCE061A单片机作为控制器与SPLC501A液晶模组构成数字钟。

该方案充分利用单片机强大的编程、语音处理、中断以及多功能输入/输出口,并且操作简单、易于修改,是理想的数字控制系统。

本文首先简介凌阳单片机的发展,紧接着详细描述了凌阳单片机SPCE061A的组成原理及其功能。

根据它的组成原理及其指令系统,设计了数字电子钟控制系统的软件部分,包括主程序,显示,语音播放程序。

此类单片机特别是在数字处理及语音处理方面有着明显的优越性,所以本次设计中采用凌阳SPCE061A单片机,它能够使所设计的产品更具智能化和先进性。

关键词:

数字电子钟;SPCE061A;SPLC501A;语音;秒表;农历

 

第一章前言

20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。

忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。

但是,一旦重要事情,一时的耽误可能酿成大祸。

目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

下面是单片机的主要发展趋势。

单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。

从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。

这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

数字钟是采用数字电路实现对时、分、秒、数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播芯片自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到了广泛的应用。

随着科技的发展,人们对电子产品的应用要求越来越高,数字电子钟不但可以显示当前的时间,而且可以显示日期、农历、以及星期等,给人们的生活带来了方便。

另外数字钟还具备秒表和闹钟功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。

本方案利用凌阳科技公司的SPLC501A液晶模组作为显示模块,凌阳16位单片机SPCE061A作为主控芯片,充分利用SPCE061A精简开发板(简称61板)上面的三个按键,完成一个简易的数字系统——数字电子钟。

该数字钟既可以显示当前的日期和时间,又可以将当前的日期和时间播报出来,同时具有闹钟秒表等功能,满足了不同人的需要。

该方案的主要功能是在SPLC501A液晶模组上显示时间、日期,能通过SPCE061A的音频通道播报当前的日期和时间。

61板上面的三个按键可以控制实现所有的功能,在显示日期和时间状态下按KEY1键进入功能选择菜单,此时KEY2为下翻键,KEY3为上翻键,KEY1为确定键;在显示日期和时间状态下按KEY2键播报当前的时间,按KEY3键播报当前的日期,当KEY2、KEY3键同时按下时控制闹钟的开/关。

1.1系统功能

本系统利用凌阳科技公司的SPCE061A单片机作为控制器,扩展SPLC501A液晶模组。

系统具有以下功能:

1.可以在SPLC501A液晶模组上面显示时间、日期、农历、星期、闹钟;

2.可以语音播报日期和时间;

3.整点报时功能;

4.具备闹钟功能;

5.闹钟的铃声可以选择;

6.具备秒表功能。

1.2基本参数

1.工作电压:

4.5V(3节干电池);

2.日期显示范围:

2001-2100年;

3.时间采用24小时制。

1.3注意事项

1.请将61板上的J5跳线选择3.3V;

2.在安装电池时注意正负极,否则容易烧坏芯片;

3.在印制电路板上的焊接元器件前要认真对照原理图,仔细查看印制电路板,找到对应的元器件功能区;

4.在电源测试期间请勿将单片机芯片插入座中,以免电源部分有问题造成芯片烧坏。

第二章模块特性简介

该数字钟系统主要由SPCE061A精简开发板(简称61板)和SPLC501A液晶模块构成。

系统通过61板上的三个按键控制SPLC501A液晶模块显示,通过扬声器播放语音。

所以这里主要介绍这两个模块。

2.1SPCE061A单片机

2.1.1SPCE061A简介

SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,具有易学易用且效率较高的一套指令系统和集成开发环境。

在此环境中,支持标准C语言,可以实现C语言与汇编语言的互相调用,并且,提供了语音录放和语音识别的函数库,只要了解库函数的使用方法,就可以很容易完成语音录放,为软件开发提供了方便的条件。

SPCE061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入/输出、通用异步串行接口、低电压监测和复位等电路,并且内置在线仿真电路ICE接口,使其能够快速地处理复杂的数字信号。

SPCE061A片内还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSPIDE),用户可以进行在线调试、仿真;而程序的下载(烧写)也是通过该接口完成。

图1SPCE061A内部结构图

2.1.2芯片特性

●16位μ'nSP微处理器;

●工作电压:

内核工作电压VDD为3.0~3.6V(CPU),I/O口工作电压VDDH为VDD~5.5V(I/O);

●CPU时钟:

0.32MHz~49.152MHz;  

●内置2K字SRAM;  

●内置32K闪存ROM;  

●可编程音频处理;  

●晶体振荡器;  

●系统处于备用状态下(时钟处于停止状态);  

●2个16位可编程定时器/计数器(可自动预置初始计数值);  

●2个10位DAC(数-模转换)输出通道;  

●32位通用可编程输入/输出端口;  

●14个中断源可来自定时器A/B,时基,2个外部时钟源输入,键唤醒;  

●具备触键唤醒的功能;  

●使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据; 

 ●锁相环PLL振荡器提供系统时钟信号;  

●32768Hz实时时钟;  

●7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;  

●声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;  

●具备串行设备接口;  

●低电压复位(LVR)功和低电压监测(LVD)功能;  

●内置在线仿真板(ICE,In-CircuitEmulator)。

2.2SPCE061A精简开发板

SPCE061A精简开发板(简称61板),是以凌阳16位单片机SPCE061A为核心的精简开发-仿真-实验板,大小相当于一张扑克牌,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。

61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含Mic输入部分和DAC音频输出部分)、复位电路等,采用电池供电,方便学生随身携带!

使学生在掌握软件的同时,熟悉单片机硬件的设计制作,锻炼学生的动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会!

61板上有调试器接口(Probe接口)以及下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合unSPIDE,可方便地在板上实现程序的下载、在线仿真调试。

61板上的主要功能模块如下:

1.SPCE061A单片机最小系统外围电路模块;

2.电源输入模块;

3.音频电路(包含Mic输入、DAC音频功放输出)模块;

4.按键模块;

5.I/O端口接口模块;

6.调试、下载接口模块;

图2为61板的实物图:

图261板实物图

2.3SPLC501A液晶模组

SPLC501液晶显示模组采用的驱动控制芯片为凌阳科技的SPLC501A芯片,SPLC501A为液晶显示控制驱动器,SPLC501A单芯片液晶驱动,可以直接与其他微控制器接口总线相连。

微控制器可以将显示数据通过8位数据总线或者串行接口写到SPLC501A的显存中。

SPLC501A内置8580位显示RAM。

RAM中的一位数据控制液晶屏上的一个象素点的亮、暗状态:

“1”亮“0”暗。

具有65行驱动输出和132列驱动输出(注:

模组中的液晶显示面板仅为64行、128列)。

SPLC501液晶显示模组的显示器上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的;SPLC501A芯片中共有65(8Page×8bit+1)×132位的显示RAM区。

而显示器的显示点阵大小为64×128点,所以实际上在SPLC501液晶显示模组中有用的显示RAM区为64×128位;按byte为单位划分,共分为8个Page,每个Page为8行,而每一行有128位(即128列)。

如要点亮LCD屏上的某一个点时,实际上就是对该点所对应的显示RAM区中的某一位进行置1操作;所以就要确定该点所处的行地址、列地址。

SPLC501液晶显示模组的行地址实际上就是Page的信息,每一个Page应有8行;而列地址则表示该点的横坐标,在屏上为从左到右排列,Page中的一个Byte对应的是一列(8行,即8个点),共128列。

可以根据这样的关系在程序中控制LCD显示屏的显示。

SPLC501A液晶模组具有以下特性:

1.显示模式:

黄色模式STN液晶;

2.显示格式:

128×64点阵的图形液晶;

3.输入数据:

兼容68/80系列MPU时序。

更详细的资料请参考SPLC501A的Datasheet,SPLC501A液晶模组的实物图如图3所示:

图3SPLC501A液晶模组实物图

2.4语音的设计及工作原理

本次设计的要求为整个系统在运行时能够根据要求及时的发出声音,以增加效果。

为了配合设计要求,设计了语音模块。

语音是SPLC501A的一大特点。

应用SPLC501A可以方便的实现语音的录放,该芯片拥有8路10位精度的AD。

其中1路AD为音频转化通道,并且内置自动增益电路。

这为语音的录入提供方便的硬件条件。

2路10位精度的DA,只需外接1个功放即可完成语音播放。

一般都是用C语言作为主程序,用汇编语言编制各种模块,供主程序调用。

凌阳音频格式常用的有3种,将压缩前的数据量比上压缩后的数据量即可以得到凌阳不同音频格式压缩比:

SACMA2000:

压缩比为8:

1,8:

1.25,8:

1.5;

SACMS480:

压缩比为80:

3,80:

4.5;

SACMS240:

压缩比为80:

1.5;

压缩比越大,存储空间越小,更加节省资源。

2.5系统总体方案介绍

电子钟的系统结构如图4,图5为电子钟功能结构图,61板作为整个系统的控制中心,负责控制键盘扫描;年、月、日、星期以及时间的计算;SPLC501A液晶显示的驱动;并根据按键值播报当前的日期或者时间。

SPLC501A液晶显示模组主要用来显示当前的时间,日期,以及显示功能选择菜单和时间日期调整菜单。

 在声音的处理上主要采用凌阳科技的语音压缩格式,将需要播放的声音压缩存在SPR模组里面,然后通过61板将语音资源取出播放出来。

在图片的处理上,采用SPLC501液晶模组,使用配套的DMTool工具将需要显示的图片实现提取出图片资源烧写到SPCE061A中,然后通过61板控制SPLC501A播放出来。

本系统采用了语音的录入和输出播放。

图4系统结构框图

图5功能结构图

用61板控制数字钟系统,使用了IOA口的高八位、IOB的4、5、6共11个I/O口连接SPLC501A液晶模组,另外使用了61板的语音输出模块;以及61板上的三个按键,硬件连接如图7所示:

电路连接如图7,IOA的高八位接到液晶模组的八个数据端,同时也连接了液晶模组的电源,即直接用一根10pin的排线连接61板“+”、IOA8~15、“-”与SPLC501A液晶显示模组的“+”、DB0~7、“-”,主要用来向液晶模组传送命令和数据;IOB6接EP,IOB5接R/W,IOB4接AO,用来控制液晶的显示和工作方式。

注意电源的正负极不要接反;DB0连接IOA8,DB7连接IOA15,也不要接反。

图6电路连接图

第三章系统硬件设计

3.1SPCE061A最小系统

SPCE061A最小系统包括SPCE061A芯片及其外围的基本模块,其中外围的基本模块有:

晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等,如图7所示。

图7SPCE061A最小系统

3.2电源模块

SPCE061A板采用3节5号电池进行供电,由J10接入,其中前后两组电容用来去耦滤波,使其供给芯片的电源更加干净平滑。

为了获得标准的3.3伏电压,在电路上加入SPY0029三端稳压器和两个二极管,是为了防止误将电源接反造成不必要损失而设置的。

在操作过程中千万不要将电源接反,因为反向电压超过一定值,二极管将会被损坏,达不到保护的目的。

后面的零电阻及其电源分成不同的几路是为了减少电磁干扰设置的。

图8是电源部分的电路,4.5V直流电压经过SPY0029后产生3.3V给整个系统供电。

SPY0029是凌阳公司设计的电压调整IC,采用CMOS工艺。

SPY0029具有静态电流低、驱动能力强、线性调整出色等特点。

4.2图中的VDDH3为SPCE061A的I/O电平参考,接SPCE061A的51脚,这种接法使得I/O输出高电平为3.3V;VDDP为PLL锁相环电源,接SPCE061A的7脚;VDD和VDDA分别为数字电源与模拟电源,分别接SPCE061A的15脚和36脚;AVSS1是模拟地,接SPCE061A的24脚;VSS是数字地,接SPCE061A的38脚;AVSS2接音频输出电路的AVSS2。

61板电源模块电路如图8,SPCE061A的内核供电为3.3V,而I/O端口可接3.3V~5V,所以在电源模块(61板上)中有一个端口电平选择跳线,如图中的J5。

本系统需要的端口高电平为3.3V,所以图8中的J5跳线需要跳到2和3上。

图8电源模块

3.3音频输出模块

音频输出(D/A)部分的原理图如图9所示,可以直接听喇叭输出的声音。

图中的SPY0030也是凌阳公司的产品。

它的详细说明可以参见SPY0030datasheet。

和LM386相比,SPY0030还具有下述优势,比如LM386工作电压需在4V以上,SPY0030仅需2.4V即可工作(两颗电池即可工作);LM386输出功率100mW以下,SPY0030约700mW。

芯片将声音处理后输出(J2),经SPY0030音频放大输出(J3)通过扬声器还原为声音。

SPY0030A是凌阳公司开发的专门用于语音放大的芯片。

SPY0030的输入电压的范围是2.4——6.0伏,该电路中采用的电压是3.3伏。

SPCE061A内置2路10位DAC,只需要外接功放电路即可完成语音的播放。

图9音频输出电路图

3.4液晶显示模块

3.4.1显示RAM区映射情况

SPLC501A液晶模组为128×64点阵模式,面板采用STN(SuperTwistedNematic)超扭曲相列技术制成,非常容易通过接口被访问。

模组上的液晶显示器采用凌阳科技的SPLC501芯片作为LCD驱动和控制器,为128X64点阵图形液晶显示器。

表1SPLC501液晶显示模组的基本参数

显示模式

黄色模式STN液晶

显示格式

128X64点阵地图形液晶显示

输入数据

兼容68/80系列MPU数据输入

背光

黄绿色LED

模块尺寸

72.8(长)×73.6(宽)×9.5(高)mm

视屏尺寸

58.84(宽)×35.79(长)mm

点大小

0.42(宽)×0.51(长)mm

注意事项SPLC501液晶显示模组中,接口引脚:

“+”、“V3”分别为电源输入端和高电平引针(供时序选择跳线用),而“-”、“GND”都是接地引脚。

表2接口引脚名

接口引脚名

说明

CS1

片选,低有效

RES

复位脚

A0

数据命令选择脚

R/W

对于6800系列MPU的读/写信号(R/W)

对于8080系列MPU的写信号(W/R)

EP

对于6800系列MPU的时钟信号使能脚(EP)

对于8080系列MPU的读信号(RD)

DB0

8位数据总线

DB1

DB2

DB3

DB4

DB5

DB6

DB7

VR

端口输出电压

C86

C86=’H’选择6800MPU系列

C86=’L’选择8080MPU系列

PS

串、并行时序选择

3.4.2SPLC501驱动控制器芯片

SPLC501液晶显示模组采用的驱动控制芯片为凌阳科技的SPLC501A芯片,SPLC501A为液晶显示控制驱动器,集行、列驱动器和控制器于一体,广泛应用于小规模液晶显示模块。

SPLC501A单芯片液晶驱动,可以直接与其他微控制器接口总线相连。

微控制器可以将显示数据通过8位数据总线或者串行接口写到SPLC501A的显存中。

下列是SPLC501A的特点:

内置8580位显示RAM。

RAM中的一位数据控制液晶屏上的一个象素点的亮、暗状态。

“1”亮“0”暗;

具有65行驱动输出和132列驱动输出(注:

模组中的液晶显示面板仅为64行、128列);

可以直接与80系列和68系列微处理器相连;

内置晶振电路,也可以外接晶振;

工作温度范围为-40摄氏度~+85摄氏度。

其电路原理图如图10所示:

图10液晶模组电路

 

SPLC501A液晶显示模组提供了8080和6800的并行操作时序,也提供了串行的操作时序,用户可以通过对PS、C86引脚接不同的电平来选择操作的时序(8080操作时序接线图:

(PS接VDD,C86接VSS),6800操作时序接线图:

(PS接VDD,C86接VDD),行操作时序接线图:

(PS接VSS,C86接VSS或VDD都可))。

SPLC501液晶显示模组中,设置了PS和C86的跳线,供用户选择操作时序。

 

第四章系统软件设计

4.1软件的结构

下图中可以看出各文件之间的调用关系。

图11软件结构

数字钟主要还是软件实现的,数字钟的软件设计由以下程序构成:

1、main.c:

实现系统的初始化、显示开机画面、键盘扫描和语音播报;

2、system.c:

包含工程中大部分的功能函数,包括各种界面的显示、时间和日期的调整、秒表的调整、闹钟的时间设定、闹钟的铃声选择等;

3、key.c:

键盘扫描文件,文件中定义了键盘扫描函数、延时函数、用来实现对键盘的扫描等功能、键盘扫描采用查询方式;

4、isr.asm:

中断服务函数文件,实现语音解码、秒表以及时间、日期的修改;

5、speak.c:

语音播报函数,实现语音播报日期、时间以及闹钟。

4.2各模块程序的说明

4.2.1概述

由于凌阳SPCEA061A,使得外围电路变的更简单。

制作好系统的硬件电路后,整个系统的主体任务主要落在了程序的编写上。

SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,具有易学易用且效率较高的一套指令系统和集成开发环境。

在此环境中,支持标准C语言,可以实现C语言与汇编语言的互相调用,并且,提供了语音录放和语音识别的函数库,只要了解库函数的使用方法,就可以很容易完成语音录放,为软件开发提供了方便的条件。

此次系统采用了模块程序结构,模块程序结构包括了初始化,系统主程序模块,语音播放模块,显示模块。

C语言属于高级语言,有着汇编语言无法比拟的优点,而SPCE061A开发系统抓住了这个关键,两者结合,充分发挥各自的优势。

在用到语音的时候,一般都是用C语言作为主程序,用汇编语言编制各种模块,供主程序调用。

本系统采用了这种编制方法使得相互调用非常简单。

4.2.2主程序

主程序流程如图12所示,在主程序中初始化了整个工程中用到的变量,初始化了液晶显示模块。

开2Hz中断实现计时。

在主程序中调用了键盘扫描程序,对IOA口的低三位进行扫描,如果有键按下,就把相应的键值存入到一个变量中,通过主程序来判断是哪个键按下,并执行相应的功能:

若是KEY1键按下,则会进入功能选择菜单,此时KEY1就会为确定键,KEY2为下翻键,KEY3为上翻键;若是KEY2键按下,播报时间;若是KEY3键按下,播报当前的日期;KEY2、KEY3键同时按下控制闹钟的开/关。

图12主程序流程图

4.2.3中断服务程序

中断服务程序有三个:

一个是2Hz中断服务程序,用来计时;一个是1KHz中断服务程序,用于秒表计时;另外一个是FIQ中断服务程序,用来播放语音。

程序的流程分别如图13、图14、图15。

图13IRQ5时基中断流程图

另外一个是FIQ中断服务程序,用来播放语音。

图14IRQ4时基中断流程图

图15FIQ中断程序

4.2.4时间日期模块

时间日期程序模块的流程图如图16所示,该模块用到了2Hz的时基中断,用来实现计时,同时实现了日期的更新,其中农历是使用查表的方法来实现的。

图16时间日期模块流程图

4.2.5SPLC501液晶显示模组显示汉字

利用SPLC501液晶显示模组显示汉字比显示英文字符稍微复杂一点,因为英文字符在ASCII码中都有对应字符,而SPLC501液晶显示模组显示的都是ASCII码,汉字却不能与ASCII码对应,所以要先用字模提取工具把汉字提取成字模数据,才能显示。

利用SPLC501液晶显示模组显示汉字需要图17的操作过程。

新建一个工程;利用字模提取工具提取字模数据;把字模数据文件保存在工程文件夹,以方便工程调用;添加字模数据文件到工程,程序可以直接使用这些字模数据;拷贝并添加驱动程序文件;编写程序;运行显示。

利用SPLC501液晶显示模组显示汉字的过程见图17,和显示英文字符的方法类似,所不同的是显示汉字的API函数为LC

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

当前位置:首页 > 高等教育 > 经济学

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

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