Chinaunix首页 | 论坛 | 博客
  • 博客访问: 284423
  • 博文数量: 89
  • 博客积分: 1380
  • 博客等级: 中尉
  • 技术积分: 705
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-10 11:04
文章分类

全部博文(89)

文章存档

2014年(4)

2011年(1)

2010年(42)

2009年(42)

我的朋友

分类: 嵌入式

2009-08-06 09:48:22

 
在中,一个“控制字符”或“非打印字符”,是一个(一个数字)是否在,其自身也是书写字母来描述的。所有输出在32以下的表都是这个类型,包括

  • BEL(要求有声信号来响应终端的接收);
  • SYN(同步信号);
  • ENQ(要求接收后发出响应来验证存在);
  • 标准增加了许多新的非打印字符,比如。

在ASCII中

在ASCII中常用的控制字符包括

  • 7 (bell 响铃),用来使收到该字符的设备发出某种警告;
  • 8 (backspace 退格),用来删除或者叠打上一个被打印的字符;
  • 9 (horizontal tab 水平制表);
  • 10 (line feed 馈行),在大多数和变异系统中用来结束行;
  • 12 (form feed馈页),用来使打印机馈出一页;
  • 13 (carriage return 回车),在, , 和-80派生的系统中,包括,用于结束文本行;
  • 27 (escape 转义)‘

人们有时会遇到其他代码的现代用法,如用编码4(传输结束)结束会话或打印机的传输。

编码27(转义)值得详细描述。尽管很多控制字符是从不使用的,将设备控制信息和可打印字符混合传送的概念却非常有用,这使设备制造商得以建立一种可用来传送上百条设备指令的途径。具体来说是使用称为或的一种由多个字符构成的序列。

典型的方式是首先发送编码27提醒设备将后续字符解释为控制序列而非普通的打印文本,之后跟随一个或多个字符指出某个具体的操作,这之后设备会返回到正常解释字符的状态/*即不再将后续字符解释为控制序列*/。例如由编码27后跟随可打印的字符"[2;10H"组成的序列会使一个DEC Digital VT-102终端将光标移动到屏幕第2行的第10个位置。这些序列存在着一些标准,广知的是基于VT-100系列终端的行为的 X3.64 (1979),但在应用中存在大量非标准的变化,特别是在技术进步的速度大大超过任何标准所能追赶的速度的打印机工业领域中。

在键盘上如何映射控制字符

基于ASCII的上有个标为“”或"Ctrl"(有时也作"Cntl")的键,其用法非常类似于换档键,即与其他字母或符号键一起按下。通过这种方式该控制键生成比同时按下的的大写字母的编码小64的编码/*例如编码为1的CTRL-A是由大写A的编码65减去64而产生*/,从而产生出32个ASCII控制码之一。因此,控制键组合产生的编码字节的8位中,左起第2位(即2的7次方,或64,所对应的位)是强制置零的;否则,当控制键未被按下时,该位则为生成的模板位。例如,按下CTRL和字母G(十进制编码为71,二进制为01000111,通常需要使用视为按下了换档键所产生的大写字母的编码),产生编码7(振铃符,十进制编码7,或二进制00000111)。产生不影响64对应的位上的0的编码的键组合中控制键也应被按下。/*晕!*/

键盘上有些单个键能产生控制码。例如标为“Backspace<%2

阅读(1237) | 评论(0) | 转发(0) |
0

上一篇:RS232C-标准(转)

下一篇:Linux进程调用

给主人留下些什么吧!~~