单词记忆测试器_第1页
单词记忆测试器_第2页
单词记忆测试器_第3页
单词记忆测试器_第4页
单词记忆测试器_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单词记忆测试器Documentserialnumber【UU89WT-UU98YT-UU8CB-UUUT-UUT108】随着现代社会的发展,电子技术的进步我们有目共睹,计算机是现代电子技术的成果。在现实生活中、科学研究中计算机起着越来越重要的作用。微型计算机原理这门课程是对计算机进一步的了解与接触,微型计算机原理是一门培养计算机应用能力的技术基础课程。本课程主要介绍了有关微型计算机的硬件基础知识、基本原理,掌握汇编语言的指令以及编程应用。本课程设计是基于微机原理与接口技术的简单应用。本设计以8086cpu为处理器,利用8255处理芯片的复位功能来实现对于单词的录入,读取。以12854点阵液晶屏为显示器件,并使用5X6距阵键盘为输入设备,实现了功能全面的人机界面和高速的数据处理功能,,可储存10-20个英文单词,作为记忆测试用。关键词:8086cpu;8255处理芯片;12854点阵液晶屏5*6矩阵键盘目录TOC\o"1-5"\h\z\o"CurrentDocument"1绪论 1\o"CurrentDocument"基本内容 1\o"CurrentDocument"用途及特点 12方案选择及论证 2设计方案 2 2TOC\o"1-5"\h\z\o"CurrentDocument"方案论证 23硬件系统说明 4\o"CurrentDocument"硬件设计思路 4\o"CurrentDocument"中央处理模块 4\o"CurrentDocument"显示模块的硬件部分介绍 4\o"CurrentDocument"矩阵键盘 7系统构成框图 8芯片选择 9\o"CurrentDocument"8086CPU内部结构及其各引脚 9\o"CurrentDocument"8255A处理芯片 10电路原理图设计 13\o"CurrentDocument"存储空间与I/O地址分配 144软件系统说明 15\o"CurrentDocument"软件设计思路 15 15 16TOC\o"1-5"\h\z矩阵键盘输入模块 19\o"CurrentDocument"LCD12864显示模块 19\o"CurrentDocument"显示字模码的提取模块 20源程序清单 20\o"CurrentDocument"5所选芯片清单 28总结 29\o"CurrentDocument"致谢 30\o"CurrentDocument"参考文献 311绪论随着现代社会的发展,电子技术的进步我们有目共睹,计算机是现代电子技术的成果。在现实生活中、科学研究中计算机起着越来越重要的作用。多媒体技术、网络技术、智能信息处理技术、自适用控制技术、数据挖掘与处理技术等都离不开计算机。在越来越多的场合中,计算机扮演着意味深远的角色。微型计算机原理这门课程是对计算机进一步的了解与接触,微型计算机原理是一门培养计算机应用能力的技术基础课程。本课程主要介绍了有关微型计算机的硬件基础知识、基本原理,掌握汇编语言的指令以及编程应用。本次课程设计是基于微机原理与接口技术的简单应用。基本内容本设计以8086CPU为处理器,利用8255处理芯片的复位功能来实现对于单词的录入,读取。以12854点阵液晶屏为显示器件,并使用5X6距阵键盘为输入设备,实现了功能全面的人机界面和高速的数据处理功能,,可储存10-20个英文单词,作为记忆测试用,具体内容分为:1.输入单词,提示输入单词,输入最少5个、最多255个英文单词,每个单词不超过20个字符。若直接回车,则结束单词输入,进入单词测试。输足20个字符,自动进入下一个单词的输入。不足20个字符个字符,按回车键进入下一个单词的输入。2.单词记忆测试:从输入的第一个单词开始测试。键入’y'(不分大小写)或'n',回答是否认识,不需按回车键确认,其它按键无效。紧接着,没有提示,可按上移键或下移键循环测试。按Esc键结束测试。3.计算单词识别率并显示输出。4.提示是否进行下一组单词的输入和测试,键入’y'(不分大小写)或'n'选择是否继续,不需按回车键确认,其它按键无效。用途及特点本论文的研究对象是基于808CPU的单词记忆测试器的设计,此单词记忆测试器可以实现单词的输入并判断输入的单词是否正确,单词背完后给出正确率。此项设计为现实生活中人们学习英语提供了很大的帮助,在现代社会有着广泛的应用。2方案选择及论证设计方案本题目实质上是一个具有一定复杂程度键盘扫描程序,可将单词存储在一个二维数组中。根据课题要求,使用 8086CPU进行编程,采用8255处理芯片以及复位电路和时钟电路,建立字符型数组存放单词,通过LCD显示所存放的单词。根据设计书的基本内容,有两种设计方案。首先利用了编程程序,编辑8255芯片控制字,对其进行初始化,使其工作在方式0,即基本输入输出状态,将8255的A端口设置为输出,C端口进行,经CPU运算后,输出到CPU芯片的A端口中,由此实现对其的初始化。其次接入键盘和显示屏,进行初始化,然后录入单词,测试单词,可以输入5个单词,但不超过255个,单词不超过20个字符,按回车键进行下一个单词的输入,然后进行单词记忆测试:从输入的第一个单词开始测试。键入’y'(不分大小写)或'n',回答是否认识,不需按回车键确认,其它按键无效。紧接着,没有提示,可按上移键或下移键循环测试。按Esc键结束测试。计算单词识别率并显示输出。提示是否进行下一组单词的输入和测试,键入’y'(不分大小写)或'n'选择是否继续,不需按回车键确认,其它按键无效。对CPU和8255A先进行初始化,再对键盘和显示屏进行初始化,然后录入单词,测试单词,可以输入5个单词,但不超过255个单词,单词的输入分为两种情况,第一种是单词必须够20个字符,自动进入下一个单词的输入,第二种是单词输入不超过20个单词,按回车键进行下一个单词的输入,出现哪个执行哪个,然后进行单词记忆测试,从输入的第一个单词开始测试。键入’y'(不分大小写)或'n',回答是否认识,不需按回车键确认,其它按键无效。紧接着,没有提示,可按上移键或下移键循环测试。按Esc键结束测试。计算单词识别率并显示输出。提示是否进行下一组单词的输入和测试,键入'y'(不分大小写)或'n'选择是否继续,不需按回车键确认,其它按键无效。方案论证认真对比两个方案,方案一和方案二都有自己的优点和缺点,我们选择的是方案二,方案一的单词没有输入够20个字符,需要按键才能进行下一个单词的读写,这样的话没有考虑到输入够20个字符。方案二是输入够20个字符,不需要按键就能进行下一个单词的读写,输入不够20个字符,需要按键才能进行下一项,我们可以两个都采用,输足20个字符,自动进入下一个单词的输入,不足20个字符个字符,按回车键进入下一个单词的输入。这样可以考虑到所有的情况,可以实现单词的写入。此次设计的课题分为硬件和软件两部分。硬件方面主要由处理芯片和时钟振荡电路,复位电路整个实现字符的输入、输出以及电子显示液晶屏的清屏操作。硬件系统部分包括三个模块:中央处理模块、显示模块、键盘输入模块。中央处理模块选用8086CPU,8255处理芯片以及复位电路和时钟电路。输出显示模块主要由单色点阵液晶屏来实现。矩阵键盘输入模块主要由5*6的矩阵电路来实现。硬件设计思路此次设计的课题分为硬件和软件两部分。硬件系统部分包括三个模块:中央处理模块、显示模块、键盘输 入模块。中央处理模块选用8086CPU,8255处理芯片以及复位电路和时钟电路。显示模块主要由单色点阵液晶屏来实现。矩阵键盘输入模块主要由5*6的矩阵电路来实现。中央处理模块中央处理模块选用8086CPU组成,电路包括:8255处理芯片、复位电路、时钟振荡电路。8086cpu需要在复位电路和时钟振荡电路组成的最小系统下工作,时钟电路采用频率采用为12MHZ的晶振。复位电路采用电解电容与电阻串联,。用户可以通过切断电源进行手动复位,或者通过重新下载新的程序进行复位。显示模块的硬件部分介绍显示模块采用单色点阵液晶屏12864模块,该模块在点阵液晶屏基础上集成了控制器kS0108,用户只需设计好接口程序,就可让模块显示出各种字符和图像。12864为一块128X64点阵的LCD显示模块,模块上的LCM采用COG技术将控制(包括显存)、驱动器集成在LCM的玻璃上,接口简单、操作方便;为方便用户的使用,在LCM的基础上设计了12864模块,将模块所必需的外围电容电阻集成到模块上,并引出多种形式的引线接口方便用户使用。12864模块与各种MCU均可进行方便简单的接口操作。LCD的接口:图LCD引脚说明图显示RAM区映射情况:对于LCD模块,应该了解清楚驱动控制IC当中的显存与LCD玻璃上的点的对应关系是非常重要的,这是编写LCD的驱动程序的基础。12864液晶显示模块的显示器(玻璃)上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的。驱动控制芯片的显示RAM区每个byte的数据对应屏上的点的排列方式为:纵向排列,低位在上高位在下图驱动控制芯片的显示RAM区12864液晶显示模块的显示屏上的每一个点都对应有控制器片内的显示缓存RAM中的一个位,显示屏上64X128个点分别对应着显示RAM的8个Page,每一个Page有128个byte的空间对应。因此可知显示RAM区中的一个Page空间对应8行的点,而该Page中的一个byte数据则对应一列(8个点)。图6为显示RAM区与显示屏的点映射图:图显示RAM区与显示屏的点映射图矩阵键盘要测试记忆的单词,就要有字母的输入接口,本接口设计为5X6矩阵键盘输入,接入CPU的P1口和P3口进行键盘扫描。最大程度地提高了CPU的IO口的利用率,设计共30个接键,包括了26个英文字母以及四个功能键:“确定”、“不认识”、“上一个”、“下一个”。矩阵键盘如图10,由30个轻触按键按照6行5列排列,连接到P1、P3端口。其扫描的原理是:先将行线所接的CPU的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。然后再将行线所接的CPU的I/O口作为输入端,而列线所接的I/O口则作为输出,以相同的方法读一次端口,程序中就可识别是这个坐标的按键按下了。图矩阵键盘原理图系统构成系统主要由8086CPU,8255A系统主要由8086CPU,8255A,点陈液晶屏还有矩阵型键盘输入组成。矩阵型键盘输入芯片选择8086CPU内部结构及其各引脚图8086cpu引脚图8086cpu的内部结构8086CPU从功能上划分成两部分:总线接口单元BIU(BusInterfaceUnit)和执行单元EU(ExecutionUnit).??EU的组成部分:16位通用寄存器(AX,BX,CX,DX,SP,BP,SI,DI)、算术逻辑单元(ALU)、标志寄存器(FLAG)、电路。BIU的组成部分:段寄存器组(CS,DS,SS,ES)、指令指针(IP)、地址加法器、指令队列缓冲器、总线接口控制逻辑。8086cpu的工作方式8086的最小/最大工作方式Intel公司在设计8086CPU芯片时,规定了两种工作模式,即最小工作模式和最大工作模式。通过CPU的第33条引脚MN/来控制。1.最小工作模式(MN/=1):把8086CPU的33引脚接+5V时,系统处于最小工作模式。最小模式系统适用于单组成的小系统,系统中通常只有一个微处理器,所有的总线控制信号都直接由8086CPU产生,系统中的总线控制被减到最少。2.最大工作模式(MN/=0):当把8086的33引脚接地时,系统处于最大工作模式。此时,系统中存在两个或两个以上的微处理器,其中有一个主处理器8086,其他处理器称为协处理器。8255A处理芯片图8255内部结构图8255的引脚图:图8255A引脚图8255的方式选择控制字:(1) 方式选择控制字把入、B、CM个端口分为A、B两组来设定工作方式。A组包括端口A和端口C的上半部,B组包括端口B和端口C的下半部。(2) 端口A可工作于3种方式中的任何一种:端口B只能工作于方式0和方式1;而端口C除用作输入、输出口(方式0)外,通常用来配合端口A和端口B提供联络控制信号和状态信号。(3) 归在同一组的两个端口可分别作为输入端口或输出端口,不要求同为输入或输出。图方式选择控制字8255端口C按位置位/复位控制字(1) 端口C按位置位/复位控制字尽管是对端口C进行操作的,但此控制字必须写入控制口,而不写入端口C。(2) 一个控制字只能完成端口C中某一位置的置1或置0,要对多位置1或置0,必须使用多个控制字。图C端口的方式控制字采用的方式控制字使用8255的B口作为数据输入端,与开关相连接(即D1:1);使用工作方式0(即D6D5:00)。综上:8255的方式控制字为:10000010(即82H)图时钟电路图

图复位电路图电路原理图设计电路原理图设计使用集原理图设计、PCB设计、电路仿真功能为一体的PROTUES软件。以该软件设计的电路原理图。图单词记忆测试器电路原理图电路设计参数:(1) C1C2为20-30PF瓷片电容,与12M晶振组成时钟振荡电路;(2) 复位电路使用R1为10K电阻、C3为10uF电解电容;(3) 12864液晶模块与CPUP0口连接,因P0口为真正的三态门结构,因些作数据总线使用时要外接上拉电阻,可使用10K的排阻;(4) 按键如图的行相连,列相连的矩阵接法连入CPU的IO口;(5) 电路的供电为5V直流电源;(6) D1为输入错误的状态指示灯,加220欧限流电阻连到VCC,因为CPUIO的电流灌入能力要强于电流输出能力,因此一般使IO为低电平时点亮LED灯。存储空间与I/O地址分配本设计以8086为中心,通过译码器74LS138对各个芯片的工作进行地址分配,控制各个芯片在何种工作状态,当第一个单词输入后通过采集放到内存,显示在LED上,依次执行完所有请求,直到单词记忆测试完成。语言来编写程序,整个程序代码设计分别将代码和数据存储在代码段、数据段以及附加段中。扫描单词、输入单词再将二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示。清显示屏,经复位电路到单词链表进入主程序的循环结构。以此反复以至于达到单词测试记忆的目的。软件设计思路因本系统为模块化设计,为方便软件编写和移植,程序设计采用汇编语言,程序流程图如 一显示屏初始化键盘扫描输入有按键命执行按键命令显示下.输入正确.NY图程序流程图主程序的定义与录入Y显示正确确N8255入初始化2CPU显示屏初始化键盘扫描输入有按键命执行按键命令显示下.输入正确.NY图程序流程图主程序的定义与录入Y显示正确确N8255入初始化2CPU初始化显示主程序首先进行存储变量的定义:存储各测试单词的长度,如果输入的单词长度与存储的不同,也为错误。为能动态地显示测试的单词,先将要测试的单词存在一个二维数组中,显示了该数组中的字符时,显示函数也会被调用b6db1000hdup('$')b9db'Youdonotknowthefollowingwords,pleaserememberthemagian',0ah,0dh,'$'f1db'verygood,congratulationstoyou',0ah,0dh,'$'主程序的主循环主程序的主循环部分代码及注释如下:movWords,cl;保存单词数目leasi,Buffer;数据缓冲区地址movbx,[]mov口,bx;把第一个节点的前一个节点地址指向最后一个节点mov口,si;把最后一个节点的下一个节点地址指向第一个节点,形成循环链表键盘的输入是通过矩阵扫描的方法,通过矩阵扫描可找到按键所在的某行某列,但要得到一个英文字母值,还得在返回的某行某列位置预先定义个字母值,因此5*6矩阵键盘的整个返回字母表可定义一个二维数组存储。该二维数组为行*列10*5,即10行5列,10行表示有10个单词,实际根据存储ROM的大小,可以增加单词数;列数表示单词在存储器中占的字符数,以最长单词(5个字符)定义,不足5个字符的单词后补空格表示。输入单词:提示输入单词,输入最少5个、最多255个英文单词,每个单词不超过20个字符;若直接回车,则结束单词输入,进入单词测试;输足20个字符,自动进入下一个单词的输入;不足20个字符个字符,按回车键进入下一个单词的输入。单词录入模块程序代码段:Input_WordsProcNear;输入一组单词xorcl,cl;输入的单词数目初值leabx,Buffer;数据缓冲区地址movdi,bxOutputPrompt_Str1;提示输入单词@@Input_Words:cmpcl,255jz@@Termanate;限定最多255个单词mov:],No;初始化识别标志mov口,di;前一个节点地址mov[],Chrs+1;每个单词最多字符数movdi,bxleadx,[];键盘输入缓冲区地址movah,0ah;输入单词int21hmovsi,dxincsilodsb;读入实际输入的字符个数,即单词长度testal,al;直接回车?jz@@Termanate;是,结束单词输入inccl;累计输入的单词数目xorah,ahaddsi,axmov[si],'$';使之能用dos功能调用9号功能显示这个字符串(单词)incsimov口,si;下一个节点地址movbx,sicallOutput_CTLF;输出一个回车、换行jmp@@Input_Words;输入下一个单词@@Termanate:cmpcl,10jb@@Input_Words;限定最少5个单词movWords,cl;保存单词数目leasi,Buffer;数据缓冲区地址movbx,[]mov[],bx;把第一个节点的前一个节点地址指向最后一个节点mov口,si;把最后一个节点的下一个节点地址指向第一个节点,形成循环链表callOutput_CTLFretInput_WordsEndP

图单词录入模块单词记忆测试:从输入的第一个单词开始测试。键入'y'(不分大小写)或'n',回答是否认识,不需按回车键确认,其它按键无效。紧接着,没有提示,可按上移键或下移键循环测试。按Esc键结束测试。然后计算单词识别率并显示输出。提示是否进行下一组单词的输入和测试,键入'y'(不分大小写)或'n'选择是否继续,不需按回车键确认,其它按键无效。单词测试程序代码段:Test_WordsProcNearcallOutput_CTLFcallOutput_CTLFleadx,[][2]movah,9int21hcallOutput_CTLFOutputPrompt_Str2;要求回答是否认识这个词汇,回答字母不分大小写@@Recognise:or口,YescallYes_or_Nojc@@Up_Downand[],No@@Up_Down:xorah,ahint16hcmpah,KBEscjnz$+3retcmpah,KBUpjnz@@Next_KBDownmovsi,[]jmpTest_Words@@Next_KBDown:cmpah,KBDownjnz@@Up_Downmovsi,[]jmpTest_WordsTest_WordsEndP图单词测试模块图矩阵键盘输入模块矩阵键盘采用5X6列与行扫描法,P1口依次接键盘的每一行,而P3口依次接键盘的每一列,程序开始先令P1全为高电平,P3口全为低电平,这样一旦矩阵键盘中有一个键按下时,就会在某一行中出现低电平,而某一列中出现高电平,程序先读P1口,以检测到有低电平来确定行。再使P1全为低电平,P3口全为高电平,再读P3口,以检测到低电平来确定列。这里还要考虑按键的机械抖动问题,因为按键的机械特性,可能在按下瞬间会有一组抖动的脉冲,一般程序中采用延时方法来去抖动。LCD12864显示模块LCD12864显示模块的程序作为显示部分的底层程序,用户可直接调用其函数来达到驱动和显示功能。清显示屏,将LCD上的显示字符清空。字符的显示,将输入的字符,单词显示在液晶显示屏上。进入主程序后,先对LCD12864屏进行初始化和清屏操作,然后在LCD12864屏上显示单片机单词记忆测试器的静态的图文,需要动态刷新的字符则在主循环中进行。LCD12864的显示效果如下,此时系统进入单词输入测试就绪状态。图单词测试就绪状态在系统进入单词输入测试就绪状态后,主程序即进入while(1)的主循环中,循环进行键盘扫描,并判断键盘输入值,再与待测试的单词进行比较,如果输入的字符和字符长度均与被测试的单词一致,则显示correct加1,即为加1分,并进入下一个单词的测试,测试完10个单词后,重新进入第1个单词的测试。显示字模码的提取模块为了使LCD12864能够显示用户存储的中文汉字和英文单词,用户必须将要显示的汉字字模及英文字母字模码存入存储器中,因LCD12864只能显示点阵图形,因此存储入单片机的字模码必须是通过点阵码转换而成,为了软换更方便,设计使用了字模转换软件实现英文码的取模。源程序清单b6db1000hdup('$')b9db'Youdonotknowthefollowingwords,pleaserememberthemagian',0ah,0dh,'$'f1db'verygood,congratulationstoyou',0ah,0dh,'$'callzi4;输出不认识的单词movah,02h;回车换行movdl,0dhint21hmovah,02hmovdl,0ahint21hcallzi2;将不认识的单词存到B6所指单元callzi2;将不认识的单词存到B6所指单元m2:incdimovsi,z;保留SI的地址zi4procpushaxpushbxpushcxpushdxpushsipushdi

leadx,b9;输出不认识的单词movah,09hint21hleadx,b6movah,09hint21hpopdipopsipopdxpopcxpopbxpopaxretzi4endpCodeSegmentAssumeCS:Code,DS:Code; 功能:显示指定地址(Str_Addr)的字符串入口:Str_Addr=字符串地址(要求在数据段)用法:OutputStr_Addr用法:OutputStr_Addr用法举例:OutputPromptStr)OutputMACROStr_AddrOutputMACROStr_Addrpushaxleadx,Str_Addrmovah,9int21hpopaxEndM; ;功能:输出一个字符;入口:dl=要显示的字符Output_ChrprocNearpushaxmovah,02hint21hpopaxretO:兰兰—;功能:输出回车换行Output_CTLFprocNearpushaxpushdxmovah,02hmovdl,0dhint21hmovdl,0ahint21hpopdxpopaxretOutput_CTLFendp; ;功能:把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示;入口:AX=X进制数;出口:在当前光标位置显示转换后的ASCII码数字Dec_ASCIIProcNearpushdxpushbxpushdimovbx,10leadi,@@Temp_Save[6]movBYTEptr[di],'$'decdi@@Divide:xordx,dxdivbxordl,30hmov[di],dldecditestax,0ffffhjnz@@Divideincdipushdipopdxmovah,9int21hpopdipopbxpopdxret@@Temp_Savedb7dup(?)Dec_ASCIIEndP;功能:键盘输入一个字符,若输入的是'y'或'n'(不分大小写),则显示并返回;入口:无;出口:若输入的是'y',进位标志置位;若输入的是'n',进位标志复位。Yes_or_NoprocNearpushdxpushax@@Input_Chr:movah,7;不带回显的键盘输入int21hmovdl,alandal,0dfhcmpal,'Y'jnz$+5stcjmp$+7cmpal,'N'jnz@@Input_Chrclcmovah,2int21hpopaxpopdxretYes_or_NoEndp; Input_WordsProcNear;输入一组单词xorcl,cl;输入的单词数目初值leabx,Buffer;数据缓冲区地址movdi,bxOutputPrompt_Str1;提示输入单词@@Input_Words:cmpcl,255jz@@Termanate;限定最多255个单词mov:],No;初始化识别标志mov[],di;前一个节点地址mov[],Chrs+1;每个单词最多字符数movdi,bxleadx,口;键盘输入缓冲区地址movah,0ah;输入单词int21hmovsi,dxincsilodsb;读入实际输入的字符个数,即单词长度testal,al;直接回车?jz@@Termanate;是,结束单词输入inccl;累计输入的单词数目xorah,ahaddsi,axmov[si],'$';使之能用dos功能调用9号功能显示这个字符串(单词)incsimov口,si;下一个节点地址movbx,sicallOutput_CTLF;输出一个回车、换行jmp@@Input_Words;输入下一个单词@@Termanate:cmpcl,5jb@@Input_Words;限定最少5个单词movWords,cl;保存单词数目leasi,Buffer;数据缓冲区地址movbx,[]mov[],bx;把第一个节点的前一个节点地址指向最后一个节点mov[],si;把最后一个节点的下一个节点地址指向第一个节点,形成循环链表callOutput_CTLFretInput_WordsEndP; TestWordsProcNear\。…CTLFcallOutput_ClLFcallOutput_CTLFleadx,[][2]movah,9int21hcallOutput_CTLFOutputPrompt_Str2;要求回答是否认识这个词汇,回答字母不分大小写@@Recognise:or[],YescallYes_or_Nojc@@Up_Downand[],No@@Up_Down:xorah,ahint16hcmpah,KBEscjnz$+3retcmpah,KBUp

jnz@@NextKBDownmovsi,口jmpTestWords@@NextKBDown:cmpah,KBDownjnz@@Up_Downmovsi,口jnz@@NextKBDownmovsi,口jmpTestWords@@NextKBDown:cmpah,KBDownjnz@@Up_Downmovsi,口jmpTestWordsTestWordsEndPStatics_WordsProcNear;计算单词识别率movcl,Words;取单词数xorch,chleasi,Buffer;数据缓冲区地址movbx,[]xorax,ax@@L0:addal,口;累加识别率movsi,[]loop@@L0movbl,100mulbldivWordsOutputPrompt_Str3;提示显示单词识别率callDec_ASCII;把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示movdl,'%'callOutput_Chr;显示输出一个字符retStatics_WordsEndP; Chrsequ20;单词最多字符数Yesequ1;认识Noequ0;不认识KBEscequ1;Esc键扫描码KBUpequ48H;1键扫描码KBDownequ50H;1键扫描码;定义结构类型Words_TableStruc;单词链表Recognisedb?;识别标志(是否认识这个单词)previousdw?;前一个节点地址Nextdw?;下一个节点地址Words_TableEndS; Prompt_Str1db'Pleaseinputwords:',13,10,'$';“请输入单词”提示信息Prompt_Str2db'doyouknowit?(y/n):$';“是否认识单词”提示信息Prompt_Str3db7,13,10,13,10,'youranswerrateis:$';“单词识别率”提示信息Prompt_Str4db7,13,10,13,10,'Doyouwanttotestagain(y/n)?$';“测试下一组单词?”提示信息Wordsdb0;实际输入的单词数目Press_Keydb7,13,10,13,10,'Thecomplated.Pressanykeytoexit...$';操作完成按任意键结束程序提示信息Start: pushcspopdspushcspopes;使数据段、附加段与代码段同段@@InputWord:callInput_Words;输入一组单词callTest_Words;测试识别率callStatics_Words;计算单词识别率OutputPrompt_Str4;再测试一组单词?callYes_or_NocallOutput_CTLFcallOutput_CTLFjc@@InputWord; Exit_Proc:OutputPress_Key;提示操作完成,按任意键结束程序movah,1int21hmovah,4ch;结束程序int21hBuffer:;数据缓冲区CodeENDSENDStart;编译到此结束5所选芯片清单总结时光飞逝,短短的两周的课程设计即将结束,现在回头想想两周的设计,我们对自己的这次设计有了更深,更新

温馨提示

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

评论

0/150

提交评论