微机原理课程设计总结

合集下载

【心得体会】微机原理课程设计心得体会

【心得体会】微机原理课程设计心得体会

【关键字】心得体会微机原理课程设计心得体会篇一:微机原理课程设计课程设计报告( XX—XX 年度第一学期)课程:微机原理及应用题目:动画显示显示三角形并倒置院系: 控制与计算机工程学院班级:自动化1004 姓名学号:XX09030110 XX09040134 指导教师:程海燕设计周数:一周成绩:XX年1 月11 日XX02020407日期:《微机原理及应用》课程设计任务书一、目的与要求1.通过对微机系统分析和具体设计,使学生加深对所学课程的理解。

2.掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。

3.培养学生分析问题、解决问题的能力。

4.培养学生对微型计算机应用系统的基本设计能力。

5.提高学生的实践动手能力和创新能力。

2、主要内容1.动画显示及显示三角形并倒置。

2.针对所选择的设计题目进行硬件设计,合理选用所需元器件,绘制系统结构框图、硬件接线图,并在实验系统上完成电路的连接和调试。

3.根据所选题目的要求对微机系统进行程序设计,绘制程序总体流程图并编写源程序上机调试。

4.写出课程设计报告,对整个设计过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识和收获。

三、进度计划四、设计成果要求1.系统硬件设计合理,软件编程达到设计要求。

2.系统硬件结构图和软件流程图绘制清楚规范。

3.设计报告完整规范。

五、考核方式根据设计任务的完成情况、课程设计报告撰写情况及演示答辩情况采用五级记分制评定成绩。

学生姓名:指导教师:一、课程设计目的与要求1.通过对微机系统分析和具体设计,使学生加深对所学课程的理解。

2.掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。

3.培养学生分析问题、解决问题的能力。

4.培养学生对微型计算机应用系统的基本设计能力。

5.提高学生的实践动手能力和创新能力2、课程设计正文 1. 设计要求(1)动画显示:用字符组成汽车图形,在屏幕显示从左向右开动的汽车;(2)显示三角形并倒置:用* 绘制一个七层等腰三角形,点击空格键则三角形倒置一次,再次点击则再次倒置。

微机原理课程设计心得体会3篇

 微机原理课程设计心得体会3篇

微机原理课程设计心得体会3篇课程设计是对课程的各个方面做出规划和安排,是连接课程基本理念和课程实践活动的桥梁。

下面是为大家带来的微机原理课程设计心得体会,希望可以帮助大家。

微机原理课程设计心得体会范文1:计算机网络的设计是一个要求动手能力很强的一门实践课程,在课程设计期间我努力将自己以前所学的理论知识向实践方面转化,尽量做到理论与实践相结合,在课程设计期间能够遵守纪律规章,不迟到、早退,认真完成老师布置的任务,同时也发现了自己的许多不足之处。

在课程设计过程中,我一共完成了11个实验,分别是1.制作直通电缆和交叉UTP、2.交换机Console口和Telnet配置、3.交换机端口和常规配置、4.虚拟局域网VLAN配置、5.路由器Console口Telnet 配置方法和接口配置、6.路由器静态路由配置、7单臂路由配置、8.动态路由协议配置、9.PPP协议配置、10路由器访问控制表(ACL)、11.网络地址转换(NAT)。

在制作直通电缆和交换UTP的实验中,我起初不能完全按照要求来剪切电缆,导致连接不通,后来在同学的帮助下,终于将实验完成。

在做到单臂路由配置和动态路由协议配置的实验,由于自身的基础知识掌握不牢,忘掉了一些理论知识,在重新翻阅课本和老师的指导之下,也成功的完成了试验。

从抽象的理论回到了丰富的实践创造,细致的了解了计算机网络连接的的全过程,认真学习了各种配置方法,并掌握了利用虚拟环境配置的方法,我利用此次难得的机会,努力完成实验,严格要求自己,认真学习计算机网络的基础理论,学习网络电缆的制作等知识,利用空余时间认真学习一些课本内容以外的相关知识,掌握了一些基本的实践技能。

课程设计是培养我们综合运用所学知识,发现、提出、分析、解决问题的一个过程,是对我们所学知识及综合能力的一次考察。

随着科学技术日新月异的不断发展,计算机网络也在不断的变化发展当中,这就要求我们用相应的知识来武装自己,夯实基础,为将来走向工作岗位,贡献社会做好充分的准备。

微机课程设计心得体会

微机课程设计心得体会

微机课程设计心得体会微机原理与系统设计作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以CPU为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。

这次微机原理课程设计历时两个星期,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。

但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。

因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。

其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和某某某思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在赵老师的辛勤指导下,终于游逆而解。

同时,在赵老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。

微机原理课程设计心得体会优秀6篇

微机原理课程设计心得体会优秀6篇

微机原理课程设计心得体会优秀6篇微机原理课程设计心得体会篇一1、通过这次课程设计,加强了我们动手、思考和解决问题的能力。

在整个设计过程中,我们通过这个方案包括设计了一套电路原理和PCB连接图,和芯片上的选择。

这个方案总共使用了74LS248,CD4510各两个,74LS04,74LS08,74LS20,74LS74,NE555定时器各一个。

2、在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的接法可以行得通,但实际接上电路,总是实现不了,因此耗费在这上面的时间用去很多。

3、我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。

平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。

而且还可以记住很多东西。

比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻。

认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。

所以这个期末测试之后的课程设计对我们的作用是非常大的。

4、经过两个星期的实习,过程曲折可谓一语难荆在此期间我们也失落过,也曾一度热情高涨。

从开始时满富盛激-情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。

生活就是这样,汗水预示着结果也见证着收获。

劳动是人类生存生活永恒不变的话题。

通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈电子设计为我们的社会付出。

我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋;正所谓“三百六十行,行行出状元”。

微机课程设计小结与体会

微机课程设计小结与体会

微机课程设计小结与体会一、课程目标知识目标:1. 让学生掌握微机原理的基本知识,理解微机系统的组成和工作原理;2. 学会使用微机编程软件,掌握基本的编程方法和技巧;3. 了解微机在日常生活和工业中的应用,认识到微机技术的实用性和重要性。

技能目标:1. 培养学生运用微机原理解决实际问题的能力,能够进行简单的微机系统设计和编程;2. 提高学生的动手实践能力,学会使用相关工具和软件进行微机系统的调试与优化;3. 培养学生的团队协作能力,能够在小组项目中发挥个人优势,共同完成任务。

情感态度价值观目标:1. 激发学生对微机技术的兴趣,培养其探究精神和创新意识;2. 培养学生严谨、踏实的学术态度,树立正确的价值观;3. 增强学生的国家意识,认识到我国微机技术的发展现状和潜力,激发其为国家科技事业贡献力量的信心。

本课程针对高中年级学生,结合微机课程的特点,注重理论联系实际,以实践操作为主,使学生在学习过程中充分感受到微机技术的魅力。

课程目标既注重知识传授,又强调技能培养和情感态度价值观的塑造,旨在培养学生成为具有创新精神和实践能力的优秀人才。

通过本课程的学习,学生将能够更好地应对未来的学习和工作挑战,为我国微机技术的发展贡献力量。

二、教学内容1. 微机原理与组成:介绍微机的基本组成、工作原理及性能指标,以课本第二章内容为基础,让学生了解CPU、内存、I/O设备等硬件组件的作用和相互关系。

2. 微机编程基础:讲解微机编程的基本概念、语法和技巧,结合课本第三章,使学生掌握汇编语言和C语言编程方法,学会使用编程软件进行程序设计。

3. 微机应用案例分析:分析微机在日常生活和工业中的应用实例,以课本第四章为例,让学生了解微机技术的实用性和广泛性。

4. 微机系统设计与实践:结合课本第五章,教授微机系统设计的基本方法,指导学生完成一个简单的微机系统设计项目,提高学生的动手实践能力。

5. 课程项目:组织学生进行小组项目,运用所学知识解决实际问题,巩固课程内容,提高团队协作能力。

微机原理课程总结

微机原理课程总结

微机原理课程总结介绍微机原理课程是计算机科学与技术专业中的一门重要课程,它主要讲授计算机硬件与软件的基本原理和工作原理。

通过学习这门课程,我们可以深入了解计算机的内部结构和工作方式,为我们今后深入学习计算机体系结构和操作系统等课程打下坚实的基础。

课程内容微机原理课程的内容涵盖了计算机硬件和软件的多个方面,以下是本课程的主要内容:1. 计算机的基本组成本课程首先介绍了计算机的基本组成,包括中央处理器(CPU)、存储器(内存)、输入输出设备等。

通过深入了解每个组成部分的功能和作用,我们可以更好地理解计算机的工作原理和内部运行机制。

2. 数字电路与逻辑门在微机原理课程中,我们学习了数字电路和逻辑门的基本原理和设计方法。

了解数字电路的工作原理,可以帮助我们理解计算机中二进制的表示和运算,并能够参与到计算机硬件的设计和开发中。

3. 计算机总线计算机总线是计算机内部各个功能模块之间的通信媒介,通过总线,各个模块可以交换数据和控制信号。

在微机原理课程中,我们学习了计算机总线的种类、工作原理以及总线的设计与实现方法。

理解计算机总线的工作原理,可以帮助我们更好地理解计算机内部的数据传输和控制过程。

4. 冯·诺依曼体系结构冯·诺依曼体系结构是现代计算机的基础,本课程对冯·诺依曼体系结构的基本原理和特点进行了详细介绍。

了解冯·诺依曼体系结构对于我们深入理解计算机的工作机制和进行计算机系统设计非常重要。

5. 计算机指令系统计算机指令系统是计算机软件与硬件之间的桥梁,它规定了计算机可以执行的操作和数据处理方式。

在微机原理课程中,我们学习了不同类型的指令和指令的执行过程,理解计算机指令系统对于我们编写和理解计算机程序非常关键。

课程收获通过学习微机原理课程,我获得了以下几方面的收获:1. 对计算机硬件有了更深入的了解微机原理课程让我深入了解了计算机硬件的基本组成和工作原理。

我了解了中央处理器的结构和功能、存储器的层次结构以及输入输出设备的运行方式。

微机原理课程设计心得体会(精选20篇)

微机原理课程设计心得体会(精选20篇)

微机原理课程设计心得体会(精选20篇)微机原理课程设计篇1"微机原理与系统设计" 作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以Intelx86CPU为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。

这次微机原理课程设计历时两个星期,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。

但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。

因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。

其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在赵老师的辛勤指导下,终于游逆而解。

微机原理课程总结

微机原理课程总结

微机原理课程总结《微机原理课程总结》回想起来这微机原理课程,还真是一场惊心动魄的知识之旅呢。

刚开始接触的时候,真的感觉像是进入了一个完全陌生的世界,满眼都是新奇但又有点让人不知所措。

先说整体感受吧,这门课就像是一个装满各种零件的大盒子,一开始只看到这些零件散落在那,根本不知道怎么组装起来,甚至都不确定每个零件是干嘛用的。

但是随着课程的逐渐深入,就像把那些零件一个个开始归类,找它们之间的联系,慢慢发现原来这些看似独立的知识其实都是有逻辑关系的。

具体收获可不少呢。

从简单的微机硬件结构的认识开始,像CPU、内存、I/O接口这些基本组件。

我记得最开始记忆CPU的功能和组成的时候,那些寄存器啊,数据通路什么的真是让人头疼。

但是通过不断地画图、理解原理图,就像是把一个混乱的迷宫线路慢慢捋顺了。

还有汇编语言,这是个很神奇的东西,就像一套独特的密码系统。

我以为指令只要机械记忆就好,但实际编写程序时才发现,只有理解了微机底层的运行逻辑,才能正确地组合这些指令。

比如写一个简单的两数相加的程序,不仅要知道ADD指令怎么用,还得考虑数据在寄存器中的存储位置呢。

重要发现挺多的。

我发现微机原理中的很多概念都有一种层层嵌套的感觉。

比如说中断机制,原来它不仅仅是CPU去响应一个外部事件这么简单。

这里面还涉及到中断向量表、中断优先级之类的概念。

而且各个部分之间互相影响。

有一次在理解中断嵌套的时候,一开始怎么都想不明白为什么高优先级的中断能打断低优先级中断正在执行的程序,后来仔细分析了整个中断处理的流程才明白,这里面每个环节就像一个精密机械手表里的小齿轮,一个带动一个才能保证整个系统按照规则运行。

这让我深刻明白了学习微机原理不能一知半解,每个细节都有可能对全局产生影响。

等我理解了这些,现在想想,很多以前觉得突兀的知识点都能串联起来了。

说到反思,就是当初学习的时候有点太急于求成了。

总想着快速把知识背下来,而忽略了对实际原理的深入理解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理课程设计数据采集系统(中断法)一、课设目的:进一步掌握微机原理知识,了解微机在实时采集数据的应用,学习掌握编程和程序调试的方法。

二、课设内容和要求:用中断法将ADC0809通道0外接0—5V电压,转换成数字量后,在七段数码管LED上显示。

以小数点后两位表示精度,显示模拟电压的十进制;0809通道0的数字量以线性控制方式DAC0832输出,当通道0的电压为5V时,0832的OUT为0V当通道0的电压为0时,0832的OUT为2.5V;此模拟电压再送到ADC0809通道1,转换后的数字量在CRT上以十六进制显示。

ADC0809的采样脉冲CLK由定时器8254的OUT0提供;ADC0809的EOC信号用作8259中断请求信号。

三、总体设计:1)、ADC0809的IN0采集电位器0—5V电压,IN1采集0832输出的模拟量。

2)、DAC0832将ADC0809的IN0数字量重新转换成模拟量输出3)、8259用于检测ADC0809转换是否结束和向CPU发送INTR 信号4)8255为七段LED数码管显示提供驱动信息5)、七段LED数码管显示ADC0809的IN0的值6)8254提供ADC0809的采样时钟脉冲。

四、硬件设计:因采用PC机和微机实验箱,硬件电路设计相对比较简单,主要利用微机实验箱上的8255并行口,ADC0809,DAC0832,七段数码管LED,8254定时/计数器,74LS574输出接口,电位器等单元(图1:数据采集系统硬件连接示意图)六、软件设计:本设计通过软件编程,实现模/数转换,0809分别对IN0 0—5V直流电压的采样和经线性控制后输出电压IN1采样,IN0的值转换成十进制后,在七段数码管LED上显示IN1的值。

CPU根据IN0的值,使八位二极管根据课设要求指示相应的范围。

1、设计思想:数据采集系统分成四个功能模块分别是主程序模块、量纲转换模块、数码管显示模块、中断服务子程序模块。

(1)主程序模块:根据课设要求采用中断方式采集数据,因此可把读取IN0的值保存和数字量经线性控制后送给0832输出,作为0809IN1的模拟电压和IN1的启动,读取以及IN0的BCD码转换,放在中断服务子程序模块中完成。

在主程序模块上主要实现启动0809的IN0、显示模块的调用、和中断结束部分程序。

(2)量纲转换模块:量纲转换模块在中断服务子程序内完成,只有将IN0的数字量分别除以51,商存在显示IN0的个位存储单元;余数乘以十,再除以51,商存入十分位存储单元;余数再乘以十,除以51,若余数大于25则商加一,小于25则舍去。

这样就实现了四舍五入的精度,再把商存入百分位存储单元;以供七段数码管显示调用。

(3)数码管显示模块:数码管显示模块相对简单,主要在显示个位是加上小数点的显示,可以通过查表获取个位断码后再加上80H 来实现(4)中断服务子程序:考虑到0832的输出时0809IN1的输入,因此,为防止在执行中断服务子程序时二次进入中断服务子程序中,故在进入中断服务子程序后关中断,而在退出中断服务子程序前开中断以便下次进入中断服务子程序。

中断服务子程序模块主要完成对IN0数据的读取和保存,对IN1的启动和读取,对IN0数据的BCD转换等任务。

2、参考流程:中断子程序和主程序流程图图2:中断服务子程序流程图图3 数据采集系统主程序流程图;微机原理课设CRLF MACRO ;宏定义回车,换行MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHINT 21HENDMY0 EQU 3000HY1 EQU 3020HY2 EQU 3040HY3 EQU 3060HY7 EQU 30E0HPA55 EQU Y1+00H*4 ;8255A口地址PB55 EQU Y1+01H*4 ;8255B口地址PCTL EQU Y1+03H*4 ;8255控制寄存器地址AD0 EQU Y0 ;ADC0809端口IN0地址AD1 EQU Y0+10H ;ADC0809端口IN1地址INTR_IV ADD EQU 01C8H ;INTR 对应的中断矢量地址INTR_OCW1 EQU 0A1H;INTR对应PC机内部8259的OCW1地址INTR_OCW2 EQU 0A0H;INTR对应PC机内部8259的OCW2地址INTR_IM EQU 0FEH;INTR对应的中断屏蔽字MY8259_ICW1 EQU Y7+00H ;实验系统中8259的ICW1端口地址MY8259_ICW2 EQU Y7+04H ;实验系统中8259的ICW2端口地址MY8259_ICW3 EQU Y7+04H ;实验系统中8259的ICW3端口地址MY8259_ICW4 EQU Y7+04H ;实验系统中8259的ICW4端口地址MY8259_OCW1 EQU Y7+04H ;实验系统中8259的OCW1端口地址MY8259_OCW2 EQU Y7+00H ;实验系统中8259的OCW2端口地址MY8259_OCW3 EQU Y7+00H ;实验系统中8259的OCW3端口地址TIMER0 EQU 3060H ;Y3+00H*4 8254计数器0端口地址TCTL EQU 306CH ;Y3+03H*4 8254控制字端口地址DATA SEGMENTMES0 DB ' SIGNAL GATHERINGPRORGRAM',0DH,0AH,0DH,0AHDB'##################################### ######',0DH,0AH,0DH,0AHDB ' PRESS 1 TO START GA THERING !',0DH,0AH,0DH,0AH DB ' PRESS 2 TO EXIT TO DOS !',0DH,0AH,0DH,0AHDB'##################################### ######',0DH,0AH,0DH,0AH,'$'MES1 DB 'The value of IN1 is: $' CS_BAK DW ?IP_BAK DW ?IM_BAK DB ?FLAG DB ?GW DB ? ;保存个位SF DB ? ;保存十分位BF DB ? ;保存百分位IN0 DB ?IN1 DB ?DCTBL DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, 6FHDB77H,7CH,39H,5EH,79H,71HDA TA ENDSSTAC SEGMENT PARA STACKDW 256 DUP(0)STAC ENDSCODE SEGMENTASSUMECS:CODE,SS:STAC,DS:DA TASTART: MOV AX,DATAMOV DS,AXLEA DX,MES0MOV AH,9INT 21HLOP1: MOV DL,0FFH ;测试键盘输入MOV AH,6INT 21HJZ LOP1CMP AL,'1'JZ MAINCMP AL,'2'JZ EXIT0JMP STARTEXIT0: JMP EXIT;主程序模块MAIN: CLI ;关中断MOV AX, 0000HMOV ES,AX ;替换INTR的中断矢量MOV DI,INTR_IV ADD ;保存INTR原中断处理程序入口偏移地址MOV AX, ES:[DI]MOV IP_BAK,AXMOV AX, OFFSET MYISR ;设置当前中断处理程序入口偏移地址MOV ES:[DI],AXADD DI, 2MOV AX,ES:[DI] ;保存INTR原中断处理程序入口段地址MOV CS_BAK,AXMOV AX, SEGMYISR ;设置当前中断处理程序入口段地址MOV ES:[DI],AXMOV DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR的屏蔽位IN AL, DX ;保存INTR原中断屏蔽字MOV IM_BAK,ALAND AL,0FBHOUT DX,ALMOV DX,MY8259_ICW1MOV AL,13HOUT DX,ALMOV DX,MY8259_ICW2MOV AL,08HOUT DX,ALMOV DX,MY8259_ICW4MOV AL,01HOUT DX,ALMOV DX,MY8259_OCW3MOV AL,0AHOUT DX,ALMOV DX,MY8259_OCW1MOVAL,0FEH ;打开IR0屏蔽位OUT DX,AL;8254初始化MOV DX,TCTLMOV AL,16H ;计数器0方式3读低8位二进制计数,若为方式2亦可,"MOV AL,14H"OUT DX,ALMOV DX,TIMER0MOV AL,4OUT DX,AL;8255初始化MOV AL,80H ;A输出、B输出,方式0MOVDX,PCTL ;8255控制字OUT DX,ALSTI ;开中断;启动0809 IN0LOP2: MOV DX,AD0 ;启动0809IN0OUT DX,ALCALL DELAYMOV AX,0FFHMOV FLAG,AL ;设标志符CALL CHANGE ;调用量纲转换模块LEA DX,MES1MOV AH,9INT 21HMOV DX,AD1 ;读IN1的值IN AL,DXNEG AL ;线性变换SHR AL,1MOV BL,ALAND AL,0F0H ;显示高位MOV CL,4ROR AL,CLCALL CRT1MOV AL,BL ;显示低位AND AL,0FHCALL CRT1CRLFINT 21HMOV AH,1 ;判断是否有按键按下INT 16HJZ LOP2 ;无按键继续循环,有则退出;退出模块EXIT: CLI ;关中断MOV AX,0000HMOV ES,AXMOVDI,INTR_IV ADD ;恢复INTR原中断处理程序入口偏移地址MOV AX,IP_BAKMOV ES:[DI],AXADD DI,2MOV AX,CS_BAK ;恢复INTR原中断处理程序入口段地址MOV ES:[DI],AXMOV DX,INTR_OCW1MOVAL,IM_BAK ;恢复INTR原中断屏蔽寄存器的屏蔽字OUT DX,ALSTI ;开中断MOV AX,4C00H ;退出系统INT 21H;量纲转换模块CHANGE PROCMOV AL,IN0XOR AH,AHMOV DL,51MOV DH,10DIV DLMOV GW,AL ;存个位MOV AL,AHXOR AH,AHMUL DHDIV DLMOV SF,AL ;存十分位MOV AL,AHXOR AH,AHMUL DHDIV DLCMP AH,25JB LOP3ADD AL,1LOP3:MOV BF,AL ;存百分位CALL DISP ;调用数码显示模块RETCHANGE ENDP;数码显示模块DISP PROCMOV AL,GWXOR AH,AHMOV SI,AXLEA BX,DCTBLMOV AL,[BX+SI]ADD AL,80HMOV DX,3024HOUT DX,ALMOV DX,3020HMOV AL,01HOUT DX,ALCALL DELAYMOV AL,SFMOV SI,AXMOV AL,[BX+SI]MOV DX,3024HOUT DX,ALMOV DX,3020HMOV AL,02HOUT DX,ALCALL DELAYMOV AL,BFMOV SI,AXMOV AL,[BX+SI]MOV DX,PB55OUT DX,ALMOV DX,PA55MOV AL,04HOUT DX,ALCALL DELAYRETDISP ENDP;中断服务子程序MYISR PROC NEARPUSH AX ;保护现场PUSH BXPUSH CXPUSH DXCLI ;关中断CMP FLAG,0FFHJZ FLAG0FLAG1: MOV DX,AD1 ;读IN1的值IN AL,DXMOV IN1,ALJMP INTEXITFLAG0:MOV DX,AD0IN AL,DXMOV IN0,ALMOV DX,AD1OUT DX,ALCALL DELAYMOV AX,0MOV FLAG,ALINTEXIT:MOV DX,INTR_OCW2 ;发中断结束命令MOV AL,20HOUT DX,ALMOV AL,20HOUT 20H,ALPOP DX ;恢复现场POP CXPOP BXPOP AXSTI ;开中断IRET ;返回主程序MYISR ENDP CRT1 PROC ;在屏幕上显示一位16进制字符ADD AL,30HCMP AL,39HJBE D0ADD AL,7D0: MOV DL,ALMOV AH,2INT 21HRETCRT1 ENDPDELAY PROC NEAR ;延时PUSH CXMOV CX,0FFFFHLOOP $POP CXRETDELAY ENDPCODE ENDSEND START ;全程序终*************************************课程硬件结束与软件编程源程序结束。

相关文档
最新文档