第 9章 人机交互设备及接口本章学习目标本章主要讲解常用的人机交互设备的工作原理,通过接口与
CPU的连接方法,以及对这些设备的编程方法,主要包括:
l 键盘的工作原理,与主机连接以及编程方法
l 鼠标的基本工作原理及编程方法
l 打印机的基本结构,工作原理以及编程方法
l 扫描仪,数码相机和触摸屏的工作原理及工作过程第 9章人机交互设备及接口
9.1 概述
9.2键盘与鼠标
9.3 视频显示接口
9.4 打印机接口
9.5 其它外设简介
9.1 概述所谓人机交互设备,是指人和计算机之间建立联系,交流信息的有关输入 /输出设备 。 这些输入 /输出设备直接与人的运动器官 ( 如手,口 ) 或感觉器官 ( 如眼,耳 ) 有关 。
通过它们,人们把要执行的命令和数据送给计算机 。 同时又从计算机获得易于理解的信息 。 所谓人机交换设备接口是指这些设备同计算机连接的用到的接口电路 。
常规的人机交互设备有键盘,显示器 ( LCD显示器和 CRT
显示器等 ),打印机,鼠标器等 。 这些设备的输入输出是以计算机为中心的,信息以二进制,十六进制码或 ASCII
码形式进行传送 。 这种形式,计算机容易接受和便于处理
,但人接收和处理起来却不方便,必须通过大脑的思维,
判断和转换 。
9.2 键盘与鼠标
9.2.1 键盘及接口电路
9.2.2 PC机键盘接口
9.2.3 鼠标及接口电路
9.2.1 键盘及接口电路
1,键盘的分类
( 1) 编码键盘编码键盘带有必要的硬件电路,能自动提供按键的 ASCII编码,并能将数据保持到新键控下为止,还有去抖动和防止多键,串键等保护装置 。 编码键盘软件简短,它根据编码就能识别是什么键按下,
但硬件电路复杂,价格较贵 。
( 2) 非编码键盘它仅仅是按行、列排列起来的矩阵开关,其它的工作如识别键、提供代码、去抖动等均由软件来解决。目前微型机中,一般为了降低成本,简化硬件电路,大多采用非编码键盘,所以下面仅介绍非编码键盘的接口电路。
2,键盘的工作原理常用的非编码键盘有线性键盘和矩阵键盘。线性键盘是指其中每一个按键均有 — 条输入线送到计算机的接口,若有 N
个键,则需 N条输入线,如图所示。
简单线性键盘在键盘中,为了检测哪个键被按下,通常用硬件方法或软硬件结合的方法,但无论采用哪种方法,
非编码键盘必须解决如下问题:
l 识别键盘矩阵中被按键;
l 清除按键时产生的抖动干扰;
l 防止键盘操作的串键错误;
l 产生被按下键相应的编码。
常用的按键识别方法有:行扫描法、行反转法和行、列扫描法。
。。
。。
。。



键 1
键 0
键 2
.
.
.
.
.
.
.
.
.

+ 5 V
D
D
D
图 9-1 简单线性键盘第0 行第1 行第2 行第3 行第4 行第
0
列第
1
列第
2
列第
3
列图 9-2 矩阵键盘
( 1) 行扫描法识别按键行扫描法识别按键的过程是:首先判断是否有键被按下,即先进行全扫描,将所有行线置成低电平;然后扫描全部列线,如果扫描的列值全是高电平,则说明没有任何一个键被按下;如果读入的列值不是全 1,则说明有键按下,再用逐行扫描的方法确定哪一个键被按下。先扫描第一行,
即置该行为低电平,其他行为高电平,然后检查列线,如果某条列线为低电平,则说明第一行与该列相交的位置上的按键被按下;如果所有列线全是高电平,则说明第一行没有键被按下,接着扫描第二行,以此类推,直到找到被按下的键。
( 2) 行反转法识别按键图 9-2 矩阵键盘行反转法又称线反转法,利用一个可编程的并行接口 ( 如
8255A) 来实现 。 其基本原理是:将行线接一个并行口,
先让它工作在输出方式,将列线出接到一个并行口,先让它工作在输入方式 。 编程使 CPU通过输出端口往各行线全部送低电平,然后读入列线的值 。 如果有某一个键被按下,
则必有一条列线为低电平 。 然后进行线反转,通过编程对两个并行端口进行方式设置,使连接行线的端口工作在输入方式,并将刚才读到的列线值通过所连接的并行口再输出到列线,然后读取行线的值,那么闭合键所对应的行线必为低电平,这样当一个键被按下时,就可以读到一对唯一的列值和行值 。
3,抖动和重键问题在键盘设计时,除了对键码的识别外,还有两个问题需要解决:抖动和重键 。
当用手按下一个键时,往往会出现按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,
也会出现类似的情况,这就是抖动 。 抖动的持续时间随操作员而异,不过通常总是不大于 10ms。 大家容易想到,
抖动问题不解决就会引起对闭合键的错误识别 。
去抖动电路如下图所示 。
键 稳 定前 沿 抖 动 后 沿 抖 动键 按 下







输 出 信 号
3,6 K
+ 5 V
3,6 K
+ 5 V
( a) 键开关抖动图 ( b) 硬件消除抖动示意图
9.2.2 PC机键盘接口
1,IBM PC键盘特点
IBM PC系列键盘具有两个基本特点:
( 1) 按键均为无触点的电容开关:
( 2) PC系列键盘属于非编码键盘
PC系列键盘不是由硬件电路向 CPU输出按键所对应的
ASCII码值,而是由单片机扫描程序识别按键的当前位置,然后向键盘接口输出该键的扫描码 。 按键的识别,键值的确定以及键代码存入缓冲区等工作全部由软件完成 。
PC系列机键盘主要由三种基本类型的键组成:
l 字符数字键:包括 26个大写英文字母和 26个小写英文字母,数字 0~ 9以用 %,$,#等常用字符 。
l 扩展功能键:如 Home,End,Backspace,Delete,
Insert,PgUp,PgD以及功能键 F1~ F10。
l 其它键键组合使用的控制键:如 Alt,Ctrl,Shift等 。
字符数字键给计算机传送一个 ASCII码字符,而扩展功能键产生一个动作,如按下 Home键能把光标移到屏屏幕的左上角,End键使光标移到屏幕上文本的末尾 。
2.微机与键盘的接口目前 PC机上常用的键盘接口有 3种,一种是老式的直径
13mm的 PC键盘接口;第二种是最常用的直径 8mm的
PS/2键盘接口;第三种是 USB接口的键盘。
扫描码,按键的识别采用行列扫描法,即根据对行线和列线的扫描结果来确定闭合键的位置,这个位置值称为按键的扫描码,通过数据线将 8位扫描码送往主机。
计算机系统与键盘发生联系通过硬件中断 09H或软件中断
16H。硬件中断 09H是由按键动作引发的中断。在此中断中对所有键盘进行了扫描码定义。
3,键盘缓冲区的作用键盘与 CPU通信时所使用的两个硬件中断程序,均借助于键盘缓冲区来传递键值 。
键盘缓冲区的作用体现在以下两个方面:
( 1) 可实现键盘实时输入要求 。 用户按键完全是随机的,
开避键盘缓冲区就可以实现实时处理键入的要求 。
( 2)满足随机应用的需要。应用程序需要键盘输入的时刻不一定与按键同步,键盘缓冲区可协调键盘与应用程序间的同步问题。此外,键盘缓冲区满足操作员快速键入的要求。
4,键盘中断调用我们可以用 BIOS中断,也可以用 DOS中断进行键盘输入 。
下面分别讨论这两种键盘中断 。
( 1) BIOS中断调用类型 16H的中断提供了基本的键盘操作,它的中断处理程序包括了 3个不同的功能分别根据 AH寄存器中的子功能号来确定 。
l 0号功能功能:从键盘读入一个字符入口参数,0送 AH
出口参数,AL中的内容为字符码,AH中的内容为扫描码 。
l1号功能功能:读键盘缓冲区的字符入口参数,1送 AH
出口参数:如果 ZF=0,则 AL中的内容为字符码,AH中的内容为扫描码;
如果 ZF=1,则缓冲区空 。
l 2号功能功能:读键盘状态字节入口参数,2送 AH
出口参数,AL中的内容为键盘状态字节功能:读键盘缓冲区的字符
Shif,Ctrl,Alt,Num Lock,Scroll,Ins和 Caps Lock这些键不具有 ASCII码,但按动了它们能改变其它键所产生的代码。 BIOS
调用 INT 16H中的 AH=2的功能可以把表示这些键状态的字节 —
键盘状态字节( KB-FLAG)回送到 AL寄存器中。其中高 4位表示了键盘方式( Ins,Caps Lock,Num Lock,Scroll)是 ON( 1)
还是 OFF( 0);低 4位表示 Alt,Shift和 Ctrl键是否按动。这 8个键有时又称为变换键。
D0=1 按下右 Shift键 D1=1 按下左 Shift键
D2=1 按下控制键 C trl D3=1 按下 Alt键
D4=1 Scroll Lock键状态已改变
D5=1 Num Lock键状态已改变
D6=1 Caps Lock键状态已改变
D7=1 Insert键状态已改变
D7 D6 D5 D4 D3 D2 D1 D0
【 例 9.1】 下面给出一个利用键盘 I/O功能的程序例。用 INT 16H
( AH=0)调用实现键盘输入字符。
DATA SEGMENT
BUFF DB 100 DUP(?)
MESS DB 'NO CHARACTER!',0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START,MOV AX,DATA
MOV DS,AX
MOV CX,100
MOV BX,OFFSET BUFF ;设内存缓冲区首址
LOP1:MOV AH,1
PUSH CX
MOV CX,0
MOV DX,0
INT 1AH ;设置时间计数器值为 0
LOP2,MOV AH,0
INT 1AH; ;读时间计数值
CMP DL,100
JNZ LOP2 ;定时时间未到,等待
MOV AH,1
INT 16H ;判有无键入字符
JZ DONE ;无键输入,则结束
MOV AH,0
INT 16H ;有键输入,则读出键的 ASCII码
MOV [BX],AL ;存入内存缓冲区
INC BX
POP CX
LOOP LOP1 ; 100个未输完,转 LOP1
JMP EN
DONE,MOV DX,OFFSET MESS
MOV AH,09H
INT 21H ;显示提示信息
EN,MOV AH,4CH
INT 21H
CODE ENDS
END START
( 2) DOS功能调用
DOS系统功能调用都是通过 INT 21H号中断调用实现的,
和键盘有关的功能调用主要有:
l 1号系统功能调用-键盘输入并回显 。
l 6号系统功能调用-直接控制台输入输出字符 。
l 7号系统功能调用-直接控制台输入无回显
l 8号系统功能调用-键盘输入无回显
l 0AH号系统功能调用-字符串输入到缓冲区
【 例 9.2】 利用 09H( 字符串显示 ) 和 0AH号系统功能调用,实现人-机对话 。 程序段如下 。
DATA SEGMENT
MESS DB'WHAT IS YOUR NAME?',0AH,0DH,'$'
IN_BUF DB 81
DB?
DB 81 DUP(?)
DATA ENDS
STACK SEGMENT
STA DB 100 DUP(?)
TOP EQU $-STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START,MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,TOP
DISP,MOV DX,OFFSET MESS
MOV AH,09H
INT 21H
KEYI,MOV DX,OFFSET IN_BUF
MOV AH,0AH
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
DISPO,LEA SI,IN_BUF
INC SI
MOV AL,[SI]
CBW
INC SI
ADD SI,AX
MOV BYTE PTR [SI],'$'
MOV DX,OFFSET IN_BUF+ 2
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
9.2.3 鼠标及接口电路
1,鼠标工作原理鼠标是一种快速定位器,利用鼠标可方便地定位光标在显示屏幕上的位置 。 当鼠标在平面上移动时,随着移动方向和快慢的变化,会产生两个在高低电平之间不断变化的脉冲信号,CPU接收这两个脉冲信号并对其计数 。 根据接收到的两个脉冲信号的个数,CPU控制屏幕上的鼠标指针在横 ( X) 轴,纵 ( Y) 轴两个方向上移动距离的大小 。 脉冲信号是由鼠标内的半导体光敏器件产生的 。
根据结构的不同,鼠标一般分为光机式和光电式,或称之为机械式和光学式鼠标。
2,鼠标接口鼠标接口分类:鼠标按接口分类主要有串口鼠标,USB鼠标及 PS/2鼠标 。
串口鼠标:串口鼠标一般采用 RS— 232C标准接口进行通信 。
USB鼠标:由于 USB设备具有即插即用,支持热插拔等优点,很多设备都采用了 USB接口,鼠标也不例外 。 选择 USB接口的鼠标先要考虑主机上是否具有空余的
USB接口 。
PS/2鼠标 PS/2鼠标是最早用在 IBM PS/2系列上的鼠标,
并由此而得名 。
3.鼠标编程应用:
Microsoft为鼠标提供了一个软件中断指令 INT33H,只要加载了支持该标准的鼠标驱动程序,在应用程序中可直接调用鼠标器进行操作。 INT33H有多种功能,可通过在 AX中设置功能号来选择。
9.3 视频显示接口
9.3.1 CRT显示器
9.3.2 CRT显示器接口电路编程方法
9.3.3 LED显示与 LCD显示
9.3.1 CRT显示器
1,显示器的分类显示技术是传递视觉信息的技术 。
根据显示原理的不同,目前至少已有 6种类型的显示器:
阴极射线显示器 ( CRT),发光二极管显示器 ( LED),
液晶显示器 ( LCD),等离子体显示器 ( PDP),电致发光显示器 ( EL),真空荧光显示器 ( VFD) 。
2,CRT显示器性能指标
CRT显示器是目前台式机中最常用的显示设备,显示器的性能通过下面列出的有关显示器主要技术指标反映出来 。
( 1)尺寸:显示器的尺寸是指显示器屏幕的对角线的长度。
( 2)分辨率:每帧画面的像素数决定了显示器画面的清晰度。分辨率( Resolution)是指整个屏幕每行每列的像素数,它与具体的显示模式有关。
( 3)点距:在显示器中,最常用的两个参数是尺寸和点距,
有时还包括最大分辨率。
( 4) 垂直扫描频率:显像管的电子束通过垂直扫描和水平扫描完成屏幕的重画,每完成一次垂直扫描就完成一个完整的屏幕刷新 。 垂直扫描频率 ( Vertical Scanning
Frequency),又称场频,刷新领率,指显示器在某一显示方式下,所能完成的每秒从上到下刷新的次数,单位为 H2。 垂直扫描频率越高,图像越稳定,闪烁感越小 。
显示器使用垂直扫描频率在 60-90Hz之间,一般在 72HZ
以上的刷新频率下,闪烁感明显减少,较好的彩显垂直扫描频率可达 100 Hz。
( 5)水平扫描频率:水平扫描频率( Horizontal Scanning
Frequency)又称行频,指电子束每秒在屏幕上水平扫描的次数,单位为 kHz。行频的范围越宽,可支持的分辨率就越高。
( 6)隔行扫描和逐行扫描:水平扫描有两种方法,即隔行扫描和非隔行扫描(逐行扫描)方法。采用哪一种方法对显示器的性能影响很大,现在一般显示器都采用远行扫描法。隔行扫描的方法是电子枪先扫描奇数行,后扫描偶数行,由于一帧图像分两次扫描,所以屏幕有闪烁现象。逐行扫描指逐行一次性扫描完组成一帧图像
( 7)带宽:带宽是显示器所能接收信号的频率范围,即最高频率和最低频率之差。它是评价显示器性能的很重要的参数之一。
3,CRT显示器的基本结构九针插头行扫帧扫亮度控制电源
3
4
5
6
9
8
放大放大放大水平同步信号垂直同步信号
R
G
B
偏转线圈荧光屏
4,视频显示原理在显示器上显示图像,实际上是在光栅扫描的过程中,将图像信号分解成按时间分布的视频信号去控制电子束在各条光栅位置上点的亮度和色彩 。 为使图像稳定且不消失,必须确保视频信号发送规律在时间上与水平和垂直同步扫描电流保持一致,同时,要把一帧图像存放在显示缓存中,以帧频的速率用缓存的内容刷新屏幕 。
显示器可以实现字符和图形两种显示方式,无论哪一种方式,都要求将视频信息存储到 VRAM中 。
5,视频显示标准
( 1) MDA标准,MDA( Monochrome Display Adapter)
是单色显示适配器 。 它是 IBM规定的 PC视频显示的第一个标准 。
( 2) CGA标准,CGA( Color Graphics Adapter) 是彩色图形适配器 。
( 3) EGA标准,EGA( Enhanced Graphics Adapter) 是增强图形适配器 。
( 4) VGA标准,VGA( Video Graphics Array) 是视频图形阵列 。
( 5) TVGA标准,TVGA是 Supper VGA产品,由 Trident
公司推出,它兼容 VGA全部显示标准,并扩展了若干字符显示和图形显示的新标准,具有更高的分辨率和更多的色彩选择 。
9.3.2 CRT显示器编程方法
1,设置显示方式 ( 0号功能 )
功能:设置显示器的显示方式 。
入口参数,( AH) =0,AL=设置方式 ( 0~7) 。
出口参数:无 。
下面列出部分显示方式号:
AL 显示方式
00 40× 25黑白文本方式
01 40× 25彩色文本方式
02 80× 25黑白文本方式
03 80× 25彩色文本方式
04 320× 200 4色图形方式
05 320× 200黑白图形方式
06 640× 200黑白图形方式
07 80× 25黑白文本方式(单色显示器)
【 例 9.3】 利用 BIOS中断调用将显示器设置成
80× 25彩色文本方式 。
指令序列如下:
MOV AH,00H
MOV AL,03H
INT 10H
2,设置光标类型 ( 1号功能 )
功能:根据 CX给出光标的大小 。
入口参数,( AH) =1,CH=光标开始行,CL=光标结束行 。
出口参数:无 。
3,设置光标位置 ( 2号功能 )
功能:根据 DX设定光标位置 。
入口参数,( AH) =2,( BH) =页号,( DH) =行号,
( DL) =列号 。
出口参数:无 。
4,读当前光标位置 ( 3号功能 )
功能:读光标位置 。
入口参数; ( AH) =3,BH=页号 。
出口参数,( DH) =行号,( DL) =列号,( CX) =光标大小 。
5,初始窗口或向上滚动 ( 6号功能 )
功能:屏幕或窗口向上滚动若干行 。
入口参数,( AH) =6,AL=上滚行数,( CX) =上滚窗口左上角的行,列号 。 ( DX) =上滚窗口右下角的行,
列号 。 ( BH) =空白行的属性 。
出口参数:无 。
6,初始窗口或向下滚动 ( 7号功能 )
功能:屏幕或窗口向下滚动若干行 。
入口参数,( AH) =7,( AL) =下滚行数,( CX) =下滚窗口左上角的行号,列号 。 ( DX) =下滚窗口右下角的行号,列号 。 ( BH) =空白行的属性 。
出口参数:无 。
7,读当前光标位置的字符与属性 ( 8号功能 )
功能:读取当前光标位置的字符值与属性 。
入口参数,AH=08H,BH=页号 。
出口参数,AL为读出的字符,AH为字符属性 。
8,在当前光标位置写字符和属性 ( 9号功能 )
功能:在当前光标位置显示指定属性的字符 。
入口参数,( AH) =9,( BH) =页号,( AL) =字符的
ASCII码,( BL) =字符属性,( CX) =写入字符数 。
出口参数:无 。
属性字节具体描述如下:
D7 D6 D5 D4 D3 D2 D1 D0
其中:
D7:表示显示闪烁 D3:表示辉度
D6,D5,D4:表示背景颜色
D2,D1,D0:表示前景颜色颜色值描述为:
数值 颜色 数值 颜色
000 黑 001 蓝
010 绿 011 青
100 红 101 绛
110 褐 111 浅灰
9,在当前光标位置写字符 ( 10号功能 )
功能:在当前光标位置显示字符 。
入口参数,( AH) =0AH,( BH) =页号,( AL) =字符的 ASCII码,( CX) =写入字符数 。
出口参数:无 。
功能同 09号,只是不设置属性 。
10,设置彩色组或背景颜色 ( 11号功能 )
功能:设置背景颜色 。
入口参数,( AH) =0BH,( BH) =0或 1,BH为 0时,设置背景颜色 。 当 BH为 1时,可设置彩色组,即为显示的像素点确定颜色组 。
( BL) =背景颜色 ( 0~ 15) 或彩色组 ( 0~ 1)
色彩代码为
00H为黑色 08H为灰色
01H为蓝色 09H为浅蓝色
02H为绿色 0AH为浅绿色
03H为青色 0BH为浅青色
04H为红色 0CH为浅青色
05H为绛色 0DH为浅绛色
06H为褐色 0EH为黄色
07H为浅灰 0FH为白色出口参数:无 。
【 例 9.4】 设置彩色图形方式,在屏幕中央显示一个带条纹的矩形 。
背景颜色设置为黄色,矩形边框设置为红色,横条颜色为绿色 。
程序序列如下:
CODE SEGMENT
ASSUME CS:CODE
START,MOV AH,0
MOV AL,4 ;设置 320× 200彩色图形方式
INT 10H
MOV AH,0BH
MOV BH,0 ;设置背景颜色为黄色
MOV BL,0EH
INT 10H
MOV DX,50
MOV CX,80 ;行号送 DX,列号送 CX
CALL LINE1 ;调 LINE1,显示矩形左边框
【 例 9.4】 设置彩色图形方式,在屏幕中央显示一个带条纹的矩形 。
背景颜色设置为黄色,矩形边框设置为红色,横条颜色为绿色 。
程序序列如下:
CODE SEGMENT
ASSUME CS:CODE
START,MOV AH,0
MOV AL,4 ;设置 320× 200彩色图形方式
INT 10H
MOV AH,0BH
MOV BH,0 ;设置背景颜色为黄色
MOV BL,0EH
INT 10H
MOV DX,50
MOV CX,80 ;行号送 DX,列号送 CX
CALL LINE1 ;调 LINE1,显示矩形左边框
【 例 9.4】 设置彩色图形方式,在屏幕中央显示一个带条纹的矩形 。
背景颜色设置为黄色,矩形边框设置为红色,横条颜色为绿色 。
程序序列如下:
CODE SEGMENT
ASSUME CS:CODE
START,MOV AH,0
MOV AL,4 ;设置 320× 200彩色图形方式
INT 10H
MOV AH,0BH
MOV BH,0 ;设置背景颜色为黄色
MOV BL,0EH
INT 10H
MOV DX,50
MOV CX,80 ;行号送 DX,列号送 CX
CALL LINE1 ; 调 LINE1,显示矩形左边框
MOV DX,50
MOV CX,240 ;修改行号,列号
CALL LINE1 ;调 LINE1,显示矩形右边框
MOV DX,50
MOV CX,81 ;置行号,列号
MOV AL,2 ;选择颜色为红色
CALL LINE2 ;调 LINE2,显示矩形上边框
MOV DX,150
MOV CX,81
CALL LINE2 ;调 LINE2,显示矩形下边框
MOV DX,60
LP3,MOV CX,81 ;置矩形内横线初始位置
MOV AL,1 ;选择横条颜色为绿色
CALL LINE2 ;调 LINE2,显示绿色横线
ADD DX,10
CMP DX,150
JB LP3 ;若行号小于 150,转 LP3继续显示横线
MOV AH,4CH
INT 21H ;否则返回 DOS
LINE1 PROC NEAR ;画竖线子程序
LP1,MOV AH,0CH ;写点功能
MOV AL,2 ;选择颜色为红色
INT 10H
INC DX ;下一点行号增 1
CMP DX,150
JBE LP1 ;若行号小于等于 150,则转 LP1继续显示
RET
LINE1 ENDP
LINE2 PROC NEAR ;画横线子程序
MOV AH,0CH
LP2,INT 10H
INC CX ;下一点列号增 1
CMP CX,240
JB LP2 ;若列号小于等于 240,则转 LP2继续显示
RET
LINE2 ENDP
CODE ENDS
END START
11,写像素 ( 12号功能 )
功能:指定位置写象素值 。
入口参数,( AH) =0CH,( DX) =行数,( CX) =列数,( AL) =
彩色值 ( AL的 D7为 1,则彩色值与当前点内容作 ‘ 异或 ’ 运算 ) 。
出口参数:无 。
12,读像素 ( 13号功能 )
功能:读指定位置的色彩值 。
入口参数,( AH) =0DH,( DX) =行数,( CX) =列数 。
出口参数,AL=彩色值 。
13,写字符并移光标位置 ( 14号功能 )
功能:在指定位置写字符并将光标后移 。
入口参数,( AH) =0EH,( AL) =写入字符,( BH) =页号,( BL)
=前景颜色 ( 图形方式 ) 。
出口参数:无 。
14,读当前显示状态 ( 15号功能 )
功能:读显示的显示状态 。
入口参数,( AH) =0FH。
出口参数,( AL) =当前显示方式,( BH) =页号,( AL) =屏幕上字符列数 。
15,显示字符串 ( 19号功能 )
功能:在指定位置显示字符串 。
入口参数,( AH) =13H,ES,BP=串地址,( CX) =串长度,( DX)
=字符串起始位置 ( DH:行号,DL:列号 )
出口参数:无。
若 ( AL) =0,则 ( BL) =字符串显示属性,串结构为,Char,
char,… char,光标返回起始位置 。
若 ( AL) =1,则 ( BL) =字符串显示属性,串结构为,Char,
char,… char,光标跟随串移动 。
若 ( AL) =2,串结构为,Char,attr,char,attr… char,
attr光标返回起始位置 。
若 ( AL) =3,串结构为,Char,attr,char,attr… char,
attr光标跟随串移动 。
即在 2,3方式下在每个字符的后面必须定义字符的显示属性 。
【 例 9.5】 在屏幕上以红底蓝字显示,WOLRD”,然后分别以红底绿字和红底蓝字相间地显示,SCENERY”。 程序段如下:
DATA SEGMENT
STR1 DB 'WORLD'
STR2 DB 'S',42H,'C',41H,'E',42H,'N',41H
DB 'E',42H,'R',41H,'Y',42H
LEN EQU $-STR2
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START,MOV AX,DATA
MOV DS,AX
MOV ES,AX ;初始化
MOV AL,3
MOV AH,0 ;设置 80× 25彩色文本方式
INT 10H
MOV BP,SEG STR1
MOV ES,BP
MOV BP,OFFSET STR1 ; ES,BP指向字符串首地址
MOV CX,STR2-STR1 ;串长度送 CX
MOV DX,0 ;设置显示的起始位置
MOV BL,41H ;设置显示属性
MOV AL,1 ;设置显示方式
MOV AH,13H ;显示字符串
INT 10H
MOV AH,3 ;读当前光标位置
INT 10H
MOV BP,OFFSET STR2 ; ES,BP指向下一个串首地址
MOV CX,LEN ;长度送 CX
MOV AL,3 ;设置显示方式
MOV AH,13H ;显示字符串
INT 10H
MOV AH,4CH
INT 21H ;返回 DOS
CODE ENDS
END START ;汇编结束
9.3.3 LED显示与 LCD显示
1,LED显示器在微机系统及接口电路中,发光二极管 LED( Light Emission
Diode) 常常作为一种重要的显示手段,它可以显示系统的状态,
以及数字和字符 。 ) LED是一种由半导体 PN结构成的固态发光器件,在正向导电时能发出可见光,常用的 LED有红色,绿色和黄色几种,现在己出现蓝色 LED。 LED的发光颜色与发光效率取决于制造材料与工艺,发光强度与其工作电流有关 。 它的发光时间常数约为 10~ 200μ s,其工作寿命可长达十万小时以上,工作可靠性高 。
( 1) LED显示器结构与原理
LED显示器有多种形式,常用的是七段 LED显示器和点阵 LED显示器 。 七段 LED显示器由七条发光线组成,按,日,字形排列,每一段都是一个发光二极管,这七段发光管可以称为 a,b,c,d、
e,f,g,有的还带有小数点 。 如图 9-13( a) 所示 。 这里仅讨论七段显示器 。 通过 7个发光组的不同组合,可以显示 0~ 9和 A~
F16个字母数字 。
LED显示块示意图如下图所示 。
a
bf
g
e
d
c
h
a
b
c
d
e
f
h
g
a
b
c
d
e
f
h
g
阳极阴极
+5V
( 2) LED的显示方式
LED显示器有静态显示和动态显示两种方式 。
LED静态显示方式,LED显示器工作在静态显示方式下,共阴极情况下阴极连在一起接地,这时应该用
,1”选通被显示的段;或共阳极情况下所有阳极连在一起接 +5V电压,用,0”选通即将显示的数码段 。
LED动态显示方式:在多位 LED显示时,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个 8位 I/O端口控制,而共阴极或共阳极点分别由相应的 I/O端口线控制 。
两种显示方式连接示意图如下图所示 。
接地或+ 5 V
I/O(1) I/O(2) I/O(3) I/O(4)
LED静态显示连接图段选
I/O
位选I / O
LED动态显示连接示意图
2,LCD显示器
LCD显示器的结构如下图所示 。
上偏振片上电极基板(正)
封接剂电极基板(负)
下偏振片反射板液晶材料电极
9.4 打印机接口
9.4.1 常用打印机及工作原理
9.4.2 主机与打印机接口
9.4.3 打印机中断调用
1,打印机概述
( 1) 打印机的分类按接口方式分类,可分为并行输出打印机和串行输出打印机按打印机印字技术分类,可分为击打式和非击打式两类 。
按印字方式分类,可将打印机分为行式和页式
( 2) 主要技术指标:
分辨率:一般用每英寸的点数 ( dpi) 表示,它决定了打印机的打印质量打印速度:打印机的打印速度一般用 CPS( Characters Percent
Second) 表示,即每秒钟打印字数 。
行宽:行宽也称为规格,是指每行中打印的标准字符数,可分为窄行和宽行 。
9.4.1 常用打印机及工作原理
2,打印头的工作原理永 久 磁 铁打 印 头 前 体打 印 针 固 定 螺 丝铁 芯打 印 头 线 圈衔 铁导 针 板打 印 针 体色 带打 印 纸打 印 字 辊打印机有串行和并行之分,因此,它和主机之间的接口也有串行与并行两种 。
1,CPU控制打印机的输出信号
SLCTIN选择输入 —— 仅当该信号为低电平时,才能将数据输出到打印机 。 它实际上是允许打印机工作的选中信号 。
INIT初始化 —— 该信号为低,则打印机被复位成初始状态,打印机的数据缓冲区被清除 。
AUTOFEEDXT自动走纸 —— 该信号为低有效时,打印机打印后自动走纸一行 。
STROBE选通 —— 这是用于使打印机接收数据的选通信号 。 负脉冲的宽度在接收端应大于 0.5μs,数据才能可靠地存入打印机数据缓冲区 。
9.4.2 主机与打印机接口
2,打印机状态输入信号
BUSY:忙信号 。 表示打印机处于下列状态之一 ( 1) 正在输入数据 ( 2) 正在执行打印操作; ( 3) 在脱机状态; ( 4)
打印机出错,忙信号为有效的高电平,打印机不接收数据 。
ACK:响应信号 。 打印机接收一个数据字节后就送回给适配器一个响应的负脉冲信号,表示打印机已准备好接收新数据 。
PE:纸用完 。 这是打印机内部的检测器发出的信号,若为高,
说明打印机无纸 。
SLCT:选择信号 。 该信号为高表示处于联机选中状态 。
ERROR:错误 。 当打印机处于无纸,脱机或错误状态之一时,
这个信号变为低电平 。
PC系列机的 ROM BIOS中有一组打印机 I/O功能程序,显示器中断调用号为 17H,共有 3个功能,用户可利用中断调用很方便地编写有关显示器的接口程序 。 下向介绍这组 I/O功能程序的调用方法 。
( 1) 0号子功能调用:打印字符并回送状态字节 。
入口参数,( AL) =字符的 ASCII码,( DX) =打印机号出口参数,( AH) =打印机状态字节
( 2) 1号子功能调用:初始化打印机并回送状态字节入口参数,( DX) =打印机号出口参数,( AH) =打印机状态字节
9.4.3 打印机中断调用
( 3) 2号子功能调用:取打印机状态字节入口参数,( DX) =打印机号出口参数,( AH) =打印机状态字节
17H的功能 1用来初始化打印机,并回送打印机状态到 AH寄存器 。 如果把打印机开关关上然后又打开,打印机各部分就复位到初始值 。 此功能和打开打印机时的作用一样 。 在每个程序的初始化部分可以用 17H的功能 l来初始化打印机 。
打印机的初始化指令序列如下:
MOV AH,01H
MOV DX,0
INT 17H
这个操作要发送一个换页符,因此这个操作能把打印机头设置在页的顶部 。 对于大多数打印机,只要一接通电源,就会自动地初始化打印机 。
THANK YOU VERY MUCH
本章到此 结 束,
谢谢 您的光 临 !