电气知识|键盘I/O

   更新日期:2017-03-26     来源:建材之家    作者:安防之家    浏览:40    评论:0    
核心提示:一、键的类型 键盘是计算机最基本的一种输入设备,用以输入信息,以达到人机对话的目的 键盘提供了三种基本类型的键 1)字符键:传送一个ASCII码字符给计算机。如A~Z,0~9,%,$ 等。 2)扩展功能键:产生一个动作。如Home,End,Enter等,不能用标准ASCⅡ码表示的特殊键或组合键。 F1~F10:3B~44H ↑ ↓ 

2019年中国陶瓷卫浴行业市场发展趋势和需求预判

推荐简介:2019年中国陶瓷卫浴行业市场发展趋势和需求预判第一、市场需求总量会略有萎缩,主要是楼市成交后,装修动力不足;但不会有大的萎缩,市场份额会稳定在65-70亿㎡之间,行业整体形势稳定,不会有太大起伏,行业不会出现灾难性后果,更加不会崩盘;第二、大量低端生产企业、没有创新能力、市场营销比较传统的生产型企业、营销公司将批量退出建材市......
安防之家讯:一、键的类型 键盘是计算机最基本的一种输入设备,用以输入信息,以达到人机对话的目的

键盘提供了三种基本类型的键

1)字符键:传送一个ASCII码字符给计算机。如A~Z,0~9,%,$ 等。

2)扩展功能键:产生一个动作。如Home,End,Enter等,不能用标准ASCⅡ码表示的特殊键或组合键。

F1~F10:3B~44H

↑ ↓ ← → :48 50 4B 4DH

PgDn PgUpIns Del: 50 48 4B 4D 52 53H

3)组合功能键:改变其它键所产生的字符码。如Alt,Ctrl,Shift等

二、字符码与扫描码

字符码与扫描码

BIOS的键盘中断:当8259A的21H端口第1位(D1)为0,就允许键盘中断,在键盘上“按下”或“放开”一个键时都会产生一个类型号为9的中断。并转入BIOS的键盘中断处理程序。

1)扫描码:键盘中断处理程序从8255的60H端口读取一个字节,该字节的低7位就是键的扫描码。键盘上的每一个键对应一个扫描码,从01H~51H。

通码:“按下”时取得的字节为通码,D7位=0。

断码:“放开”时取得的字节为断码,D7位=1。

2)字符码:BIOS键盘处理程序将所取得的扫描码转换成相应的字符码。大部分键的字符码为ASCII码,没有ASCII码的键其字符码为0或一个指定的操作(如屏幕打印等)。

BIOS数据区的键盘缓冲区KB_BUFFER :一个先进先出(FIFO)并具有双指针的循环队列。存放转换成的字符码和扫描码(扫描码存放在字的高8位上)。当CPU想要得到键盘输入时,就调用BIOS键盘例行程序,它按其接收时的次序从缓冲区取出字符和扫描码,回送给CPU。键盘缓冲区结构如下:

0040:001ABUFF_HEADDW? ;键盘缓冲区的首地址指针

0040:001CBUFF_TAIL DW? ;键盘缓冲区的末地址指针

0040:001EKB_BUFFER DW16 DUP (?) ;16个输入量的空间

0040:003EKB_BUFFER_END LABELWORD

3)BIOS键盘中断:INT 16H调用(从键盘缓冲区输入)。

AH=0:从键盘读一字符。此时一直要等到键盘缓冲区有输入才返回。返回时AL=字符码,AH=扫描码。

AH=1:读键盘缓冲区的字符。如ZF=1则键盘缓冲区空;ZF=0则AL=字符码,AH=扫描码。

AH=2:取键盘状态字节。AL=键盘状态字节(KB_FLAG:0040:0017H单元)。

键盘状态字节KB_FLAG:内存的0040:0017H单元,由类型 9的硬件键盘中断置入键盘的对应状态到该单元。低4位是Alt、Ctrl、Shift左、Shift右的标志位,这4位在相应键按下时置位,该键一抬起即复位。KB–FLAG的高4位是Ins、Caps Lock、Num Lock、Scroll Lock键的标志位,这些位在相应键奇次按下时置位,偶次按下时复位。具体含义如下:



键盘的其它标志区:

KB–FLAG1:0040:0018H单元如下。



其中的高4位是Ins、Caps Lock、Num Lock、Scroll Lock锁定功能键的动态(临时)标志位,即这些键按下时该位置1,键释放即被置0。这4位动态标志位用于对这些键本身进行处理,而KB–FLAG中的这4位静态标志位反映了它们的锁定状态,用于控制其它键的键意确认。KB–FLAG1中的D3位为Hold–State保持状态位,Ctrl+Num键按下时该位置1;非Num键的任一键按下就使其复位。暂停过程就是将该位置1后进入一个无限循环过程,判断该位是否变为“0”,一但为“0”,即退出循环。

ALT–INPUT:0040:0019H单元。此单元不是标志单元,而是寄存单元。在按着Alt键不释放的条件下,连续按下小键盘(右区)的数字键×××(1~255)时,此1~3位的十进制数的二进制编码即在此生成。当Alt键释放时,第一字节为ALT–INPUT单元中的代码、第二字节为00H的两个字节存入键盘缓冲区,ALT–INPUT单元又被清0。若打入的数字键大于255数值,则以256为模产生结果。这是一种直接在键盘缓冲区建立所期望的ASCII代码的一种方法,第二字节为00H就与其它键所建立的ASCII代码相区别。

BIOS–BREAK:0040:0071H单元。此单元是中止或称为间断标志单元。Ctrl+Scroll键按下时,该标志字节置为80H,否则为00H,Ctrl+Scroll键的按下还清除键盘缓冲区,并以两个全0字节为其ASCII码,存入键盘缓冲区。此标志和特征码均可被其他软件用来证实“间断”键的按下。但是ROM–BIOS并不直接提供间断功能,在键盘中断服务程序中,对该组合键的按下提供了一条INT 1BH指令。在ROM–BIOS中类型1BH中断的服务程序只是一条中断返回指令IRET,其它什么都不做。其它软件只需将其“间断”功能程序的入口地址重新写入中断向量表的1BH×4的位置中去即可。因而即对其它软件提供了查询处理的方便,也提供了中断处理的方便,用以实施“间断”功能。

RESET–FLAG:0040:0072H单元。是两字节的复位标志。当Ctrl+Alt+Del组合键按下时,就以1234H代码填入,然后转移到复位初始化程序,这就是热启动复位。

Shift+Prtsc组合键:是打印屏幕的特殊操作。按下时由键盘中断服务程序执行软件中断指令INT 5产生的。这个组合键既不向键盘缓冲区存代码,也不建立标志,但是INT 5软件中断服务程序使用STATUS–BYTE标志单元(0050:0000),使在打印屏幕过程中再按下Shift+Prtsc键将不被理睬。

三、DOS键盘功能调用

(用BIOS键盘缓冲区输入)设置AH,执行INT 21H的DOS功能调用实现从键盘输入字符。

单字符输入:输入的字符在AL寄存器中返回。

AH=1:从键盘输入一个字符并回显在屏幕上,并检验是否按下了Ctrl_Break键,如按下则自动调用INT 23H并结束程序。返回时AL=字符。

AH=6:读键盘字符,入口时DL=0FFH。如果准备好,AL=字符,未准备好,AL=0。

AH=7:从键盘输入一个字符不回显,也不检验是否按下了Ctrl_Break键。返回时AL=字符。

AH=8:除不回显以外,同功能1。

注意:若要求程序能接收功能键及具有键扩展码的组合键必须进行两次DOS功能调用,第一次回送00,第二次回送扫描码。

输入字符串:AH=0AH。从键盘输入一串字符并存入用户定义的缓冲区中(DS:DX=缓冲区首地址)。

缓冲区的第一字节给出能输入的最大字符数。由用户程序给出。如下:



第二字节为调用后实际输入的字符数。由功能0AH调用填入,不含回车符。

第三字节开始为调用后实际输入的字符串。由功能0AH填入,不含回车符。

DOS调用后,保持DS:DX=缓冲区首地址不变。

清除键盘缓冲区:AH=0CH。清除后并再调用一种键盘功能。被调用的键盘功能号(只能是1、6、7、8、0AH)作为入口信息放在AL寄存器中。

检验键盘状态:AH=0BH。返回时AL=0FFH表示有键入,AL=00则无键入。返回后执行下一条指令。

四、键盘输入

1、BIOS的键盘中断

(1)字符输入

mov ah,o

int 16h

(2)读键盘状态

mov ah,2

int 16h

xor ah,ah

mov bx,ax

mov ch,4

rotate:

mov cl,4

rol bx,cl

mov al,bl

and al,0fh

add al,30h

cmp al,3ah

jlprint

add al,7

print:

mov dl,al

mov ah,2

int 21h

dec ch 

jnz rotate

2、DOS字符输入功能调用

(1)读入单字符

mov ah,1

int 21h

(2)字符串输入

Maxlen db N

Actlen db ?

string db N dup(?)

lea dx,Maxlen

。。。

mov ah,0ah

int 21h

xor bh,bh

mov bl,Actlen

mov string[bx],0;作文件名

或 mov string[bx],‘$’ ;显示

安防之家专注于各种家居的安防,监控,防盗,安防监控,安防器材,安防设备的新闻资讯和O2O电商导购服务,敬请登陆安防之家:http://anfang.jc68.com/
小程序码
 
打赏
 
更多>文章标签:安防监控
更多>同类安防监控资讯
0相关评论

推荐图文更多...
点击排行更多...
安防监控商机更多...
安防监控圈更多...
最新视频更多...
推荐产品更多...
水泥之家 | 橱柜之家 | 机械之家 | 水电之家 | 五金之家 | 家电之家 | 饰品头条 | 墙布头条 | 家纺头条 | 塑料头条 | 老姚之家 | 灯饰之家 | 电气之家 | 全景头条 | 陶瓷之家 | 照明之家 | 防水之家 | 防盗之家 | 博一建材 | 卫浴之家 | 区快洞察 | 漳州建材 | 泉州建材 | 三明建材 | 莆田建材 | 合肥建材 | 宣城建材 | 池州建材 | 亳州建材 | 六安建材 | 巢湖建材 | 宿州建材 | 阜阳建材 | 滁州建材 | 黄山建材 | 安庆建材 | 铜陵建材 | 淮北建材 | 马鞍山建材 |
建材 | 双碳之家 | 企业之家 | 移动社区 | 关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图 | 排名推广 | 广告服务 | 积分换礼 | RSS订阅 | sitemap | 粤ICP备14017808号
(c)2015-2017 BO-YI.COM SYSTEM All Rights Reserved
Powered by 安防之家