Upload
audra-velez
View
116
Download
3
Embed Size (px)
DESCRIPTION
第八章 人机交互设备接口. 8.1 键盘接口 键盘 : 是微型计算机系统中最基本的人机对话输入设备。 键盘按键 : 有机械式、电容式、导电橡胶式、薄膜式等多 种,但不管何种形式,其作用都是一个使电路接通与断开的开关。 1. 编码键盘 键盘 本身带有实现接口主要功能所必需的硬件电路。 2. 非编码键盘 键盘 只简单地提供按键开关的行列矩阵。. 一、键盘接口的功能和原理 1. 接口功能 键盘接口 必须具有去抖动、防串键、按键识别和键码产生 4 个基本功能。 ( 1 )去抖动 - PowerPoint PPT Presentation
Citation preview
第八章 人机交互设备接口8.1 键盘接口
键盘 : 是微型计算机系统中最基本的人机对话输入设备。 键盘按键 :有机械式、电容式、导电橡胶式、薄膜式等多种,但不管何种形式,其作用都是一个使电路接通与断开的
开关。1.编码键盘 键盘本身带有实现接口主要功能所必需的硬件电路。2.非编码键盘 键盘只简单地提供按键开关的行列矩阵。
一、键盘接口的功能和原理1. 接口功能 键盘接口必须具有去抖动、防串键、按键识别和键码产
生4个基本功能。( 1)去抖动 每个按键在按下或松开时,都会产生短时间的抖动。
抖动的持续时间与键的质量相关,一般为 5~20ms 。 所谓去抖动是指在识别被按键和释放键时必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。 去抖动问题可通过软件延时或硬件电路解决。
( 2)防串键 防串键是为了解决多个键同时按下或者前一按键没有释放又有新下时产生的问题。 ①双键锁定:当检测到有两个或两个以上的键被按下时,只把最后释放的键当作有效键,并产生相应键码。 ②N键轮回:当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。( 3)被按键识别 ①行扫描法:该方法的基本思想是,由程序对键盘进行逐行扫描,通过检测到的列输出的列输出状态来确定闭合键。 ②线反转法:该方法的基本思想是通过行列颠倒两次扫描来识别闭合键。
( 4)键码产生 一般在内存区中键立一个键盘编码表,通过查表获得被按键的键码。2. 接口原理 ①检查是否有键按下,其方法是:输出扫描码,使所有行线为 0。然后读入列线状态,检查是否有列线为 0。
若有,则表明有行线和列线接通,意味意有键按下。 ②去抖动:当有键按下时,延时 20ms 左右,待抖动消失后,在稳定状态下进行被按键 识别。 ③被按键识别:从第 0行第 0列开始,顺序对所有按键编号。通过逐行扫描确定被按键的编号。 ④产生键码:根据扫描得到的键编号查找键盘编码表,获得与被按键功能对应的键码。
例如,假定有一个 34的矩阵键盘通过并行接口芯片 8255A 与微机相连。 8255A 的 A定义为输出口,与键盘行线相连; B口定义为输入口,与键盘列线相连。接口硬件如图 8.1 所示。
PA0
PA1
PA2
PB3
PB2
PB1
PB0
8255ACPU
行 0
行 1
行 2
列 0 列 3列 1 列 2
图 8.1 非编码键盘接口
设 8255AA 口地址为 40H , B口地址为 41H ,控制寄存器地址为 43H ,则实现接口有关功能的程序如下: ; 8255A 初始化 MOV AL,82H ;方式 0 , A 口输出, B 口输入 OUT 43H,AL ;检查是否有键按下BEGIN : MOV AL,0 OUT 40H,ALWAIT : IN AL,41H AND AL,0FH CMP AL,0FH JZ WAIT
MOV CX,7FFH ;;延时去抖动L0 : LOOP L0 ; 识别被按下的键ST : MOV BL,03H ; 行数送 BL MOV BH,04H ; 列数送 BH MOV AL,0FEH ; 扫描码, 0 行为 0 MOV CL,0FH ; 列线屏蔽码送 CL MOV CH,0FFH ; 置键号初值为 -1L1: OUT 40H,AL ; 扫描一行 ROL AL DEC BL MOV AH,AL ; 修改扫描码并送 AH 保存 IN AL,41H
AND AL,CL CMP AL,CL ; 读入列线值,检查是否有列填线为 0 JNZ L2 ; 有列线为 0 时转去找该列线 ADD CH,BH ; 否则,指向该行末列键号 MOV AL,AH ; 取回扫描码 DEC BL JNZ L1 ; 行数减 1 ,未完成转下一行 JMP BEGIN L2: INC CH ; 该列非 0 ,检查下一列 RCR AL JC L2 ; 该列非 0 ,检查下一列 MOV AL,CH ; 该列为 0 ,键号送 AL
JMP KEYTABLE ;转查找键盘编码表子程序, 获取与键功能对应的键码二、可编程键盘 /LED 接口芯片 82791. 内部结构及各部分功能 8279芯片的内部结构框图如图 8.2 所示。图中各组成部分功能如下:( 1) I/O控制及数据缓冲器( 2)控制与定时寄存器及定时控制( 3)扫描计数器( 4)键盘去抖动与控制及返回缓冲器( 5) FIFO RAM 及状态寄存器( 6)显示 RAM、显示寄存器、显示地址寄存器
数据缓冲器 I/O 控制 FIFO RAM 的状态寄存器
显示地址寄存器 16×8显示 RAM
片选总线
控制与定时寄存器 8×8FIFORAM
键盘去抖与控制
显示寄存器定时控制 扫描计数器 返回缓冲器
时钟复位
OUTA0~3 OUTB0~3 BD SL0~3 RL0~3 SHIFTCVTL/STB
D0~7
RD
WRCS
A0 IRQ
图 8.2 8279 芯片的内部结构框图
2. 外部特性 电信号连接示意图可知,40条引线中与 CPU一侧相关的共15 条,与键盘、显示接口相关的共 23条,电源、地各一条。
8279
RL0~RL7
SHIFTCNTL/STB
SL0~SL3
OUTA0~3
OUTB0~3
BD
D0~D7
IRQ
RDWRCSA0
CLKRESET
+5VGND
CPU
键盘
显示器
各引线功能如下:D0 ~ D7 :双向数据线,用于 CPU和 8279芯片之间传送数据、命令和状态信息。CLK:系统时钟,为 8279芯片提供内部定时。RESET:复位线,高电平时复位 8279芯片到: 16个字符显示(左进方式);编码扫描键盘(双键锁定);时钟设置为 31.CS:片选线,由 I/O 端口地址译码器产生低电平时 8279芯片被选中。RD:读信号,低电平有效。WR:写信号,低电平有效。
A0:地址线,进行片内端口选择。为 0时,选中数据寄存器;为 1时选中命令 /状态寄存器。
IRQ:中断请求线,高电平有效,向 CPU 申请中断。SL0~ LSL3:扫描线,用来扫描键盘或显示器,可编程设定为
编码输出或译码输出。RL0~ RL7:返回线,用作键盘矩阵列线的返回信号输入。SHIFT:移位信号,高电平有效,是键盘数据的 D6位,用于扩
充键的功能,如作为上、下档功能键。CNTL:控制线,高电平有效。键盘工作方式时,是键盘数据的
D7位,用于扩充键的控制功能 ------控制功能键。OUTA0~ OUTA3, OUTB0~ OUTB3: A组、 B组显示数据切换时或
收到消隐命令时,将显示消隐。
3.命令字 当引脚 A0=1时, CPU向 8279芯片写入命令字。8279芯片可执行的命令共有8条,它们决定了8279芯片的操作方式。命令字格式如下:
特 征 位 命 令 参 数D7 D6 D5 D4 D3 D2 D1 D0
( 1)设置键盘及显示方式 设置键盘及显示方式命令字格式为:D7D6D5 ( 000 ):命令特征码。D4D3 ( DD):用来设定输入方式,定义如表 8.2 所示。D0 ( K0 ):用来设定扫描方式。 K0=0 为编码扫描; K0=1 为译码
扫描。
D D 方 式 0 0 0 1 1 0 1 1
8 个字符显示,左进方式16 个字符显示,左进方式8 个字符显示,右进方式16 个字符显示,右进方式
K2 K1
方 式
0 0 0 1 1 0 1 1
扫描键盘输入,双键锁定扫描键盘输入, N 键轮回
扫描传感器输入选通输入
表 8.1 显示输出方式 表 8.2 输入工作方式
( 2)设置时钟频率 设置时钟频率命令格式为:
D7 D6 D5 D4 D3 D2 D1 D0
0 10 P P PP P
其中D7D6D5(001):命令特征码。D4~D0( PPPPP):用来设定对外输入 CLK的分频系数 N( N值可
为2~ 31 ),以便获得 8279芯片内部要求的100kHz的基本频率。(3)读 FIFO RAM读 FIFO RAM命令字格式为:
D7 D6 D5 D4 D3 D2 D1 D0
0 01 × AI A1A2 A0
其中D7D6D5 ( 010 ):命令特征码。D4 ( AI):自动地址增量标志位。当 AI=1 时,每次读出后地址 自动加 1 指向下一存储单元 AI=0 时,读出后地址不
变。
D2D1D0( A2A1A0):在键盘方式中无意义,都写 0.D3 :不用。( 4)读显示 RAM 读显示 RAM 命令字格式为:
D7 D6 D5 D4 D3 D2 D1 D0
0 11 AI A3 A1A2 A0
其中D7D6D5 ( 011 ):命令特征码。D4 ( AI):自动地址增量标志。 AI=1 时,每次读后地址自动增
1 ; AI=0 时,读后地址不变。( 5)写显示 RAM(略)
( 6)禁写显示 RAM/消隐(略)( 7)清除(略)( 8)结束中断 /设置错误方式(略)4.状态字 8279芯片的状态字主要用来指示 FIFO RAM中
的字符数和有无错误发生。其格式为:D7 D6 D5 D4 D3 D2 D1 D0
D0 0S/E U F NN N
5. 8279芯片应用举例 TP86A 单板微型计算机使用 8279芯片作为键盘
及 LED 显示器接口,电路原理图如图 8.4 所示。
8279
RL0
SHIFTCNTL
OUTA0~3
OUTB0~3
D0~D7
RDWR
CSA0
CLK
RESET
TP86
SL0SL1SL2SL3
RL0
键盘矩阵
A74LS45
BCD
74LS45段驱动器A B CY0 Y1 Y2
00
07
+5V
译码器74LS156
图 8.4 TP86 单板机键盘 / 显示器接口电路
译码器
①键盘输入程序段,执行下面程序段后可在内存400H单元中找到被按下键的代码。
MOV DI , 400H ; DI 指向存放按键代码的 内存单元 MOV DX , 0FFEAH MOV AL , 00H ;设定键盘输入方式 IN AL , DX OUT DX , AL MOV AL , 39H ;设定键盘输入方式 OUT DX , ALLOOP1 : MOV DX , 0FFEAH IN AL , DX
TEST AL , 07H ;检查是否有键入代码 JZ LOOP1 ;无再查 MOV AL , 40H ;有键入代码,指定读 FIFO OUT DX , AL MOV DX , 0FFE8H IN AL , DX ;读出数据 MOV [DI] , AL ;存入内存 400H 单元 HLT ;暂停②显示输出程序段,执行下面程序段后从 0位开始显示 19991208八个字符,假定八个字符的字形码存于内存 300H 开始的8个单元中。
MOV SI , 300H ;设置显示字符内存区地址指针 MOV CX , 08H ;设置显示字符数 MOV DX , 0FFEAH MOV AL , 00H ;设置显示输出工作方式 OUT DX , AL MOV AL , 39H ;分频系数为 25 ,产生 100kHz 扫描频率 OUT DX , AL MOV AL , 90H ;写显示 RAM 命令,从 0 号单元起, 地址自动加 1L : MOV DX , 0FFE8H MOV AL , [SI] OUT DX , AL ;从内存中取显示代码送显示 RAM INC SI ;修改地址指针
DEC CX ;修改计数器值 JNZ CX HLT 300H DB 7FH , 3FH , 5BH , 06H , 67H , 67H , 06H三、 PC 微机键盘及接口① 键盘由单片机、译码器和 16行×8 列的键开关矩阵三大部分
组成。② 按键采用电容开关,即按键时的上下动作使电容量发生变化,
从而实现开关接通或断开的目的。③ 它是一种由单片机扫描、编码的智能化键盘。④ 它是一个与主机箱分开的独立部件,通过一根五芯电缆与主
机相连接。 硬中断程序:中断号为 09H ,当按键动作引发 IRQ1 时,该
程序负责把键盘扫描码转换成 ASCII码,然后存入键盘缓冲区。 软中断程序 INT 16H: ROM BIOS中的键盘功能调用程序,该
调的功能是从键盘缓冲区取出按键产生的ASCII码。2.键盘接口电路(1)接口功能 串行接收键盘送来的扫描码,完成串行转换后保存; 收妥一个键盘扫描码后,立即产生一个中断请求信号; 保存的扫描码可供 CPU读取,并通过软件进行相应转换处理; 接收CPU的命令,输出到键盘,并接收键盘回送的响应信号。(2)接口电路 根据接口电路应完成的功能,接口电路可由串行并转换电路、
时钟同步电路、中断请求触发器及一些门电路组成。
SEDSS/PD0
OECLR
CLKG
OAOB
OH
OH
D1
1
DCLKCLRPR
+5V
Q
Q
DCLKR
Q
DCLKR Q
+5V
LS322
8255APB7
PB6
CLKDATA
RESETGND+5V
PCLKRESET
8255APA7
PA6
PA0
IRQ1
图 8.5 微机键盘接口电路
初始化程序中对 8255A 的设置: MOV AL , 99H ;模式 0 , A 口, C 口输入, B 口输出 OUT 63H , AL ;将方式控制字写控制寄存器 MOV
AL , 40H ; PB7=0 , PB6=1 , 允许 LS322 工作方式输出 OUT 61H , AL IRQ1中断服务程序中扫描码的读取与控制: IN AL , 60H ;读 8255AA 口获 取扫描码 PUSH AX ;将 AL 中的扫描码入栈保存 IN AL , 61H ;读 B 口原输出状态 MOV AH , AL ;暂存于 AH OR AL , 80H ;置 PB7=1 ,清除 LS322T 和中断请求触发器
OUT 61H , AL POP AX ;弹出扫描码至 AL 中 MOV AH , AL ; AH 中也为键扫描码键处理 8.2 CRT 显示器接口 显示器是计算机系统的基本设备,主要用于程序输入、程序调试、信息显示、结果显示等。(如: MDA 单显示器、低分辩率的 CGA 、 EGA等)当前流行的都分辨率可达 1024×768 、 1280×1042 等的高分辨率 Super VGA显示器 .
一、显示器文本方式 I/O 显示的文本方式( TEXT MODE)对于所有类型的显示器( MDA 、 CGA 、 EGA 、 VGA 、 Super VGA 等)的操作方法和显示原理都基本相同。在文本方式下,显示器的屏幕一般被分成 80×25 ( 80列,25行)的网络,所有的字符就在这 2000 个( 80×25 )的网格上显示,屏幕上显示的每个字符都在显示缓冲区( VRAM)中对应一个存储单元,即屏幕的存储器映象。在彩色文本方式下,显示文本的视频缓冲区首地址为 B800 :000H ,每个字符占用两个存储器单元,其中每一具单元为显示字符的 ASCII码,第二个单元为该显示字符的属性。
1.字符显示原理 显示器字符的方法以点阵为基础。这种方式将字符分解成 m× n个点阵组成阵列,将点阵存入由 ROM 构成的字符发生器中,在 CRT进行光栅扫描的过程中,从字符发生器中依次读出点阵,按照 点阵的 0和 1控制扫描电了束开关,在屏幕中形成字符。字符字符点阵的多少取决于字符显示质量和字符块大小,在 PC机中字符窗口为 9×14点阵,字符为 7× 9 点阵。 在 PC机中,整个屏幕的字符共占用 4000字节的视频存储器空间( B800 : 0H-B800 : F9FH ),彩色文本显示的视频缓冲区首地址为 B800 : 0H ,单色文本为 B000 : 000H 。
移位寄存器S L
视频信号
字符发生器ROM
VRAMRA3~RA0
ASCII 码
OSC I/ 9 I/ ( 80+18 ) I/ ( 9+5 ) I/ ( 25+1 )点振荡器( 16.257MHz )
点计数器 水平地址计数器
加载控制 水平消隐 行间消隐 垂直消隐
光栅地址计数器 垂直地址计数器
水平同步电路 垂直同步电路水平同步信号 垂直同步信号
CPU 控制
字符时钟
定时控制电路
VRAM 与显示屏的对应关系
2.字符属性 显示器上的每个字符在视频缓冲区( VRAM)由 2个
字节表示,第一个字节是显示字符的 ASCII码,而第二具字节是该显示字符的司性。字符的必性确定了该显示字符的特性,如显示字符的颜色、背景颜色、闪铄等,在彩色文本方式下,字符的属性定义如图所示。
其中:1) BI=1 :表示该显示的字符闪烁;2) D6 ~ D4 :表示该显示字符的背景颜色 RGB ;3) D3 ~ D0 :表示该显示字符的前景颜色 RGB ;
BI Red Green Blue I Red Green Blue闪烁位 背景颜色 背景颜色
D7 D6 D5 D4 D3 D2 D1 D0
彩色文本方式字符属性 如把 80×25模式的整个屏幕全部刷成字符 A ,属性为红色前景、蓝色背景、显示字条款闪烁的程序段为:MOV AX , 0B800H ;彩色文本方式 VRAM 首址MOV ES , AXMOV DI , 0MOV CX , 2000MOV AH , 10010100B ;显示属性:闪烁,蓝色背景,红色前景REP STOSW ; AX→VRAM 单元中,相当于显示到屏幕上
在上述程序中,如果把字符属性改为 08(黑色背景,灰白色前景,不闪烁),同时把显示的字符‘ A’改为 20H(空格),上述程序则是一个清屏程序。 在彩色文本方式下,视频缓冲区( VRAM)的首地址为B800 : 0H ,屏幕上显示的字符依次与 B800 : 0H 后的存储器单元相应,因此,直接写屏就是把需显示的字符及属性直接写入 VRAM中,就达到了彩色文本显示的目的。直接写屏的子程序如下: WRITE_SCREEN PROC NEAR PUSH ES PUSH DI SHL DX , 1 SHL DX , 1
SHL DX , 1SHL DX , 1 ;行坐标 ×16MOV DI , DXSHL DX , 1SHL DX , 1 ;行坐标 × 64ADD DI , DX ;行坐标 × ( 64+16 )ADD DI , CX ;视频缓冲区偏移 = 行 × 80+ 列MOV DX , 0B800H ; VRAM 首地址MOV ES , AX STOSW ;字符和属性 VRAMPOP DIPOP ESRETWRITE-SCREEN ENDP
In early 2001,….and researchCorporation completed Another year of
80x25 CRT
VRAM
0 行1 行
i 行
B800:00
B800:A7H f 2 行 7 列
在彩色文本直接写屏中,显示位置在视频缓冲区 VRAM的偏移地址可由公式: VRAM 偏移地址 =80× 行坐标 +列坐标,来进行计算。屏幕字符的显示通常使用中断(如 INT 10H 、 INT 21H 等)来进行,中断字符显示方式速度较慢,但通用性和兼容性好。二、显示器图形接口 显示器的图形方式就是利用显示器的像点( Pixel)来构成图形、图像、各种显示适配器有不同的显示模式和分辨率,在下表中主要列出了标准的显示适配器的各种显示模式的图形分辨率、颜色数和视频缓冲区地址。各种显示适配器(显示卡)都是向下包含的,如 TVGA显示适配器包含 VGA 以下的所有显示适配器的各种显示模式。
显示类型 模式号 显示分辨率 VRAM 首地址MDA 07 720× 350 ( 2C ) B000 : 0HCGA 04
06320× 200 ( 4C )640× 200 ( 2C ) B800 : 0H
B800 : 0HEGA 0D
0E0F10
320× 200 ( 16C )640× 200 ( 16C )640× 350 ( 4C )
640× 350 ( 16C )
A000 : 0H A000 : 0H A000 : 0H A000 : 0H
VGA 111213
640× 480 ( 2C )640× 480 ( 16C )320× 200 ( 256C )
A000 : 0H A000 : 0H A000 : 0H
TVGA 5B5C5D5E5F62
800× 600 ( 16C )640× 400 ( 256C )640× 480 ( 256C )800×600 ( 256C )1024× 768 ( 16C )
1024× 768 ( 256C )
A000 : 0H A000 : 0H A000 : 0H A000 : 0H A000 : 0H A000 : 0H
显示器各种图形模式下的分辨率
MDA 、 CGA 、 EGA 都是数字式的显示适配器,这类显示器由于颜色数较少, VGA 、 Super VGA均是采用 RGB三基色分量的模拟显示器,由于计算机送出颜色索引值,通过查找索引寄存器取得 DAC表中的 RGB分量亮度值,再由 DAC(数 /模转 换器)输出 RGB 的模拟信号供显示器显示。采用 RGB模拟信号的显示器的颜色数多,颜色过渡平滑,色彩鲜艳,更接近自然颜色。 1 .VGA 图形显示原理 VGA ( Video Graphics Array)显示适配器是采腻和 RGBA模拟显示的接口卡, VGA 显示适配器的视频存储器 VRAM与显示器屏幕上的像点有两种映射方式:彩色位面法和压缩像素法。( 1)彩色位面法 从 EGA ( Enhance Graphics Adapter---- 增强型图形适配器)适配器开始首先采用了彩色位面显示方式,所谓彩色位面
就是把视频缓冲区 VRAM按照一定的大小(与显示模式有关,不同的显示模式一页的大小也不同)划分为几个独立的位面(页)每个页面被用来控制一种颜色分量( RGB ),每个显示像至少在页面中占一位。如图 8.7所示。
32
10
I
R
G
BVGA16 色显示模式
………..
101
000
000
100
……
…………
……
图 8.7 VGA 显示器 VRAM 与显示屏映射关系
在 VGA显示适配器中,彩色位面法用于 16 色模式。图形16 色显示时把 VRAM划分为 4个彩色位面。屏幕上的像点特征由 4个位面的值共同确定。在 12H ( 640×480×16C)模式下,一页的大小为 640/8×480=38400B ,因此一屏图形或图像共占VRAM 空间为 38400×4=153600字节。 VRAM与物理显示屏的对应关系(省去了颜色索引和 DAC处理)如图 8.7所示。 一个彩色位面上的一个字节对应屏幕上的 8个像点 Pixel),在缺省调色板一个位面实际上代表某一基色 (RGB),因此4 个位面共可以表示 16种颜色。一般来说,由 0~ 3位面合成的值是一个颜色索引值,而不是真正显示器所显示的颜色值,真正显示的颜色必须通过索引寄存器查到,再通过 DAC表产生,如图 8.8 所示。
01
11
颜色索引寄存器
001001
模 块 寄存器
颜色选择寄存器
D0D1
D2D3
D4D5
D6D7
Red
000000
Green
000000
Blue
0000000
63
D/A D/A D/A
到模拟显示器
DAC 转换表
VRAM
0111
0
7
15
图 8.8 VGA 位面法 VRAM 内存映像
下面是采用直接写点的 640× 480 ( 16 色)子程序,在应用程序中可以直接调用
入口参数: AX=行坐标; BX=列坐标; CH= 颜色值VGA-COLOR16 PROC NEARMOV DX , 0A000H ;视频缓冲区首地址MOV ES , DX MOV DX , 80 ;一行字节数MUL DX ;行 × 80MOV DI , AXMOV AX , BXMOV CL , 3SHR AX , 3 ;列 /8
ADD DI , AX ; VRAM 偏移 = 行 × 80+ 列 /8;分离字处理MOV CL , BLAND CL , 7XOR CL , 7MOV BL , 80HSHL BL , CL ; BL= 图形点分离字;寄存器设置MOV DX , 3C4H ;定序器MOV AL , 2OUT DX , AL ;选映射模式寄存器INC DXMOV AL , OFH ;开放 4 个彩色位面OUT DX , AL
MOV DX , 3CEH ;图形控制器端口MOV AL , 5 ; 5 号:写模式寄存器OUT DX , ALINC DXMOV AL , 2 ;设置写模式 2 :锁存写点OUT DX , ALDEC DXMOV AL , 8 ;选择 8 号:分离字寄存器OUT DX , ALINC DXMOV AL , BLOUT DX , AL ;写入分离字
MOV AL , ES : [DI] ;读出数据MOV ES : [DI] , CH ;写入新的颜色数据RET ;返回( 2)压缩像素法 在压缩像素法中, VRAM中的一个字节对应屏幕上的一个像点( Pixel),由于一个字节取值 0-255 ,所以屏幕上的点就有 256种颜色的变化( 256 色)。 VRAM与屏幕的映射关系如图 8.9所示。为了与彩色位面法和真彩色的彩色位面相对应,在习惯上把 256 色的显示方式也称为 8位的彩色位面,相对应 256 色下生成的图像、图形文件称为 8位面的图像或图形。
A000:0000 0100101010100111 …………
11101001
0001 0002
VGA256 色显示模式
……..
VRAM
……..
图 8.9 VGA压缩像素法 VRAM内存映象 在压缩像素法中, VRAM的一个字节的内容直接通过 DAC表查出对应的屏幕显示颜色值,通过 RGB三基色的 D/A 转换器显示到屏幕上。压缩像素法与彩色位面法一样,在不同的分辨率模式下,其一屏图形或图你所占的 VRAM的大小也不相同,
如模式为 13H ( 320× 200× 256C )时,一屏图像大小为 64000 字节,为 5DH ( 640× 480× 256C )时,一屏图像的大小需 256KB 的 VRAM 空间。 VGA_COLOR256 PROC NEARMOV DX , 0A000H ;视频缓冲区首地址 MOV ES , DXMOV DX , 320 ;一行字节数MUL DX ;行数 × 一行字节数 ADD AX , BX ; VRAM 偏移 = 行数 × 一行字节数 +列MOV DI , AXMOV ES : [DI] , CH RET ;返回
2.DAC 数模转换器 数模转换器( DAC)是 VGA 和 VGA 图形适配器所特有寄存器组。 DAC能将数字信号转换为模拟信号,以驱动 VGA 或 SuperVGA 的 RGB模拟显示器。由于模拟信号可以连续变化,因此显示器显示的色彩变化可以非常平滑,适合人的视觉感受。
DAC 数模转换器由 3个视频数模转换寄存器( RGB )和 DAC电路组成,它们分别控制红( R)、绿( G)、蓝( B)原色亮度值( RGB )。每个寄存器为 6 位,其亮度值(色饱和度)范围为 0~ 63 , 3个寄存器一共可以产生 64× 64× 64=266144种颜色。同时 DAC还必须从查色表(颜色索引寄存器)中取得颜色编码,以决定屏幕上应显示何种颜色。查色表为 8位,所以 DAC一次只能从醒色表中转换 28=256种颜色。对于假彩色显示适配器(显卡)如: VGA 、 Super VGA 等,虽然 DAC能产生266144 种颜色,但同一时刻同屏上只能显示 256种颜色。 DAC的操作一般可通过 I/O 端口或 BIOS的 INT 10H 相应功能来进行,常用 I/O 端口地址如下:
3C7H :查色表读索引寄存器 3C8H :查色表写索引寄存器 3C9H :查色表数据寄存器 用 BIOS 的 INT 10H 可以方便地对 DAC 进行操作,主要功能有:AH=10H AL=10H 设置某一颜色的 RGB 值 AL=12H 设置一组颜色的 RGB 值 AL=15H 读某一颜色的 RGB 值 AL=17H 读一组颜色的 RGB 值
8.3 打印机接口 打印机是微型计算机系统中一种最常用、最重要
的硬拷贝输出设备,它可以打印字母、数字、文字、字符和图形等。打印机的种类很多,性能差别也很大。
一、打印机的结构及各部分功能 针式打印机的主要工作是接收外部送来的数据或控制
命令,然后根据控制命令的要求,将要打印的数据变为打印头的动作,把数据记录在打印纸上。
1.打印机构 打印机由打印头、字车机构、走纸机构、色带机构、
检测器等组成。
2. 控制逻辑电路 控制逻辑电路着打印机各部分的动作,它由微处理器、
行缓存 RAM、 ROM和打印头驱动电路等主要部分组成。( 1)微处理器 微处理器是控制逻辑电路的核心,通常为 6800 、 Z80
或 8085 等 8位 CPU,具体随不同打印机而异。 CPU主要完成两方面功能:一是根据接收的控制命令和打印数据,完成指定的打印,并将打印机的状态返回给系统和操作面板;二是控制走纸步进电机和字车驱动电机的动作,完成字车运动、走纸、回车等辅助打印动作。
( 2)行缓存 RAM 行缓存 RAM用来存储一行待打印的点阵数据,其容量
一般为几千字节到几十千字节。
( 3) ROM ROM存储器有两种作用:一是用于固化 CPU的监控程序,当打印机上电后, CPU,首先要执行固化在 ROM中的监控制程序,对打印机进行初始化并监视操作面板的命令和的状态;二是用于固化点阵字库数据。( 4)打印头驱动电路 打印头驱动电路接受来自行缓存 RAM中的打印点阵数据,根据数据是“ 1”或“ 0”,驱动打印头中的钢针出针或不出针。3. 操作面板 操作面板是人机对话的界面,不同打印机在面板上的按钮与指示可能设置不同,但其功能包括电源接通或断开、联机或
脱机、自检、报警和走纸控制等。通常面板上的开关和指示灯含义如下:①电源开关和指示:当电源开关闭合时,打印机电,对应的指
示灯亮。②联机开关和指示:当联机开头闭合时,对应的指示灯亮,表
示打印机处于联机状态,可以接收主机送来的数据进行打印。③自检开关:在联机关断开的情况下,闭合自检开关,自检指
示灯亮,此时打印机进入自检并进行试打印。④报警指示:当打印机纸用完或打印机上盖板打开时,报警灯
亮,或蜂鸣器发出声响。⑤走纸开关:在联机开关断开的情况下,每按一下走纸开关,
使打印纸向前滚过一页。当设有逐行走纸开关时,每按一下,打印纸向前走一行。
4. 电源单元 电源单元将交流电压转换成打印机所需要的两种直流电压。二、打印机接口方法 按打印机外部接口特性分类,打印机可分为串行打印机和并行打印机两大类。1.并行打印机接口标准(1)信号线的定义 Centronics标准定义了36芯插头座,其中数据线8根,控制输入线4根,状态输出线5根, +5V电源线1根,地线 15根,另有3根空闲。(2)数据传送时序 在 Centronics标准定义的信号线中,最主要的是8根并行数
STROBE
BUSY
ACK
据线, 2根握手联络信号线 STROBE、 ACK和 1根状态线 BUSY。接口数据传送时序如图 8.14 所示。
图 8.14 并行打印机接口数据传送时序2. 接口逻辑结构 按照 Centronics标准和工作时序设计的一个典型打印机接口逻辑框图如图 8.15 所示。它由数据收发器、命令译 码器、输入数据缓冲器、输出数据寄存器、控制寄存器、状态寄存器和集电极驱动器等组成。
数据收发器
输出数据寄存器输入数据缓冲器
控制寄存器状态寄存器( 2 )状态寄存器( 1 )
命令译码器
集电极驱动器
数据线
控制信号
打印机
状态信号
8
8
4
4
5
5
4
8
8
8D0~D7
DIR
AENA0~A9
复位IRQ
IORIOW
图 8.15 并行打印机接口逻辑框图
3.IBM-PC打印机接口与打印机的连接
打印机接口板与
打印机之间的信号连接关系如右图 8.17所示。
1
2
IBM PC
打印机接口板25 脚D 型插座
1
2
IBM PC
打印机接口板25 脚D 型插座
选通 STROBE
DATA0
DATA1
DATA2
DATA3
DATA4
DATA5
DATA6
DATA7
17 36
18~25
31
32
确认 ACK
忙 BUSY无纸 PE
联机 SLCT
AUTO FEED
出错 ERROR
初始化 INIT
选择输入 SLCTIN
GND19~30
14
···
···
图 8.17 打印机接口板与打印机信号线连接图
三、打印机接口设计1. 可编程的并行打印机接口设计2. 不可编程的并行打印机接口设计3. 硬件组成4. 接口驱动程序 主机对打印机适配器的编程方式有 3 种。( 1 )程序查询方式( 2 )硬件中断方式( 3 )软件中断方式