第一章习题
1.1 单项选择题
(1) 单片机又称为单片微计算机,最初的英文缩写是____。 答案(D)
- A.MCP
- B.CPU
- C.DPJ
- D.SCM
(2) Intel公司的MCS-51系列单片机是______的单片机。 答案(C)
- A.1位
- B.4位
- C.8位
- D.16位
(3) 单片机的特点里没有包括在内的是______。答案(C)
- A.集成度高
- B.功耗低
- C.密封性强
- D.性价比高
(4) 单片机的发展趋势中没有包括的是______。答案(B)
- A.高性能
- B.高价格
- C.低功耗
- D.高性价比
(5) 十进制数56的二进制数是 ______。答案(A)
- A.00111000B
- B.01011100B
- C.11000111B
- D.01010000B
(6) 十六进制数93的二进制数是______。答案(A)
- A.10010011B
- B.00100011B
- C.11000011B
- D.01110011B
(7) 二进制数11000011的十六进制数是______。答案(B)
- A.B3H
- B.C3H
- C.D3H
- D.E3H
(8) 二进制数11001011的十进制无符号数是______。答案(B)
- A.213
- B.203
- C.223
- D.233
(9) 二进制数11001011的十进制有符号数是______。答案(B)
- A.73
- B.-75
- C.-93
- D.75
(10)十进制数29的8421BCD压缩码是______。答案(A)
- A.00101001B
- B.10101001B
- C.11100001B
- D.10011100B
(11)十进制数-36在8位微机中的反码和补码是______。答案(D)
- A. 00100100B、11011100B
- B.00100100B、11011011B
- C.10100100B、11011011B
- D.11011011B、11011100B
(12)十进制数+27在8位微机中的反码和补码分别是______。答案(C)
- A.00011011B、11100100B
- B.11100100B、11100101B
- C.00011011B、00011011B
- D.00011011B、11100101B
(13) 字符9的ASCII码是______。答案(D)
- A.0011001B
- B.0101001B
- C.1001001B
- D.0111001B
(14) ASCII码1111111B的对应字符是______。答案(C)
- A.SPACE
- B.P
- C.DEL
- D.{
(15)或逻辑的表达式是______。答案(B)
- A.A*B=F
- B.A+B=F
- C.A⊕B=F
- D.(A⋅B) ⃗=F
(16)异或逻辑的表达式是______。答案(C)
- A.A*B=F
- B.A+B=F
- C.A⊕B=F
- D.(A⋅B) ⃗=F
(17)二进制数10101010B与00000000B的“与”、“或”和“异或”结果是______。答案(B)
- A.10101010B、10101010B、00000000B
- B.00000000B、10101010B、10101010B
- C.00000000B、10101010B、00000000B
- D.10101010B、00000000B、10101010B
(18)二进制数11101110B与01110111B的“与”、“或”和“异或”结果是______。答案(D)
- A.01100110B、10011001B、11111111B
- B.11111111B、10011001B、01100110B
- C.01100110B、01110111B、10011001B
- D.01100110B、11111111B、10011001B
(19)下列集成门电路中具有与门功能的是______。答案(D)
- A.74LS32
- B.74LS06
- C.74LS10
- D.74LS08
(20)下列集成门电路中具有非门功能的是______。答案(B)
- A.74LS32
- B.74LS06
- C.74LS10
- D.74LS08
(21) Proteus软件由以下两个设计平台组成______。答案(C)
- A.ISIS和PPT
- B.ARES和CAD
- C.ISIS和ARES
- D.ISIS和CAD
(22) ISIS模块的主要功能是______。答案(A)
- A.电路原理图设计与仿真
- B.高级布线和编辑
- C.图像处理
- D.C51源程序调试
(23) ARES模块的主要功能是______。答案(B)
- A.电路原理图设计与仿真
- B.高级布线和编辑
- C.ISIS和ERAS
- D.ISIS和CAD
(24)家用电器如冰箱、空调、洗衣机中使用的单片机主要是利用了它的______能力。答案(D)
- A.高速运算
- B.海量存储
- C.远程通信
- D.测量控制
第一章习题
1.2 问答思考题
(1)什么是单片机?单片机与通用微机相比有何特点? 提示
单片机是在一块半导体硅片上集成了计算机基本功能部件的微型计算机。两者的比较:(1) 通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的提高。单片机主要面向控制,数据类型、计算速度和精度都相对低一些;(2) 通用微机中存储器组织结构主要针对增大存储容量和CPU对数据的存取速度。单片机中存储器的组织结构比较简单,寻址空间一般都为64 KB;(3) 通用微机中I/O接口主要面向标准外设(如显示器、键盘、鼠标、打印机等)。单片机的I/O接口是面向用户的特定电路,需要用户掌握接口电路设计技术。
(2) 单片机的发展有哪几个阶段?它今后的发展趋势是什么? 提示
1、单片微型计算机阶段,即SCM,代表性产品是Intel公司的8位MCS-51系列单片机;2、微控制器阶段,即MCU,代表性产品是基于51内核的微控制器系列产品;片上系统(或系统级芯片)阶段,即SoC,代表性产品有各类专用的SoC器件。单片机总的发展趋势是多功能、高速度、低功耗、高性价比、强I/O功能及结构兼容。
(3) 举例说明单片机的主要应用领域。 提示
主要应用于领域:1、工业自动化控制,如过程控制器、机器人模块、物流计量模块、机电一体化控制系统等;2、智能仪器仪表,如温度仪表、流量仪表、分析仪器、医疗仪器、智能传感器等;3、通信设备,如路由器、标准键盘、打印机、传真机、复印机等;4、汽车电子与航空电子系统,如动力监测系统、自动驾驭系统、运行监视器(黑匣子)等;5、家用电器,如空调、冰箱、洗衣机、微波炉、电视机、音响、电子玩具等。
(4)在众多单片机类型中,8位单片机为何不会过时,还占据着单片机应用的主导地位? 提示
51单片机技术成熟、价格低廉,可以满足许多简单工况的应用要求;基于51单片机内核发展的8位高性能单片机已弥补了51单片机的性能不足,并已占有相当的市场份额;51单片机涉及微机原理、电工电路、软件编程等许多技术基础,主流微控制器产品也大都与51机保持兼容,非常适合初学者作为计算机入门知识。综上所述,由于8位单片机在学习和应用方面的独特地位,目前仍然不会过时淘汰。
(5)掌握单片机原理及应用技术要注意哪些学习方法? 提示
单片机是一门课程,与学习其他课程的基本方法是一样的,就是要理解,并做到在理解基础上记忆。单片机更是一门技术,实践环节尤其重要。只有通过实践才能展现单片机的价值、体会到单片机的精髓、激发起学好这门课程的动力。此外,还要养成课前预习 、课后复习 、勤做练习 的良好学习习惯。
(6)单片机技术开发的主力军为何是有工程专业背景的技术人员而非计算机专业人员? 提示
单片机技术门槛较低,是一种适合大众掌握的先进技术。学习单片机只需要具备基本的电子基础和初中以上文化程度即可参与其中。另外,单片机开发有较强的应用专业背景要求,不懂被控对象的特殊要求,就不可能开发出紧密结合需求的单片机产品。基于上述原因,工程技术人员是单片机技术开发的主力军。
(7)学习单片机原理及应用技术需要哪些必要的基础知识? 提示
C语言、电子技术基础等
(8)二进制数的位与字节是什么关系?51单片机的字长是多少? 提示
位即bit,是二进制数中的1位,也是计算机数据存储的最小单位。1个二进制位只可以表示0和1两种状态。字节即Byte,由8个二进制位构成(1Byte=8bit)。字节是计算机数据处理的基本单位。字即Word,是计算机一次存取和传送的数据长度,不同计算机的字的长度是不同的,51单片机的字长是8位。
(9)简述数字逻辑中的与、或、非、异或的运算规律。 提示
运算规律如下:与运算,全1为1其余为0;或运算,全0为0其余为1;非运算,逐位取反;异或运算,相同为0相异为1。
(10)Proteus仿真软件为何对学习单片机原理及应用具有重要价值? 提示
单片机学习中应特别强调的是理论与实践相结合的方法,然而实验器材的限制常常很难使每个学习者都得到充分的练习机会。近年来出现的单片机仿真设计软件—Proteus已经克服这种限制。Proteus不仅可以作为单片机应用的重要开发工具,也可以充当一种非常高效的辅助教学手段。用户只需在PC上即可获得接近全真环境下的单片机技能培训,为学习者提供了极大的便利。
(11) Proteus ISIS的工作界面中包含哪几个窗口?菜单栏中包含哪几个选项? 提示
参考图1.2,列出图中标出的3个主要窗口,3个主要工具栏和菜单栏的12个选项。
(12)利用ISIS模块开发单片机系统需要经过哪几个主要步骤? 提示
开发过程是:1、启动ISIS,绘制电路原理图,保存为*.dsn文件;2、输入单片机汇编程序,保存为*.asm文件;3、进行源文件编译,排除语法错误后保存为*.hex文件;4、单步或断点仿真调试,排除逻辑错误后形成最终*.hex文件;5、连续仿真运行。
(13) 何谓PCB?利用Proteus ARES模块进行PCB设计需要经过哪几个主要步骤? 提示
PCB是印刷电路板Printed circuit board的英文缩写,它是以绝缘板为基材,切成一定尺寸,其上附有用电子印刷术制成的导电图形和孔眼(如元件孔、紧固孔、金属化孔等)的电子元器件安装底板。利用ARES模块进行PCB设计可以从元器件布局、布线、覆铜、形成光绘文件等方面进行考虑。
第二章习题
2.1 单项选择题
(1) 下列关于程序计数器PC的描述中____是错误的。 答案(C)
- A.PC不属于特殊功能寄存器
- B.PC中的计数值可被编程指令修改
- C.PC可寻址64KB RAM空间
- D.PC中存放着下一条指令的首地址
(2) MCS-51单片机的复位信号是______有效。 答案(D)
- A.下降沿
- B.上升沿
- C.低电平
- D.高电平
(3) 以下选项中第______项不是80C51单片机的基本配置。答案(A)
- A.定时/计数器T2
- B.128B片内RAM
- C.4KB片内ROM
- D.全双工异步串行口
(4) 单片机中的CPU主要由______两部分组成。答案(B)
- A.运算器和寄存器
- B.运算器和控制器
- C.运算器和译码器
- D.运算器和计数器
(5) 在51单片机的下列特殊功能寄存器中,具有16位字长的是______。答案(D)
- A.PCON
- B.TCON
- C.SCON
- D.DPTR
(6) 80C51单片机的ALE引脚是______引脚。答案(A)
- A.地址锁存使能输出端
- B.外部程序存储器地址允许输入端
- C.串行通信口输出端
- D.复位信号输入端
(7) 80C51单片机的存储器为哈佛结构,其内包括______。答案(A)
- A.4个物理空间或3个逻辑空间
- B.4个物理空间或4个逻辑空间
- C.3个物理空间或4个逻辑空间
- D.3个物理空间或3个逻辑空间
(8) 在通用I/O方式下,欲从P1口读取引脚电平前应当______。答案(B)
- A.先向P1口写0
- B.先向P1口写1
- C.先使中断标志清零
- D.先开中断
(9) 程序状态字寄存器中反映进位(或借位)状态的标志位符号是______。答案(A)
- A.CY
- B.F0
- C.OV
- D.AC
(10)单片机中的程序计数器PC用来______。答案(C)
- A.存放指令
- B.存放正在执行的指令地址
- C.存放下一条指令的地址
- D.存放上一条指令的地址
(11)单片机上电复位后,PC的内容和SP的内容为______。答案(B)
- A.0000H,00H
- B.0000H,07H
- C.0003H,07H
- D.0800H,08H
(12)80C51单片机要使用片内RAM,/EA引脚______。答案(D)
- A.必须接+5V
- B.必须接地
- C.必须悬空
- D.没有限定
(13) PSW中的RS1和RS0用来______。答案(A)
- A.选择工作寄存器区号
- B.指示复位
- C.选择定时器
- D.选择中断方式
(14) 上电复位后,PSW的初始值为______。答案(D)
- A.1
- B.07H
- C.FFH
- D.0
(15)单片机80C51的XTAL1和XTAL2引脚是______。答案(D)
- A.外接定时器
- B.外接串行口
- C.外接中断
- D.外接晶振
(16)80C51单片机的VSS(20)引脚是______。答案(B)
- A.主电源+5V
- B.接地
- C.备用电源
- D.访问片外存储器
(17)80C51单片机的P0~P3端口中具有第二功能的端口是______。答案(D)
- A.P0
- B.P1
- C.P2
- D.P3
(18)80C51单片机的/EA引脚接+5V时,程序计数器PC的有效地址范围在______。答案(D)
- A.1000H~FFFFH
- B.0000H~FFFFH
- C.0001H~0FFFH
- D.0000H~0FFFH
(19)当程序状态字寄存器PSW中的R0和R1分别为0和1时,系统选用的工作寄存器组为______。答案(B)
- A.组0
- B.组1
- C.组2
- D.组3
(20)80C51单片机的内部RAM中具有位地址的字节地址范围是______。答案(B)
- A.0~1FH
- B.20H~2FH
- C.30H~5FH
- D.60H~7FH
(21) 若80C51单片机的机器周期为12微秒,则其晶振频率为______MHz。答案(A)
- A.1
- B.2
- C.6
- D.12
(22) 80C51单片机内部程序存储器容量为______。答案(C)
- A.16K
- B.8K
- C.4K
- D.2K
(23)80C51单片机的复位功能引脚是______。答案(C)
- A.XTAL1
- B.XTAL2
- C.RST
- D.ALE
(24)80C51内部反映程序运行状态或运算结果特征的寄存器是______。答案(B)
- A.PC
- B.PSW
- C.A
- D.DPTR
(25)PSW=18H时,则当前工作寄存器是______。答案(D)
- A.第0组
- B.第1组
- C.第2组
- D.第3组
第二章习题
2.2 问答思考题
(1)51单片机内部结构由哪些基本部件组成?各有什么功能? 提示
从图2.1的内部图框中可得到各基本部件的名称,其中CPU具有解释指令、执行操作、控制时序和处理数据等功能;ROM主要用于存放程序代码及程序中用到的常数;RAM主要用于存放中间运算结果、数据暂存和标志位等信息;定时/计数器可实现定时控制、脉冲计数和波特率发生器功能;可编程I/O口可以实现单片机与外部设备间的数据与信息传输功能;可编程串行口具有单片机与外部串行设备间的数据的收发功能;时钟振荡器具有产生单片机各系统所必需的时钟信号的功能。
(2) 单片机的程序状态字寄存器PSW中各位的定义分别是什么? 提示
CY(PSW7)进位标志,AC(PSW6)辅助进位标志,F0(PSW5)用户标志位,RS1、RS0(PSW4、PSW3)工作寄存器组指针,OV(PSW2)溢出标志,F1(PSW1)用户标志位。
(3) 51单片机引脚按功能可分为哪几类?各类中包含的引脚名称是什么? 提示
电源及晶振引脚(4只)——VCC、VSS、XTAL1、XTAL2;控制引脚(4只)——/PSEN,ALE、/EA、RST;并行 I/O口引脚(32只)——P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7。
(4)51单片机在没接外部存储器时,ALE引脚上输出的脉冲频率是多少? 提示
6分频
(5)计算机存储器地址空间有哪几种结构形式?51单片机属于哪种结构形式? 提示
普林斯顿结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构,即ROM和RAM位于同一存储空间的不同物理位置处。哈佛结构是一种将程序指令存储器和数据存储器分开设置的存储器结构,即ROM和RAM位于不同的存储空间。51系列单片机属于这种结构。
(6)如何认识80C51存储空间在物理结构上可划分为4个空间,而在逻辑上又可划分为3个空间?提示
51系列单片机共有4个存储空间,即片内ROM、片外ROM、片内RAM和片外RAM。由于片内、片外程序存储器是统一编址的,因此从逻辑地址来看只有3个存储器空间,即ROM、片内RAM和片外RAM
(7)80C51片内低128B RAM区按功能可分为哪几个组成部分?各部分的主要特点是什么? 提示
可分为3个组成部分:地址00H~1FH的32个数据存储单元可作为工作寄存器使用。这32个单元又分为4组,每组8个单元,按序命名为通用寄存器R0~R7;地址为20H~2FH的16字节单元,既可以像普通RAM单元按字节地址进行存取,又可以按位进行存取。这16字节共有128个二进制位,位地址为00H~7FH;地址为30H~7FH的80字节单元为用户RAM区,这个区只能按字节存取。在此区内用户可以设置堆栈区和存储中间数据。
(8)80C51片内高128B RAM区与低128B RAM区相比有何特点? 提示
高128B RAM区中仅有21个字节单元(称为特殊功能寄存器)可被用户使用,其余为系统保留单元用户不可用,而低128 RAM区的所有单元用户都可使用。
(9)80C52片内高128B RAM区与80C51片内高128B RAM区相比有何特点? 提示
0C52有两个并列的高128B RAM区,地址都是80H~FFH,其中一个作为特殊功能寄存器专用,另一个则可作为普通RAM使用,但却只能采用寄存器间接寻址方式访问。
(10)什么是复位?单片机复位方式有哪几种?复位条件是什么? 提示
单片机在开机和死机时需要复位,以便使各功能部件处于一个确定的初始状态开始工作。复位可以由两种方式产生,即上电复位方式和按键复位方式。复位的条件是,在RST引脚端出现满足复位时间要求的高电平状态,该时间等于系统时钟振荡周期建立时间再加2个机器周期时间(一般不小于10ms)。
(11) 什么是时钟周期和指令周期?当振荡频率为12MHz时,一个机器周期为多少微秒? 提示
晶振或外加振荡源的振荡周期称为时钟周期,执行一条指令所需要的时间称为指令周期。振荡频率为12MHz时,一个机器周期为1微秒。
(12)简述负边沿D触发器的输入端、时钟端和输出端之间的时序关系,解释D触发器的导通、隔离、锁存功能的实现原理。 提示
当时钟端为脉冲下降沿之前时,输入端和输出端之间是断开的,此时两者间为隔离状态;当时钟端为脉冲下降沿时,输入端和输出端之间是导通的,输出端跟随输入端变化;当时钟端为脉冲下降沿之后时,输入端和输出端之间又是断开的,此时输出端的状态不会随输入端变化,即为锁存状态。
(13)如何理解单片机I/O端口与特殊功能寄存器P0~P3的关系? 提示
I/O端口P0~P3对应于并行I/O口的单元电路,特殊功能寄存器P0~P3则可视为并行I/O口中的4个8位的D触发器。
(14) 如何理解通用I/O口的准双向性?怎样确保读引脚所获信息的正确性? 提示
无条件输出和有条件输入的I/O口称为准双向I/O口,读引脚前先写1到I/O口可避免引脚内电位被钳制到0
(15) 80C51中哪个并行I/O口存在漏极开路问题?此时没有外接上拉电阻会有何问题? 提示
P0口工作在通用I/O口方式时,上拉场效应管V2将处于截止状态,由此会产生漏极开路现象,此时若没有外接上拉电阻会造成P0口引脚的电平状态不确定。
(16) P0端口中的地址/数据复用功能是如何实现的? 提示
当希望利用P0口传输CPU地址和数据信息时,需要先使与门A解锁,同时使多路开关MUX与非门X接通,这样内部“地址/数据”端的电平便可传输到引脚P0.n上。与经由锁存器输出的通用I/O口方式不同,这种方式称为地址/数据分时复用方式。不过要使传输到P0.n上的地址和数据信息分开还需要地址/数据锁存接口电路的配合才行。
第三章习题
3.1 单项选择题
(1)在C51程序中常常把______作为循环体,用于消耗CPU运行时间,产生延时效果。 答案(D)
- A.赋值语句
- B.表达式语句
- C.循环语句
- D.空语句
(2)下列选项中不能作为if语句中条件表达式的是______。 答案(C)
- A.!a
- B.a+2
- C.&&
- D.3
(3)语句(a>b)?(max=a):(max=b);的含义是______。 答案(B)
- A.如果(a>b)则max=b,否则max=a
- B.如果(a>b)则max=a,否则max=b
- C.如果(a>b或max=a)则max=b
- D.如果(a>b或max=b)则max=a
(4) 在C51中,当do-while语句中的条件表达式的值为______时,循环结束。 答案(A)
- A.0
- B.1
- C.2
- D.3
(5)语句while(i=3);循环执行了______次空语句。 答案(D)
- A.0
- B.1
- C.3
- D.无限
(6)以下描述中正确的是______。答案(B)
- A.continue语句的作用是结束整个循环体的执行
- B.只能在循环体内和switch语句体内使用break语句
- C.在循环体内使用break和continue语句的作用相同
- D.以上三种描述都不正确
(7)以下选项中合法的C51变量名是______。答案(C)
- A.xdata
- B.sbit
- C.start
- D.interrupt
(8)C51数据类型中关键词“sfr”用于定义______。 答案(D)
- A.指针变量
- B.字符型变量
- C.无符号变量
- D.特殊功能寄存器变量
(9)在C51的数据类型中,unsigned char型的数据长度和值域为______。 答案(C)
- A.单字节,-128~127
- B.双字节,-32768~32767
- C.单字节,0~255
- D.双字节,0~65535
(10)C51数据类型中关键词“bit”用于定义______。答案(A)
- A.位变量
- B.字节变量
- C.无符号变量
- D.特殊功能寄存器变量
(11)已知P1口第0位的位地址是0x90,将其定义为位变量P1_0的正确命令是_____。 答案(B)
- A.bit P1_0 = 0x90;
- B.sbit P1_0 = 0x90;
- C.sfr P1_0 = 0x90;
- D.sfr16 P1_0 = 0x90;
(12)将aa定义为片外RAM区的无符号字符型自动变量的正确写法是______。答案(D)
- A.unsigned char data aa;
- B.signed char xdata aa;
- C.extern signed char data aa;
- D.unsigned char xdata aa;
(13)将bmp定义为片内RAM区的有符号字符型静态变量的正确写法是_____。答案(C)
- A.static char xdata bmp;
- B.signed char data bmp;
- C.static char data bmp;
- D.static unsigend char data bmp;
(14)设编译模式为SMALL,将csk定义为片外RAM区的浮点型变量的正确写法是______。答案(B)
- A.char data csk;
- B.float csk;
- C.signed char data csk;
- D.float xdata csk;
(15)对于char key[10]={0x10,0x20,0x30};定义的数组,下列描述中______是正确的。 答案(B)
- A.数组元素key[1]的初值为0x10
- B.数组元素key[4]的初值为0
- C.数组key中共有11个元素
- D以上三种描述都不正确
(16)下面是对一维数组s的初始化,其中不正确的是______。答案(D)
- A.char s[5]={“abc”};
- B.char s[5]={‘a’,‘b’, ‘c’};
- C.char s[5]=“”;
- D.char s[5]=“abcdef”;
(17)下列语句中,______能满足如下要求:定义一个指向位于xdata存储区(small编译模式)中char型变量的指针变量px。答案(B)
- A.char * xdata px;
- B.char xdata * px;
- C.char data * xdata px;
- D.char * px xdata;
(18)下面叙述中不正确的是______。答案(C)
- A.一个C51源程序可以由一个或多个函数组成
- B.一个C51源程序必须包含一个main()函数
- C.C51中的注释语句只能位于可执行语句的后面
- D.C51程序的基本组成单位是函数
(19)C51程序总是从______开始运行的。答案(A)
- A.主函数
- B.形参函数
- C.库函数
- D.自定义函数
(20)在C51中,函数类型是由______决定的。 答案(C)
- A.return语句表达式的存储类型
- B.函数形参的数据类型
- C.定义函数时指定的返回类型
- D.编译系统的编译模式
(21)对于用void delay (int time);声明的函数,下列描述中______是不正确的。答案(C)
- A.delay函数是void型的
- B.delay函数是有参函数
- C.delay函数的返回参数是time
- D.delay函数的形参是int型的
第三章习题
3.2 问答思考题
(1)C51与汇编语言相比有哪些优势?怎样实现两者的互补提示
C51语言具有结构化语言特点和机器级控制能力,代码紧凑,效率可与汇编语言媲美。由于接近真实语言,程序的可读性强,易于调试维护,编程工作量小,产品开发周期短。C51语言与汇编指令无关,易于掌握。但对于有较高程序代码执行速度要求的场合,如I/O 接口地址处理、中断向量地址安排,汇编语言仍有一定优势。可以采用在C51中调用汇编程序和在C51中嵌入汇编代码的方法实现两种语言优势互补。
(2)在µVision5中创建C51程序需要进行哪些操作步骤? 提示
具体步骤如下:新建工程文件→选择单片机→编辑源程序→添加源程序→修改工程配置→进行程序编译→生成可执行文件”
(3)使用µVision5的运行调试器功能,需要做哪些准备工作? 提示
准备工作步骤:1、打开工程配置窗口中的Debug页面,勾选“Use Simulator”(使用模拟器)选项;2、打开C51调试界面,图中黄色箭头指向的是第一条可执行语句;3、打开“Watch #1”选项卡,切换到1#观察窗口,加入被观察变量名。此后便可运行调试器进行程序模拟运行
(4)C51中有哪几类运算符和哪些表达式? 提示
C51中有6类运算符,分别是算术运算符、关系运算符、逻辑运算符、位运算符、复合赋值运算符和杂项运算符。常用的5类表达式分别是,算术表达式、关系表达式、逻辑表达式、位表达式、复合赋值表达式。
(5)C51中的while和do while语句的不同点是什么? 提示
while语句和do-while语句的循环体是相同的,运算结果也相同,但由于do-while语句是先执行后判断,而while语句是先判断后执行,因而,对于关系表达式一开始就为“假”时,前者会执行一次循环体内容,而后者一次也不会执行。
(6)若在C51的switch的语句组中漏掉break会发生什么问题? 提示
漏掉break后将会继续执行下一个case,除非遇到break或不再有case时才会跳出swith结构。
(7)C51变量的定义包含哪些要素?其中哪些是不能省略的? 提示
变量定义中包含着存储种类、数据类型、存储类型和变量名4项要素,其中数据类型和变量名在变量定义时是不能省略的,存储种类和存储类型在变量定义时可以采用相应缺省值。
(8)sbit型变量与bit型变量都是位变量,但二者的不同点在哪里? 提示
bit型变量的位地址是由编译器为其随机分配的(定义时不能由用户指定),位地址是在片内RAM的可位寻址区(bdata区)中;而sbit型变量的位地址则是由用户指定的,位地址是在可位寻址的SFR单元内(但利用bdata限定变量存储类型后,可将位地址范围扩大到bdata区)。
(9)在C51中为何要尽量采用无符号的字节变量或位变量? 提示
这两种变量占用内存少,代码长度短,执行效率高。有符号的字节变量虽然也只占用1字节,但CPU需要进行额外的操作来测试代码的符号位,这会降低代码效率。使用浮点型的变量时,编译系统还将调用相应的库函数来保证运算精度,这会明显增加运算时间和代码长度。
(10)为了加快程序的运行速度,C51中频繁使用的变量应定义在哪个存储区? 提示
由于片内存储器的数据传送多为单周期指令,而片外存储器多为双周期指令,CPU处理前者数据的速度要快于后者,因此频繁操作的变量应尽量定义在片内存储器中,选择如data,bdata或idata等存储类型的变量。
(11)何为自动型变量?它有哪些特点? 提示
具有auto属性的变量称为自动型变量。自动型变量的作用域是在定义该变量的函数体或语句组内。当函数调用结束或语句组执行完毕时,自动型变量所占用的存储单元就被释放。由于存储单元中的值是随机的,因此自动型变量在赋初值前的值也是随机的。自动型是“存储种类”的默认选项,如果变量定义时“存储种类”项省略,则变量被默认为是自动型的。。
(12)对于C51来讲,指针变量定义还应该包括标准C以外的哪些信息? 提示
C51指针变量定义的一般形式为:数据类型〔存储类型1〕*〔存储类型2〕指针变量名〔=&被指向变量名〕;。其中,“数据类型”是被指向变量的数据类型;“存储类型1”是指被指向变量所在的存储类型,默认时根据被指向变量的定义语句确定;“存储类型2”是指针变量所在的存储类型,默认时根据C51编译模式的默认值确定;指针变量名可按C51变量名的规则选取。
(13)求数组元素中最大值时常采用“打擂台算法”,其编程原理是什么? 提示
编程原理是,先将第一个元素(任意元素均可,常选取首元素)作为“擂主”,把它的值赋给变量max。然后循环让下一个元素与max比较。如果下一元素值>max,则把它的值赋给max,取代max的当前值。以此类推直到全部比对完成后,max中保存的就是最大的值。
(14)何为库函数?怎样使用库函数? 提示
库函数(也叫标准函数)是由C51系统提供的,可满足用户的通用性要求。使用时需在程序中开头处用#include指令将库函数的文件名包含进来,然后按一般调用规则使用即可。
(15)函数定义与函数声明有何不同?什么情况下需要函数声明? 提示
函数声明与函数的定义语句是基本相同的。写函数声明时,可以简单地照写函数的定义语句后再加一个分号即可。由于编译系统只关心和检查形参个数和形参类型而不检查形参名,因此函数声明中的形参名也可省略,只写形参的类型即可。 当函数调用出现在函数定义之前时必须先进行函数声明。这是因为程序进行编译时是从上到下逐行进行的,如果没有函数的声明,当编译到函数调用行时,编译系统就无法确定它是函数还是变量,也无法进行虚实结合检查。这样,在运行阶段出现错误时就很难找到相应原因。
第四章习题
4.1 单项选择题
(1) 以下基于通用I/O口方式的输出电路图中,正确的是____。 答案(B)
(2) 以下基于通用I/O口方式的输入电路图中,正确的是______。 答案(C)
(3)下图Proteus ISIS绘图工具条中,包含有电源端子“POWER”的按钮是左数的______。答案(B)
(4)在下图的µVision5运行和调试工具条中,左数第二个图标的功能是______。答案(D)
(5)在下图的µVision5运行和调试工具条中,左数第三个图标的功能______。答案(B)
(6)在下图的µVision5运行和调试工具条中,左数第一个图标的功能是______。答案(A)
(7)为了实现keil与Proteus的联合仿真运行,需要______。答案(B)
- A.将Keil中形成的hex文件加载到Proteus中,然后在Proteus环境下进行运行
- B.在Keil中形成hex文件,Proteus中形成dsn文件,然后用Keil控制Proteus运行
- C.在Keil中形成hex文件,Proteus中形成dsn文件,然后用Proteus控制Keil运行
- D.将Proteus中形成的hex文件和dsn文件同时打开,然后在Keil环境下进行运行
(8)如果想在µVision5中对C51程序中的延时函数进行跟踪调试,应该采用方式______。答案(C)
- A.单击F5进行连续运行
- B.单击F10进行跨函数单步运行
- C.单击Ctrl+F5运行到光标所在行
- D.上述方式都不合适
(9) 在µVision5中调试运行C51时,运行到断点的快捷键操作是______。答案(D)
- A.单击F5
- B.单击F10
- C.单击Ctrl+F5
- D.单击F9→F5
(10)已知共阴极LED数码显示管中,a笔段对应于字模的最低位。若需显示字符H,则它的字模应为______。答案(A)
- A.0x76
- B.0x7f
- C.0x80
- D.0xf6
(11)共阳极LED数码管显示字符“5”的显示码是_____。答案(D)
- A.0x06
- B.0x7d
- C.0x82
- D.0x92
(12)若LED数码管显示字符“8”的字模是0x80,则可以断定该数码管是______。答案(B)
- A.共阴极数码管
- B.共阳极数码管
- C.动态显示原理
- D.静态显示原理
(13) 在共阴极LED数码管使用中,若需仅显示小数点,则其显示字模是_____。答案(D)
- A.0x80
- B.0x10
- C.0x40
- D.0x7f
(14)假设单片机P0.0~P0.3引脚接有4个独立开关,P0.4~P0.7为空置未用,为使读到的P0口中高4位值为0,应采用如下______。答案(A)
- A.P0 = P0 & 0x0f;
- B.P0 = P0 & 0xf0;
- C.P0 = P0 | 0x0f;
- D.P0 = P0 | 0xf0;
(15)如将本章实例4的由下向上的流水灯方向改为由上向下,并改用循环左移库函数_crol_进行控制,则P2的初始值应取为______。答案(D)
- A.0x0f
- B.0xf7
- C.0x7f
- D.0xfe
(16)LED数码管用于动态显示时需要将各位数码管的______。答案(C)
- A.全部位码线并联起来
- B.全部位码线串联起来
- C.相同段码线并联起来
- D.相同段码线串联起来
(17)下列关于LED数码管动态显示的描述中______是正确的。答案(C)
- A.只有共阴极型数码管可用于动态显示
- B.只有P2口支持数码管的动态显示方式
- C.每个I/O口都可用于数码管的动态显示
- D.动态比静态显示占用CPU机时少发光亮度稳定
(18)假设某单片机应用系统需要连接10个按键,则应优先考虑______。答案(B)
- A.独立式按键
- B.行列式按键
- C.动态键盘
- D.静态键盘
(19)下列关于行列式键盘的描述中______是正确的。答案(B)
- A.每只按键独立接在一根I/O口线上,根据口线电平判断按键的闭合状态
- B.按键设置在跨接行线和列线的交叉点上,根据行线电平有无反转判断按键闭合状态
- C.独立式键盘的特点是占用I/O口线较少,适合按键数量较多时的应用场合
- D.行列式键盘的特点是占用I/O口线较多,适合按键数量较少时的应用场合
(20)在本章实例8的行列式键盘中,使P2依次输出0xef,0xdf,0xbf,0x7f四个值后,可以使得______。答案(A)
- A.键盘的4个行线电平全为1,列电平轮流有一列为0其余为1
- B.键盘的4个列线电平全为1,行电平轮流有一行为0其余为1
- C.键盘的4个行线和4个列线的电平全为1
- D.键盘的4个行线和4个列线的电平全为0
(21)下列关于按键消抖的描述中______。答案(D)
- A.机械式按键在按下和释放瞬间会因弹簧开关变形而产生电压波动
- B.按键抖动会造成检测时按键状态不易确定的问题
- C.单片机编程时常用软件延时10ms的办法消除抖动影响
- D.按键抖动问题对晶振频率较高的单片机基本没有影响
第四章习题
4.2 问答思考题
(1)单片机与外部设备相连有哪两种方式?各有什么特点? 提示
51单片机与外部设备的连接既可采用I/O口方式(即非总线方式),也可采用总线方式。由于51单片机属于总线型结构,片内各功能部件都是按总线关系设计并集成为整体的,因而采用总线方式与外设连接时,指令的执行效率高。尤其是当外设是存储器时,只能采用总线方式连接。此外由于总线的线路公用性,外设的布线较为容易。对于非总线方式,通常直接使用单片机的4个I/O口,当外设数量不多时,编程原理和接线关系都较为简单,是初学者常用的方式。
(2)联合仿真的工作原理是什么? 提示
联合仿真的原理是,将µVision5和ISIS联合起来运行,其中µVision5承担C51程序编译调试,ISIS承担虚拟电路运行,这样软硬件系统可作为一个整体运行。如果发现问题,可立即在ISIS中进行电路修改或在µVision5中进行程序优化,然后再重新进行调试运行,直至达到所需要求。由于软硬件都能进行仿真检验,从而可加速单片机产品的开发过程。
(3) 简述μVision5可以提供哪些调试运行方法? 提示
利用µVision5的Debug菜单和调试工具条可对C51程序进行调试。常用的方法有:复位、全速运行、暂停、单步、过程单步、执行完当前函数和运行到光标行。其中最基本的是单步运行与全速运行。全速运行是指一行程序执行完以后自动执行下一行程序,直至程序结束。由于程序运行的速度很快,可以看出程序的总体运行效果。单步运行是每次执行一行程序,执行完该行程序以后即停止,等待单步命令后再执行下一行程序,此时可以观察该行程序执行完以后的当前结果,借此可以找到程序中的问题所在。 调试过程中还可通过信息窗口观察运行信息。常用的信息窗口有:命令窗口、反汇编窗口、符号窗口、寄存器窗口、堆栈窗口、观察窗口、存储器窗口、串行窗口、分析窗口等。此外,还可利用系统接口对话框直接观察定时器、中断、并行端口、串行端口的工作状态。
(4)与μVision5模拟运行相比,联合仿真的意义是什么? 提示
μVision5可以在无需硬件电路的情况实现纯软件模拟运行,但这样做存在一些不足之处。一是缺乏直观性,当系统比较复杂时,检验过程会很费时费力;二是无法进行单片机软硬件系统的综合测试,尤其是无法排除因硬件故障导致的系统运行问题。μVision5与ISIS联合仿真时,单片机的软硬件系统可作为一个整体运行,利用µVision5的程序调试功能可对ISIS中的虚拟电路进行仿真测试。这样便可克服μVision5模拟运行的不足。
(5)什么是单片机与LED接口的高电平驱动?为何低电平驱动较为常用? 提示
发光二极管的正极直接接在单片机的I/O端口上而负极接地的做法称为LED的高电平驱动方式。这种情况下,I/O端口输出“1”电平可使其点亮,而输出“0”电平可使其关断。高电平驱动方式下电流是从I/O口向外拉出的。反之,LED负极接在I/O口上而正极接Vcc的做法称为低电平驱动方式,此时点亮LED的电平是低电平,而电流是由外电路灌向I/O口内的。单片机I/O口灌电流的能力大于拉电流的能力,因而采用低电平驱动时I/O口带负载的能力较强,故低电平驱动电路最为常用。
(6)实例2中点亮了的LED不会随着对应按键的释放而熄灭,除非有新的按键动作时才刷新LED的状态,实现这一功能的编程方法是什么? 提示
为避免将按键释放后读到的key值写入P2口,可以利用语句if (key!= 0x0f ) P2=key,仅在key值不为0x0f时(有键按下)才向P2输出key值,这样就能保持先前的亮灯状态,直至有新的按键压下时才刷新显示。
(7)实例3中采用的流水灯控制原理是什么? 提示
控制原理是,根据循环读取到的按键值进行流水灯分支控制,为此需要先建立两个按键状态变量和1个流水灯控制数组。程序运行时,先按检测到的按键状态刷新状态变量值,然后再根据状态变量的组合关系将控制数组中的亮灯数据送往P2口,这样便可产生不同的流水灯效果了。
(8)实例4中采用的流水灯控制原理是什么? 提示
本例采用循环移位方法控制流水灯效果,具体做法是,调用C51的intrins.h库函数中的字符循环右移函数_cror_(x,n),使P2口中的8位二进制流水灯花样值依次循环移位,每次只有1只LED亮其他7只灭,从而产生无限循环的流水灯效果。
(9)软件法消除机械式按键抖动的原理? 提示
软件消抖法的原理是,当检测到有键按下时,先用软件延时10ms,然后再次检测按键的状态。若仍是闭合状态电平,则可认为是真正有键按下;反之则应作为误判处理。。
(10)简述LED数码管的字符显示原理。 提示
七段LED数码管由7个条形LED组成字符笔段,1个圆形LED作为小数点。其中所有LED阳极连接在一起作为公共端引脚,所有LED阴极单独接出作为段位引脚(共阳极数码管)。反之,共阴极数码管则相反。利用发光二极管正向连接时点亮,反向连接时熄灭的特性,改变笔段的组合电平就能形成不同的字形。
(11)假设变量count中存有2位十进制数,现欲将其拆分为个位和十位两个数,简述拆分计算的做法。 提示
拆分计算的做法是,将count用取模运算(count%10)拆出个位值,用整除运算(count/10)拆出十位值。
(12)何为数码管静态显示接口?其特点是什么? 提示
静态显示接口采用一个并行I/O口接一个七段数码管的段位引脚,公共端接地或Vcc。这种接法的优点是电路简单,数码管显示亮度稳定。但该方法占用I/O口资源较多。
(13)何为数码管动态显示接口?其特点是什么? 提示
动态显示接口是将n个七段数码管的相同段码引脚并联起来接在一位I/O口线上,每个数码管的位码引脚则分别由一位I/O口线控制。动态显示接口的特点是占用I/O口资源较少,但占用CPU机时较多。
(14)独立式按键的接口与特点是什么? 提示
组成原理是,按键的一端接地,另一端与一个I/O口线连接。若按键接在P0口需外接上拉电阻,而接在P1~P3口无需要上拉电阻。独立式键盘的特点是电路简单,软件处理工作量小,但占用的I/O口线较多。
(15)行列式键盘的接口与特点是什么? 提示
组成原理是,将I/O口分为行线和列线,按键设置在跨接行线和列线的交点上,列线通过上拉电阻接正电源。行列式键盘的特点是占用I/O口线较少但软件处理工作量较大。
(16)试对实例8中4×4行列式键盘的软件扫描查询做法进行归纳? 提示
本例采用软件扫描查询法进行,即根据按键压下前后,所在行线的端口电平是否出现翻转,判断有无按键闭合动作。具体方法是:(1)键盘列扫描,由P2口循环输出一组扫描码(可事先存放在一个字符数组中)使键盘的4个行线电平全为1,列电平轮流有一列为0,其余为1;(2)按键判断,利用条件表达式(P2&0x0f)判断有无按键压下。若行线低4位不全为1,说明至少有一个按键压下,此时P2口的读入值必为根据按键闭合规律确定的键模数组key_buf[]值之一;(3)键值计算,若将行列式键盘中自左至右、自上而下的排列顺序号作为其键值,则通过逐一对比P2读入值与键模数组,可求得闭合按键的键值j。如此便可查找出是哪个按键有按键动作了。
第五章习题
5.1 单项选择题
(1) 外部中断0允许中断的C51语句为____。 答案(D)
- A.RI=1;
- B.TR0=1;
- C.IT0=1;
- D.EX0=1;
(2) 按照中断源自然优先级顺序,优先级别最低的是______。 答案(B)
- A.外部中断INT1
- B.串口发送
- C.定时器T1
- D.外部中断INT0
(3) 当CPU响应定时器T1中断请求时,程序计数器PC里自动装入的地址是______。答案(D)
- A.0003H
- B.000BH
- C.0013H
- D.001BH
(4) 当CPU响应外部中断/INT0的中断请求时,程序计数器PC里自动装入的地址是______。答案(A)
- A.0003H
- B.000BH
- C.0013H
- D.001BH
(5) 当CPU响应外部中断/INT1的中断请求时,程序计数器PC里自动装入的地址是______。答案(C)
- A.0003H
- B.000BH
- C.0013H
- D.001BH
(6) 在80C51单片机中断自然优先级里,级别倒数第二的中断源是______。答案(C)
- A.外部中断1
- B.定时器T0
- C.定时器T1
- D.外部中断0
(7)在80C51单片机中断自然优先级里,级别正数第二的中断源是______。答案(B)
- A.外部中断1
- B.定时器T0
- C.定时器T1
- D.串口TX/RX
(8) 为使P3.2引脚出现的外部中断请求信号能得到CPU响应,必须满足的条件是______。答案(C)
- A.ET0=1
- B.EX0=1
- C.EA=EX0=1
- D.EA=ET0=1
(9) 为使定时器T0的中断请求信号能得到CPU的中断响应,必须满足的条件是______。答案(D)
- A.ET0=1
- B.EX0=1
- C.EA=EX0=1
- D.EA=ET0=1
(10)下列关于中断函数的描述中______是不正确的。答案(C)
- A.中断函数是void型函数
- B.中断函数是无参函数
- C.中断函数是无需调用的函数
- D.中断函数是只能由系统调用的函数
(11)80C51单片机外部中断1和外部中断0的触发方式选择位是_____。答案(C)
- A.TR1和TR0
- B.IE1和IE0
- C.IT1和IT0
- D.TF1和TF0
(12)在中断响应不受阻的情况下,CPU对外部中断请求做出响应所需的最短时间为______机器周期。答案(C)
- A.1个
- B.2个
- C.3个
- D.8个
(13) 80C51单片机定时器T0的溢出标志TF0,当计数满在CPU响应中断后_____。答案(A)
- A.由硬件清零
- B.由软件清零
- C.软硬件清零均可
- D.随机状态
(14) CPU响应中断后,由硬件自动执行如下操作的正确顺序是______。答案(D)
- ①保护断点,即把程序计数器PC的内容压入堆栈保存
- ②调用中断函数并开始运行
- ③中断优先级查询,对后来的同级或低级中断请求不予响应
- ④返回断点继续运行
- ⑤清除可清除的中断请求标志位
- A.①③②⑤④
- B.③②⑤④①
- C.③①②⑤④
- D.③①⑤②④
(15)若80C51同一优先级的5个中断源同时发出中断请求,则CPU响应中断时程序计数器PC里会自动装入______地址。答案(B)
- A.000BH
- B.0003H
- C.0013H
- D.001BH
(16)80C51单片机的中断服务程序入口地址是指______。答案(C)
- A.中断服务程序的首句地址
- B.中断服务程序的返回地址
- C.中断向量地址
- D.主程序调用时的断点地址
(17)下列关于C51中断函数定义格式的描述中______是不正确的。答案(D)
- A.n是与中断源对应的中断号,取值为0~4
- B.m是工作寄存器组的组号,缺省时由PSW的RS0和RS1确定
- C.interrupt是C51的关键词,不能作为变量名
- D.using也是C51的关键词,不能省略
(18)下列关于INT0的描述中______是正确的。答案(D)
- A.中断触发信号由单片机的P3.0引脚输入
- B.中断触发方式选择位ET0可以实现电平触发方式或脉冲触发方式的选择
- C.在电平触发时,高电平可引发IE0自动置位,CPU响应中断后IE0可自动清零
- D.在脉冲触发时,下降沿引发IE0自动置位,CPU响应中断后IE0可自动清零/li>
(19)下列关于TX/RX的描述中______是不正确的。答案(D)
- A.51单片机的内部发送控制器和接收控制器都可对串行数据进行收发控制
- B.若待接收数据被送入“接收SUBF”单元后,接收控制器可使RI位硬件置1
- C.若“发送SUBF”单元中的数据被发送出去后,发送控制器可使TI位硬件置1
- D.系统响应中断后,RI和TI都会被硬件自动清0,无需软件方式干预
(20)下列关于中断控制寄存器的描述中______是不正确的(默认为SMALL编译模式)。答案(B)
- A.80C51共有4个与中断有关的控制寄存器
- B.TCON为串口控制寄存器,字节地址为98H,可位寻址
- C.IP寄存器为中断优先级寄存器,字节地址为B8H,可位寻址
- D.IE为中断允许寄存器,字节地址为A8H,可位寻址
(21)下列关于中断优先级的描述中______是不正确的(默认为SMALL编译模式)。答案(C)
- A.80C51每个中断源都有两个中断优先级,即高优先级中断和低优先级中断
- B.低优先级中断函数在运行过程中可以被高优先级中断所打断
- C.相同优先级的中断运行时,自然优先级高的中断可以打断自然优先级低的中断
- D.51单片机复位后IP初值为0,此时默认为全部中断都是低级中断
第五章习题
5.2 问答思考题
(1)试举例说出另一个生活或学习中的两级中断嵌套示例。 提示
某人正在家里擦洗玻璃,突然发现洗衣机停止转动了。于是他放下抹布去检查,发现是因电表欠费停电了。他马上用手机给电表充值,很快电表恢复了供电。在重新启动了洗衣机后他又接着去擦洗玻璃了。
(2) 简述中断、中断源、中断优先级和中断嵌套的概念。 提示
中断:在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件。待处理完成后,再返回到原先被中止的工作处继续进行随后的工作。 中断源:中断管理系统能够处理的突发事件。 中断优先级:为使CPU能优先处理紧急突发事件,中断源被分成两类优先级,即自然优先级和设定优先级。CUP会优先响应高优先级的中断请求,而在同等优先级中又会按自然优先级的顺序选择响应。
(3) 简述51单片机各种中断源的中断请求原理。 提示
/INT0和/INT1:若该引脚处为低电平信号,则经过非门转换后可使中断请求标志位IE0或IE1硬件置1。若该引脚处为负跳变脉冲信号,则经过施密特触发器转换后也可使IE0或IE1硬件置1。IE0或IE1置1表示有/INT0或/INT1中断请求发生; T0和T1:当T0或T1中累加注入的脉冲信号被充满溢出后,可使中断请求标志位TF0或TF1硬件置1。TF0或TF1置1表示有T0或T1中断请求发生; TX和RX:若来自引脚RXD的一帧数据被送入SBUF接收单元后,可使中断请求标志位RI硬件置1。若来自SBUF发送单元的一帧数据经过输出门发送完毕后,也可使中断请求标志位TI硬件置1。RI或TI置1表示有TX或RX中断请求发生。
(4)怎样理解图5.8展示的51单片机中断系统的组成? 提示
由图可见,中断信息的传递是沿着5条水平路径由左向右展开的。以/INT0为例,为使/INT0引脚上的低电平能作为低优先级中断请求被响应,中断控制位需要满足以下条件:IT0=0(允许电平驱动),EX0=1(允许/INT0中断),EA=1(允许总中断),PX0=0(允许作为低优先级)。由于所有中断控制位都隶属于TCON,SCON,IE和IP四个工作寄存器,因此,上述四个工作寄存器是51单片机中断系统的重要组成部分。
(5)何为中断矢量(或向量)地址?中断向量与中断号的关系是什么? 提示
51单片机中规定了5个特殊的ROM单元用于引导中断程序(或函数)的调用,这些ROM单元的地址被称为中断矢量(或向量),它与中断号的关系是,中断矢量=中断号×8+3。有了中断矢量,编写中断程序或中断函数时,只要将指向中断程序入口地址的跳转语句放在中断矢量为首的单元里,或在中断函数定义中写明中断号,就能调用位于任意ROM处的中断程序,为用户安排中断程序提供了很大的灵活性。
(6)何为中断响应?51单片机的中断响应条件是什么? 提示
中断响应是指CPU从发现中断请求,到开始执行中断程序的过程。中断响应的条件为:1、有中断源发出中断请求;2、中断总允许位为1;3、中断源的中断允许位为1。此外,如遇CPU正在处理同级或更高优先级的中断,即使满足上述条件中断响应还会被阻止。
(7)何为中断撤销?简述51单片机中断请求标志撤销的做法。 提示
中断请求标志清0的操作称为中断撤销。对于定时/计数器中断,可由硬件自动对TF0和TF1清0;对于脉冲触发的外部中断请求,也由硬件自动对IE0和IE1清0;对于电平触发的外部中断请求,需要先撤销/INT0和/INT1引脚上的低电平,然后要用软件方法才能使IE0和IE1清0;对于串口中断,TI和RI不能硬件自动清0,需要通过软件方法使TI和RI清0。
(8)何为中断优先级?在中断请求有效并已开放中断的前提下,能否保证该中断请求能被CPU立即响应? 提示
中断源的重要等级称为中断优先级。在低级中断请求有效并已开放中断的前提下,如果CPU正在处理同级或高级的中断,则低级中断请求无法得到CPU响应。若同级或高级中断的请求标志刚好被撤销,而低级中断的请求标志尚未消失,则CPU可继续响应低级中断请求,否则低级中断请求将被中止。
(9)80C51只有两个外部中断源,若要扩充外部中断源,可以采用的方法有哪些? 提示
扩充外部中断源的方法有,1、利用定时器扩展外部中断源,其思路是;当T0或T1工作在计数器方式时,只要使其在一个外部脉冲到来时就溢出并产生中断请求,就能起到扩充外部中断源的作用。2、利用查询法扩展外部中断源,其思路是:将多个扩充中断源通过“线或”电路连接/INT0或/INT1引脚,同时也将其接到输入口线作为中断源识别线。这样无论哪个扩展中断源有中断请求都会使/INT0或/INT1引脚发出中断请求信号。CPU响应中断后再通过程序查询各识别线的逻辑电平,便可确定是哪个扩展中断源发出中断请求了。
(10)与第4章实例7的行列式键盘相比,第5章实例2的行列式键盘做了哪些改进?后者实现的原理是什么? 提示
改进的思路是,在电路中增加了任意按键压下都可产生中断请求的功能。具体做法是电路中增加了一个4与门集成元件。该与门的4个输入端分别与键盘的4条行线相接,与门的输出端则与/INT0引脚相接。 程序实现原理是,先将各列的电平都置为0,当有任意按键压下时,与门的输出端都可发出/INT0中断请求信号。中断响应后再查验具体是哪个按键有动作发生,这样就能达到既快速响应按键动作,又能提高CPU工作效率的目的。
(11) 与第4章实例2的按键检测方法相比,第5章实例3做了哪些改进?两者的切换效果上有何差异? 提示
改进的方法是,新增了利用外部中断检测按键状态的功能。当有任意按键动作发生时,中断程序便会立即更新标志位值,主函数则根据标志位值及时切换彩灯循环方式。实例运行表明,与原先的彩灯切换明显滞后相比,新方式的切换灵敏度大大提高了。
(12)为提高中断响应的实时性,中断函数可采用哪些措施以使函数更加简洁?提示
首先应尽量使函数简短。其次应尽量使用简单变量类型及简单算术运算。还可采用,在中断函数中仅刷新标志变量状态,而在主函数或其他函数中根据该标志变量值再做相应处理的做法。首先应尽量使函数简短。其次应尽量使用简单变量类型及简单算术运算。还可采用,在中断函数中仅刷新标志变量状态,而在主函数或其他函数中根据该标志变量值再做相应处理的做法。
第六章习题
6.1 单项选择题
(1) 使80C51定时/计数器T0停止计数的C51命令为____。 答案(D)
- A.IT0=0;
- B.TF0=0;
- C.IE=0;
- D.TR0=0;
(2) 80C51单片机的定时器T1用作定时方式时是______。 答案(B)
- A.由内部时钟频率定时,一个时钟周期加1
- B.由内部时钟频率定时,一个机器周期加1
- C.由外部时钟频率定时,一个时钟周期加1
- D.由外部时钟频率定时,一个机器周期加1
(3) 80C51单片机的定时器T0用作计数方式时是______。答案(C)
- A.由内部时钟频率定时,一个时钟周期加1
- B.由内部时钟频率定时,一个机器周期加1
- C.由外部计数脉冲计数,一个脉冲加1
- D.由外部计数脉冲计数,一个机器周期加1
(4)80C51的定时器T1用作计数方式时,______。答案(A)
- A.外部计数脉冲由T1(P3.5引脚)输入
- B.外部计数脉冲由内部时钟频率提供
- C.外部计数脉冲由T0(P3.4引脚)输入
- D.外部计数脉冲由P0口任意引脚输入
(5) 下列关于定时/计数器工作方式3的描述中______是错误的。答案(C)
- A.单片机可以组合出3种定时/计数器关系
- B.T0可以组合出两个具有中断功能的8位定时器
- C.T1可以设置成无中断功能的4种定时/计数器,即方式0~3
- D.可将T1定时方式2作为波特率发生器使用
(6) 设80C51晶振频率为12MHz,若用定时器T0的工作方式1产生1ms定时,则T0计数初值应为______。答案(A)
- A.0xfc18
- B.0xf830
- C.0xf448
- D.0xf060
(7)80C51的定时器T1用作定时方式1时,工作方式的初始化编程语句为______。答案(C)
- A.TCON=0x01;
- B.TCON=0x05;
- C.TMOD=0x10;
- D.TMOD=0x50;
(8) 80C51的定时器T1用作定时方式2时,工作方式的初始化编程语句为______。答案(D)
- A.TCON=0x60;
- B.TCON=0x02;
- C.TMOD=0x06;
- D.TMOD=0x20;
(9) 80C51的定时器T0用作定时方式0时,C51初始化编程为______。答案(C)
- A.TMOD=0x21;
- B.TMOD=0x32;
- C.TMOD=0x20;
- D.TMOD=0x22;
(10)使用80C51的定时器T0时,若允许TR0启动计数器,应使TMOD中的______。答案(C)
- A.GATE位置1
- B.C/T位置1
- C.GATE位清零
- D.C/T位清零
(11)使用80C51的定时器T0时,若允许INT0启动计数器,应使TMOD中的_____。答案(A)
- A.GATE位置1
- B.C/T位置1
- C.GATE位清零
- D.C/T位清零
(12)启动定时器0开始计数的指令是使TCON的______。答案(B)
- A.TF0位置1
- B.TR0位置1
- C.TF0位清0
- D.TF1位清0
(13) 启动定时器1开始定时的C51指令是_____。答案(D)
- A.TR0=0;
- B.TR1=0;
- C.TR0=1;
- D.TR1=1;
(14) 使80C51的定时器T0停止计数的C51命令是______。答案(A)
- A.TR0=0;
- B.TR1=0;
- C.TR0=1;
- D.TR1=1;
(15)8使80C51的定时器T1停止定时的C51命令是______。答案(B)
- A.TR0=0;
- B.TR1=0;
- C.TR0=1;
- D.TR1=1;
(16)80C51单片机的TMOD模式控制寄存器,其中GATE位表示的是______。答案(A)
- A.门控位
- B.工作方式定义
- C.定时/计数功能选择位
- D.运行控制位
(17)80C51采用计数器T1方式1时,要求没计满10次产生溢出标志,则TH1、TL1的初始值是______。答案(A)
- A.0xff,0xf6
- B.0xf6,0xf6
- C.0xf0,0xf0
- D.0xff,0xf0
(18)80C51采用T0计数方式1时的C51命令是______。答案(D)
- A.TCON=0x01;
- B.TMOD=0x01;
- C.TCON=0x05;
- D.TMOD=0x05;
(19)采用80C51的T0定时方式2时,则应______。答案(D)
- A.启动T0前先向TH0置入计数初值,TL0置0,以后每次重新计数前都要重新置入计数初值
- B.启动T0前先向TH0、TL0置入计数初值,以后每次重新计数前都要重新置入计数初值
- C.启动T0前先向TH0、TL0置入不同的计数初值,以后不再置入
- D.启动T0前先向TH0、TL0置入相同的计数初值,以后不再置入
(20)80C51单片机的TMOD模式控制寄存器,其中C/T位表示的是______。答案(C)
- A.门控位
- B.工作方式定义位
- C.定时/计数功能选择位
- D.运行控制位
(21)80C51单片机定时器T1的溢出标志TF1,当计数满产生溢出时,如不用中断方式而用查询方式,则______。答案(B)
- A.应由硬件清零
- B.应由软件清零
- C.应由软件置位
- D.可不处理
(22)80C51单片机定时器T0的溢出标志TF0,当计数满产生溢出时,其值为______。答案(C)
- A.0
- B.0xff
- C.1
- D.计数值
(23)80C51单片机的定时/计数器在工作方式1时的最大计数值M为______。答案(D)
- A.M=213=8192
- B.M=28=256
- C.M=24=16
- D.M=216=65536
第六章习题
6.2 问答思考题
(1)与单片机延时子程序的定时方法相比,利用片内集成的定时/计数器进行定时有何优点? 提示
延时子程序法需要独占较多CPU机时,而定时/计数器法属于软硬件相结合的方法,在定时/计数器初始化设置后便无需CPU的干预,从而可节约大量CPU机时。
(2)怎样理解51单片机的定时器和计数器的实质都是计数器,差别仅在于脉冲信号的来源不同?提示
定时器中用于计数累加的脉冲来自系统的时钟分频脉冲,由于其脉冲的周期是固定的,故计数结果也可用作定时;而计数器中用于计数累加的脉冲是来自引脚上的外部脉冲,因脉冲周期不确定故不能用于定时。
(3)51单片机定时器定时时间t的影响因素有哪些?计数器定数次数N的影响因素有哪些? 提示
定时器的定时时间与定时器字长、计数初值和时钟频率3个因素有关,而计数器的定数次数仅与计数器字长和计数初值有关,与时钟频率无关。
(4)80C51内部有几个定时/计数器?结构组成中的TH0、TL0、TH1和TL1与定时/计数器是什么关系?字节地址是什么? 提示
51单片机有2个16位的定时/计数器T0和T1,其中T0由2个8位的寄存器TH0和TL0组成,字节地址是8CH和8AH;T1由2个8位的寄存器TH1和TL1组成,字节地址是8DH和8BH。
(5)定时/计数器T0作为计数器使用时,对被测脉冲的最高频率有限制吗?为什么? 提示
有限制。这是因为单片机检测一个负跳变脉冲需要2个机器周期的时间,如果被测脉冲频率过高(即周期过短),在单片机时钟频率一定时就会无法满足上述要求。
(6)当定时器方式1的最大定时时间不够用时,可以考虑哪些办法用来增加其定时长度? 提示
可参考本章实例6的做法,利用在中断函数中统计定时器溢出次数的办法进行长时间定时,其定时长度在理论上是没有限制的。
(7)定时器在每次计数溢出后都需要及时重新装载计数初值,有什么办法可以使得重新装载自动完成吗? 提示
采用定时方式2,初始化时将计数初值分别存入两个8位的定时寄存器,如TH0和TL0。当TL0计满溢出时TH0会自动将其初值重新装入TL0中。重新装入的过程不改变TH0中的值,故可多次循环重装入,直到命令停止计数为止。
(8)对于定时/计数器的溢出标志进行检测有哪些可用办法?各有什么优缺点? 提示
可以采取两种检测方法,其中查询法是用软件方式检查溢出标志位的状态,但也必须用软件方式使溢出标志清0;中断法则是由系统自动检查溢出标志位的状态,并由硬件清0溢出标志位。前者编程简单但程序执行效率不高,而后者编程有些难度但程序执行效率高。
(9)利用定时/计数器进行外部脉冲宽度测量的工作原理是什么? 提示
根据定时/计数器工作原理,当GATE=TR0=1时允许/INT0脉冲控制定时器的启停。为此,可以将被测脉冲接在/INT0引脚上,当/INT0出现下降沿脉冲时会启动T0进行时钟脉冲统计。当/INT0出现上升沿脉冲时会中止T0定时。此时T0中的计数值可以换算成被测脉冲的宽度。
(10)如何利用闲置的定时/计数器扩展外部中断源? 提示
将按计数器最大字长确定的计数初值装入T0或T1并启动计数器后,一个外部脉冲的到来就能使T0或T1溢出并发出中断请求,其作用就相当于扩展了/INT0或/INT1中断源。
(11)为了利用Proteus进行C51源码调试,在程序编译时需要采取什么措施? 提示
为了利用Proteus进行C51源码调试,需要在程序编译时生成omf格式文件。为此要先要在μVision3中设置“Output”选项卡,使“Create HEX Files”选项框为空,并将“Name of Executable”文本框中的可执行文件的扩展名定为.omf。在单击“确定”退出设置后,可按一般C51程序的编译操作生成.omf格式的可执行文件。
(12)定时/计数器溢出得到中断响应后,TF0或TF1标志需要采用什么办法予以撤销? 提示
定时/计数器的中断请求被响应后,系统可自动使TF0和TF1硬件清0,从而撤销定时/计数器的中断请求。
第七章习题
7.1 单项选择题
(1) 从串口接收缓冲器中将数据读入到变量temp中的C51语句是____。 答案(D)
- A.temp = SCON;
- B.temp = TCON;
- C.temp = DPTR;
- D.temp = SBUF;
(2) 全双工通信的特点是,收发双方______。 答案(C)
- A.角色固定不能互换
- B.角色可换但需切换
- C.互不影响双向通信
- D.相互影响互相制约
(3) 80C51的串口工作方式中适合多机通信的是______。答案(D)
- A.工作方式0
- B.工作方式1
- C.工作方式2
- D.工作方式3
(4)80C51串行口接收数据的正确次序是下述的顺序______。答案(B)
- ①接收完一帧数据后,硬件自动将SCON的RI置1
- ②用软件将RI清零
- ③接收到的数据由SBUF读出
- ④置SCON的REN为1,外部数据由RXD(P3.0)输入
- A.①②③④
- B.④①②③
- C.④③①②
- D.③④①②
(5) 80C51串行口发送数据的正确次序是下述的顺序______。答案(A)
- ①待发数据送SBUF
- ②硬件自动将SCON的TI置1
- ③经TXD(P3.1)串行发送一帧数据完毕
- ④用软件将SCON的TI清零
- A.①③②④
- B.①②③④
- C.④③①②
- D.③④①②
(6)80C51用串口工作方式0时______。答案(C)
- A.数据从RXD串行输入,从TXD串行输出
- B.数据从RXD串行输出,从TXD串行输入
- C.数据从RXD串行输入或输出,同步信号从TXD输出
- D.数据从TXD串行输入或输出,同步信号从RXD输出
(7)在用接口传送信息时,如果用一帧来表示一个字符,且每帧中有一个起始位、一个结束位和若干个数据位,该传送属于______。答案(A)
- A.异步串行传送
- B.异步并行传送
- C.同步串行传送
- D.同步并行传送
(8) 80C51的串口工作方式中适合点对点通信的是______。答案(B)
- A.工作方式0
- B.工作方式1
- C.工作方式2
- D.工作方式3
(9) 80C51有关串口内部结构的描述中______是不正确的。答案(C)
- A.51内部有一个可编程的全双工串行通信接口
- B.51的串行接口可以作为通用异步接收/发送器,也可以作为同步移位寄存
- C.串行口中设有接收控制寄存器SCON
- D.通过设置串口通信的波特率可以改变串口通信速率
(10)80C51有关串口数据缓冲器的描述中______是不正确的。答案(B)
- A.串行口中有两个数据缓冲器SUBF
- B.两个数据缓冲器在物理上是相互独立的,具有不同的地址
- C.SUBF发只能写入数据,不能读出数据
- D.SUBF收只能读出数据,不能发送数据
(11)80C51串口发送控制器的作用描述中_____是不正确的。答案(D)
- A.作用一是将待发送的并行数据转为串行数据
- B.作用二是在串行数据上自动添加起始位、可编程位和停止
- C.作用三是在数据转换结束后使中断请求标志位TI自动置1
- D.作用四是在中断被响应后使中断请求标志位TI自动清零
(12)下列关于80C51串口接收控制器的作用描述中______是不正确的。答案(D)
- A.作用一是将来自RXD引脚的串行数据转为并行数
- B.作用二是自动过滤掉串行数据中的起始位、可编程位和停止位
- C.作用三是在接收完成后使中断请求标志位RI自动置1
- D.作用四是在中断被响应后使中断请求标志位RI自动清零
(13) 80C51串口收发过程中定时器T1的下列描述中_____是不正确的。答案(A)
- A.T1的作用是产生用以串行收发节拍控制的通信时钟脉冲,也可用T0进行替换
- B.发送数据时,该时钟脉冲的下降沿对应于数据的移位输出
- C.接收数据时,该时钟脉冲的上升沿对应于数据位采样
- D.通信波特率取决于T1的工作方式和计数初值,也取决于PCON的设定值
(14) 有关集成芯片74LS164的下列描述中______是不正确的。答案(C)
- A.74LS164是一种8位串入并出移位寄存器
- B.74LS164的移位过程是借助D触发器的工作原理实现的
- C.8次移位结束后,74LS164的输出端Q0锁存着数据的最高位,Q7锁存着最低位
- D.74LS164与80C51的串口方式0配合可以实现单片机并行输出口的扩展功能
(15)与串口方式0相比,串口方式1发生的下列变化中______是错误的。答案(B)
- A.通信时钟波特率可变的,可由软件设置为不同速率
- B.数据帧由11位组成,包括1位起始位+8位数据位+1位校验位+1位停止位
- C.发送数据由TXD引脚输出,接收数据由RXD引脚输入
- D.方式1可实现异步串行通信,而方式0则只能实现串并转换
(16)与串口方式1相比,串口方式2发生的下列变化中______是错误的。答案(A)
- A.通信时钟波特率是固定不变的,其值等于晶振频率
- B.数据帧由11位组成,包括1位起始位+8位数据位+1位可编程位+1位停止位
- C.发送结束后TI可以自动置1,但接收结束后RI的状态要由SM2和RB8共同决定
- D.可实现异步通信过程中的奇偶校验
(17)下列关于串口方式3的描述中______是错误的。答案(D)
- A.方式3的波特率是可变的,可以通过软件设定为不同速率
- B.数据帧由11位组成,包括1位起始位+8位数据位+1位可编程位+1位停止位
- C.方式3主要用于要求进行错误校验或主从式系统通信的场合
- D.发送和接收过程结束后TI和RI都可硬件自动置1
(18)下列关于串行主从式通信系统的描述中______是错误的。答案(B)
- A.主从式通信系统由1个主机和若干个从机组成
- B.每个从机都要有相同的通信地址
- C.从机的RXD端并联接在主机的TXD端,从机的TXD端并联接在主机的RXD端
- D.从机之间不能直接传递信息,只能通过主机间接实现
(19)下列关于多机串行异步通信的工作原理描述中______是错误的。答案(B)
- A.多机异步通信系统中各机初始化时都应设置为相同波特率
- B.各从机都应设置为串口方式2或方式3,SM2=REN=1,并禁止串口中断
- C.主机先发送一条包含TB8=1的地址信息,所有从机都能在中断响应中对此地址进行查证,但只有目标从机将SM2改为0
- D.主机随后发送包含TB8=0的数据或命令信息,此时只有目标从机能响应中断,并接收到此条信息
(20)假设异步串行接口按方式1每分钟传输6000个字符,则其波特率应为______。答案(C)
- A.800
- B.900
- C.1000
- D.1100
(21)在一采用串口方式1的通信系统中,已知fosc=6MHz,波特率=2400,SMOD=1,则定时器T1在方式2时的计数初值应为______。答案(B)
- A.0xe6
- B.0xf3
- C.0x1fe6
- D.0xffe6
(22)串行通信速率的指标是波特率,而波特率的量纲是______。答案(B)
- A.字符/秒
- B.位/秒
- C.帧/秒
- D.帧/分
第七章习题
7.2 问答思考题
(1)串行通信与并行通信有何不同?它们各有什么特点? 提示
一条信息的各位数据被同时传送的通信方式称为并行通信。并行通信的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通信。一条信息的各位数据被逐位按顺序传送的通信方式称为串行通信。串行通信的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通信的距离可以从几米到几千米。
(2)按照数据传送方向,串行通信可分为哪几种制式?它们各有什么特点? 提示
串行通信可分为单工、半双工和全双工3种制式。其中,在单工制式下,通信线的一端为发送器,一端为接收器,数据只能按照一个固定的方向传送;在半双工制式下,系统的每个通信设备都由一个发送器和一个接收器组成,因而数据能从A站传送到B站,也可以从B站传送到A站,但是不能同时在两个方向上传送;在全双工方式下,系统的每端都有发送器和接收器,可以同时发送和接收,即数据可以在两个方向上同时传送。
(3)何为异步串行通信?一帧数据串由哪些格式位组成? 提示
一帧信息中各位数据被逐位按顺序传送,且靠插入的起始位和停止位进行同步的通信方式称为异步串行通信。一帧数据串可以包括起始位、数据位、可编程校验位和停止位,具体组成取决于采用的串行通信工作方式,如方式1等。
(4)51单片机内置UART的全称是什么?有哪些基本用途? 提示
UART是Universal Asychronous Receiver/Transmitter的缩写,称为通用异步接收器/发送器。其基本用途是异步串行通信的接收与发送,此外也可配合移位寄存器用于单片机I/O口扩展。
(5)51单片机有两个数据缓冲器,分别用于发送数据和接收数据,为何只有一个公用地址却不会产生冲突? 提示
两个数据缓冲器SBUF在物理上是相互独立的,一个用于发送数据,一个用于接收数据,但前者只能写入数据,不能读出数据,后者只能读出数据,不能写入数据。所以两个SBUF可公用一个地址(99H),通过读/写指令区别是对哪个SBUF的操作。
(6)51单片机的UART中使用哪个定时器作为通信时钟发生器?时钟脉冲与接收和发送的数据有何对应关系? 提示
使用定时器T1作为通信时钟发生器。发送数据时,时钟脉冲的下降沿对应于数据移位输出;接收数据时,时钟脉冲的上升沿对应于数据位采样
(7)异步串行通信的数据帧中,自动插入或过滤起始位、可编程位、停止位的工作是如何实现的? 提示
数据帧中上述附加位的插入或过滤是在发送控制器和接收控制器的管理下完成的,即在门电路和定时器T1的配合下,发送控制器使待发送的并行数据转为串行数据,并自动添加上附加位信息;在接收移位寄存器和定时器T1的配合下,接收控制器使来自RXD引脚的串行数据转为并行数据,并自动过滤掉附加位信息。
(8)在中断允许的前提下,一帧异步串行数据被发送或接收完成后,哪几个位寄存器将由硬件自动置1? 提示
发送或接收完成后,串行发送中断请求标志位TI和串行接收中断请求标志位RI都可由硬件自动置1。
(9)在单片机晶振频率一定后,异步串行通信波特率大小取决于哪些参数? 提示
晶振频率一定后,波特率的大小取决于定时器T1的工作方式n和计数初值a,也取决于波特率选择位SMOD的值。
(10)异步串行通信中断响应后,中断请求标志的撤销需要采用什么方法? 提示
中断响应后,中断请求标志TI和RI不能由硬件自动清0,需要通过软件方法使TI和RI清0。
(11)51单片机串行工作方式0为何不是严格意义上的异步串行通信?其主要用途是什么? 提示
方式0是为了配合外部移位寄存器的串并转换用途设计的一种特殊串行通信方式。通信过程中收发双方使用同一时钟信号(fosc / 12)控制通信节奏,故被传送的数据帧中只有8位数据,没有异步串行通信中为保证严格时序(收发双方时钟是独立的)而添加的附加位信息。方式0又称为同步移位寄存器方式,主要用于扩展单片机I/O接口。
(12)集成芯片74LS164的移位原理是什么?利用其扩展并行输出口的软硬件做法是什么? 提示
移位原理是:每出现一次时钟脉冲信号,前级D触发器锁存的电平便会被后级D触发器锁存起来。如此经过8个时钟脉冲后,最先接收到的数据位将被最高位D触发器锁存,并到达Q7端。其次接收到的数据位将被次高位D触发器锁存,并到达Q6端,以此类推。最终,逐位输入的串行数据将同时出现在Q0~Q7端,从而实现了串行数据转为并行数据的功能。 用于扩展并行输出口时,将74LS164的A与B端并接在单片机RXD端(串行方式0的数据发送/接收端);CP端接在单片机TXD端(串行方式0的时钟输出端);Q0~Q7端接发光二极管并行电路。编程初始化后,被发送的字节数据只需传给发送缓冲器SBUF,其余工作都将由硬件自动完成。最终74LS164的输出端得到了一组并行的转换数据,单片机也由此实现了I/O口的扩展。
(13)点对点串行通信的双方需要共同遵守哪些约定?程序初始化时需要完成哪些设置? 提示
需要遵守的约定包括:1、波特率约定;2、数据帧约定(如数据帧长度,校验方式);3、应答约定(如应答方式);4、通信电平约定(如TTL);5、接线约定(如采用TXD、RXD、GND三线式)。初始化设置包括,串口工作方式、定时器工作方式、装载计数初值、波特率加倍值、启动定时器、允许中断、允许接收等。
(14)根据第7章实例3,简述点对点通信时进行奇偶校验的编程原理。 提示
编程原理:将欲发送数据的奇偶校验值送入SCON寄存器中的TB8位并连同数据一起发出。接收端接收数据时,将该数值取出放入SCON寄存器中的RB8位。待计算出接收数据的实际奇偶校验值后与RB8进行比较,即可判断收发过程是否有误
(15)51单片机主从式异步通信过程中,主机是如何与多个从机进行点对点通信的? 提示
当主机向所有从机发送地址信息时,从机收到的第9位信息都是1,所有从机都可激活中断请求标志RI。在各自的中断服务程序中,对比主机发来的地址与本机地址,若相符则使本机的SM2为0,若不相符则保持本机的SM2为1。接着主机发送数据或命令信息,各从机收到的RB8都为0,此时只有目标从机(SM2为0)可激活RI,转入中断服务程序,接收主机的数据或命令;其他从机(SM2为1)不能激活RI,所接收的数据或命令信息被丢弃,从而实现主机和从机的一对一通信。
第八章习题
8.1 单项选择题
(1) 下列型号的芯片中,____是数模转换器。 答案(D)
- A.74LS273
- B.ADC0809
- C.74LS373
- D.DAC0832
(2) 下列型号的芯片中,______是模数转换器。 答案(B)
- A.74LS273
- B.ADC0809
- C.74LS373
- D.DAC0832
(3) 下列型号的芯片中,______是可编程并行I/O口扩展芯片。答案(B)
- A.74LS273
- B.8255A
- C.74LS373
- D.DAC0832
(4)若8255A芯片的控制寄存器地址是0xe003,则其A口和B口的地址是______。答案(B)
- A.0xe001、0xe002
- B.0xe000、0xe001
- C.0xe004、0xe005
- D.0x0a、0x0b
(5) 80C51用串行接口扩展并行I/O口时,串行接口工作方式应选择______。答案(A)
- A.方式0
- B.方式1
- C.方式2
- D.方式3
(6)下列关于总线的描述中______是错误的。答案(A)
- A.能同时传送数据、地址和控制三类信息的导线称为系统总线
- B.数据既可由CPU传向存储器或I/O端口,也可由这些部件传向CPU,所以数据总线是双向的
- C.地址只能从CPU传向存储器或I/O端口,所以地址总线是单向的
- D.控制信息的传向由具体控制信号而定,所以控制总线一般是双向的
(7)下列关于51单片机片外总线结构的描述中______是错误的。答案(C)
- A.数据总线与地址总线采用复用P0口方案
- B.8位数据总线由P0口组成
- C.16位地址总线由P0和P1口组成
- D.控制总线由P3口和相关引脚组成
(8)下列关于地址锁存接口芯片74373原理的描述中______是错误的。答案(B)
- A.74373由8个负边沿触发的D触发器和8个负逻辑控制的三态门电路组成
- B.在74373LE端施加一个负脉冲触发信号后,8个D触发器都可完成一次“接通-锁存-隔离”的操作
- C.80C51的ALE引脚是专为地址锁存设计的,其输出脉冲可用作74373的触发信号
- D.执行片外RAM写指令后,74373的输出端上为低8位地址,输入端则是8位数据
(9)下列关于I/O口扩展端口的描述中______是错误的。答案(D)
- A.51单片机I/O扩展端口占用的是片外RAM的地址空间
- B.访问I/O扩展端口只能通过片外总线方式进行
- C.使用MOVX指令读取I/O扩展端口的数据时,CPU时序中含有 /RD负脉冲信号
- D.使用C51指针读取I/O扩展端口的数据时,CPU时序中没有/RD负脉冲信号
(10)关于集成扩展芯片74273的下列描述中______是不正确的。答案(A)
- A.74273由8个D触发器组成,可实现8位并行输入接口的扩展功能
- B.时钟端的触发信号可先将输入端的数据锁存到输出端,随后再使两端间产生隔离
- C.采用总线方式扩展输出端口时,应将80C51写端口的时序信号与该端口的地址选通信号一同作为74273的触发信号
- D.本章实例1的做法是,将80C51的/WR引脚与某根地址线引脚通过一个或门接到74273的时钟端CLK
(11)假设80C51的/WR引脚和P2.5引脚并联接在一个或门输入端上,或门输出端则连到74273的时钟端上。若80C51执行一条写端口指令后74273可以被触发,则该端口的地址(假定无关地址位都为1)是_____。答案(B)
- A.0xfeff
- B.0xdfff
- C.0x7fff
- D.0xefff
(12)关于集成扩展芯片74244的下列描述中______是不正确的。答案(B)
- A.74244由8个三态门电路组成,可实现两路4位并行输入接口的扩展功能
- B.当选通信号为高电平时三态门导通,反之三态门截止,输入和输出之间呈高阻状态
- C.采用总线方式扩展输入端口时,应将80C51读端口的时序信号与该端口的地址选通信号一同作为74244的选通信号
- D.本章实例2的做法是,将80C51的/RD引脚与某根地址线引脚通过一个或门接到74244的选通端/OE
(13) 80C51外接一个可编程并行接口芯片8255A时,需占用_____扩展端口地址。答案(D)
- A.1个
- B.2个
- C.3个
- D.4个
(14)使用8255A可以扩展出______8位的I/O端口。答案(C)
- A.1个
- B.2个
- C.3个
- D.4个
(15)欲将8255A的A口与上C口设置为基本输入方式,B口与下C口设置为基本输出方式,则控制字应为______。答案(C)
- A.0x83
- B.0x88
- C.0x98
- D.0x99
(16)8255A与80C51采用典型总线接线方式时,若8255A的/CS、A1和A0脚分别接80C51的P2.2、P2.1和P2.0脚,则8255A的控制口地址(假定无关地址位都为1)应是______。答案(C)
- A.0xf9ff
- B.0xf8ff
- C.0xfbff
- D.0xfaff
(17)下列关于DAC0832的描述中______是错误的。答案(A)
- A.DAC0832是一个8位电压输出型数模转换器
- B.它由一个8位输入锁存器、一个8位DAC寄存器和一个8位D/A转换器组成
- C.它的数模转换结果取决于芯片参考电压VREF、待转换数字量和内部电阻网络
- D.DAC0832可以选择直通、单缓冲和双缓冲3种工作方式
(18)DAC0832的5个外部控制引脚决定了其工作方式,当采用LE=Vcc,/CS=/WR1=/WR2=/XFER并接GND时,其工作方式是______。答案(A)
- A.直通方式
- B.单缓冲方式
- C.双缓冲方式
- D.错误接线状态
(19)DAC0832与反向运算放大器组合后可将数字量直接转换为电压量输出。若参考电压取为5V,则数字量变化一个LSB时,输出电压的变化量约为______。答案(D)
- A.-100mV
- B.-50mV
- C.-30mV
- D.-20mV
(20)ADC0809芯片是m路模拟输入的n位AD转换器,m和n是______。答案(A)
- A.8,8
- B.8,9
- C.8,16
- D.1,8
(21)下列关于模数转换器ADC0809工作原理的描述中______是错误的。答案(C)
- A.ADC0809由电压比较器、D/A转换器和锁存缓存器等核心单元所组成
- B.当待转换电压送入电压比较器后,START引脚上的一个正脉冲可启动AD转换过程
- C.转换过程是按照从低位开始逐位修正数字转换量的,直至最高位修正后转换结束
- D.转换结束后,数字转换量由锁存缓存器输出,EOC引脚发出一负脉冲表示转换结束
(22)若ADC0809的ADDA、ADDB和ADDC引脚分别接GND、VCC和VCC时,选中的多路模拟量是第______通道。答案(A)
- A.0
- B.3
- C.5
- D.7
(23)模数转换器ADC0809工作时序的下列描述中______是正确的。答案(B)
- ① EOC引脚由高电平变为低电平,并维持到转换结束
- ② 转换结束后EOC引脚由低电平变为高电平
- ③ START引脚上的一个正脉冲使得AD转换开始
- ④ OE引脚变为高电平后转换结果锁存到输出端,CPU读取数据后OE变为低电平
- A.①③②④
- B.③①②④
- C.①④③②
- D.③④①②
(24)欲通过80C51的P1口实现1个12伏100mA直流电动机的开关控制功能,下列功率驱动接口方案中______是合理的。答案(C)
- A.三态门缓冲器74LS244
- B.OC门电路7407
- C.达林顿驱动器ULN2003
- D.直流电磁继电器
第八章习题
8.2 问答思考题
(1)何为总线?与非总线方式相比总线方式有什么优点? 提示
总线是连接各个部件的一组具有相同共性的信号线,在计算机中它是各种功能部件之间传送信息的公共通信干线,分为数据总线、地址总线和控制总线。 如果将各功能部件之间都用独立的线路直接连接,即非总线方式,那么连线将会错综复杂,甚至难以实现。而采用总线的共性连线方式后, 各功能部件都可以连接在这些公共线路上,通过分时技术传输各自的信息,从而可大大减少连线数量并简化组成结构。
(2)51单片机的外部总线引脚是如何定义的?怎样实现P0口的地址/数据复用功能? 提示
51单片机外部总线的引脚定义是,P0口作为8位数据总线,P0和P2口作为16位地址总线,P3口及相关引脚作为控制总线。由于P0口既作为数据总线,又作为低8位地址总线,为避免两者发生冲突,需要利用P0口内的“地址/数据分时复用”功能和外接的地址锁存器芯片组成总线接口电路。工作时先将P0口输出的低8位地址信息锁存到接口芯片中,然后再与随后输出的8位数据一起传送给外设,从实现P0口地址总线和数据总线的复用功能。
(3)51单片机的片外总线采用哪个存储空间进行端口扩展或存储器扩展?对这些端口进行读写操作时,时序信号中的/RD和/WR会有什么变化规律?其通常作用是什么? 提示
扩展端口占用64KB片外RAM空间,单片机对扩展端口的访问其实就是对片外RAM地址的访问。汇编语言指令中访问片外RAM需要采用MOVX指令,它们都属于寄存器间接寻址类型的指令。MOVX指令时序中的/RD和/WR信号可以用于地址选通, 它们是控制总线的组成部分。
(4)访问单片机的扩展端口可以使用哪些软件方法?简述其中的C51方法。 提示
访问扩展端口的软件方法分为汇编语言法和C51语言法。C51语言法中又可分为3种具体方法,即宏定义法、指针法和_at_关键字法。其中,宏定义法是利用头文件absacc.h中定义的绝对地址变量访问片外RAM单元;指针法通过定义指向xdata存储空间的指针访问片外RAM单元;_at_关键字法通过对指定存储空间的绝对地址进行定位访问片外RAM单元。
(5)何为简单并行扩展接口?选择相应接口芯片的原则是什么? 提示
简单并行扩展接口是指采用TTL或CMOS类型的锁存器或缓冲器组成的并行输出或并行输入接口,其特点是电路简单高效。选择芯片的原则是“输入三态,输出锁存”,即扩展输入端的芯片应具有三态门功能,以使信号可控选通;扩展输出端的芯片则要具有锁存功能,以使输出端可与前级信号隔离。
(6)利用51单片机的串行接口扩展8位并行输出端口的工作原理是什么?这种扩展需要什么外部硬件条件? 提示
扩展原理是,利用单片机机串行方式0的同步串行通信功能与外接移位寄存器一起组成串并转换接口,在方式0输出的时钟信号控制下,移位寄存器将外部的并行数据转换为串行数据后交给单片机的串行口,或将单片机串行口送出的串行数据转换为并行数据送到外部电路。配合单片机扩展的外部硬件条件是具有串入并出或并入串出功能的移位寄存器。
(7)可编程芯片8255A的哪些功能可以通过编程得到改变?扩展后的端口地址取决于哪些引脚的接线? 提示
8255A有3个并行I/O口,可通过编程设置多种工作方式而使其具有多种功能。其中,方式0可实现无条件的单向输入或单向输出功能;方式1可实现在联络信号控制下的单向输入或单向输出功能;方式2可实现在联络信号控制下的既能输入又能输出功能。扩展后的端口地址取决于8255A寻址线引脚中的A0、A1(内部寄存器选择位)和/CS(片选信号)。
(8)简述利用T型电阻网络进行D/A转换的工作原理,DAC0832的转换结果与哪些物理量有关?提示
电流形式的D/A转换的基本原理是利用T型电阻网络使二进制数的每1位,产生一个正比于其权值大小的支路电流,而支路电流的总和即为D/A转换结果。由于T型电阻网络无论从哪个R-2R节点看,等效电阻都是R。因此,当参考电压VREF和电阻R一定时,总电流正比于待转换的数字量B。DAC0832是基于T型电阻网络的D/A转换器,其转换结果与上述VREF、B和R有关。
(9)若想将第8章实例6的前级缓冲后级直通的单缓冲方式改为前级直通后级缓冲的单缓冲方式,电路接线图应当如何改变? 提示
只要将实例6中电路改为/CS和/WR1接地,/WR2接/WR,/XFER接单片机P2.0(地址为0xfeff),ILE继续接Vcc,就能变为前级直通后级缓冲的单缓冲方式(程序可以不变)。
(10)简述逐次逼近式模数转换的工作原理,ADC0809的转换精度与哪些因素有关? 提示
转换原理:当模拟量输入信号(VX)送入比较器后,控制逻辑使内置的DA转换器输出模拟电压VN。根据VN与VX的比较结果逐位修改N位寄存器中的值直至确定出最低位为止。当控制逻辑发出转换结束信号后,N位寄存器的值就是A/D转换后的数字量结果。根据上述原理,ADC0809的转换精度应该与内置的DA转换器精度和电压比较器精度有关。若内置的DA转换器采用的是T型电阻网络时,电阻R的精度将会影响模拟电压VN,而电压比较器的失调误差将会影响被转换电压VX的比较结果,因此它们都将影响ADC0809的转换精度。
(11)如将第8章实例8的数据采集方案改为依次对IN0~IN7进行循环采集,则程序需做什么修改? 提示
由于实例8程序是针对固定的数据采集通道IN7进行的,因而采用宏定义法访问IN7的绝对地址较为方便。若需对IN0~IN7进行循环采集,则采用指针法对绝对地址进行修改会更加方便,即只要设法让指针值递增就能达到地址值递增的效果。
(12)为什么OC门在应用时输出端需外接一个上拉电阻到电源?不接上拉电阻到电源会出现什么现象? 提示
如图8.35所示,当集电极开路(没有外接电阻R)时,输出端是悬空的,电平状态不确定。如果此时输出端有一个接地的电阻负载,那么输出端的电平就会被这个负载钳制到低电平,即使输入端为高电平也不能使输出端达到高电平。为避免这种情况发生,需要在输出端外接一个上拉电阻R。这样无论输入端为何电平,输出端有无接地电阻负载,输出端都能有合理的电平状态了。
(13)在一个以LED指示灯为输出负载(假定发光电流为600µA)的80C51应用系统中,如果不便采用I/O口功率驱动方案,应采取什么措施? 提示
51单片机P1-P3口的最大吸电流能力为400微安,而P0口为800微安,因此对于工作电流为600微安的LED负载,可以采用低电平驱动方式直接接在P0口上。不过为避免偶然超载最好还是尽可能采用功率驱动接口输出。
(14)假设有一20A直流开关量输出控制的80C51应用系统,请选择驱动方案并进行必要分析。提示
根据8.6.1节介绍的各种开关量功率驱动方案,本例采用电磁继电器驱动方案应该是合理可行的。不过随着负载电流增大,电磁继电器的触点电火花问题应该引起注意,必要时应考虑无触点开关器件。
(15)试对第8章实例10中的电路原理图和程序设计进行要点小结,并说明采用中断方案的必要性。 提示
电路设计要点:产生过零中断触发有两个关键因素,一是过零时刻的把握,二是/INT0触发脉冲的获得。本例中恰当地利用了全波整流后的脉动直流分压(具有清晰的过零特征)作为信号源,经施密特触发器整形后得到了过零正脉冲。其它电路中,电阻分压器R2和齐纳管D5的作用是获得幅值适中的脉冲波形,限流电阻R6~R10与R14~R17则保证了三极管工作在开关状态,为晶闸管提供适当的触发电流。程序设计要点:在/INT0中断函数中,对P1.0~P1.4口进行循环控制,依次使晶闸管过零导通(触发时间为20μs),晶闸管的关断则无需程序控制(在脉动直流电压降至0V后可自行关断)。采用中断控制的必要性是,可在过零时刻及时发出晶闸管的触发信号,否则将无法准确把握这一时刻。
第九章习题
9.1 单项选择题
(1) 下列关于80C51单片机最小系统的描述中____是数模转换器。 答案(B)
- A.它是由单片机、时钟电路、复位电路和电源构成的基本应用系统
- B.它不具有定时中断功能
- C.它不具有模数或数模转换功能
- D.它不具有开关量功率驱动功能
(2)下列关于单片机应用系统一般开发过程的描述中______是正确的。 答案(A)
- ① 在进行可行性分析的基础上进行总体论证
- ② 在软件总体结构设计后进行功能程序模块化设计和分配系统资源
- ③ 进行系统功能的分配、确定软硬件的分工及相互关系
- ④ 在电路原理图设计的基础上进行硬件开发、电路调试和PCB制版
- ⑤ 采用通用开发装置或软件模拟开发系统进行软硬件联机调试
- A.①③④②⑤
- B.①②③④⑤
- C.①④③②⑤
- D.③④①②⑤
(3)利用Proteus进行单片机系统开发的下列顺序描述中______是正确的。 答案(D)
- ① 制作真实单片机系统电路、进行运行、调试、直至成功
- ② 利用目标代码进行实时交互和协同仿真
- ③ 进行电路绘图设计、选择元件、连接电路和电器检测等
- ④ 源程序设计、编程、汇编编译、调试、生成目标代码文件
- A.①③②④
- B.①②③④
- C.①④③②
- D.③④②①
(4)关于“看门狗”技术的下列描述中______是错误的。答案(D)
- A.其意义在于能在程序“跑飞”时实现自我诊断并使系统恢复运行
- B.其基本原理是,如果“喂狗”规律被打破,便会引导系统复位使程序重新开始
- C.用于“喂狗”的脉冲既可以源于硬件电路定时器也可以源于单片机内部定时器
- D.使用“看门狗”技术后,系统抗干扰问题就能得到完全彻底解决
(5) 根据第九章智能仪器应用实例,下列关于硬件设计的描述中______是错误的。答案(B)
- A.采用了基于共阴极数码管动态显示原理的显示方案
- B.采用了基于集电极开路门(OC)的数码管段码功率驱动方案
- C.采用了基于串口扩展方式的按键接口方案
- D.采用了基于通用I/O口方式的模数转换器接口方案
(6)根据本章智能仪器应用实例,下列关于软件设计的描述中______是错误的。答案(B)
- A.软件系统由两个主要功能模块组成——控制模块和菜单模块
- B.让长耗时函数变为短耗时的思路是,将长耗时函数分解成众多短小的函数
- C.按键闭合状态被分为“按键压下”和“按键抬起”两个阶段进行检测
- D.串口输出功能采用汇编语言与C51语言混合编程
(7)串行A/D转换器MAX1241工作时序的下列描述中______是正确的。 答案(C)
- ① 先使片选信号/CS使能,时钟端保持低电平即可启动AD转换
- ② 连续送入13个移位脉冲即可将转换后的数据串行输出一遍
- ③ SCLK引脚的移位脉冲下降沿对应于位数据出现在DOUT引脚上
- ④ AD转换结束后,引脚DOUT电平由低变高
- A.①③②④
- B.①②③④
- C.①④③②
- D.③④①②
(8)下列关于本章实例1的编程要点描述中______是错误的。答案(D)
- A.时钟脉冲是下降沿有效,因而需至少13个脉冲才能完成12个位数据的移位
- B.语句result|=dout的作用是将位数据拼装成并行数据
- C.语句pos=(pos>>1)|0x80的作用是使动态显示数码管的段码循环刷新
- D.本例AD转换结束时刻是通过监测DOUT引脚电平继而调用中断函数实现的
(9)串行D/A转换器LTC145X工作时序的下列描述中______是正确的。 答案(A)
- ① 使片选端/CS/LD拉低,DIN端加载MSB位数据
- ② 连续发12个移位脉冲后待转换的12bit数据全部送入内部DAC寄存器
- ③ CLK端发出一移位脉冲,上升沿时位数据被写入移位寄存器
- ④ DA转换结束后,使片选端/CS/LD拉高,为下轮转换做好准备
- A.①③②④
- B.①②③④
- C.①④③②
- D.③④①②
(10)下列关于本章实例2的编程要点描述中______是不正确的。答案(A)
- A.根据时序要求,只要位变量cs送出一个正脉冲,D/A转换过程便可结束了
- B.语句din=(v>>i)&0x01的作用是将并行数据拆解成位数据
- C.语句value=2047+2047*sin((float)num/180*PI)中float的作用是对整型变量num进行浮点数转换,以满足正弦函数sin()的浮点数要求
- D.待转换变量v应能存放12位数据,因而需要定义为int型
(11)根据教材图9.29,I2C通信时序的下列描述中_____是错误的。答案(C)
- A.在SCL为高电平期间,SDA由高到低的跳变时序将启动通信过程
- B.发送器每发送一字节后在SCL第9周期时将SDA拉低,由接收器反馈一应答信号
- C.只有在SCL为高电平期间,SDA的电平状态才允许变化
- D.在SCL为高电平期间,SDA由低到高的跳变时序将终止通信过程
(12)在一串行E2PROM存储器的电路中,若已知AT24CXX的寻址信息SLA=1010011xB,则该器件的片选地址A2、A1、A0应为______。答案(B)
- A.1、0、1
- B.0、1、1
- C.1、0、0
- D.0、0、1
(13) 若已知E2PROM存储器AT24C01A的器件类型识别符为1010B,A0、A1、A2引脚分别接Vcc、Vcc和GND时,则该器件的寻址信息SLA应为_____。答案(B)
- A.1101010xB
- B.1010011xB
- C.1010110xB
- D.0111010xB
(14)下列关于本章实例3的编程要点描述中______是错误的。答案(C)
- A.80C51没有I2C接口,与24C01的通信使用了I2C时序的软件模拟方法
- B.本例的I2C时序模拟采用了汇编语言编写,以便有更好的读写实时性
- C.根据电路原理图可知,24C01器件的片地址为111B
- D.语句write_e2prom(E2PROM_ADDR,(unsigned char)&count,1)中&count的作用是读取计数值变量count的地址
(15)LM1602的下列描述中______是错误的。答案(C)
- A.它是一款有16*2个显示位的字符型液晶显示模块
- B.每个显示位都有一个RAM单元(显示缓冲区)与之对应
- C.显示缓冲区具有只能写入不能读取的特点
- D.指令写入寄存器与数据写入缓冲区的控制信号时序是不同的
(16)下列关于本章实例4的编程要点描述中______是错误的。答案(D)
- A.初始化任务包括清屏、设置显示格式、显示光标且使之闪烁、光标轮番右移一位
- B.显示器的管理是通过调用写指令函数将指令代码发送出去的
- C.待显示字符是通过调用写数据函数将ASCII码数据发送出去的
- D.写指令函数与写数据函数的结构是相同的,差异仅在于发送对象不同
(17)串行日历时钟芯片DS1302的工作特性描述中______是错误的。答案(B)
- A.可对年月日星期时分秒进行实时计时,并具有闰年补偿功能
- B.内部有一个32字节的RAM区用于存放临时数据
- C.采用三线接口与单片机进行同步通信
- D.具有2.0-5.5伏宽电压工作范围
(18)串行日历时钟芯片DS1302工作时序的下列描述中______是错误的。答案(D)
- A.复位引脚CE置为高电平时才允许数据或命令的传送
- B.所有的读写操作都是以命令字节为引导,其后才是数据字节
- C.移位脉冲的上升沿对应于命令和数据字节写操作的信号使能
- D.移位脉冲的下降沿对应于命令和地址字节读操作的信号使能
(19)下列关于本章实例5的编程要点描述中______是错误的。答案(C)
- A.主函数的基本流程是反复读取DS1302的RTC寄存器中数据,并送到LM1602显示
- B.读、写DS1302函数中的移位脉冲是利用软件方式生成的
- C.待发送的字节数据是利用累加器的循环左移操作转变为位数据的
- D.压缩BCD格式的日历数据是通过整除16和模16的运算拆分成十位和个位数据的
(20)下列接口芯片中具有串入并出移位寄存器功能的是______。答案(D)
- MAX124X
- LTC145X
- AT24CXX
- 74LS164
第九章习题
9.2 问答思考题
(1)单片机典型应用系统包括哪些组成部分?各部分的功能是什么? 提示
基本组成及其功能如下:单片机最小系统由单片机芯片和必要的振荡电路与复位电路构成。它只能完成单片机的一些基本操作和控制;前向通道是应用系统的输入通道,通常与现场采集对象相连;后向通道是应用系统的输出通道,由模拟电路、数字电路和开关电路等组成,有电流、电压、开关量和数字量等输出形式;人机交互通道是用户为了对应用系统进行干预以及了解系统运行状态所设置的通道。由键盘、显示器和打印机等接口组成;计算机相互通道可解决计算机系统之间的相互通信问题,也是测控系统不可缺少的组成部分。
(2)简述单片机应用系统的开发过程,着重指出各阶段应实现的目标。 提示
项目开发过程是从任务提出到系统选型、确定、研制直至投入运行的过程,至少包括以下5个环节内容:1、总体论证是对项目进行可行性分析,对技术指标进行调查研究,对项目的先进性、可靠性、可维护性、以及性价比进行的综合评估,可为项目拍板提供决策依据。2、总体设计是在项目功能和技术指标确定之后进行的工作,主要包括系统功能(任务)的分配、软硬件任务及相互关系、单片机系统的选型以及调试方案及手段等。总体设计完成后,项目应该已有明确的可实施方案。3、硬件开发包括电路原理图设计,电路仿真测试,元器件配置、印刷电路板制备以及元器件的焊接装配,此阶段的目标是完成样机的硬件系统研制。4、软件开发工作包括结构设计(流程图设计)、模块化编程、仿真调试、程序固化。这一过程结束后应该能得到完整的工程样机。5、样机综合测试包括,利用模拟环境或真实工况考核工程样机运行的可靠性和极限寿命,编纂技术和使用说明书,为产品定型和批量生产做好准备。
(3)单片机系统开发时,采用软件模拟开发和在线仿真器开发各有什么优缺点? 提示
软件模拟开发是基于计算机仿真方法进行的产品开发,主要用于开发初期的原理验证和初步设计,Proteus和Keil就是这类仿真工具。它们可明显提高研发效率,缩短研发周期,节约研发成本。但软件模拟开发毕竟没有硬件参与,存在一定真实性问题,不能完全替代在线仿真器的作用。在线仿真开发是基于通用计算机仿真和真实硬件结合的开发手段,主要用于样机硬件完成后的软硬件联机测试。仿真结束后,用户样机即可脱离计算机独立运行了。由于充分利用通用计算机系统的软、硬件资源,开发效率较高,但需要事先完成样机硬件系统的研制,因而也有一定局限性。
(4)影响单片机系统可靠性的因素有哪些?软硬件设计时应注意哪些问题? 提示
可靠性由多种因素决定,其中系统抗干扰性能是可靠性的重要指标。而影响抗干扰性能的因素有:通过空间辐射进入系统的电磁信号干扰;通过前向通道、后向通道及相互通道进入的干扰;通过供电线路进入系统的干扰等。硬件抗干扰设计的措施有:采用光电隔离器将微机系统与各种传感器、开关、执行机构从电气上隔离开来;为各个集成电路配置去耦电容,抑制芯片的开关噪声;通过电感或磁珠相连接模拟地和数字地,形成一点接地;利用“看门狗”电路强制CPU复位,摆脱由于干扰而造成系统异常的状态。软件抗干扰设计的措施有:通过指令冗余使程序飞到操作数上,避免后面的指令被当作操作数执行;通过软件陷阱拦截乱飞程序,将其引向指定位置后进行出错处理;使用“软件看门狗”技术使程序脱离“死循环。
(5)仿照图9.1的做法将图9.9(智能仪器的硬件电路原理图)用系统方框图表示出来 提示
参见9.1.1单片机典型应用系统
(6)并行结构编程思路的要点是什么?有什么好处?本章智能仪器应用实例的编程中在哪些环节使用了这一方案? 提示
并行结构编程的思路是设法使长时间占有CPU的函数变为短时占有,以此减少软件运行时的卡滞现象,增强实时性。本例采用的做法是在耗时较多的函数中,如键盘检测和菜单更新函数,设置必要的状态变量。进入这些函数后,首先检测状态变量值,并根据变量值进行一些简短处理,然后刷新状态变量值,接着就结束函数。当再次进入函数时,又会接着上次的结果继续处理,然后又快速返回。这样就能将一个长时任务化成多个短时任务来执行,起到了“并行执行”的效果。
(7)图9.10所示的软件系统结构组成图对程序设计有什么作用? 提示
有助于理清功能模块之间的逻辑关系,便于参数的传递设计。
(8)本章智能仪器应用实例中综合运用了教材各章节的哪些内容?请认真小结一下。 提示
涉及的教学内容有:主机模块(51单片机,复位与晶振电路)、开关量输入模块(串行扩展按键电路)、模拟量输入模块(AD转换电路)、开关量输出电路(报警指示灯电路)、数码显示模块(4位动态LED显示电路,晶体管与TTL信号驱动电路)、C51与汇编混合编程、中断函数编程、定时/计数器编程、串行扩展端口编程、AD采样编程等等。
(9)单片机串行扩展单元的优点是什么?采用串行方式的外围接口器件为何是当前发展的主流方向?本章的哪些内容与此相关? 提示
串行扩展单元具有体积小、占用单片机引脚少、性能和功能全面等优点,对提高系统的性价比非常有用。以往多采用并行结构的集成系统,如数据存储器、模数转换器、数模转换器、日历时钟等,现在都有了串行结构的版本,并且型号和功能不断翻新,大有快速发展的趋势。本章中的串行A/D转换芯片MAX124X、串行D/A转换芯片LTC145X、串行E2PROM存储器AT24CXX、串行日历时钟芯片DS1302等内容都是与串行扩展单元相关的,也是对传统并行接口内容的实用化扩展。
(10)在“一主多从”结构的I2C总线系统中,主器件怎样与特定的从器件进行通信?简述其工作过程。 提示
主器件与所有从器件都通过SDA和SCL两根线连接到I2C总线上。通信时序由多个逻辑环节组成。主器件启动了I2C总线后,所有从器件均处于接收状态,接收主器件发送来的寻址信息SLA,并与自身的“从片地址”比较:如果相符,则通过SDA引脚回送低电平的“应答信号”;反之,不做任何响应。
(11)80C51没有I2C总线接口,怎样才能实现与I2C总线器件的通信? 提示
对于无I2C总线接口的主器件,如51单片机,为使其能与AT24CXX通信,可以利用两条I/O口线通过软件方法模拟I2C总线时序。本书采用的做法是,根据I2C总线时序编写若干个汇编子程序,并将它们有机组合在一起形成两个具有读/写功能的汇编子程序,然后采用C51与汇编组成的混合编程方法实现对I2C总线接口器件的通信。
(12)字符型液晶显示模块的主要优点和应用范围是什么?怎样使LM1602在指定起始位置处显示出指定的字符串(编程原理)? 提示
字符型液晶显示模块是一种用来显示字母、数字、符号等的点阵型液晶模块,它以体积小、重量轻、电压低、功耗小等优点,在工业控制、仪器仪表等领域得到广泛应用。LM1602的液晶屏有16×2个显示位,每个显示位对应于一个RAM单元(显示缓冲区),其地址为:上排对应于00~0x0f,下排对应于0x40~0x4f,向对应RAM地址写入显示代码便可显示相应的字符。利用写指令函数和写数据函数将待显示的字符串写入指定显示位即可实现对液晶显示模块的控制。
(13)串行日历时钟芯片的主要优点和应用范围是什么?怎样读取DS1302中的时钟信息(编程原理)? 提示
DS1302是一种带有数据存储功能、采用串行方式与单片机通信的实时日历时钟电路,它可对年、月、日、星期、时、分、秒进行实时计时,并具有闰年补偿功能。DS1302的时钟精度一般(只能精确到秒),但由于具有体积小、成本低、使用方便等优点,在数据记录方面得到了广泛应用,能实现数据与出现该数据的时间同时记录。单字节读、写DS1302时钟信息的时序差异仅在于移位脉冲使能时刻不同,前者为下降沿,而后者为上升沿。读、写时钟信息的指令代码不同,例如对于秒钟寄存器,读指令代码为0x81,而写指令代码为0x80。时钟信息寄存器中的数据采用压缩BCD码形式存放,低4位是个位BCD码的存放区域,高4位是十位BCD码的存放区域。