计算机原理与接口技术实验.docx
- 文档编号:8606651
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:12
- 大小:48.23KB
计算机原理与接口技术实验.docx
《计算机原理与接口技术实验.docx》由会员分享,可在线阅读,更多相关《计算机原理与接口技术实验.docx(12页珍藏版)》请在冰豆网上搜索。
计算机原理与接口技术实验
计算机原理与接口技术实验
实验一 传送指令编程调试
一.实验目的
1.掌握指令系统传送指令的汇编语言程序设计和调试方法;
2.熟悉运用MCS-51软件在线仿真调试设计的程序的方法。
二.实验设备
EL-Ⅱ型实验箱,8051CPU板
三.实验内容
1.编写多字节数据的传送程序,把内部RAM的30H--37H单元置为10H-17H,然后传送到外部的RAM的4200H--4207H单元;再将4200H--4207H单元逐一求反后送到内部RAM的30H--37H单元。
2.程序结构采用循环结构,程序用R0作内部RAM指针,用DPTR作外部RAM指针,R7作为计数初值N,本实验N=8。
1.在xp窗口中启动MCS51应用软件,用MCS-51汇编软件对输入程序、进行汇编,产生目标代码文件,调试。
程序输入、汇编和调试的具体步骤
1)xp窗口中建一个名字是由3~5个英文字母组合的文件夹。
2)在MCS51集成开发环境的主菜单中选择新建文件分支命令M51后,按实验系统复位键RST后,实验系统部分显示‘C’,计算机屏幕显示为可编辑状态,既可进行源程序的输入。
3)程序输入结束,必须通过主菜单中文件分支的保存命令将其保存在WIN98窗口中新建的文件夹中,注意:
文件名也必须是由3~5个英文字母组合,后缀为.asm。
4)点击主菜单中编译分支的汇编命令对输入的程序进行汇编,在窗口的左下方显示编译结果。
通过观察其内容可以了解程序的指令运用和输入的正确与否。
当编译正确时,软件将自动将生成的目标文件下载到EL-Ⅱ型实验箱的RAM中,可以进入下一个内容——调试的操作。
否则必须将程序中的错误修改正确,再经过存盘和编译的过程,方可以做调试的工作。
当编辑结果有错误时,首先将51窗口最小化,在WIN98窗口中新建的文件夹中找到*.lst打开查看编译结果,然后必须关闭该显示文件,再回到51窗口中做修改、存盘和编译工作工作。
调试程序的步骤
(1)点击主菜单调试中的启动调试命令。
(2)打开主菜单查看命令的寄存器窗口、内部数据存储器窗口和外部数据存储器窗口(通过它们可以查看程序的执行情况。
)
注意:
寄存器窗口的的内容是EL-Ⅱ型实验箱复位后的初态,内部数据存储器窗口和外部数据存储器窗口地址和内容可修改。
地址的改写方法:
(3)点击主菜单调试中的调试命令,对程序进行调试。
4.参考程序
CSEGAT0000H
LJMP4000H;转入程序
CSEGAT4000H;内部RAM传送到外部RAM
START:
MOVR0,#30H;指向低字节
MOVDPTR,#4200H
MOVR7,#08H
LOOP:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,LOOP;外部RAM逐一求反传送到内部RAM
MOVR0,#38H
MOVDPTR,#4200H
MOVR7,#08H
LOOP1:
MOVXA,@DPTR
CPLA;求反
MOV@R0,A
INCR0
INCDPTR
DJNZR7,LOOP1
HERE:
AJMPHERE;程序结束
END
5.通过EL-Ⅱ型实验箱调试
(1)用单步执行,记下执行指令后表格中相应寄存器的数值:
执行指令
A
R0
DPTR(
R7
MOVR7,#08H
第一次循环
MOVX@DPTR,A
第二次循环
MOVX@DPTR,A
第三次循环
MOVX@DPTR,A
第四次循环
MOVX@DPTR,A
第五次循环
MOVX@DPTR,A
第六次循环
MOVX@DPTR,A
第七次循环
MOVX@DPTR,A
第八次循环
MOVX@DPTR,A
第一次循环
MOVA,@R0
第二次循环
MOVA,@R0
第三次循环
MOVA,@R0
第四次循环
MOVA,@R0
第五次循环
MOVA,@R0
第六次循环
MOVA,@R0
第七次循环
MOVA,@R0
第八次循环
MOVA,@R0
(2)同时观察相关存储器的变化情况,记录结果。
(3)运用执行到光标行命令,实现连续执行的操作。
四.实验报告
1.写出本程序调试过程和运行结果。
2.独立编程实现内部RAM的30H--37H单元的数据传送到内部RAM的38H—3FH单元中的功能并调试,运行。
3.如何修改程序,可把外部RAM的4100H—410FH单元中的数据传送到外部RAM的4110-411FH单元,调试,运行程序。
4.如何修改程序实现把外部ROM的4100H—410FH单元中的数据传送到内部RAM的30H-3FH单元中?
实验二 分支和循环程序的设计
一.实验目的
1.掌握MCS-51汇编语言程序设计;
2.进一步熟悉掌握程序设计和运用EL-Ⅱ型实验箱调试的方法;
二.实验设备
EL-Ⅱ型实验箱,8051CPU板
三.实验内容
1.编写三字节无符号加法程序,加数693B68H放在52H,51H,50H,被加数3AE409H放在42H,41H,40H,“和”放在42H,41H,40H。
2.程序结构采用主程序和子程序结构
主程序用R0,R1作指针,R7作为加法字节计数值N,本实验N=3;子程序完成一个字节的加法。
3.用文本编辑软件如EDIT编写源程序,用MCS51软件对程序进行汇编,产生目标代码文件并调试程序。
4.参考程序
主程序
源程序注释
CSEGAT0000H
LJMP4000H;转入程序
CSEGAT4000H
MAIN:
MOVR0,#40H;指向低字节
MOVR1,#50H
MOVR7,#03H
CLRC;清进位位
LOOP:
ACALLADDSUB;调用字节加法子程序
DJNZR7,LOOP
HERE:
AJMPHERE;程序结束
子程序
CSEGAT4100H
ADDSUB:
MOVA,@R0;取被加数
ADDCA,@R1;A和加数相加
MOV@R0,A;保存和
INCR0;指针加1
INCR1
RET;返回
END
5.用MCS51软件和EL-Ⅱ型实验箱仿真机联机调试
用单步执行或断点连续执行,记下执行指令后表格中相应寄存器的数值:
执行指令
A
R0
R1
R7
CLRC
第一次调用后
ACALLADDSUB
DJNZR7,LOOP
第二次调用后
ACALLADDSUB
DJNZR7,LOOP
第三次调用后
ACALLADDSUB
DJNZR7,LOOP
6.按上述方法题,编写程序并进行上机调试
四.实验报告
1.写出本程序调试过程和运行结果.
2.本程序题意修改为无符号十进制数相加,应增加DAA指令,加在程序的何位置?
修改后用BCD码135790和246801相加,调试过程并运行。
3.独立编写和调试程序。
(要求在《新编微机原理及接口技术》教材P196页的11~16题中任选3题)
实验三P1口实验一
一、实验目的:
1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二、实验设备:
EL-Ⅱ型实验箱,8051CPU板。
三、实验内容:
1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。
四、实验原理:
P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
可以用第二个实验做一下实验。
先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。
再来看一下延时程序的实现。
现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。
在系统时间允许的情况下可以采用后一种方法。
本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。
现要写一个延时0.1s的程序,可大致写出如下:
MOVR7,#X
(1)
DEL1:
MOVR6,#200
(2)
DEL2:
DJNZR6,DEL2(3)
DJNZR7,DEL1(4)
上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:
1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶
指令
(1)指令
(2)指令(3)指令(4)
所需时间所需时间所需时间所需时间
X=(0.1××10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH
经计算得X=127。
代入上式可知实际延时时间约为0.100215s,已经很精确了。
五、实验原理图:
P1口输出实验
六、实验步骤:
执行程序1时:
P1.0~P1.7接发光二极管L1~L8。
执行程序2时:
P1.0~P1.7接按纽开关K1~K8;74LS273的SO0~SO7接发光二极管L1~L8;74LS273的片选端CS273接CS0(由程序所选择的入口地址而定,与CSO~CS7相应的片选地址请查看第一部分系统资源,以后不赘述)。
实验四简单I/O口扩展实验
一、实验目的:
1.学习在单片机系统中扩展简单I/O口的方法。
2.学习数据输入,输出程序的编制方法。
二、实验设备:
EL-Ⅱ型实验箱,8051CPU板
三、实验原理:
MCS-51外部扩展空间很大,但数据总线口和控制信号线的负载能力是有限的。
若需要扩展的芯片较多,则MCS-51总线口的负载过重,74LS244是一个扩展输入口,同时也是一个单向驱动器,以减轻总线口的负担。
程序中加了一段延时程序,以减少总线口读写的频繁程度。
延时时间约为0.01秒,不会影响显示的稳定。
四、实验内容:
利用74LS244做为输入口,读取开关状态,并将此状态通过发光二极管显示出来。
五、实验原理图:
简单I/O实验2
六、实验步骤:
1.74LS244的SI0~SI7接开关的K1~K8,片选信号CS244接CS1。
2.74LS273的SO0~SO7接发光二极管的L1~L8,片选信号CS273接CS2。
3.编程、全速执行。
4.拨动开关K1~K8,观察发光二极管状态的变化。
实验五中断、定时器实验
———循环彩灯实验
一.实验目的:
1.学习8031内部计数器的使用和编程方法。
2.进一步掌握中断处理程序的编写方法。
二.实验设备:
EL-Ⅱ型实验箱,8051CPU板
三.实验原理:
1.定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。
本实验中时钟频率为6.0MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。
时间常数可按下述方法确定:
机器周期=12÷晶振频率=12/(6×10⁶)=2us
设计数初值为X,则(2e+16-X)×2×
=0.1,可求得X=15535
化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH
2.初始化程序
包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行
正确的设置,并将时间常数送入定时器中。
由于只有定时器中断,IP便不必设置。
3.设计中断服务程序和主程序
中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
四.实验题目
由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。
P1口的P1.0~P1.7分别接发光二极管的L1~L8。
要求编写程序模拟一循环彩灯。
彩灯变化花样可自行设计。
例程给出的变化花样为:
①L1、L2、…L8依次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。
各时序间隔为1秒。
让发光二极管按以上规律循环显示下去。
五.实验步骤:
用导线将P1.0~P1.7连接接发光二极管L1~L8即可。
ORG0000H
LJMPMAIN
ORG001BH
LJMPTCOS
ORG1000H
MAIN:
MOVTMOD,#10H
MOVTH1,#3CH
MOVTL1,#0B0H
SETBEA
SETBET1
MOVR7,#20
MOVA,#0FEH
MOVP1,A
SETBTR1
SJMP$
ORG1200H
TCOS:
DJNZR7,LOOP1
RLA
MOVP1,A
MOVR7,#20
LOOP1:
MOVTH1,#3CH
MOVTL1,#0B0H
RETI
END
实验六8255A可编程并行接口实验
一、实验目的:
1.了解8255A芯片的结构及编程方法。
2.掌握通过8255A并行口读取开关数据的方法。
二、实验设备:
EL-Ⅱ型实验箱,8051CPU板
三、实验原理:
设置好8255A各端口的工作模式。
实验中应当使三个端口都工作于方式0,并使A口为输出口,B口为输入口。
四、实验内容:
利用8255A可编程并行接口芯片,重复实验四的内容。
实验可用B通道作为开关量输入口,A通道作为显示输出口。
五、实验电路:
六、实验步骤:
8255A的PA0~PA7接发光二极管L1~L8;PB0~PB7接开关K1~K8;片选信号8255CS接CS0。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 原理 接口 技术 实验