微机原理课程设计
微机原理课程设计

设计题目的注意事项
安全性
在设计过程中,需要考虑系统的 安全性。特别是在涉及到控制、 信号处理等应用时,需要采取必 要的安全措施,如防电击、防干
扰等。
可靠性
微机系统常常需要长时间稳定运 行,因此需要充分考虑系统的可 靠性。在设计时应该选择质量可 靠的材料和器件,并进行充分的
测试和验证。
可维护性
为了方便系统的维护和升级,应 该注重设计的模块化和可扩展性。 同时,应该提供必要的技术文档 和使用说明,以便于日后的维护
• 展望:未来微机原理课程设计可以引入更多新技术和实验设备,如人工 智能、物联网等,以培养学生的创新能力和适应未来发展的能力。同时, 应关注学生的个性化需求和学习差异,提供更多元化的学习资源和指导 方式。
THANKS
感谢观看
和使用。
04
课程设计实施过程
设计方案的制定
确定设计目标
明确课程设计的目的和要求,确定设计的功能和性能指标。
调研与资料收集
收集相关资料,了解微机原理的基本知识和技术,为后续设计提供 参考。
制定设计方案
根据设计目标,制定出合理的硬件和软件设计方案,包括系统结构、 电路原理图、软件流程图等。
硬件电路的设计与实现
提供更多关于汇编语言的资料和练习 题,帮助学生熟悉汇编语言的语法和 指令集。
问题二
部分学生在硬件连接和调试过程中遇 到问题。
解决方案
加强实验指导和现场演示,确保学生 正确连接硬件并掌握调试技巧。
问题三
部分学生对微机原理的理解不够深入。
解决方案
在课程设计中增加更多理论讲解和案 例分析,帮助学生理解微机原理的基 本概念和工作机制。
指令由操作码和操作数组成,操作码指定要执行的操作,操作数 指定操作数。
微机原理步进电机课程设计

微机原理步进电机课程设计一、课程目标知识目标:1. 让学生掌握微机原理在步进电机控制中的应用,理解步进电机的结构、原理及其特点。
2. 使学生了解步进电机与微控制器之间的接口技术,掌握步进电机的驱动程序编写方法。
3. 让学生掌握步进电机速度和位置控制的基本算法,并运用到实际项目中。
技能目标:1. 培养学生运用微机原理解决实际问题的能力,学会编写和调试步进电机控制程序。
2. 培养学生的动手实践能力,能独立完成步进电机的组装、调试和故障排查。
3. 培养学生团队协作能力,通过分组合作完成课程设计任务。
情感态度价值观目标:1. 激发学生对微机原理和步进电机控制技术的兴趣,培养其探索精神和创新意识。
2. 培养学生严谨、认真的学习态度,养成良好的实验操作习惯。
3. 增强学生的环保意识,关注步进电机在节能环保领域的应用。
本课程针对高年级学生,课程性质为理论与实践相结合。
在分析课程性质、学生特点和教学要求的基础上,将课程目标分解为具体的学习成果。
教学过程中,注重培养学生的实际操作能力和团队协作精神,使学生在完成课程设计任务的过程中,达到知识、技能和情感态度价值观的全面提升。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 微机原理基础:回顾微控制器的基本原理,重点讲解微控制器与步进电机的接口技术,涉及课本第3章相关内容。
2. 步进电机原理与结构:介绍步进电机的种类、结构、原理及特点,对应课本第5章内容。
3. 步进电机驱动技术:讲解步进电机的驱动电路设计,包括驱动芯片的选型、接口电路设计等,参考课本第6章相关内容。
4. 步进电机控制算法:学习步进电机的速度和位置控制算法,如PID控制、闭环控制等,结合课本第7章内容。
5. 实践操作:分组进行步进电机的组装、调试及控制程序编写,巩固理论知识,培养实际操作能力。
教学大纲安排如下:第1周:微机原理基础回顾,了解步进电机接口技术;第2周:学习步进电机原理与结构,选型及参数了解;第3周:步进电机驱动技术学习,驱动电路设计;第4周:步进电机控制算法学习,编写控制程序;第5周:实践操作,步进电机组装、调试及故障排查;第6周:课程设计总结,成果展示及评价。
杭电微机原理课程设计

杭电微机原理课程设计一、课程目标知识目标:1. 学生能够理解微机的基本原理和组成结构,掌握微机工作流程。
2. 学生能够掌握微机编程的基本知识,如汇编语言和机器码。
3. 学生能够了解微机系统中的应用程序和接口技术。
技能目标:1. 学生能够运用所学知识进行微机系统的设计和调试。
2. 学生能够编写简单的汇编程序,实现基本的输入输出功能。
3. 学生能够运用微机接口技术,实现硬件与软件的交互。
情感态度价值观目标:1. 学生培养对微机原理及应用的兴趣,激发探究精神。
2. 学生形成良好的团队合作意识,学会共同解决问题。
3. 学生认识到微机技术在国家经济发展和社会进步中的重要作用,增强社会责任感。
课程性质:本课程为专业性较强的实践课程,结合理论教学,注重培养学生的动手能力和实际操作技能。
学生特点:学生具备一定的电子技术和计算机基础知识,具有较强的学习能力和实践欲望。
教学要求:教师应采用启发式教学方法,引导学生主动探究,注重理论与实践相结合,提高学生的综合运用能力。
同时,关注学生的个体差异,因材施教,确保每个学生都能达到课程目标。
通过课程目标的分解,将学习成果具体化,便于教学设计和评估。
二、教学内容1. 微机原理概述:介绍微机的发展历程、基本组成、工作原理,使学生建立整体认识。
教材章节:《微机原理》第1章。
2. 微机硬件系统:讲解微处理器、存储器、输入输出接口等硬件组件的原理与功能。
教材章节:《微机原理》第2章。
3. 汇编语言编程:学习汇编语言的基本语法、指令系统,掌握汇编程序的编写和调试。
教材章节:《微机原理》第3章。
4. 微机接口技术:介绍常用接口电路的原理与应用,如并行接口、串行接口等。
教材章节:《微机原理》第4章。
5. 微机系统设计与实践:结合实际案例,指导学生进行微机系统设计,培养学生的动手能力。
教材章节:《微机原理》第5章。
6. 微机应用案例分析:分析典型微机应用系统,如嵌入式系统、控制系统等,拓展学生视野。
微机原理课程设计88

微机原理课程设计88一、教学目标本课程的教学目标旨在帮助学生掌握微机原理的基本知识和技能,培养学生运用微机原理解决实际问题的能力。
知识目标:使学生了解微机的基本组成原理、微处理器的工作原理及其内部结构、指令系统、中断系统、I/O系统等,掌握汇编语言编程方法,了解微机在现代科技领域中的应用。
技能目标:培养学生具备使用微机进行程序设计、系统分析与调试的能力,能运用微机原理解决实际工程问题。
情感态度价值观目标:培养学生对微机技术的兴趣和热情,提高学生创新意识和实践能力,培养学生团结协作、自主探究的学习精神。
二、教学内容本课程的教学内容主要包括微机原理的基本概念、微处理器及其接口技术、指令系统与汇编语言编程、中断系统与I/O系统等。
1.微机原理的基本概念:微机的定义、发展历程、基本组成原理。
2.微处理器及其接口技术:微处理器的工作原理、内部结构、性能指标,接口技术的基本概念和应用。
3.指令系统与汇编语言编程:指令系统的基本组成、指令格式、指令功能,汇编语言的基本语法、编程方法及其与机器指令的关系。
4.中断系统与I/O系统:中断系统的工作原理、中断处理程序的编写,I/O系统的组成、I/O接口技术、I/O设备的管理。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学,包括:1.讲授法:教师通过讲解微机原理的基本概念、理论知识,使学生掌握相关知识。
2.讨论法:学生针对微机原理中的重点、难点问题进行课堂讨论,培养学生思考问题、解决问题的能力。
3.案例分析法:通过分析实际案例,使学生了解微机原理在工程中的应用,提高学生的实践能力。
4.实验法:安排学生进行上机实验,使学生熟悉微机原理的操作方法,培养学生的动手能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《微机原理与应用》。
2.参考书:提供相关领域的参考书籍,供学生课后自学。
3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高教学效果。
微机原理课程设计

微机原理课程设计一、引言微机原理课程设计是计算机科学与技术专业的一门重要课程,旨在通过实践项目的设计与实现,匡助学生巩固和应用所学的微机原理知识,提高他们的计算机系统设计和编程能力。
本文将详细介绍微机原理课程设计的标准格式,包括任务背景、设计目标、设计内容、设计步骤、设计结果和总结等部份。
二、任务背景本次微机原理课程设计的任务背景是设计一个简单的计算器程序,该程序能够实现基本的四则运算功能,并具备一定的错误处理能力。
通过该设计任务,学生将深入理解微机原理中的指令系统、寄存器和存储器等相关知识,并能够将其应用于实际的程序设计中。
三、设计目标本次微机原理课程设计的设计目标如下:1. 熟悉并理解微机原理中的指令系统、寄存器和存储器等基本概念;2. 能够使用汇编语言编写简单的计算器程序,并实现基本的四则运算功能;3. 具备一定的错误处理能力,能够对非法输入进行合理的处理和提示。
四、设计内容本次微机原理课程设计的设计内容包括以下几个方面:1. 硬件平台的选择:根据实际需求选择合适的硬件平台,如Intel 8086微处理器;2. 开辟环境的搭建:选择合适的开辟工具和汇编语言编译器,如MASM;3. 程序设计:根据设计目标,编写汇编语言程序,实现计算器的基本功能;4. 错误处理:设计合理的错误处理机制,对非法输入进行处理和提示。
五、设计步骤本次微机原理课程设计的设计步骤如下:1. 硬件平台的选择:根据实际需求选择合适的硬件平台,如Intel 8086微处理器,并搭建相应的开辟环境;2. 学习和理解指令系统:深入学习和理解所选择硬件平台的指令系统,包括指令的格式、寻址方式和功能等;3. 程序设计:根据设计目标,编写汇编语言程序,实现计算器的基本功能,包括输入数字、选择运算符、进行运算和输出结果等;4. 错误处理:设计合理的错误处理机制,对非法输入进行处理和提示,如输入非数字字符或者除数为零等;5. 调试和测试:对设计的程序进行调试和测试,确保其能够正确运行并满足设计要求。
微机原理课程设计-闹钟

微机原理课程设计说明书学院:电力学院姓名:学号:专业:______________________指导老师:目录一、设计意义 (1)二、设计任务 (1)1、设计要求 (1)2、设计原理 (1)三、硬件设计 (2)四、软件设计 (4)1、设计过程 (5)2、程序流程图 (5)3、功能模块 (5)五、设计心得 (8)附录 (9)1.设计意义“微机原理与接口技术”是一门实践性和实用性都很强的课程,学习的目的在于应用。
本课程设计是配合“微机原理与接口技术”课堂教学的一个重要的实践教学环节,它能起到巩固课堂和书本上所学知识,加强综合能力,提高系统设计水平,启发创新思想的效果。
2.设计任务一、设计要求1.从键盘输入闹铃时间(如09:45)2.程序开始记时,并在屏幕上显示时间(如08: 30: 21)并实时刷新3.时间到,则发出闹铃声,声音维持数秒,同时屏幕显示响铃提示;同时时间停止刷新;4.能处理输入错误(如闹钟响铃时间应为数字,但用户错误输入非数值型的字符)二、设计原理分析1.显示系统时间1)使用DOS功能调用(INT 21H)中的2CH中断截取系统时间,再调用显示时间的子程序把时间显示出来(例如显示当前时间为16:30:45并且如果时间数少于两位数就要在其前面加0后显示出来如04: 07: 03);2)利用端口61H中的PB4每15.08微秒触发一次的特点,通过适当的循环次数进行循环从而实现延时1秒钟;3)在延时后再循环执行步骤1从而实现时间每一秒的刷新,在屏幕上不断显示当前的时间;2.设置闹钟响铃时间与输入时的容错处理方法1)在数据段定义好字型变量HOUR、MINUTE分别用于存放响铃时的小时数与分钟数;2)设置闹钟响铃时间由于形式为12:45 (小时:分钟)为了方便进行容错处理,可以分别用一段代码实现每一位数的输入,总共需要输入五位数字。
例如,输入前两位的小时数时,在输入第一位时,判断输入的是否是从0到2范围里的一个数字,如果不是就显示错误信息并停止程序的运行;在输入小时的第二位数时,判断输入的是否是0到9范围里的一个数字,如果不是就显示错误信息并停止程序的运行;在输入第三位时(应该是冒号)再判断是否是冒号,如果不是就显示错误信息并停止程序的运行;输入第四位(即分钟数的第一位)判断输入的是否是0到5数字里的一个,如果不是就显示错误信息并停止程序的运行;输入最后一位判断是否是0到9的范围中的一个数字,如果不是就显示错误信息并停止程序的运行等等;3)每次输入如果确定输入无误就使用书本中处理输入一个十进制数常用的方法把输入的数存储到寄存器中,再把它存入相应的变量中如小时数存到变量HOUR中,分钟数存入变量MINUTE中;3.当到达闹钟响铃时间时响铃1)每次在截取系统时间前先把寄存器BX清零,截取时间后把截取到的系统时间分别与变量HOUR与变量MINUTE进行比较,如果相等,就使寄存器BX加1,这样再执行完截取系统时间后检查BX是否为2,如果是2就表示已经到达设定好的闹铃时间,就跳出显示时间的死循环,跳到响铃的循环去;2)响铃是使用DOS功能调用(INT 21H)中的2H,同时把7H放到DL寄存器中,执行一次后延时三秒(延时的方法同显示时间时所用延时方法一样)再执行一次共循环执行40次从而实现了响铃几秒钟的功能;3 .硬件设计音乐播放1. 8253功能结构:Intel8253是8086/8088微机系统常用的定时器/计数器芯片,它具有定时计数两大功能。
微机原理课程设计

微机原理 课程设计一、课程目标知识目标:1. 让学生理解微机的基本原理和结构,掌握微处理器的工作机制。
2. 使学生掌握汇编语言的基本指令,能够阅读和编写简单的汇编程序。
3. 帮助学生了解微机系统中内存、I/O设备的基本原理及其与CPU的交互方式。
技能目标:1. 培养学生运用汇编语言进行程序设计的能力,能够实现基本的输入输出、逻辑判断和循环等操作。
2. 培养学生分析和解决微机系统常见问题的能力,如调试程序、处理硬件故障等。
3. 提高学生动手实践能力,通过课程设计项目,使学生能够独立完成一个简单的微机系统设计与实现。
情感态度价值观目标:1. 培养学生对微机原理及计算机科学的兴趣,激发他们探索精神和技术创新意识。
2. 培养学生团队协作精神,学会与他人共同分析问题、解决问题,提高沟通能力。
3. 引导学生认识到微机技术在国家经济发展和国防建设中的重要作用,增强学生的社会责任感和使命感。
课程性质:本课程为理论与实践相结合的课程,注重培养学生的实际操作能力和实际应用能力。
学生特点:学生已具备一定的电子技术和计算机基础知识,对微机原理有一定了解,但缺乏实践经验。
教学要求:教师需结合课程性质、学生特点,采用案例教学、项目驱动等教学方法,引导学生主动学习,提高学生的实践能力和综合素质。
在教学过程中,注重分解课程目标,确保学生能够达到预定的学习成果。
二、教学内容1. 微机原理概述:介绍微机的发展历程、基本结构及工作原理,重点讲解CPU、内存、I/O设备等核心组件的作用和相互关系。
相关教材章节:第一章 微机原理概述2. 汇编语言基础:讲解汇编语言的基本概念、语法和指令系统,使学生掌握汇编程序的编写和调试方法。
相关教材章节:第二章 汇编语言基础3. 微机系统编程:学习微机系统中的程序设计方法,包括顺序程序设计、分支程序设计、循环程序设计等。
相关教材章节:第三章 微机系统编程4. 内存与I/O设备:介绍内存管理、I/O设备控制原理,分析微机系统中内存、I/O设备的访问方法。
微机原理课程设计 (3)

微机原理课程设计1. 引言本文档是对微机原理课程设计的详细介绍和说明。
微机原理课程设计是计算机科学与技术专业的一门重要课程,通过此课程的学习,学生可以深入了解微机原理的基本概念和原理,并掌握常用的微机原理设计方法和技术。
本文档将从课程设计的目标、设计内容、实施步骤和评价标准等方面进行详细说明。
2. 课程设计目标微机原理课程设计的目标是培养学生综合运用所学知识进行微机原理的设计和实现的能力。
具体目标如下:•理解微机原理的基础概念和原理;•掌握常用的微机原理设计方法和技术;•能够独立进行微机原理设计和实现;•培养学生分析和解决微机原理实际问题的能力。
3. 设计内容微机原理课程设计的内容包括以下几个方面:3.1 单周期CPU设计通过单周期CPU的设计,学生可以深入理解CPU的工作原理和组成部分,并掌握如何进行单周期CPU的设计和实现。
具体内容包括:•ALU的设计和实现;•控制器的设计和实现;•存储器的设计和实现;•数据通路的设计和实现。
3.2 多周期CPU设计通过多周期CPU的设计,学生可以进一步提高对CPU工作原理和性能的理解,并掌握如何进行多周期CPU的设计和实现。
具体内容包括:•多周期CPU的时序设计和控制;•数据通路的改进和优化;•存储器的扩展和管理;•缓存的设计和实现。
3.3 流水线CPU设计通过流水线CPU的设计,学生可以了解流水线技术在提高CPU性能上的应用,并掌握如何进行流水线CPU的设计和实现。
具体内容包括:•流水线CPU的结构和原理;•流水线的控制和优化;•数据冲突和控制冲突的解决方案;•流水线中的异常处理和中断处理。
4. 实施步骤微机原理课程设计的实施步骤如下:4.1 确定课程设计题目教师根据教学大纲和学生的实际情况,确定一系列适合的课程设计题目,并向学生介绍并分配题目。
4.2 理解与分析题目学生需要仔细阅读和理解所分配的题目,对题目的要求进行分析和思考,并与教师进行讨论和确认。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南通大学计算机学院微机原理课程设计报告书设计题目密码设置模拟工作周期判断程序电子时钟专业班级通信081学生姓名蔡玲学号0811073005指导教师袁佳祺日期2011.06.20~2011.6.24目录一.密码设置模拟…………………………………………………………页码41.课程设计题目……………………………………………………………页码42.课程设计目的……………………………………………………………页码43.课程设计要求……………………………………………………………页码44.课程设计报告内容………………………………………………………页码44.1 系统主要功能……………………………………………………页码44.1.1功能描述………………………………………………………页码44.1.2 系统功能结构图………………………………………………页码44.2 系统数据结构清单…………………………………………………页码54.3 系统代码实现………………………………………………………页码54.4 系统测试……………………………………………………………页码64.4.1系统测试数据单………………………………………………页码64.4.2系统测试结果……………………………………………………页码6 4.5 统存在的主要问题及注意事项……………………………………页码64.6. 设计总结及体会……………………………………………………页码6二.工作周期判断程序………………………………………………页码71.课程设计题目……………………………………………………………页码72.课程设计目的……………………………………………………………页码73.课程设计要求……………………………………………………………页码74.课程设计报告内容………………………………………………………页码74.1 系统主要功能……………………………………………………页码74.1.1功能描述………………………………………………………页码74.1.2 系统功能结构图………………………………………………页码74.2 系统数据结构清单…………………………………………………页码74.3 系统代码实现………………………………………………………页码84.4 系统测试……………………………………………………………页码134.4.1系统测试数据单………………………………………………页码134.4.2系统测试结果……………………………………………………页码13 4.5 统存在的主要问题及注意事项……………………………………页码134.6. 设计总结及体会……………………………………………………页码13三.电子时钟……………………………………………………………页码131.课程设计题目……………………………………………………………页码132.课程设计目的……………………………………………………………页码133.课程设计要求……………………………………………………………页码134.课程设计报告内容………………………………………………………页码134.1 系统主要功能……………………………………………………页码134.1.1功能描述………………………………………………………页码134.1.2 系统功能结构图………………………………………………页码144.2 系统数据结构清单…………………………………………………页码144.3 系统代码实现………………………………………………………页码144.4 系统测试……………………………………………………………页码164.4.1系统测试数据单………………………………………………页码164.4.2系统测试结果……………………………………………………页码17 4.5 统存在的主要问题及注意事项……………………………………页码174.6. 设计总结及体会……………………………………………………页码17项目一1.课程设计题目:密码设置模拟2.课程设计目的:了解掌握汇编语言程序,通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
3. 课程设计要求:该程序可以进行密码的设置(第一次)和修改(已设置密码)。
要求输入的密码不显示。
4. 课程设计报告内容4.1 系统主要功能:设置密码及重设密码4.1.1功能描述:运行该程序后,首先判断是否是第一次输入密码,如果是,输入密码并生成密码文件PW.BAT,如果不是,则请输入旧密码,如果正确,再输入新的密码。
4.1.2 系统功能结构图4.2 系统数据结构清单数据段,代码段:START,L1,LA,LC,LD,EXIT,I1,I2,R1, 4.3 系统代码实现DATA SEGMENTFILE DB 'E: \masm\PW.BAT',00NPW DB 'Please enter your password and press the return key:',13,10,36OPW DB 'Please input your old password and press the return key:',13,10,36ERR DB 13,10,'YOUR PASSWORD ERROR!',36 MSG DB 13,10,'INPUT NEW PASSWORD:',36PW DB 19,18 DUP(?)PWS DB 19 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART:MAIN PROC NEARMOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,FILEMOV AX,3D02HINT 21HJC L1JMP LAL1:LEA DX,NPWMOV AH,09HINT 21HCALL SETLEA DX,FILEMOV CX,00HMOV AH,3CHINT 21HMOV BX,AXCALL SET1JMP EXITLA:PUSH AXLEA DX,OPWMOV AH,09HINT 21H CALL SETPOP BXPUSH BXLEA DX,PWSMOV CX,1MOV AH,3FHINT 21HMOV CX,WORD PTR PWS DEC CXLEA DX,PWS+1MOV AH,3FHINT 21HLEA SI,PWLEA DI,PWSCLDMOV CL,PWXOR CH,CHREPE CMPSBCMP CX,0JZ LDLC:LEA DX,ERRMOV AH,09HINT 21HJMP EXITLD:LEA DX,MSGMOV AH,09HINT 21HCALL SETPOP BXMOV AH,3EHINT 21HLEA DX,FILEMOV AX,3D01HINT 21HCALL SET1EXIT:MOV AH,4CHINT 21HMAIN ENDPSET PROC NEAR MOV CL,12H CLDLEA SI,PW MOV SI,13H INC SIMOV DL,'*'I1:MOV AH,08HINT 21HCMP AL,0DHJZ R1MOV AH,02H CMP CL,0JNZ I2MOV DL,07HINT 21HJMP I1I2: MOV [SI],AL INT 21HINC SIDEC CLJMP I1R1:SUB PW,CLRETSET ENDPSET1 PROC NEAR LEA DX,PW MOV CL,PWAND CX,0FFH MOV AH,40HINT 21HRETSET1 ENDP CODE ENDSEND START4.4 系统测试4.4.1系统测试数据清单第一次输入密码的数据:1234重置密码:43214.4.2系统测试结果4.5 统存在的主要问题及注意事项:无4.6. 设计总结及体会需要清楚的了解汇编语言的用法用途,如何使用汇编语言,利用汇编语言来实现各个功能。
项目二1.课程设计题目:工作周期判断程序2.课程设计目的:通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
3. 课程设计要求:输入年、月、日,能够判断当日的星期数,并进行输出。
(以校历为依照,可设某日为起点,根据相差的天数与7的关系进行判断)。
4. 课程设计报告内容(本项下级标题可根据课程设计的内容由指导教师适当调整)4.1 系统主要功能:根据输入的年月日,判断该日是星期几4.1.1功能描述:运行程序后首先输入年,再输入月,再输入日,然后ENTER得到该日是星期几。
4.1.2 系统功能结构图4.2 系统数据结构清单:数据段,代码段:START,se1,exit.子程序(GETYEARMONTHDAY):INOUTAGIAN,REPEATY,ERR,ENDY,NEXTYBIT,LOPMUL,SKIPY,EXITDOS 0,SKIPLAP,REPEATM,ERR1,EXITDOS1,ENDMOA,NEXTMBIT,LPMUL,SKIPM,SKIPLAP1,REPEATD,ERR2,ENDDAY,NEXTDBIT,LPMUL1,SKIPD,EXITDOS.子程序(GETRIGHTDAY):LAB1,L1,L2,LAB2,LAB3,LAB11,S0,S1,S2,S3,S4,S5,EXIT1.4.3 系统代码实现dseg segmentYEAR dw 0Month db 0Day db 0temp db 10 dup(0)count dw ?ErrMsg db 'Input wrong!please input again!',' $'str1 db 0dh,0ah,"please input year month day:$"str2 db 0dh,0ah,'bye-bye!$'str3 db 0dh,0ah,'Whether or not to continue inquiries Yes/No','$'a db ?weekstr0 db 'Today is Sunday','$'weekstr1 db 'Today is Monday','$'weekstr2 db 'Today is Tuesday','$'weekstr3 db 'Today is Wednesday','$'weekstr4 db 'Today is Thursday','$'weekstr5 db 'Today is Friday','$'weekstr6 db 'Today is Saturday','$'w db ?dseg endscseg segmentassume cs:cseg,ds:dsegstart:mov ax,dsegmov ds,axlea dx,str1 ;;;;tell you input year month daymov ah,9 int 21hcall GetYearMonthDaycall displaysel: lea dx,str3mov ah,9int 21hmov ah,1int 21hcmp al,'Y'je startcmp al,'y'je startcmp al,'N'je exitcmp al,'n'je exitjmp selexit:lea dx,str2mov ah,9int 21hmov ah,4chint 21hGetYearMonthDay proc nearpush axpush cxpush sipush diinputagain:mov Year,0mov Month,0mov Day,0mov si,0repeatY:mov ah,1int 21hcmp al,0dh ;判断是否是回车 je EndYcmp al,20h ;SPje EndYcmp al,1bh ;ESCje ExitDos0cmp al,30h ;0jb Errcmp al,39h ;9ja Errsub al,30hmov temp[si],alinc sijmp repeatYErr: lea dx,ErrMsgmov ah,9int 21hmov ah,2mov dl,0dhint 21hmov dl,0ahint 21hjmp inputagainEndY:mov bx,10mov di,si ;si为4mov si,0NextYBit:mov ah,0mov al,temp[si] ;al为年的最高位 mov count,di ;年的位数sub count,sidec countmov cx,count ;1步cx=3jcxz skipY ;cx为0转移lopmul:mul bxloop lopmul ;cx-1skipY:add Year, axinc sicmp si, dijne NextYBit;----------------------------------The year is put into [Year]push dx mov ah,2mov dl,0dh ;换行 int 21hmov dl,0ahint 21hpop dxjmp skiplap ExitDos0:jmp ExitDos skiplap:mov si,0 repeatM:mov ah,1int 21hcmp al,0dhje EndMoncmp al,20hje EndMoncmp al,1bhje ExitDos1cmp al,30hjb Errcmp al,39hja Errsub al,30hmov temp[si],alinc sijmp repeatMErr1: jmp ErrExitDos1: jmp ExitDos EndMon:mov di,simov si,0mov bl,10 NextMBit:mov al,temp[si]mov count,disub count,sidec countmov cx,countjcxz skipMlpmul:mul blloop lpmulskipM:add Month,alinc sicmp si, dijne NextMBitcmp Month,12ja Err1;-------------------------The Month is put into [Month]push dxmov ah,2mov dl,0dhint 21hmov dl,0ahint 21hpop dxjmp skiplap1skiplap1:mov si,0repeatD:mov ah,1int 21hcmp al,0dhje EndDaycmp al,20hje EndDaycmp al,1bhje ExitDoscmp al,30hjb Err2cmp al,39hja Err2sub al,30hmov temp[si],alinc sijmp repeatDErr2: jmp Err1EndDay:mov di,simov si,0mov bl,10NextDBit:mov al,temp[si]mov count,disub count,sidec countmov cx,countjcxz skipDlpmul1:mul blloop lpmul1skipD:add Day,alinc sicmp si, dijne NextDBitcall Getrightdaymov al,[si]cmp Day,alja Err2push dxmov ah,2mov dl,0dhint 21hmov dl,0ahint 21hpop dxpop dipop sipop cxpop axretExitDos:mov ah,4chint 21hGetYearMonthDay endp;;;;;************闰年**********Getrightday proc near ;此子程序用来判断年份是否为闰年push bx ;保存寄存器状态push cxpush dxmov si,offset wmov ax,Year ;把转换后的年份的数值存入cxmov cx,axmov dx,0 ;计算年份是否为4的整数倍mov bx,4div bxcmp dx,0jnz lab1;不能被4整除,不为闰年mov ax,cx;接着判断年份是否为100的倍数mov bx,100div bxcmp ax,0jnz lab2;不为100的倍数,则为闰年mov ax,cx;再判断是否为400的倍数mov bx,400div bxcmp dx,0jz lab2 ;为400的倍数,则为闰年lab1:cmp Month,1je l1cmp Month,3je l1cmp Month,5je l1cmp Month,7je l1cmp Month,8je l1cmp Month,10je l1cmp Month,12je l1cmp Month,4je l2cmp Month,6je l2cmp Month,9je l2cmp Month,11je l2mov al,28mov [si],aljmp lab3;判断结束l1: mov al,31mov [si],aljmp lab3l2: mov al,30mov [si],aljmp lab3lab2:cmp Month,1je l1cmp Month,3je l1cmp Month,5je l1cmp Month,7je l1cmp Month,8je l1cmp Month,10je l1cmp Month,12je l1cmp Month,4je l2cmp Month,6je l2cmp Month,9je l2cmp Month,11je l2mov al,29mov [si],aljmp lab3lab3: pop dx ;恢复寄存器状态pop cxpop bxretGetrightday endpdisplay proc nearcmp month,02jg lab11add month,12sub year,01lab11:xor ax,axxor bx, bxxor cx, cxxor dx, dxmov al,monthmov cl,2mul clmov a,almov dl,monthinc dlmov al,dlxor dx,dxmov bl,3mul blxor bx,bxmov bl,5div bladd a,alxor ax,axxor bx,bxmov ax,Yearmov bx,4div bxadd a,al xor ax,axadd al,day mov a,al xor ax,axxor bx,bxmov ax,Year mov bl,100div blsub a,alxor ax,axxor bx,bxmov ax,Yearmov bx,400div bxadd a,alxor ax,axxor bx,bxmov al,amov bl,7 div blmov a,ahcmp a,0je s0cmp a,1je s1cmp a,2je s2cmp a,3je s3cmp a,4je s4cmp a,5je s5lea dx,weekstr6 mov ah,9int 21hjmp exit1s0: lea dx,weekstr0 mov ah,9int 21hjmp exit1s1: lea dx,weekstr1 mov ah,9int 21hjmp exit1s2: lea dx,weekstr2 mov ah,9int 21hjmp exit1s3: lea dx,weekstr3 mov ah,9int 21hjmp exit1s4: lea dx,weekstr4 mov ah,9int 21hjmp exit1s5: lea dx,weekstr5 mov ah,9int 21hexit1:retdisplay endpcseg ends end start4.4 系统测试4.4.1系统测试数据清单:入所求年月日4.4.2系统测试结果4.5 统存在的主要问题及注意事项:无4.6. 设计总结及体会需要清楚的了解汇编语言的用法用途,如何使用汇编语言,利用汇编语言来实现各个功能。