刚开始基础计算机编程的时候,学习的是二进制、十进制、十六进制。
十进制是生活习惯中最常用的计数方法,也是我们计数的思维逻辑。
后来接触了计算机基础,我们知道计算机都是用二进制表示的,但是这种表示方法让人理解很困难。
因此人们编制了统一的信息交换代码,也就是ASCII码表,它的全称是“美国信息交换标准代码”
详细的ASCII 码表见下:
如上表:每一个ASCII 都有3部分组成. ASCII值、16进制、控制字符。
其中ASCII值就是控制字符对应的十进制数值,16进制和ASCII值是对应的,控制字符就是可以表示的字符。
例如,如下图所示:
ASCII值65:就是大写因为字母‘A’的ASCII的值,这里的65是10进制
16进制41H:转换成10进制是65,和ASCII值是对应的。
控制字符A:就是需要表示的大写字母‘A’
那ASCII码表有那些应用呢?
最常见的就是我们的电脑上的键盘,但输入方式切换成英文的时候,我们通过键盘输入的数字0-9,小写a-z、大写字母A-Z、还有一些符号@、!、&、*等都是ASCII格式。
其中键盘的0-9对应的ASCII值就是0x31-0x32(16进制),A-Z对应的ASCII值是(0x41-0x5A),a-z对应的ASCII值是(0x61-0x7A);
我第一次真正接触ASCII,是写LCD1602驱动的时候,其实ASCII在单片机程序编程中也是非常常用的,尤其是屏幕的显示,以及串口通讯、4G通讯等
例如1602液晶屏的显示,如果要显示 ’A’,需要给液晶屏输入“0x41”
在这里也给大家顺便讲一下单片机程序中的ASCII字符怎么表示。如下面代码定义了字符0-9:
unsigned char code ASCII0_9[10]=”0123456789”; //C51单片机
我们将需要表示的数值放置在一个自定义的数组中,然后把字符用“”括起来。
如上,如果我们调用ASCII0-9[0]对应的10进制数就是48,16进制是0x30,表示字符0。
同时我们定义的数组,还需要用code来修饰,code表示将定义的数组变成常量(51单片机用code, STM32单片机用const )。
我们在C语言程序编程中,有一种变量的定义“char”,我们也叫字符型类型,也是和ASCII有关,char 占用一个字节,取值范围是-128 ~127。
ASCII表是基于英语来编写的,其中包含了英文的大小写字母,以及数字0-9,各种符号。
之前的ASCII表是0-127,共128个字符。
但是随着科技的不断的进步,先前定义的ASCII 不能满足大家的需求. 后来ASCII 的表有扩展到了256个字符。
扩充ASCII码表如下图所示:
我们看一下ASCII 扩展表上面的字符,大多数我们都很陌生,其实我们在单片机程序编程中用的也是非常少,大家只要了解就行了。
关于ASCII码表,今天就先给大家介绍到这里了。
设计资源 培训 开发板 精华推荐
- STEVAL-ISB003V1,基于USB锂离子电池充电器的演示板,基于微控制器ST7260E2
- AS3932 演示板、AS3932 唤醒接收器的 AS3932 演示板包括 3D 唤醒模式检测、错误唤醒读出
- 使用 Cypress Semiconductor 的 MB3775 的参考设计
- 使用 Aimtec 的 AM3G-2403SH30Z 的参考设计
- 用于开/关控制应用的 AM2G-2415DZ ±15V 2 瓦 DC-DC 转换器的典型应用
- LTM4622IV 4 至 20Vin、1V 和 1.8V 输出、2.5A 降压模块稳压器的典型应用电路
- EVAL-ADXL345Z-DB,用于 iMEMS ADXL345 惯性传感器数据记录器的评估板
- 电机往返自动控制模拟电路
- 具有迟滞功能的 LMV358DMR2G 比较器的典型应用电路
- 使用 Richtek Technology Corporation 的 RT9468GQW 的参考设计