收藏 分享(赏)

微机原理与单片机实验报告.doc

上传人:HR专家 文档编号:7295612 上传时间:2019-05-14 格式:DOC 页数:27 大小:7.80MB
下载 相关 举报
微机原理与单片机实验报告.doc_第1页
第1页 / 共27页
微机原理与单片机实验报告.doc_第2页
第2页 / 共27页
微机原理与单片机实验报告.doc_第3页
第3页 / 共27页
微机原理与单片机实验报告.doc_第4页
第4页 / 共27页
微机原理与单片机实验报告.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、北京联合大学信息学院实验报告课 程 名 称: 微型计算机原理 学 号: 姓 名: 2012 年 6 月 9 日目录实验 1 EMU8086 模拟器的使用 2实验 2 数据传送指令的使用 4实验 3 多位十六进制加法运算实验 8实验 5 循环程序实验 10实验 6 由 1 到 100 求和实验 12实验 7 求表中正数_负数_0 的个数实验 .14实验 8 数据排列实验(冒泡排序) 16实验 9 系统功能调用(大小写转换) 18实验 10 阶乘(递归运算) 20实验 11 ProteusIO 工程文件的建立 .21实验 12 IO 口读写实验 (245、373) 22实验 13 8255 接口实

2、验 .24实验 14 声光报警 25实验总结 .27实验 1 EMU8086 模拟器的使用一 实验要求利用 EMU8086 模拟器环境,完成创建源程序文件,运行调试,实验结果的查看二 实验目的:熟悉 EMU8086 实验环境三 EMU8086 环境:1 模拟器编辑窗口2 模拟器调试窗口四 实验内容实验内容 1:新建文件。运行 emu80861. 新建文件:单击“新建” 按钮,选择 COM 模板,在模拟器编辑窗口中输入如下程序代码:MOV AX, 1020HMOV BX, 2030HMOV AX, BXADD AX, BXMOV BX, AXMOV 2032H, AXHLT2. 编译:单击“编译

3、” 按钮,对程序段进行编译;3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1” 保存在本地磁盘上。4. 仿真:单击“仿真” 按钮,打开模拟器调试窗口和源文件窗口。5.在模拟器调试窗口中的寄存器组区,查看数据寄存器 AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器 IP;指针寄存器 SP,BP;变址寄存器 SI,DI;标志寄存器的值。6.单击“单步前” 按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为 400 毫秒,单击“全速”按钮,运行程序,8.程序运行之后,在程序调试窗口中,选择vie

4、w/memory,查看模拟器环境中,内存单元 0700:0100 开始的连续 10 个单元的内容9.将“存储器”中的地址改为 0700:2030,查看开始的四个字节的内容,并思考其内容与程序的关联。10.将“存储器”中地址改为 1000:0100,并将从其开始的连续 10 个单元的内容改为 55H。实验内容 2:运行范例在模拟器编辑窗口中1.点击典型范例2.选择:hellow,word 程序,编译,运行,观察结果。修改程序(不要改原有 DEMO 程序) ,输出学号,姓名(汉语拼音 或 英文名)pare numbers 程序,编译,运行,观察结果。修改程序(不要改原有 DEMO 程序) ,将比较

5、对象改为 7,编译,运行,观察结果。4.欣赏其它 DEMO 范例实验 2 数据传送指令的使用一、 实验要求编写程序代码指令,注释二、 实验目的熟练掌握数据传送类指令的格式、功能和应用。三、 实验说明emu8086 环境下自建工程文件。五、 参考程序1 运行以下 3 段程序,记录用到的 4 个通用寄存器的内容1.mov ax, 0abchdec axand ax, 00ffhmov cl, 4sal al, 1mov cl, aladd cl, 78hpush axpop bxhlt2.mov sp, 2000hmov ax, 3000hmov bx, 5000hpush axpush bxpo

6、p axhlt3.mov ax, 1234hmov bx, 5678hmov cx, 9abchpush axpush bxpush cxpop dipop sipop dxhlt2 运行以下程序,记录 AX 寄存器的内容,逐条注释指令Mov 1000h, 5566hmov ax, 1000hlea ax, 1000hhlt六、 编程,测试,记录程序运行结果。实验 3 多位十六进制加法运算实验一、 实验要求编程实现多位十六进制数的加法运算。二、 实验目的1、熟悉实验系统的编程和使用。2、掌握使用加法类运算指令编程及调试方法。3、掌握加法类指令对状态标志位的影响。三、 实验说明由于本实验是三个十

7、六位二制数相加运算,N4 为存放结果,其中 N1 为 1111H、N2 为2222H、N3 为 3333H 所以结果应该为 6666H四、 实验程序流程图五、 参考程序DATA SEGMENTNUM1 DW 1111H ;N1NUM2 DW 2222H ;N2NUM3 DW 3333H ;N3NUM4 DW 0000H ;N4DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATABEG: MOV AX, DATAMOV DS, AXMOV SI, OFFSET NUM1MOV AX, 0ADD AX, SI+0ADD AX, SI+2ADD AX, SI+4MO

8、V SI+6, AXJMP $CODE ENDSEND BEG六、 编程,测试,记录程序运行结果。实验 5 循环程序实验一、 实验要求练习编程建立 8086 的循环程序。二、 实验目的1、熟悉实验系统的编程和使用。2、掌握使用 LOOP 判断转移指令实验循环的方法。3、掌握使用 LOOP 与 CX 的组合。三、 实验说明由于本实验是通过给 CX 一个数值,再通过 LOOP 作一个判断 CX-1 是否为 0 的转移,实现程序的循环,循环的内容是执行 AX+1, 所以结果应该为 AX 最后大小为开始时给定CX 的大小。四、 实验程序流程图五、 参考程序CODE SEGMENTASSUME CS:C

9、ODECON_A EQU 25CON_B EQU 12START: MOV AX,0MOV CX,5INC_AX: NOPINC AXLOOP INC_AXJMP $CODE ENDSEND START六、 编程,测试,记录程序运行结果。实验 6 由 1 到 100 求和实验一、 实验要求编程实现 1 到 100 求和运算。二、 实验目的1、熟悉实验系统的编程和使用。2、掌握使用加法类运算指令编程及调试方法。3、掌握使用循环类指令编程及调试方法。三、 实验说明由于本实验是 1 到 100 的 100 个数想加,1+2+3+4+97+98+99+100=? 求和四、 实验程序流程图五、 参考程序

10、DATA SEGMENTtotal DW 0000H ;DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATABEG: MOV AX, DATAMOV DS, AXMOV SI, OFFSET totalMOV CX, 100MOV AX, 0MOV BX, 1add_100: ADD AX, BXINC BXLOOP add_100MOV SI, AXJMP $CODE ENDSEND BEG六、 编程,测试,记录程序运行结果。total=1+2+3+4+99+100 = 5050 =13BA H(16 进制) 验证结果是否正确实验 7 求表中正数_ 负数_0

11、 的个数实验一、 实验要求程序中定义数组,编程实现统计数组中正数、负数与 0 的个数。二、 实验目的1、熟悉实验系统的编程和使用。2、掌握查表方法。三、 实验说明由于本实验是先在表中存放数据,其它有正数、负数和 0,通过程序对表的查询,统计表中包含正数、负数和 0 的个数。四、 实验程序流程图五、 参考程序DATA SEGMENTDBUF DB 1,2,-3,-4,-5,1,2,3,4,5,# ;7 正 3 负,#为结束标志PLUS DB 1 ;正数个数MINS DB 1 ;负数个数DATA ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDSCODE

12、SEGMENTASSUME DS: DATA,SS: STACK,CS: CODESTART: MOV AX, DATAMOV DS, AXMOV PLUS, 0 ;初始化MOV MINS, 0MOV DI, 0BG: CMP DBUFDI, #JE EN ;遇到#结束INC DICMP DBUFDI, 0 ;和 0 比较JG L1 ;大于JL L2 ;小于L1: INC PLUS ;正数个数加 1JMP BG ;继续循环L2: INC MINS ;负数个数加 1JMP BGEN: MOV AH, 4CHINT 21H六、 编程,测试,记录程序运行结果。实验 8 数据排列实验(冒泡排序)一、

13、实验要求1 利用 PROTEUS 平台,编程实现 8086 的由小到大的数据排列。2 利用系统功能调用实现需要排序数据的输入和排序结果显示。二、 实验目的1、熟悉实验系统的编程和使用。2、了解排列的简单算法。3、了解“冒泡排序”法。三、 实验说明有序的数列更有利于查找。本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有数比较一遍后,最大的数就会在数列的最后面。再进行下一轮比较,找出第二大数据,如此下去,直到全部数据由小到大排列完成。四、 实验程序流程图五、 参考程序DATA SEGMENTARRAY DB 25,46,3,75,5,30COUNT

14、EQU $-ARRAYDATA ENDSSTACK SEGMENT PARA STACK STACKDB 60 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX, DATAMOV DS, AXMOV DX, COUNT-1MOV BL, 0FFHAGAINO: CMP BL, 0JE DONEXOR BL, BLMOV CX, DXMOV SI, COUNT-1AGAIN1: MOV AL, ARRAYSICMP AL, ARRAYSI-1JAE UNCHEXCH: XCHG ARRAYSI-1,A

15、LMOV ARRAYSI,ALMOV BL, 0FFHUNCH: DEC SILOOP AGAIN1DEC DXJNZ AGAINODONE: JMP $CODE ENDSEND START六、 编程,测试,记录程序运行结果。由于在 0040H 单元开始的 6 个字节 25,46,3,75,5,30 = 19H,2EH,03H,4BH,05H,1EH所以由小到大排列后为:03H,05H,19H,1EH,2EH,4BH实验 9 系统功能调用(大小写转换)实验目的:1、掌握 DOS 调用的输入输出功能2、掌握分支程序设计的方法实验内容:1、 每次从屏幕输入一个大写字母,并将其转换为相应的小写字母输

16、出显示到屏幕上,然后继续输入下一个字母;2、 此转换一直进行到输入“#”号为止;3、 若输入过程中输入了除大写字母和“#”以外的其他字符,则在屏幕上给出错误提示信息:“ERROR!”,并继续进行下一个大写字母的输入。实验源程序:DATA SEGMENTERR DB ERROR,0DH,0AH,$DATA ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK,CS:CODESTART: MOV AX, DATAMOV DS, AXIPT: MOV AH, 1 ;键盘输入大写字母INT 2

17、1HCMP AL, #JE ENJNE OPTOPT: CMP AL, A ;转换为小写字母并输出JB ERRORCMP AL, ZJA ERRORADD AL, 20HMOV AH, 2MOV DL, ALINT 21HJMP IPTERROR: MOV DX, OFFSET ERR ;输出 ERROR 并换行MOV AH, 9INT 21HJMP IPTEN: MOV AH, 4CHINT 21HCODE ENDSEND START六、 编程,测试,记录程序运行结果。实验 10 阶乘(递归运算)一 实验目的:设计型实验的完成过程。二 实验要求:利用汇编编写阶乘的算法。键盘输入数据,屏幕显示

18、结果。程序最小可算到6 的阶乘。发挥过程中,应注意计算结果的数值范围和计算时间。三、 编程,测试,记录程序运行结果。实验 11 ProteusIO 工程文件的建立一、 实验要求运行 Labcenter ElectronicsProteus 7 ProfessionalSAMPLESVSM for 8086 工程文件创建 proteus 工程文件工程 1:绘制按键和发光二极管,要求仿真状态下,按键能控制二极管的亮灭。工程 2:绘制原理图二、 实验目的1 参考 proteus 仿真调试使用手册.doc2 熟悉 proteus 实验环境三、 实验电路及连线工程 1:工程 2:四、 实验说明工程 1:

19、工程的创建,存盘,器件的寻找,器件的连接,电路仿真。工程 2:器件的寻找,总线方式的连接,仿真程序的加载 。五、实验程序流程图六、 绘制原理图,编写测试程序,加载、运行和记录结果。实验 12 IO 口读写实验 (245、373)一、 实验要求使用 74HC245,74HC373,利用 3 总线扩展 I/O 口完成外部 8 路开关状态的检测和 8 路指示灯亮灭的控制。二、 实验目的1、了解 CPU 常用的端口连接总线的方法。2、掌握 74HC245、74HC373 进行数据读入与输出。三、 实验电路及连线Proteus 参考实验电路四、 实验说明一般情况下,CPU 的总线会挂有很多器件,为了防止

20、异常,CPU 的总线总线上 同一时间只允许接入一个设备。这些设备需要分时(工作时)接入,要使用一些总线隔离器件,例如 74HC245、74HC373。其中 74HC245 是三态总线收发器,本实验用它做输入设备,读入开关状态。74HC373 是数据锁存芯片,作为系统的输出设备,通过它作数据的锁住输出。两个设备的端口地址依据原理图自行计算。五、实验程序流程图六、 实验步骤1. Proteus 环境下绘制原理图2. emu8086 环境下编写和编译程序。创建文件类型:.exe参考代码如下:OUT373 EQU 0E000HIN245 EQU 0F000HMM1: MOV DX,I N245IN A

21、L, DXMOV DX, OUT373OUT DX, ALJMP MM1六、 绘制原理图,编写测试程序,加载、运行和记录结果。实验 13 8255 接口实验一、 实验要求1 利用 8255 可编程并行口芯片,实现输入、输出实验,实验中用 8255PA 口作读取开关状态输入,8255PB 口作控制 7 段数码管输出2 再此基础上利用 PC 口再外接一个 7 段数码管,重新定义四个按键功能:分两组,每组两个按键对应一个数码管一个按键增 1 计数,一个按键减 1 计数数值在数码管显示计数范围:0 - 9二、 实验目的1、了解 8255 芯片结构及编程方法。2、了解 8255 输入、输出实验方法。三、

22、 实验电路及连线1、Proteus 实验电路四、 实验说明8255 端口地址依据原理图自行计算。五、实验程序流程图六、 实验步骤1. Proteus 环境下绘制原理图2. emu8086 环境下编写和编译程序。创建文件类型:.exe参考代码如下:CT8255SET EQU 86H PORTA EQU 80H PORTB EQU 82HPORTC EQU 84HCTAIBO EQU 10010000B ;A IN, B OUT MOV DX, CT8255SET ;pc to 8255 control byte; MOV AL, CTAIBO ;control byte addrOUT DX,

23、ALG1: MOV DX, ORTAIN AL, DX MOV BL, 0FFHSUB BL, AL MOV AL, BLMOV BX, OFFSET LEDXLATPUSH CXMOV CX, 40H DELAY: LOOP DELAYPOP CXMOV DX, PORTBOUT DX, ALJMP G1LED DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH,77H,7cH,39H,5eH,79H,71H;/共阴数码管段选码表,无小数点六、 绘制原理图,编写测试程序,加载、运行和记录结果。实验 14 声光报警一 实验目的设计一个基于 AT89c52 的温

24、度检测系统二 实验要求 要求: 采用单片机 AT89c52 作为控制核心,用软硬件相结合的设计方法实现温度的检测,并给出声光报警。具体思路是:用单总线数字温度传感器 DS18B20 将被测对象的温度信号转换为数字信号,直接向单片机传输数字信号,经单片机处理后,对于超过最大值或低于最小值的温度数据通过蜂鸣器进行报警。同时外接数据存储器 6264 完成监控数据的保留。 设计系统硬件原理图,并绘制 PCB 版图系统硬件电路设计原理图见图 1 所示实验截图实验总结这门课程是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,从而提高我们的实践能力。 回顾起此次实验课,至今我仍感慨颇多,的确,从理

25、论到实践,我深深体会到了“ 纸上得来终觉浅,绝知此事要躬行!”这句话的含义。感觉到自己在实际运用中的知识的匮乏,刚开始的一段时间里,对一些实验的编程感到无从下手,茫然不知所措,经过自己的努力和同学的帮助,以及老师的指导,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。在编程的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时编程计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说对单片机汇编语言掌握得不好,对各种器件不够熟悉,甚至陌生通过这次课程设计之后,一定把以前所学过的知识重新温故。“千里之行,始于足下”,这是一个短暂而又充实的实验课,我认为对我走向社会起到一个桥梁的作用,过渡的作用,是人生的一段重要的经历,也是一个重要步骤,对将来走上工作岗位也有着很大帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报