微机原理与接口技术软件实验报告

合集下载

微机原理及接口技术实验报告

微机原理及接口技术实验报告

《微机原理与接口技术》实验报告姓名:学号:班级:专业:电气工程及其自动化学院:电气与信息工程学院目录实验一数据传送 (2)实验二算术运算 (4)实验三代码转换 (6)实验四程序的基本结构 (9)1、分支程序 (9)2、循环程序 (13)3、子程序 (16)实验五中断实验(8259) (19)实验六并行接口实验(8255) (25)实验七定时器/计数器实验(8235) (31)实验八D/A接口实验 (36)实验九A/D接口实验 (40)实验十串行通信实验 (43)实验一数据传送一、实验目的1. 掌握与数据有关的不同寻址方式。

2. 继续熟悉实验操作软件的环境及使用方法。

二、实验设备PC微机一台、TD-PIT + 或TD-PIT ++ 实验系统一套。

三、实验内容本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。

四、实验步骤(1) 运行Tdpit 集成操作软件,编写实验程序。

(2) 编译连接无误后,进入调试环境,进行程序的调试。

按F8 键单步运行程序,执行完MOV DS,AX 语句后,观察DS 寄存器中出现的段地址。

如图1-1所示可以看出DS数据段中MSR源数据串"HELLO,WORLD!$"。

图1-1 进入调试环境(3)继续单步运行程序,执行MOV ES,AX 语句后,可以看数据段出现的段地址,用同样的方法可以查看ES:0000 的数据。

数据传输还没开始进行,此时ES 段的数据为空,如图1-1所示。

继续单步运行程序如图1-2可以看出数据正在逐渐的进入ES段中。

图1-2 DS源数据段数据(4)直到数据传输完毕,可以看到ES 数据段中目的数据串MSD 已经被写入了数据串"HELLO,WORLD!$"。

如图1-3所示。

图1-3 根据ES值查看附加段的数据实验二算术运算一、实验目的1. 掌握运算类指令编程及调试方法。

2. 掌握运算类指令对各状态标志位的影响及测试方法。

微机原理与接口技术软件实验报告

微机原理与接口技术软件实验报告

第一篇软件实验实验一存储器块操作实验一、实验目的1. 熟悉KEIL集成调试环境和汇编程序的调试方法。

2. 掌握存储器读写方法;3. 了解内存块的移动方法;二、实验说明实验1 指定某存储器的其实地址和长度,要求能将其内容赋值。

通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。

块移动是单片机常用操作之一,多用于大量的数据复制和图像操作。

例程2给出起始地址,用地址加1方法移动块,将指定源地址和长度的存储块移到指定目标为起始地址的单元中去。

移动3000H起始的256个字节到4000H起始的256个字节。

三、实验内容1. 试编程将片内RAM中的数据依次复制到片外RAM。

假设源数据区的首地址为40H,目的数据区的首地址为1000H,数据块长度为10H。

流程图:程序:运行结果:Memory显示,片内RAM中40H开始数据为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明测试数据已经成功输入片内RAM。

从片外RAM中1000H位置开始记录为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明片内RAM从40H开始的数据已经成功复制到片外从1000H开始的地址。

2. 两个16位无符号二进制数分别存放在片外RAM首址为2000H和2002H单元内,将它们相加,结果存入RAM 30H(低8位)、31H(高8位)。

程序(以0506H+CDEFH为例):0506H和CDEFH已存入片外单元,运算结果D2F5已存入30H和31H中。

四、思考题1. 如何将存储块的内容置成某固定值(例全填充为0FFH)?请用户修改程序,完成此操作。

答:将源程序中的MOV A, #01H 改为MOV A,#0FFH即可。

2. 若源块地址和目标地址有重叠,该如何避免?答:先执行一次数据转移操作将源块地址中的数据先暂存入一块地址与目标地址和源块地址均不重叠的存储区,再执行一次数据转移操作将暂存区的数据移入目标地址区域。

微机原理与接口技术实验报告一

微机原理与接口技术实验报告一

微机原理与接口技术实验报告(一)实验内容一:1、实验目的: 考察对内存寻址方式、8086指令的理解内存中的数据排列如上表所示,各寄存器内容如下DS=2100H ES=2111H SS=2000H BX=106H CX=3H SI=106H DI=12H BP=1100H SP=1100HFR=3402H (FR 标志寄存器,FR 中的DF -字符串操作方向位为1)在执行下列指令后,写出寄存器AX中的内容 0) pop ax; AX= 1) mov ax,bx; AX= 2) mov ax,[bx];AX= 3) mov ax,102H;AX= 4) mov ax,[102H];AX= 5) mov ax,6[SI];AX= 6) lea ax,6[BX][DI];AX= 7) mov ax,[BP+DI];AX= 8) rep lodsw;AX= , 还需写出SI=2、实验内容: (1)开始菜单下选择运行,输入cmd 回车,在开启的窗口中输入debug 后回车,进入程序输入环境(2)利用r 指令显示当前各寄存器储值并按照上文中的寄存器值进行修改 结果如下:物理地址 内容(字节) 物理地址 内容(字节)21100H BEH 21110H 99H 21101H 02H 21111H 00H 21102H 01H 21112H E8H 21103H 8BH 21113H 7EH 21104H 44H 21114H E0H 21105H 02H 21115H 74H 21106H 29H 21116H 06H 21107H 44H 21117H E8H 21108H 04H 21118H 17H 21109H 9CH 21119H 01H 2110AH 50H 2111AH ACH 2110BH E6H 2111BH EBH 2110CH 99H 2111CH 34H 2110DH C6H 2111DH 00H 2110EH 06H 2111EH 30H 2110FHE8H2111FH0BH(3)d指令查看21100H——2111FH内存单元的内容(4)e指令对该段内存单元进行赋值(5)a指令按顺序输入要求中列出的指令(6)u指令进行反汇编(7)t指令(跟踪命令)逐条运行指令,观察记录指令运行结果3、实验结果0) pop ax; AX=02be1) mov ax,bx; AX=01062) mov ax,[bx];AX=44293) mov ax,102H;AX=01024) mov ax,[102H];AX=8b015) mov ax,6[SI];AX=c6996) lea ax,6[BX][DI];AX=011e7) mov ax,[BP+DI];AX=7ee88) rep lodsw;AX=4429, SI=0108实验内容二:1、实验目的:熟悉masm for windows 软件的应用,体会汇编程序的编写、编译、执行及调试等各个环节。

微机原理与接口技术实验报告

微机原理与接口技术实验报告

微机原理与接口技术实验报告引言微机原理与接口技术是计算机科学与技术专业的一门重要课程,通过实验的方式来深入理解微机原理和接口技术的原理和应用。

本实验报告将详细介绍我们在实验中所学到的内容和实验结果。

一、实验目的微机原理与接口技术实验的主要目的是让学生通过实验来了解和掌握微机系统的结构与工作原理,以及接口技术的基本原理和应用。

通过实验,我们可以加深对微机原理和接口技术的理解,并能够熟练操作相应的实验设备和软件。

二、实验内容本次实验主要包括以下几个方面的内容:1. 微机系统的组成与原理:了解微机系统的基本组成部分,包括微处理器、存储器、输入输出设备等,并学习它们的工作原理和相互之间的联系。

2. 微机系统的调试与测试:学习使用调试工具和测试设备来验证微机系统的正确性和稳定性,通过调试和测试来发现和排除系统中的问题。

3. 接口技术的原理与应用:了解各种接口技术的原理和应用,包括并行接口、串行接口、USB接口等,学会设计和实现简单的接口电路。

4. 接口电路的设计与调试:通过实际设计和调试接口电路,加深对接口技术原理的理解,并能够解决实际问题。

三、实验过程及结果在实验中,我们首先学习了微机系统的基本结构和工作原理,并通过实际操作,搭建了一个简单的微机系统。

通过调试和测试,我们验证了系统的正确性和稳定性。

接着,我们学习了各种接口技术的原理和应用。

我们以并行接口为例,设计了一个简单的并行接口电路,并通过实验验证了其正确性。

同时,我们还学习了串行接口和USB接口的原理,并了解了它们在实际应用中的重要性。

在接口电路的设计和调试过程中,我们遇到了一些问题,例如信号传输的稳定性、接口电路的兼容性等。

通过分析和调试,我们逐步解决了这些问题,并取得了令人满意的实验结果。

四、实验总结通过本次实验,我们深入了解了微机原理和接口技术的基本原理和应用。

通过实际操作和调试,我们不仅掌握了微机系统的组成和工作原理,还学会了设计和实现简单的接口电路。

微机原理与接口技实验报告

微机原理与接口技实验报告

微机原理与接口技术实验报告学院: 核技术与自动化工程学院专业: 电气工程及其自动化班级: XXXXXX学号: XXXXX姓名: XXX指导老师: XXX完成时间: 2012、11、14实验一 EMU8086软件的使用一、实验目的1、了解EMU 8086软件的基本使用步骤和各个工作区的功能,在能力方面主要是学以致用,将理论知识运用于实际的设计,从设计的完整和缺陷中找到新的突破口,以便温故而知新,从而提升自己的实际操作技能,能够通过自我想象与思考做出很多有价值的设计。

2、在系统的学习了微机原理与接口技术后,主要针对8086,利用emu8086软件设计一些程序,熟悉了解此款软件的运行过程中各个步骤寄存器内容及地址的变化。

3、在理论方面,基础软件实验部分共有六个实验组成,通过对这些实验程序的编写、调试,使学生熟悉8086/8088的指令系统等,了解程序设计过程,掌握汇编程序设计方法以及如何使用实验系统提供的各种调试、分析手段来排除程序错误。

二、实验仪器及设备PC设备、EMU8086软件平台、EMU8086软件仿真平台三、实验内容双击EMU8086图标,打开程序。

此时会弹出welcome窗口,见图1.1所示,可将该窗口关闭直接进入编辑状态;也可点击它的new按钮,则会弹出代码模板选择框供用户选择(可选择EXE模板),见图1.2所示,一般点击Cancel按钮,直接进入编辑状态。

在编辑窗口,可直接将源程序输入,见图1.3所示。

图1.1 welcome窗口图1.2 模板选择图1.3编辑窗口输入源程序点击compile(编译)按钮则进行汇编和链接,生成.EXE文件,并提示存盘。

点击emulate(仿真)按钮则可进入8086仿真器界面,见图1.4所示。

界面中提供了寄存器窗口、内存单元窗口及反汇编窗口,下方一行按钮则提供了虚拟屏幕、源代码观察、复位、辅助工具、变量、DEBUG、堆栈及FLAGS(标志寄存器)观察等功能。

微机原理与接口技术实验报告

微机原理与接口技术实验报告

微机原理与接口技术实验报告实验目的:本次实验旨在熟悉并掌握微机原理与接口技术的相关知识,通过实例操作和分析实验数据,加深对微机原理与接口技术的理解。

一、实验器材与软件1. 硬件器材:计算机主机、外设设备2. 软件工具:操作系统、编程软件二、实验步骤及结果分析1. 实验1:计算机开机自检在实验中,通过开机启动计算机,观察计算机进行自检的过程。

根据显示屏上的自检信息,可以判断计算机硬件的工作状态。

2. 实验2:串口通信测试在本实验中,通过串口通信实现计算机与外设设备之间的数据传输。

首先,将串口接口连接到计算机主机,然后进行相应的设置,包括波特率、数据位、停止位和校验位等。

在实验中,通过编写相应的程序,实现计算机与外设设备之间的数据交互。

通过观察实验结果,判断串口通信是否正常。

3. 实验3:并口通信测试本实验旨在通过并行口通信实现计算机与外设设备之间的数据传输。

首先,将并行口接口连接到计算机主机。

然后,根据实验要求进行相应的设置,包括数据总线的宽度、传输模式等。

通过编写程序,实现计算机与外设设备之间的数据交互。

观察实验结果,判断并口通信是否正常。

4. 实验4:USB接口测试在本实验中,通过USB接口实现计算机与外设设备之间的数据传输。

首先,将USB接口连接到计算机主机。

然后,在计算机中安装相应的驱动程序。

通过编写程序,实现计算机与外设设备之间的数据交互。

观察实验结果,判断USB接口是否正常工作。

5. 实验5:网络接口测试本实验旨在通过网络接口实现计算机之间的数据传输。

首先,将计算机连接到局域网中的其他计算机。

然后,进行相应的设置,包括IP地址、子网掩码等。

通过编写程序,实现计算机之间的数据交互。

观察实验结果,判断网络接口是否正常工作。

三、实验总结通过本次实验,我对微机原理与接口技术有了更深入的了解,掌握了串口、并口、USB接口和网络接口等常用接口的使用方法。

通过实验的操作和分析,我对接口通信的原理和实现方式有了更详细的了解,对计算机与外设设备之间的数据传输有了更清楚的认识。

微机原理与接口技术实验报告_5

微机原理与接口技术实验报告_5

实验二初级程序的编写与调试实验一、实验目的1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序.2、深入了解数据在存储器中的存取方法,及堆栈中数据的压入与弹出.3、掌握各种寻址方法以及简单指令的执行过程.二、实验内容1.设堆栈指针SP=2000H,AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换.请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试.程序:MOV AX,3000MOV BX,5000MOV SP,2000PUSH AXPUSH BXPOP AXPOP BXHLT2.设DS=当前段地址,BX=0300H,SI=0002H请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入OAH,OBH,OCH,ODH,OEH.在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?-E 300 0A,0B,0C,0D,0E-AMOV BX,0300MOV SI,0002MOV AX,BXMOV AX,0304MOV AX,[0304]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI] HLT3.设AX=0002H,编一个程序段将AX的内容乘10,要求用移位的方法完成. 程序:MOV AX,0002MOV BX,AXMOV CL,2SHL AX,CLADD AX,BXMOV CL,1SHL AX,CLHLT实验四加法及判断程序的编写与调试一、实验目的1.熟练掌握编写汇编语言源程序的基本方法和基本框架.2.学会编写顺序结构,分支结构和循环结构的汇编程序3.掌握程序中数据的产生与输入输出的方法.二、实验内容1.用汇编语言编写一个加法程序:1325+9839请用ASCII码的形式将加数与被加数存放在数据区DATA1和DATA2中,并将相加结果显示输出.程序:DATA SEGMENTDATA1 DB '5','2','3','1'DATA2 DB '9','3','8','9'DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 200 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SI,DATA1LEA DI,DATA2MOV CX,4MOV AH,0 NEXT:MOV AL,[SI]ADC AL,[DI]ADC AL,AHMOV AH,0AAAADD AL,30HMOV [DI],ALINC DIINC SILOOP NEXTMOV CX,5ADD AH,30HMOV [DI],AH NEXT1:MOV DL,[DI]MOV AH,02INT 21HDEC DILOOP NEXT1MOV AH,4CHINT 21H CODE ENDSEND START2.假设有一组数据:5,-4,0,3,100,-51,请编写一程序,判断:每个数是否大于0?等于0?还是小于0?并输出其判断结果,即即:1当X>0Y=0当X=0-1 当X<0程序:DATA SEGMENTDATA1 DB 5, -4, 0 ,3,100,-51STRING1 DB'Y=1','$'STRING2 DB'Y=0','$'STRING3 DB'Y=-1','$'DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 200 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SI,DATA1MOV CX,6NEXT: MOV AL,[SI]CMP AL,0JZ NEXT1JNS NEXT2JS NEXT3NEXT1: MOV DX,OFFSET STRING2MOV AH,09HINT 21HJMP NEXT4NEXT2: MOV DX,OFFSET STRING1MOV AH,09HINT 21HJMP NEXT4NEXT3: MOV DX,OFFSET STRING3MOV AH,09HINT 21HNEXT4: INC SILOOP NEXTMOV AH,4CHINT 21HCODE ENDSEND START实验五大小写字母互换程序的编写与调试一、实验目的进一步熟悉汇编语言源程序的编写方法及宏汇编程序的使用方法二、实验内容设内存数据区有大小写混合英文ASCII码字母: ‘AbCdEfGChinaAgriculturalUniversity’。

微机原理与接口技术实验报告二

微机原理与接口技术实验报告二

微机原理与接口技术实验报告(二)1、实验内容一:实验目的:(1) 阅读《实验操作.ppt》, 学习汇编工具的使用(2) 学习附录的程序代码, 理解并输入、编译和查错3) 学习利用编译错误信息进行附录的程序修改;(程序包含一个语法错误和一个逻辑错误)4)学习程序流程控制: (条件跳转指令ja jb (call指令, 观察程序执行时堆栈的变化(学会用debug –g命令设置断点);5 )学习程序中有限的寄存器的使用。

2.实验内容:(1)打开masm for windows软件, 在其中输入实验要求附给的程序, 保存后运行, 程序报错:(2)经分析发现, “noneeded”没有定义, 改为“notneeded”后正常运行(3)运行过程中发现当字母或数字个数达到两位数时, 统计结果的各位与十位对调了。

如下图, 字母数应为13, 但显示为31(4)经检查, 发现第80行程序有误, inc指令应改为dec指令。

运行后程序正常, 调试完毕。

如下图程序框图如下:实验内容二:1.实验目的及内容:编写完整程序, 实现功能:统计以下字符串STR中空格的数目, 结果保存在COUNT中, 并把个数在屏幕上显示出来。

STR DB ' AB CDE FG H I J K L MNOPQ RST UV W XYZ 12 34 56 78 9'L EQU $-STRCOUNT DB ?(字符串STR可以从这里直接拷贝到程序中)实验结果:程序如下:dispmsg macro messgemov ah,9lea dx,messgeint 21hendmDATA segmenttishi db 0dh,0ah,'the original string is:' string db ' AB CDE FG H I J K L MNOPQ RST UV W XYZ 12 34 56 78 9' STRINGLEN= $-stringnewline db 0dh,0ahNspace db 0dH,0aH,'Number of char space is:',?,?Nsp db ?,'$'DATA endsSTACK segment stack 'stack'sta db 100 dup(?)stack endsCODE segmentASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,seg DATAMOV DS,AXxor cx,cxxor dl,dlmov cl,stringlenlea bx,stringcnt:mov al,[bx]cmp al,' 'jz yesspinc blloop cnt jmp shijinzhiyessp:inc dlinc blloop cntjmp shijinzhishijinzhi:lea bx,Nspmov ah,02hint 21hcall char2asc dispmsg tishiMOV AH,4CHINT 21Hchar2asc procmov dl,10 next: xor ah,ahdiv dladd ah,'0'mov [bx],ahdec bxor al,aljnz nextretchar2asc endpcode endsend startEND START运行结果如下:程序流程图如下:实验中遇到的问题及解决方法:1.汇编语言中寄存器有限, 在使用时注意是否保存寄存器中原有的值, 防止在使用寄存器时将原值改变。

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

第一篇软件实验实验一存储器块操作实验一、实验目的1. 熟悉KEIL集成调试环境和汇编程序的调试方法。

2. 掌握存储器读写方法;3. 了解内存块的移动方法;二、实验说明实验1 指定某存储器的其实地址和长度,要求能将其内容赋值。

通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。

块移动是单片机常用操作之一,多用于大量的数据复制和图像操作。

例程2给出起始地址,用地址加1方法移动块,将指定源地址和长度的存储块移到指定目标为起始地址的单元中去。

移动3000H起始的256个字节到4000H起始的256个字节。

三、实验内容1. 试编程将片内RAM中的数据依次复制到片外RAM。

假设源数据区的首地址为40H,目的数据区的首地址为1000H,数据块长度为10H。

流程图:程序:运行结果:Memory显示,片内RAM中40H开始数据为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明测试数据已经成功输入片内RAM。

从片外RAM中1000H位置开始记录为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明片内RAM从40H开始的数据已经成功复制到片外从1000H开始的地址。

2. 两个16位无符号二进制数分别存放在片外RAM首址为2000H和2002H单元内,将它们相加,结果存入RAM 30H(低8位)、31H(高8位)。

程序(以0506H+CDEFH为例):0506H和CDEFH已存入片外单元,运算结果D2F5已存入30H和31H中。

四、思考题1. 如何将存储块的内容置成某固定值(例全填充为0FFH)?请用户修改程序,完成此操作。

答:将源程序中的MOV A, #01H 改为MOV A,#0FFH即可。

2. 若源块地址和目标地址有重叠,该如何避免?答:先执行一次数据转移操作将源块地址中的数据先暂存入一块地址与目标地址和源块地址均不重叠的存储区,再执行一次数据转移操作将暂存区的数据移入目标地址区域。

五、心得体会本次实验我学会了数据块的移动和赋值。

片内数据的移动和计算比较简便,涉及到片外数据的计算时要增加移动到片内的步骤。

当数据需要进行保护时可以设定数据暂存区。

本实验微机原理的第一个实验,刚开始编程时有一点困难。

我体会到了汇编语言的特点。

与其他语言相比,它不仅要求良好的逻辑能力,而且要求编程者有较好的硬件知识。

比如本次实验中,一开始我的编译一直报错,原来是将MOVX A,@DPTR指令错写成了MOV A,@DPTR。

MOV指令用于内部RAM数据传送,而MOV用于外部数据传送。

我体会到只有充分了解单片机的硬件结构,才能使用正确的指令,让编程正确无误的进行。

这也是我今后要加强学习的重点。

实验二数值转换实验一、实验目的1、熟悉Keil集成调试环境和汇编程序的调试方法。

2、掌握简单的数值转换算法。

3、基本了解数值的各种表达方法。

4、掌握数值的加减法运算。

5、掌握用查表的方法将BCD值转换成ASCII值。

二、实验说明单片机系统内部运算用二进制,而输入输出常用十进制,以符合日常习惯,因此数制转换是仪表设计中常用的程序之一。

单片机中的数值有各种表达方式,这是单片机的基础。

掌握各种数制之间的转换是一种基本功。

三、实验内容1. 把R3中的8位二进制数转换成压缩BCD 码,存放在45R R中。

流程图:程序:从寄存器中R4、R5的记录可以知道,输入的源数据123被分解成01H和23H 分别储存在R4、R5,程序运行成功。

2. 设4位BCD码abcd依次存放在内部RAM中50H~53H单元的低4位,(高4位为0)。

试编程将其转换为二进制数并存入R6R7中。

方法思路:1)计算1000a,高位存入30H,低位存入31H2)计算100c,高位存入32H,低位存入33H3)计算10b,结果存入52H4)计算1000a+100c,高位存入R0,低位存入R15)计算10b+d,结果存入R2运行结果:可知运行结果是2694H,与9876BCD转化成二进制码的结果一致,所以程序正确。

四、思考题BCD码转换成二进制的算法是什么?例如:(91)BCD对应的二进制数是多少?答:对于一个8位BCD码,高四位*10+低四位即为二进制。

如(91)BCD=1001B*1010B+0001B=01011011B 五、心得体会经过本实验,我对BCD码和二进制、十进制码之间的相互关系进行了更深一步的了解,学会了单片机这几种数制之间的相互转化。

我深刻体会到,在运算中要注意单片机中数字溢出的问题。

如在实验2中,计算1000*a,不能直接使用语句MOV A,#1000语句,因为无符号8位二进制数的表示范围只有0~255。

所以将1000拆成100*10,与a相乘两次。

至于先乘100还是10,考虑到BCD码,a的最大值是9,与10相乘不会产生进位,比较方便第二次与100相乘时的程序书写。

如果与100相乘可能会出现结果大于255,程序编写比较复杂。

以上思考分析过程需要对各种数制的特点非常了解,这也是一名工程人员的基本要求。

实验三程序跳转表实验一、实验目的1、熟悉KEIL集成调试环境和汇编程序的方法。

2、了解简单的函数计算。

3、掌握多分支结构程序的编程方法。

二、实验说明多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号指向相应的功能,完成指定操作。

若给出调用号来调用子程序,一般用查表法,查到子程序的地址,转到相应子程序。

三、实验内容流程图如下:运行结果:(1)当x=44时,y=88=58H(2)当x=0时,y=0(3)当x=-127时,计算机内部以补码表示,(-127)补码=81H。

y=-63,输出以原码表示,(-63)=BFH四、思考题1. 写跳转程序时要注意些什么?1)给每个子程序赋一个名字,实际是一个入口地址的代号。

2)要能正确地传递参数。

即首先要有入口条件,用来说明进入子程序时,它所要处理的数据如何得到(比如,是把它放在ACC中,还是放在某工作寄存器中等)。

另外,要有出口条件,即处理的结果是如何存放的。

3)注意保护现场和恢复现场。

在执行子程序时,可能要使用累加器或某些工作寄存器。

而调用子程序之前,这些寄存器中可能存放有主程序的中间结果,这些中间结果是不允许破坏的。

因此,在子程序使用累加器和这些工作寄存器之前,需要将其中的内容保存起来,即保护现场。

当子程序执行完,即将返回主程序之前,再将这些内容取出,送回累加器或原来的工作寄存器,这一过程成为“保护现场”。

4)为了使子程序具有一定的通用性,子程序中的操作对象应尽量采用地址或寄存器形式而不用立即数形式。

另外,子程序中如含有转移指令,应尽量采用相对转移指令;以便它不管存放在内存的哪个区域都能正确执行。

2. 跳转的作用有哪些?1)是程序简化,增加可读性和修改性2)减少一些重复程序的编写,节约内存。

实验四数据排序实验一、实验目的1、熟悉KEIL集成调试环境和汇编程序的调试方法。

2、掌握排序程序的设计方法。

二、实验说明本例程采用交换排序法将内部RAM中的50~59H单元中的10个单字节无符号二进制按从小到大的次序排列,并将这一列排序后的数据从小到大依次存储在外部RAM1000H的开始处。

原始数据情况:第一次排序结果:第二次排序结果:第三次排序结果第四次排序结果第五次排序结果:第六次排序结果:第七次排序结果:第八次排序结果:第九次排序结果:外部RAM1000H处开始的数据情况:四、实验任务画出本实验程序的流程图。

答:见本实验的最后一页。

五、心得体会本实验是一个冒泡法的数据排序程序。

主要思想是从a[0]开始,依次与后面的元素比较,若a[0]>a[i],则交换它们,一直比较到a[n]。

小的数字就像气泡一样往前冒。

程序循环多的时候,使用子程序就很方便。

不仅增加了程序的可读性,而且也节省了内存的空间。

当程序比较复杂,调试程序时,可以在程序中设置相应的断点。

Keil软件设置断点的方式十分简单,只要在单击相关语句即可,因此是一种简单高校的调试方法。

实验五键盘显示仿真实验一、实验目的1、熟悉Keil集成调试环境和汇编程序的调试方法。

2、学习使用外围接口工具调试程序。

3、熟悉键盘显示接口电路及程序设计。

二、实验要求三、实验内容根据键盘、LED仿真板,设计一个走马灯程序通过按键启停。

主程序是一个循环点灯程序,其流程图如下所示。

按键启停功能由外部中断口p3.2完成。

触发方式为低电平触发。

当按键按下时,将一个0信号送入P1口,于是灯灭。

中断处理程序的流程图如下:当无键按下时,8盏灯向左循环点亮,中断寄存器状态全为0.当按下P3.2口,可见外部中断0相关寄存器状态置1,同时灯全灭。

所以用按键控制灯的亮灭的走马灯设计成功。

相关文档
最新文档