第1章绪论
【习题1-1】将下列各二进制数转换为十进制数。
①11010101B ②11010011B ③10101011B ④10111101B
【习题1-2】将【习题1-1】中各二进制数转换为十六进制数。
【习题1-3】将下列各数转换为二进制数。
①215D ②253D ③01000011BCD ④00101001BCD
【习题1-4】什么叫原码、反码及补码?
【习题1-5】已知原码如下,写出其反码和补码(其最高位为符号位)。
①[X]原=01011001B ②[X]原=00111110B ③[X]原=11011011B ④[X]原=11111100B
【习题1-6】当微机把下列数看成无符号数时,它们相应的十进制数为多少?若把它们看成是补码,最高位为符号位,那么它们相应的十进制数是多少?
①10001110B ②10110000B ③00010001B ④01110101B
【习题1-7】用补码方法计算下列各式(设机器字长为8位):
(1)X =7D ,Y =8D ,求X +Y ;
(2)X =5D ,Y =9D ,求X -Y ;
(3)X =6D ,Y =-7D ,求X +Y ;
(4)X =-11D ,Y =7D ,求X -Y 。
【习题1-8】已知X =01011001B ,Y =0011010lB ,用算术运算规则求:
(1)X +Y ;(2)X -Y ;(3)X ×Y ;(4)X/Y
【习题1-9】已知X =01111010B ,Y =10101010B ,用逻辑运算规则求:
(1)X ∧Y ;(2)X ∨Y ;(3)X ⊕Y ;(4)X
【习题2-1】8051单片机内部包含哪些主要逻辑功能部件?各有什么主要功能?
【习题2-2】MCS-51单片机有几种复位方法?复位后单片机特殊功能寄存器的状态?【习题2-3】MCS-51单片机开机上电复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?
【习题2-4】MCS-51单片机运行出错或程序进入死循环,如何摆脱困境?
【习题2-5】MCS-51单片机的时钟周期、机器周期、指令周期是如何分配的?当振荡频率为8MHz时,一个单片机时钟周期为多少微秒?
【习题2-6】MCS-51单片机存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间?
【习题2-7】MCS-51单片机的EA信号有何功能?在使用8031时,EA信号引脚应如何处理?
【习题2-8】在MCS-51单片机扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突?
【习题2-9】MCS-51单片机片内数据存储器有多少字节?在什么空间?
【习题2-10】片内RAM低128单元划分为哪三个主要部分?各部分主要功能是什么?【习题2-11】MCS-51单片机片内数据存储器80H~FFH分别为哪两个物理空间?如何来区别这两个物理空间?
【习题2-12】MCS-51单片机设有4个通用工作寄存器组,有什么特点?如何选用?如何实现工作寄存器现场保护?
【习题2-13】MCS-51单片机具有很强的布尔(位)处理功能,共有多少单元可以位寻址?采用布尔处理有哪些优点?
【习题2-14】位地址00H与字节地址00H有何区别?位地址00H具体在内存中什么位置?【习题2-15】什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP 重新赋值?如果CPU在操作中要使用00H到0FH这两组工作寄存器,如何选择SP的初值?【习题2-16】什么是SFR的控制位与标志位?请举例说明可自动清除的标志位和必须用指令清除的标志位。
【习题2-17】程序状态字PSW的作用是什么?常用的状态标志有哪几位?作用是什么?【习题2-18】请说明单片机复位状态和SFR复位状态,两者有何区别?
【习题2-19】MCS-51单片机程序存储器中存放什么数据?有哪些操作方式?
【习题2-20】程序计数器PC作为不可寻址寄存器,它有哪些特点?地址指针DPTR有哪些特点?与程序计数器PC有何异同?
【习题2-21】MCS-51单片机的四个I/O端口在结构上有何异同?使用时有何注意事项?【习题2-22】MCS-51单片机系列单片机有哪些信号需要芯片引脚以第二功能的方式提供?
【习题2-23】什么是口锁存器的读-修改-写操作?什么是读引脚操作?
【习题2-24】MCS-51单片机有几种低功耗方式?如何实现?
第3章MCS-51单片机汇编语言程序设计
【习题3-1】什么是指令?什么是程序?简述程序在计算机中的执行过程。
【习题3-2】MCS-51单片机的指令系统具有哪些特点?
【习题3-3】MCS-51单片机指令系统中有哪些寻址方式?相应的寻址空间在何处?请举一例说明。
【习题3-4】MCS-51单片机的片内数据存储器寻址方式有那些?每个存储区域的寻址方式的特点如何?
【习题3-5】在8051的片内RAM 中,已知(30H)=38H ,(38H)=40H ,(40H)=48H ,(48H)=90H 。分析下面各条指令,说明源操作数的寻址方式,按顺序执行各条指令后的结果。
【习题3-6】现需将外部数据存储器200DH 单元中的内容传送到280DH 单元中,请设计程序。
【习题3-7】已知当前PC 值为1010H ,请用两种方珐将程序存储器10FFH 中的常数送入累加器A 。
【习题3-8】已知累加器A 中存放两位BCD 码数,请编写程序实现十进制数减1。
【习题3-9】请编写程序,将片外数据存储器中2000H 单元中的内容和2100H 单元的内容相乘,并将结果存放在内部RAM 的22H 和23H 单元中,高位存放在高地址中。
【习题3-10】已知延时程序为:
DELAY :MOV R2,#0FAH
L1:MOV R3,#0FAH
L2:DJNZ R3,L2
DJNZ R2,L1
RET
若系统的晶振频率为6MHz ,求该延时子程序的延时。
【习题3-11】请将片外数据存储器地址为2040H 一2060H 区域的数据块,全部搬移到片内RAM 的40H 一60H 地址区域,并将原数据区全部填为FFH 。
【习题3-12】试编写子程序,使间址寄存器R0所指的连续两个片外数据存器单元中的低4位二进制数,合并为一个字节,装入累加器A 中。已知R0指向低地址,并要求该单元低4位放在A 中的高4位。
【习题3-13】双字节与单字节无符号数相乘,设被乘数存于4lH 、40H 单元中,乘数存于R4中,乘积存于52H 、51H 、50H 单元中(前者为高位字节,后者为低位字节,顺序排列),请编写此乘法程序段。
【习题3-14】编程将片内40H 一5FH 单元中内容送到以3000H 为首的片外存储区中。
【习题3-15】编写计算下列算式的程序。
①23H +45H +ABH +03H =’
②CDH +15H -38H -46H =
③1234H +8347H =
④ABl23H -43ADCH =
【习题3-16】编写计算下式的程序,设乘积结果均小于255。a 、b 值分别存在片外RAM 3001H 和3002H 单元中,结果存于片外RAM 3000H 单元中。
⎪⎩
⎪⎨⎧>÷<×==b a b a b
a b a b a Y ,,,25【习题3-17】设有两个长度均为15的数组,分别存放在以2000H 和2100H 为首的存储区中,试编程求其对应项之和(设和步超过255),结果存放到以2200H 为首的存储区中。
【习题3-18】设有100个用补码表示的有符号数,连续存放在以2000H 为首地址的存储区
中,试编程统计其中正数、负数、零的个数。
【习题3-19】试编一查表程序,从首地址为2000H 和长度为100的数据块中找出ASC Ⅱ码A ,将其地址送到20A0H 和20A1H 单元中,其中,20A0H 单元存低位地址。
【习题3-20】在以2000H 为首地址的存储区中,存放着20个用ASC Ⅱ码表示的0~9之间的数,试编程将它们转换成BCD 码,并以压缩BCD 码(即一个单元存放二位BCD 码)的形式存放在3000H ~3009H 单元中。
【习题3-21】试编程实现下列逻辑表达式的功能。设P1.0一P1.7为8个变量的输入端,而其中P1.7又作为变量输出端。①7
6543210X X X X X X X X Y +++=②7
6543210X X X X X X X X Y ++=【习题3-22】试编写延时1s 、1min 、1h 的子程序。
【习题3-23】在2030H 和2031H 单元各有一个小于12的数,编程求这两个数的平方和,用调用子程序方法实现,结果存在2040H 单元。
【习题3-24】根据存入R2中的16个双字节数的序号查表找出对应数据。
【习题3-25】从BLOCK 单元开始有一个无符号数据块,其长度存在于LEN 单元,请求出数据块中最大的数,并存入MAX 单元。
【习题3-26】试编程把以2040H 为首地址的连续50个单元中的无符号数按降序排列,存放到以3000H 为首地址的存储区中。
【习题3-27】在单片机片内RAM 中从BLOCK 单元开始存放有一个数据块,数据块长度存在于LEM 单元当中,要求编写一个顺序检索程序,将存放在KEY 单元中的关键字检索出来,给出关键字在数据块的序号,序号存在R2中,当找遍整个数据块而并未检索到关键字时,序号为00H 。
【习题3-28】求两个8位有符号数加法,和超过8位,两个加数存放于BLOCK 和BLOCK+1单元。
【习题3-29】4位二进数转换成ASC Ⅱ码。已知参数:4位二进制数放于R2。结果参数:ASC Ⅱ码放于R3。
【习题3-30】ASC Ⅱ码转换成为4位二进制数。已知参数:ASC Ⅱ码放于R2。结果参数:4位二进制数放于R3。
【习题3-31】十进制整数转换成二进制数可以表示十进制数,即B=a n-1×10n-1+…+a 1×10+a 0
【习题3-32】二进制数转换成十进制数。一个M 位二进制整数的表达式为:
B=b m-1×2m-1+…+b 1×2+b 0
=(((…(b m-1×2)+b m-2)×2+b 1)×2)+b 0
【习题3-33】128路分支程序。
功能:根据R3的值(00H~7FH )转到128个目的地址。
【习题4-1】MCS-51单片机内部有几个定时器/计数器?它们是由哪些专用寄存器组成?
【习题4-2】MCS-51单片机的定时器/计数器有哪几种工作方式?各有什么特点?
【习题4-3】定时器/计数器用做定时方式时,其定时时间与哪些因素有关?作计数时,对外界计数频率有何?
【习题4-4】当定时器T0用做方式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭?
【习题4-5】MCS-51单片机定时器/计数器方式0的13位计数器初值如何计算?为什么要13位的计数方式?
【习题4-6】如何使用外部引脚信号来控制定时器/计数器的启、停?
【习题4-7】计数器的“飞读”是什么概念?为什么要“飞读”?
【习题4-8】什么是定时器/计数器溢出中断同步问题?在什么情况下要考虑这一问题?出现这一问题时应如何修正?
【习题4-9】设主频为12MHz,利用定时器T1定时,以中断方式,使P1.0输出周期为2ms的方波。
【习题4-10】若单片机晶振为12MHz,利用定时器1方式1,产生1ms的定时,在P1.0脚产生周期为2ms方波,用查询方式工作,查询标志为TF1。
【习题4-11】利用GATE控制位,测量1
INT(P3.3)引脚上正脉冲的宽度(设晶振为12MHz,已知正脉冲宽度小于65ms)。
【习题4-12】系统时钟频率为6MHz,试用定时器T0作外部计数器,编程实现每计到1000个脉冲,使T1开始2ms定时,定时时间到后,T0又开始计数,这样反复循环不止。
【习题4-13】什么是中断?在单片机中中断能实现哪些功能?
【习题4-14】什么是中断优先级?中断优先级处理的原则是什么?
【习题4-15】MCS-51有几个中断源?各中断标志是如何产生的,又如何清“0”的?CPU响应中断时,中断入口地址各是多少?
【习题4-16】在外部中断中,有几种中断触发方式?如何选择中断源的触发方式?
【习题4-17】请叙述中断响应的CPU操作过程?
【习题4-18】MCS-51单片机为用户提供了两个外部中断输入端(0
INT),在
INT、1
实际应用系统中,外部中断请求源往往比较多,系统中多于两个外部中断源怎么办?。
【习题4-19】什么是串行异步通信?它有哪些特点?有哪几种帧格式?
【习题4-20】某异步通信接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。
【习题4-21】为什么定时器T1用做串行口波特率发生器时,常采用工作方式2?若已知系统时钟频率、通信选用的波特率,如何计算定时器的初值?
【习题4-22】8051串行接口UART发送/接收的操作界面是什么?发送/接收完毕的标志位为什么设计成指令清零而不是自动清零?
【习题4-23】串行口控制寄存器SCON中TB8、RB8起什么作用?在什么时候使用?
【习题4-24】请简单叙述多机通信原理,在多机通信中TB8/RB8、SM2起什么作用?
【习题4-25】波特率误差对异步串行通信有什么影响?有哪些因素影响波特率误差?
【习题4-26】串行数据通信中有哪些数据检验和纠错技术?
【习题4-27】什么是单片机应用系统的串行扩展?有什么特点?发展趋势如何?
【习题4-28】什么是8051虚拟UART方式0串行扩展接口?它与UART方式0的
区别在哪里?
【习题4-29】题图4.2为串行口扩展I/O 硬件逻辑图。741S1为串入并出移位寄存器,741S165为并入串出移位寄存器。
(a )移位寄存器输出
(b )移位寄存器输入
题图4.2串行口扩展I/O 硬件逻辑图【习题4-30】设有甲、乙两台单片机,编出两台单片机间实现如下串行通讯功能的程序;
甲机发送:将首址为ADDRT 的128个字节的数据块顺序向乙机发送;
乙机接收:将接收的128个字节的数据,顺序存放在以首址为ADDRR 的数据缓冲区中。
【习题4-31】设计一个发送程序,将50H~5FH 的数据块从串行口输出。现将串行口定义为工作方式2发送,TB8作奇偶校验位。在数据写入发送缓冲器之前,先将数据的奇偶校验位写入TB8,采用查询方式,编写发送程序。
【习题4-32】设串行口上外接一个串行输入的设备,MCS-51和该设备之间采用9位异步通信方式,波特率2400,晶振为11.0592MHz ,串行口选择工作方式3。
【习题
4-33】在实际的大型控制系统中常采用主从式构成多机系统,多台从机可以减轻主机的工作负担,构成廉价的分布式多机系统。结构如题图4.3所示。
题图4.3主从式结构的多机系统
主机从机可以双向通信,从机之间只有通过主机才能通信。
第5章MCS-51单片机系统扩展
【习题5-1】单片机应用系统扩展32K程序存贮器,要求:CPU采用C51,程序存贮器芯片采用EPROM,地址为0000H~7FFFH,连接电路图。
【习题5-2】扩展8K字节RAM。要求:CPU使用C51,RAM使用62芯片,连接电路图,确定存储空间。
【习题5-3】利用容量为K字节的EPROM27512和32K字节的RAM62256扩展KB的程序存贮器和KB数据存贮器,CPU采用C51。
要求:确定每个芯片的地址范围。
【习题5-4】扩展EEPROM2817A作为C51单片机片外程序存贮器与数据存贮器,扩展电路的方案如题图5.4所示。
要求:1.分析电路的连接方法;
2.分析CPU对2817A的管理方法;
3.这样连接应注意那些事情
【习题5-5】用74LS377扩展一个8位并行输出口
【习题5-6】利用C51扩展式键盘,分别以中断方式和查询方式连接电路,编写程序。
题图5.6C51扩展键盘接口电路
7下载本文