北邮微原硬件实验

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

信息与通信工程学院

微原硬件实验报告

姓名:

班级:2012211126

2014.12.21实验一熟悉实验环境及10的使用

一,实验目的

1.通过实验了解和熟悉实验台的结构,功能及使用方法。

2.通过实验掌握直接使用Debug的I、0命令来读写10端口。

3.学会Debug的使用及编写汇编程序

二,实验内容

1.学习使用Debug命令,并用I、0命令直接对端口进行读写操作,

2•用汇编语言编写跑马灯程序。(使用EDIT编辑工具)实现功能

A.通过读入端口状态(0N为低电平),选择工作模式(灯的闪烁方式、速度

等)。

B.通过输出端口控制灯的工作状态(低电平灯亮)

三,实验步骤

1.实验板的10端口地址为EEE0H

在Debug下,

I是读命令。(即读输入端口的状态---拨码开关的状态)

0是写命令。(即向端口输出数据---通过发光管来查看)

进入Debug后,

读端口拨动实验台上八位拨码开关

输入I端口地址回车

屏幕显示xx表示从端口读出的内容,即八位开关的状态0N是O,0FF

是1写端口

输入0端口地址xx (xx表示要向端口输出的内容)回车查看实验台上的发光二极管状态,0是灯亮,1是灯灭。

2.在Debug环境下用a命令录入程序,用g命令运行

C>Debug -a

mov dx,端口地址

mov al,输出内容

out dx, al

mov ah, Obh

int 21h

or al, al

jzO1OO

int 20h

-g

运行查看结果,修改输出内容

再运行查看结果

分析

mov ah, Obh

int 21h

or al, al

jzO1OO

int 2Oh

该段程序的作用:检测键盘有没有按键,有则返回DOS。没有继续执行

3.利用EDIT工具编写汇编写跑马灯程序程序

实现功能

A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)

B.通过输出端口控制灯的工作状态(低电平灯亮)C>EDIT文件名.asm

录入程序

按Alt键打开菜单进行存盘或退出

编译文件

C>MASM 文件名.asm

连接文件

C>LINK 文件名.obj

运行文件或用Debug进行调试。

四,程序流程图

硬件连线图:

五,源程序代码

data segme nt led db Ocfh

data ends

stack segme nt 'stack' stack db 100 dup⑺

stack ends code segme nt

assume cs: code, ds: data, ss: stack start proc far push ds xor ax, ax push ax mov ax, data mov ds, ax mov dx, 0eee0h

Ioop0: in al, dx mov ah, al and al, 80h xor al, 80h jz loop4 mov al, ah and al, 40h xor al, 40h jz loop2 mov ah, al

and al, 20h xor al, 20h jz stop rol led, 1 jmp loop3

Ioop2: ror led ,1 Ioop3: and ah, 3fh mov cl,ah mov ch, 0 mov al,led out dx, al inc ex loop1: call delay loop loopl jmp loopO loop4: retf stop: mov led, Offh mov al, led out dx,al jmp loopO start endp delay proc push cx mov cx,1500h delayl: push cx mov cx,800h delay2: loop delay2 pop cx loop delayl pop cx ret delay endp code ends end start 六,思考题

通过实验说明用debug中的a命令录入实验中给出的小程序中,有些语句可以不写出“ h”字符的原因。

答:在DEBU环境下,地址都是默认以16进制显示的,所以当语句中的数

据是地址时,可以不加H,如果输入的不是地址而是数据时,就要加上H以表示为十六进制数

V-'

T

0 luF -=

5U3

七,实验收获和体会

在这次试验中,我主要学会使用debug环境下的I/O命令,利用该命令点亮了LED灯,并且读取了拨码开关的状态,并知道了如何利用键盘检测返回DOS 在跑马灯实验中,我学会了写延时子程序,在一开始只用了一层循环,导致速度过快而无法观察到跑马灯的效果,在同学的帮助下我编写了二层循环才达到了应有的效果。同时,自己也整体的练习了汇编语言程序的编写,包括段声明,子程序编写等等。除了软件部分,也学习了实验板上的电路连接,初步了解了CPU 是如何通过总线读写数据和地址的,为以后的学习奠定了基础。

实验二8255A并行接口应用

一、实验目的

1.掌握8255A的功能及方式0、1的实现

2.熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。

3.了解七段数码管显示数字的原理。

4.掌握同时显示多位数字的技术。

二、实验要求

在实验一的基础上学习PIO芯片(8255)编程应用,熟悉平台的主要内容。

CS 用Y0 (EE00H)

1.查找八段数码管的显示的显示规律及位选规律

在方式0(输入/输出)下,以A 口为输出口,B 口为输出口, A 口接六个共阴极数码管的八位段码,高电平点亮数码管的某一段,B 口接数码管的位选(即要使哪个数码管亮),高电平选中某一位数码管点亮。

8255A 中

A端口地址EE00H

B端口地址EE01H

C端口地址EE02H

控制地址EE03H

八段数码管的显示规律及数码管的位选规律自己查找,可用实验一中,学过的I、O命令来做。

2.6位数码管静态显示学号

在数码管电路上静态地显示6位学号,当主机键盘按下任意键时,停止显示,返回DOS。

相关文档
最新文档