编辑改稿中涉及的细节问题永远也说不完,今天这个问题解决了,明天可能还会有新的问题出现。下面笔者针对近期(2025年3月至6月)改稿中发现的单片机类教材中的细节问题谈一谈。
(箭头左侧为原稿表述,箭头右侧为参考改法)
(1) 整形变量→整型变量。依据GB/T 18221—2000《信息技术 程序设计语言 环境与系统软件接口 独立于语言的数据类型》:
(2) 下画线→下划线。依据GB/T 18221—2000《信息技术 程序设计语言 环境与系统软件接口 独立于语言的数据类型》:
(3) 字型码→字形码。依据“术语在线”。
字形、字型含义不同,不宜全稿统一。参考GB/T 5271.13—2008《信息技术 词汇 第13部分:计算机图形》:
(4) 数据通信设备(DCE)→数据电路终接设备(DCE)。依据GB/T 17183—1997《数据终端设备和数据电路终接设备用的高速25插针接口暨可替换的26插针连接器》。
(5) MIPS(Million Instruction Per Seconds,即兆指令每秒)→MIPS(million instructions per second,百万条指令每秒)。依据“术语在线”。
(6) 单片机封装相关术语的表述在“术语在线”中查不到,这个可依据GB/T 15879.4—2019《半导体器件的机械标准化 第4部分:半导体器件封装外形的分类和编码体系》修改。例如:
①DIP (DualIn-linePackage,双列直插式封装)→DIP (dual in-line package,双列直插式封装)。标准GB/T 15879.4—2019中:
前后表述就不一致,这个“式”字可有可无,参考“术语在线”电子学名词,应为双列直插式封装。
②PLCC (PlasticLeadedChipCarrier,带引线的塑料芯片封装) →PLCC (plastic leaded chip carrier package,塑料引线片式载体封装) 。依据GB/T 15879.4—2019:
③QFP (QuadFlatPackage,塑料方形扁平式封装)→QFP (quad flatpack package,四边扁平封装) 。依据GB/T 15879.4—2019:
④PGA (PinGridArrayPackage,插针网格阵列封装)→ PGA (pin grid-array package,针栅阵列封装)。依据GB/T 15879.4—2019:
⑤BGA (BallGridArrayPackage,球栅阵列封装)→BGA (ball grid-array package,焊球阵列封装)。依据GB/T 15879.4—2019:
⑥QFN(四方扁平无引脚封装)→QFN(四边扁平无引线封装)。依据GB/T 15879.4—2019:
注:上述③中参考全国科学技术名词术语审定委员会的做法:英文词的首字母大、小写均可时,一律小写。
(7) 程序状态寄存器(PSW)→程序状态字寄存器(PSW)。
(8) 数据指针(DPTR)→数据指针寄存器(DPTR)。
(9) WDT(看门狗)→WDT(看门狗定时器)。
(10) 中断允许寄存器IP→中断优先级寄存器IP。中断允许寄存器应该是IE。
(11) 发送缓冲寄存器SUBF→发送缓冲寄存器SBUF。
同一术语的表述前后不一致,可能会导致读者在阅读时产生理解混乱。作为编辑,应该做好统一的工作。
(1) 定时器0、定时器T0表述前后不一致。
这个没有查到明确规范,但是按照常理,定时器的英文是timer,T0已经表明是定时器0了,没有必要再把中文写一遍;反过来,定时器0用字母表示就是T0,所以定时器T0的表述中定时器与T表意重复,删去一个为好。文中如果混用,宜统一为定时器0。与之对应的是定时器1(T1)。
(2) IO端口、IO口、I/O端口、I/O口表述前后不一致。
英文IO之间习惯上加斜线;端口与口区别不大,依据原稿表述局部统一即可。
(3) AD、A/D写法混用。
统一为A/D。
(4) 读写操作、读/写操作混用。
统一为“读写操作”。参考“工标网”,“读写”的表述居多,只有少数标准中用“读/写”。
(5) 大括号、花括号混用。
二者含义一样,同一本书稿表述应统一。两种表述都有依据可查。GB/T 18221—2000《信息技术 程序设计语言 环境与系统软件接口 独立于语言的数据类型》中的表述:
GB/T 28169—2011《嵌入式软件 C语言编码规范》中的表述:
(6) 共阳极数码管、共阳极型数码管、共阳数码管,表述不一致,
统一为共阳极数码管。
(7) 独立键盘、独立式键盘,表述不一致。
统一为独立式键盘。
(8) 矩阵键盘、矩阵式键盘、矩阵按键,表述不一致。
统一为矩阵式键盘。
(9) 消抖程序、去抖程序,含义一样,表述统一为好。
(10) 外中断、外部中断,表述不一致。
统一为外部中断。
(11) 清零、清0、清“0”、置0,写法前后不一致。
统一为清0,与置1对应。
(12) 字符型1602液晶显示屏、LCD1602液晶显示屏、LCD1602液晶显示器、1602液晶、LCM1602液晶屏,表述前后不一致。
统一为LCD1602液晶显示屏。这里需要说明的是,LCD1602 和LCM1602并不完全一样,LCD1602特指字符型液晶显示屏,这也是大多数单片机类教材中所涉及的内容,LCM1602指的是完整的液晶显示模块,包括LCD显示屏,书稿中出现的LCM1602不宜直接改为LCD1602,应根据上下文整体考虑或由作者核实后再修改。
(13) MCS-51单片机硬件组成中,可编程I/O并行接口、可编程I/O接口、可编程并行I/O接口,图文不一致或前后表述不一致。
这个表述统一一种即可。
(14) 串行通信中,数据传输速度、数据传送速率、数据传输速率混用。
可统一为“数据传输速率”。依据“术语在线”。
(15) 一个芯片、一块芯片表述前后不一致。
统一为一块芯片。
(16) 在介绍串行接口结构时,标志位、标识位混用,表述不一致。
可统一为“标志位”。
(17) 数码管的段码端、段选端、段选口、段选端口,表述不一致。
可统一为“段选端”。
(18) 计算机、PC机、上位机、上位计算机,表述不一致。
可统一为“上位机”。
(1) TXD/TxD,其中x的大小写该怎么统一?
参考GB/T 19244—2003《信息技术 高性能串行总线》:
参考GB/T 20540.2—2006《测量和控制数字数据通信 工业控制系统用现场总线 类型3:PROFIBUS规范 第2部分:物理层规范和服务定义》:
x用小写。与之对应的表述是RxD。
参考GB/T 26803.2—2011《工业控制计算机系统 总线 第2部分:系统外部总线 串行接口通用技术条件》:
这个标准中X用的是大写。
所以,针对具体书稿统一一种即可。
(2) IIC总线/I2C总线/I2C总线,写法前后不一致。
统一为I2C总线。数字与字母平排,以与寄存器符号I2C_CR等的写法一致。
(3) EEPROM/E2PROM/E2PROM,写法前后不一致。
统一为EEPROM,依据“术语在线”。
(4) µC/OS-II。短横线后面的是罗马数字II,是一个整体字符,代表第二代实时操作系统。不是两个独立的英文字母I。
(5) RS232、RJ45数字与单位之间需要加连字符吗?
参考GB/T 26803.2—2011《工业控制计算机系统 总线 第2部分:系统外部总线 串行接口通用技术条件》:
标准中表述未加连字符。
(6) ADCO809→ADC0809(C后是数字0而不是大写字母O,校样中经常会出现这个错误,原稿未排版字母O和数字0区分不明显,排后比较容易察觉)。
这里还要注意的是,器件型号表述时,原稿常常误写为ADC089等表述。ADC或DAC后的数字一般为4位。
(7) Keil uVision5软件→Keil μVision5软件。
与软件界面中
软件名称写法一致。
(8) 芯片引脚中涉及VCC、VPD、VPP、VREF、AOUT等符号统一改为VCC、VPD、VPP、VREF、AOUT (平排正体)。
这里出于图文前后一致的考虑,单片机书稿肯定会涉及软件仿真图,仿真图中芯片引脚都是平排正体,为避免图文形式不一致的问题,类似符号宜统一为平排正体。
(9) 单片机引脚描述P3.0/RxD、RxD/P3.0,前后表达顺序不一致。
统一为P3.0/RxD,第一功能在前,第二功能在后。
(10) 数码管的a、b、c、d、e、f、g、h脚/数码管的a、b、c、d、e、f、g、dp脚,这里h脚、dp脚的表述前后应一致、图文应一致。
第一次出现h处,加一个说明,即数码管的a、b、c、d、e、f、g、h(小数点dp)引脚。后文叙述(包括真值表)中,统一用h。
(11) 单片机内部寄存器THl、TLl→TH1、TL1(H、L后面应为数字1而不是小写l);
单片机内部寄存器THO、TLO→TH0、TL0(H、L后面应为数字0而不是大写O)。
(12) ANSI C保留字defoult→ANSI C保留字default。
(13) 如果单片机外接一个6 MHz的晶振,那么一个振荡周期就是1/6M秒→如果单片机外接一个6 MHz的晶振,那么一个振荡周期就是1 / (6×106 )s。
这里需要注意的是6×106要加括号,不能写为1/6×106 s或者(1/6×106 )s。
(14) SFR位地址表中字节地址FOH→F0H(F后的字符是数字0而不是大写O)。
(1) 高八位→高8位。
涉及“位”的数字一般用阿拉伯数字(以下简称“阿数”)。原稿中有可能出现16位寄存器、32位寄存器等描述,这里数字均用“阿数”不用汉字数字(以下简称“汉数”)。依据GB/T 15835—2011《出版物上数字用法》“同类别同形式”的要求,“高八位”中的数字应该用“阿数”。
(2) 配备了七个寄存器/这三个寄存器/需要关注ISER[0]和ISER[1]两个寄存器/共有6个AFIO寄存器/四个外部中断配置寄存器(AFIO_EXTICR1至AFIO_EXTICR4)。
原稿中涉及寄存器个数的表述,数字用法混乱。这里统一为“汉数”比较得体,且前后形式统一,避免了符号与数字连用的情况,如ISER[0]和ISER[1]2个寄存器。
(3) 介绍单片机内部结构时,提及2个定时/计数器、五个中断源、4个8位的并行I/O口,数字用法前后不一致。
为了与后文介绍寄存器时的表述形式统一,类似统一为“汉数”。
(4) 一个状态包含两个节拍,一个机器周期的宽度为6个状态,因此一个机器周期总共有12个节拍。数字用法前后不一致。
类似宜统一为“阿数”(这段介绍文字中的数字有12,不宜用汉数),即改为1个状态包含2个节拍,1个机器周期的宽度为6个状态,因此1个机器周期总共有12个节拍。
(5) 四路电压采集/4路模拟量输入通道/8路数码管/8路驱动芯片74HC573/U2八路驱动段码(段锁存)。
原稿中涉及×路的表述,数字用法混乱。这里统一为“汉数”。
(1)if-else、if…else、if…else,字母之间的连接号混用。
参考GB/T 28169—2011《嵌入式软件 C语言编码规范》中的表述:
字母之间用三个点居中连接。
(2)程序段中,分号样式不一致:
程序段中分号样式不一致,是全半角样式不一致,不是字体问题。这个需要统一形式。
是半角形式,
是全角形式,程序段中统一为半角形式。
(3)程序段中,减号样式不一致:
图中i--的减号有误,现在所示为连字符,应统一为图中y--中的符号(减号的长度大于连字符的长度)。这个问题,在校样中看得比较清楚。
(4)中断函数名为setled()、函数名是int0rupt、写数据函数LCD_Write_Com、显示字符的函数LCD_Write_Char(),函数名后的括号有的有有的没有,应该统一。
一般函数名后应加上括号。
(5)循环语句、循环体语句含义不同,不能统一。
问题分析:校样中二极管的方向画反了,不是阴极连到一起了。属于编辑加工后期(排版、校对)产生的问题。编辑处理校样时应格外关注图稿修改情况,出错率很高。
(2) 书稿中可能会有如下电路图:
这种图是软件制图,但是不是Proteus仿真软件制图,是用Altium Designer绘制的。这类图稿虽属于硬件电路图,但不同于一般电路理论的电路图,图中不规范的符号不宜修改为国家标准符号,可在书后增加一个图形符号对照表加以说明。
Altium Designer是专门用来设计电路原理图和PCB的,这个软件支持STC89C51(Proteus仿真软件只支持AT89C51这个单片机的模型)。
(3)
的字母O应改为数字0。
(4)关于ADC0809引脚图:
6引脚ST,有的书稿中写为START,图文表述应一致。
12引脚VREF+,文中表述可能是VREF(+)或者VREF(+),类似表述图文应一致,字母平排,+号的括号去掉。有的书稿中写为VR(+),这个与VREF+的含义一样,这个依据具体书稿中的表述做到图文一致即可。
这里芯片引脚符号的写法没有查到规范,但是需要注意的是,一本书中图文表述前后应一致。
(5) 原稿表述如下:
表9-1 SCON的各位定义
这里SCON的各位定义若以表格形式呈现,应增加表头。参考改法如下:
(1) 寄存器B/B寄存器混用,习惯称为B寄存器。
(2) 累加器A/A累加器,习惯称为累加器A。
书稿中累加器ACC简称累加器A。
(3) void setled() interrupt 4。interrupt 是关键字,其后面的4表示系统串口终端。
这里“终端”应为“中断”。
(4) 介绍单片机发展历史,提及的半导体公司名称或大小写不准确。
修改依据是公司官网表述。
因特尔→英特尔(Intel)。
ATMEL→Atmel。
Philips→PHILIPS。
(5) 数码管动态显示中会涉及“余辉效应”这个词,这里表述没问题,不改为“余晖效应”。
(6) 书稿中实物制作清单中单片机型号与仿真图中单片机型号不一致。
出现这个问题的原因是:Proteus仿真软件默认的元件库只支持AT89C51这个单片机的模型,但是在实际中AT系列51单片机早已经停产,市面上买不到,故实物制作清单中单片机型号选为STC89C51。STC系列51单片机属于国产单片机,目前在教学、大赛、低端智能化电子产品中使用广泛。
遇到这个问题可在第一次出现的位置加注说明,具体如下:
由于AT系列51单片机早已经停产,市面上买不到,故实物制作清单中单片机型号选为STC89C51,与Proteus仿真软件中型号(Proteus仿真软件默认的元件库中只支持AT89C51这个单片机的模型)不完全一致,但功能相同,下同。
(7) P1.0、P1.1和P1.2口→P1.0、P1.1和P1.2引脚(习惯说法)。
(8) ADC0832→DAC0832。
0832为模/数转换芯片的型号,其前面字母应为DAC。
(9) 原稿表述“MCS-51 系列单片机设置了经典的 8 位单片机的总线结构,包括 8 位数据总线、16 位地址总线、控制总线及具有多机通信功能的串行通信接口。”
这里“控制总线”没有写位数的原因为控制总线为零散的几根线,故不需要写位数。
(10) MCS-51单片机硬件组成中:32条可编程的I/O端口(分4个8位并行I/O端口)→32个可编程的I/O端口(分4组8位并行I/O端口)。
作者 | 绳超 中国铁道出版社有限公司
初审 | 夏国强
复审 | 邢自兴
终审 | 赵玉山