文档库 最新最全的文档下载
当前位置:文档库 › MFC-Edit输入控制

MFC-Edit输入控制

MFC-Edit输入控制
MFC-Edit输入控制

Edit Box

Edit窗口是用来接收用户输入最常用的一个控件。创建一个输入窗口可以使用成员函数:BOOL CEdit::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );

其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBLE外,你可以针对输入控件指明专门的风格。

ES_AUTOHSCROLL,ES_AUTOVSCROLL 指明输入文字超出显示范围时自动滚动。

ES_CENTER,ES_LEFT,ES_RIGHT 指定对齐方式

ES_MULTILINE 是否允许多行输入

ES_PASSWORD 是否为密码输入框,如果指明该风格则输入的文字显示为*

ES_READONLY 是否为只读

ES_UPPERCASE,ES_LOWERCASE 显示大写/小写字符

控制显示的文本利用成员函数SetWindowText/GetWindowText用于设置/得到当前显示的文本。

通过GetLimitText/SetLimitText可以得到/设置在输入框中输入的字符数量。

由于在输入时用户可能选择某一段文本,所以通过void CEdit::GetSel( int& nStartChar, int& nEndChar )得到用户选择的字符范围,通过调用void CEdit::SetSel( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE )可以设置当前选择的文本范围,如果指定nStartChar=0 nEndChar=-1则表示选中所有的文本。void ReplaceSel( LPCTSTR lpszNewText, BOOL bCanUndo = FALSE )可以将选中的文本替换为指定的文字。

此外输入框还有一些和剪贴板有关的功能,void Clear( );删除选中的文本,void Copy( );可将选中的文本送入剪贴板,void Paste( );将剪贴板中内容插入到当前输入框中光标位置,void Cut( );相当于Copy和Clear结合使用。

最后介绍一下输入框几种常用的消息映射宏:

ON_EN_CHANGE 输入框中文字更新后产生

ON_EN_ERRSPACE 输入框无法分配内存时产生

ON_EN_KILLFOCUS / ON_EN_SETFOCUS 在输入框失去/得到输入焦点时产生

使用以上几种消息映射的方法为定义原型如:afx_msg void memberFxn( );的函数,并且定义形式如ON_Notification( id, memberFxn )的消息映射。如果在对话框中使用输入框,Class Wizard会自动列出相关的消息,并能自动产生消息映射代码3002

解决思路

可能涉及到的问题

1:如何判断一个字符串是数字还是别的类型.

2:如何查找一个字符串中某个符号出现的次数.

3:如何设置EDIT光标的位置.

1 问题的解决方法可以利用下面的方法解决.

CString strtemp=szTemp.SpanIncluding("0123456789");

if(!strtemp.IsEmpty()) //这个字符串为数字

else

//非数字

2 问题我用循环递归的方法实现,首先查找最先出现的符号位置,然后利用字符串分割技术取RIGHT部分再进行循环调用就可以了,相关代码可以见下:

int CNumEditCtrl::GetStringNum(CString szVal)//获得字符串中间.号的个数

{

int nNum=0;

while(1)

{

int nCount=szVal.Find('.');

if(nCount==-1)

break;

szVal=szVal.Right(szVal.GetLength()-nCount-1);

nNum++;

}

return nNum;

}

3 问题可以采用获得EDIT控件句柄发送EM_SETSEL消息的方法实现.

所以基本代码可以实现见下了:

void CNumEditCtrl::OnChange()

{

// TODO: If this is a RICHEDIT control, the control will not

// send this notification unless you override the CEdit::OnInitDialog()

// function and call CRichEditCtrl().SetEventMask()

// with the ENM_CHANGE flag ORed into the mask.

CString m_estr,szTemp;

GetWindowText(m_estr);

int nLen=m_estr.GetLength();

if(!m_estr.IsEmpty())

{

szTemp=m_estr.Right(1);

BOOL bNum=TRUE;

CString strtemp=szTemp.SpanIncluding("0123456789");

if(!strtemp.IsEmpty())

bNum=TRUE;

else

bNum=FALSE;

nPoint=GetStringNum(m_estr);

if(strcmp(szTemp,".")==0 || bNum)

{

if(nPoint>1)

{

nPoint--;

::AfxMessageBox(".号出现次数超过两次!");

m_estr=m_estr.Left(m_estr.GetLength()-1); SetWindowText(m_estr);

nLen--;

SendMessage(EM_SETSEL,nLen,nLen);

return;

}

}

else

{

::AfxMessageBox("输入格式错误");

m_estr=m_estr.Left(m_estr.GetLength()-1); SetWindowText(m_estr);

nLen--;

SendMessage(EM_SETSEL,nLen,nLen);

return;

}

}

// TODO: Add your control notification handler code here }

软件设计和开发控制程序

公司软件设计和开发控制程序 1目的 对软件设计和开发全过程进行控制,确保产品设计和开发能满足顾客和有关标准、法令、法规的要求。 2范围 适用于软件产品设计和开发的全过程,包括软件产品的升级。 3职责 3.1软件研发部负责组织编制《项目实施计划书》、《需求规格说明书》、《软件概要设计说明书》、《详细设计说明书》、设计和开发输出文件、测试报告、验收报告等,负责组织协调和实施软件产品的设计和开发工作。 3.2软件研发部产品组负责根据市场调研分析或合同提交《可行性研究报告》。 3.3软件研发部测试组负责软件产品的确认测试。 3.4 由各业务部负责将合格软件产品交付顾客使用。 3.5 公司总经理签署《项目经理任命书》,正式启动软件项目。 3.6公司技术总工或授权人负责设计和开发立项《项目实施计划书》、《需求规格说明书》、验收报告等的批准。 4工作程序 4.1 设计和开发策划 4.1.1立项的依据 软件研发部对要进行的开发项目进行立项申请,提交项目资料。由公司的有关人员对项目进行一系列的风险评估。通过风险评估的项目,由软件研发部进行详细进度计划安排,落实时间进度、资源(人员/设备、内部/外部)、技术、资金和费用等,相关资源和资金使用计划要详细列出。 最后所有的项目申请资料、风险评估报告及产品进度计划都要报给公司上级领导审批,进行立项评审。 立项通过的项目才能由软件研发部进入正式的开发工作。 4.1.2 软件研发部项目经理负责就以上立项依据组织《项目实施计划书》的编制。

4.1.3设计和开发人员资格要求可参照本公司相关岗位卡的条款进行. 4.1.4 接口管理 4.1.4.1 在设计和开发策划和输入阶段: a.各业务部将客户相关文件资料交与软件研发部,同软件研发部一起对《需求规格说明书》进行评审; b.软件研发部编制《项目实施计划书》,经公司技术总工或授权人批准后发往客户方。 c.软件研发部项目经理将《项目实施计划书》、《需求规格说明书》及相关背景资料,提供给各设计和开发人员,作为工作的依据。 4.1.4.2 在设计和开发输出阶段,软件研发部项目经理根据设计和开发进度,适时召开设计和开发例会,组织解决设计和开发中遇到的困难,协调相关的资源,以例会记录的形式明确相关要求。 4.1.4.3 在设计、编码、测试阶段: a.进行总体设计、详细设计的设计人员及进行编码的程序员须充分沟通.必要时,可由项目经理负责召开设计和开发专题会议,并以会议记录的形式明确与会人员达成的一致意见。 b.软件研发部设计和开发人员提供单元和综合测试的《测试计划》,交本部门的相关设计和开发人员进行集成并由测试人员进行单元、综合测试。 c.软件研发部提供确认测试的《测试计划》,交测试组进行系统安装、测试。 4.1.4.4设计和开发各阶段 a.软件研发部项目经理负责就技术方面在客户与程序员之间进行协调; b.软件研发部经理负责组织和协调各有关单位的工作; c.各业务部负责与客户的业务联系及相关信息传递; d.参与设计和开发的各部门将必要的信息形成文件,经部门经理评审签字后予以传递. 4.2设计和开发输入 4.2.1《项目经理任命书》经公司总经理批准后,由软件研发部经理组织编写《项目实施计划书》、《需求规格说明书》,其中《项目实施计划书》须由公司技术总工组织人员评审。 4.2.2软件研发部经理组织软件设计和开发人员、测试人员及各业务部等设计和开发提出部门(包括客户),对《需求规格说明书》进行评审,对其中不完善、含糊或矛盾的需求做出澄清和解决.4.2.3《需求规格说明书》在接受合同时可以不完全确定,在项目进行期间可继续制定。当《需求规格说明书》更改时,合同可以修订,对《需求规格说明书》的更改将按照《软件配置管理规程》程序加以控制。 4.3 设计和开发输出 4.3.1各设计和开发人员根据《项目实施计划书》及《需求规格说明书》的要求进行设计和开发活动,并形成相应的文档。 4.3.2设计和开发的输出应形成文件,但不限于以下文档: ——《软件概要设计说明书》;

在Java程序中截获控制台输出

在Java程序中截获控制台输出 在Java开发中,控制台输出仍是一个重要的工具,但默认的控制台输出有着各种各样的局限。本文介绍如何用Java管道流截取控制台输出,分析管道流应用中应该注意的问题,提供了截取Java程序和非Java程序控制台输出的实例。 即使在图形用户界面占统治地位的今天,控制台输出仍旧在Java程序中占有重要地位。控制台不仅是Java程序默认的堆栈跟踪和错误信息输出窗口,而且还是一种实用的调试工具(特别是对习惯于使用println()的人来说)。然而,控制台窗口有着许多局限。例如在Windows 9x平台上,DOS控制台只能容纳50行输出。如果Java程序一次性向控制台输出大量内容,要查看这些内容就很困难了。 对于使用javaw这个启动程序的开发者来说,控制台窗口尤其宝贵。因为用javaw启动java程序时,根本不会有控制台窗口出现。如果程序遇到了问题并抛出异常,根本无法查看Java运行时环境写入到System.out或System.err的调用堆栈跟踪信息。为了捕获堆栈信息,一些人采取了用try/catch()块封装main()的方式,但这种方式不一定总是有效,在Java运行时的某些时刻,一些描述性错误信息会在抛出异常之前被写入System.out和S ystem.err;除非能够监测这两个控制台流,否则这些信息就无法看到。 因此,有些时候检查Java运行时环境(或第三方程序)写入到控制台流的数据并采取合适的操作是十分必要的。本文讨论的主题之一就是创建这样一个输入流,从这个输入流中可以读入以前写入Java控制台流(或任何其他程序的输出流)的数据。我们可以想象写入到输出流的数据立即以输入的形式“回流”到了Java程序。 本文的目标是设计一个基于Swing的文本窗口显示控制台输出。在此期间,我们还将讨论一些和Java 管道流(PipedInputStream和PipedOutputStream)有关的重要注意事项。图一显示了用来截取和显示控制台文本输出的Java程序,用户界面的核心是一个JTextArea。最后,我们还要创建一个能够捕获和显示其他程序(可以是非Java的程序)控制台输出的简单程序。 一、Java管道流 要在文本框中显示控制台输出,我们必须用某种方法“截取”控制台流。换句话说,我们要有一种高效地读取写入到System.out和S ystem.err 所有内容的方法。如果你熟悉Java的管道流PipedInputStream和PipedOutputS tream,就会相信我们已经拥有最有效的工具。 写入到PipedOutputStream输出流的数据可以从对应的PipedInputS tream输入流读取。Java的管道流极大地方便了我们截取控制台输出。Listing 1显示了一种非常简单的截取控制台输出方案。 【Listing 1:用管道流截取控制台输出】 PipedInputS tream pipedIS = new PipedInputStream(); PipedOutputS tream pipedOS = new PipedOutputStream(); try { pipedOS.connect(pipedIS); } catch(IOException e) { System.err.println("连接失败");

基于51单片机的语音控制系统

2009年第1期 TIANJIN SCIENCE&TECHNOLOGY 0引言 目前基于单片微机的语音系统的应用越来越广泛,如电 脑语音钟、语音型数字万用表、手机话费查询系统、排队机、监控系统语音报警以及公共汽车报站器等等。本文主要介绍用Flas h 单片机AT89C51和录放时间达60s 的数码语音芯片ISD2560设计的一套智能语音录放系统。ISD2560是ISD 系列单片语音录放集成电路的一种,这是一种永久记忆型语音录放电路,录音时间为60s ,可重复录放10万次。该芯片采用多电平直接模拟量存储专利技术,每个采样值可直接存储在片内单个EEPROM 单元中,因此能够非常真实、自然地再现语音、 音乐、音调和效果声,从而避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。此外,ISD2560还省去了A/D 和D/A 转换器。其集成度较高,内部包括前置放大器、内部时钟、定时器、采样时钟、滤波器、自动增益控制、逻辑控制、模拟收发器、解码器和480K 字节的EEPROM 。ISD2560内部EEPROM 存储单元均匀分为600行,有600个地址单元,每个地址单元指向其中一行,每一个地址单元的地址分辨率为100ms 。此外,ISD2560还具备微控制器所需的控制接口。通过操纵地址和控制线可完成不同的任务,以实现复杂的信息处理功能,如信息的组合、连接、设定固定的信息段和信息管理等。 1方案设计 自动控制是单片机应用的一个重要领域,在自动控制领 域中,除数字量之外,经常会遇到一种物理量,即模拟量,而声音就是一种模拟量。由于单片机只能处理数字量的转换,因此计算机系统中凡遇到有模拟量的地方,就需要进行模拟量向数字量或数字量向模拟量转换,伴随而来的就出现了单片机的A/D 、D/A 转换的接口问题,虽然这些接口都已集成化,体积小,功耗低,并能方便地与单片机连接,但在转换之后仍然有一定程度的误差,特别是对语音的转换,有明显的失真。因此,使语音能得到更好的还原是方案选择的最终出发点。 图1 方案原理框图 方案中采用了一片ISD2560语音芯片(如图1所示),这种突破性的EEPROM 存储方法可以将模拟语音数据直接写入单个存储单元,不需要经过A/D 或D/A 转换。这种技术产生了2个效果: 比同等的数字方式具有更大的集成度;存储的模拟数据不挥发,而且它具有高质量、自然的语音还原技术。语音芯片的控制采用的是89C51单片机,实现分段存储,本设计实现的是3段录音,由于ISD2560总录放时间是60s ,所以每段的录音时间是20s 。 这一方案的特点:能进行在现场的录音,随录随放,修改语音方便;修改录音内容时,可以通过更改软件程序,从其中任意一段开始修改其后的所有录音内容,不必从第一段开始全部修改;分段灵活,单片ISD 可分1~600个段,若多片级联还可更多,各个录音段的长度任意,只要总录音时间在所用器件的总时间之内即可;价格便宜,录制语音时,只需用软件立即可得到各段的地址进行录音,不需专用的设备。 2 电路设计 2.1 硬件电路设计 图2为AT89C51与ISD2560连接框图,语音芯片的低8 位地址与P0口相连,并有P0口给ISD2560录/放音的初始地址。 图3是89C51单片机的外围电路,用的是12M 晶振,即一个机器周期是1us ,采用的是按键复位方式,复位之后,录音或放音都是从第一段开始。 贾强(天津现代职业技术学院天津300222) 基于51单片机的语音控制系统 【摘要】介绍了由Flash 单片机AT89C51及数码语音芯片ISD2560组成的语音系统,设计出了系统的硬件电路。实现了语音的分段录取、组合回放,通过软件的修改还可以实现整段录取,循环播放,而且不必使用专门的ISD 语音开发设备。ISD2560不需要A/D 和D/A 转换, 并且集成度高,能实现复杂的信息处理功能,真实的再现语音。【关键词】AT89C51ISD2560分段录音组合回放 收稿日期:2009-01-09 创新技术 36

设计和开发控制程序文件

设计和开发控制程序 1 目的 对产品设计和开发全过程进行控制,确保设计能满足合同及顾客的要求,达到或超越国家/行业/企业标准规定的技术要求。 2 适用范围 本程序适用于新产品的设计和定型产品的改进活动。 3 职责 3.1 研发部负责编制并且监督执行产品设计开发计划,负责设计和开发全过程的组织、协调和管理工作,组织设计评审、设计验证、设计确认工作。负责处理车间生产制造过程中发生的产品设计问题,负责在外购件的采购发生困难时,协助采购部选择代用品。负责处理车间生产制造过程中发生与设计相关的工艺问题,负责试验组织实施工作。 3.2 总经理负责产品立项审批的批准,负责主持产品的定型鉴定并批准产品鉴定报告。3.3 制造生产部负责试制阶段的生产组织落实及计划进程的控制。 3.4 采购部负责试制过程中的配套采购。 4 工作程序 4.1 设计和开发策划 4.1.1 设计项目的来源

①公司内外反馈的信息 研发部根据公司内外反馈的信息,编制“项目开发建议书”,提出产品开发或技术改造的建议,报总经理批准。产品设计和开发活动应在公司战略目标指导下进行。 ②市场部的市场调查 市场部通过对市场调查结果的分析,提出“项目开发建议书”,报总经理批准后,连同有关资料移交研发中心。 ③合同评审的结果 有技术开发成份的合同或订单 ( 包括技术协议 ),必须由研发部组织相关部门进行评审。评审通过后,将“合同订单评审表”连同客户的有关资料移交采购部。 4.1.2 设计任务书的编制 《设计任务书》(亦称《项目手册》)应做如下明确规定: a) 产品的质量目标/ 指标及性能要求。 b) 确定活动的输出满足输入的要求,并处于受控状态。 c) 确定组织和技术上的接口。 d) 设计评审、设计验证、设计确认等设计过程的计划安排。 e) 控制产品研发过程的准则。 f) 特定的工作程序及相应的工艺技术文件。 g) 《设计任务书》的管理方法。 h) 特殊过程控制采用的必要检验和试验。 4.1.3 设计任务书的评审 研发部或项目组负责人组织包括设计、生产、质量部门人员对《设计任务书》进行评审。评审的内容包括:

java控制台输入

java控制台输入 (2009-12-08 11:13:28) 转载 分类:IT 标签: 杂谈 0引言 从控制台中读取数据是一个比较常用的功能,在JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流。有意思的是,从JDK 5.0 版本开始,能从控制台中输入数据的方法每增加一个版本号,就有一种新增的方法,这也增加了选择的种类,可以依据不同的要求来进行选择。下面来看一下,各个版本中如何从控制台中读取数据以及各自的优缺点。 1JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的输入流,再桥接至字符流从字符流中读入数据。示例代码如下: import java.io.IOException; import java.io.InputStreamReader; public class Test1 { public static void main(String[] args) { String str = readString("请输入字符串:"); System.out.println("readString 方法的输入:" + str); } private static String readString(String prompt) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = null; try {

System.out.print(prompt); str = br.readLine(); } catch (IOException e) { e.printStackTrace(); } return str; } } 从上面的代码段来看,这种控制台输入的方法非常地麻烦,为了能读取整行的数据,采用了BufferedReader类来进行处理,而且在读取的过程中还需要捕获IOException。不过这是JDK 1.4 及以下版本中从控制台读取数据唯一的办法。还有一种非控制台读入数据的办法,就是采用Swing 中的JOptionPane,会弹出一个非常漂亮的输入对话框让使用者输入数据,但这是一种比较另类的做法,不推荐使用。 import javax.swing.JOptionPane; public class Test2 { public static void main(String[] args) { String str = readStringFromDialog("请输入字符串:"); System.out.println("readStringFromDialog 方法的输入:" + str); } private static String readStringFromDialog(String prompt) { return JOptionPane.showInputDialog(prompt); } } 上面的两种方法都有个共同的缺点——只能读取字符串,若需要读取其他类型的数据需要手工进行转换。

CH06 输入输出控制 (1)

CH06 输入输出控制 习题与思考题 1.CPU与外设之间的数据传输控制方式有哪几种?何谓程序控制方式?它有哪两种基本方式?请分别用流程图的形式描述其处理过程。 解答:CPU与外设之间的数据传输控制方式有三种:程序控制方式、中断方式、DMA方式。程序控制方式:程序方式就是指用程序来控制进行输入输出数据传输的方式。 程序控制方式的两种基本方式:无条件程序控制方式,条件程序控制方式; 流程图: 2.采用用查询方式将数据区DATA开始的100个字节数据在FCH端口输出,设状态端口地址为FFH,状态字的D0位为1时表示外设处于“忙”状态。试编写查询程序。 解答: DA TA SEGMENT BUFF DB 100 DUP(?) DA TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUFF;送缓冲区指针 MOV CX,100;送计数初值 WAIT1:IN AL,0FFH;查询状态,若为1,则等待 TEST AL,01H JNZ WAIT1 MOV AL, [BX] OUT 0FCH, AL ;输出一个数据 INC BX LOOP WAIT1

MOV AH,4CH INT 21H CODE ENDS END START 3.何谓中断优先级,它对于实时控制有什么意义?有哪几种控制中断优先级的方式? 解答:当系统中有多台设备(即多个中断源)同时提出中断请求时,就有先响应谁的问题,也就是如何确定优先级的问题。一般来讲,CPU总是先响应具有较高优先级的设备。解决优先级问题的方法一般有三种:软件查询法、简单硬件方式和专用硬件方式。 4.什么叫DMA传送方式? 其主要步骤是什么?试比较DMA传输、查询式传输及中断方式传输之间的优缺点和适用场合? 解答:在DMA方式下,外部设备利用专门的接口电路直接和存储器进行高速数据传送,而不需经过CPU,数据传输的速度基本上取决于外设和存储器的速度,传输效率大大提高。DMA主要步骤: 一般来说,完成一次DMA传输的主要步骤为: (1)当外设准备就绪时,它向DMA控制器发DMA请求,DMA控制器接到此信号后,经过优先级排队(如需要的话),向CPU发DMA请求(送至CPU的HOLD引脚)。 (2)CPU在完成当前总线周期后会立即对DMA请求做出响应。CPU的响应包括两个方面:一方面将控制总线、数据总线和地址总线置高阻,另一方面将有效的HLDA信号加到DMA控制器上,以此来通知DMA控制器,CPU已经放弃了对总线的控制权。 (3)DMA控制器收到HLDA信号后,即取得了总线控制权。这时,它往地址总线上发送地址信号(指出本次数据传输的位置),同时,发出相应的读/写信号(决定是进行输入还是输出操作)。 (4)每传送一个字节,DMA控制器会自动修改地址寄存器的内容,以指向下一个要传送的字节。同时,修改字节计数器的内容,判别本次传输是否结束。 (5)当字节计数器的值达到计数终点时,DMA过程结束。DMA控制器通过使HOLD 信号失效,撤消对CPU的DMA请求。CPU收到此信号,一方面使HLDA无效,另一方面又重新开始控制总线,实现正常的运行。 程序方式的特点:使用方便,系统开销不大,但速度较慢。适用于设备不多且实时响应要求不高的小系统。 中断方式:CPU与外设之间可以并行工作,因此大提高CPU的工作效率,但一系列的保护(恢复)现场的工作,仍要花费不少CPU的时间。适用于设备较多且实时响应要求较高的系统。 DMA方式:需要增加DMA控制器,适用于大量高速的数据传送。 5.什么是中断向量?中断向量表的功能是什么?已知中断源的中断类型码分别是84H和FAH,它们所对应的中断向量分别为:2000H:1000H, 3000H:4000H, 这些中断向量应放在中断向量表的什么位置?如何存放?编程完成中断向量的设置。 解答:中断向量----中断服务程序的入口地址;中断向量表----存放中断向量的表,中断向量与中断类型码有对应关系。 84H的位置:210H~213H;FAH的位置:3E8H~3EBH 0000:210H 00 10 00 20

设计开发控制程序(含表格)

设计开发控制程序 (ISO9001-2015) 1.0目的 对产品的开发设计进行控制,以保证所设计的新产品技术先进、使用可靠、经济合理、易于生产、验证和控制。 2.0适用范围 适用于本公司新产品的设计、开发全过程,包括引进产品的转化、定型产品及生产过程的技术改进等。 3.0职责 3.1质技部负责设计开发全过程的组织、协调、实施工作,进行设计开发的策划,确定设计开发的组织和技术接口、输入、输出、验证、评审、设计和开发的更改和确认等。 3.2 质技部负责人负责审核项目建议书、下达设计和开发任务书,负责批准设计开发方案、设计开发计划书、设计开发评审、设计开发验证报告,负责试产报告等。 3.3 总经理负责批准项目建议书、试产报告。 3.4 采购部负责所需物料的采购。 3.5 销售部负责根据市场调研或分析,提供市场信息及新产品动向,负责提交顾客使用新产品后的顾客使用报告。 3.6 生产部负责新产品的生产加工和试制等。质技部是产品设计开发的归口管理部门,负责策划并且执行产品设计和开发计划,负责主持设计评审、设计验

证、设计确认工作。 4.0工作程序 4.1设计和开发的策划 4.1.1设计开发项目的来源 a)销售部与顾客签订新产品合同或技术协议。根据总经理批准的相应的《产品要求平评审表》,质技部负责人下达《设计任务书》; b)销售部根据市场调研或分析提出的《项目建议书》,报质技部负责人审核,总经理批准后,质技部负责人下达《设计开发任务书》。 c)生产部根据技术改进需要,提交《项目建议书》报质技部负责人审核、总经理批准后,质技部负责人下达《设计任务书》。 4.1.2 质技部负责人根据上述信息及项目来源,确定项目负责人,将设计开发策划的输出转化为《设计开发方案》、《设计开发计划书》。计划书的内容包括:设计开发的输入、输出、评审、验证、确认等各阶段的划分和主要工作内容;各阶段人员的职责和权限、进度要求和配合部门;资源配置的需要,如人员、信息、设备、资金保证等及相关内容。 4.1.3 设计开发策划的输出文件将随着设计开发的进展在适当时予以修改,应执行《文件控制程序》的有关规定。 4.1.4 设计开发不同部门之间的接口管理 明确参与设计过程的不同部门/人员之间在组织上和技术上的接口并对接口进行管理,确定每项活动的职责和权限。指派有经验、能胜任其岗位工作的人员从事设计各阶段的活动。 4.2设计和开发的输入

智能语音控制系统

作品说明书 题目:智能语音控制系统 目录 1. 开发背景 (2) 2. 原理 (2) 3. 设计方案 (2) 4. 硬件电路设计 (3) 5. 软件程序设计 (5) 6.理论分析与算法 (5)

1.开发背景 20世纪80年代初,随着大量采用电子技术的家用电器面市,家居系统电子化(HE,Homen Electronics),智能化越来越多。然而当今人们对日常设备的智能化控制要求越来越高,从原来的复杂化到简单话,在由简单化到傻瓜化,但是现在人们还是不满足,他们还想要更简单的更方便的更智能的方法来控制自己拥有的设备,这就是语音控制系统为什么会在现代社会如此流行,如此受到大家的欢迎,让语音控制系统成为当今最前沿的民用控制技术。 2. 原理 本系统采用r8c瑞萨单片机采集语音信号,再把语音信号通过通信传到电脑上去,通过电脑的高述的CPU对你说的话就是语音进行分析与计算,最终达到对语音识别的目的,当上位机识别到你说发出的语音后把信号通过通信传回单片机,通过单片机在来控制所有你想控制的设备,如电视、空调、冰箱、电饭锅、洗衣机等家用电器的工作。本系统运用了很多前沿性的技术,通信,单片机控制,对语音的分析,是本系统的三大主要内容,特别是对语音的分析才是本系统的灵魂。 3.设计方案 单片机经过一个音频接收电路把音频(声音)信号采集进单片机机系统中,在通过选用TL064CN语音芯片把音频信号转换成对应的电压值,再通过瑞萨单片机(16位)的AD采样把电压采集进来,同时为了提高采样频率,就采用直接把未处理的数据通过RS232接口上传到上位机软件中;在上位机程序中通过一定的算法处理采集到的数据流,然后把这些数据对应的“写”到窗体显示程序中(既分析仪界面),以实现音频信号的采集工作进行分析。最后得出结果,再由上位机传送控制信号回单片机,让单片机进行控制.

产品设计开发控制程序

1目的 对设计和开发全过程进行控制,以确保设计产品的质量满足客户和有关标准、法规的要求。 2 范围 本程序规定了设计和开发的策划、输入、输出、评审、验证、确认及更改的控制要求。 本程序适用本公司各类产品设计的全过程,包括产品的重大技术改进。 3 职责 3.1总经理负责批准设计项目,技检副总组织协调设计和开发全过程的工作。 3.2 技术部负责设计和开发计划书、设计输出文件、评审验证报告等的编制、样 品的制作及整个设计工作的实施。 3.3 市场部负责提供市场调研报告,提出对新产品的设想与要求,并负责新产品 的试用安排。 3.4 采购部负责样品及试制所需零部件的采购 3.5 生产部负责批量试制(试产)的安排。 3.6 质检部负责产品鉴定报告的编制,样品及试制产品的检测。 3.7 相关部门负责各自范围内的配合工作。 4 工作程序 4.1 设计和开发的工作流程见附图。 4.2 设计、开发的策划和输入 4.2.1立项的依据、设计和开发的项目来源于以下方面:

4.2.1.1与顾客签订的特殊合同或技术协议。 4.2.1.2市场调研和分析。 4.2.2技术部根据以上立项依据,组织编制《设计和开发计划书》,计划书应 包括以下内容: 4.2.2.1设计输入、设计输出初稿、设计评审、样品制作、设计验证、设 计确认等各阶段的划分和主要工作内容; 4.2.2.2各阶段的人员职责分工、进度要求、信息传递和联络方式; 4.2.2.3需要增加或调整的资源(如仪器、设备、人员等)。 4.2.2.4产品功能、主要技术参数和性能指标及主要零部件结构要求等; 4.2.2.5适用的相关标准、法律法规、顾客的特殊需求等; 4.2.2.6以前类似设计的有关要求,及设计开发所必须的其它要求,如环 境、安全、寿命、经济性等要求。 4.2.3 每个设计项目均指定具有合适资格的设计人员作为项目负责人,负责 设计项目各项工作的开展。 4.2.4由技术部组织相关部门对《设计和开发计划书》进行评审(保持评审记 录),对其中不完善、含糊或矛盾的要求作出澄清和解决。经技检副总审批后,作为正式文件予以实施,设计和开发计划书将根据设计进展的变化作出修改。 4.3设计输出 4.3.1各组设计人员根据《设计和开发计划书》的要求开展各项设计工作,编 制相应的设计初稿,包括指导采购、生产、检验等活动的图样和文件,如

控制台输入输出

2.2.1 Console.WriteLine( ) 方法 WriteLine( )方法的作用是将信息输出到控制台,但是WriteLine方法在输出信息的后面添加一个回车换行符用来产生一个新行。 在WriteLine( )方法中, 花括号(“{}”)用来在输出字符串中插入变量。既占位符 N表示输出变量的序号,从0开始,如当N为0时,则对应输出第1个变量的值,当N 为5时,则对应输出第6个变量的值,依次类推。 [,M]其中M表示输出的变量所占的字符个数,当这个变量的值为负数时,输出的变量按照左对齐方式排列;如果这个变量的值为正数的时候,输出的变量按照右对齐方式排列。 [:格式化字符串]也是可选项,因为在向控制台输出时,常常需要指定输出字符串的格式。通过使用标准数字格式字符串,可以使用Xn的形式来指定结果字符串的格式,其中X 指定数字的格式,n指定数字的精度,即有效数字的位数。这里提供8个常用的格式字符。 1.货币格式 货币格式C或者c的作用是将数据转换成货币格式,在格式字符C或者c后面的数字表示转换后的货币格式数据的小数位数。 例如: double k=1234.789; Console.WriteLine(“{0,8:c}”, k); //结果是¥1,234.79 Console.WriteLine(“{0,10:c4}”, k); //结果是¥1,234.7890 2.整数数据类型格式 格式字符D或者d的作用是将数据转换成整数类型格式。 例如: int k=1234; Console.WriteLine(“{0:D}”, k); //结果是1234 Console.WriteLine(“{0:d3}”, k); //结果是1234 Console.WriteLine(“{0:d5}”, k); //结果是01234 3. 科学计数法格式 格式字符E或者e的作用是将数据转换成科学计数法格式。 例如: int k=123000; double f=1234.5578; Console.WriteLine(“{0:E}”, k); //结果是1.230000E+005 Console.WriteLine(“{0:e}”, k); //结果是1.230000e+005

产品设计开发控制程序文件

产品设计开发控制程序 1.目的:本程序规定了XX产品设计开发项目所应遵循的步骤及其全过程的控制和要求,旨在科学化管理新产品的设计开发,提高新产品的开发效率及市场适用性,进一步规设计开发工作。 2.0定义: 2.1 FMEA:潜在失效模式及后果分析。 2.2预研:指以实现产品功能为目标,完成产品功能样车的研发活动。 2.3 产品设计:指在预研功能样机基础上,以满足客户需求为目标,完成产品样车制作、小批量生产的设计活动。 3.职责 3.1总经理 3.1.1负责根据企业战略规划明确新产品开发方向,并是公司管理委员会和项目评审委员会的主要负责人。负责领导、组织、主持产品化项目的立项、验收和管理工作。 3.1.2负责批准公司年度《产品发展规划》、《项目任务实施计划》。 3.1.3负责协调所有项目的研发资源,确保关键项目的顺利实施。 3.1.4负责制定公司年度《产品发展规划》,下达《项目设计任务书》 3.2公司管理委员会(见管理委员会章程) 3.3项目评审委员会(见项目评审委员会章程) 3.4研发部经理 3.4.1 负责产品设计开发过程术难点攻关、重大技术路线的确定,总体方案评审,试验报告审核; 3.4.2 重要子项目设计方案审核,重要子项目试验报告审核。 3.4.3 参与设计过程中重要设计活动讨论或者直接参与项目开发。 3.5技术品质部经理 3.5.1参与设计开发个阶段性会议,并提出建议。 3.5.2负责产品设计开发过程中可能涉及后续实现产品化工艺和品质控制问题审查。 3.6项目经理 3.6.1负责立项报告的撰写并报批; 3.6.2负责所报项目立项后所有阶段性技术准备; 3.6.3负责《项目任务实施计划书》的制定并组织实施; 3.6.4负责项目输入输出的控制; 3.6.5负责整个项目组的日常管理; 3.6.6负责设计进度的控制。 3.7项目组 3.7.1 项目小组的组成:由研发部各类设计人员组成、必要时可申请其它部门人员参加,设置项目经理一名。 3.7.2负责按照《项目任务实施计划书》开展相关的设计活动。 3.8营销部 负责确定客户定制项目的设计要求。 4.流程图

Fortran输入输出格式控制

Open, Read and Write in Fortran 1:write(*,*)"string";write(unit=*,FMT=*)"string";write(unit=6,FMT=*)"string"。以上等价,6是默认输出位置,即屏幕。 2:print*,"string"。Print只能对屏幕输出。 3:integer(kind=4) a !f90;integer*4 a !f77;integer(4) a !f77。以上等价。 real(kind=4) a !f90;real*4 a !f77;real(4) a !f77。以上等价。 4:f77,变量名长度1~6;f90,变量名长度1~31。 5:read(*,*)"string";write(unit=*,FMT=*)"string";write(unit=5,FMT=*)"string"。以上等价,5是默认输入位置,即键盘。 6:FORMAT (http://202.118.74.226/fortran/pages/730.htm)

6.1 格式输出 格式输出语句由两部分组成:输出语句和输出格式语句。输出语句的一般形式为: WRITE(*,L) 输出表列或:PRINT L 输出表列 其中:* 代表隐含的输出设备,L 指输出格式语句的标号。 输出格式语句的一般形式: L FORMAT(1X,S) 其中:L 输出格式语句的标号,1X 纵向走纸符,S 输出格式,用不同的―格式编辑符‖(简称―编辑符‖)来实现指定的输出格式,各格式间用逗号相隔。 FORMAT语句又叫―格式语句‖,是一个非执行语句,本身不产生任何操作,只是提供输入或输出的格式。FORMAT语句可以出现在程序的任何地方(但必须在PROGRAM语句之后和END语句之前,如果在子程序中用FORMAT语句,则应在子程序定义语句之后)。系统按WRITE语句或PRINT语句中指定的语句标号找到相应的FORMAT语句,并按FORMAT语句所规定的格式对数据进行输出。注意,PRINT语句中不能再用―*‖,PRINT语句中的第一个标识符是语句标号而不是要打印输出的数据。 输出格式分两类基本格式 6.1.1 I格式(又叫整数格式) 一般形式:Iw 或:Iw.m 其中:w 一个数据占的位数宽度(又称―字段宽度‖),m 需要输出的最少数字位数。例1: WRITE (*,100)M,N 100 FORMAT(1X,I4,I4) 如果M=40,N=-12,则输出如下: ??40 ?-12 例2: WRITE (* , 100) I,J,K 100 FORMAT(1X,I5.3,I6.3,I4) 若I=1234,J=-24,K=24689 则输出为: ?1234 ???-24 **** (1)数字在指定的区域内向右端靠齐,如果数字位数比指定的字段宽度w小,则左边补以空格。负数的符号也包含在字段宽度内。 (2)如果数字位数超过了规定的字段宽度w,则不输出有效数据,而在该字段宽度范围内充满―*‖符号。 (3)如果数字位数超过了m,则按实际应输出的位数输出(但条件是不能超过w)。m不包括负号所占的一列。 6.1.2 F格式(又叫小数型格式) 一般形式:Fw.d w 各数值占的总位数d 输出数据的小数位数(小数点后的位数)。例1:WRITE(*,100)A,B,C 100 FORMAT(1X,F10.2,F9.3,F8.4) 若A=1234.56,B=3456.78,C=234.56789 则输出:

智能语音控制系统设计

目前,家居电气设备的常规控制方式有手动控制和红外遥控,随着智能设备的发展,已经出现了可智能控制的家居设备,但是这些设备面对的是具有正常行动能力的人群,而对于那些无人照顾、行动迟缓的老年人和残疾人来说,使用常规和智能终端来控制设备显然是不方便和不适用的,为此本课题设计了一种基于单片机的语音控制系统,采用了语音指令控制家具设备的开启或关闭,同时可以利用单片机获取传感器采集的环境参数来监测室内温度,从而使现代生活变得快速、便捷、安全[1]。1系统硬件设计 本系统主要由语音识别模块、按键控制模块、显示模块、电机控制模块、报警模块、无线控制模块构成,系统硬件总体设计模块如图1所示。 图1系统设计方案框图 本文将所有硬件设计按照模块来设计,模块化设计的好处在于能够将产品的组合与销量进行结合,为各个不同的消费者提供不同的消费等级。本设计主要包括以下几个方面: 1)显示模块:拟采用液晶显示屏和LED灯,前者可以实时为主老人提供必要的信息,如家居开关状态、时间等。LED灯可以模拟智能家居灯和其他模块启动指示灯。 2)语音识别模块:采用LD3320语音识别芯片和相关控制电路,在用户的语音进入语音识别部分后,LD3320将把处理过的数据并行传输到主控制器,主控制器处理后,发送命令数据到可扩展外围串行设备实现控制操作。 3)主控模块:拟采用STM32F103RCT6单片机作为系统控制器。 4)报警模块:提供蜂鸣器报警或语言报警两种模式,针对不同客户选用不同模式,防止家居出现问题时可以进行报警,一定程度上保证了老人的健康安全。 5)供电模块:拟采用锂电池+小型号光能电池板,保证整个系统正常运行。 6)按键控制模块:通过按键来控制系统,开启系统相关功能。 7)无线控制模块:控制其他一些智能设备,如智能衣架、机 库等。 8)电机控制模块:用来开通或者关闭门窗等。 2程序设计 2.1语音识别模块 LD3320模块为集成一体化设计,首先设置寄存器对芯片 进行初始化,然后通过设置寄存器把需要识别的关键词或句子 的拼音串传入LD3320芯片中,之后使寄存器控制芯片开始启 动一次识别过程[2],按键激活后,通过咪头和相关电路采集语音信息,通过与LD3320关键词语列表进行匹配比对,将相识度最 高的识别码直接通过串口输出到单片机进行处理,语音写入流 程图和语音识别流程图分别如图2和图3所示。 图2语音写入流程图图3语音识别流程图 2.2主控模块程序设计 主控模块采用STM32F103RCT6单片机来控制外围设备, 其工作电压为2.0V~3.6V,具有超强抗干扰、集成度高、低功耗 等优点,足以满足系统需要。主控模块主要控制四个部分,即显 示模块、无线控制模块、电机模块和报警模块。 当语音识别模块检测到“开灯”、“关灯”、“灯亮一点”、“灯暗 一点”关键词时,系统利用STM32系列单片机内部定时器的PWM模式产生PWM波形,通过PWM波的脉冲频率和其占空 智能语音控制系统设计 张敏杜丹阳李洪海(淮阴工学院,江苏淮安223003) Design of Intelligent Voice-Controled Systems 摘要:基于ARM芯片,设计一种智能语音控制系统。系统包括腕带式信息采集终端,拥有语音识别模块、按键控制模块、显示模块、电机控制模块、报警模块、无线控制模块,经随身佩戴,系统稳定,可靠性较高。 关键词:智能,语音控制,腕带式 Abstract押Based on ARM熏an intelligent voice control system device is designed in this paper.Wrist band type information ac?quisition terminal is included.The utility model is characterized in that the wrist band type information collection terminal is pro?vided with a speech recognition module熏a key button control module熏a liquid crystal display module熏a motor control module熏an alarm module熏a wireless control module熏and an operator only needs to wear it with him.The procedure is convenient and simple. Keywords押intelligence熏voice control熏wrist strap type 智能语音控制系统设计144

语音控制原理

语音控制原理 办公电器语音控制系统总体架构框图如图1所示,它由语音采集模块、语音前级处理模块、语音训练模块、语音识别模块、语音提示模块和输出控制模块组成。 (一)语音采集模块 语音采集模块主要完成信号调理和信号采集等功能,它将原始语音信号转换成语音脉冲序列,因此该模块主要包括声/电转换、信号调理和采样等信号处理过程。 (二)语音前级处理模块 语音前级处理模块的主要功能是滤除干扰信号、提取语音特征矢量,并将提取的语音特征矢量量化成标准语音特征矢量,因此该模块主要包括语音预处理、特征提取、矢量量化等语音信号处理过程。 (三)语音训练模块 语音训练模块的主要功能是将多次采集、提取的语音特征标准矢量进行概率统计,提取说话人的最佳语音特征标准矢量,防止因说话人心情、环境等因数引起提取特征参数不准确而影响语音识别效果,因此该模块主要包括概率统计、参数评估等处理过程,用隐马尔可夫模型(HMM模型)实现。 图1 语音控制系统总体设计框图 (四)语音识别模块 语音识别模块的主要功能是将重新采集的标准语音特征矢量与语音模板库中的语音模型进行比较,判断当前语音命令功能,因此该模块主要包括矢量比较与参数评估两个过程。(五)语音提示模块

语音提示模块的主要功能是根据语音识别的结果提示用户进行相关操作或说明当前完成的功能,因此该模块主要包括调用提示语音资源文件、D/A转换、信号放大等语音处理过程。 (六)输出控制模块 输出控制模块的主要功能是根据语音识别的结果输出相应的控制信号,实现电灯、电视、风扇等办公电器的语音控制功能,因此该模块主要包括信号驱动、输出控制器和被控对象。(七)语音模板库 语音模板库的主要功能是存储训练后的最佳标准语音特征矢量。 三、系统平台构建 本设计以办公电器为控制对象,充分利用凌阳单片机SPCE061A提供的内/外部硬件资源、库函数和微机提供的录音机工具,构建了办公电器语音控制的系统平台。 本设计采用的凌阳单片机内部资源丰富,且具有体积小、性能好、可靠性高等特点,在嵌入式语音控制系统得到了广泛应用,尤其是丰富的语音功能库函数,更是开发者的首选[2]。 办公电器语音控制系统硬件构建平台如图2所示。 图2 办公电器语音控制系统硬件构建平台 本设计利用凌阳IDE2.0开发环境及其提供的C语言编写,系统配套的软件构建平台如图3所示。

设计和开发控制程序.pdf

1目的 对设计和开发过程进行有效的策划、控制,提高设计和开发的质量,确保产品满足 顾客需求和期望及有关法律、法规的要求。 2适用范围 适用于本公司新产品设计、开发全过程,包括引进产品的转化、定型产品及生产 过程中的技术改进等。 3职责 技术部: 负责编制项目建议书,制定设计和开发的策划,实施设计和开发计划过程的 输入、输出、评审、验证、确认和更改阶段的控制。 质量管理部: 负责产品性能的检测,参加设计开发的评审、验证与确认等控制活动。 市场部: 采购员负责外购、外协件的采购和业务联系。 董事长: 负责批准项目建议书。 管理者代表: 批准设计和开发相关技术文件资料和试产报告所提出的必要的资料。 4程序 设计开发的策划 4.1.1根据公司发展战略、市场信息分析结果由管理层策划设计开发项目。技术部根据 设计开发的策划,编制《项目建议书》。项目建议书应包括: a) 设计和开发项目目标的描述(对产品的构思概念,产品的用途,开发产品的原因。) b) 顾客和市场对该产品的需求情况(对市场的需求做研究评估,产品在市场中的 价值地位。) 4.1.2《项目建议书》由技术部负责人审核,报董事长批准立项。 4.1.3对于具体设计工作,根据新产品开发建议书,技术部负责人组织有关部门进行评 审,并在评审通过后组织编制“产品设计任务书”,“产品设计开发任务书”的内容 包括: a) 明确方案设计、技术统计、工作室设计、样品试制、小试、产品定型各阶段的 划分和要求; b) 明确各设计阶段人员的分工和设计人员的职责权限、进度要求、成立试制小 组; c) 明确各设计阶段的接口、传递和评审的要求,过程中的信息必须写成文件,为 采购、制造、检验等活动提供技术依据; d) 适用于设计和开发控制的质量管理体系文件、程序和形成的记录描述; e) 对产品设计过程中的风险分析,包括设计过程中采取的措施;

相关文档
相关文档 最新文档