微型计算机原理及应用实验_第1页
微型计算机原理及应用实验_第2页
微型计算机原理及应用实验_第3页
微型计算机原理及应用实验_第4页
微型计算机原理及应用实验_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

YANGTZENORMALUNIVERSITY

£机原理及应用实验

电子信息技术实验教学中心

♦'♦YANGTZENORMALUNIVERSITY

实验1DEBUG调试程序的应用

一、实验目的

掌握DEBUG调试程序的常用命令,熟悉用DEBUG调试程序对

EXE文件的调试过程,并具有一定的分析运行结果的能力。

二、实验内容

。编写一个完整的一位数加法运算程序,并生成EXE文件;

。利用DEBUG调试EXE文件的执行过程,并与源程序进行对比。

YANGTZENORMALUNIVERSITY

三、DEBUG常用命令

1.汇编命令A

格式:

A段寄存器名:偏移地址

A段地址:偏移地址

A偏移地址

A

功能:用该命令可以将汇编语言程序直接写入内存。

YANGTZENORMALUNIVERSITY

2.显示内存命令D

格式:

D段寄存器名:偏移地址

D段地址:偏移地址

D偏移地址

D

功能:显示指定内存范围的内容。

3.修改内存单元内容命令E

格式:

E地址内容表

E地址

功能:修改内存单元内容

YANGTZENORMALUNIVERSITY

4.填充内存命令F

格式:E地址范围内容表

功能:将内容表中的内容重复装入内存的指定范围内。

5,内存移动命令M

格式:M源地址范围目标起始地址

功能:把源地址范围的内容移动到目标起始地址开始的存储单

)Ljo

6.比较命令C

格式:C源地址范围目标起始地址

功能:比较两个内存区域的内容是否相同,相同时不显示任何

信息,不相同时显示不相同的内容

YANGTZENORMALUNIVERSITY

7.搜索指定内容命令S

格式:s地址范围内容表

功能:在指定地址范围内搜索内容表中的内容。

8.查看修改寄存器内容命令R

格式:

R

R寄存器名

功能:查看或修改寄存器内容

关于标志位:

OF:OV/NV有/无;DF:DN/UP减/增;IF:EI/DI允许/禁止;

SF:NG/PL负/正;ZF:ZR/NZ零/非零;AF:AC/NA有/无;PF:

PE/PO偶/奇;CF:CY/NC有/无。

YANGTZENORMALUNIVERSITY

9.单步执行命令T

格式:

T地址

T地址条数

功能:单步执行指令

10.反汇编命令U

格式:

U地址

U地址范围

功能:将指定内存的内容显示成汇编语言形式。

11.命名命令N

格式:N路径和文件名

YANGTZENORMALUNIVERSITY

12.读盘命令L

格式:

L地址驱动器号起始扇区号扇区数

L地址

L

功能:将N命令指定的文件或磁盘扇区内容读到内存。

13.写盘命令W

格式:

W地址驱动器号起始扇区号扇区数

W地址

W

功能:将内存内容写至UN命令指定的文件或磁盘扇区中。

YANGTZENORMALUNIVERSITY

14.输入命令I

格式:I端口地址

功能:将端口的内容传送到累加器AL中。

15.输出命令0

格式:0端口地址

功能:将累加器AL的内容传送到端口中。

16.运行命令G

格式:

G二地址

G

功能:从当前地址或指定地址开始执行指令。

YANGTZENORMALUNIVERSITY

17.十六进制运算命令H

格式:

H数据1数据2

功能:对数据1和数据2进行十六进制加法和减法运算。

18.P命令

格式:

P

功能:在下一条指令执行之前停止

19.退出命令Q

格式:

Q

功能:退出DEBUG调试环境。

♦'♦YANGTZENORMALUNIVERSITY

实验2算术运算程序设计

、实验目的

。掌握汇编语言中的数值接收方法;

。掌握算术运算程序的编写与结果显示方法;

。掌握宏定义与调用方法

、实验内容

从键盘接收运算式,编程实现两位十进制数的算术运算(

加、减、乘、除),若输入的不是数字或运算符,进行错误处

理,按Esc键退出。

YANGTZENORMALUNIVERSITY

三、编程提示

。定义一个显示单字符的宏;

。定义一个能接收两位数的子程序,并将其转换成二进制,若

接收的不是数字,进行错误处理,其算法为:退一格,显示

一个空格,再退一格。若接收的为ESC键退出;

。主程序的编程流程如图2.1所示。

YANGTZENORMALUNIVERSITY

图2.1

YANGTZENORMALUNIVERSITY

实验3字符串处理程序设计

一、实验目的

。掌握串操作程序设计的基本方法;

。掌握串查找与替换的方法;

。掌握字符串接收和显示的方法;

。掌握循环和分支程序设计方法。

二、实验内容

。编程实现字符接收、字符转换、字符显示等操作;

。具体要求:从键盘接收30个字符存入变量X中,将X中的字符

传送到变量Y中,将变量Y中的空格字符转换成字符“0”,

回车换行后显示Y中的内容。

♦'♦YANGTZENORMALUNIVERSITY

三、编程提示

编程流程如图3.1所示。

图3.1

YANGTZENORMALUNIVERSITY

实验4数值处理程序设计

一、实验目的

。掌握数组元素的输入方法;

。掌握一般的排序算法。

二、实验内容

。编程实现数值输入、数组排序、显示等基本操作;

。具体要求:从键盘输入20个有符号两位十进制数,编程对其

从小到大进行排序,并显示排序后的结果,以逗号分隔。

YANGTZENORMALUNIVERSITY

二、参考程序

dispcmacrox

movdl,x

movah,2

int21h

endm

datasegment

xdb20dup(?)

dataends

codesegment

assumecs:code,ds:data

go:movax,data

movds,ax

接收20个有符号数的程序段

movbx,19

YANGTZENORMALUNIVERSITY

10:movex,19

leasi,x

11:lodsb

empal,[si_

jge12

movah,[si]

mov[si],al

mov[si-l],ah

12:loop11

decbx

empbx,0

jne10

movex,20

13:lodsb

empal,0

YANGTZENORMALUNIVERSITY

jge14

pushax

dispc'-'

popax

negal

14:aam

orax,3030h

movbh,al

cmpah,30h

je15

dispcah

15:dispcbh

dispc','

loop13

dispc8

YANGTZENORMALUNIVERSITY

dispc20h

movah,7

int21h

movah,4ch

int21h

codeends

endgo

UNIVERSITY

实验5文件、文件夹操作程序设计

一、实验目的

。掌握在磁盘上建立文件夹的程序设计方法;

。掌握在文件夹下建立文件的程序设计方法;

。掌握对文件的读、写、关闭的程序设计方法

YANGTZENORMALUNIVERSITY

二、实验内容

。编程实现文件、文件夹的建立、写入、字符串接收等基本操

作;

。具体要求:

①清屏,将光标置于5行,0列,从键盘接收最多80个字符的字

符串,将接收字符串中的小写字母全部转换成大写,其余不

变;

②从10行,0列开始显示转换后的字符串;

③在D盘上建立一文件夹USER;

④将转换后的字符串写入文件'D:\USER\STRING.TXT中。

(注:文件操作时要求有相应的提示信息)

YANGTZENORMALUNIVERSITY

二、参考程序

dispsmacrox

movah,9

leadx,x

int21h

endm

datasegment

bufferdb80,?,81dup(O)

pfnamedbJD:\USER\O

fnamedb'D:\USER\STRING.TXT,。

dldbJCreatepaperfileerror5,Odh,Oah,,$J

d2db'Createfileerror',Oah,Odh,,$'

d3dbJWritefileerror',Oah,Odh,'$'

d4dbJClosefileerror5,Oah,Odh,J'

d5db'Operatesucceed',Oah,Odh,'$'

YANGTZENORMALUNIVERSITY

d6dbOah,Odh,'$'

dataends

codesegment

assumecs:code,ds:data

go:movax,data

movds,ax

movah,2

movbh,0

movdx,0

intlOh

moval,20h

movah,9

movex,2000

movbl,12h

intlOh

YANGTZENORMALUNIVERSITY

movah,2

movbh,0

movdh,5

movdl,0

intlOh

movah,Oah

leadx,buffer

int21h

movcl,buffer+1

movch,0

leasi,buffer+2

11:lodsb

cmpal,'a'

jb12

cmpal,'z

YANGTZENORMALUNIVERSITY

ja12

xoral,20h

mov[si-l],al

12:loop11

movbyteptr[si

movah,2

movbh,0

movdh,10

movdl,0

intlOh

dispsbuffer+2

dispsd6

movah,39h

leadx,pfname

int21h

YANGTZENORMALUNIVERSITY

jnc11

dispsdl

jmp16

12:movah,5bh

movex,0

leadx,fname

int21h

pushax

jnc13

dispsd2

jmp16

13:movah,40h

popbx

movcl,buffer+1

movch,0

》祥孝伤

YANGTZENORMALUNIVERSITY

leadx,buffer+2

int21h

jnc14

dispsd3

jmp16

14:movah,3eh

int21h

jnc15

dispsd4

jmp16

15:dispsd5

16:movah,7

int21h

movah,4ch

int21h

YANGTZENORMALUNIVERSITY

codeends

endgo

YANGTZENORMALUNIVERSITY

实验6图形程序设计

一、实验目的

。掌握屏幕显示方式的设置方法;

。掌握写象素点的方法;

。掌握宏的定义和调用方法。

、实验内容

。编程实现几何图形的绘制,不同颜色的填充;

。具体要求:将屏幕设置成640*480,在屏幕上画5个几何图形:

空心正方形、空心长方形、实心正方形、实心长方形、空心直

角等腰三角形。大小、颜色、位置自定。

YANGTZENORMALUNIVERSITY

二、参考程序

sxfkmacroxl,yl,x2,y2,color;画实心矩形(左上顶点坐标,

local11,12右下顶点坐标,颜色)

movah,Och

moval,color

movdx,yl

11:movex,xl

12:intlOh

incex

cmpex,x2

jbe12

incdx

cmpdx,y2

jbe11

endm

YANGTZENORMALUNIVERSITY

kxfkmacroxl,yl,x2,y2,color画空心矩形(左上顶点坐标,

local11,12,13,14右下顶点坐标,颜色)

movah,Och

movdx,yl

movex,xl

moval,color

11:intlOh

incex

empex,x2

jb11

12:intlOh

incdx

empdx,y2

jb12

13:intlOh

YANGTZENORMALUNIVERSITY

decex

empex,xl

ja13

14:intlOh

decdx

empdx,yl

ja14

endm

sjxmacroxl,yl,long,color画等腰直角三角形(左上

local11,12,13顶点坐标,腰长,颜色)

movah,Och

moval,color

movdx,yl

movex,xl

movsi,long

ft

YANGTZENORMALUNIVERSITY

addsi,dx

11:intlOh

incdx

cmpdx,si

jbe11

movdi,long

adddi,ex

12:intlOh

incex

cmpex,di

jbe12

movex,xl

movdx,yl

13:incex

incdx

YANGTZENORMALUNIVERSITY

intlOh

cmpex,di

jb13

endm

codesegment

assumecs:code

go:movax,0012h

intlOh

movah,Obh

movbx,1

intlOh

sjx50,50,125,4

kxfk1,2,241,242,3

sxfk10,250,320,470,(

sxfk339,179,639,479,5

YANGTZENORMALUNIVERSITY

kxfk270,5,630,170,

movah,7

int21h

movah,4ch

int21h

codeends

endgo

YANGTZENORMALUNIVERSITY

实验7中断控制实验

一、实验目的

。了解Windows下中断处理过程;

。比较中断和查询两种数据交换方法的效率差别。

二、实验内容

用查询和中断方式分别实现控制指示灯,实验电路如图。

要求直接用手动产生的单脉冲作为中断请求信号,每按一次单

脉冲产生一次中断,让8个指示灯显示一秒钟的01010101,否则

让指示灯显示10101010。然后在任务栏比较中断和查询方式下

CPU利用率的差别。

但'・YANGTZENORMALUNIVERSITY

。中断方法:将8255的A□设为输出,IRQ直接接到正脉冲,线

路连接如图7.1所示;

。查询方法:将8255的A□设为输出接指示灯,C口设为输入,

将PCO接正脉冲输入,线路连接如图7.2所示。

!IRQ

8255825s

1------1(ACK)

PAO一.LI116一.…•——PC©PA0«L0

PA1一..♦LPA!

PA2一..■L:PA2♦L2

PA3一……・L:PA3

PA4f.......♦L«PA4

PA5......•LIPA5•L5

288h^28Fh288h^28Fh

CSPA6•Li.........----------CSPA8

PA7—.......•L1PA7•L7

图7.1图7.2

♦'♦YANGTZENORMALUNIVERSITY

三、编程提示

中断方法的编程流程如图7.3所示

主程序中断服务程序

图7.3

YANGTZENORMALUNIVERSITY

查询方法的编程流程如图7.4所示

有键按下?图7.4

霞陵严守兄孝笛

YANGTZENORMALUNIVERSITY

实验8定时器/计数器实验

、实验目的

掌握8253的基本工作原理和编程方法。

、实验内容

。定时器应用:按图8.1连接电路,将计数器0、计数器1分别

设置为方式3,计数初值设为1000,用逻辑笔观察0UT1输出

电平的变化(频率1HZ);

。计数器应用:按图8.2连接电路,将计数器0设置为方式0,

计数器初值为N(NC0FH),用手动逐个输入单脉冲,编程

使计数值在屏幕上显示,并同时用逻辑笔观察OUTO电平变化

(当输入N+1个脉冲后OUTO变高电平)。

YANGTZENORMALUNIVERSITY

U5OUT1

8253

RATF1141

CLK1<

280H、OUT0

CS

R6TFA11-

CLK0<9-

图8.1

US8253

CLK0<-5—

+5

GATE©JLl^.……丁

280H、

♦2%CS

OUT0

图8.2

YANGTZENORMALUNIVERSITY

三、编程提示

8253控制寄存器地址283H

开始

计数器0地址280H、

计数器1地址281H

定时器应用时的编程

流程如图&3所示,计数器

应用时的编程流程如图&4

所示。

图8.3图8.4

YANGTZENORMALUNIVERSITY

实验9并行通信实验

、实验目的

掌握并行接口芯片8255的工作原理及使用方法

八实验内容

。方式0的应用:实验电路如图9.1,8255c□接逻辑电平开关

K0-K7,A口接LED显示电路L0〜L7,编程从8255c口输入数

据,再从A口输出;

。方式1的应用:实验电路如图9.2,要求每按一次单脉冲按

钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一

次中断服务:依次输出01H、02H,04H,08H,10H,20H,

40H,80H使L0〜L7依次发光,中断8次结束。

YANGTZENORMALUNIVERSITY

LA..14prApAA4.............10

k1•.15PCIPAI_3_........I18255

(INTRA)

L2•.16propo22・........L2IRQ------♦PC3PAO—・・・L0

kA•.17Pc2pawPAIL1

k4..13pr4PA440........I4PA2—…-«•L2

288h^28Fh

k5・.12prePAR39...........L5■<-------CSPA3-■•L3

11

«PC6PA638........LGPA4••♦L4

147..1。PC7PA737•.........I7PA5L5

(ACK)

PC6PA6—»L6

288HUI8

.・—.6CS8255PA7…・L7

图9.1图9.2

YANGTZENORMALUNIVERSITY

三、编程提示

8255控制端口地址28BH

A□的地址288H

C□的地址28AH

方式0应用时编程流程如图

9.3所示,方式1应用时编程流

程如图9.4所不。

图9.3

Count=12返回DOS

N

中断终来]

主程序中断处理程序

图9.4

YANGTZENORMALUNIVERSITY

实验107段数码管显示控制实验

、实验目的

掌握数码管显示数字的原理。

、实验内容

。静态显示:按图10.1连接好电路,将8255的ADPA0〜PA6分

别与七段数码管的段码驱动输入端a〜g相连,位码驱动输

入端S1接+5V(选中),SO、dp接地(关闭)。编程从键盘

输入一位十进制数字(0〜9),在七段数码管上显示出来;

。动态显示:按图10.2连接好电路,七段数码管段码连接不变,

位码驱动输入端SI,S0接8255C口的PCI,PCO,编程在两个

数码管上显示“56”。

YANGTZENORMALUNIVERSITY

七段数码管字型代码表

显小字形,gQe-许d,2b*-'段码.

0/031PIPIP3fh口a

IP020,0^OPl*10/063

2+1Q0<1.W0"1*'1〃5bh.-一fgb

3+,1'O0~1"A1-'IP4fhUc

“121P0"OQ1cIPOr66h0“e

1PI*102IPOcW6dhJJd

6+1P1*14,1/0,7dh<

1

7P0。0V030川l-1*-'07h2

8c121P1」1cIP1P7fhp

9/1/02IPIP6fh>'

图10.1

YANGTZENORMALUNIVERSITY

七段数码管字型代码表

un

8255

图10.2

YANGTZENORMALUNIVERSITY

三、编程提示

实验台上的七段数码管为共阴型,段码采用同相驱动,输

入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入

端高电平选中。

静态显示时的编程流程如图10.3所示,动态显示时的编程

流程如图10.4所示。

YANGTZENORMALUNIVERSITY

(开始)

将8255设为A口输出

送5的段码至4口

送位码。2H至C口

返回DOS]

图10.3囹1U.4

YANGTZENORMALUNIVERSITY

实验11抢答器设计实验

一、实验目的

。了解微机化竞赛抢答器的基本原理;

。进一步学习使用并行接口。

二、实验内容

图1L1为竞赛抢答器(模拟)的原理图,逻辑开关K0〜K7

代表竞赛抢答按钮0〜7号,当某个逻辑电平开关置“1”时,

相当某组抢答按钮按下。在七段数码管上将其组号(0〜7)显

示出来,并使微机扬声器响一下。

YANGTZENORMALUNIVERSITY

U1774LS244

2

*IH-1A1

1w1

4

1A21?2

61A313

81A41V4

11

X2A12?1

I3

X2A22w2

15

A2A323

17

A2A42Y4

I1C

abcdefgdp

LED1

gnd

K7■6K5K4K3K2K0

图ll.I

♦'♦YANGTZENORMALUNIVERSITY

三、编程提示

设置8255为C□输入、A□输出,读取C□数据,若为0表

示无人抢答,若不为0则有人抢答。根据读取数据可判断抢答组

号。从键盘上按空格键开始下一轮抢答,按其它键程序退出。

YANGTZENORMALUNIVERSITY

图11.2

YANGTZENORMALUNIVERSITY

实验12交通灯控制实验

一、实验目的

通过并行接口8255实现十字路口交通灯的模拟控制,进一步

掌握对并行口的使用。

二、实验内容

如图12.1,L7、L6、L5作为南北路口的交通灯与PC7、PC6、

PC5相连,L2、LKL0作为东西路口的交通灯与PC2、PCI、PCO

相连。编程使六个灯按交通灯变化规律亮灭。

红黄红黄绿

L716L5L2L1L0

••••••

fttT

PC7PC6PCSPC2PCIPC0

CS8255

图12.1

YANGTZENORMALUNIVERSITY

三、编程提示

十字路口交通灯的变化规律要求:

(1)南北路口的绿灯、东西路口的红灯同时亮30秒左右;

(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯

继续亮;

(3)南北路口的红灯、东西路口的绿灯同时亮30秒左右;

(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪

烁若干次;

(5)转(1)重复。

编程流程如图12.2所示。

YANGTZENORMALUNIVERSITY

图12.2

YANGTZENORMALUNIVERSITY

实验13串行通信实验

一、实验目的

。了解串行通讯的基本原理;

。掌握串行接口芯片8251的工作原理和编程方法。

二、实验内容

。按图13.1连接好电路,(8251插通用插座)其中8253计数器用

于产生8251的发送和接收时钟.TXD和RXD连在一起;

。编程:从键盘输入一个字符,将其ASCH码加1后发送出去,再

接收回来在屏幕上显示。实现自发自收。

YANGTZENORMALUNIVERSITY

D0D0NTXD

OUT0D1D1J

O

D2D2XRXD

GATE©D3.

D3L

D4D4

CLKQ<D5D5

D6D6TxRDY15

D7D7

--8251RxRDY14

U5CS

2B8H〜2BPH•…♦RD

8253IOR♦.♦UR

IQ(J•••・_••.c

A0・•・•-♦R

氏21IE

RESET*....*

uCTS

r

280h-287h

e

1MHZ上….♦

图13.1

♦'♦YANGTZENORMALUNIVERSITY

三、编程提示

。图示电路8251的控制□地址为2B9H,数据口地址为2B8H;

。8253计数器的计数初值二时钟频率/(波特率X波特率因

子),这里的时钟频率接1MHz,波特率若选1200,波特率因

子若选16,则计数器初值为52H;

。收发采用查询方式;

。编程流程如图13.2所示。

U浮彳通孝伤

YANGTZENORMALUNIVERSITY

《开始~3

图13.2

♦'♦YANGTZENORMALUNIVERSITY

实验14数/模转换实验

一、实验目的

了解数/模转换器的基本原理,掌握DAC0832芯片的使用方

法。

、实验内容

。实验电路原理如图14.1所示,DAC0832采用单缓冲方式,具

有单双极性输入端(图中的Ua、Ub);

。编程产生锯齿波(从Ub输出,用示波器观察);

。编程产生正弦波(从Ub输出,用示波器观察)。

YANGTZENORMALUNIVERSITY

U6

DAC0832

D7D7

D6D6

D5D5

D4D4

D3D3

D2D2

2

D1D1IOUt1

D0D0

Iout212m

cSN

do

uRr

298H砾一9

图14.1

YANGTZENORMALUNIVERSITY

三、编程提示

。8位D/A转换器DAC0832的口地址为290H,输入数据与输出电

压的关系为:

Ua二-(UREF/256)*N

Ua二-(UREF/256)*N-5

(UREF表示参考电压,N表示数数据),这里的参考电压为PC

机的+5V电源。

。产生锯齿波只须将输出到DAC0832的数据由0循环递增;

。产生正弦波可根据正弦函数建一个下弦数字量表,取值范围

为一个周期,表中数据个数在16个以上。

YANGTZENORMALUNIVERSITY

(g®

将喔给CL

将CL中的数给DK0832

loipi

图14.2图14.3

♦'♦YANGTZENORMALUNIVERSITY

实验15模/数转换实验

、实验目的

了解模/数转换的基本原理,掌握ADC0809的使用方法。

、实验内容

实验电路原理图如图15.1所示。通过实验台左下角电位器

RW1输出0〜5V直流电压送入ADC0809通道O(INO),编程采集IN0

输入的电压,在屏幕上显示出转换后的数据(用16进制数)。

YANGTZENORMALUNIVERSITY

+5

217

12二

ref(+)226

VCC2二35

244

GND253

reft-)2二62

27

1MHZ一1

280

JWL・10>CLOCK

282

IN-2ADD-C1

ADD-B

+5R60

IN-1ADD-A

18kI

R7

EOC二

18k8IOU

ALE

-26STARTcs

IN1IN-0

U298H〜29FH

ENABLE

图15.1

♦'♦YANGTZENORMALUNIVERSITY

三、编程提示

。ADC0809的INO□地址为298H,IN1口地址为299H;

。IN0单极性输入电压与转换后数字的关系为:

N-Ui/(Uref/256)

其中Ui为输入电压,UREF为参考电压,这里的参考电压为P

C机的+5V电源。

。编程流程如图15.2所示

YANGTZENORMALUNIVERSITY

显示子程序

主程序

图15.2

YANGTZENORMALUNIVERSITY

实验168255A并行口键盘扫描实验

一、实验目的

。掌握8255A编程原理。

。了解键盘阵列结构,学会读取按键的方法。

二、实验内容

本实验的实验电路如图16.1所示。它做在一块扩展电路板上

,用一根20芯扁平电缆线将实验板扩展插头J1与实验台上的扩

展插头J7相连,为扩展电路连接电源及外部总线。扩展电路板

上的数码管、键盘阵列既能由8279控制,也可以由外部电路控

制,其实现靠的是若干组短路子组成的控制选择开关KI、K2、

K3、K4、KBO、KB1、KB2。

YANGTZENORMALUNIVERSITY

当KI、K3、K4连接在8279一端时,数码管由8279控制,连

接在LS273一端时由外部总线通过LS273直接控制。当K2、KB1、

KB2、KB3连接在8279一端时,键盘阵列由8279控制,连接在

8255一端时由外接芯片8255控制。因为本实验为8255控制实验,

所以除了连接J1和J7外,还需要将选择开关K2、KB1、KB2、KB3

连接在8255一端,并将KAO-KA7,KBO-KB2连接到8255芯片A口,

CO,还需要连接8255芯片的片选,以使键盘阵列由8255芯片控

制。

8255A的端口A地址为:288H,端DC地址为:28AH,控制口

地址为:28BHo编程使得在键盘阵列上每按一个键后,微机屏

幕上有相应字符显示出来。

YANGTZENORMALUNIVERSITY

288h〜28Fh

♦…■

图16.1

♦'♦YANGTZENORMALUNIVERSITY

三、编程提示

1.识别键盘上的闭合键,通过采用行扫描法或列翻转法:

(1)行扫描法是使键盘上某一列线为低电平,而其余行接高电平,

然后读取列值;如果列值中有某位为低电平,则表明行列交点处的键

被按下;否则扫描下一行,直到扫完全部的行线为止。

(2)行反转法识别闭合键时,要将行线接一个并行口,先让它工

作在输出方式,将列线也接到一个并行口,先让它工作在输入方式;

程序通过输出端口向全部行线上送低电平,然后读取列线的值;如果

此时有某一键被按下,则必定会使某一列线值为零,程序再对两个并

行端口进行方式设置,使行线工作在输入方式,列线工作在输出方式,

并且将刚才读到的列线值从列线所接的并行端口输出,再读取行线上

的值;那么,在闭合键所在的行线上的值必定为零。这样,当一个键

被按下时,必定可以读到一对唯一的行值和列值。在我们提供的程序

中就采用行反转法来识别键盘按键。

YANGTZENORMALUNIVERSITY

2.在程序设计时,将各个键对应的代码(列值,行值)放在

一个表中,程序通过查表来确定具体按下的为哪一个键。

3.编程流程

主程序流程如图16.2所示。

设置数据段,显示提示信息

调艇盘扫描子薛-

--——是

是否R健——

否|、吟

温馨提示

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

最新文档

评论

0/150

提交评论