590 likes | 779 Views
第八章 人机交互设备接口. 8.1 键盘接口 键盘 : 是微型计算机系统中最基本的人机对话输入设备。 键盘按键 : 有机械式、电容式、导电橡胶式、薄膜式等多 种,但不管何种形式,其作用都是一个使电路接通与断开的开关。 1. 编码键盘 键盘 本身带有实现接口主要功能所必需的硬件电路。 2. 非编码键盘 键盘 只简单地提供按键开关的行列矩阵。. 一、键盘接口的功能和原理 1. 接口功能 键盘接口 必须具有去抖动、防串键、按键识别和键码产生 4 个基本功能。 ( 1 )去抖动
E N D
第八章 人机交互设备接口 8.1 键盘接口 键盘: 是微型计算机系统中最基本的人机对话输入设备。 键盘按键:有机械式、电容式、导电橡胶式、薄膜式等多 种,但不管何种形式,其作用都是一个使电路接通与断开的开关。 1.编码键盘 键盘本身带有实现接口主要功能所必需的硬件电路。 2.非编码键盘 键盘只简单地提供按键开关的行列矩阵。
一、键盘接口的功能和原理 1. 接口功能 键盘接口必须具有去抖动、防串键、按键识别和键码产生 4个基本功能。 (1)去抖动 每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为5~20ms。 所谓去抖动是指在识别被按键和释放键时必须避开抖动状 态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。 去抖动问题可通过软件延时或硬件电路解决。
(2)防串键 防串键是为了解决多个键同时按下或者前一按键没有释放 又有新下时产生的问题。 ①双键锁定:当检测到有两个或两个以上的键被按下时, 只把最后释放的键当作有效键,并产生相应键码。 ②N键轮回:当检测到有多个键被按下时,能根据发现它 们的顺序依次产生相应键的键码。 (3)被按键识别 ①行扫描法:该方法的基本思想是,由程序对键盘进行逐 行扫描,通过检测到的列输出的列输出状态来确定闭合键。 ②线反转法:该方法的基本思想是通过行列颠倒两次扫描 来识别闭合键。
(4)键码产生 一般在内存区中键立一个键盘编码表,通过查表获得 被按键的键码。 2.接口原理 ①检查是否有键按下,其方法是:输出扫描码,使所 有行线为0。然后读入列线状态,检查是否有列线为0。若有,则表明有行线和列线接通,意味意有键按下。 ②去抖动:当有键按下时,延时20ms左右,待抖动消 失后,在稳定状态下进行被按键 识别。 ③被按键识别:从第0行第0列开始,顺序对所有按键 编号。通过逐行扫描确定被按键的编号。 ④产生键码:根据扫描得到的键编号查找键盘编码表, 获得与被按键功能对应的键码。
列0 列1 列2 列3 PA0 行0 PA1 行1 CPU 行2 8255A PA2 PB0 PB1 PB2 PB3 图8.1 非编码键盘接口 例如,假定有一个34的矩阵键盘通过并行接口芯片8255A与 微机相连。8255A的A定义为输出口,与键盘行线相连;B口定 义为输入口,与键盘列线相连。接口硬件如图8.1所示。
设8255AA口地址为40H,B口地址为41H,控制寄存器地设8255AA口地址为40H,B口地址为41H,控制寄存器地 址为43H,则实现接口有关功能的程序如下: ;8255A初始化 MOV AL,82H ;方式0,A口输出,B口输入 OUT 43H,AL ;检查是否有键按下 BEGIN: MOV AL,0 OUT 40H,AL WAIT: 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 ;置键号初值为-1 L1: 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接口芯片8279 1.内部结构及各部分功能 8279芯片的内部结构框图如图8.2所示。图中各组成部 分功能如下: (1)I/O控制及数据缓冲器 (2)控制与定时寄存器及定时控制 (3)扫描计数器 (4)键盘去抖动与控制及返回缓冲器 (5)FIFO RAM及状态寄存器 (6)显示RAM、显示寄存器、显示地址寄存器
WR A0 IRQ D0~7 CS RD 复 位 数据 缓冲器 I/O控制 FIFO RAM的 状态寄存器 时钟 片选总线 16×8 显示RAM 控制与定 时寄存器 8×8FIFO RAM 键盘去抖 与控制 显示地址 寄存器 定时 控制 返回缓冲器 显示寄存器 扫描计数器 CVTL/STB SL0~3 OUTA0~3 OUTB0~3 BD RL0~3 SHIFT 图8.2 8279芯片的内部结构框图
IRQ RL0~RL7 D0~D7 SHIFT 键 盘 CNTL/STB RD CPU 8279 WR SL0~SL3 CS A0 OUTA0~3 CLK RESET OUTB0~3 显 示 器 +5V GND BD 2. 外部特性 电信号连接示意图可知,40条引线中与CPU一侧相关的共 15条,与键盘、显示接口相关的共23条,电源、地各一条。
各引线功能如下: D0~D7:双向数据线,用于CPU和8279芯片之间传送数据、命令和状态信息。 CLK:系统时钟,为8279芯片提供内部定时。 RESET:复位线,高电平时复位8279芯片到:16个字符显示(左进方式);编码扫描键盘(双键锁定);时钟设置为31. CS:片选线,由I/O端口地址译码器产生低电平时8279芯片被选中。 RD:读信号,低电平有效。 WR:写信号,低电平有效。
A0:地址线,进行片内端口选择。为0时,选中数据寄存器;为1时选中命令/状态寄存器。A0:地址线,进行片内端口选择。为0时,选中数据寄存器;为1时选中命令/状态寄存器。 IRQ:中断请求线,高电平有效,向CPU申请中断。 SL0~LSL3:扫描线,用来扫描键盘或显示器,可编程设定为编码输出或译码输出。 RL0~RL7:返回线,用作键盘矩阵列线的返回信号输入。 SHIFT:移位信号,高电平有效,是键盘数据的D6位,用于扩充键的功能,如作为上、下档功能键。 CNTL:控制线,高电平有效。键盘工作方式时,是键盘数据的D7位,用于扩充键的控制功能------控制功能键。 OUTA0~OUTA3,OUTB0~OUTB3:A组、B组显示数据切换时或收到消隐命令时,将显示消隐。
D7 D6 D5 D4 D3 D2 D1 D0 特 征 位 命 令 参 数 3.命令字 当引脚A0=1时,CPU向8279芯片写入命令字。8279芯片可 执行的命令共有8条,它们决定了8279芯片的操作方式。 命令字格式如下: (1)设置键盘及显示方式 设置键盘及显示方式命令字格式为: D7D6D5(000):命令特征码。 D4D3(DD):用来设定输入方式,定义如表8.2所示。 D0(K0):用来设定扫描方式。K0=0为编码扫描;K0=1为译码扫描。
D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 P P P P P 表8.1 显示输出方式 表8.2 输入工作方式 (2)设置时钟频率 设置时钟频率命令格式为:
D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 × AI A2 A1 A0 其中 D7D6D5(001):命令特征码。 D4~D0(PPPPP):用来设定对外输入CLK的分频系数N(N值可为2~31),以便获得8279芯片内部要求的100kHz的基本频率。 (3)读FIFO RAM 读FIFO RAM命令字格式为: 其中 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 1 1 AI A3 A2 A1 A0 其中 D7D6D5(011):命令特征码。 D4(AI):自动地址增量标志。AI=1时,每次读后地址自动增1; AI=0时,读后地址不变。 (5)写显示RAM(略)
D7 D6 D5 D4 D3 D2 D1 D0 D0 S/E 0 U F N N N (6)禁写显示RAM/消隐(略) (7)清除(略) (8)结束中断/设置错误方式(略) 4.状态字 8279芯片的状态字主要用来指示FIFO RAM中的字符数和有无错误发生。其格式为: 5. 8279芯片应用举例 TP86A单板微型计算机使用8279芯片作为键盘及LED显示器接口,电路原理图如图8.4所示。
译码器 8279 00 +5V 74LS45 D0~D7 SL0 A SL1 B RESET SL2 C RD TP86 SL3 D WR 07 CLK A0 CS SHIFT CNTL OUTA0~3 RL0 74LS45 段驱动器 OUTB0~3 A B C 译码器 74LS156 RL0 Y0 Y1 Y2 键盘矩阵 图8.4 TP86单板机键盘/显示器接口电路
①键盘输入程序段,执行下面程序段后可在内存400H单元中找到被按下键的代码。①键盘输入程序段,执行下面程序段后可在内存400H单元中找到被按下键的代码。 MOV DI,400H ;DI指向存放按键代码的 内存单元 MOV DX,0FFEAH MOV AL,00H ;设定键盘输入方式 IN AL,DX OUT DX,AL MOV AL,39H ;设定键盘输入方式 OUT DX,AL LOOP1: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号单元起, 地址自动加1 L: 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码,然后存入键盘缓冲区。程序负责把键盘扫描码转换成ASCII码,然后存入键盘缓冲区。 软中断程序INT 16H:ROM BIOS中的键盘功能调用程序,该调的功能是从键盘缓冲区取出按键产生的ASCII码。 2.键盘接口电路 (1)接口功能 • 串行接收键盘送来的扫描码,完成串行转换后保存; • 收妥一个键盘扫描码后,立即产生一个中断请求信号; • 保存的扫描码可供CPU读取,并通过软件进行相应转换处理; • 接收CPU的命令,输出到键盘,并接收键盘回送的响应信号。 (2)接口电路 根据接口电路应完成的功能,接口电路可由串行并转换电路、时钟同步电路、中断请求触发器及一些门电路组成。
LS322 8255A +5V SE OA PA7 DS OB PA6 8255A S/P D0 PB7 D1 PB6 OE 1 PA0 CLR OH +5V CLK OH G CLK DATA RESET D Q GND CLK Q +5V D IRQ1 R CLK CLR D Q PR PCLK CLK Q RESET R 图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 ASCII码 字符 发生器 ROM VRAM 视频 RA3~RA0 信号 CPU 控制 定时控制电路 加载控制 水平消隐 行间消隐 垂直消隐 字符 时钟 OSC I/ 9 I/(80+18) I/(9+5) I/(25+1) 点计数器 水平地址计数器 光栅地址计数器 垂直地址计数器 点振荡器 (16.257MHz) 垂直同步信号 水平同步信号 水平同步电路 垂直同步电路 VRAM与显示屏的对应关系
2.字符属性 显示器上的每个字符在视频缓冲区(VRAM)由2个字节表示,第一个字节是显示字符的ASCII码,而第二具字节是该显示字符的司性。字符的必性确定了该显示字符的特性,如显示字符的颜色、背景颜色、闪铄等,在彩色文本方式下,字符的属性定义如图所示。 其中: 1)BI=1:表示该显示的字符闪烁; 2)D6~D4:表示该显示字符的背景颜色RGB; 3)D3~D0:表示该显示字符的前景颜色RGB;
D7 D6 D5 D4 D3 D2 D1 D0 BI Red Green Blue I Red Green Blue 闪烁位 背景颜色 背景颜色 彩色文本方式字符属性 如把80×25模式的整个屏幕全部刷成字符A,属性为红色前景、蓝色背景、显示字条款闪烁的程序段为: MOV AX,0B800H ;彩色文本方式VRAM首址 MOV ES,AX MOV DI, 0 MOV CX,2000 MOV AH,10010100B ;显示属性:闪烁,蓝色背景,红色前景 REP STOSW ;AX→VRAM单元中,相当于显示到屏幕上
在上述程序中,如果把字符属性改为08(黑色背景,灰白色前景,不闪烁),同时把显示的字符‘A’改为20H(空格),上述程序则是一个清屏程序。在上述程序中,如果把字符属性改为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,1 • SHL DX,1 ;行坐标×16 • MOV DI,DX • SHL DX,1 • SHL DX,1 ;行坐标× 64 • ADD DI,DX ;行坐标× (64+16) • ADD DI,CX ;视频缓冲区偏移=行× 80+列 • MOV DX,0B800H ;VRAM首地址 • MOV ES,AX • STOSW ;字符和属性 VRAM • POP DI • POP ES • RET • WRITE-SCREEN ENDP
B800:00 0行 1行 In early 2001,….and research Corporation completed Another year of B800:A7H f 2行7列 i 行 80x25 CRT VRAM
在彩色文本直接写屏中,显示位置在视频缓冲区VRAM的偏移地址可由公式:VRAM偏移地址=80× 行坐标+列坐标,来进行计算。屏幕字符的显示通常使用中断(如INT 10H、INT 21H等)来进行,中断字符显示方式速度较慢,但通用性和兼容性好。 二、显示器图形接口 显示器的图形方式就是利用显示器的像点(Pixel)来构成图形、图像、各种显示适配器有不同的显示模式和分辨率,在下表中主要列出了标准的显示适配器的各种显示模式的图形分辨率、颜色数和视频缓冲区地址。各种显示适配器(显示卡)都是向下包含的,如TVGA显示适配器包含VGA以下的所有显示适配器的各种显示模式。
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所示。就是把视频缓冲区VRAM按照一定的大小(与显示模式有关,不同的显示模式一页的大小也不同)划分为几个独立的位面(页)每个页面被用来控制一种颜色分量(RGB),每个显示像至少在页面中占一位。如图8.7所示。 …… VGA16色 显示模式 ……….. 000 I …… 100 R …… 000 G …… 3 101 B 2 1 0 图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所示。
0 颜色索引 寄存器 DAC转换表 D0 D1 000000 000000 000000 0 7 0111 Red Green Blue 001001 D2 0 D3 1 1 15 1 63 模 块 寄存器 D4 D/A D/A D/A D5 VRAM D6 颜色选择 寄存器 到模拟显示器 D7 图8.8 VGA位面法VRAM内存映像
下面是采用直接写点的640× 480(16色)子程序,在应用程序中可以直接调用 入口参数:AX=行坐标;BX=列坐标;CH=颜色值 VGA-COLOR16 PROC NEAR MOV DX,0A000H ;视频缓冲区首地址 MOV ES,DX MOV DX,80 ;一行字节数 MUL DX ;行× 80 MOV DI,AX MOV AX,BX MOV CL,3 SHR AX,3 ;列/8
ADD DI,AX ;VRAM偏移=行× 80+列/8 ;分离字处理 MOV CL,BL AND CL,7 XOR CL,7 MOV BL,80H SHL BL,CL ;BL=图形点分离字 ;寄存器设置 MOV DX,3C4H ;定序器 MOV AL,2 OUT DX,AL ;选映射模式寄存器 INC DX MOV AL,OFH ;开放4个彩色位面 OUT DX, AL
MOV DX,3CEH ;图形控制器端口 MOV AL,5 ;5号:写模式寄存器 OUT DX,AL INC DX MOV AL,2 ;设置写模式2:锁存写点 OUT DX,AL DEC DX MOV AL,8 ;选择8号:分离字寄存器 OUT DX,AL INC DX MOV AL,BL OUT 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位面的图像或图形。
VGA256色 显示模式 01001010 A000:0000 …….. 10100111 0001 0002 …… VRAM …… …….. 11101001 图8.9 VGA压缩像素法VRAM内存映象 在压缩像素法中,VRAM的一个字节的内容直接通过DAC表查出对应的屏幕显示颜色值,通过RGB三基色的D/A转换器显示到屏幕上。压缩像素法与彩色位面法一样,在不同的分辨率模式下,其一屏图形或图你所占的VRAM的大小也不相同,
如模式为13H(320× 200× 256C)时,一屏图像大小为64000字节,为5DH(640× 480× 256C)时,一屏图像的大小需256KB的VRAM空间。 VGA_COLOR256 PROC NEAR MOV DX,0A000H ;视频缓冲区首地址 MOV ES,DX MOV DX,320 ;一行字节数 MUL DX ;行数× 一行字节数 ADD AX,BX ;VRAM偏移=行数×一行字节数+列 MOV DI,AX MOV 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值