915153934基于单片机SPCE061A的数字电子钟毕业设计

上传人:痛*** 文档编号:67818142 上传时间:2022-04-01 格式:DOC 页数:50 大小:1.60MB
收藏 版权申诉 举报 下载
915153934基于单片机SPCE061A的数字电子钟毕业设计_第1页
第1页 / 共50页
915153934基于单片机SPCE061A的数字电子钟毕业设计_第2页
第2页 / 共50页
915153934基于单片机SPCE061A的数字电子钟毕业设计_第3页
第3页 / 共50页
资源描述:

《915153934基于单片机SPCE061A的数字电子钟毕业设计》由会员分享,可在线阅读,更多相关《915153934基于单片机SPCE061A的数字电子钟毕业设计(50页珍藏版)》请在装配图网上搜索。

1、目 录第一章 前言11.1系统功能21.2基本参数21.3注意事项2第二章 模块特性简介32.1 SPCE061A单片机32.1.1 SPCE061A简介32.1.2 芯片特性42.2 SPCE061A精简开发板52.3 SPLC501A液晶模组62.4 语音的设计及工作原理72.5 系统总体方案介绍8第三章 系统硬件设计113.1 SPCE061A最小系统113.2 电源模块113.3 音频输出模块123.4 液晶显示模块133.4.1 显示RAM区映射情况133.4.2 SPLC501驱动控制器芯片15第四章 系统软件设计174.1软件的结构174.2各模块程序的说明184.2.1概述18

2、4.2.2主程序184.2.3中断服务程序194.2.4时间日期模块214.2.5 SPLC501 液晶显示模组显示汉字224.2.6常用功能函数介绍(用户API)24第五章 操作步骤285.1 软件的操作步骤285.1.1 LCD汉字显示操作步骤285.1.2程序烧入硬件操作步骤315.1.3语音播放操作步骤335.2操作界面34第六章 结论37参考文献38致 谢39附录一 软件编写程序40附录二 主要元器件清单48第一章 前言20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进

3、一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控

4、制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。 数字钟是采用数字电路实现对时、分、秒、数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播芯片自动起闭路灯、定时开关烘箱、通

5、断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到了广泛的应用。随着科技的发展,人们对电子产品的应用要求越来越高,数字电子钟不但可以显示当前的时间,而且可以显示日期、农历、以及星期等,给人们的生活带来了方便。另外数字钟还具备秒表和闹钟功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。 本方案利用凌阳科技公司的SPLC501A液晶模组作为显示模块,凌阳16位单片机SPCE061A作为主控芯片,充分利用SPCE061A精简开发板(简称61板)上面的三个按键,完成一个简易的数字系统数字电子钟。 该数字钟既可以显示当前的日期和时间,

6、又可以将当前的日期和时间播报出来,同时具有闹钟秒表等功能,满足了不同人的需要。 该方案的主要功能是在SPLC501A液晶模组上显示时间、日期,能通过SPCE061A的音频通道播报当前的日期和时间。61板上面的三个按键可以控制实现所有的功能,在显示日期和时间状态下按KEY1键进入功能选择菜单,此时KEY2为下翻键,KEY3为上翻键,KEY1为确定键;在显示日期和时间状态下按KEY2键播报当前的时间,按KEY3键播报当前的日期,当KEY2、KEY3键同时按下时控制闹钟的开/关。 1.1系统功能 本系统利用凌阳科技公司的SPCE061A单片机作为控制器,扩展SPLC501A液晶模组。系统具有以下功能

7、: 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在电源测试期间请勿将单片机芯片插入座中,以免电源部分有问题造成芯片烧坏。第

8、二章 模块特性简介该数字钟系统主要由SPCE061A精简开发板(简称61板)和SPLC501A液晶模块构成。系统通过61板上的三个按键控制SPLC501A液晶模块显示,通过扬声器播放语音。所以这里主要介绍这两个模块。 2.1 SPCE061A单片机 2.1.1 SPCE061A简介 SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,具有易学易用且效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与汇编语言的互相调用,并且,提供了语音录放和语音识别的函数库,只要了解库函数的使用方法,就可以很容易完成语音录放,为软件开发提供了方便的条件。 SPCE06

9、1A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入/输出、通用异步串行接口、低电压监测和复位等电路,并且内置在线仿真电路ICE接口,使其能够快速地处理复杂的数字信号。SPCE061A片内还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSP IDE),用户可以进行在线调试、仿真;而程序的下载(烧写)也是通过该接口完成。 图 1 SPCE061A内部结构图2.1.2 芯片特性 16位nSP微处理器; 工作电压:内核工作电压VDD为3.03.6V(CPU),I/O口工作

10、电压VDDH为VDD5.5V(I/O); CPU时钟:0.32MHz49.152MHz; 内置2K字SRAM; 内置32K闪存ROM; 可编程音频处理; 晶体振荡器; 系统处于备用状态下(时钟处于停止状态); 2个16位可编程定时器/计数器(可自动预置初始计数值); 2个10位DAC(数-模转换)输出通道; 32位通用可编程输入/输出端口; 14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒; 具备触键唤醒的功能; 使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据; 锁相环PLL振荡器提供系统时钟信号; 32768Hz实时时钟; 7通道10位

11、电压模-数转换器(ADC)和单通道声音模-数转换器; 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能; 具备串行设备接口; 低电压复位(LVR)功和低电压监测(LVD)功能; 内置在线仿真板(ICE,In- Circuit Emulator)。2.2 SPCE061A精简开发板 SPCE061A精简开发板(简称61板),是以凌阳16位单片机SPCE061A为核心的精简开发仿真实验板,大小相当于一张扑克牌,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。61板除了具备单片机最小系统电

12、路外,还包括有电源电路、音频电路(含Mic输入部分和DAC音频输出部分)、复位电路等,采用电池供电,方便学生随身携带!使学生在掌握软件的同时,熟悉单片机硬件的设计制作,锻炼学生的动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会!61板上有调试器接口(Probe接口)以及下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合unSP IDE,可方便地在板上实现程序的下载、在线仿真调试。 61板上的主要功能模块如下: 1.SPCE061A单片机最小系统外围电路模块; 2.电源输入模块; 3.音频电路(包含Mic输入、DAC音频功放输出)模块; 4

13、.按键模块; 5.I/O端口接口模块; 6.调试、下载接口模块; 图2为61板的实物图: 图 2 61板实物图2.3 SPLC501A液晶模组SPLC501 液晶显示模组采用的驱动控制芯片为凌阳科技的SPLC501A 芯片,SPLC501A 为液晶显示控制驱动器,SPLC501A 单芯片液晶驱动,可以直接与其他微控制器接口总线相连。微控制器可以将显示数据通过8位数据总线或者串行接口写到SPLC501A的显存中。SPLC501A 内置8580位显示RAM。RAM中的一位数据控制液晶屏上的一个象素点的亮、暗状态:“1”亮“0”暗。具有65行驱动输出和132 列驱动输出(注:模组中的液晶显示面板仅为

14、64 行、128 列)。SPLC501液晶显示模组的显示器上的显示点与驱动控制芯片中的显示缓存RAM 是一一对应的;SPLC501A芯片中共有65(8 Page 8 bit+1) 132 位的显示RAM 区。而显示器的显示点阵大小为64128 点,所以实际上在SPLC501 液晶显示模组中有用的显示RAM 区为64128 位;按byte 为单位划分,共分为8个Page,每个Page为8行,而每一行有128位(即128 列)。如要点亮LCD屏上的某一个点时,实际上就是对该点所对应的显示RAM 区中的某一位进行置1 操作;所以就要确定该点所处的行地址、列地址。SPLC501 液晶显示模组的行地址实

15、际上就是Page的信息,每一个Page应有8 行;而列地址则表示该点的横坐标,在屏上为从左到右排列,Page中的一个Byte对应的是一列(8行,即8个点),共128 列。可以根据这样的关系在程序中控制LCD 显示屏的显示。SPLC501A液晶模组具有以下特性: 1.显示模式:黄色模式STN液晶; 2.显示格式:12864点阵的图形液晶; 3.输入数据:兼容68/80系列MPU时序。 更详细的资料请参考SPLC501A的Datasheet,SPLC501A液晶模组的实物图如图3所示: 图 3 SPLC501A 液晶模组实物图2.4 语音的设计及工作原理本次设计的要求为整个系统在运行时能够根据要求

16、及时的发出声音,以增加效果。为了配合设计要求,设计了语音模块。语音是SPLC501A的一大特点。应用SPLC501A可以方便的实现语音的录放,该芯片拥有8路10位精度的AD。其中1路AD为音频转化通道,并且内置自动增益电路。这为语音的录入提供方便的硬件条件。2路10位精度的DA,只需外接1个功放即可完成语音播放。一般都是用C语言作为主程序,用汇编语言编制各种模块,供主程序调用。凌阳音频格式常用的有3种,将压缩前的数据量比上压缩后的数据量即可以得到凌阳不同音频格式压缩比:SACM A2000:压缩比为8:1,8:1.25,8:1.5;SACM S480: 压缩比为80:3,80:4.5;SACM

17、 S240: 压缩比为80:1.5;压缩比越大,存储空间越小,更加节省资源。2.5 系统总体方案介绍 电子钟的系统结构如图4,图5为电子钟功能结构图 ,61板作为整个系统的控制中心,负责控制键盘扫描;年、月、日、星期以及时间的计算; SPLC501A液晶显示的驱动;并根据按键值播报当前的日期或者时间。SPLC501A液晶显示模组主要用来显示当前的时间,日期,以及显示功能选择菜单和时间日期调整菜单。在声音的处理上主要采用凌阳科技的语音压缩格式,将需要播放的声音压缩存在SPR模组里面,然后通过61板将语音资源取出播放出来。在图片的处理上,采用SPLC501液晶模组,使用配套的DM Tool工具将需

18、要显示的图片实现提取出图片资源烧写到SPCE061A中,然后通过61板控制SPLC501A播放出来。本系统采用了语音的录入和输出播放。 图 4 系统结构框图图 5 功能结构图用61板控制数字钟系统,使用了IOA口的高八位、IOB的4、5、6共11个I/O口连接SPLC501A液晶模组,另外使用了61板的语音输出模块;以及61板上的三个按键,硬件连接如图 7所示:电路连接如图7,IOA的高八位接到液晶模组的八个数据端,同时也连接了液晶模组的电源,即直接用一根10pin的排线连接61板“+”、IOA815、“-”与SPLC501A液晶显示模组的“+”、DB07、“-”,主要用来向液晶模组传送命令和

19、数据;IOB6接EP,IOB5接R/W,IOB4接AO,用来控制液晶的显示和工作方式。 注意电源的正负极不要接反;DB0连接IOA8,DB7连接IOA15,也不要接反。图 6 电路连接图第三章 系统硬件设计3.1 SPCE061A最小系统 SPCE061A最小系统包括SPCE061A芯片及其外围的基本模块,其中外围的基本模块有:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等,如图7所示。 图 7 SPCE061A最小系统3.2 电源模块 SPCE061A板采用3节5号电池进行供电,由J10接入,其中前后两组电容用来去耦滤波,使其供给芯片的电源更加干

20、净平滑。为了获得标准的3.3伏电压,在电路上加入SPY0029三端稳压器和两个二极管,是为了防止误将电源接反造成不必要损失而设置的。在操作过程中千万不要将电源接反,因为反向电压超过一定值,二极管将会被损坏,达不到保护的目的。后面的零电阻及其电源分成不同的几路是为了减少电磁干扰设置的。图 8是电源部分的电路,4.5V直流电压经过SPY0029后产生3.3V给整个系统供电。 SPY0029是凌阳公司设计的电压调整IC,采用CMOS工艺。SPY0029具有静态电流低、驱动能力强、线性调整出色等特点。4.2图中的VDDH3为SPCE061A的I/O电平参考,接SPCE061A的51脚,这种接法使得I/

21、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.3V5V,所以在电源模块(61板上)中有一个端口电平选择跳线,如图中的J5。本系统需要的端口高电平为3.3V,所以图8中的J5跳线需要跳到2和3上。 图 8 电源模块3.3 音频输出模块音频输出(D/A)部分的原理图如图9所

22、示,可以直接听喇叭输出的声音。图中的SPY0030也是凌阳公司的产品。它的详细说明可以参见SPY0030 data sheet。和LM386相比,SPY0030还具有下述优势,比如LM386工作电压需在4V以上, SPY0030仅需2.4V即可工作(两颗电池即可工作);LM386输出功率100mW以下, SPY0030约700mW。芯片将声音处理后输出(J2),经SPY0030音频放大输出(J3)通过扬声器还原为声音。SPY0030A是凌阳公司开发的专门用于语音放大的芯片。SPY0030的输入电压的范围是2.46.0伏,该电路中采用的电压是3.3伏。SPCE061A内置2路10位DAC,只需要

23、外接功放电路即可完成语音的播放。 图 9 音频输出电路图3.4 液晶显示模块3.4.1 显示RAM区映射情况 SPLC501A液晶模组为12864点阵模式,面板采用STN(Super Twisted Nematic)超扭曲相列技术制成,非常容易通过接口被访问。模组上的液晶显示器采用凌阳科技的SPLC501芯片作为LCD驱动和控制器,为128X64点阵图形液晶显示器。 表1 SPLC501液晶显示模组的基本参数显示模式 黄色模式STN液晶 显示格式 128X64点阵地图形液晶显示 输入数据 兼容68/80系列MPU数据输入 背光 黄绿色LED 模块尺寸 72.8(长)73.6(宽)9.5(高)m

24、m 视屏尺寸 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

25、DB7 VR 端口输出电压 C86 C86=H 选择6800MPU系列 C86=L 选择8080MPU系列 PS 串、并行时序选择 3.4.2 SPLC501驱动控制器芯片 SPLC501液晶显示模组采用的驱动控制芯片为凌阳科技的SPLC501A芯片,SPLC501A为液晶显示控制驱动器,集行、列驱动器和控制器于一体,广泛应用于小规模液晶显示模块。 SPLC501A单芯片液晶驱动,可以直接与其他微控制器接口总线相连。微控制器可以将显示数据通过8位数据总线或者串行接口写到SPLC501A的显存中。下列是SPLC501A的特点: 内置8580位显示RAM。RAM中的一位数据控制液晶屏上的一个象素点

26、的亮、暗状态。“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接V

27、SS或VDD都可) )。SPLC501液晶显示模组中,设置了PS和C86的跳线,供用户选择操作时序。第四章 系统软件设计4.1软件的结构下图中可以看出各文件之间的调用关系。 图 11 软件结构数字钟主要还是软件实现的,数字钟的软件设计由以下程序构成:1、main.c:实现系统的初始化、显示开机画面、键盘扫描和语音播报;2、system.c:包含工程中大部分的功能函数,包括各种界面的显示、时间和日期的调整、秒表的调整、闹钟的时间设定、闹钟的铃声选择等;3、key.c:键盘扫描文件,文件中定义了键盘扫描函数、延时函数、用来实现对键盘的扫描等功能、键盘扫描采用查询方式;4、isr.asm:中断服务函

28、数文件,实现语音解码、秒表以及时间、日期的修改;5、speak.c:语音播报函数,实现语音播报日期、时间以及闹钟。4.2各模块程序的说明4.2.1概述由于凌阳SPCEA061A,使得外围电路变的更简单。制作好系统的硬件电路后,整个系统的主体任务主要落在了程序的编写上。SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,具有易学易用且效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与汇编语言的互相调用,并且,提供了语音录放和语音识别的函数库,只要了解库函数的使用方法,就可以很容易完成语音录放,为软件开发提供了方便的条件。此次系统采用了模块程序结构,模

29、块程序结构包括了初始化,系统主程序模块,语音播放模块,显示模块。C语言属于高级语言,有着汇编语言无法比拟的优点,而SPCE061A开发系统抓住了这个关键,两者结合,充分发挥各自的优势。在用到语音的时候,一般都是用C语言作为主程序,用汇编语言编制各种模块,供主程序调用。本系统采用了这种编制方法使得相互调用非常简单。4.2.2主程序主程序流程如图12所示,在主程序中初始化了整个工程中用到的变量,初始化了液晶显 示模块。开2Hz中断实现计时。在主程序中调用了键盘扫描程序,对IOA口的低三位进行扫描,如果有键按下,就把相应的键值存入到一个变量中,通过主程序来判断是哪个键按下,并执行相应的功能:若是KE

30、Y1键按下,则会进入功能选择菜单,此时KEY1就会为确定键,KEY2为下翻键,KEY3为上翻键;若是KEY2键按下,播报时间;若是KEY3键按下,播报当前的日期;KEY2、KEY3键同时按下控制闹钟的开/关。图 12 主程序流程图4.2.3中断服务程序 中断服务程序有三个:一个是2Hz中断服务程序,用来计时;一个是1KHz中断服务程序,用于秒表计时;另外一个是FIQ中断服务程序,用来播放语音。程序的流程分别如图13、图14、图15。图 13 IRQ5时基中断流程图另外一个是FIQ中断服务程序,用来播放语音。图 14 IRQ4时基中断流程图图 15 FIQ中断程序4.2.4时间日期模块时间日期程

31、序模块的流程图如图16所示,该模块用到了2Hz的时基中断,用来实现计时,同时实现了日期的更新,其中农历是使用查表的方法来实现的。图 16 时间日期模块流程图4.2.5 SPLC501 液晶显示模组显示汉字利用SPLC501 液晶显示模组显示汉字比显示英文字符稍微复杂一点,因为英文字符在ASCII 码中都有对应字符,而SPLC501 液晶显示模组显示的都是ASCII 码,汉字却不能与ASCII 码对应,所以要先用字模提取工具把汉字提取成字模数据,才能显示。利用SPLC501 液晶显示模组显示汉字需要图17的操作过程。新建一个工程;利用字模提取工具提取字模数据;把字模数据文件保存在工程文件夹,以方

32、便工程调用;添加字模数据文件到工程,程序可以直接使用这些字模数据;拷贝并添加驱动程序文件;编写程序;运行显示。利用SPLC501 液晶显示模组显示汉字的过程见图17,和显示英文字符的方法类似,所不同的是显示汉字的API 函数为LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int *word)。 图 17 利用SPLC501液晶显示模组显示汉字需要的操作过程。为了使用户能够方便快速地使用SPLC501液晶显示模组,凌阳大学计划提供了基于SPCE061A单片机的SPLC501液晶显示模组的驱动程序,包括文本显示、几何图形绘制和位图显示等功

33、能函数,SPLC501液晶显示模组的驱动程序架构如图所示: 图 18 驱动程序架构驱动程序由5个文件组成,分别为:底层驱动程序文件:SPLC501Driver_IO.inc、SPLC501Driver_IO.asm;用户API功能接口函数文件:SPLC501User.h、SPLC501User.c、DataOSforLCD.asm。 SPLC501Driver_IO.inc:该文件为底层驱动程序的头文件,主要对使用到的寄存器(如端口控制寄存器等)进行定义,还对SPCE061A与SPLC501液晶显示模组的接口进行配置;用户可以根据自已的需求来配置此文件,但要使端口的分配符合实际硬件的接线。 S

34、PLC501Driver_IO.asm:该文件为底层驱动程序,负责与SPLC501液晶显示模组进行数据传输的任务,主要包括端口初始化、写控制指令、写数据、读数据等函数;这些函数仅供SPLC501User.c调用,不建议用户在应用程序中调用这些函数。 SPLC501User.h:该文件为用户API功能函数文件的头文件,主要对一些记住符进行定义,以及配置LCD的一些设置,另外该文件里还对SPLC501User.c中的函数作了外部声明,用户需要使用LCD的API功能函数时,需要把该文件包含在用户的C文件中,好可调用。 SPLC501User.c:文件中定义了针对LCD显示的各种API功能函数。 Da

35、taOSforLCD.asm:该文件中提供了一些供API功能函数调用的数据处理子程序,主要完成显示效果的叠加、画圆偏差量的计算等。 4.2.6常用功能函数介绍(用户API)SPLC501User.c文件中定义了常用的显示函数,包括:液晶显示控制函数、文本显示、图形显示等;下面介绍部分常用功能函数: 液晶显示控制类: 1,LCD501_Init 液晶初始化 程序:LCD501_Init(unsigned int InitialData) 描述:液晶显示初始化函数 参数:unsigned int InitialData 初始化显示的字,低八位有效 返回:无 注意:在使用LCD前,首先应执行该函数,

36、使LCD处于可以正常显示的状态 2,LCD501_ClrScreen 清屏 程序:LCD501_ClrScreen(unsigned int Mode) 描述:液晶整屏清屏函数 C语言调用 参数:unsigned int Mode 清屏类型Mode=1则全点亮,Mode=0内全清零 3,LCD501_ReverseColor 显示翻转 程序:void LCD501_ReverseColor(void) 描述:屏幕反色显示。每执行一次该函数,屏幕颜色翻转一次 5,LCD501_GetPaintMode 获取当前显示模式 程序:unsigned int LCD501_GetPaintMode(vo

37、id) 描述:设置图形显示模式 参数:无 返回:ModeCode - 图形显示模式,可以是下列数值之一: 0 PAINT_COVER: 1 PAINT_SET: 2 PAINT_CLR: 3 PAINT_REV: 4 PAINT_RECO: 注意:无 文本显示类函数: 1,LCD501_FontSet 设置文本字体 程序:void LCD501_FontSet(unsinged int Font) 8x16 6X8 描述::选择显示字符的大小类型 参数:Font 字符的类型选择 1 8X16 0 6X8 返回:无 注意:只针对显示驱动中包含的ASCII码显示 2,LCD501_FontGet

38、获取当前文本字体 程序:unsigned int LCD501_FontGet(void) 8x16 6X8 描述:获取当前显示字符的大小类型 返回:字符的类型选择 1 8X16 0 6X8 注意:只针对显示驱动中包含的ASCII码显示 3,LCD501_PutChar 显示单个字符 程序:void LCD501_PutChar(int x,int y,unsigned int a) 8x16 6X8 描述:显时8X16、6X8的自带ASCII字符,任意行定位 参数:x 显示字符的起始列(0128) y 显示字符的起始行(063) a ASCII码 返回:无 注意:无 4,LCD501_Put

39、String 显示字符串 程序:void LCD501_PutString(int x,int y,unsigned int a) 8x16 6X8 描述:显时8X16、6X8的自带ASCII字符,任意行定位 参数:x 显示字符的起始列(0128) y 显示字符的起始行(063) a ASCII码 返回:无 注意:无 5,LCD501_Bitmap 位图显示/汉字显示 程序:void LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int *word) 描述:DM Tool取的汉字字模、位图字模显示函数 参数:x 显示字符的起始列(01

40、28) y 要显示的字模的起始行(064-y_whide) *word 要显示的汉字字模的数据首地址 返回:无 注意:只显示用DM Tool取字模软件所取的汉字字模数据;该函数可以在指定位置显示位图。参数x和y是位图的左上角坐标。word是“位图数据”的起始地址。“位图数据”的第一个Word声明了位图的大小,低8位代表位图宽度,高8位代表位图高度。如0x172B表示位图的宽为43像素,高为23像素。从第二个Word开始描述位图每个点的颜色(1-黑色,0-白色)。点对应每个数据位的情况为:从下到上,自左到右,以WORD(16bit)为存储单位,不足16位的补0。可以利用凌阳大学计划提供的DM T

41、ool字模提取工具提取出汉字或BMP图像的字模数据,然后直接引用由其生成的字模数组3SPLC5401液晶显示模组控制流程 ,利用模组资料中提供的SPLC501液晶显示模组驱动程序进行LCD显示编程时,一定要在调用文本显示或图形显示函数,以及控制类函数前调用LCD的初始化函数;在LCD初始化程序中,会进行端口初始化、LCD初始设置以及变量初始化等。 第五章 操作步骤5.1 软件的操作步骤5.1.1 LCD汉字显示操作步骤1.DM Tool字模提取工具与显示英文字符(ASCII 码)不同,汉字不能直接显示在点阵的LCD 显示器上,而是要借助一个工具,先把汉字转换成LCD 显示器能显示的形式。凌阳科

42、技教育推广中心提供了针对unSP 系列16 位单片机的字模数据提取工具DM Tool;可以利用此工具提取汉字字模、BMP 位图字模,还可以很方便地提取ASCII 码字模。DM Tool 在大学计划网站SPLC501 液晶模组资料里提供。下面介绍利用DM Tool 字模提取工具提取汉字字模的步骤。第一步:安装好DM Tool 后,在开始-􀃆程序-􀃆sunplus-􀃆DM Tool打开DM。图19 DM Tool 界面第二步:选择FileNews菜单项,新建工程,如图 20所示:图 20 新建工程选择后,即新建了一个工程;如图21所示。用户可以

43、选择File菜单中的Save菜单项来保存工程,也可以直接对工程进行操作,进行字模数据提取的操作。图 21 新建了一个工程第三步:在输入区中输入汉字:列如罗江波波制作这时利用快捷键组合:“Ctrl+Enter”,完成汉字的输入操作,可以看到转换列表中出现“罗江波波制作”四个汉字的列表,而在操作区中也会出现汉字的点阵图。第四步:进行字模数据的提取。选择菜单File中的Export CChar file菜单项,或者直接用工具栏最右边的“Export”工具,打开字模数据生成窗口。第五步:在字模数据生成窗口中,选择File菜单中的Export CChar file菜单项,或工具栏中的“Export CC

44、har file”工具,开始生成数据,即打开了“Export CChar file”对话框,如图22和图23所示:图 22 选择“Export CChar file”选项打开对话框图 23 “Export CChar file”对话框第六步:在对话框的“Select”选项中,选择“Down to Up,Left to Right”选项;在“char .c file:”输入框的右边的工具,可以选择导出文件的路径和文件名,这里保存在“我的文档”中,文件名为Mychar”,如图24所示;然后点击“保存”返回“Export CChar file”对话框;再在“Export CCharfile”中点击“

45、OK”,即可生成保存有字模数据的两个文件:“Mychar.c”和“Mychar.h”;如图25所示:图 24 选择路径和保存文件名图 25 导出的字模数据文件这时,汉字字模数据的生成操作已完成,已经生成了所需的字模数据文件:“Mychar.c”和“Mychar.h”。导出文件后,用户可以关闭字模数据生成窗口,返回到DM Tool 软件的主窗口,以便进行其它的操作,DM Tool 的使用方法可以参考DM Tool 的用户手册。导出的字模数据以数组的形式保存,可以直接包含到工程中进行引用。5.1.2程序烧入硬件操作步骤步骤一:根据图6数字钟连接示意图连接硬件,并连接好下载线。 步骤二:打开电池盒电

46、源。 步骤三:启动unSP IDE。打开数字钟应用实例程序(路径:数字电子钟礼包参考源代码monthdayclock monthdayclock.sp),编译、链接确认没有错误。如图26所示: 图 26 打开数字钟应用实例程序步骤四:下载程序代码到61板上。 步骤五:下载成功后会有几秒钟的开机画面,随后会进入时间日期显示界面,初始时间设定为: 00:00:00,日期为2006年8月1日。 按KEY1键:进入功能选择界面。 按KEY2键:播报当前的时间。 按KEY3键:播报当前的日期。 KEY2、KEY3键同时按下:控制闹钟的开与关。具体操作流程图如图27:图 27 具体操作流程图5.1.3语音

47、播放操作步骤1. 新建一个工程ex4_ Recognise_LCD,在工程里建立一个新的C语言文件。2. 程序中会用到语音识别的API函数,先拷贝语音识别库bsrv222SDL.lib 到ex4_Recognise_LCD 工程文件夹, bsrv222SDL.lib 在实验仪指导书范例代码exampleIntExaex4_Recognise_LCD 路径可以找到。3. 拷贝语音识别头文件bsrSD.h、bsrSD.inc到ex4_Recognise_LCD 工程文件夹。4. 拷贝语音播放库sacmv26e.lib 和头文件A2000.h、a2000.inc到ex4_Recognise_LCD

48、工程文件夹。5. 拷贝支持sacmv26e.lib 的汇编语言文件hardware.asm 和头文件hardware.h、hardware.inc 到ex4_Recognise_LCD 工程文件夹。6. 拷贝SPLC501液晶显示DataOSforLCD.asm、SPLC501Driver_IO.asm、SPLC501Driver_IO.inc、SPLC501User.c 和SPLC501User.h 五个驱动程序(提供在实验仪指导书范例代码examplemodel_ExaDriverSPLC501driver)到ex4_Recognise_LCD 工程文件夹。7. 在IDE 集成开发环境的P

49、roject􀃆Setting􀃆link 中链接bsrv222SDL.lib 和sacmv26e.lib 库到工程中。8. 添加hardware.asm、DataOSforLCD.asm、SPLC501Driver_IO.asm 和SPLC501User.c 到工程文件的“Source Files”,添加bsrSD.h、bsrSD.inc、A2000.h、a2000.inc、hardware.h、hardware.inc、SPLC501Driver_IO.inc、SPLC501User.h 八个头文件到“Head Files”。8. 拷贝语音资源, 并加载到工

50、程当中; 语音资源可以从实验仪指导书范例代码exampleIntExaex4_Recognise_LCDvoice 路径下可以找到。9. 提取BMP 图片的字模数据,并将数据加载到工程中,图片的资源可以在实验仪指导书范例代码exampleIntExaex4_Recognise_LCDPic 路径下可以找到。10. 按照程序流程图编写程序。11. Rebuild All。12. 按照硬件连接图连接硬件。13. 下载程序,运行。5.2操作界面 1. 时间显示界面如图28所示 ,此时按KEY1键会进入功能选择菜单,按KEY2键播放当前的时间,按KEY3键播放当前的日期,KEY2和KEY3同时按下,切

51、换闹钟的开与关,当闹钟响时,按下三个键中的任何一个都可以关闭闹钟。图28 时间显示界面2.功能选择菜单界面如图29所示,此时KEY1为确定键,KEY2为下翻键,KEY3为上翻键。图29 功能选择界面 3.时间日期调整界面如图30所示:此时KEY1为确定键,KEY2为加一键,KEY3为减一键,图中闪烁的部分表示当前正在调整的选项,当设置完成后,按KEY1会自动退出设置界面。 图30 时间日期显示界面4.闹钟设置界面如图31所示,此时KEY1为确定键,KEY2为下翻键,KEY3为上翻键图 31 闹钟功能设置界面5.闹钟时间设置界面如图32所示,此时KEY1为确定键,KEY2为加一键,KEY3为减一

52、键,图中闪烁的部分表示当前正在调整的选项,当设置完成后,按KEY1会自动退出设置界面。 图32 闹钟时间设置界面6.闹钟铃声设置界面如图33所示,此时KEY1为确定键,KEY2为选择键,KEY3为播放当前选择的铃声键。图 33 闹钟铃声选择界面 7.秒表功能界面如图34所示,此时KEY1为退出键,KEY2为开始/暂停键,KEY3为清零键,只有当秒表停止运行时KEY3才有效。 图 34 秒表功能界面第六章 结论 SPCE061A芯片强大的语音处理功能,为本系统的设计提供了便利条件;32个可编程I/O口,使得扩展外围设备非常方便;CPU可工作在0.32MHz49MHz的主频范围,并且拥有丰富的中断

53、源,使得系统在语音播放、数据显示等方面游刃有余,扩展性强。根据硬件的选择和电路的搭配进行了软件的设计和编程,在实现硬件功能时,我们曾遇到一些问题,在参阅了许多资料结合实际条件选择了一种全面和简单的数字钟系统,其次在焊接中和元器件的购买都是在胡老师的指导下购买的。在这次毕业设计中锻炼了我的分析能力、解决问题和动手能力。 显然,这是一个比较简单的数字钟,在这个基础上,稍微改动,或者扩展其他模块可以设计出一个更加完善的数字钟系统。比如,扩展外部存储器可以增加铃声的数目、可以改变铃声的播放格式使铃声更加动听、增加掉电保护功能等等,以此来提高同学们的对单片机的兴趣。本次设计中,我从基础做起,做好每一个程

54、序模块,在最后的硬件调试中,取得成功,实现了数字钟的基本功能 ,达到了我们预期的设计目的。系统实物照片如图35。图 35 系统实物照片参考文献1 李全利,迟荣强.单片机原理及接口技术M,北京:高等教育出版社,2004.1.2 黄智伟.全国大学生电子设计竞赛系统设计M,北京:北京航空航天大学出版社,2006.6.3 黄智伟.凌阳单片机课程设计指导M,北京:北京航空航天大学出版社,2006.11.4 李广弟,朱月秀,王秀山.单片机基础M,北京:北京航空航天大学出版社,2001.7.5 赵曙光,郭万有,杨颂华.可编程逻辑器件原理开发与应用M,西安:西安电子科技大学, 2000.6 候伯亨.VHDL硬

55、件描述语言与数字逻辑电路设计M, 西安:西安电子科技大学出版社, 1999.7 康华光. 模拟电子技术基础(第四版)M, 武汉:华中理工大学出版社,1999.8 谭浩强.C语言程序设计(第二版)M,北京:清华大学出版社,1991.9 陈小忠,黄宁. 单片机接口技术实用子程序M,北京:北京人民邮电出版社, 2005.10 欧伟明,周春临,瞿遂春.电子信息系统设计M,西安电子科技大学出版社,2005.9.11 贾立新,王涌.电子系统设计与实践M,北京:清华大学出版社,2007.12 罗亚非.凌阳16位单片机应用基础M,北京:北京航空航天大学出版社,2003.13 SPLC501A液晶显示模块产品说

56、明书Z.凌阳大学计划网站().14 雷思孝.凌阳单片机原理及实用技术M,西安电子科技大学,2004.致 谢本论文是在导师教授胡敏的悉心指导下完成的。导师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。本论文从选题到完成,每一步都是在导师的指导下完成的,倾注了导师大量的心血。在此,谨向导师表示崇高的敬意和衷心的感谢! 罗江波 2008年5月于合肥学院附录一 软件编写程序工程名称:monthdayclock.sp

57、j/功能描述:万年历,农历和电子钟,具备拨报日期、时间、正点报时、秒表、闹钟等功能。/ IDE环境: SUNPLUS unSPTM IDE 2.0.0(or later)/涉及的库:CMacro1016.lib/ sacmv26e.lib/组成文件:main.c/system./Key.c/speak.c/IRQ.asm/miaobiao/asm/硬件连接:/ IOA8-15接液晶显示模块DB0-DB7/ IOB4接液晶显示模块AO/ IOB5接液晶显示模块的R/W/ IOB6接液晶显示模块的EP/文件名称:main.c/功能描述: 系统初始化,显示时间日期界面/ 按KEY1,进入时间调整和功

58、能选择菜单。/ 按KEY2,拨报当前的时间。/ 按KEY3,拨报当前的日期。/ KEY2、KEY3同时按下控制闹钟的开关/=#include SPCE061A.h#include SPLC501User.h#include model.h#define ring1 17 /播放第一个铃声的序号#define ring2 18 /播放第二个铃声的序号/=/对主函数调用的函数声明/=voidDelay(unsignedinttt);extern void display();extern void PlayRespond(unsigned int Result);extern void speak

59、time();extern void keyscan();extern void nextdisplay(); extern void setday();extern void set_ring();extern void setsecond(); extern void speaktime();extern void speakday();extern void keyinitial();/=/=/定义文件中用到的变量以及常数数组/=unsigned int keyflag1=0; /键按下标志1,控制进入功能选择菜单unsigned int keyflag2=0; /键按下标志2,unsigned int keyflag3=0; /键按下标志3,控制进入时间日期调整界面

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!