单片机习题
单片机习题——精选推荐

第一章习题(一)填空题1. 除了“单片机”之外,单片机还可以称之为和。
2. 专用单片机由于已经把能集成的电路都集成到芯片内部了,所以专用单片机可以使系统结构最简化,软硬件资源利用最优化,从而极大地提高了和降低了。
3. 在单片机领域内,ICE的含义是。
4. 单片机主要使用汇编语言,而编写汇编语言程序要求设计人员必须精通和。
5. CHMOS工艺是工艺和工艺的结合,具有的特点。
6. 与8051比较,80C51的最大特点是。
7. 控制技术是对传统控制技术的一次革命,这种控制技术必须使用才能实现。
(二)选择题1.下列简写名称中不是单片机或单片机系统的是(A)MCU (B)SCM (C)ICE (D)CPU2.在家用电器中使用单片机应属于计算机的是(A)数据处理应用(B)控制应用(C)数值计算应用(D)辅助工程应用3.80C51与80C71的区别在于(A)内部程序存储器的类型不同(B)内部数据存储器的类型不同(C)内部程序存储器的容量不同(D)内部数据存储器的容量不同4.8051与80C51的区别在于(A)内部ROM的类型不同(B)半导体工艺的形式不同(C)内部寄存单元的数目不同(D)80C51使用EEPROM,而8051使用EPROM5.在下列单片机芯片中使用掩膜ROM作为内总程序存储器的是(A)8031 (B)80C51 (C)8032 (D)87C516.80C51芯片采用的半导体工艺是(A)CMOS (B)HMOS (C)CHMOS (D)NMOS7.单片机芯片8031属于(A)MCS-48系列(B)MCS-51系列(C)MCS-96系列(D)MCS-31系列8.使用单片机实现在线控制的好处不包括(A)精确度高(B)速度快(C)成本低(D)能与数据处理结合9.以下所列各项中不是单片机发展方向的是(A)适当专用化(B)不断提高其性能(C)继续强化功能(D)努力增加位数第二章习题(二)判断题1.用户构建单片机应用系统,只能使用芯片提供的信号引脚。
单片机习题集(含答案)经典

单片机原理及应用习题第一章绪论1-1单项选择1、计算机中最常用的字符信息编码是()。
(A)ASCII (B)BCD码(C)余3码(D)循环码2、-31D的二进制补码为.( )。
(A)1110000B (B)11100001B (C)01100000B (D)01100001B3、十进制29的二进制表示为原码()。
(A)11100010B (B) 10101111B (C)00011101B (D)00001111B4、十进制0.625转换成二进制数是()。
(A)0.101 (B) 0.111 (C)0.110 (D)0.1005、十六进制数7的ASCII码是()。
(A) 37 (B) 7 (C) 07 (D) 476、十六进制数B的ASCII码是()。
(A) 38 (B) 42 (C) 11 (D) 10117、通常所说的主机是指()(A)运算器和控制器(B)CPU和磁盘存储器(C)CPU和主存储器(D)硬件和软件8、使用单片机实现在线控制的好处不包括( )(A)精确度高(B)速度快(C)成本低(D)能与数据处理结合1-2填空1、计算机中常作的码制有、和。
2、十进制29的二进制表示为。
3、十进制数-29的8位补码表示为。
4、是计算机与外部世界交换信息的载体。
5、十进制数-47用8位二进制补码表示为。
6、-49D的二进制补码为。
7、计算机中的数称为,它的实际值叫。
8、单片机的存储器结构形式有普林斯顿结构(又称冯.依诺曼结构)与哈佛结构,MCS-51存储器采用的是结构。
1-3 问答题1、何谓单片机?单片机与一般微型计算机相比,具有哪些特点?2、单片机主要应用在哪些领域?3、为什么80C51系列单片机能成为8位单片机应用主流?4、举例说明单片机的主要应用领域。
5、二进制数、十进制数、十六进制数各用什么字母尾缀作为标识符?无标识符时表示什么进制数?6、试比较MCS-51,MSP430,EM78,PIC,M6800及AVP等系列单片机的特点。
单片机期末考试试题

单片机期末考试试题
一、选择题
1. 下列关于单片机的说法,正确的是:
A. 单片机只能执行一个程序
B. 单片机是一种独立运行的计算机系统
C. 单片机通常由微处理器、存储器和输入输出设备构成
D. 单片机不需要外部电源供电
2. 单片机中常用的编程语言是:
A. C语言
B. Java语言
C. Python语言
D. HTML语言
3. 下列哪个是单片机的主要功能之一?
A. 图像处理
B. 语音识别
C. 数据处理
D. 网络连接
4. 单片机中常用的存储器包括:
A. ROM
B. RAM
C. Flash
D. 所有选项都正确
5. 单片机的时钟频率通常指的是:
A. CPU的时钟频率
B. 串口的时钟频率
C. 芯片上的任务执行频率
D. 外部存储器的时钟频率
二、填空题
1. 单片机中的ADC全称是__________。
2. 单片机中常见的GPIO中文全称是__________。
3. 单片机中最基本的输入输出设备是__________。
4. 单片机中常见的中断服务程序是__________。
5. 单片机中的I/O口中文全称是__________。
三、简答题
1. 请简要说明单片机中的PWM是什么,有什么作用?
2. 简要解释单片机中的I2C总线的原理及应用。
3. 请简述单片机中的串口通信是如何实现的,常用的串口通信方式有哪些?
四、编程题
请在单片机开发环境中编写一个简单的LED点亮程序,实现LED 灯隔1秒亮灭交替的效果。
以上为单片机期末考试试题内容,祝您考试顺利!。
单片机习题——精选推荐

单片机习题1、计算机由哪几部分组成?2、微型计算机由哪几部分构成?3、微处理器与微型计算机有何区别?4、什么叫单片机?其主要特点有哪些?5、微型计算机有哪些应用形式?各适于什么场合?6、当前单片机的主要产品有哪些?各有何特点?7、简述单片机的开发过程。
8、80C51单片机在功能上、工艺上、程序存储器的配置上有哪些种类?9、80C51单片机的存储器的组织采用何种结构?存储器地址空间如何划分?各地址空间的地址范围和容量如何?在使用上有何特点?10、80C51单片机的P0~P3口在结构上有何不同?在使用上有何特点?11、如果80C51单片机晶振频率为12MHz,时钟周期、机器周期为多少?12、80C51单片机复位后的状态如何?复位方法有几种?13、80C51单片机的片内、片外存储器如何选择?14、80C51单片机的PSW寄存器各位标志的意义如何?15、80C51单片机的当前工作寄存器组如何选择?16、80C51单片机的控制总线信号有哪些?各信号的作用如何?17、80C51单片机的程序存储器低端的几个特殊单元的用途如何?18、80C51系列单片机的指令系统有何特点?19、80C51单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器空间如何?20、访问特殊功能寄存器SFR可以采用哪些寻址方式?21、访问内部RAM单元可以采用哪些寻址方式?22、访问外部RAM单元可以采用哪些寻址方式?23、访问外部程序存储器可以采用哪些寻址方式?24、对于80C52单片机内部RAM还存在高128字节,应采用何种方式访问?25、试根据指令编码表写出下列指令的机器码。
(1)MOV A,#88H(2)MOV R3,50H(3)MOV P1.1,#55H(4)ADD A,@R1(5)SETB 12H26、完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指令序列。
(1)将R0的内容传送到R1;(2)内部RAM单元60H的内容传送到寄存器R2;(3)外部RAM单元1000H的内容传送到内部RAM单元60H;(4)外部RAM单元1000H的内容传送到外部RAM单元2000H。
单片机习题及参考答案

习题及参考答案一、填空题1、指令格式是由操作码和操作数所组成,也可能仅由操作码组成。
2、若用传送指令访问MCS-51的程序存储器,它的操作码助记符应为MOVC 。
3、若用传送指令访问MCS-51的片内数据存储器,它的操作码助记符应为MOV 。
4、若访问MCS-51的片外数据存储器,它的操作码助记符应为MOVX 。
5、累加器(A)=80H,执行完指令ADD A,#83H后,进位位C= 1 。
6、执行ANL A,#0FH指令后,累加器A的高4位= 0000 。
7、JZ rel的操作码地址为1000H,rel=20H,它的转移目的地址为1022H 。
8、JBC 00H,rel 操作码的地址为2000H,rel=70H,它的转移目的地址为2073H 。
9、累加器(A)=7EH,(20H)= #04H,MCS-51执行完ADD A,20H指令后PSW.0= 0 。
10、MOV PSW,#10H是将MCS-51的工作寄存器置为第 2 组。
11、指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H 入栈,37B0H →PC。
12、MOVX A,@DPTR源操作数寻址方式为寄存器间接寻址。
13、ORL A,#0F0H是将A的高4位置1,而低4位保持不变。
14、SJMP rel的指令操作码地址为0050H,rel=65H,那么它的转移目标地址为 00B7H 。
15、设DPTR=2000H,(A)=80H,则MOVC A,@A+DPTR的操作数的实际地址为2080H 。
16、MOV C,20H源寻址方式为位寻址。
17、在直接寻址方式中,只能使用8 位二进制数作为直接地址,因此其寻址对象只限于片内RAM 。
18、在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的地址。
19、在变址寻址方式中,以 A 作变址寄存器,以PC 或DPTR 作基址寄存器。
20、假定累加器A中的内容为30H,执行指令1000H:MOVC A,@A+PC后,把程序存储器1031H 单元的内容送入累加器A中。
单片机复习参考题(含答案)

单片机复习题一、选择1.二进制数110110110对应的十六进制数可表示为( )。
A. 1D3H B.1B6H C.DBOH D. 666H2.-3的补码是( )。
A. 10000011 B. 11111100 C.11111110 D.111111013.CPU主要的组成部部分为( )。
A.运算器,控制器 B.加法器,寄存器 C. 运算器,寄存器 D.运算器,指令译码器4.INTEL 8051 CPU是( )位的单片机。
A. 16 B.4 C. 8 D.准16位5.对于以 8051为核心的小单片机应用系统来说,/EA脚总是( )A.接地B.接电源C. 悬空D.不用6.程序计数器PC用来( )。
A.存放指令 B.存放正在执行的指令地址C. 存放下一条的指令地址 D.存放上一条的指令地址7.指令和程序是以( )形式存放在程序存储器中。
A. 源程序B. 汇编程序C. 二进制编码 D.BCD码8.单片机应用程序一般存放在( )中。
A. RAM B.ROM C. 寄存器 D.CPU9.单片机8051的XTALl和XTAL2引脚是()引脚A. 外接定时器 B.外接串行口 C. 外接中断 D.外接晶振10.8031复位后,PC与SP的值为( )。
A.0000H,00H B.0000H,07H C.0003H,07H D. 0800H,00H11.P0,P1口作输入用途之前必须( )。
A. 相应端口先置1 B.相应端口先置0 C.外接高电平 D.外接上拉电阻12.8051的内部RAM中,可以进行位寻址的地址空间为( )。
A. 00H~2FH B. 20H~2FH C. 00H~FFH D. 20H~FFH13.8051的程序计数器PC为16位计数器,其寻址范围是( ) 。
A. 8KB. 16K C. 32K D. 64K14.8051单片机中,唯一一个用户不能直接使用的寄存器是( )。
A.PSW B. DPTR C. PC D. B15.对MCS-51单片机来说,其内部RAM( )。
单片机习题_回答问题

i=0;
P1_1=!P1_1;}来自}7.在8051系统中,已知振荡频率是12MHz,用定时器/计数器T1实现从P1.1产生高电平宽度是10ms,低电平宽度是20ms的矩形波,试编程。
#include <reg51.h>
unsigned char i;
sbit P1_1=P1^1;
void main( )//主函数
sbit P1_1=P1^1;
void main()
{
i=0;
TMOD=0x10;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET1=1;
TR1=1;
while(1);
}
void timer1_int(void) interrupt 3
{
TH0=(65536-10000)/256;
1.简述C51语言和汇编语言的比较
使用C51语言进行嵌入式系统的开发,有着汇编语言所不可比拟的优势:
①编程调试灵活方便;
②生成的代码编译效率高;
③模块化开发;
④可移植性好;
⑤便于项目的维护;
2.哪些变量类型是51单片机直接支持的?
答:C51编译器支持的数据类型有:位型(bit)、无符号字符型(unsigned char)、有符号字符型(signed char)、无符号整型(unsigned int)、有符号整型(signed int)、无符号长整型(unsigned long)、有符号长整型(signed long)、浮点型(float)和指针型等。
#include <reg51.h>
unsigned char i,j,k;
单片机习题答案

第1章单片机概述1.除了单片机这一名称之外,单片机还可称为和 ;答:微控制器,嵌入式控制器;2.单片机与普通微型计算机的不同之处在于其将、、和 3部分集成于一块芯片上;答:CPU、存储器、I/O口;3.8051与8751的区别是 ;A.内部数据存储单元数目不同B.内部数据存储器的类型不同C.内部程序存储器的类型不同D.内部寄存器的数目不同答:C;4.在家用电器中使用单片机应属于微计算机的 ;A.辅助设计应用;B.测量、控制应用;C.数值计算应用;D.数据处理应用答:B;5.微处理器、微计算机、微处理机、CPU、单片机它们之间有何区别答:微处理器、微处理机和CPU都是中央处理器的不同称谓;而微计算机、单片机都是一个完整的计算机系统,单片机特指集成在一个芯片上的用于测控目的的单片微计算机; 6.MCS-51系列单片机的基本型芯片分别为哪几种它们的差别是什么答:MCS-51系列单片机的基本型芯片分别是8031、8051和8751;它们的差别是在片内程序存储器上;8031无片内程序存储器,8051片内有4KB的程序存储器ROM,而8751片内集成有4KB的程序存储器EPROM;7.为什么不应当把51系列单片机称为MCS-51系列单片机答:因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机; 8.AT89C51单片机相当于MCS-51系列单片机中的哪一种型号的产品答:相当于MCS-51系列中的87C51,只不过是AT89C51芯片内的4KB Flash存储器取代了87C51片内的4KB的EPROM;第2章 AT89C51单片机片内硬件结构1.在AT89C51单片机中,如果采用6MHz晶振,一个机器周期为 ;答:2μs2.AT89C51单片机的机器周期等于个时钟振荡周期;答:12;3.内部RAM中,位地址为40H、88H的位,该位所在字节的字节地址分别为和 ;答:28H;88H;4.片内字节地址为2AH单元的最低位的位地址是;片内字节地址为88H单元的最低位的位地址是 ;答:50H;88H;5.若A中的内容为63H,那么,P标志位的值为 ;答:P标志位的值为0;6.AT89C51单片机复位后,R4所对应的存储单元的地址为,因上电时PSW= ;这时当前的工作寄存器区是组工作寄存器区;答:04H;00H;0;7.内部RAM中,可作为工作寄存器区的单元地址为 H~ H;答:00H;1FH;8.通过堆栈操作实现子程序调用,首先要把的内容入栈,以进行断点保护;调用返回时,再进行出栈保护,把保护的断点送回到 ;答:PC;PC;9.AT89C51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为AT89C51单片机的PC是16位的,因此其寻址的范围为 KB;答:64KB;10.判断下列项说法是正确的;A.AT89C51单片机的CPU是由RAM和EPROM组成的B.区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端C.在AT89C51单片机中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1D.PC可以看成是程序存储器的地址指针答: A. 错; B. 错;C. 对;D. 对;11.判断以下有关PC和DPTR的结论是正确的;A.DPTR是可以访问的,而PC不能访问B.它们都是16位寄存器C.在单片机运行时,它们都具有自动加“1”的功能D.DPTR可以分为2个8位的寄存器使用,但PC不能答:A. 对; B. 对;C. 错;D. 对;12.判断下列说法项是正确的;A.程序计数器PC不能为用户编程时直接访问,因为它没有地址B.内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用C.AT89C51单片机共有21个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以进行位寻址的;答:A. 对; B. 错;C. 错;13.PC的值是 ;A.当前正在执行指令的前一条指令的地址B.当前正在执行指令的地址C.当前正在执行指令的下一条指令的地址D.控制器中指令寄存器的地址答:A. 错;B. 错;C. 对;D. 错;14.判断下列说法项是正确的;A.PC是一个不可寻址的特殊功能寄存器B.单片机的主频越高,其运算速度越快C.在AT89C51单片机中,一个机器周期等于1sD.特殊功能寄存器内存放的是栈顶首地址单元的内容答:A. 对;B. 对;C. 错;D.错;15.AT89C51单片机的片内都集成了哪些功能部件各个功能部件的最主要的功能是什么11个微处理器CPU;2128个数据存储器RAM单元;34KB Flash程序存储器;44个8位可编程并行I/O口P0口、P1口、P2口、P3口;51个全双工串行口;62个16位定时器/计数器;7一个中断系统,5个中断源,2个优先级;821个特殊功能寄存器SFR;16.说明AT89C51单片机的引脚EA的作用,该引脚接高电平和低电平时各有何种功能答:当EA脚为高电平时,单片机读片内程序存储器4KB Flash,但在PC值超过0FFFH即超出4KB地址范围时,将自动转向读外部程序存储器内的程序;当EA脚为低电平时,对程序存储器的读操作只限定在外部程序存储器,地址为0000H~FFFFH,片内的4KB Flash程序存储器不起作用;17.64KB程序存储器空间有5个单元地址对应AT89C51单片机5个中断源的中断入口地址,请写出这些单元的入口地址及对应的中断源;答:64KB程序存储器空间中有5个特殊单元分别对应于5个中断源的中断服务程序的入口地址,见下表;18.当AT89C51答:按下复位按钮;第3章 AT89C51单片机的指令系统1.在基址加变址寻址方式中,以作为变址寄存器,以或作为基址寄存器;答:A,PC,DPTR;2.指令格式是由和组成,也可仅由组成;答:操作码,操作数,操作码;3.假定累加器A中的内容为30H,执行指令1000H:MOVC A,A+PC后,把程序存储器单元的内容送入累加器A中;答:1031H;4.在AT89C51单片机中,PC和DPTR都用于提供地址,但PC是为访问存储器提供地址,而DPTR是为访问存储器提供地址;答:程序,数据;5.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的 ;答:地址;6.已知程序执行前有A=02H,SP=52H,51H=FFH,52H=FFH;下述程序执行后,A= ,SP= ,51H= ,52H= ,PC= ;POP DPHPOP DPLMOV DPTR,4000HRL AMOV B,AMOVC A,A+DPTRPUSH AccMOV A,BINC AMOVC A,A+DPTRPUSH AccRETORG 4000HDB 10H,80H,30H,50H,30H,50H答:A=50H,SP=50H,51H=30H,52H=50H,PC=5030H;7.假定A=83H,R0=17H,17H=34H,执行以下指令后,A= ;ANL A,17HORL 17H,AXRL A,R0CPL A答:A=0CBH;8.假设A=55H,R3=0AAH,在执行指令“ANL A,R5”后,A= ,R3= ;答:A=00H,R3=0AAH;9.如果DPTR=507BH,SP=32H,30H=50H,31H=5FH,32H=3CH,则执行下列指令后,DPH= ,DPL= ,SP= ;POP DPHPOP DPLPOP SP答:DPH=3CH,DPL=5FH,SP=50H;10.假定,SP=60H,A=30H,B=70H,执行下列指令后,SP的内容为 ,61H单元的内容为 ,62H单元的内容为 ;PUSH AccPUSH B答:SP=62H,61H=30H,62H=70H;11.判断下列说法项是正确的;A.立即寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中B.指令周期是执行一条指令的时间C.指令中直接给出的操作数称为直接寻址答:A.对;B.对; C.错;12.判断以下指令的正误;1MOV 28H,R2 2DEC DPTR 3INC DPTR 4CLR R05CPL R5 6MOV R0,R1 7PHSH DPTR 8MOV F0,C9MOV F0, 10MOVX A,R1 11MOV C,30H 12RLC R0答:1错2错3对4错5错6错7错8对9错10对11对12错;13.访问SFR,可使用哪些寻址方式答:只能使用直接寻址方式;14.下列程序段的功能是什么PUSH AccPUSH BPOP AccPOP B答:A的内容与B的内容互换;15.写出完成如下要求的指令,但是不能改变未涉及位的内容;1把,,和清“0”;2把累加器A的中间4位清“0”;3使和置“1”;答:1ANL A,87H2ANL A,0C3H3ORL A,0CH16.借助本书中的表3-2指令表,对如下指令代码十六进制进行手工反汇编;FF C0 E0 E5 F0 F0答:MOV R7,APUSH AMOV A ,BMOVX DPTR,A第4章 AT89C51单片机汇编语言程序设计1.已知程序执行前有A=02H,SP=42H,41H=FFH,42H=FFH;下述程序执行后,A= ;SP= ;41H= ;42H= ;PC= ;POP DPHPOP DPLMOV DPTR,3000HRL AMOV B,AMOVC A,A+DPTRPUSH AccMOV A,BINC AMOVC A,A+DPTRPUSH AccRETORG 3000HDB 10H,80H,30H,80H,50H,80H答: A=80H,SP=40H,51H=50H,52H=80H ,PC=8050H;2.说明伪指令的作用;“伪”的含义是什么常用伪指令的功能如何答:伪指令不属于指令系统中的汇编语言指令,它是程序员发给汇编程序的控制命令;只有在汇编前的源程序中才有伪指令;所以“伪”体现在汇编后,伪指令没有相应的机器代码产生;3.解释手工汇编、机器汇编、交叉汇编、反汇编术语概念;答:1手工汇编:手工编程,首先把程序用助记符指令写出,然后通过查指令的机器代码表,逐个把助记符指令“翻译”成机器代码,这种人工查表“翻译”指令的方法称为手工汇编;2机器汇编:是借助于微型计算机上的软件汇编程序来代替手工汇编,完成把助记符指令“翻译”成机器代码的工作;3交叉汇编:使用微型计算机来完成汇编,而汇编后得到的机器代码却是在另一台计算机这里是单片机上运行,称这种机器汇编为交叉汇编;4反汇编:将二进制的机器代码语言程序翻译成汇编语言源程序的过程;4.下列程序段经汇编后,从1000H开始的各有关存储单元的内容是什么ORG 1000HTAB1 EQU 1234HTAB2 EQU 3000HDB "MAIN"DW TAB1,TAB2,70H答:4D 41 49 4E 12 34 30 00 00 705.设计子程序时应注意哪些问题答:在编写子程序时应注意以下问题;1子程序的第一条指令前必须有标号;2使用子程序调用指令时,有两条调用指令可供使用;①使用绝对调用指令ACALL addr11要注意,被调用的子程序的首地址与本绝对调用指令的下一条指令的高5位地址相同,即只能在同一2KB程序存储区内;②使用长调用指令LCALL addr16时,addr16为直接调用的子程序的目标地址,也就是说,被调用的子程序可放置在64KB程序存储器区的任意位置;3子程序结构中必须用到堆栈,堆栈通常用来保护断点和现场保护;4子程序返回主程序时,最后一条指令必须是RET指令;5子程序可以嵌套,即主程序可以调用子程序,子程序又可以调用另外的子程序;6.试编写一个程序,将内部RAM中45H单元的高4位清“0”,低4位置“1”;答:参考程序如下:MOV A,45HANL A,0FHORL A,0FHMOV 45H,A7.试编写程序,查找在内部RAM的30H~50H单元中是否有0AAH这一数据;若有,则将51H 单元置为“01H”;若未找到,则将51H单元置为“00H”;答:参考程序如下:START: MOV R0,30HMOV R2,20HLOOP: MOV A,R0CJNE A,0AAH,NEXTMOV 51H,01HLJMP EXITNEXT: INC R0DJNZ R2,LOOPMOV 51H,00HEXIT: RET8.试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数,并将查找到的结果存入41H单元;答:参考程序如下:START: MOV 41H,0MOV R0,20HMOV R2,20HLOOP: MOV A,R0JNZ NEXTINC 41HNEXT: INC R0DJNZ R2,LOOPRET9.在内部RAM的21H单元开始存有一组单字节无符号数,数据长度为20H,编写程序,要求找出最大数存入MAX单元;答:略:10.若SP=60H,标号LABEL所在的地址为3456H;LCALL指令的地址为2000H,执行如下指令2000H LCALL LABEL后,堆栈指针SP和堆栈内容发生了哪些变化PC的值等于什么如果将指令LCALL直接换成ACALL是否可以如果换成ACALL指令,可调用的地址范围是什么答: 1SP=SP+1=61H 61H=PC的低字节=03HSP=SP+1=62H 62H=PC的高字节=20H2PC=3456H3可以42KB=2048 Byte第5章 AT89C51单片机的中断系统1.外部中断1的中断入口地址为 ;定时器1的中断入口地址为 ;答:0013H;001BH;2.若IP=00010100B,则优先级最高者为 ,最低者为 ;答:外部中断1;定时器T1;3.AT89C51单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送 ,使程序执行转向中的中断地址区;答:PC、PC、程序存储器;4.判断AT89C51单片机对外中断请求源响应的最快响应时间为3个机器周期 ; 答:对;5.下列说法正确的是 ;A.各中断源发出的中断请求信号,都会标记在AT89C51单片机的IE寄存器中B.各中断源发出的中断请求信号,都会标记在AT89C51单片机的TMOD寄存器中C.各中断源发出的中断请求信号,都会标记在AT89C51单片机的IP寄存器中D.各中断源发出的中断请求信号,都会标记在AT89C51单片机的TCON与SCON寄存器中答:D;6.中断查询确认后,在下列各种AT89C51单片机运行情况下,能立即进行响应的是 ;A.当前正在进行高优先级中断处理B.当前正在执行RETI指令C.当前指令是DIV指令,且正处于取指令的机器周期D.当前指令是MOV A,R3答:D;7.在AT89C51单片机的中断请求源中,需要外加电路实现中断撤销的是 ; A.电平方式的外部中断B.脉冲方式的外部中断C.外部串行中断D.定时中断答:A;8.下列说法正确的是 ;A.同一级别的中断请求按时间的先后顺序响应B.同一时间同一级别的多中断请求将形成阻塞,系统无法响应C.低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求D.同级中断不能嵌套答:A、C、D;9.中断服务子程序与普通子程序有哪些相同和不同之处答:RETI指令在返回时,同时清除中断系统中相应的优先级触发器,以允许下次中断,而RET指令则没有这个操作;除了这一点两条指令不同外,其他操作都相同;10.AT89C51单片机响应外部中断的典型时间是多少在哪些情况下,CPU将推迟对外部中断请求的响应答:略;11.编写外部中断1为跳沿触发的中断初始化程序段;答:SETB IT1SETB EX1SETB EA12.中断响应的条件是什么答:略;13.某系统有3个外部中断源1、2、3,当某一中断源发出的中断请求使INT1引脚变为低电平时见图5-10,便要求CPU进行处理,它们的优先处理次序由高到低为3、2、1,中断处理程序的入口地址分别为1000H、1100H、1200H;试编写主程序及中断服务子程序转至相应的中断处理程序的入口即可;答:参见电路如图5-10所示,参考程序如下:ORG 0000HLJMP MAINORG 0013HLJMP INT_EX1ORG 0030HMAIN: CLR IT0 ;采用电平触发,低电平有效中断SETB EX1 ;允许外部中断1SETB EAWAIT: LJMP WAIT ;用原地跳转代替一段用户程序;以下为外部中断1服务子程序INT_EX1: JNB ,NEXT1 ;=0,不是3号中断,跳转NEXT1LJMP INT_IR3 ;是3号中断,跳转到对应的中断处理程序NEXT1: JNB ,NEXT2 ;=0,不是2号中断,跳转NEXT2LJMP INT_IR2 ;跳转到2号中断处理程序NEXT2: LJMP INT_IR1 ;跳转到1号中断处理程序ORG 1000HINT_IR3: 插入相应中断处理程序RETI ;中断返回ORG 1100HINT_IR2: 插入相应中断处理程序RETI ;中断返回ORG 1200HINT_IR1: 插入相应中断处理程序RETI ;中断返回第6章 AT89C51单片机的定时器/计数器1.下列项说法是正确的;A.特殊功能寄存器SCON,与定时器/计数器的控制无关B.特殊功能寄存器TCON,与定时器/计数器的控制无关C.特殊功能寄存器IE,与定时器/计数器的控制无关D.特殊功能寄存器TMOD,与定时器/计数器的控制无关答:A.对;B.;错C.错;D.错;2.如果采用的晶振的频率为3MHz,定时器/计数器工作在方式0、1、2下,其最大定时时间各为多少答:因为机器周期所以定时器/计数器工作方式0下,其最大定时时间为同样可以求得,方式1下的最大定时时间为;方式2下的最大定时时间为1024ms; 3.定时器/计数器用作定时器模式时,其计数脉冲由谁提供定时时间与哪些因素有关答:定时器/计数器用作定时器时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供;定时时间与时钟频率和定时初值有关;4.定时器/计数器用作计数器模式时,对外界计数频率有何限制答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24;5.采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式;定时1ms后,又转为计数工作方式,如此循环不止;假定AT89C51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写程序;答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作;除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式;参考程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,06H ;定时器/计数器T0为计数方式2MOV TL0,156 ;计数100个脉冲的初值赋值MOV TH0,156SETB GATE ;打开计数门SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断CLR F0 ;设置下一轮定时方式的标志位WAIT: AJMP WAITIT0P: CLR EA ;CPU关中断JB F0,COUNT ;F0=1,转计数方式设置MOV TMOD,00H ;定时器/计数器T0为定时方式0MOV TH0,0FEH ;定时1ms初值赋值MOV TL0,0CHSETB EARETICOUNT: MOV TMOD,06HMOV TL0,156SETB EARETI6.定时器/计数器的工作方式2有什么特点适用于哪些应用场合答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,如波特率的产生;7.编写程序,要求使用T0,采用方式2定时,在输出周期为400μs,占空比为10∶1的矩形脉冲;答:根据题意,从输出的矩形脉冲的高低电平的时间为10∶1,则高低电平的时间分别为μs和μs;如果系统采用6MHz晶振,Tcy=2μs,因此高低电平输出取整,则约为364μs 和36μs;参考程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,02H ;定时器/计数器T0为定时方式2MOV TL0,4AH ;定时364s初值赋值SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断SETBWAIT: AJMP WAITIT0P: CLR EACLR ;关中断MOV R0,9DLY: DJNZ R0,DLY ;延时36sMOV TL0,4AH ;定时364s初值赋值SETBSETB EARETI8.一个定时器的定时时间有限,如何用两个定时器的串行定时来实现较长时间的定时答:方法1,在第一个定时器的中断程序里关闭本定时器的中断程序,设置和打开另一个定时器;在另一个定时器的中断程序中关闭本定时中断,设置和打开另一个定时器;这种方式的定时时间为两个定时器定时时间的和;方法2,一个作为定时器,在定时中断后产生一个外部计数脉冲比如由接INT0产生,另一个定时器工作在计数方式;这样两个定时器的定时时间为一个定时器的定时时间乘以另一个定时器的计数值;9.当定时器T0用于方式3时,应该如何控制定时器T1的启动和关闭答:由T1口控制定时器T1的启动和关闭;10.定时器/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程若时钟频率为6MHz,求允许测量的最大脉冲宽度是多少答:采用方式1定时工作方式;最大脉冲宽度为;11.编写一段程序,功能要求:当引脚的电平正跳变时,对的输入脉冲进行计数;当引脚的电平负跳变时,停止计数,并将计数值写入R0、R1高位存R1,低位存R0;答:将的输入脉冲接入INT0,即使用T0计数器完成对口的脉冲计数;参考程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: JNB ,MAINMOV TMOD,05H ;定时器/计数器T0为计数方式1SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断WAIT: JB ,WAITCLR EACLR TR0MOV R1,TH0MOV R0,TL0AJMP $IT0P: INC R2RETI12.TH x与TL xx=0,1是普通寄存器还是计数器其内容可以随时用指令更改吗更改后的新值是立即刷新还是等当前计数器计满后才能刷新答:THx与TLxx=0,1是由特殊功能寄存器构成的计数器,其内容可以随时用指令更改,更改后的新值立即刷新;但在读THx、TLx值时,应该先读THx值,后读TLx,再读THx值;若两次读得THx值相同,则可确定读得的内容正确;若前后两次读得的THx值有变化,再重复上述过程;第7章 AT89C51单片机的串行口1.帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式 ; 答:1;2.在串行通信中,收发双方对波特率的设定应该是的;答:相等;3.下列选项中, 是正确的;A.串行口通信的第9数据位的功能可由用户定义B.发送数据的第9数据位的内容是在SCON寄存器的TB8位中预先准备好的C.串行通信帧发送时,指令把TB8位的状态送入发送SBUF中D.串行通信接收到的第9位数据送SCON寄存器的RB8中保存E.串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定答:A对B对C错D对E对;4.通过串行口发送或接收数据时,在程序中应使用 ;A.MOVC指令 B.MOVX指令C.MOV指令D.XCHD指令答:CMOV指令;5.串行口工作方式1的波特率是 ;A.固定的,为f osc/32 B.固定的,为f osc/16C.可变的,通过定时器/计数器T1的溢出率设定D.固定的,为f osc/64答:C;6.在异步串行通信中,接收方是如何知道发送方开始发送数据的答:当接收方检测到RXD引脚上的有效的负跳变时,即可知道发送方开始发送数据; 7.串行口有几种工作方式有几种帧格式各种工作方式的波特率如何确定答:串行口有4种工作方式:方式0、方式1、方式2、方式3;有3种帧格式,方式2和3具有相同的帧格式;方式0的发送和接收都以fosc/12为固定波特率;方式1的波特率=2SMOD/32×定时器T1的溢出率;方式2的波特率=2SMOD/64×fosc;方式3的波特率=2SMOD/32×定时器T1的溢出率;8.假定串行口串行发送的字符格式为1个起始位、8个数据位、1个奇校验位、1个停止位,请画出传送字符“B”42H的帧格式;答:传送的字符“B”的帧格式如图所示先低位后高位;起始位 0 1 0 0 0 0 1 0 校验位停止位图9.为什么定时器/计数器T1用作串行口波特率发生器时,常采用方式2若已知时钟频率、通信波特率,如何计算其初值答:1因为定时器/计数器在方式2下,初值可以自动重装,这样在进行串口波特率发生器设置时,就避免了重装参数的操作,且减少了重装参数的误差;2已知时钟频率、通信波特率,根据公式7-3,即可计算出初值;10.若晶体振荡器为,串行口工作于方式1,波特率为4 800bit/s,写出用T1作为波特率发生器的方式控制字和计数初值;答:经计算,初值为FAH;控制字: ANL TMOD,0F0HORL MOD,20HMOV TH1,0FAHMOV TL1,0FAHMOV SCON,40H11.简述利用串行口进行多机通信的原理;答:以方式1为例;发送过程:数据位由TXD端输出,发送1帧信息为10位,当CPU执行1条数据写发送缓冲器SBUF的指令,就启动发送;发送开始时,内部发送控制信号SEND变为有效,将起始位向TXD输出,此后,每经过1个TX时钟周期,便产生1个移位脉冲,并由TXD输出1个数据位;8位数据位全部输出完毕后,置1中断标志位TI,然后SEND信号失效;接收过程:当检测到起始位的负跳变时,则开始接收;接收时,定时控制信号有2种;其中一种是位检测器采样脉冲,它的频率是RX时钟的16倍;也就是在1位数据期间,有16个采样脉冲,以波特率的16倍速率采样RXD引脚状态,当采样到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误地开始接收数据;12.使用AT89C51的串行口按工作方式1进行串行数据通信,假定波特率为2 400bit/s,以中断方式传送数据,请编写全双工通信程序;答:请参考教材的P115-P117程序,并作适当改动;13.某AT89C51单片机串行口,传送数据的帧格式由1个起始位0、7个数据位、1个偶校验和1个停止位1组成;当该串行口每分钟传送1800个字符时,试计算出它的波特率; 答:串口每秒钟传送的字符为1800/60=30个字符/秒,所以波特率为30个字符/秒×10位1个字符=300b/s;14.为什么AT89C51单片机串行口的方式0帧格式没有起始位0和停止位1答:串行口的方式0为同步移位寄存器输入/输出方式,常用于外接移位寄存器,以扩展并行I/O口,一般不用于两个89C51之间的串行通信;该方式以fosc/12的固定波特率从低位到高位发送或接收数据;15.直接以TTL电平串行传输数据的方式有什么缺点答:优点是连线简单,缺点是抗干扰性能差,传输距离短;第8章 AT89C51单片机扩展存储器的接口设计1.单片机存储器的主要功能是存储和 ;答:程序,数据;2.假设外部数据存储器2000H单元的内容为80H,执行下列指令后累加器A中的内容为 ;MOV P2,20HMOV R0,00HMOVX A,R0答:80H;3.在存储器扩展中,无论是线选法还是译码法最终都是为扩展芯片的片选端提供控制信号;答:片选;4.起止范围为0000H~3FFFH的存储器的容量是 KB;答:16KB5.在AT89C51单片机中,PC和DPTR都用于提供地址,但PC是为访问存储器提供地址,而DPTR是为访问存储器提供地址;答:程序,数据;6.11条地址线可选个存储单元,16KB存储单元需要条地址线;答:2KB,14;7.4KB RAM存储器的首地址若为0000H,则末地址为 H;答:0FFFH;8.区分AT89C51单片机片外程序存储器和片外数据存储器的最可靠方法是 ; A.看其位于地址范围的低端还是高端B.看其离AT89C51单片机芯片的远近C.看其芯片的型号是ROM还是RAMD.看其是与RD信号连接还是与PSEN信号连接答:D;9.试编写一个程序如将05H和06H拼为56H,设原始数据放在片外数据区2001H单元和2002H单元中,按顺序拼装后的单字节数放入2002H;答:本题主要考察对外部存储器的读、写操作的编程,只要正确使用MOVX指令就可以了;编程思路:首先读取2001H的值,保存在寄存器A中,将寄存器A的高4位和低4位互换,再屏蔽掉低4位然后将寄存器A的值保存到30H中,然后再读取2002H的值,保存在寄存器A中,屏蔽掉高4位,然后将寄存器A的值与30H进行“或运算”,将运算后的结果保存在2002H中;ORG 0000HMAIN: MOV DPTR,2001H ;设置数据指针的初值MOVX A,DPTR ;读取2001H的值SWAP AANL A,0F0H ;屏蔽掉低4位MOV 30H,A ;保存AINC DPTR ;指针指向下一个片外RAM单元MOVX A,DPTR ;读取2002H的值ANL A,0FH ;屏蔽掉高4位ORL A,30H ;进行拼装MOVX DPTR,A ;保存到2002H片外RAM单元END10.编写程序,将外部数据存储器中的4000H~40FFH单元全部清“0”;答:本题主要考察对外部数据块的写操作;编程时只要注意循环次数和MOVX指令的使用就可以了;ORG 0000HMAIN: MOV A,0 ;0给AMOV 0,0FFH ;设置循环次数MOV DPTR,4000H ;设置数据指针的初值LOOP: MOVX DPTR,A ;当前单元清“0”INC DPTR ;指向下一个单元DJNZ R0,LOOP ;是否结束END11.在AT89C51单片机系统中,外接程序存储器和数据存储器共16位地址线和8位数据线,为何不会发生冲突答:因为控制信号线的不同;外扩的RAM芯片既能读出又能写入,所以通常都有读、写控制引脚,记为OE和WE,它们分别与89C51的RD和WR引脚相连;外扩的EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与89C51单片机的PSEN相连;12.请写出图8-14中4片程序存储器27128各自所占的地址空间;答:图中采用了译码法;4片地址分别为0000H~3FFFH、4000H~7FFFH、8000H~BFFFH、C000H~FFFFH;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
填空题(每空1分,共30分)1.135转换转换成二进制和十六进制分别是和。
属于寻址;INC 30H 属于2.指出指令中操作数的寻址方式:INC @R1寻址;RLC A 属于寻址。
3.8051单片机的5中断源分别是、、、和。
4.8051单片机内部设置了个位的定时器/计数器,以实现定时和计数功能;其定时功能是指,计数功能是指。
5.MCS-51系列单片机中控制引脚EA和PSEN的作用分别是和。
6.单片机的时钟产生方法有和两种。
7.单片机程序状态字PSW中P是标志,该标志为1表示,为0表示。
8.MCS-51系列单片机的串行口是的,这个口既可以用作,也可以实现,还可以作为使用。
9. MCS-51系列单片机在访问片外存储器时,高8位地址由口提供,低8位地址由口提供。
10. .DAC0832与MCS-51接口时有、和三种工作方式。
1.MCS-51的程序存储器空间为,其地址指针为;MCS-51的外部数据存储器空间为,其地址指针为。
2.指出以下指令中源操作数的寻址方式:MOVC A,@A+DPTR属于寻址;MOV C,01H 属于寻址;MOV A,P属于寻址。
13.中断过程一般应包括、、和 4个步骤。
4.在单片机的控制应用系统中,可供选择的定时方式有、和 3种。
5.计算机的数据传送方式有和两种方式。
6.8155是Intel公司生产的可编程RAM和I/O扩展芯片,其片内资源有:字节的静态RAM,最快存取时间为;两个可编程的位并行I/O口PA口、PB口,一个可编程的位并行I/O口PC口;一个可编程的位计数器。
7.ADC0809是一种路模拟量输入,位数字量输出的型A/D转换器。
8.MCS-51系列单片机的5个中断源0INT、T0、T1和串行口中断所对应INT、1的中断服务程序入口地址分别是、、、和。
简答题(每小题5分,共30分)1.简述单片机的应用领域。
2.MCS-51单片机的内部资源包括哪些?3.MCS-51单片机可扩展的程序存储器和数据存储器的地址空间各为多少?它们之间的地址空间如果存在重叠区间,是否会造成混乱?请说明理由。
4.简述MCS-51系列单片机在什么情况下不能响应中断。
5.简述并行数据传送方式和串行数据传送方式各自的特点及适用场合。
6.8155是Intel公司生产的可编程RAM和I/O扩展芯片,其片内资源有哪些?1.简述单片机的特点。
2.简述机器周期、状态周期及指令周期之间的区别。
3.简述程序状态字(PSW)的几个标志的意义及置位和复位的条件。
4.在MCS-51中,哪些中断可以随着中断响应而自动撤除?哪些中断需要用户来撤除?撤除的方法是什么?5.简述MCS-51串行口发送和接收数据的过程。
6.DAC0832与MCS-51接口时有哪三种工作方式?它们有何特点?各适合在什么场合下使用?程序分析题这里考试一共有13分,几种书上的典型题目大家务必做一下:例4.1、例4.2、例4.3、例4.4 、例4.5、例4.14、例4.16 例4.17、课后习题:4.5、4.6、4,7、4.8、4.10 个人觉得PUSH/POP可能考这些没答案的是往年的题目 1.指出从地址1000H开始的程序存储器地址单元的内容。
ORG 1000HDS 07HDB 20H,20DW 12H3.设(21H)=71H,CY=1,顺序执行以下指令后,(21H)=,CY=。
CLR CCLR 08HCPL 09HSETB CSETB 0FHCPL C4.指出从地址2000H开始的12个程序存储器地址单元的内容。
ORG 2000HDS 2DW 1098HDB ‘MCS-51’DB 33,68H5.指出下列指令中哪些是非法的?如果非法请改正。
DEC DPTRRL BJNZ A,NEXTMOV A,@R2例4.4 将程序存储器2010H单元中的数据传送到累加器A中。
(设程序的起始地址为2000H)解:方法一:ORG 2000H ;伪指令,指定后面程序的存放起始地址MOV DPTR,#2000HMOV A,#10HMOVC A,@A+DPTR编程技巧:在访问前,必须保证(A)+(DPTR)等于访问地址,如该例中的2010H,一般方法是访问地址低8位值(10H)赋给A,剩下的16位地址(2010H-10H=2000H)赋给DPTR。
编程与指令所在的地址无关。
方法二:ORG 2000HMOV A,#0DHMOVC A,@A+PC分析:因为程序的起始地址为2000H,第一条指令为双字节指令,则第二条指令的地址为2002H,第二条指令的下一条指令的首字节地址应为2003H,即(PC)=2003H,因为(A)+(PC)=2010H,故(A)=0DH。
因该指令与指令所在地址有关,不利于修改程序,故不建议使用。
例4.5 设(A)=40H,(B)=41H,分析执行下列指令序列后的结果。
解:分析如下:MOV SP,#30H ;(SP)=30HPUSH A ;(SP)=31H,(31H)=40H ,(A)=40HPUSH B ;(SP)=32H,(32H)=41H , (B)=41HMOV A, #00H ;(A)=00HMOV B, #01H ;(B)=01HPOP B ;(B)=41H,(SP)=31H, (B)=41HPOP A ;(A)=40H,(SP)=30H, (A)=40H执行后:(A)=40H,(B)=41H,(SP)=30H,A和B中的内容恢复原样。
入栈操作、出栈操作主要用于子程序、中断服务程序中,入栈操作用来保护CPU现场参数,出栈操作用来恢复CPU现场参数。
例4.2 将扩展RAM 2010H中内容送扩展RAM 2020单元中,用Keil C集成开发环境进行调试。
解:(1)编程如下:ORG 0MOV DPTR,#2010H ;将16位地址2010H赋给DPTRMOVX A,@DPTR ;读扩展RAM 2010H中数据至累加器AMOV DPTR,#2020H ;将16位地址2020H赋给DPTRMOVX @DPTR,A ;将累加器A中数据送入外RAM 2020H中END例4.3 将扩展RAM 2000H中的数据送到片内RAM 30H单元中去。
解:编程如下:MOV DPTR,#2000H ;将16位地址2000H赋给DPTRMOVX A,@DPTR ;读扩展RAM 2010H中数据至累加器AMOV R0,#30H ;设定R0指针,指向基本RAM30H单元MOV @R0,A ;扩展RAM 2000H中的数据送到片内基本RAM 30H单元例4.14 将扩展RAM的一个数据块(首地址为DATA1)传送到内部基本RAM(首地址为DATA2),遇到传送的数据为零时停止传送,试编程。
解:ORG 0000HMOV R0,#DATA2 ;设置基本RAM指针MOV DPTR,#DATA1 ;设置扩展RAM指针LOOP1:MOVX A,@DPTR ;取被传送数据JZ LOOP2 ;不为0,数据传送,为0,结束传送MOV @R0,A ;数据传送INC R0 ;修改指针,指向下一个操作数INC DPTRSJMP LOOP1 ;重新进入下一个传送流程LOOP2:SJMP LOOP2 ;程序结束(原地踏步)END编程题一存储器的编程题不出意外应该是考从一个存储空间读一个数据块送到另一个存储空间里面去主要的题型如下,这里请大家记得之前第二章四个不同的存储空间用的指令是不一样的请大家先把第四章例题4.14、例4.16弄清楚第五六章有以下例题值得做例5.10 例5.9 例6.1 课后习题5.6、5.8 这四道题目请大家一定要知道怎么去写把例5.10弄透了。
课后习题6.1 、6.2、6。
3例5.10 编程将扩展RAM1000H为起始地址的16个数据传送到片内基本RAM20H为起始地址的单元中。
解:本例中,数据传送的次数是固定的,为16次;因此,可用一个计数器来控制循环体程序的执行次数。
既可以用加1计数来实现控制(采用CJNE指令),也可以采用减1计数来实现控制(采用DJNZ指令)。
一般情况下,采用减1计数控制居多。
参考程序如下:ORG 0000HMOV DPTR,#1000H ;设置被传送数据的地址指针MOV R0,#20H ;设置目的地地址指针MOV R2,#10H ;用R2作计数器,设置传送次数LOOP:MOVX A,@DPTR ;取被传送数MOV @R0,A ;传送到目的地INC DPTR ;指向下一个源操作数地址INC R0 ;指向下一个目的操作数地址DJNZ R2,LOOP ;计数器R2减1,不为0继续,否则结束传送SJMP $END例5.9 将内部RAM中起始地址为DATA的字符串数据传送扩展RAM中起始地址为BUFFER 的存储区域内,字符串的结束字符是“$”。
解:程序功能与例5.8基本一致,但字符串的结束字符“$”是字符串中的一员,也是需要传送的,因此,编程时应先传送,再对传送数据进行判断,以判断字符串数据传送是否结束。
设DATA为20H,BUFFER为0200H,参考程序如下:DATA EQU 20HBUFFER EQU 0200HORG 0000HMOV R0, #DATAMOV DPTR, #BUFFERLOOP0:MOV A, @R0 ;取被传送数据MOVX @DPTR, AINC R0 ;指向下一个被传送地址INC DPTR ;指向下一个传送目标地址CJNE A, #24H, LOOP0 ;判断是否为“$”字符(ASCII码为24H),若不是继续SJMP $ ;是“$”字符,停止传送END例6.1设P1口驱动8只LED灯,低电平有效。
从P1口顺序输出“E7H、DBH、BDH、7EH、3EH、18H、00H、FFH”等8组数据,周而复始。
解:首先将这8组数据要存放程序存储器中,在汇编编程时,采用“DB”伪指令对这8组数据进行存储定义;在C51编程时,采用数组并定义为“code”存储类型。
(1)汇编语言参考程序ORG 0000HLJMP MAINORG 0100HMAIN:MOV DPTR, #ADDR ;DPTR指向数据存放首址MOV R3, #08H ;顺序输出显示数据次数,分8次传送LOOP:CLR A ;A清零,DPTR直接指向读取数据所在地址处MOVC A, @A+DPTR ;取数MOV P1, A ;送P1口显示INC DPTR ;DPTR指向下一个数据LCALL DELAY ;调延时子程序DJNZ R3,LOOP ;判断一个循环是否结束,若没有,取、送下一个数据; SJMP MAIN ;若结束,重新开始DELAY:…;延时子程序,由读者自己完成。
…RET ;子程序必须由RET指令结束ADDR:DB 0E7H,0DBH,0BDH,7EH,3EH,18H,00H,0FFH ;定义存储字节数据END编程第二个定时计数器题型:课本第八章例题例8.1 例8.4 课后习题8.6 8.7这种题型大概有个模板先大家学会计算计数初值然后计算TMOD 再带入程序就可以了例8.1用T1方式0实现定时,在P1.0引脚输出周期为10mS的方波。