




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库课程设计 院系:信息科学与工程学院 班级:计算机1101级:姓名:陈梅贞 学号:3110307204 微机原理与接口技术课程设计报告 (选择多功能程序设计软件开发方向)班级: _计算机1101 _ 学号: 3110307204_ 姓名: _陈梅贞_指导教师: 蔡文培 _ 日期: 2013年9月28日_一、设计题目多功能程序的设计1设置一个主菜单界面,通过按键选择进入以下其中一项功能(按键自己设置,可以是数字键或字母),按ESC返回主菜单;按Q键退出系统;要求界面简洁明了,易于操作。2日期显示功能。在屏幕上以yyyy-mm-dd的格式显示系统日期、并以一定时间间隔随机改变显示位置;3闰年判断功能。提示输入闰年,对输入内容具有容错处理,计算是否闰年,然后输出结果;对输入的数字有容错处理,对非法字符给出提示。4代码转换功能。从键盘实现不同数制的输入并转换成另一种数制输出,如将十进制数(065535)转换为其对应的二进制数、将二进制(最多16位)数转换为其对应的十进制数、将十进制数(065535)转换为其对应的十六进制数、将十六进制数(最多4位)转换为其对应的十进制数等。键盘输入时,具有出错信息的提示与处理。(提示:获取系统时钟、屏幕显示需要使用相关的DOS功能调用和BIOS调用,请查阅相关参考书) 二、课程设计的目的 1加深对课程理论知识的理解; 2通过编写一定规模和难度的程序,进行一次较全面的汇编编程训练,提高分析问题和解决问题的能力;提高调试程序的能力。3熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,作为微机开发应用方面的初步训练。三、设计实现功能1. 菜单显示:设置有一个可以进行选择执行不同功能的主菜单和进制转换的子菜单,按对应功能的按键便可执行相应的功能;若有按到出选项外的其他键则提示退出标示,输入Y则返回主菜单,输入N则返回上一级。2. 日期显示:将时间显示和日期显示功能统一到第一个功能中,进入该功能后程序获取到系统时间然后间隔一段时间按照随机生成的坐标换显示的位置。按任意非空键键则可以返回主菜单(在完成题目的基本功能的基础上,有扩展了新的功能:增添了时间的显示)。3. 闰年判断功能:用户输入4位数据后系统自动显示判断结果,否则以回车键为判断用户是否输入结束。在此功能功能中有输入数据的容错处理,对非法字符会给出错误提示。在执行过后将会跳出提示信息询问是否要返回主菜(Y为返回主菜单,N为返回上一级,即继续执行闰年判断)使用者可根据需要选择。在这里也设置了容错处理,如果用户输入的不是Y和N会给出错误提示。4. 数制转化功能:进入此功能选项后可看到一个数制转换的子菜单,按相应选项可进去相应的功能。在此有对输入数据做容错处理,对非法字符给出提示。数制转化完会跳出提示信息用户可按相应的字符选择返回上一级或返回子菜单。四、设计内容与具体过程(分功能模块说明) 1.总体结构模块设计: 设计一个主菜单界面,在此界面我们可以选择调用要执行的相应的功能,也可以退出系统。在制作菜单等显示字符串的过程中主要使用BIOS中断调用,主要使用到的BIOS中断如下:中断号为10H:功能号AH=00H 置显示方式 入口参数:AL=显示方式代码(00H13H) AH=02H 置光标位置 入口参数:DH/DL=行/列 BH=显示页 AH=03H 取光标位置 入口参数:BH=显示页 出口参数:DH/DL=光标起始行/列 AH=06H 当前显示页上卷 入口参数: AL=上卷行数,0 为清屏BH=填充字符属性CH/CL=上卷窗口左上角坐标DH/DL=上卷窗口右下角坐标 AH=13H 从指定位置起显示字符串 入口参数: BH/BL=显示页/属性CX=字符串长度DH/DL=行/列ES:BP=字符串起始逻辑地址AL=0,用 BL 属性,光标不动1,用 BL 属性,光标移动2,字符,属性,光标不动3,字符,属性,光标移动中断号为16H:功能号AH=01H 检测键盘缓冲区是否空 出口参数:ZF=1,缓冲区空ZF=0,缓冲区不空AH=扫描码AL=ASCII AH=10H 清除缓冲区并读键 出口参数:AH/AL=扫描码/ASCII中断号为1AH:功能号AH=02H 读实时时钟时间 出口参数:CH=小时数CL=分钟数DH=秒数 AH=04H 读实时时钟日期 出口参数:CH/CL=世纪/年DH/DL=月/日主要用到的DOS调用如下: AH=01H :表示带回显的键盘输入,将字符的键值(ASCII码)送入AL寄存器中,并在屏幕上显示该字符 使用格式:MOV AH,01H INT 21H AH=02H: 表示从显示器上输出单个字符,被显示字符的ASCII码送入DL寄存器 使用格式:MOV DL,$ MOV AH,02H INT 21H AH=09H:表示在显示器上输出字符串,将指定字符串送到显示器显示,字符串事先存放在内存的数据缓冲区中,字符串的首地址送入指定位置,并要求字符串必须以“$”结束,入口参数DX指向缓冲区中字符串的首单元。 使用格式:LEA DX,MESG1 MOV AH,09H INT 21H结构图如下:2.日期动态显示功能:(1).设计思路: 时间显示模块:通过BIOS功能调用读取系统日期、时钟数据,再转化为相应数字字符的ASCII码存放于内存缓冲区,再调用BIOS功能显示内存缓冲区的内容,为显示停留一段时间,需要延时,时长为近似一秒,然后调用编写好的清屏过程段,将原来位置清楚,在新位置显示时间。如此过程反复、循环实现日期、时间的动态显示。为显示能改变位置的目的,需改变显示位置的参数,这些参数事先存放于内存缓冲区中,采用查表法读取。(2).程序流程图: 是否 开始从系统中读取当前的日期和时间信息将数字字符从高位到低位依次转化为ASCII码通过执行延时以及查表实现动态显示调用BIOS中断号为16H,功能号为01H,检测是否有按键输入结束,返回主 菜单3.闰年判断功能(1).设计思路说明:通过AH=01号功能从键盘输入年份字符,在每输入一个数字时就将其转化为数字,从千位开始输入,在输入数字的过程中先对输入的正确性进行判断,若为字母或符号等给出错误提示。用户输入4位数据后系统自动显示判断结果,否则以回车键为判断用户是否输入结束。完成整个年份的输入后,同时转化为了数字的年份再做被除数去除4、100、400判断是否为闰年或者平年,并调用BIOS 中断号为10H,功能号为13H号的功能显示判断结果。(2).程序流程图: 4. 数制转化功能:4.1十进制转化为二进制1) 设计思路 按单字符的形式输入十进制数,对输入的字符如果是非法字符给出错误提 示,以回车判断是否完成输入。对输入的字符进行左移3次等操作(相当于X10)完成十进制的输入。再经过循环左移16次将cy里值一次输出来,即为转化的结果。2) 设计流程图 4.2二进制转化为十进制3) 设计思路 按单字符的形式输入二进制数,对输入的字符如果是非法字符给出错误提 示,以回车判断是否完成输入。如果输入的是1将DX左移一位并自增1,如果输入的是0将DX左移一位。再循环进行除法运算(除以10)将余数以ASCII码的形式放入堆栈中,最后出栈即为所转换的结果。4) 设计流程图 4.3.十六进制转化为十进制: 1).设计思路: 流程图为输入一个四位十六进制的数,显示操作提示,并对输入的四位十六 进制数进行判断,十六进制数的各位上要是出现超出0-9、a-f,就出现错误提示,程序将不会执行,返回重新输入,输入的为0-9则减30H转化为ASCII码,输入的为a-f则减37H转化为ASCII码。将DX清零每次输入后左移4位并加上AL的值并进行进位调整。再循环进行除法运算(除以10)将余数以ASCII码的形式放入堆栈中,最后出栈即为所转换的结果。2).设计流程图: 4.4.十进制转化为十六进制: 1).设计思路: 按单字符的形式输入十进制数,对输入的字符如果是非法字符给出错误提 示,以回车判断是否完成输入。对输入的字符进行左移3次等操作(相当于X10)完成十进制的输入。将输进去的数送入BX,BX循环左移4位将BL送进DL,再把DL的高4位清零,并转化为ASCII输出。这样依次循环4次。2) .设计流程图: 五、程序结果测试运行结果: 1.主菜单界面: 2. 按1键,进入日期、时间动态显示界面: 3.当按下任意键后返回主菜单:4.当按下2键时进入闰年判断界面: 测试数据2004,结果为:输入N后,继续测试,测试数据1700:输入N后,继续测试,输入A:输入的不是Y和N:5. 输入Y,返回主菜单后,按下键3,进入数制转化功能选项界面:5. 按下键1,进入十进制到二进制的转化: 输入数据A: 6. 按下键2进入十进制到十六进制的转换:输入W:7. 按下键3进入二进制到十进制的转换:输入2:8 .按下键4进入十六进制到十进制的转换:输入:a9 在主菜单按下Q:10 在子菜单按下Esc:六、设计总结:本次课程设计选择多功能程序的设计,设计题目中提出要求大部分都完成了,还有在时间显示那做了相应的扩展。只是在进制转换那容错处理没全部实现。在完成每个功能的实现中遇到了很多困难也得到了很大收获。首先我先说下在实现葛工模块中遇到的几个典型的困难和改正方法:(1) 在实现日期显示那,在设置按任意键退出时返回主菜单时,刚开始只是判断键盘缓冲区是否有输入,虽然能退出,但是在主菜单要进行下一次选择操作时,无法正确操作,故应再输入任意键后实行清除缓冲区,以保证能正确读取下一次输入的字符。在对year清零时最初用XOR,即year异或0处理,在测试发现闰年(例1700)的第一次可以正确判断为闰年,第二次不返回主菜单继续判断一次1700就会判断出错。原因是第一次year里是0异或0后还是零,而第二次yea里有值异或后无法达到清零的结果,故会出错。(3) 进制转化模块是这次实验的重点也是难点,思维能力要求比较强。在做这个模块的时候出现了很多错,特别是二进制转和十六进制转十进制时,没有想到用循环除10的方法,一直无法达到转换的效果,所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡村健全基层管理制度
- it设备送修管理制度
- 临时用房防火管理制度
- 义齿物料平衡管理制度
- 企业后勤综合管理制度
- 丽江导游薪酬管理制度
- 仓储企业消防管理制度
- 企业人员备案管理制度
- 中药蒙药监督管理制度
- 中心共享茶室管理制度
- 车间工艺报警管理制度
- 中建二测2025题库
- 天津公务员考试真题2024
- 重点人口管理工作规定
- 肾挫伤患者护理查房
- 山东省烟台市、龙口市2025届中考生物考试模拟冲刺卷含解析
- 2024-2025学年安徽省芜湖无为市六年级下学期小升初招生数学试卷含解析
- 东方经(已经排好版)
- DB14-T 3225-2025 煤矸石生态回填环境保护技术规范
- 福建省厦门市2022-2023学年高二下学期质量检测生物试题(解析版)
- 管道直饮水项目初步方案
评论
0/150
提交评论