基于凌阳单片机和lcd的电子钟设计.doc
《基于凌阳单片机和lcd的电子钟设计.doc》由会员分享,可在线阅读,更多相关《基于凌阳单片机和lcd的电子钟设计.doc(59页珍藏版)》请在咨信网上搜索。
毕业设计 利用单片机制作数字式时钟 中文摘要 本文主要介绍了利用凌阳科技公司的SPCE061A单片机作为主控制器设计的数字电子钟方案。利用凌阳SPLC501A液晶模组,结合SPCE061A强大的语音功能,实现了公历、农历、秒表、闹钟及语音报时、播报日期等功能。这是一种用新型凌阳单片机来实现的SPCE061A单片机作为控制器与SPLC501A液晶模组构成数字钟。该方案充分利用单片机强大的编程、语音处理、中断以及多功能输入/输出口,并且操作简单、易于修改,是理想的数字控制系统。 本文首先简介凌阳单片机的发展,紧接着详细描述了凌阳单片机SPCE061A的组成原理及其功能。根据它的组成原理及其指令系统,设计了数字电子钟控制系统的软件部分,包括主程序,显示,语音播放程序。此类单片机特别是在数字处理及语音处理方面有着明显的优越性,所以本次设计中采用凌阳SPCE061A单片机,它能够使所设计的产品更具智能化和先进性。 关键词: 数字电子钟; SPCE061A; SPLC501A ;语音 ;秒表 ;农历 目 录 第一章 前言 1 1.1系统功能 2 1.2基本参数 2 1.3注意事项 2 第二章 模块特性简介 3 2.1 SPCE061A单片机 3 2.1.1 SPCE061A简介 3 2.1.2 芯片特性 4 2.2 SPCE061A精简开发板 5 2.3 SPLC501A液晶模组 6 2.4 语音的设计及工作原理 7 2.5 系统总体方案介绍 8 第三章 系统硬件设计 11 3.1 SPCE061A最小系统 11 3.2 电源模块 11 3.3 音频输出模块 12 3.4 液晶显示模块 13 3.4.1 显示RAM区映射情况 13 3.4.2 SPLC501驱动控制器芯片 15 第四章 系统软件设计 17 4.1软件的结构 17 4.2各模块程序的说明 18 4.2.1概述 18 4.2.2主程序 18 4.2.3中断服务程序 19 4.2.4时间日期模块 21 4.2.5 SPLC501 液晶显示模组显示汉字 22 4.2.6常用功能函数介绍(用户API) 24 第五章 操作步骤 28 5.1 软件的操作步骤 28 5.1.1 LCD汉字显示操作步骤 28 5.1.2程序烧入硬件操作步骤 31 5.1.3语音播放操作步骤 33 5.2操作界面 34 第六章 结论 37 参考文献 38 致 谢 39 附录一 软件编写程序 40 附录二 主要元器件清单 48 第一章 前言 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.1 SPCE061A单片机 2.1.1 SPCE061A简介 SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,具有易学易用且效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与汇编语言的互相调用,并且,提供了语音录放和语音识别的函数库,只要了解库函数的使用方法,就可以很容易完成语音录放,为软件开发提供了方便的条件。 SPCE061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入/输出、通用异步串行接口、低电压监测和复位等电路,并且内置在线仿真电路ICE接口,使其能够快速地处理复杂的数字信号。 SPCE061A片内还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSP IDE),用户可以进行在线调试、仿真;而程序的下载(烧写)也是通过该接口完成。 图 1 SPCE061A内部结构图 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- Circuit Emulator)。 2.2 SPCE061A精简开发板 SPCE061A精简开发板(简称61板),是以凌阳16位单片机SPCE061A为核心的精简开发-仿真-实验板,大小相当于一张扑克牌,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含Mic输入部分和DAC音频输出部分)、复位电路等,采用电池供电,方便学生随身携带!使学生在掌握软件的同时,熟悉单片机硬件的设计制作,锻炼学生的动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会!61板上有调试器接口(Probe接口)以及下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合unSP IDE,可方便地在板上实现程序的下载、在线仿真调试。 61板上的主要功能模块如下: 1.SPCE061A单片机最小系统外围电路模块; 2.电源输入模块; 3.音频电路(包含Mic输入、DAC音频功放输出)模块; 4.按键模块; 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 列驱动输出(注:模组中的液晶显示面板仅为64 行、128 列)。SPLC501液晶显示模组的显示器上的显示点与驱动控制芯片中的显示缓存RAM 是一一对应的;SPLC501A芯片中共有65(8 Page ×8 bit+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所示: 图 3 SPLC501A 液晶模组实物图 2.4 语音的设计及工作原理 本次设计的要求为整个系统在运行时能够根据要求及时的发出声音,以增加效果。为了配合设计要求,设计了语音模块。语音是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 S240: 压缩比为80:1.5; 压缩比越大,存储空间越小,更加节省资源。 2.5 系统总体方案介绍 电子钟的系统结构如图4,图5为电子钟功能结构图 ,61板作为整个系统的控制中心,负责控制键盘扫描;年、月、日、星期以及时间的计算; SPLC501A液晶显示的驱动;并根据按键值播报当前的日期或者时间。SPLC501A液晶显示模组主要用来显示当前的时间,日期,以及显示功能选择菜单和时间日期调整菜单。 在声音的处理上主要采用凌阳科技的语音压缩格式,将需要播放的声音压缩存在SPR模组里面,然后通过61板将语音资源取出播放出来。在图片的处理上,采用SPLC501液晶模组,使用配套的DM Tool工具将需要显示的图片实现提取出图片资源烧写到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.1 SPCE061A最小系统 SPCE061A最小系统包括SPCE061A芯片及其外围的基本模块,其中外围的基本模块有:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等,如图7所示。 图 7 SPCE061A最小系统 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也是凌阳公司的产品。它的详细说明可以参见SPY0030 data sheet。和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(Super Twisted Nematic)超扭曲相列技术制成,非常容易通过接口被访问。模组上的液晶显示器采用凌阳科技的SPLC501芯片作为LCD驱动和控制器,为128X64点阵图形液晶显示器。 表1 SPLC501液晶显示模组的基本参数 显示模式 黄色模式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.2 SPLC501驱动控制器芯片 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。 图 13 IRQ5时基中断流程图 另外一个是FIQ中断服务程序,用来播放语音。 图 14 IRQ4时基中断流程图 图 15 FIQ中断程序 4.2.4时间日期模块 时间日期程序模块的流程图如图16所示,该模块用到了2Hz的时基中断,用来实现计时,同时实现了日期的更新,其中农历是使用查表的方法来实现的。 图 16 时间日期模块流程图 4.2.5 SPLC501 液晶显示模组显示汉字 利用SPLC501 液晶显示模组显示汉字比显示英文字符稍微复杂一点,因为英文字符在ASCII 码中都有对应字符,而SPLC501 液晶显示模组显示的都是ASCII 码,汉字却不能与ASCII 码对应,所以要先用字模提取工具把汉字提取成字模数据,才能显示。 利用SPLC501 液晶显示模组显示汉字需要图17的操作过程。新建一个工程;利用字模提取工具提取字模数据;把字模数据文件保存在工程文件夹,以方便工程调用;添加字模数据文件到工程,程序可以直接使用这些字模数据;拷贝并添加驱动程序文件;编写程序;运行显示。利用SPLC501 液晶显示模组显示汉字的过程见图17,和显示英文字符的方法类似,所不同的是显示汉字的API 函数为LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int *word)。 图 17 利用SPLC501液晶显示模组显示汉字需要的操作过程。 为了使用户能够方便快速地使用SPLC501液晶显示模组,凌阳大学计划提供了基于SPCE061A单片机的SPLC501液晶显示模组的驱动程序,包括文本显示、几何图形绘制和位图显示等功能函数,SPLC501液晶显示模组的驱动程序架构如图所示: 图 18 驱动程序架构 驱动程序由5个文件组成,分别为:底层驱动程序文件:SPLC501Driver_IO.inc、SPLC501Driver_IO.asm;用户API功能接口函数文件:SPLC501User.h、SPLC501User.c、DataOSforLCD.asm。 SPLC501Driver_IO.inc:该文件为底层驱动程序的头文件,主要对使用到的寄存器(如端口控制寄存器等)进行定义,还对SPCE061A与SPLC501液晶显示模组的接口进行配置;用户可以根据自已的需求来配置此文件,但要使端口的分配符合实际硬件的接线。 SPLC501Driver_IO.asm:该文件为底层驱动程序,负责与SPLC501液晶显示模组进行数据传输的任务,主要包括端口初始化、写控制指令、写数据、读数据等函数;这些函数仅供SPLC501User.c调用,不建议用户在应用程序中调用这些函数。 SPLC501User.h:该文件为用户API功能函数文件的头文件,主要对一些记住符进行定义,以及配置LCD的一些设置,另外该文件里还对SPLC501User.c中的函数作了外部声明,用户需要使用LCD的API功能函数时,需要把该文件包含在用户的C文件中,好可调用。 SPLC501User.c:文件中定义了针对LCD显示的各种API功能函数。 DataOSforLCD.asm:该文件中提供了一些供API功能函数调用的数据处理子程序,主要完成显示效果的叠加、画圆偏差量的计算等。 4.2.6常用功能函数介绍(用户API) SPLC501User.c文件中定义了常用的显示函数,包括:液晶显示控制函数、文本显示、图形显示等;下面介绍部分常用功能函数: 液晶显示控制类: 1,LCD501_Init 液晶初始化 程序:LCD501_Init(unsigned int InitialData) 描述:液晶显示初始化函数 参数:unsigned int InitialData 初始化显示的字,低八位有效 返回:无 注意:在使用LCD前,首先应执行该函数,使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(void) 描述:设置图形显示模式 参数:无 返回: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 获取当前文本字体 程序: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 显示字符的起始列(0~128) y 显示字符的起始行(0~63) a ASCII码 返回:无 注意:无 4,LCD501_PutString 显示字符串 程序:void LCD501_PutString(int x,int y,unsigned int a) [8x16] [6X8] 描述:显时8X16、6X8的自带ASCII字符,任意行定位 参数:x 显示字符的起始列(0~128) y 显示字符的起始行(0~63) a ASCII码 返回:无 注意:无 5,LCD501_Bitmap 位图显示/汉字显示 程序:void LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int *word) 描述:DM Tool取的汉字字模、位图字模显示函数 参数:x 显示字符的起始列(0~128) y 要显示的字模的起始行(0~64-y_whide) *word 要显示的汉字字模的数据首地址 返回:无 注意:只显示用DM Tool取字模软件所取的汉字字模数据;该函数可以在指定位置显示位图。参数x和y是位图的左上角坐标。word是“位图数据”的起始地址。“位图数据”的第一个Word声明了位图的大小,低8位代表位图宽度,高8位代表位图高度。如0x172B表示位图的宽为43像素,高为23像素。从第二个Word开始描述位图每个点的颜色(1-黑色,0-白色)。点对应每个数据位的情况为:从下到上,自左到右,以WORD(16bit)为存储单位,不足16位的补0。可以利用凌阳大学计划提供的DM Tool字模提取工具提取出汉字或BMP图像的字模数据,然后直接引用由其生成的字模数组3SPLC5401液晶显示模组控制流程 ,利用模组资料中提供的SPLC501液晶显示模组驱动程序进行LCD显示编程时,一定要在调用文本显示或图形显示函数,以及控制类函数前调用LCD的初始化函数;在LCD初始化程序中,会进行端口初始化、LCD初始设置以及变量初始化等。 第五章 操作步骤 5.1 软件的操作步骤 5.1.1 LCD汉字显示操作步骤 1.DM Tool字模提取工具与显示英文字符(ASCII 码)不同,汉字不能直接显示在点阵的LCD 显示器上,而是要借助一个工具,先把汉字转换成LCD 显示器能显示的形式。凌阳科技教育推广中心提供了针对unSP 系列16 位单片机的字模数据提取工具——DM Tool;可以利用此工具提取汉字字模、BMP 位图字模,还可以很方便地提取ASCII 码字模。DM Tool 在大学计划网站SPLC501 液晶模组资料里提供。 下面介绍利用DM Tool 字模提取工具提取汉字字模的步骤。 第一步:安装好DM Tool 后,在[开始]-[程序]-[sunplus]-[DM Tool]打开DM。 图19 DM Tool 界面 第二步:选择[File]—[News]菜单项,新建工程,如图 20所示: 图 20 新建工程 选择后,即新建了一个工程;如图21所示。用户可以选择[File]菜单中的[Save]菜单项来保存工程,也可以直接对工程进行操作,进行字模数据提取的操作。 图 21 新建了一个工程 第三步:在输入区中输入汉字:列如罗江波波制作这时利用快捷键组合:“Ctrl+Enter”,完成汉字的输入操作,可以看到转换列表中出现“罗江波波制作”四个汉字的列表,而在操作区中也会出现汉字的点阵图。 第四步:进行字模数据的提取。选择菜单[File]中的[Export CChar file…]菜单项,或者直接用工具栏最右边的“Export”工具,打开字模数据生成窗口。 第五步:在字模数据生成窗口中,选择[File]菜单中的[Export CChar file]菜单项,或工具栏中的“Export CChar 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”中点击“OK”,即可生成保存有字模数据的两个文件:“Mychar.c”和“Mychar.h”;如图25所示: 图 24 选择路径和保存文件名 图 25 导出的字模数据文件 这时,汉字字模数据的生成操作已完成,已经生成了所需的字模数据文件:“Mychar.c”和“Mychar.h”。导出文件后,用户可以关闭字模数据生成窗口,返回到DM Tool 软件的主窗口,以便进行其它的操作,DM Tool 的使用方法可以参考DM Tool 的用户手册。导出的字模数据以数组的形式保存,可以直接包含到工程中进行引用。 5.1.2程序烧入硬件操作步骤 步骤一:根据图6数字钟连接示意图连接硬件,并连接好下载线。 步骤二:打开电池盒电源。 步骤三:启动u’nSP IDE。打开数字钟应用实例程序(路径:\\数字电子钟礼包\参考源代码\monthdayclock\ monthdayclock.sp),编译、链接确认没有错误。如图2- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 lcd 电子钟 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文