华北电力大学_接口实验报告_第1页
华北电力大学_接口实验报告_第2页
华北电力大学_接口实验报告_第3页
华北电力大学_接口实验报告_第4页
华北电力大学_接口实验报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华北电力大学实 验 报 告|实验名称 实验一 开发器的使用与设计实验实验二 中断8259应用、 定时/计数器8253应用 实验三 并行接口8255应用 实验四 存储器拓展实验 实验五 A/D转换结果送数码管显示 课程名称 接口与通信课程设计 | 专业班级:计科1202 学生姓名:谷玉虎 学 号:201209010205 成 绩:指导教师:张少敏 实验日期:2015-6-1 华 北 电 力 大 学实 验 报 告实验一、数据转换实验一、 实验目的1、 初步掌握在PC机上建立、汇编、链接和运行8086/88汇编语言程序的过程。2、 通过对两个验证性实验的阅读、调试,掌握不同进制数及编码相互转换的程序

2、设计方法。3、 完成程序设计题,加深对数码转换的理解,了解简单程序设计方法。二、 实验条件 一台计算机 三、实验内容与步骤1) 设二字节十六进制数存放于起始地址为3500H的内存单元中,把他们转换成ASCII码后,再分别存入起始地址为350AH的四个内存单元。从书上ASCII码表中可知十六进制数加30H即可得到0H9H的ASCII码,而要得到AHFH的ASCII码,则需再加7H。2) 参考程序如下: CODE SEGMENT ASSUME CS:CODESTART: MOV AX,0 MOV DS,AX MOV CX,0004H MOV DI,3500H MOV DX,DIA1: MOV AX

3、,DX AND AX,000FH CMP AL,0AH JB A2 ADD AL,07HA2: ADD AL,30H MOV DI+0AH,AL INC DI PUSH CX MOV CL,04H SHR DX,CL POP CX LOOP A1 MOV AH,4CH INT 21HCODE ENDS END START 四、实验结论与分析实验结果:在调试运行后350AH的内存单元中会显示3500H中所转换的对应的ASCII码。分析:本次实验的重要之处在于能够先对输入的ASI码进行判断然后根据条件进行处理,最后写入的位置要依照题目要求。五、实验心得本次实验中,出错并后来改正的地方是:(1)AS

4、M文件后面在保存后必须要以ASM标记。(2)参考书上的代码有错,修改了写入位置才行。(3)首次实验时,没有将内存信息拉倒3500H位置,导致以为实验失败,后来改正。实验二、接收小写字母转换成大写字母并显示一、 实验目的通过阅读并调试示例程序,完成程序设计题,掌握利用DOS中断的调用来实现人机对话的编程方法。二、 实验条件 一台计算机三、 实验内容与步骤1) 从键盘上接收一串小写字母存入内存单元,经过转换后在屏幕上显示其大写字母。设计思路:利用DOS中断的01号子功能接收键盘输入的一串字符串并存入内存单元,当接收到回车键时,将小写字母的ASCII码转换为大写字母的ASCII码,利用DOS功能的0

5、2号子功能将其显示在屏幕上。 2)参考程序如下:DATA SEGMENT BUF DB 200 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,OFFSET BUFMOV CL,00HA1:MOV AH,01H INT 21HCMP AL,0DHJZ A2SUB AL,20HMOV SI,ALINC SIINC CLJMP A1A2:MOV DL,0AHMOV AH,02HINT 21HMOV DL,ODHINT 21HMOV SI,OFFSET BUF MOV CH,00H

6、A3:MOV DL,SIMOV AH,02HINT 21HINC SILOOP A3MOV AH,4CHINT 21HCODE SEGMENT END START 四、 实验结论与分析 实验结论:在CMD命令行中,找到当前文件所在的位置,打开.exe文件,输入小写字母按回车键相应的会输出大写的字母。 分析:本次实验中首先考虑人机交互,读入用户输入的数据。在内部进行处理然后输出。将小写字母转化为大写字母。五、 实验心得 本次实验首先要了解DOS调用功能:01号和02号子功能,输入输出功能。试验中出现一个问题就是无法运行程序,找不到合适的方式打开EXE文件,浪费了不少时间。后来采取CMD命令行中找

7、到EXE文件位置打开文件,运行程序。实验三、中断8259应用一、 实验目的1、 通过阅读并调试示例程序,学习8088/86与8259A的连接与控制方法,掌握8259A中断控制器的工作原理。2、 完成程序设计题,学会编写中断服务程序。二、 实验条件 一台计算机,8259A可编程中断控制器,仿真软件三、 实验内容与步骤1、实验原理8259A是一种可编程中断控制器,与8088/86微机兼容,能处理8级向量优先权中断,亦可以通过级联构成64级向量优先权中断系统。具有可编程控制中断方式,并能分别屏蔽各个中断请求。通过4个初始化命令字(icw1icw4)及3个操作命令字(ocw1ocw3)使用8259A可

8、编程程序中断控制器。2、 实验内容用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。要求程序对每次中断进行计数,并将计数结果用8255的PA口输出到LED显示。修改参考书中程序,使每中断10次计数器加1,并将技术结果从8255的PB口输出到LED显示。实验重点放在思考题上。3、 参考流程图及程序mode equ 80hpa8255 equ 8000hpb8255 equ 8001hctl8255 equ 8003hicw1 equ 00010011bicw2 equ 00100000bicw4 equ 01hocw1 equ 11111110bcs8259a equ 0

9、9000hcs8259b equ 09001hdata segment cnt db 0 cn db 0data endscode segment assume cs:code,ds:data ienter proc near push ax push dx mov dx,pb8255 inc cnt cmp cnt,0ah jnz P1 mov cnt,0 inc cn mov al,cn out dx,al P1:mov dx,cs8259a mov al,20h out dx,al pop dx pop ax iret ienter endpinit proc near mov dx,c

10、s8259a mov al,icw1 out dx,al mov dx,cs8259b mov al,icw2 out dx,al mov al,icw4 out dx,al mov al,ocw1 out dx,al ret init endpstart proc near mov dx,ctl8255 mov al,mode out dx,al cli mov ax,0 mov ds,ax mov bx,4*icw2 mov ax,offset ienter mov bx,ax mov ax,code inc bx inc bx mov bx,ax call init mov ax,dat

11、a mov ds,ax mov cn,0 mov al,cn mov dx,pb8255 out dx,al sti lp: nop jmp lpstart endpcode ends end start四、 实验结论与分析实验结果:通过按单脉冲,使之产生中断,然后再LED显示按下的次数就是中断的次数。 思考题:通过单脉冲,但是连续10次脉冲,才能产生一次中断,然后再LED显示按下的次数就是中断的次数分析:本次实验,连线是一个重要问题。同时选择合适的插口进行连接比较重要。本次实验由单脉冲作为触发源,当8259设置好中断模式后,在中断函数中写入触发次数,同时将数据传给8255,给其计数显示。五、

12、 实验心得 本实验中遇到一些问题,(1)首先遇到就是插线问题,由于实验牵扯到8259,8255,单脉冲,地址分配和地址插线就显得尤为重要。(2)代码编写过程中,设定好中断模式后,如何在中断函数中将中断次数传给8255,让其进行保持显示,成为一个问题。后来在参考同学代码思路的情况下,配置了8255,并且进行显示。(3)实验中,由于用到了多个cpu地址线,本来按照帮助文档上的连线来接,发现并不出效果。后来查看连线和代码,发现多个地址线和代码中规定的地址线不同。后来改正,完成了实验。实验四、定时/计数器8253应用一、 实验目的通过阅读并调试示例程序,完成程序设计题,掌握8253的基本工作原理和编程

13、方法,熟悉8253在系统中的典型接法。二、 实验条件 一台计算机,8253可编程定时/计数器三、 实验内容与步骤1、实验原理8253可编程定时/计数器是Intel公司生产的统一外围接口芯片它有3个独立的16位计数方式和操作方式都通过编程控制。2、 实验内容利用8088/86外接8253可编程定时/计数器,可以实现对外部事件进行计数,且可以设置断点读回计数器的值。本实验中计数器按方式0工作,即十六位二进制计数器。当计数设置好后,计数器就开始计数。如果要读入计数器的值,要先锁存计数值,才能读到计数值。本实验所设计数值为五,也就是每5个外部脉冲,计数器值加1.同时out脚输出一个高电平。实验时,可以

14、将out0接到LED上,观察计数器是否工作。思考题:编程实现LED指示灯以1s的时间间隔闪烁。本次实验报告重点放在思考题上。3、 流程图及参考程序CONTROL EQU 08003HCOUNT0 EQU 08000HCOUNT1 EQU 08001HCOUNT2 EQU 08002HPORTB EQU 09001HPORTA EQU 09000HMODE EQU 082HCADDR EQU 9003HCODE SEGMENT ASSUME CS:CODESTART PROC NEAR MOV AL,MODE MOV DX,CADDR OUT DX,AL MOV AL,36H MOV DX,CO

15、NTROL OUT DX,AL MOV AX,10000 MOV DX,COUNT0 OUT DX,AL MOV AL,AH OUT DX,AL MOV AL,76H MOV DX,CONTROL OUT DX,AL MOV AX,100 MOV DX,COUNT1 OUT DX,AL MOV AL,0 OUT DX,ALAGAIN: MOV DX,PORTB IN AL,DX AND AL,01H MOV DX,PORTA OUT DX,AL MOV AL,00000000B MOV DX,CONTROL OUT DX,AL MOV DX,COUNT0 IN AL,DX MOV BL,AL

16、IN AL,DX MOV AH,AL MOV AL,BL JMP AGAINSTART ENDPCODE ENDS END START四、 实验结论与分析参考书例程实验结果:自动脉冲5下,LED灯就会显示。 思考题结果: LED灯以1s的时间间隔显示。分析:首先是完成参考书中的单脉冲5下,LED灯显示。再通过8253定时,1HZ自动脉冲条件下,LED灯显示。本次实验重点放在后者。同样,设定芯片8253、8259工作模式,使得1HZ的脉冲能够触发中断,然后点亮LED。五、 实验心得 本实验中遇到一些问题,(1)首先遇到就是插线问题,8253在设定模式下,定时信息的传输依靠连线进行,这就要求825

17、3必须合适端口进行相连。(2)代码编写过程中,设定好定时周期,设定好中断模式后,如何将定时脉冲作为中断源触发中断成为一个问题。后来在参考同学代码思路的情况下,配置了8253/8259,并且进行显示。实验五、并行接口8255应用一、 实验目的1、 通过阅读并调试示例程序,掌握8255A可编程并行接口的工作原理;2、 完成程序设计题,学会并行接口电路的设计,及编写输入输出控制程序。二、 实验条件 一台计算机,8255A可编程控制芯片,LED灯的电路板三、 实验内容与步骤1、 实验原理8255A是可编程的通用并行输入输出接口芯片,因通用性强,使用灵活,可直接与cpu总线相连,应用非常广泛。8255A

18、芯片内部有3个8位的输入输出端口,即A口、B口、C口。从内部控制的角度来讲,可分为两组:A组和B组。A组控制模块管理A口和C口的高4位(pc7PC4),B组控制模块管理B口和C口的低4位(pc3pc0)。思考题:跑马灯程序设计,要求K0=0,从左向右跑马灯;K1=0时,从右向左跑马灯;K2=0时,从左从右向中间跑马灯,LED从pc口输出。完成电路设计及程序的编制,进行调试并验证结果。2、 实验内容设计跑马灯程序设计,要求K0=0,从左向右跑马灯;K1=0时,从右向左跑马灯;K2=0时,从左从右向中间跑马灯,LED从pc口输出。完成电路设计及程序的编制,进行调试并验证结果。参考程序MN SSDA

19、TA SEGMENTMODE EQU 082HPORTA EQU 8000HPORTB EQU 8001HPORTC EQU 8002HCADDR EQU 8003HPOS DB 0FFHNOWDATA DB 0FFHLEFT DB 0FFHRIGHT DB 0FFHDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,MODE MOV DX,CADDR OUT DX,ALINPUT: MOV DX,PORTB IN AL,DX CMP AL,NOWDATA JNZ INITIAL CMP

20、 AL,0FEH JZ K0 CMP AL,0FDH JZ K1 CMP AL,0FBH JZ K2 CMP AL,0F7H JZ K3 JMP INPUTINITIAL: MOV NOWDATA,AL CMP AL,0FEH JZ INTIK0 CMP AL,0FDH JZ INTIK1 CMP AL,0FBH JZ INTIK2 CMP AL,0F7H JZ INTIK3INTIK0: MOV POS,10000000B JMP OUTPUTINTIK1: MOV POS,00000001B JMP OUTPUTINTIK2: MOV LEFT,10000000B MOV RIGHT,00

21、000001B MOV AL,LEFT OR AL,RIGHT MOV POS,AL JMP OUTPUTINTIK3: MOV LEFT,00010000B MOV RIGHT,00001000B MOV AL,LEFT OR AL,RIGHT MOV POS,AL JMP OUTPUTK0: ROR POS,1 JMP OUTPUTK1: ROL POS,1 JMP OUTPUTK2: ROR LEFT,1 ROL RIGHT,1 MOV AL,LEFT OR AL,RIGHT MOV POS,ALK3: ROR LEFT,1 ROL RIGHT,1 MOV AL,LEFT OR AL,R

22、IGHT MOV POS,ALOUTPUT: MOV AL,POS MOV DX,PORTA OUT DX,AL MOV CX,5000H LOOP $ JMP INPUTCODE ENDSEND START四、 实验结论与分析实验结果:将某个开关状态置1时,LED点亮。置0,则LED灭。思考题结果:K0=0,从左向右跑马灯;K1=0时,从右向左跑马灯;K2=0时,从左从右向中间跑马灯 分析:此实验牵扯到的芯片较多,首先要将K开关和8255 A口相连,然后将LED和C口相连。当开关触发一定条件时,将通过8255输出端口C口输出一定信息,从而达到跑马灯的效果。 本次实验先将参考书中提供的例程输入

23、,查看效果,然后在编写多条件跑马灯,本实验重点在后者。 五、 实验心得 实验中遇到了几个问题:(1)在实验中,由于先是按照参考书中例程进行连线,后来进行思考题中要求时,8255配置不同,但是连线没有相对应改动,导致拨动开关,却没有效果。后来出于简便,将8255输入输出重新配置。(2)在编写代码的过程中,如何分辨开关及其状态,然后做出的操作,完成相应要求,比较困难。在参照同学代码的基础上,将不同操作,分到几个不同的子函数中,用于完成不同操作,同时,在开始判断开关状态时,进行多个判断,最后成功完成逻辑。实验六、存储器拓展实验一、 实验目的1.通过阅读并调试示例程序,完成程序设计题,熟悉静态Ram的

24、拓展方法;2.了解8086/8088与存储器的连接,掌握拓展存储器的读写方法。二、 实验条件 一台计算机 ,62256 RAM三、 实验内容与步骤1.实验原理(62256RAM介绍) 62256是32*8的静态存储器,管脚如图所示。其中:A0A14为地址线,DB0DB7为数据线,/cs为存储器的片选,/OE为存储器数据输出选通信号,/WE为数据写入存储器信号。62256工作方式如下图。/CS /WE /OE 方式 DB-DB7H X X 未选中 高阻L H H 读写禁止 高阻L L H 写 INL H L 读 OUT 2.实验内容设计扩展存储电器的硬件连接图并编制程序,讲字符AZ循环存入622

25、56扩展RAM中,让后再检查扩展存储器中的内容。思考题:编写程序,将4KB扩展存储器交替写入55H和AAH。本次实验报告重点在后者。3、参考程序RAMADDR EQU 0000HRAMOFF EQU 9000HCOUNT EQU 800HCODE SEGMENTASSUME CS:CODESTART: PROC NEAR MOV AX,RAMADDR MOV DS,AX MOV BX,RAMOFF MOV CX,COUNTREP1: MOV DL,55H MOV BX,DL INC BX MOV DL,0AAH MOV BX,DL INC BX LOOP REP1 JMP $ MOV AH,0

26、4H INT 21HCODE ENDS四、 实验结论与分析例程实验结果:字符AZ循环存入62256扩展RAM中。思考题实验结果: 0000:90000000:9fffh 这4KB拓展存储器内容为交替显示55H和AAH。分析:本实验着重于RAM存储,其中牵扯到地址线,数据线的连接。同时,如何读写RAM中某块地址是本实验的基础部分。 五、 实验心得 本次实验:(1)试验中由于吸取之前实验的的连线经验,在本次实验中,首先熟悉了RAM的地址和数据总线,然后按照书中程序写定的地址进行连接,在后续实验中实验进行地就比较快。(2)实验中,熟悉了对RAM的基本读写操作,在编写代码时,只需将需要写入的数据放到相

27、应地址,实验进行地比较顺利。实验七、A/D转换结果送数码管显示一、 实验目的1.通过阅读并调试示例程序,了解A/D转换的基本原理2.完成程序设计题,掌握ADC0809的使用方法二、 实验条件 一台计算机,A/D转换器,LED数码显示管三、 实验内容与步骤1实验原理ADC0809是8位8通道A/D转换器,芯片包括一个8位的逐次逼近型的ADC部分,并提供一个8通道的模拟多路开关盒联合寻址逻辑。用该电路可直接采样8个单端的模拟信号,分时进行A/D转换,在多点巡回检测,过程控制等应用领域使用非常广泛。2.实验内容通过电位器输出05V直流电压送入ADC0809通道0(in0),利用输出命令启动A/D转换

28、器,输入命令读取转换结果,验证输入电压与转换后数字的关系。编程采集in0输入电压,通过8255PA 连接发光二级管显示转换后的数据(16进制数)。思考题:编程实现在数码管上动态显示采集到的AD值。本实验报告重点在后者。3.实验电路参考程序CS0809 EQU 09000HOUTBIT EQU 08002HOUTSEG EQU 08004HDATA SEGMENTLEDBUF DB 2 DUP (?)NUM DB 1 DUP (?)DELAYT DB 1 DUP (?)LEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5

29、EH,79H,71HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATADELAY PROC NEAR PUSH AX PUSH CX MOV AL,0H MOV CX,AX LOOP $ POP CX POP AX RETDELAY ENDPDISPLAYLED PROC NEAR MOV BX,OFFSET LEDBUF MOV CL,2 MOV AH,00100000B DLOOP: MOV DX,OUTBIT MOV AL,0 OUT DX,AL MOV AL,BX MOV DX,OUTSEG OUT DX,AL MOV DX,OUTBIT MOV AL,AH OUT DX,AL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论