数码转换 实验报告 微机原理

2024-07-11

数码转换 实验报告 微机原理(通用8篇)

篇1:数码转换 实验报告 微机原理

学号: 学生姓名: 打印日期: 评分: 评语:

实验报告

COURSE PAPER 8255控制开关状态显示

学院 :机电工程与自动化学院

一、实验目的;

(本课程设计是在完成《微机原理与接口技术使用教程》知识后进行的一次综合性训练。通过本课程设计,既可以巩固对所学知识的理解和掌握,又可以培养解决实际问题的本领,也能够提高运用文字图表表达设计思想和对Proteus与Emu8086应用的能力。

二、实验要求;

(1)功能要求:设定8255的PA口为开关量输入,PB口为开关量输出,要求能随时将PA口的开关状态通过PB口的数码管显示出来,如开关为0000,则数码管显示为0;若开关为1111,则数码管显示为F。

(2)具体参数:将8255A的端口A设置为方式0并作为输入口,读取开关量,PB口设置为方式0作为输出口。并设定A、B、C口和控制口的地址为60H、62H、64H、66H。LED为共阴极连接方式。

(3)用Proteus画出实现上述功能的8086和8255及LED相关连接的硬件电路,编写相关程序,结合emu8086,完成仿真调试,给出硬件电路图、程序代码和仿真结果图。

三、实验说明;

 利用前期实验建立组态控制  组态软件的操作界面和主要功能;  混料罐工程或交通灯工程工程组态

四、实验步骤;(1)硬件设计

8255A的四个端口地址为60H、62H、64H、66H。其二进制码分别为0110 0000H、0110 0010H、0110 0100H、0110 0110H。则可以判断,8255A的A0与A1端口应该与8086的A1和A2端口对应。8086的A7、A4、A3、A0为0,A6、A5为1时,8255A接受指令。为完成上述操作,可以使用138译码器。8255A的A端口作为输入口,连接四位开关;B端口作为输出口,连接一个共阴极的LED显示管。

(2)硬件电路图

(3)汇编语言设计 assume cs:code code segment start: MOV DX,066H MOV AL,90H OUT DX,AL

AA: MOV BX, OFFSET TABL MOV DX,060H IN AL,DX AND AL,0FH XLAT MOV DX,062H OUT DX,AL JMP AA

TABL: DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H

code ends end start(4)实验结果

五、实验心得;

通过对proteus及emu8086软件的应用,可以使我将从课堂与书本上学习到的知识,以模拟的方式,制作成成品。在本次课外项目中,我对于8255A的工作方式以及8086如何控制其他元器件输入输出数据有了清晰的认识。通过使用模拟软件,我有了更多的方式去深入了解课本上的知识。

篇2:数码转换 实验报告 微机原理

学 学 生 实 验 报 告

实验课程名称

开课实验室

学院

年级

专业班

学 学 生 姓 名

开 开 课 时 间

学年第 学期

总 总 成 绩

教师签名

篇3:数码转换 实验报告 微机原理

Proteus是由英国Labcenter公司开发的一款嵌入式系统设计与仿真平台,它由ISIS和ARES 2个软件包构成,ISIS是原理图编辑与仿真软件包,ARES是布线编辑软件包。

ISIS软件可以仿真、分析各种模拟器件和集成电路,支持许多型号的单片机仿真。其仿真基于SPICE3F5,能像其他的EDA软件一样进行模拟分析、数字仿真、混合信号分析、频率分析等。ISIS支持大量的存储器和外围芯片,Proteus提供了30多个元件库,数千种元件。Proteus能和Keil等软件整合使用,以求得到更好的仿真效果。同时,Proteus还提供了示波器、逻辑分析仪、信号发生器、计数器、电表、虚拟终端等虚拟仪器仪表。Proteus已经被应用于嵌入系统设计和工程应用当中,如杨延宁等人将其应用于单片机汉字点阵显示电路的设计,大幅缩短了开发周期,节约了开发成本[1],刘邹等人将Proteus应用于电子警察项目的硬件在回路仿真,取得了很好的效果[2]。

Proteus软件已经广泛应用于单片机教学和实验仿真。乔建华等人对将Proteus引入单片机课堂教学、实验教学、课程设计和毕业设计中进行了积极探索[3],苏变玲等对利用Proteus进行单片机仿真教学进行了有益尝试[4],陈少航等人对利用Proteus进行了硬件仿真,Proteus与Keil软件的连接进行了研究[5],袁峰伟等人从教学方法、实验手段等方面对Proteus在单片机教学中的应用进行了探索[6],张勇运用Proteus对32位单片机与虚拟串口的通信进行仿真,做了比较深入的研究[7]。

Proteus在微机原理教学中的应用尚未见报道,这主要是因为以前Proteus缺乏对微机原理课程所涉及芯片的支持,但是从Proteus 7.5 SP3开始,Labcenter公司对8086微控制器及相关接口芯片提供了支持。

微机原理是高校电类专业的一门必修课,课程的实践性很强。对于非计算机专业的学生来说,由于计算机基础知识较为薄弱,学习本门课程的难度较大。因此,微机原理实验课的效果对本门课程的教学就显得尤为重要[8]。教学实践表明,在微机原理课程的学习过程中,同学们对8086系统中内存与IO编址,内存扩展,IO接口芯片与CPU的连接,某些IO接口芯片复杂的工作方式等内容普遍感觉比较难于掌握,而在微机原理实验课程中,采用的微机原理试验箱由于其内部线路已经连好,没有给学生连线实践的机会,实验效果不是很理想。本文对Proteus在微机原理实验中的应用进行了探讨,并付诸教学实践,取得了较好的教学效果。

1 微机原理实验仿真

本文对Proteus在微机原理实验仿真中的应用进行了探索,主要包括内存扩展、外围接口芯片8253、8255与CPU的连接等内容。

1.1 内存扩展仿真

在微机原理课程的教学实践中,同学们普遍感到比较抽象、难于理解的就是数据在计算机内存中的存取方式,而这部分内容对学好微机原理课程,特别是汇编语言编程和调试至关重要。Proteus 7.5SP3的8086 VSM提供了CPU对内存数据访问过程的动态演示,可以很好地帮助同学们对该部分内容的理解。

8086内存扩展电路如图1所示,由于Proteus中没有Intel 2114,6116等微机原理教材中常见的存储器芯片,本图采用了6264芯片对内存进行扩展,地址锁存器使用了74LS373,数据缓冲器74LS245,具体电路如图1所示。Proteus VSM提供了总线调试,只需进行简单的设置,Proteus就可以在仿真日志中详细记录8086CPU进行内存读写的总线操作过程,包括执行单元EU即将执行的指令的汇编代码、机器码以及相应指令的段地址、偏移地址,总线操作的各个时钟周期,是否插入等待周期,本次总线操作的目标是内存还是IO设备,进行读操作还是写操作,引起该次总线操作的原因等。内存扩展的仿真日志与8253、8255类似,源代码也比较简单,本文从略。

1.2 8253与CPU的连接

8253定时计数器是微机原理课程中原理比较简单的外围接口芯片,其六种不同的工作方式是同学们学习中比较难于掌握的部分,Proteus提供了8253仿真模型,可以对8253的工作方式进行直观的演示。如图2所示。

源程序和调试过程如图3所示,本程序对计数器0设置了工作方式0,计数初值设为OxFFFE。图3显示了程序执行过程中8253的工作状态,从图中可以清晰地看出8253各个计数器的工作方式,计数方式,计数初值寄存器和当前计数器的值,非常直观,对同学们理解8253定时计数器有很大的促进作用。

1.3 8255与CPU的连接

8255并行接口芯片也是微机原理课程中的一个重点内容,其A,B,C口不同的工作方式,特别是1、2方式中各个联络信号的作用,各个联络信号之间的时序关系,对于首次接触微机原理课程的同学们来说,是比较难于理解和掌握的,本文用Proteus 7.5对其与CPU的连接以及几种工作方式进行仿真。

8255仿真的源代码和调试过程如图5所示。Proteus VSM以清晰直观的方式显示了8255内部的工作状态,包括A口和B口的工作方式、输入还是输出、以及1方式和2方式下的状态字各位的情况(C口各个功能引脚的状态),通过以上仿真过程,强化了同学们对8255的工作原理,工作方式的感性认识,调动了大家的学习积极性和创造性。

2 Proteus在微机原理实验仿真中的局限

本文利用Proteus对微机原理实验进行仿真,可以使学生很直观的理解8086CPU、内存芯片、各种外围接口芯片的工作方式和工作原理,加深同学们对上述内容的理解和掌握,但是Proteus 7.5 SP3是首次引入对8086CPU的支持,有些内容尚有待进一步开发和完善。8086目前只支持最小组态,对当前微机原理课程中介绍较多的最大组态模式、总线控制器与8086CPU的连接,以及总线控制器产生的总线控制信号,都无法进行Proteus仿真。有些芯片,比如常见于微机原理教材的Intel 2114芯片、ADC0809、8237、8259等芯片,Proteus尚未提供仿真支持。相信随着时间的推移,Labcenter公司会对8086提供更加完善的支持,可以进行仿真的外围接口芯片也会越来越多。

3 结束语

微机原理实践教学是微机原理教学的重要环节,是培养电类专业学生动手能力、创新能力、综合运用所学知识的有机组成部分。本文对微机原理教学中的一些重点和难点内容,通过引入Proteus软件进行仿真教学的方式进行了探索,使学生受到较为全面的工程实践训练,增强了学生的创新能力,提高了教学质量,同时对教学过程起到了很好的促进作用,大大调动了学生学习本门课程及其他相关课程的积极性和创造性。

参考文献

[1]杨延宁,刘立军,张志勇.基于Proteus的单片机汉字点阵显示电路设计[J].液晶与显示,2009,24(1):98-102.

[2]刘邹,丁青青.基于Proteus的硬件在回路仿真[J].计算机仿真, 2009,26(2):312-314.

[3]乔建华,李临生,田启川.Proteus在单片机教学中的应用分析[J].电气电子教学学报,2008,30(3):70-73.

[4]苏变玲,朱志平,袁卫.基于Proteus的单片机仿真教学的研究[J].实验室研究与探索,2009,28(4):75-78.

[5]陈少航,李山,苗亮亮,等.基于Proteus的单片机应用系统的设计与仿真[J].现代电子技术,2007,6:43-45.

[6]袁锋伟,赵立宏,朱慧玲,等.基于Proteus的单片机课程教学与实验改革[J].实验室研究与探索,2007,26(12):75-78.

[7]张勇.基于Proteus平台的32位单片机LPC2114虚拟串口通讯仿真[J].集成电路通讯,2008,26(1):8-12.

篇4:数码转换 实验报告 微机原理

[关键词] 教学模式 实验教学 创新能力

《微机原理与接口技术》课程是大多数计算机及电子类专业学生的必修课程,同时也是一门动手性及实用性很强的计算机课程。在科学技术日益增长的今天,我国需要很多的既具备软件编程能力,又了解硬件知识的复合性人才。学好这门课程,将会为学生在后续的计算机开发应用中打下坚实的基础。这门课程是实践性很强的专业技术基础课程,学习过程中应充分重视实践环节,只有经过实践才能加深对理论课的学习和理解,提高分析问题和解决问题的能力。

在以往实验教学过程中,由于对实验课的重视程度不够及实验仪器的局限性,导致在实验课堂的组织及具体实施等方面都存在着某些问题。针对上述情况,我们在实验教学改革中做了如下尝试,取得了较好效果。

一、引导学生学习,提高学生学习积极性

很多学生在开始接触这门课程时会存在以下疑问,为什么学习这门课程?学了以后有什么用?汇编语言在编程过程中需要了解计算机底层的一些东西,加上繁琐的指令系统,因此很多学生在学习这门课的时候感觉很吃力,觉得无从下手,最后对该实验课程也引不起足够的重视。这就要求教师跟学生进行很好的沟通,消除学生的畏难情绪,化被动学习为主动求知。

本着由浅入深的教学思路,将实验内容分为验证性实验、设计性实验、综合性实验、创新性实验,其中又将这些实验分为必做和选作,因材施教,消除优秀生“吃不饱”,少数学生“吃不了”的现象,从而更好的满足不同学生的需求。

另外,教师在辅导实验过程中,也要注意营造交流沟通的氛围,在学生验证、修改实验的过程中,给予积极的引导,让学生真正成为“学习的主体”。当学生通过自己的努力完成了实验,他们不仅可以树立自信心,而且学会了主动接受知识、认真思考,学生的学习兴趣也得到很大的提高。

二、讨论性小组的开展

在某些实验中,教师可以组织同学讨论,从而提高学生的学习兴趣。例如,十字路口交通灯设计实验,交通灯是学生很熟悉的事物,这样可引起同学的讨论兴趣。教师可把学生分成3~5人的学习小组,充分发挥团队协作精神,从而更好更快地解决问题。在讨论过程中,教师可以发挥主导作用,提出问题让同学们来共同讨论解决。问题可以由易到难,逐层深入。如在交通灯实验中可以首先这样设置问题:东西、南北两方向各延时30秒,要求精确定时,如何来实现?

此时,同学们经过讨论,可以找到问题的突破口,确定选用前面实验中用到的8253、8259芯片,结合8255A控制发光二极管,来模拟十字路口交通灯。如此可以很好地巩固和加深对以前知识的消化和吸收。同学们经过反复实验,从中可以发现问题、共同解决。最终实现了对现实交通灯的模拟,相信对同学们自信心的加强会很有帮助。

此时教师可以进一步设置问题,如:如果使用七段数码管来显示交通灯时间的控制显示,如何实现?这样同学们可进一步学习到更多的知识。

最后教师可以指出:实际上不同时刻的车辆流通状况是复杂多变的,还经常受到人文因素的影响。采用定时控制会经常造成道路有效应用时间的浪费,如何更好的解决呢?这样的话会更大的激发学生的学习积极性,教师可以鼓励学生利用图书馆和网络资源,讨论小组可以分工合作,共同研究,相信同学们可以从中学到很多从理论课本上未曾接触的东西,并能从中享受学习的快乐,培养学生学习的积极性,增加同学们的沟通协调能力,使得同学们动手能力得到更好的锻炼。

三、增加实验室开放时间

实验室是学生锻炼和提高动手能力的良好场所,保证实验室开放时间,可以充分利用实验室资源,增加学生自主学习时间。如果没有实验环境,学生做预习一般采取预习下次要做的实验内容,写出实验程序,但是程序可不可以运行,学生只有等到上机调试后才知道,达不到预习的良好效果;如果实验室增加了开放时间,学生可对下一次的实验内容做更好的预习,有了实验调试环境,学生可对自己的程序先做初步的调试,遇到不能解决的问题可以做好记录,在课堂上可以与教师进行很好的沟通,学生的学习效果会更高,并可提升整个课堂学习效率。

一些能力强的同学可利用开放的实验室,做一些创新性实验的开发、研究。学生可增加对理论知识更加深刻的理解,学生的动手能力和创新能力会得到很好的培养。同时,在实验室开放时间内,学生之间可以进行很好的交流,达到互帮互学的目的,最终学生的整体科学素质会得到很好的提高。

四、结束语

《微机原理与接口技术》实验改革之路任重道远,还需要教师在今后的教学中探索新思路和新方法。接口技术与设备在不断的发展,教师应该密切关注当前最新技术,适时补充一部分当前微机接口技术中较新的内容,实验设备也应适当更新,从而培养出紧跟时代步伐的优秀学生。

参考文献:

[1]朱莹等.发现法在“汇编语言与接口技术”课程教学中的应用[J].计算机教育,2009,(8):134-135.

[2]陈静等.“微机原理及应用”实验教学改革[J].重庆工学院学报,2006,11(20):177-178.

[3]黄海萍.汇编语言与微机接口技术实验教程[M].国防工业出版社,2007.

篇5:数码转换 实验报告 微机原理

一、实验内容

用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。二,实验目的

(1)掌握8259的工作原理。

(2)掌握编写中断服务程序的方法。(3)掌握初始化中断向量的方法。三,实验步骤(1)连线

1.单脉冲发生器输出P+与8259的IR0相连; 2.8259的片选CS8259与CS0相连; 3.8259的INT与8086的INT相连; 4.8259的INTA与8086的INTA相连; 5.CS273与CS1相连;

6.00与LED0相连,01与LED1相连,依次将CS273接口与LED相连;其它线均已连好如下图:

DDBUSDD0VccDD1DD2DD3DD4DD5DD6DD7CS825913274LS32VccINTINTAVccIORDIOWRA***2161726D0D1D2D3D4D5D6D7A0CSRDWRSP/ENINTINTA8259IR0IR1IR2IR3IR4IR5IR6IR7***32425IR0IR1IR2IR3IR4IR5IR6IR7CAS0CAS1CAS2121314(2)编辑程序,编译链接后,单步运行,调试程序。

(3)调试通过后,在中断服务程序的NOP处设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处,观察寄存器AX的值。四,实验源程序如下

CODE SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H

;写ICW1,单片8259A,要写0CW4 MOV AX,13H

OUT DX,AX MOV DX,4A2H;写ICW2 MOV AX,80H

;IR0的中断向量码为80H OUT DX,AX MOV AX,01

OUT DX,AX;一般嵌套,非缓冲方式,非自动EOI MOV AX,0;写OCW1 OUT DX,AX;允许中断

;中断向量存放在(0000H:0200H)开始的四个单元里 MOV AX,0

MOV DS,AX MOV SI,200H

;中断类型号为80H MOV AX,OFFSET HINT;中断服务程序的入口地址 MOV DS:[SI],AX ADD SI,2 MOV AX,CS MOV DS:[SI],AX STI

;开中断,设置IF=1 JMP $

;原地跳转

HINT:

;中断服务程序 XOR CX,0FFH;CX取反

MOV DX,4B0H;CS273接口的地址,与8个LED灯相连 MOV AX,CX;输出高低电平控制LED灯的亮灭 OUT DX,AX MOV DX,4A0H;OCW2的地址

MOV AX,20H;一般EOI命令,全嵌套方式 OUT DX,AX IRET;中断返回

CODE ENDS END START 五,实验思考题 1. 将P0连线连接到IR1—IR7任意一个;重新编写程序。

将P0接到了IR1,在原程序的基础上,把写ICW2的控制字改为81H,再把中断向量的入口地址改为0204H即可。程序如下:

CODE SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H

;写ICW1,单片8259A,要写ocw4 MOV AX,13H

OUT DX,AX MOV DX,4A2H;写ICW2 MOV AX,81H

;IR1的中断向量码为81H OUT DX,AX MOV AX,01

OUT DX,AX;一般嵌套,非缓冲方式,非自动EOI MOV AX,0;写OCW1 OUT DX,AX;允许中断

;中断向量存放在(0000H:0204H)开始的四个单元里 MOV AX,0

MOV DS,AX MOV SI,204H

;中断类型号为81H MOV AX,OFFSET HINT;中断服务程序的入口地址 MOV DS:[SI],AX ADD SI,2 MOV AX,CS MOV DS:[SI],AX STI

;开中断,设置IF=1 JMP $

;原地跳转

HINT:

;中断服务程序

XOR CX,0FFH;CX取反

MOV DX,4B0H;CS273的地址

MOV AX,CX;输出高低电平控制LED灯的亮灭 OUT DX,AX

MOV DX,4A0H;OCW2的地址

MOV AX,20H;一般EOI命令,全嵌套方式 OUT DX,AX IRET;中断返回 CODE ENDS END START 实验现象:运行程序,触发脉冲发生器产生中断请求,相应二极管点亮。2. 设置OCW1,屏蔽某个中断请求,运行程序观察现象。

将IR0重新接入LED0,设置OCW1为01H,屏蔽中断IR0,则IR0的中断无法得到响应。程序如下:

CODE SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H

;ICW1的地址,写初始化命令字ICW1 MOV AX,13H;上升沿触发,单片8259,要写ICW4 OUT DX,AX MOV DX,4A2H;ICW2的地址,写中断向量码ICW2 MOV AX,80H

;IR0的中断向量码为80H OUT DX,AX MOV AX,01

;写中断结束控制字ICW4 OUT DX,AX;一般嵌套,非缓冲方式,非自动EOI MOV AX,01H

;写中断屏蔽字OCW1 OUT DX,AX;屏蔽IR0中断

;中断向量存放在(0000H:0200H)开始的四个单元里 MOV AX,0

MOV DS,AX MOV SI,200H

;中断类型号为80H MOV AX,OFFSET HINT;中断服务程序的入口地址 MOV DS:[SI],AX ADD SI,2 MOV AX,CS MOV DS:[SI],AX STI

;开中断,设置IF=1 JMP $

;原地跳转

HINT:

;中断服务程序

XOR CX,0FFH;CX取反

MOV DX,4B0H;CS273的地址

MOV AX,CX;输出高低电平控制LED灯的亮灭 OUT DX,AX

MOV DX,4A0H;OCW2的地址

MOV AX,20H;一般EOI命令,全嵌套方式 OUT DX,AX IRET

;中断返回

CODE ENDS END START 实验现象:

每按单脉冲发生器一次产生一次中断申请,但连接的发光二极管一直不亮。3.设置OCW2,了解中断结束方式与设置优先权。将IR0和IR1都连接到P+上,分别连接LED0和LED1到00和01。OCW2将 E0OCW2一般EOI命令,将IR0设置为最低中断优先级。程序如下:

CODE

SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H

;ICW1的地址 MOV AX,13H

;上升沿触发,单片8259,要写ICW4 OUT DX,AX MOV DX,4A2H;ICW2的地址 MOV AX,80H;中断向量码为80H,低3位自动写入 OUT DX,AX MOV AX,01

;写ICW4 OUT DX,AX;一般嵌套,非缓冲方式,非自动EOI MOV AX,0

;写OCW1 OUT DX,AX;允许所有中断

;IR0的中断向量存放在(0000H:0200H)开始的四个单元里 MOV

AX,0

MOV

DS,AX MOV

SI,200H MOV

AX,OFFSET HINT1 MOV

DS:[SI],AX ADD

SI,2 MOV

AX,CS MOV

DS:[SI],AX STI

;开中断,设置IF=1;IR1的中断向量存放在(0000H:0204H)开始的四个单元里 MOV

AX,0

MOV

DS,AX MOV

SI,204H MOV

AX,OFFSET HINT2 MOV

DS:[SI],AX ADD SI,2 MOV

AX,CS MOV

DS:[SI],AX JMP $

;原地跳转

HINT1:;中断服务程序1 XOR CX,0F0H;CX高4位取反 MOV DX,4B0H;CS273的地址

MOV AX,CX;输出高低电平控制LED灯的亮灭 OUT DX,AX MOV DX,4A0H;OCW2的地址

MOV AX,E0H;一般EOI命令,IR0优先级最低 OUT DX,AX IRET

;中断返回

HINT2:

;中断服务程序2 XOR CX,00FH;CX低4位取反 MOV DX,4B0H;CS273的地址

MOV AX,CX;输出高低电平控制LED灯的亮灭 OUT DX,AX MOV DX,4A0H;OCW2的地址

MOV AX,E0H;一般EOI命令,IR0优先级最低 OUT DX,AX IRET

;中断返回 CODE ENDS END START 实验现象:CS273的00与LED0相连,01与LED1相连,02与LED2相连,依次下去,直至07与LED7相连。每按单脉冲发生器一次产生一次中断申请,由于IR0的优先级比IR1低,故先响应IR1,后响应IR0,观察到低4位的LED灯先点亮或熄灭,高4位的LED灯后点亮或熄灭。六,实验心得

篇6:微机原理与接口技术实验总结

11107108

徐寒黎

一、实验内容以及设计思路

1、①试编写一程序,比较两个字符串STRING1、STRING2 所含字符是否相同,若相同输出“MATCH”,若不相同输出 “NO MATCH”。设计思路:定义一个数据段,在数据段中定义两个字符串作为STRING1、STRING2以及几个用于输入提示的和输出所需内容的字符串,定义一个堆栈段用于存放,定义代码段。关键步骤以及少量语句:第一步将STRING1和STRING2都实现用键盘输入,方法是

MOV DX,OFFSET STRING2 MOV AH,0AH INT 21H 并且显示在显示器上,显示方法将0AH改成09H,语句与上面类似。然后进行比较第一个单元,MOV AL,[STRING1+1] CMP AL,[STRING2+1] JNZ NOMATCH 若字符串长度不等,则直接跳转,输出输出 “NO MATCH”; 若长度相等再逐个比较 LEA SI,[STRING1+2] LEA DI,[STRING2+2] MOV CL,[STRING1+1] MOV CH,0 CLD REPE CMPSB JCXZ MATCH,意思是全部相同就跳转MATCH,输出“MATCH”;不然进入下面的NOMATCH。退出。

②试编写求级数1^3+2^3 +3^3 …..前几项和刚大于10000的程序。

设计思路:原先编写的程序,设定和为10000,结果是14。但要求高一点的话,可以自己设置,实现用键盘输入和的值。

一个难点是将输入的ASCII码字符串,转换成与之相同的十进制数的数值。关键的思路部分是:从1开始求级数,将和的值存在AX里,要加下一项级数前,比如这时已经加到4,PUSH一下AX,然后将5乘三遍,将乘积MOV到BX里,再POP AX,然后将BX的值加到AX里,然后将AX与N比较,如果比N小就继续上述步骤,知道刚比N大就输出数字。

③试编写一程序,完成字符串中各字符出现频度的统计,统计结果在屏幕上输出。

设计思路:因为这个程序需要统计所有的字符,所以首先要定义一个存储区,用来存放26个字符以及每个字符出现的个数。用键盘控制输入字符串以后,将字符串的第一个字符与这二十六个字符逐个比较,若有相同,在存放相应次数的存储单元的值上加1。然后比较第二个字符,依次类推,将字符串里的字符全部比较完。将个数大于1的字符以及字符的个数都输出到屏幕上。退出语句。缺点和不足:这样需要定义一个非常繁的存储区。可以根据输入的字符,然后进行比较和统计。

④设计一个动画程序。

设计思路:这个程序参考了网上的资料,没有什么新意,是小鸟的图形,可以用上下左右键进行移动,可以退出。

步骤:首先设置堆栈段,数据段,代码段,设置显示方式等一些属性,设置背景色,设置小鸟的初始位置以及写出小鸟图形的像素的点。功能性的语句是,用键盘接受一个输入,将其与1bh比较,用JZ语句跳转到退出。若不是便与48h比较,看是否为向上,是则跳转到相应语句,不是则继续与50h比较;,看是否向下,是则跳转到关于向下移动的相关语句,否则再与4bh比较,看是否向左,依次类推,根据键盘输入的上下左右跳转到不同的语句。再将小鸟的位置进行与上下左右键的输入相应的移动。

最后编写好退出语句。

2、硬件接口主要是了解8255与8253的功能,以及控制字。①I/O地址译码

只要对硬件概念清晰,很简单的。基本上没有什么创造性。收获:熟悉实验箱结构,了解每部分元件和标注的意义。掌握I/O地址译码电路的工作原理。②可编程定时器8253 1,对照实验电路图,将计数器0设置为方式0,即数初值设为N(N<0fh),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并用逻辑笔观察OUT0点平变化。

2,将计数器0、计数器1分别设置为方式3,计数初值设为1000用逻辑笔观察out1输出电平的变化。

收获:掌握8253的基本工作原理和编程方法

③并行接口8255 1,试验电路如图所示,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。3,数码管静态显示:按下图接好电路,将8255A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接5V(选中),S0和dp接地(关闭)。编程从键盘输入一位十进制数(0-9),在七段数码管上显示。

4,数码管动态显示:按下图接好电路,七段数码管的连接不变,位码驱动输入端S1、S0接8255 C口的PC1和PC0。编程在两个数码管上显示“56”。

动态显示时,先送“5”的段码送A口,再送02h到C口为位码;经一定延时后,送“6”的段码送A口,再送01h到C口为位码。循环完成,可以显示数码。5,数码管动态显示(选做):同图接好电路,编程在两个数码管上显示循环显示“00-99”。只要搞清楚各个口的地址,以及选择适当的控制字,其实很简单的。

收获:掌握8255的基本工作原理和编程方法,对方式0的认识加深了。

二、试验中遇到的问题 1在编写程序时,我深深体会到,画程序框图的重要性,每一步跳转的条件一定要搞清楚,Y和N不能搞反了,否则就错了。

2实验2,里面涉及的寄存器很多,很容易就会用乱了,还是很需要注意的。3比如那个小鸟动画的题目,当时在控制左右移动的时候,选择的起始位置的语句没写对位置,每次按一个移位的键以后,都从最初的初始位置向某个方向移动。

4硬件方面的,一开始没搞懂地址什么意思,所以连线时很懵懂,后来清楚了,发现就没什么了。

三、心得感受

微机原理与接口技术的课程实验历时大半个学期,通过自己编写、运行程序,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。

前四个简单程序设计,加深了我们对初学的汇编语言指令的熟悉和理解,汇编语言直接描述机器指令,比机器指令容易记忆和理解。通过学习和使用汇编语言,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。不仅巩固了书本所学的知识,还具有一定的灵活性,发挥了我们的创造才能。

后面几个实验是并行输入输出接口8255和计数器8253的功能的操作,加深了我们对硬件的熟悉,锻炼了动手能力,发挥创造才能。

篇7:数码转换 实验报告 微机原理

学院:信息科学与工程学院

姓名:周信元

学号:04016523 实验日期:2018.4.4

一、实验目的

1.熟悉算术和逻辑运算指令的功能。

2.进一步了解标志寄存器各标志位的意义和指令执行对它的影响。

二、实验任务

1.采用单步执行方式执行下列各程序段,检查各标志位的情况。

程序段1 MOV AX, 10101H MOV SI, 2000H ADD AL, 30H ADD AX, SI

;AX=1010H

;SI=2000H

;AX=1040H

;AX=3040H;BX=03FFH MOV BX, 03FFH ADD AX, BX

;AX=343FH;DS:[0020]=1000H;DS:[0020]=443FH MOV[0020],1000H ADD 0020, AX 程序段2: MOV AX, OA0AOIH ADO AX, OFFFFH

;AX=A0A0H;AX=A09FH MOV CX, OFFOOH ADD AX, CX SUB AX, AX INC AX

;CX=FF00H;AX=9F9FH

;AX=0000H

;AX=0001H

;CX=FFFFH OR CX, OOFFH AND CX, OFOFH M0V[0010],CX 程序段3: MOV BL, 25H MO[0010],04H MOV AL, [0010] MUL BL 程序段4: MOV BL, 04H

;CX=0F0FH;DS:[0010]=OFOFH

;BX=0025H;DS:[0010]=04H

;AX=0004H

;AX=0094H

;BX=0004H MOV WORD PTR L0010], 0080H;DS:[0010]=0080H MOV AX, [0010] DIV BL 程序段5: MOV AX, 00 DEC AX

;AX=0000H;AX=FFFFH

;AX=3FFEH

;AX=0080H;AX=0020H ADC AX, 3FFFH ADD AX, AX

;AX=7FFCH NOT AX SUB AX, 3

;AX=8003H;AX=8000H

;AX=FBFDH OR AX, OFEFDH AND AX, OAFCFH SHL AX, 1 RCL AX, 1 步骤

;AX=ABCDH;AX=579AH;AX=AF35H(1)进入 Turbo Debugger,在CPU窗口下输入程序段 2)将IP指针指向程序段开始处(3)按下F7键(单步)运行程序。

(4)分析各条指令执行后的结果与各标志位在指令执行后对它的影响

2.将寄存器BⅨ作地址指针,自BX所指的内存单元(0010HD)开始连续存放着三个无符号数(10H、04H、30H),。试编写程序分别求它们的和与积,并将结果存放在这三个数之后的单元中。

求和程序段

MOV[0010],10H MOV[0011],04H MOV[0012],30H SUB AX, AX MOV BX, 0010H MOV AL, BXI ADD AL, [BX+1] ADD Al, [BX+2] MOV [BX+3], AL 结果[DS:0013]=44H 求积程序段

MOV[0010],10H MOV[0011],04H MOV[0012],30H SUB AX, AX MOV A1,[0010] MOV BL, [0011 MUL BL MOV BL, [0012] MUL BL MOV [0013], AX 结果[DS:0013=0C00H 3.写出完成下述功能的程序段(1)传送15H到AL寄存器。(2)将L的内容乘以2(3)传送15H到L寄存器 4)AL的内容乘以BL的内容。最后结果(AX)=?

MOV AL, 15H SHL AL, 1 MOV BL, 15H MUL BL 结果(AX)=0372H 4.写出完成下述功能的程序段

(1)从地址DS:0000H单元中,传送一个数据58H到AL寄存器。(2)把AL寄存器的内容右移两位

(3)再把L寄存器的内容与字节单元DS:0001H中的数据12H相乘。(4)将乘积存入字单元DS:0002H中

M0V[0000],58H MOV[0001],12H MOV AL, [0000] SHR AL, 02 MOV BL, [0001] MUL BL MOV [0002], AX 结果[0002]=018CH 5.假设下面的程序段用来清除数据段中相应字存储单元的内容(即零送到这些存储 单元中去),其偏移地址从0010H到0020H(1)将第4条比较指令语句填写完整(划线处)MOV SI, 0010H NEXT: MOV WORD PTR[SI].00 ADD SI, 0022H CMP SI, INE NEXT(2)假设要清除偏移地址从0020H到001字存储单元中的内容(即由高地址到 低地址清零),试编写程序段。

MOV SI, 0020H NEXT MOV WORD PTR[S1], 00 SUB SI, 2 CMP SI, 000EH JNE NEXT

三,实验设备

IBM-TC/XT微机一台

四、实验预习要求

1.复习8086指令系统的算术和逻辑运算指令 2,按照题目要求在实验前编写好程序

五、实验报告要求

1.整理出运行正确的各题源程序段和结果, 2.,简要说明ADD指今和AND指令对标志位的影响。

1.见报告中加粗文字部分

篇8:微机原理红绿灯课程设计报告

实验报告 2009-09-02 18:16:02 阅读1337 评论2 字号:

大中小

摘要:

介绍了基于8255A的交通灯系统设计方案,重点论述了软件系统的编写方法。实际结果表明该系统方案切实可行。

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结

构软硬件结合,加以完善。

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用8255A芯片实现了A、B口设置红、绿灯点亮时间的功能;红绿灯循环点亮,红绿灯变换之间,黄灯闪烁5秒

关键字: 交通灯、软件系统

设计内容 本次课程设计是交通灯实时控制器,主要是用发光二极管模拟十字路口的红绿灯,如下图所示。交通灯控制器的设计与实现主要是通过编写汇编语言程序利用8255的A口和B口对灯的亮与灭进行控制。由于实验室的仪器上只有16个发光二极管,所以还得弄清楚是每个发光二极管所代表的灯的颜色及方向。16个发光二级管,且从高到低依次为:D15D14D13D12D11D10D9D8 D7D6D5D4D3D2D1D0。在设计的过程中做了如下的规定:R表示红灯,G表示绿灯,Y表示黄灯,E表示方向东,W表示方向西,S表示方向南,N表示方向北,D15D14表示ER,D13D12表示SR,D11D10表示EG,D9D8表示SG,D7D6表示WR,D5D4表示NR,D3D2表示WG,D1D0表示NG,D15D14D11D10表示EY,D7D6D3D2表示WY,D13D12D9D8表示SY,D5D4D1D0

表示NY。交通灯控制示意图 具体时间的分配和控制如下:

东西方向绿灯亮,南北方向红灯亮,时间20秒 东西方向黄灯闪烁,南北方向红灯亮,时间5秒 东西方向红灯亮,南北方向绿灯亮,时间20秒 东西方向红灯亮,南北方向黄灯闪烁,时间5秒

设计器材设备 微机、TD-PIT++实验箱

实验电路图 设计流程图

总体设计过程

1.根据选择题目的要求,结合所参考的资料,选择8255单元芯片以及LED显示单元电路。

1)

电路元器件的选择 可编程并行通信接口芯片8255 2)

完成8255单元电路的设计及参数计算

8255的A口地址是:IOY0+00H*4

B口地址是:IOY0+01H*4 C口地址是:IOY0+02H*4 控制端口地址是:IOY0+03H*4

2.软件流程图的设计 3.电路接线图的设计 4.软件的设计(程序见附录)1)

芯片初始化,写8255的方式字 2)

延时,延时是通过设置指令的循环次数实现的 3)

东西方向绿灯亮,南北方向红灯亮,时间20秒 4)

东西方向黄灯闪烁,南北方向红灯亮,时间5秒 5)

东西方向红灯亮,南北方向绿灯亮,时间20秒 6)

东西方向红灯亮,南北方向黄灯闪烁,时间5秒

7)判断是否有键按下 8)

返回到DOS 5.进行软硬件调试

因采用了pc机和微机原理实验箱,硬件电路设计相对比较简单,利用微机实验箱上的8255并行口、发光二级管,便构成了交通灯控制系统。

心得体会

通过这次课程设计,加强了我的动手、思考和分析解决问题的能力。在整个设计过程中,我们按照老师给出的总体方案设计了一套电路原理和电路连接图。通过查阅各方面资料我们编写了程序代码,并通过了调试,最终证实了该系统

方案确实可行。在设计过程中,了解了很多元器件的功能,并且对于其在电路中的使用有了更多的认识。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做,难免会遇到过各种各样的问题,同时也在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢

固。

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

附录(程序代码)

IOY0 EQU 0E000H PORTA EQU IOY0+00H*4 PORTB EQU IOY0+01H*4 PORTK EQU IOY0+03H*4 STACK1 SEGMENT STACK DW 256 DUP(?)

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE START: MOV AL, 80H MOV DX, PORTK ;8255工作在方式0,A、B口均输出

OUT DX, AL MOV AL, 3CH MOV DX, PORTA ;A口东方向绿灯亮,南方向红灯亮

OUT DX, AL MOV AL, 3CH MOV DX, PORTB ;B口西方向绿灯亮,北方向红灯亮

OUT DX, AL CALL DELAY ;调用20s延时子程序

MOV CX, 5 START1: MOV AL, 0FCH MOV DX, PORTA ;A口东方向黄灯亮,南方向红灯亮

OUT DX, AL MOV AL, 0FCH MOV DX, PORTB ;B口西方向黄灯亮,北方向红灯亮

OUT DX, AL CALL DELAY1 ;调用0.5s延时子程序

MOV AL, 30H MOV DX, PORTA ;A口东方向黄灯灭,南方向红灯亮

OUT DX, AL MOV AL, 30H MOV DX, PORTB ;B口西方向黄灯灭,北方向红灯亮

OUT DX, AL CALL DELAY1 ;调用延时0.5s子程序

LOOP START1 ;CX≠0则循环

MOV AL, 0C3H MOV DX, PORTA ;A口东方向红灯亮,南方向绿灯亮

OUT DX, AL MOV AL, 0C3H MOV DX, PORTB ;B口西方向红灯亮,北方向绿灯亮

OUT DX, AL CALL DELAY ;调用20s延时子程序

MOV CX, 5 START2: MOV AL, 0F3H MOV DX, PORTA ;A口东方向红灯亮,南方向黄灯亮

OUT DX, AL MOV AL, 0F3H MOV DX, PORTB ;B口西方向红灯亮,北方向黄灯亮

OUT DX, AL CALL DELAY1 ;调用0.5s延时子程序

MOV AL, 0C0H MOV DX, PORTA ;A口东方向红灯亮,南方向黄灯灭

OUT DX, AL MOV AL, 0C0H MOV DX, PORTB ;B口西方向红灯亮,北方向黄灯灭

OUT DX, AL CALL DELAY1 ;调用0.5s延时子程序

LOOP START2 MOV AH, 1 INT 16H JZ START ;判断是否有键按下,无

按键则

QUIT: MOV AX, 4C00H 调回继续循环,有

则退出

INT 21H DELAY PROC NEAR ;20s延时子程序

PUSH CX PUSH DX PUSH BX

MOV BX, 3 MOV DX, 27880 LAB: MOV CX, 0FFFFH

LOOP $ DEC DX JNZ LAB DEC BX JNZ LAB POP BX

POP DX POP CX RET DELAY ENDP PROC NEAR ;0.5s延时子程序 PUSH CX PUSH DX MOV DX, 6970 LAB1: MOV CX, 0FFFFH DELAY1

LOOP $ DEC DX

上一篇:精准扶贫迎检工作方案下一篇:青花瓷瓶阅读理解答案