华北电力大学接口实验报告.docx
《华北电力大学接口实验报告.docx》由会员分享,可在线阅读,更多相关《华北电力大学接口实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
华北电力大学接口实验报告
华北电力大学科技学院
实验报告
|
|
实验名称实验一开发器的使用与设计实验
实验二中断8259应用、
定时/计数器8253应用
实验三并行接口8255应用
实验四存储器拓展实验
实验五A/D转换结果送数码管显示
课程名称微机原理实验与课程设计
|
|
专业班级:
学生姓名:
学号:
成绩:
指导教师:
张少敏实验日期:
2013/5
实验一、数据转换实验
一、实验目的
1、初步掌握在PC机上建立、汇编、链接和运行8086/88汇编语言程序的过程。
2、通过对两个验证性实验的阅读、调试,掌握不同进制数及编码相互转换的程序设计方法。
3、完成程序设计题,加深对数码转换的理解,了解简单程序设计方法。
二、实验条件
一台计算机
三、实验内容与步骤
1)设二字节十六进制数存放于起始地址为3500H的内存单元中,把他们转换成ASCII码后,再分别存入起始地址为350AH的四个内存单元。
从书上ASCII码表中可知十六进制数加30H即可得到0H~9H的ASCII码,而要得到AH~FH的ASCII码,则需再加7H。
2)参考程序如下:
CODESEGMENT
ASSUMECS:
CODE
START:
MOVCX,0004h
MOVDI,3500H
MOVAX,0000H
MOVDS,AX
MOVDX,[DI]
A1:
MOVAX,DX
ANDAX,000FH
CMPAL,0AH
JBA2
ADDAL,07H
A2:
ADDAL,30H
MOV[DI+0AH],AL
INCDI
PUSHCX
MOVCL,04H
SHRDX,CL
POPCX
LOOPA1
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
四、实验结论与分析
错误分析:
在保存文件时,第一步忘了加后缀.ASM,导致打开不了文件。
实验结果:
在调试运行后350AH的内存单元中会显示3500H中所转换的对应的ASCII码。
五、实验心得
在这次课程设计的过程中的收获是很大的。
这次课程设计我主要是应用老师教的相关知识及自己的一些想法,完成了数据转换问题。
当然,这次实验,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在这方面有一个大的发展,我真的很高兴有这次的锻炼机会。
实验二、接收小写字母转换成大写字母并显示
一、实验目的
通过阅读并调试示例程序,完成程序设计题,掌握利用DOS中断的调用来实现人机对话的编程方法。
二、实验条件
一台计算机
三、实验内容与步骤
1)从键盘上接收一串小写字母存入内存单元,经过转换后在屏幕上显示其大写字母。
设计思路:
利用DOS中断的01号子功能接收键盘输入的一串字符串并存入内存单元,当接收到回车键时,将小写字母的ASCII码转换为大写字母的ASCII码,利用DOS功能的02号子功能将其显示在屏幕上。
2)参考程序如下:
DATASEGMENT
BUFDB200DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETBUF
MOVCL,00H
A1:
MOVAH,01H
INT21H
CMPAL,0DH
JZA2
SUBAL,20H
MOV[SI],AL
INCSI
INCCL
JMPA1
A2:
MOVDL,0AH
MOVAH,02H
INT21H
MOVDL,ODH
INT21H
MOVSI,OFFSETBUF
MOVCH,00H
A3:
MOVDL,[SI]
MOVAH,02H
INT21H
INCSI
LOOPA3
MOVAH,4CH
INT21H
CODESEGMENT
ENDSTART
四、实验结论与分析
实验结果:
找到当前文件所在的位置,打开.exe文件,输入小写字母,按回车键相应的会输出大写的字母
五、实验心得
在这次课程设计的过程中的收获是很大的。
这次课程设计我主要是应用老师教的相关知识及自己的一些想法,完成了接收小写字母转换成大写字母DOS调用问题。
主要掌握了01号和02号子功能。
当然,这次实验,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在这方面有一个大的发展,我真的很高兴有这次的锻炼机会。
实验三、中断8259应用
一、实验目的
1、通过阅读并调试示例程序,学习8088/86与8259A的连接与控制方法,掌握8259A中断控制器的工作原理。
2、完成程序设计题,学会编写中断服务程序。
二、实验条件
一台计算机,8259A可编程中断控制器,仿真软件
三、实验内容与步骤
1、实验原理
8259A是一种可编程中断控制器,与8088/86微机兼容,能处理8级向量优先权中断,亦可以通过级联构成64级向量优先权中断系统。
具有可编程控制中断方式,并能分别屏蔽各个中断请求。
通过4个初始化命令字(icw1~icw4)及3个操作命令字(ocw1~ocw3)使用8259A可编程程序中断控制器。
2、实验内容
用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。
要求程序对每次中断进行计数,并将计数结果用8255的PA口输出到LED显示。
3、参考流程图及程序
modeequ80h
pa8255equ8000h
pb8255equ8001h
ctl8255equ8003h
icw1equ00010011b
icw2equ00100000b
icw4equ01h
ocw1equ11111110b
cs8259aequ09000h
cs8259bequ09001h
datasegment
cntdb0
cndb0
dataends
codesegment
assumecs:
code,ds:
data
ienterprocnear
pushax
pushdx
movdx,pb8255
inccnt
cmpcnt,0ah
jnzP1
movcnt,0
inccn
moval,cn
outdx,al
P1:
movdx,cs8259a
moval,20h
outdx,al
popdx
popax
iret
ienterendp
initprocnear
movdx,cs8259a
moval,icw1
outdx,al
movdx,cs8259b
moval,icw2
outdx,al
moval,icw4
outdx,al
moval,ocw1
outdx,al
ret
initendp
startprocnear
movdx,ctl8255
moval,mode
outdx,al
cli
movax,0
movds,ax
movbx,4*icw2
movax,offsetienter
mov[bx],ax
movax,code
incbx
incbx
mov[bx],ax
callinit
movax,data
movds,ax
movcn,0
moval,cn
movdx,pb8255
outdx,al
sti
lp:
nop
jmplp
startendp
codeends
endstart
四、实验结论与分析
错误分析:
由于此次实验的连线较多,有几个临近的线连错了,导致显示的结果又问题。
实验结果:
通过按单脉冲,使之产生中断,然后再LED显示按下的次数就是中断的次数。
五、实验心得
在这次课程设计的过程中的收获是很大的。
这次课程设计我主要是应用老师教的相关知识及自己的一些想法,完成了中断8259应用。
当然,这次实验,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在这方面有一个大的发展,我真的很高兴有这次的锻炼机会。
实验四、定时/计数器8253应用
一、实验目的
通过阅读并调试示例程序,完成程序设计题,掌握8253的基本工作原理和编程方法,熟悉8253在系统中的典型接法。
二、实验条件
一台计算机,8253可编程定时/计数器
三、实验内容与步骤
1、实验原理
8253可编程定时/计数器是Intel公司生产的统一外围接口芯片它有3个独立的16位计数方式和操作方式都通过编程控制。
2、实验内容
利用8088/86外接8253可编程定时/计数器,可以实现对外部事件进行计数,且可以设置断点读回计数器的值。
本实验中计数器按方式0工作,即十六位二进制计数器。
当计数设置好后,计数器就开始计数。
如果要读入计数器的值,要先锁存计数值,才能读到计数值。
本实验所设计数值为五,也就是每5个外部脉冲,计数器值加1.同时out脚输出一个高电平。
实验时,可以将out0接到LED上,观察计数器是否工作。
3、流程图及参考程序
CONTROLEQU08003H
COUNT0EQU08000H
COUNT1EQU08001H
COUNT2EQU08002H
CODESEGMENT
ASSUMECS:
CODE
STARTPROCNEAR
MOVAL,30H
MOVDX,CONTROL
OUTDX,AL
MOVAL,5
MOVDX,COUNT0
OUTDX,AL
MOVAL,0
OUTDX,AL
AGAIN:
MOVAL,00000000B
MOVDX,CONTROL
OUTDX,AL
MOVDX,COUNT0
INAL,DX
MOVBL,AL
INAL,DX
MOVAH,AL
MOVAL,BL
JMPAGAIN
STARTENDP
CODEENDS
ENDSTART
四、实验结论与分析
错误分析:
由于计数是自己手动时按的太快,没有计到5就LED就显示了,后来经过重新仔细的数了一遍发现是正确的。
实验结果:
每按单脉冲5下,LED灯就会显示。
五、实验心得
在这次课程设计的过程中的收获是很大的。
这次课程设计我主要是应用老师教的相关知识及自己的一些想法,完成了定时/计数器8253应用问题。
经过老师的指导,才做到了心中有数,我在此很想感谢给予我耐心解答的老师,同学们勤恳塌实,始终热情高涨,我感谢这种氛围。
当然,这次实验,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在这方面有一个大的发展,我真的很高兴有这次的锻炼机会。
实验五、并行接口8255应用
一、实验目的
1、通过阅读并调试示例程序,掌握8255A可编程并行接口的工作原理;
2、完成程序设计题,学会并行接口电路的设计,及编写输入输出控制程序。
二、实验条件
一台计算机,8255A可编程控制芯片,LED灯的电路板
三、实验内容与步骤
1、实验原理
8255A是可编程的通用并行输入输出接口芯片,因通用性强,使用灵活,可直接与cpu总线相连,应用非常广泛。
8255A芯片内部有3个8位的输入输出端口,即A口、B口、C口。
从内部控制的角度来讲,可分为两组:
A组和B组。
A组控制模块管理A口和C口的高4位(pc7~PC4),B组控制模块管理B口和C口的低4位(pc3~pc0)。
2、实验内容
设计跑马灯程序设计,要求K0=0,从左向右跑马灯;K1=0时,从右向左跑马灯;K2=0时,从左从右向中间跑马灯,LED从pc口输出。
完成电路设计及程序的编制,进行调试并验证结果。
参考程序
MNSSDATASEGMENT
MODEEQU082H
PORTAEQU8000H
PORTBEQU8001H
PORTCEQU8002H
CADDREQU8003H
POSDB0FFH
NOWDATADB0FFH
LEFTDB0FFH
RIGHTDB0FFH
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,MODE
MOVDX,CADDR
OUTDX,AL
INPUT:
MOVDX,PORTB
INAL,DX
CMPAL,NOWDATA
JNZINITIAL
CMPAL,0FEH
JZK0
CMPAL,0FDH
JZK1
CMPAL,0FBH
JZK2
CMPAL,0F7H
JZK3
JMPINPUT
INITIAL:
MOVNOWDATA,AL
CMPAL,0FEH
JZINTIK0
CMPAL,0FDH
JZINTIK1
CMPAL,0FBH
JZINTIK2
CMPAL,0F7H
JZINTIK3
INTIK0:
MOVPOS,10000000B
JMPOUTPUT
INTIK1:
MOVPOS,00000001B
JMPOUTPUT
INTIK2:
MOVLEFT,10000000B
MOVRIGHT,00000001B
MOVAL,LEFT
ORAL,RIGHT
MOVPOS,AL
JMPOUTPUT
INTIK3:
MOVLEFT,00010000B
MOVRIGHT,00001000B
MOVAL,LEFT
ORAL,RIGHT
MOVPOS,AL
JMPOUTPUT
K0:
RORPOS,1
JMPOUTPUT
K1:
ROLPOS,1
JMPOUTPUT
K2:
RORLEFT,1
ROLRIGHT,1
MOVAL,LEFT
ORAL,RIGHT
MOVPOS,AL
K3:
RORLEFT,1
ROLRIGHT,1
MOVAL,LEFT
ORAL,RIGHT
MOVPOS,AL
OUTPUT:
MOVAL,POS
MOVDX,PORTA
OUTDX,AL
MOVCX,5000H
LOOP$
JMPINPUT
CODEENDS
ENDSTART
四、实验结论与分析
错误分析:
由于连接线有的有问题,造成接触不良,给实验造成的不可预测的结果,比如只有亮一个灯的情况。
实验结果:
K0=0,从左向右跑马灯;K1=0时,从右向左跑马灯;K2=0时,从左从右向中间跑马灯
五、实验心得
在这次课程设计的过程中的收获是很大的。
这次课程设计我主要是应用老师教的相关知识及自己的一些想法,完成了并行接口8255应用问题。
经过老师的指导,才做到了心中有数,我在此很想感谢给予我耐心解答的老师,同学们勤恳塌实,始终热情高涨,我感谢这种氛围。
当然,这次实验,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在这方面有一个大的发展,我真的很高兴有这次的锻炼机会。
实验六、存储器拓展实验
一、实验目的
1.通过阅读并调试示例程序,完成程序设计题,熟悉静态Ram的拓展方法;
2.了解8086/8088与存储器的连接,掌握拓展存储器的读写方法。
二、实验条件
一台计算机,62256RAM
三、实验内容与步骤
1.实验原理(62256RAM介绍)
62256是32*8的静态存储器,管脚如图所示。
其中:
A0~A14为地址线,DB0~DB7为数据线,/cs为存储器的片选,/OE为存储器数据输出选通信号,/WE为数据写入存储器信号。
62256工作方式如下图。
/CS/WE/OE方式DB-~DB7
HXX未选中高阻
LHH读写禁止高阻
LLH写IN
LHL读OUT
2.实验内容
设计扩展存储电器的硬件连接图并编制程序,讲字符A~Z循环存入62256扩展RAM中,让后再检查扩展存储器中的内容。
3、参考程序
RAMADDREQU0000H
RAMOFFEQU9000H
COUNTEQU800H
CODESEGMENT
ASSUMECS:
CODE
START:
PROCNEAR
MOVAX,RAMADDR
MOVDS,AX
MOVBX,RAMOFF
MOVCX,COUNT
REP1:
MOVDL,55H
MOV[BX],DL
INCBX
MOVDL,0AAH
MOV[BX],DL
INCBX
LOOPREP1
JMP$
MOVAH,04H
INT21H
CODEENDS
四、实验结论与分析
错误分析:
调试后发现没有对0000:
9000~0000:
9fffh进行重写,后来发现时线连错了,连接的应该是CS1。
后来换回来就行了。
实验结果:
0000:
9000~0000:
9fffh这4KB拓展存储器内容为交替显示55H和AAH
五、实验心得
在这次课程设计的过程中的收获是很大的。
这次课程设计我主要是应用老师教的相关知识及自己的一些想法,完成了存储器拓展问题。
经过老师的指导,才做到了心中有数,我在此很想感谢给予我耐心解答的老师,同学们勤恳塌实,始终热情高涨,我感谢这种氛围。
当然,这次实验,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在这方面有一个大的发展,我真的很高兴有这次的锻炼机会。
实验七、A/D转换结果送数码管显示
一、实验目的
1.通过阅读并调试示例程序,了解A/D转换的基本原理
2.完成程序设计题,掌握ADC0809的使用方法
二、实验条件
一台计算机,A/D转换器,LED数码显示管
三、实验内容与步骤
1.实验原理
ADC0809是8位8通道A/D转换器,芯片包括一个8位的逐次逼近型的ADC部分,并提供一个8通道的模拟多路开关盒联合寻址逻辑。
用该电路可直接采样8个单端的模拟信号,分时进行A/D转换,在多点巡回检测,过程控制等应用领域使用非常广泛。
2.实验内容
通过电位器输出0~5V直流电压送入ADC0809通道0(in0),利用输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。
编程采集in0输入电压,通过8255PA连接发光二级管显示转换后的数据(16进制数)。
3.实验电路
参考程序
CS0809EQU09000H
OUTBITEQU08002H
OUTSEGEQU08004H
DATASEGMENT
LEDBUFDB2DUP(?
)
NUMDB1DUP(?
)
DELAYTDB1DUP(?
)
LEDMAP:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
DELAYPROCNEAR
PUSHAX
PUSHCX
MOVAL,0H
MOVCX,AX
LOOP$
POPCX
POPAX
RET
DELAYENDP
DISPLAYLEDPROCNEAR
MOVBX,OFFSETLEDBUF
MOVCL,2
MOVAH,00100000B
DLOOP:
MOVDX,OUTBIT
MOVAL,0
OUTDX,AL
MOVAL,[BX]
MOVDX,OUTSEG
OUTDX,AL
MOVDX,OUTBIT
MOVAL,AH
OUTDX,AL
PUSHAX
MOVAH,1
CALLDELAY
POPAX
SHRAH,1
INCBX
DECCL
JNZDLOOP
MOVDX,OUTBIT
MOVAL,0
OUTDX,AL
RET
DISPLAYLEDENDP
STARTPROCNEAR
MOVAX,DATA
MOVDS,AX
AGAIN:
MOVAL,0
MOVDX,CS0809
OUTDX,AL
MOVCX,40H
LOOP$
INAL,DX
MOVNUM,AL
MLOOP:
MOVCH,NUM
MOVAH,0
MOVBX,OFFSETLEDBUF
FILLBUF:
MOVSI,OFFSETLEDMAP
MOVAL,CH
ANDAL,0F0H
MOVCL,4
SHRAL,CL
ADDAX,SI
MOVSI,AX
MOVAL,[SI]
MOV[BX],AL
INCBX
DECCL
MOVAL,CH
ANDAL,0FH
MOVSI,OFFSETLEDMAP
ADDAX,SI
MOVSI,AX
MOVAL,[SI]
MOV[BX],AL
MOVDELAYT,20
DISPAGAIN:
CALLDISPLAYLED
DECDELAYT
JNZDISPAGAIN
JMPSTART
STARTENDP
CODEENDS
ENDSTART
四、实验结论与分析
错误分析:
由于线路的接触问题导致无法测试结果,后来换了电路板,才解决。
实验结果:
通过调节电压的大小,可以在发光二极管上显示当前电压大小的近似值。
五、实验心得
在这次课程设计的过程中的收获是很大的。
这次课程设计我主要是应用老师教的相关知识及自己的一些想法,完成了A/D并将结果显示在发光二极管上问题。
经过老师的指导,才做到了心中有数,我在此很想感谢给予我耐心解答的老师,同学们勤恳塌实,始终热情高涨,我感谢这种氛围。
当然,这次实验,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在这方面有一个大的发展,我真的很高兴有这次的锻炼机会。