ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:285.06KB ,
资源ID:5870780      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5870780.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(手持式电子阅读器正文-实践教学.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

手持式电子阅读器正文-实践教学.docx

1、 手持式电子阅读器 摘要 本作品是以JingWei板及自制电路为硬件平台,以Windows CE为软件平台开发的一种嵌入式掌上设备。作品具有通信录编辑与浏览、文本记事、中英文文档阅读、手写输入与识别、闹钟、图片浏览、音频文件录放、语音记事、环境温、湿度参数实时监测、人体脉搏测试、屏幕硬拷贝输出、视频捕捉等功能。 本作品硬件由JingWei板、外围基本扩展电路和AV扩展选件三部分组成。其中,硬件接口逻辑通过修改Jingwei板上的CPLD内部逻辑实现。在硬件设计上,注重选择低功耗、高集成度的器件。系统应用软件使用EVC++开发,采用模块化设计方法,使每个模块相互独立,具有

2、可移植性,大大减少了程序的代码量。在软件设计中,注重人机界面的人性化,设计了统一风格的人机交互界面。 本作品可以作为集电子文档管理与阅读、语音图像实时采集、环境参数监测、个人护理等功能于一体的多功能手持式个人数字助理。 关键词 文档/图片阅读 音频录放 信号测量 屏幕硬拷贝 视频捕捉 Abstract A Hand E-reader based on JingWei board、Extended board and Windows CE is here. It has the following functions: Calling card editing and

3、 reading, WORDPAD, Document reading in Chinese or English, Handwriting inputting and recognition, Image browsing, Alarm clock, Audio playing and recording,Video capturing, Temperature and Humidity measuring,Pulse measuring and Printing. This production’s hardware is composed of JingWei Board, exte

4、nded circuits and extended AV module. Configuring CPLD of JingWei board achieved hardware’s interface Logic. Low power and high integration chips were chosen. The Friendly menus in a unitive style were designed. Programs were designed by EVC++ in blocking and absolute which reduced a lot of codes.

5、This production can be used as a PDA that has the functions mentioned above. Key words: Document/Image reading Audio playing and recording signal test Screen-printing Video capturing 第一章 系统设计方案 一、研制背景 嵌入式系统在各行各业中有着广泛的应用。随着芯片制造工艺的不断提高,嵌入式微处理器已经具有了集成度高、性能稳定、低功耗的特点。嵌入式微处理

6、器的功能也越来越强大。 Intel StrongARM SA-1110 是一款高度集成的32位嵌入式处理器。它融合了Intel公司的设计和处理技术以及ARM体系结构的低功耗性能。 JingWei板是一块以Intel Strong ARM SA-1110芯片为CPU的嵌入式系统开发板,它以子母板的形式设计,其中包含了Intel Strong ARM SA-1110中央处理器、32MB的Flash存储器、32MB 的SDRAM、RS232串行口和JTAG接口、按钮,拨码开关、5.7寸320×240 TFT LCD、触摸屏、CFⅡ型的网卡插槽、USB主从口、PCM3000音频模块、IrDA接口、

7、调试用LED指示灯及功能扩展接口。 Windows CE是支持多平台的、可定制的32位嵌入式操作系统。它在设计上完全实现模块化,可根据硬件平台和应用目的灵活定制。Windows CE支持Microsoft win32 API、ActiveX控件、消息队列、COM接口、ATL和MFC,并且内建了对多媒体、通信和安全的支持、提供了Pocket Internet Explorer、Pocket outlook、Pocket word等应用程序。 以上表明,使用基于SA-1110的JingWei板及Windows CE开发便携式电子设备在目前市场上具有广阔的前景。 二、设计目标—性能与指标 本

8、作品设计为一手持式掌上设备,具有通信录编辑与浏览、文本记事、中英文文档阅读、音频播放、语音记事、图片浏览、闹钟、环境温、湿度参数监测、脉搏测试及视频捕捉等功能。可以作为集电子文档管理、文字、语音、图像实时采集、Wav、MP3等音频文件的录放、环境温湿度实时检测、个人护理等功能于一体的多功能手持式个人数字助理,如电子课本/教案、环境检测仪、现场采访器、PDA、个人护理及远程监测等。 作为掌上设备,应具备超小体积,超低功耗等特点。在器件的选择上应选用集成度高、低功耗的器件。在设计过程中应使用新的软硬件设计技术及工具,如可视化嵌入式程序设计软件EVC++的使用。 在整体界面的设计上要具有良好的可

9、操作性,注重人性化及人机交互功能,充分发挥嵌入式操作系统的特点。 本作品应具有如下性能: l 通信录: 由名片编辑器和浏览器组成,名片编辑支持照片摄入,浏览器支持多种显示模板,并具有屏幕硬拷贝功能。 l 文本阅读器: 支持中英文显示,具有滚动翻页功能,并支持文本打印。 l 文本记事本: 支持文本编辑,录入,存储及回显,并具有自动加注时间标记等功能。 l 图片浏览: 支持BMP位图及自定义格式图片的显示,具有直播,上卷.下卷.左滚.水平栅卷,盒状收缩等6种切换方式。 l 手写记事本: 支持手写体自动识别及文本编辑,存盘等功能.手写识别采用笔划法,可以识别100多个汉

10、字。 l 闹钟: 包括闹铃时间设置,提示内容编辑,铃声选择或录入等功能。 l 音频播放器: 支持MP3和WAVE文件的播放,具有起始,暂停,停止,循环播放,随机播放和剩余时间显示等功能。 l 录音模块: 通过经纬板麦克风通道(即左声道)或基本扩展板上的音频模拟通道(右声道)录入20Hz--5KHz的语音及其他信号,并具有起始.暂停,停止等控制功能和录音回放功能.。 l 环境参数测量: 包括近程及远程温湿度实时测量和显示,具有历史记录曲线的显示,打印等功能。温度测量范围 -20℃~+44℃,相对湿度测量范围 10%~80% 。 l 脉搏信号测量: 分别通过经纬板音频声

11、道或基本扩展板采集通道实时采集和显示脉搏传感器信号变化曲线,分析显示脉搏频率,并具有曲线打印功能。频率范围0.8Hz~2.5Hz 。 l 屏幕硬拷贝模块: 实现屏幕任意区域的图象抓捕和打印输出。 l 动态AV模块: 从AV扩展选件获取音视频信号,具有彩色及黑白视频图象的动态刷新,冻结,存盘,语音的传输,存储,回放等功能.。 本作品除了实现上述功能外,同时应达到如下指标: 使用环境: 温度范围-20℃~45℃ 相对湿度范围10%~90%。 电源: 5V DC , < 1.0W (JingWei板除外) 温度测量: -20℃~45℃ ,精度1℃ 湿度测量: 10%~

12、90% ,精度 3% 脉搏测量: 50~150次/分, 精度 5次/秒 视频捕捉: 320 x 240 /220 x 148 , 16位彩色显示 音频采集: A律PCM,通带80Hz~5KHz 三、设计思想 本作品软件设计力求模块化,各个功能模块独立实现,具有可移植性。统一操作界面的风格,实现其标准化。 硬件设计上,尽量采用低功耗,小体积的器件,做到电路紧凑、稳定,使作品具备便携式产品的低功耗、体积小的特点。 在操作系统选择上,选择了可定制的Windows CE作为操作系统,并根据功能需要重新定制了Windows CE。在开发工具上采用可视化嵌入式开发软件EVC++,因为

13、EVC++3.0开发环境支持WinCE下应用程序的创建、测试和优化。 四、总体方案 本系统由JingWei板、外围基本扩展电路和AV扩展选件及应用软件等部分组成。作品设计分为Windows CE操作系统下的应用程序设计、音频模块程序设计、视频捕捉模块的设计、环境温、湿参数检测模块设计、电生理脉搏测试模块的设计、屏幕硬拷贝模块的设计、AV模块设计、通信模块设计等子系统来完成。 系统硬件组成如图1-1所示。系统使用JingWei板基本硬件资源实现图片/文本文档浏览、音频录放、电子闹钟等模块,通过修改板上的CPLD逻辑实现硬件接口电路;使用外围基本扩展电路实现环境温/湿度参数监测、脉搏信号测量

14、打印机接口、AV选件接口通讯等电路功能;使用AV扩展选件配合JingWei板实现音、视频图像数据的捕捉与回放。 系统软件采用EVC++开发。在软件设计上,采用进程管理模式实现程序的模块化设计,各模块程序在操作界面上力求风格统一,并将文件操作程序、设备控制程序、接口控制程序,物理端口控制程序等基本通用程序加以规范,统一使用。 图1-1 系统总体框图 第二章 硬件设计 一、 接口电路的CPLD逻辑设计 通过配置JingWei板的CPLD的CPL

15、D_EXT_1至CPLD_EXT_10共10根引脚,来控制基本扩展模块和AV扩展选件。我们分三种情况对CPLD的管脚进行配置。 1. 寄存器输出 接口电路中的A/D转换启动、数据锁存及锁存控制、I2C时钟输出等信号采用寄存器输出的方法实现。例如,CPLD_EXT_6 配置为温度传感器的I2C总线数据写入信号TSDA,实现的功能就是以数据线SA_D0为输入、以TSDA为输出的D触发器,逻辑实现如图2-1所示,具体硬件描述语言见附录。 图2-1 寄存器输出逻辑的CPLD设计示例 2. 读端口 接口电路中的I2C总线数据、串行AD数据、AV接口数据等信号需要经CPLD选通读入数据端口。

16、例如,CPLD_EXT_5配置为温度传感器的I2C总线数据读入到SA1110数据总线上。SA_D0的逻辑关系如图2-2所示,具体描述语言参见附录。 图2-2 读端口逻辑的CPLD设计示例 3. 使能选通输出 数据选通信号如PRN_WRn、AV_RD等由系统读/写使能信号SA_RD/SA_WEn、片选信号SA_CS1n、地址信号SA_ADDRLO由图2-3所示逻辑电路实现。表3-2列出了本系统扩展接口电路中CPLD相关引脚的逻辑配置情况。 图2-3 使能选通输出逻辑的CPLD设计示例

17、 二、 基本扩展模块电路设计 基本扩展模块框图如图2-4所示。 图2-4 基本扩展模块组成框图 1、环境温度测量电路 温度测量电路由量化精度达0.25°C的数字式温度传感器AD7416及I2C总线接口组成。电路原理如图2-5所示。 图2-5 温度采集电路原理图 温度采集电路通过I2C总线和数据传输协议访问AD7416内部地址寄存器及数据寄存器的方法读取温度数据。 I2C接口电路通过修改JingWei板上的CPLD的内部逻辑实现,即配置两个D触发器SENSOR_SDA和SE

18、NSOR_SCL分别向AD7416的SDA管脚和SCL管脚传输数据信号和时钟信号,通过I2C串行接口总线同JingWei板进行数据交换。 在数据读取过程中,AD7416作为从器件通过数据输入/输出线SDA以及时钟信号线SCL与总线相连。程序控制两个D触发器发出图2-6所示时序的信号,完成一次温度的读取过程。 图2-6 从AD7416读取数据时序 2、环境湿度测量电路 湿度测量电路由HIH-3610湿度传感器、AD7823串行AD转换及接口电路组成。图2-7给出了湿度测量电路的接线原理。

19、 图2-7 环境湿度监测电路 HIH-3610具有体积小、低功耗的特点,符合便携式产品的设计思想。HIH-3610线性放大的电压信号输出,更容易使传感器与控制器相连。 AD7823也是一款低功耗器件,支持持续供电模式和自动掉电工作模式,这里选择持续供电模式。AD7823持续供电模式操作时序如图2-8所示, 图2-8 AD7823方式一传输时序 当AD转换起动信号CONT变低时,起动AD转换,转换结束后,即5us后,由Dout引脚输出数字信号。该模式要求CONT的低电平宽度小于3us,而转换时间小于5us.CONT、SCLK、Dout等信号均由JingWei板的CPLD提供

20、接口。 3、脉搏测试电路 脉搏测试电路由压敏型脉搏传感器、AD623仪表放大器电路、AD7823串行AD转换电路及接口电路组成,如图2-9所示。 脉搏传感器是一种集成压敏传感器,采用单电源供电,其输出信号幅度约为1mv,需要将其放大60db以上,以便于进行AD采样;同时,为了减小共模干扰信号的影响,我们选择仪表放大器AD623进行差分放大。 图2-9 脉搏检测模块硬件原理 AD623是低功耗的单电源仪表放大器,在该电路中的连接如图2-10所示。图中,传感器信号经过C3、C4、R1、R2耦合到AD623的输入端,经差分放大后输出。AD623差分电路的增益由电阻R7

21、决定。增益G与R7的关系如式2-1所示,这里为选R7为100Ω。 G=1+100K/R7 (式 2-1) 脉搏测试电路的AD转换及其控制接口电路与湿度测量电路相似,这里不在赘述。 4、屏幕硬拷贝接口设计 屏幕硬拷贝输出接口按照通用打印机接口标准Centronics标准设计,如图 2-10所示。 图2-10屏幕硬拷贝模块硬件原理 当程序向PRN_WR地址端口发送执行输出命令时,通过JingWei板上的CPLD输出的PRN_WR信号将数据命令的低8位数据锁存到74HC574锁存器中。打印机的数据选通信号

22、由SENSOR_SCL的输出信号提供。打印机接口电路时序如图2-11所示。 图 2-11 屏幕硬拷贝接口输出时序 5、AV选件接口设计 本作品中,AV选件被设计成主设备的远程外设方式,主设备通过并行接口控制AV模块,并可从AV选件中录入整帧视频图像和音乐片断。AV选件接口信号包括8位数据总线,1位设备起动信号AVSTA、1位设备读信号和A/V选通信号。有关上述信号的具体设计可参考附录。 三、AV选件模块设计 AV选件由视频图像采集存储、音频采集存储回放及通讯接口等电路组成。该模块中的全部逻辑电路由一片Altera

23、公司的5万门低压供电芯片1K50QC208-3实现,视频电路围绕OmniVision公司的CMOS数字式彩色图像传感器OV7620设计,音频电路围绕MC145503 音频编解码器设计,接口电路直接由CPLD实现。在系统逻辑设计上,支持视频和音频电路分时工作或独立工作。AV选件原理框图如图2-12所示。 图2-12 AV模块硬件连接框图 OV7620是一款640×480象素的CMOS数字彩色/灰白图像传感器芯片,支持16位 / 8位彩色格式。OV7620的工作状态可以通过I2C控制,也可以通过上电、复位过程自动完成。本作品将OV7620设置在8位RGB LA

24、W模式。在该模式下,OV7620输出帧同步信号VSYNC、行同步信号VFER、像素打点时钟POIXELCLK及8位RGB LAW图像数据,其数据格式如图2-13所示,时序关系如图2-14所示。 图2-13 OV7620像素数据影射图 图2-14 OV7620工作时序 视频部分由START负脉冲启动视频采集存储逻辑,并将ACK应答信号置高,待帧同步信号到来后,开始在预设窗口(220 x 148)采集图像数据以自定义格式写入SRAM中,当一帧数据存储完毕时CPLD将ACK置低,控制器通过并口或RS232串口接收数据。图2-15给出了视频系统CPLD逻辑

25、设计顶层图,图2-16给出了视频系统的工作时序。 图2-15 AV选件视频部分CPLD顶层逻辑 图2-16视频系统工作时序 音频部分可由模块上的按键或接口信号STARA控制,分别工作在录音、放音或数据通信状态。录音时,麦克风信号经TL2082放大后送入音频编解码器MC145503压缩成A率PCM码流,在CPLD的控制下写入存储器;放音时,CPLD将存储器中的音频数据送入音频编解码器MC145503还原成模拟音频信号,经过功放后送扬声器播放;数据通信时,CPLD在接口信号的控制下,从存储器取出音频数据,通过接口电

26、路传送到主设备中。 第三章 软件设计 本作品应用程序以Windows CE操作系统为软件平台、使用EVC++开发工具设计。应用程序设计分为基本程序设计、功能模块程序设计、硬件资源编程及系统调试等部分。 一、基本程序设计 1、程序总体框架 在程序设计中采用模块化的设计方法,整个程序由一个主进程和若干个子进程组成。主进程负责管理系统进程, 在主进程中用户可以选择不同的子进程。如图3-1所示。 当用户选择子进程时,主进程根据用户的选择调用CreateProcess() 函数为相应子进程创建进程。子进程被创建后,主进程并不对子进程进行

27、监测管理。故程序中主进程与子进程在形式为父子关系,而在实际操作上,主进程与子进程为并行关系,二者在运行中是完全独立的。 图3-1 系统程序框架 2、窗口基本操作 在程序设计中,经常要对窗口进行一些基本操作,如画点、画线、块填充等。 画点使用CDC类中的SetPixel函数,可以选择所画点的颜色 画线使用CDC类中的MoveTo和LineTo函数来实现, 可以选择画线颜色、宽度及风格。 画矩形或进行矩形区域填充采用CDC类的函数Rectangle函数,可以使用当前选择的笔来绘制矩形的轮廓,并用当前画刷填充图形的内部。 3

28、 软件界面设计及控件的使用 本作品在程序设计中尽量采用统一的界面,并使用静态控件、编辑控件、按钮及滚动条等多种控件来实现窗口及事件操作。 静态控件主要用来显示提示信息。 编辑控件用来获取用户输入的信息,并将其传递给程序中的相关变量,供程序使用。 按钮控件是程序中使用最多的控件,每个按钮控件在程序中都可建立自己的响应函数,用户点击不同的按钮产生不同的消息,通过消息来激发按钮的响应函数,从而完成不同的操作。图3-2给出了本作品软件的主控窗口界面及通讯录窗口软件界面样本。 图3-2 主控窗口及通讯录窗口界面 创建位图按钮时首先要添加位图,每

29、个按钮对应三种状态的位图(选中、按下和未选中),分别加到工程资源的Bitmap下。其次在Dialog中选择你的模板,添加按钮,并选中按钮的Owner Draw属性。修改位图的名称和按钮名称相同,三种状态分别在名称后加F、D和U区分。在视图类的头文件中建立CbitmapButton的变量,然后用AutoLoad函数将位图与按钮关联起来,位图按钮即创建成功。 二、功能模块程序设计 1、通信录子程序设计 通信录子程序由编辑程序和浏览程序两部分组成。其核心内容为通信录数据库的建立以及对通信录数据库的操作。 通信录数据库的基本记录信息由姓名、照片、职务、工作单位、通信地址、邮编、电话和Email

30、等组成。程序中以双向链表为基础,每一个通信录信息为一个链表节点来构建通信录数据库。通过对链表的基本操作,如添加、删除节点等,完成对数据库的相应操作。 通信录信息的浏览以名片的方式进行。我们共提供两套名片模板,通过工具栏上的1和2按钮选择。每套模板均可更换背景。在浏览操作中,可实现除添加、读存盘以外的其它任何操作 数据库文件的保存和读取采用了序列化的方法,利用Carchive类进行文件的保存和读取。 为了使操作界面更加直观,程序中使用位图按钮。其方法是通过ClassWinzard为位图按钮添加响应函数。在浏览按钮的响应函数中,先将当前链表指针指向要显示的节点,然后调用ShowCurrent

31、)函数将节点信息显示出来。 通过工具栏中提供的E1和2按钮,可以在编辑的过程中切换到浏览状态或在浏览的过程中切换到编辑状态。实现“编辑中可浏览、浏览中可编辑”。 查找定位功能的实现方法是,先通过对话框获取用户输入的查找特征,然后采用顺序比较的方法,在数据库中查找符合特征的信息。如找不到符合特征的信息即返回;如果找到,将找到的信息添加到新的链表中,继续比较下一条信息。最后调用ShowCurrent()函数将找到的第一条信息显示出来。 图3-3 通讯录程序流程 2、中英文文档阅读程序设计 文本阅读模块程序由中英文字字符、文本行、文件显示、文件定位、屏幕定位与控制、屏幕抓

32、捕与打印等程序组成。 英文字母和标点符号的显示可以使用DrawText()函数直接实现,而汉字显示方法较为复杂,其基本思想是,首先将待显的汉字的字符码(双字节)转换为国标区位码,然后根据区码和位码计算出汉字字模在点阵字库(程序中用的是16点阵库)文件中的位置,再从字库文件中取出字模点阵信息(32字节),用屏幕画点的方式将汉字显示出来 。 文本行的显示就是连续显示一个中英文字符串,具体方法是,逐个读出字符串中的字符分别进行显示这里应注意中西文的代码区别在于中文字符值都大于0xa0。在显示时tab键和汉字占32个象素宽度,英文大写字母占10个象素宽度,一般符号占8个象素宽度。回车符记为换行。

33、当遇到回车符号或当前行剩余宽度已不够显示下一个字符时,进行换行操作,并结束本行显示。 图3-4 汉字显示程序流程 根据各种字符的显示宽度和文本显示框的行宽,可以用搜索累加的方法计算出文件显示总行数以及每行数据包含的字节数。这样就可以将文件指针准确定位到任意一行。 文件显示方法是根据文件的显示行数和每行包含的字节数将文件分为若干个文本行,并将其中的连续8行送窗口显示,通过文件指针的调整动态改变窗口的显示内容。即将文件以屏幕显示行为单位进行分割,再用一个滑动窗口来显示以当前文件指针为起始的8行文本。 3、文本记事本程序设计 文本记事本具有文本编辑、录入、存储及回显,并具有自动加注时间等功

34、能。其核心内容为自动加注时间和对记事本数据库的操作。 自动加注时间通过调用GetLocalTime(..)获取系统时间,并将其显示到记事本顶部。该函数的参数为一指向SystemTime结构的指针,函数返回后,该结构初始化为当前的系统时间。 记事本数据库的基本信息内容包括记事时间和记事内容。记事本数据库的建立和操作同通信录数据库的建立和操作。 文本的编辑和录入利用编辑控件和软键盘,能够输入西文字符,并可进行退格、删除等编辑操作。 记事本数据库的读盘、存盘同通信录数据库的读存盘。 图3-5 记事本程序流

35、程 4、图片浏览程序设计 图片浏览支持BMP位图和自定义格式图片的显示。BMP位图浏览的关键是根据BMP位图文件的格式,正确的读入位图信息头、颜色表和位图数据。 BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成,包括了BMP文件的类型、文件大小、及位图起始位置、位图尺寸、位图颜色表项及位图数据等信息。 显示图片时,根据位图文件的结构,先读入位图文件的文件头数据,并判断当前图片是否是BMP位图。然后申请一段内存空间,读入位图信息头,根据位图信息头计算出位图颜色表和位图数据的大小,并重新申请内存空间,读入颜色表和位图数据。根据位图数据的排列顺序以及它与颜色表的对应关系,利用画点

36、函数将位图显示出来。最后释放所申请的 图3-6 Bmp图显示程序流程 内存空间。 5、手写输入与识别程序设计 手写输入与识别程序支持手写体自动识别及文本存盘等功能,由识别算法、手写识别字库及显示处理程序组成。 本程序采用笔画法识别汉字。即将一个汉字的所有笔划均分解为横、竖、撇、捺四笔。按照笔画顺序,记录下该汉字的笔划信息。以汉字的笔划信息为基础建立手写识别字库。当用户输入一个汉字后,先到手写识别字库中查找符合条件的汉字,然后调用汉字显示函数,将查找到的汉字显示出来。 手写识别字库包含汉字的笔画信息及对应的汉字。我们用1、2、3、4分别表示横、竖、撇、捺四笔,一个汉字共用20笔表示

37、例如,“王”和“公”在手写识别子库中储存为11210000000000000000王34314000000000000000公。 图3-7手写识别程序流程 通过记录用户每一笔鼠标按下和抬起时的坐标,计算出该笔划斜率,并判断该笔划属于横、竖、撇、捺四笔中的哪一笔,将对应的数字存入笔划数组,当用户输入结束后,将笔划数组中的笔划信息与手写字库中的信息比较,取出对应的汉字并显示出来。 将每次输入的汉字按顺序保存在一个字符数组中,存盘时即将该数组的信息保存到文件。 6、闹钟程序设计 闹钟程序包括闹铃时间设置、提示内容编辑等。其核心为定时器的使用。 闹铃时间设置、提示内容编辑程序利用编辑控件

38、和系统的软键盘进行输入设置。设置完成后,点击添加按钮,将设置加入闹钟数据库并存盘。其中闹钟数据库的创建、操作及读盘存盘同通信录数据库。 定时比较程序通过调用SetTimer()函数设制定时器,设置定时间隔为1分钟,当定时到时,系统发送WM_TIMER消息到消息队列,加载WM_TIMER消息响应函数OnTimer(), 在OnTimer()函数中,用GetLocalTime()函数获取系统时间,并与闹钟程序设置的闹铃时间比较,如相等,则激活闹钟程序,显示时间、提示内容并播放闹钟音乐;不等则返回。 图3-8 闹钟程序流程 7、音频播放程序设计 音频播放模块程序包括WAVE播放和MP3解码

39、输出为16位立体声(采样率为44100Hz的WAVE格式)两大部分。 WAVE音频文件的播放采用的是PlaySound函数。PlaySound 函数支持同步,异步,循环等多种播放方式。其中,同步方式是指程序必须等到音乐播放完毕才可以往下执行;异步方式则允许在播放音乐的同时执行下面的程序;循环方式是指不停地播放音乐,若不和异步方式组合使用则程序无法向下执行。所以一般常用异步方式播放单遍音乐,用异步+循环组合方式循环播放音乐。 播放控制程序中,暂停后再继续播放和拖动滚动条随机播放时的文件定位和截取问题较为复杂。程序中通过设定定时器的方法,实时(定时间隔很小)跟踪文件播放进度,可以捕捉到播放

40、文件指针的当前位置。更为直接的方法是从滚动条拨动位置占滚动条总长度的百分比或播放剩余时间占总播放时间的百分比换算出当前文件指针位置。 定位后要截断原始文件,重新添加WAVE文件头组成新文件,再调用PlaySound函数进行播放。其中,WAVE文件头中只需更新其中的文件长度和数据长度信息。WAVE文件的头文件结构如图3-9所示,图中数据表示16进制的偏移地址。播放时间从WAVE文件头中读取相关信息进行计算得来。其计算公式为: 播放时间(以秒为单位)=音频数据长度/采样率/数据块的调整数。 0 4 8 16 18 1A 20 22

41、 24 28 文件长度 通道数 采样率 数据块 调整数 样本数据位数 语音数据长度 图3-9 WAVE文件的头文件结构 MP3解码采用Intel提供的IPP函数实现。IPP函数将MP3数据帧解码输出为PCM码流,当全部解码结束后给生成的PCM码流添加合适的WAVE文件头,即可形成WAVE 音频文件,从而可以直接使用PlaySound函数进行播放。 8、语音记事程序设计 录音及回放模块包括对音频设备的控制和对文件的操作两部分。 程序中采用8位单声道,11025Hz的音频格式进行录音,开辟的缓冲区为11025字节,即以一秒为单位进行录音。这样可以及

42、时暂停和停止语音录入。每录满一秒,向录音文件中存放一次数据。当录音结束后再给录音文件加上WAVE文件头,这样就可以使用PlaySound()函数进行录音回放了。程序中所用到的有关音频输入设备的控制函数。的执行顺序为:设置WAVE输入数据的格式—>打开音频输入设备(JW板上的PCM3000)—>配置输入缓冲区—>将缓冲区加载到设备上—>开始录音—>暂停/继续—>停止—>向录音文件填充设定格式的WAVE 音频文件头(44字节)—>回放—>清理缓冲区—>关闭音频设备。表3-1给出了相关操作函数。 表3-1 Wave格式音频操作函数 函数 功能 函数 功能 WaveInPrepa

43、reHeader 配置输入缓冲区 WaveInStop 停止录音 WaveInAddBuffer 给音频设备加载缓冲区 WaveInReset 设备复位 WaveInOpen 打开音频设备 WaveInUnprepareHeader 清理缓冲区 WaveInStart 启动录音 waveInClose 关闭设备 9、环境温湿度监测程序设计 环境参数测量模块程序包括温度,湿度数据的采集,处理,显示 及打印等。 温度采集程序主要是通过向基本扩展模块中的SCL/SDA发送I2C 总线时钟/数据信号,以及从TSDA端口读I2C数据信号来完成温度值的采集。 温度

44、采集程序的按照图2-6所示时序进行操作读取。根据时序图和寄存器配置格式可知,温度采集程序中应首先配置串行地址信息(程序中取A2=A1=A0=0),并将读/写控制位置高,然后按照串行输入顺序依次读取温度值的各位数据(程序中只取数据的第13~6位),最后将这8位串行数据转换为并行数据(记为一整形量)送入FIR滤波程序进行数据处理。 温度数据的显示分为以秒为单位和以分为单位绘制的两条曲线,为此程序中开辟了一个基本环形缓冲区A和压缩环形缓冲区B,并且设置定时器定时间隔为1秒。缓冲区A中存放每秒采集来的新数据,缓冲区B中存放每分钟内60个采样数据的平均值。在屏幕显示区域中分别绘制出这两条曲线。其中,为

45、了区分新旧数据,方便观察温度变化,绘制曲线时通过擦除新采样点右方与之间隔为20的点(以象素为单位)的方法在新旧数据曲线间加入一个“刷子”,形成一个20象素宽度的间隔。 湿度测量通过对串行A/D转换器AD7823的操作来实现。其数据处理的方法与温度数据处理方法相似,显示时数值曲线与相应的温度曲线处于同一显示区,由温/湿度切换按钮来选择。 10.脉搏测试程序设计 脉搏测量显示模块程序包括脉搏信号的采集,处理,显示 及打印等。 脉搏信号的采集使用录音方式,每录音20ms从输入缓冲区中取出一个采样值。存入一个环形缓冲区中(原始数据缓冲区),并用画线的方式绘制出波形曲线。再将输入信号用滤波函数处

46、理后(方法与温湿度模块中一样)存入另一个缓冲区中作为计算脉搏频率的数据来源。为了克服录音通道的低频响应太弱的问题,在基本扩展板上还设有脉搏信号的串行A.D采集电路,通过对该电路的操作,也可以实现脉搏信号的实时采集。 在显示脉搏时域实时信号的同时,还要根据采集数据计算脉搏频率,这里采用时域+削抖算法实现。即在当前缓冲区(滤波处理后的)中搜索时域波形的波峰 位置,查找出波峰个数和间距,计 图3-10波形抖动示意图 算出平均周期,进而得到当前输入信号频率。 在搜索波峰位置时考虑到残留噪声干扰所产生的波形抖动问题,干扰波峰个数的统计,算法中进行了消抖处理。如图3-10

47、所示。假定当前点为波峰,继续判断其后的10个采样值与该点值的大小关系,若该点后的10个采样值都比其值小,图3-11脉搏程序流程 则认为该点为波峰,然后查找下一个波谷;否则,继续向下搜索波峰。同理,假定当前点为波谷,继续判断其后的10个采样值与此点值的大小关系,若此点后的10个采样值均比其值大,则认为该点为波谷,然后查找下一个波峰;否则,继续向下搜索波谷。这在一定范围内排除了“假”极值的影响,提高了计算精度。 11.屏幕硬拷贝输出程序设计 本作品中温湿度曲线,脉搏曲线,文本,图象的打印输出都需要调用屏幕打印程序。 屏幕打印程序包括抓取屏幕指定区域的颜色信息,将16位彩色转换为图形打

48、印所需的16级灰度数据以及打印机工作控制等子程序。抓取屏幕指定区域的颜色信息是指从屏幕缓冲区中读出所要打印区域的各象素颜色信息 ,并存入一个数组中。颜色信息的转换分为两步进行,先将16位彩色转换为8位256级灰度数据,再进一步转换为16级灰度数据。设象素点16位彩色数据值为color,转换后的8位灰度值为gray。则 gray=((color>>8)&0xf8)*0.31+((color>>3)&0xfc)*0.59+((color<<3)&0xf8)*0.1 将gray进一步转化为16级灰度值的转化方法是 gray=gra

49、y/16 打印输出采用8针双密度点阵图形方式,每个象素点打印成16级灰度,即将每个象素打印成一个4×4的点阵,用点阵中黑色象素点数量的多少来区分灰度级别。转换后gray是一个0~15范围内的整数。对于gray的16种取值情况,分别有一种打印灰度级与之对应。具体对应关系如图3-12所示。 图3-12 灰度转换对应关系 完成了象素点颜色信息的转换后,就可以通过发送指令和数据来控制打印机,实现图形拷贝。具体控制流程是,首先,向打印机发送一组初始化命令字,包括清空缓冲器内的数据,打印头自动退回左边备位,清除前面的打印机指令并使打印机工作状态复原等命令。

50、然后,设置图形打印方式,再发送数据,执行打印操作。 12、AV选件程序设计 AV选件模块程序包括AV选件模块通信和视频数据处理两部分。 AV选件模块通信程序负责完成AV扩展模块与JW板的联络,上传音视频数据。程序流程为,发送设备启动信号——》A/V选通信号——》设备读信号——》保存上传数据。具体时序参见图2-16所示。 AV选件模块数据处理程序将采集来的视频数据的进行必要的处理,以实现图象的回显。图象数据中采集来的象素颜色信息格式为B_G_R_B (四字节32位),处理时保留前三个字节信息,并将24位色转换为16位色(RGB565)。转换关系是,取出第三个字节(红色)中的高五位作为16

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服