1、单片机简答复习题1MCS51的中断系统有几个中断源?几个中断优先级?中断优先级是如何控制的?在出现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)?各个中断源的入口地址是多少? 答:MCS51单片机有5个中断源,2个中断优先级,中断优先级由特殊功能寄存器IP控制,在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT1、T1、串口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。2已知单片机系统晶振频率为6MHz,若要求定时值为10ms时,定时器T0工作在方式1时,定时器T0对应的初值是多少?TMOD的
2、值是多少?TH0=?TL0=?(写出步骤) 答:定时值为10ms时,定时器T0工作在方式1时,定时器T0对应的初值是1388HTMOD的值是00000001B,TH0=13H;TL0=88H。3MCS51系列单片机的内部资源有哪些?说出8031、8051和8751的区别。答:MCS51系列单片机上有1个8位CPU、128B的RAM、21个SFR、4个并行口、1个串行口、2个定时计数器和中断系统等资源。8031、8051和8751的区别是8031内无ROM;8051内有4KB的掩膜ROM;8751内有4KB的EPROM。4.如何正确使用P3口? (1)说明P3口有第一功能和第二功能的使用。 (2
3、)P3口的第二功能各位线的含义。 (3)使用时应先按需要选用第二功能信号,剩下的口线才作第一功能I/O线用。 (4)读引脚数据时,必需先给锁存器输出“1”。5.简述累加器的ACC的作用。(1)8位专用寄存器。 (2)运算时存放一个操作数。 (3)运算后存放运算结果,所以称它为累加器。6.简述寄存器间接寻址方式及其寻址范围。(1)寄存器中存放的是操作数的地址,操作数是通过寄存器间接得到,这种寻址方式称为寄存器间接寻址方式。 (2)寻址范围: 内部RAM低128单位,形式Ri(i=0,1)。 外部RAM64K使用DPTR作间址寄存器,形式为DPTR。7.简述MCS-51单片机的中断入口地址。中断入
4、口地址为中断响应后PC的内容即中断服务的入口地址。它们是:外部中断0 0003H 定时器T0中断 000BH 外部中断1 0013H定时器T1中断 001BH串行口中断 0023H 8.简述串行数据传送的特点。(1)传送按位顺序进行,速度慢。(2)传输线少,成本低。(3)传送距离远,可达几公尺到几千公里。951系列单片机具有几个中断源,分别是如何定义的?其中哪些中断源可以被定义为高优先级中断,如何定义? 答:具有5个中断源,分别是外部中断INT0和外部中断INT1、定时器溢出中断0和定时器溢出中断1以及串行中断。通过对中断优先级寄存器IP的设置,每个中断源都可以被定义为高优先级中断。10各中断
5、源对应的中断服务程序的入口地址是否能任意设定? 答:各中断源的入口地址已经在中断地址区中被定义了,不能任意设定11如果想将中断服务程序放置在程序存储区的任意区域,在程序中应该作何种设置?请举例加以说明。 答:如果要将中断服务程序放置在程序存储区的任意区域,在程序中要通过在中断地址区的对应地址上设置跳转指令才可实现对中断服务程序的执行。 例如:外部中断O的中断服务程序INTOP放置在程序存储区的任意区域,此时,通过以下方式,可实现对中断服务程序的执行:(4分) ORGO003H (2分) JMP INTOP 列举其他中断跳转的例子也可,但叙述的中断源要与中断地址相对应才可得分,如外中断0对应00
6、03H地址。 12、简述子程序调用和执行中断服务程序的异同点。相同点:均能中断主程序执行本程序,然后再返回断点地址继续执行主程序。 不同点: (1)中断服务程序入口地址是固定的,子程序调用入口地址是用户自己设定的。 (2)中断服务子程序返回指令除具有子程序返回指令所具有的全部功能之外,还有清除中断响应时被置位的优先级状态、开放较低级中断和恢复中断逻辑等功能。 (3)中断服务子程序是在满足中断申请的条件下,随机发生的;而子程序调用是用户主程序事先安排好的。 13、已知晶振频率为6MHz,在P1.0引脚上输出周期为500微秒的等宽矩形波,若采用T1中断,工作方式2,试写出中断初始化程序MOV TM
7、OD, #20H SETB ET1MOV TL1, #06H SETB TR1MOV TH1, #06H SJMP $SETB EA 13 MCS-51指令系统主要有哪几种寻址方式?试举例说明。答:MCS-51指令操作数主要有以下7种寻址方式:寻址方式 举例立即寻址 MOV A,#16直接寻址 MOV 20H,P1寄存器寻址 MOV A,R0寄存器间接寻址 MOVX A, DPTR变址寻址 MOVC A, A+DPRT相对寻址 SJMP LOOP位寻址 ANL C,70H14. 定时器T0和T1各有几种工作方式?答:T0有4种工作方式,T1有3种工作方式,见表面4.4所述。 表4.4 定时器的
8、工作方式工作方式适用定时器功 能 说 明方式0方式1方式2方式3T0、T1T0、T1T0、T1T013位的定时器/计数器16位的定时器/计数器自动重新装入计数初值的8位的定时器/计数器分为两个8位计数器TL0和TH0。TL0可工作于定时或计数状态,TH0则固定为定时状态。方式3对T1则停止计数158031单片机需要外接程序存储器,实际上它还有多少条I/O线可以用?当使用外部存储器时,还剩下多少条I/O线可用?答:8031系统必须外接程序促成器,原则上说,P0和P2口要用作数据和地址总线,所以只有P1和P3口可用作I/O口,共16条I/O线。在使用外部存储器时,除了占用P0和P2口外,还需要用P
9、3口RD(P3.7)和WR(P3.6)两条控制线,所以这种情况下就只剩下14条I/O线可用了。16 8051的振荡周期、机器周期、指令周期是如何分配的?当晶振频率为6MHz时,一个机器周期为多少微秒?答:8051单片机每条指令的执行时间(即指令周期)为14个机器周期,有单字节单周期指令、两字节单周期指令、单字节两周期指令、两字节两周期指令、三字节两周期指令以及单字节四周期指令。一个机器周期有6个状态:S1S6每个状态又包含两个振荡周期,分为两拍:P1和P2。因此,一个机器周期包含12个振荡周期,表示为:S1P1、S1P2、S2P1、S6P1、S6P2。当FOSC=MHz时,机器周期为:(1/6
10、)12=2(s)17、 8051单片机的片内并行接口的作用答:1。连接负载2、做通用i/o口3、做数据/地址总线使用4、对冰口进行位操作5P3口作第二功能使用18、单片机中断方式的流程图答: 主程序 中断服务程序 设置中断入口 保护现场 中断优先级 恢复现场 执行主程序 返回19、写出下列特殊功能寄存器的名称TCON 定时/计数器 控制寄存器TM0D 定时/计数器方式控制寄存SCON 串行通信控制寄存器PSW 程序状态字寄存器IE 中断允许寄存器20、简述8051单片机的内部组成结构答:8051单片机是个完整的单片微型计算机。芯片内部包括下列硬件资源:8位CPU;4KB的片内程序存储器ROM。
11、可寻址64KB程序存储器和64KB外部数据存储器;128B内部RAM;21个SFR;4个8位并行I/O口(共32位I/O线);一个全双工的异步串行口;两个16位定时器/计数器;5个中断源,两个中断优先级;内部时钟发生器。21、单片机的内部存储器的种类,并写出各自的寻址范围和容量?单片机外部RAM的分类又哪几种?外部ROM的分类有哪几种?答 :各种类型的单片机片内程序存储器的配置形式主要有以下几种形式:掩膜(Msak)ROM型单片机:内部具有工厂掩膜编程的ROM,ROM中的程序只能由单片机制造厂家用掩膜工艺固化,用户不能修改ROM中的程序。例如:MCS51系列的8051。EPROM型单片机:内部
12、具有紫外线可擦除电可编程的只读存储器,用户可以自行将程序写入到芯片内部的EPROM中,也可以将EPROM中的信息全部擦除。擦去信息的芯片还可以再次写入新的程序,允许反复改写。例如:MCS51系列的8751。EPROM型单片机使用比较方便,但价格较高,适合于研制产品或结构要求简单的小批量产品。无ROM型单片机:内部没有程序存储器,它必须连接程序存储器才能组成完整的应用系统。例如:MCS51系列的8031。无ROM型单片机价格低廉,用户可根据程序的大小来选择外接程序存储器的容量。这种单片机扩展灵活,但系统结构较复杂。E2ROM型单片机:内部具有电可擦除叫可编程的程序存储器,使用更为方便。例如:MC
13、S51的派生型89C51单片机。OTP(One Time Programmable)ROM单片机:内部具有一次可编程的程序存储器,用户可以在编程器上将程序写入片内程序存储器中,程序写入后不能再改写。例如:NEC公司的PD75P308GF3B9。这种芯片的价格也较低。22.MCS-51单片机有哪几个并行I/O端口?各I/O口有什么特性?答:MCS-51单片机有4个8位双向的并行I/O口P0P3,每一个口都由口锁存器(D触发器)、输出驱动器(FET)和输入缓冲器(3态门)组成。各口每一位I/O线都能独立地用作输入或输出,CPU对口的读操作有两种,一种是读取口锁存器的状态,另一种是读取口引脚状态。但
14、这4个并行I/O口的结构和功能却完全不同,它们各自的特性如下:P0口为三态双向I/O口(开漏输出,内部无上拉电阻)。对于8051/8751/8052,P0口可以作为一般I/O口,也可作为系统扩展的地址/数据总线口。P0口用作外部引脚输入时,口锁存器必须为“1”,关断输出驱动器的FET;作总线口时,分时用作输出外部存储器的低8为地址A0A7和传送数据D0D7。对于8032/8052,P1.0和P1.1还有另一种功能:P1.0定时器T2的外部计数脉冲输入端,P1.1定时器T2的捕捉/重装触发脉冲输入端。对于8031,P0口只能用作地址/数据总线口。P1口为准双向I/O口(内部有上拉电阻)。用作外部
15、引脚输入时,相应位的口锁存器必须为“1”,使输出驱动器FET截止。P2口为准双向I/O口(内部有上拉电阻)。对于8051/8751/8052,P2口可以像P1口一样用作一般I/O口使用,也可以作为系统扩展的地址总线口,输出高8位地址A8A15。对于8031,P2口只能用作地址总线口。P3口也是准双向I/O口(内部有上拉电阻),且具有两个功能。作为第一功能使用时,与P1口一样用作一般I/O口。P3口的第二功能定义如下: 238051单片机提供了几个中断源?有几级中断优先级别?各中断标志是如何产生的?又如何清除这些中断标志?各中断源所对应的中断矢量地址是多少? 答:8051单片机提供了5个中断源:
16、两个外部INTO和INT1中断源,两个定时片内定时器T0和T1溢出中断源,一个片内全双工串行口中断源.提供了高、低两个中断优先级、能实现两级中断服务程序嵌套,同一个优先级里,由硬件查询来确定优先序列。各中断源请求中断的标志分别由特殊功能寄存器TCON、SCON的相应位锁存,这些标志位的产生和清除方式如下: IE0(TCON.1)外部中断0请求标志.当INTO出现有效的中断请求信号时,硬件使IE0置位.在边沿触发方式时,当CPU响应IE0中断后,由硬件清除IE0。 IE1(TCON.3)外部中断1请求标志.置位复位方式与IE0相同。 TF0(TCON.5)T0溢出中断请求标志。每当T0计数器加1
17、计数到溢出时,TF0=1。CPU响应TF0中断,硬件清除TF0。也可以由查询软件清除TF0。 TF1(TCON.7)T1溢出中断请求标志。置位复位方式与TF0相同。 R1(SCON.0)串行口接收中断请求标志。当串行口接收器收到一个串行帧,R1=1。CPU响应R1中断,硬件并不清除R1,R1必须由软件清0。 T1(SCON.1)串行口发送中断请求标志.将8位数据写入SBUF后,发送完一个串行帧,T1=1.CPU响应T1中断,硬件并不清除T1,T1必须由软件清0. 各中断源对应的矢量地址如下: 外部中断0:0003H 定时器 T0:000BH 外部中断:0013H 定时器 T1:001BH 串行
18、口接收和发送:001BH24. 8031单片机需要外接程序存储器,实际上它还有多少条I/O线可以用?当使用外部存储器时,还剩下多少条I/O线可用?答:8031系统必须外接程序促成器,原则上说,P0和P2口要用作数据和地址总线,所以只有P1和P3口可用作I/O口,共16条I/O线。在使用外部存储器时,除了占用P0和P2口外,还需要用P3口RD(P3.7)和WR(P3.6)两条控制线,所以这种情况下就只剩下14条I/O线可用了。25单片机有哪几个特殊功能寄存器?各在单片机的哪些功能部件中?答:8051单片机内部有21个特殊功能寄存器,在物理上是分散在片内各功能部件中,在数学上把它们组织在内部数据存
19、储器地址空间80HFFH中,以便能使用统一的直接寻址方式来访问。这些特殊功能寄存器颁在以下各个功能部件中:CPU:ACC、B、PSW、SP、DPTR(由DPL和DPH两个8位寄存器组成);中断系统:IP、IE;定时器/计数器:TMOD、TCOM、TL0、TH0、TL1、TH1;并行I/O口:P0、P1、P2、P3;串行口:SCON、SBUF、PCON268031的扩展储存器系统中,为什么P0口要接一个8位锁存器,而P2口却不接?答:这是因为P0口是扩展储存器系统的多路低8位地址和数据总线,在访问外部存储器时,P0口分时用作输出外部储存器低8位地址和传送数据,为了在整个访问外部存储器期间,对外部
20、存储器存在着有效的低8位地址信号,所以P0口需要外接一个地址锁存器。ALE信号就是用来把P0口输出的地址字节锁存在这个外接的锁存器中,再从锁存器输出外部存储器的低8位地址。而P2口只用作扩展存储器系统的高8位地址线,并在整个访问外部存储器期间不变,所以不必外接地址锁存器。27简述可编程并行接口8255 A的内部结构?答:8255 A的内部结构由三部分组成:总线接口部分,内部逻辑部分,外部接口部分。总线接口部分 其中有数据总线驱动器,读/写控制逻辑内部逻辑部分 由A组和B组控制电路。外部接口部分 该部分有3个8位并行I/O端口,即A口、B口和C口。28.设内部RAM(30H)=5AH,(5AH)
21、=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何? MOV R0,#30H ;R0=30H MOV A,R0 ;A=5AH MOV R1,A ;R1=5AH MOV B,R1 ;B=5AH MOV R1,P1 ;(5AH)=7FH MOV A,P1 ;A=7FH MOV 40H,#20H ;(40H)=20H MOV 30H,40H ;(30H)=20H解:每一条指令执行后的结果如注释字段所标。最后结果为:R0=30H,R1=5AH,A=7FH,B=5AH,P1=7FH,(30H)=20H,(4
22、0H)=20H,(5AH)=7FH。29. 简述可编程并行接口8255 A的内部结构?答:8255 A的内部结构由三部分组成:总线接口部分,内部逻辑部分,外部接口部分。(1)总线接口部分 其中有数据总线驱动器,读/写控制逻辑(2)内部逻辑部分 由A组和B组控制电路。(3)外部接口部分 该部分有3个8位并行I/O端口,即A口、B口和C口。30. 单片机有哪几个特殊功能寄存器?各在单片机的哪些功能部件中?答:8051单片机内部有21个特殊功能寄存器,在物理上是分散在片内各功能部件中,在数学上把它们组织在内部数据存储器地址空间80HFFH中,以便能使用统一的直接寻址方式来访问。这些特殊功能寄存器颁在
23、以下各个功能部件中:(1)CPU:ACC、B、PSW、SP、DPTR(由DPL和DPH两个8位寄存器组成);(2)中断系统:IP、IE;(3)定时器/计数器:TMOD、TCOM、TL0、TH0、TL1、TH1;(4)并行I/O口:P0、P1、P2、P3;(5)串行口:SCON、SBUF、PCON。单片机编程复习题1某单片机控制系统有8个发光二极管。试画出89C51与外设的连接图并编程使它们由右向左轮流点亮。答: 图 (5分) 构思 (3分)MOV A,#80H (1分)UP:MOV P1,A (1分)RR A (2分)SJMP UP (1分)2某控制系统有2个开关K1和K2,1个数码管,当K1
24、按下时数码管加1,K2按下时数码管减1。试画出8051与外设的连接图并编程实现上述要求。答:图 (5分) 构思 (3分)程序(4分)ORG 0000HLJMP MAINORG 0003HLJMP AINT0ORG 0013HLJMP BINT1MAIN: MOV IE,#83HSETB IT0SETB IT1MOV R0,#00HMOV DPTR,#TABUP: MOV A,R0MOVC A,A+DPTRMOV P1,ASJMP UPAINT0: INC R0CJNE R0,#10,AINT01MOV R0,#0AINT01: RETIBINT1: DEC R0CJNE R0,#0FFH,BI
25、NT11MOV R0,#9BINT11: RETI3.已知在累加器A中存放一个BCD数(9),请编程实现一个查平方表的子程序。SQR:1NC A MOVC A,A+PC RET TAB:DB 0,1,4,9,16 DB 25,36,49,64,814.请使用位操作指令实现下列逻辑操作: BIT=(P1.0)(11HCY)ORL C,11H MOV 12H,C MOV C,P1.0 ORL C,/10H ANL C,12H MOV BIT,C RET5.已知变量X存于VAR单元,函数值Y存于FUNC单元,按下式编程求Y值。Y= MOV A,VAR CJNE A,#0,COMP SJMP RES
26、;x=0,Y=0 COMP:JNC POSI ;x0,Y=1 MOV A,#0FFH ;x0,Y=-1 SJMP RES POSI:MOV A,#01H RES:MOV FUNC,A RET6. 已知在R2中存放一个压缩的BCD码,请将它拆成二个BCD字节,结果存于SUM开始的单元中(低位在前)。MOV R0,#SUM MOV A,R2 ANL A,#OFH MOV R0,A ;存低字节BCD MOV A,R2 ANL A,#0F0H SWAP A 1NC R0 MOV R0,A ;存高字节BCD RET7. 将存于外部RAM 8000H开始的50H数据传送0010H的区域,请编程实现。MOV
27、 DPTR,#8000H MOV R0,#10H MOV R2,#50H LOOP:MOVX A,DPTR ;取数 MOVX R0,A ;存数 1NC DPTR 1NC R0 DJNZ R2,LOOP RET8. 请将片外RAM20H-25H单元清零 MoV R0,#20H MOV R7,#06H CLR A LOOP:MOVX R0,A INC R0 DJNZ R7,LOOP 9.请将ROM3000单元内容送R7MOV DPTR, #3000H CLR A MOVC A,A+DPTR MOV R7,A 10.已知一MCS51单片机系统的片内RAM 20H单元存放了一个8位无符号数7AH,片外
28、扩展RAM的8000H存放了一个8位无符号数86H,试编程完成以上两个单元中的无符号数相加,并将和值送往片外RAM的01H、00H单元中,同时将所编写程序运行完成后的数据和状态添入下表中给出的PSW的有关位以及寄存器A、DPTR和RAM单元中。 CY A DPTR 片外01H 片外00H 片外8000H CY A DPTR 片外01H 片外00H 片外8000H 0 01H 8000H 0lH 00H 86H MOV DPTR,#8000H ;加数单元地址送DPTR MOVX A,DPTR ;取加数之一 ADD A,20H ;两数相加 MOV R0,#00H ;和值的低位送片外00H单元 MO
29、Vx R0,A INC R0 CLR A ;计算和值的高位 ADDC A,#00H MOVx R0,A ;高位送片外01H单元 RET 编程要考虑将进位位的值作为结果的一部分取出来。采用其他编程方式也可以,但结果是不会改变的,和值100H 11.有一长度为10字节的字符串存放在8031单片机内部RAM中,其首地址为40H。要求将该字符串中每一个字符加偶校验位。(以调用子程序的方法来实现。)源程序如下:ORG1000HMOVR0,#40HMOVR7,#10NEXT:MOVA, ACALLSEPAMOVR0,AINCR0DJNZ ,NEXTSJMP$SEPA:ADDA,#00H PSW.0,SRE
30、TORLA, SRET: R0 R7 JNB #80H RET12.从内部RAM30H单元开始,有10个单字节数据。试编一个程序,把其中的正数、负数分别送40H和50H开始的内部RAM单元。(10分)MOVR0,#30HMOVR1,#40HMOVA,#50HMOVR7,#10LOOP:MOV20H,R0JB20H.7,FSHUZSHU:MOV R1,20HINCR1SJMPNEXTFSHU:XCHA,R1MOVR1,AXCHA,R1INCANEXT:DJNZR7,LOOPSJMP$13.将20H单元清零MOV 20H,#00H 或 CLR A MOV 20H, A14.将片外RAM2000H中
31、的低字节与片内20H中的低字节交换。MOV DPTR,#2000H XCHD A,R0 MOV R0,#20H MOVX DPTR,A MOVX DPTR,A 15.已知某端口地址为2FFFH,将片内RAM20H的内容写到该端口中。MOV A, 20H MOVX DPTR, #2FFFHMOVX DPTR, A16.把DPTR的内容压入堆栈PUSH DPHPUSH DPL 17.将内部RAM20H为首的16个单元的8位无符号数排序写出程序,并作适当注释 SORT: MOV R0, #20H MOV R7,#07H CLR TR0 ;交换标志位复位 LOOP: MOV A,R0 MOV 2BH,
32、 A INC R0 MOV 2AH, R0 CLR C SUBB A, R0;比较前后两个数 JC NEXT ; MOV R0, 2BH DEC R0 MOV R0, 2AH INC R0 SETB TR0 ;置交换标志位有效 NEXT: DJNZ R7, LOOP JB TR0, SORT;若交换标志位有效,继续进行 HERE: SJMP $18.阅读下列硬件图,补齐连接线,并回答问题:(1) ALE、PSEN、WR、RD的功能 ALE作地址锁存的选通信号,以实现低八位地址的锁存,PSEN信号作扩展程序存储器的读选通信号 WR、RD作为扩展数据存储器和I/O端口的读写选通信号。 (2)图中各
33、芯片的功能 74LS373:地址锁存器,用来锁存P0口发送的地址低8位 2764 :容量为8KB的程序存储器(EPROM)用来存储程序 6264 :容量为8KB的数据存储器(RAM)用来存储数据 8031:不含程序存储器的8位单片机芯片,是不带I/O设备的微型计算机。(3)2764、6264的地址范围(P2.5取”0”)2764:8000H9FFFH 6264: 4000H5FFFH19.数据块传送,将RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。 ORG 1000H MOV R7,#20HMOV R0, #30HMOV R1,#60HLOOP:MOV
34、A,R0 MOV R1,A INC R0 INC R1 DJNZ R7, LOOP SJMP $ END20.将4个单字节数放片内30H33H,它们求和结果放在片内40H,41H单元。ORG 1000HMOV R7,#04HMOV R0,30HCLR AMOV 41H,ALOOP: ADD A,R0 JNC NEXTINC 41H NEXT:INC R0DJNZ R7,LOOP MOV 40H,A SJMP $ END21.RAM中40H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R2中。ORG 2200HMOV A,40HMOV B
35、,#64HDIV ABMOV R2,AMOV A,#0AHXCH A,BDIV ABSWAP AORL A,BSJMP $ END22.编程序将片内40H-46H单元内容的高4位清零,保持低4位不变。 ORG 1000H MOV R7,#07HMOV R0,#40HLOOP:MOV A,R0 ANL A,#0FH MOV R0,A INC R0 DJNZ R7,LOOP SJMP $END23.将31H、32H单元与41 H、40H单元的双字节十进制无符号数相加,结果存入32H,31H,30H单元。即(31H)(30H)+(41H)(40H) 32H、31H、30H。输入程序参考程序 MOV
36、R0,#30HMOV R1,#40HMOV R2,#02HCLR CL1: MOV A,R0ADDC A,R1DA AMOV R0,AINC R0INC R1DJNZ R2,L1CLR AMOV ACC.0,CMOV R0,A在31H、30H单元存入加数如3018,在41H,40H单元存入被加数如8975。(3)输入程序首地址,(从处为2000H),然后开始单步或断点运行该段程序。(4)运行过程中检查数据的变化,并在最后检查(32H)= ,(31H)= , (30H)= 。24.编程实现逻辑运算:Q=(U *(V+W)+X.Y)+Z。设UZ的位地址为00H05H.Q的位地址为07H。实际中UZ
37、可以是外部输入端口信号或软件设定的一些控制位。 实习步骤:(1)输入所编程序。 MOV C,01H O RL C,02H ANL C,00H MOV F0,C ;暂存U*(V+W)的值 MOV C,03H ANL C,/04H ORL C,F0 ORL C,/05H MOV 07H,C ; 保存结果(2)部RAM20H单元(位地址00H07H的位在20H单元)输入某个数据(注意此时各位的状态并做好记录)。(3)单步或断点运行所编程序,逐步检查Cy及个数据的变化情况(注意检查时也按字节读出,再观察其相应位)。(4)验证运行结果(5)改变20H单元的置数,重做。25.将片内RAM2单元(如20H)
38、的内容分成两段,并将它们分别存入2单元和3单元。(高位清零)。输入程序。参考程序:MOV R0,#21HMOV A,20HANL A,#0FHMOV R0,AINC R0MOV A,20HSWAP AANL A,#0FHMOV R0在某单元(如20H)存入待分字的某数(如5BH)。单步或带断点运行该段程序。运行过程中注意检查程序的变化,并在最后检查(21H)= , (22H)= 。26.编程实现字符串长度统计:设在单片机内RAM中从STR单元开始有一字符串以ASC II码存放,该字符串以$结束,试统计该字符串的长度,其结果存于LON单元。 (1)输入所编程序 START: CLR A ;计数单
39、元清零 MOV R0,#STR LOOP: CJNE R0,#24H,NEXT ;判断字符串是否结束 SJMP COMP NEXT: INT A INC R0 SJMP LOOP COMP: MOV LON,A ;将长度存入LON单元 SJMP $ (2)在以STR为首的地址内部RAM单元开始存放待统计长度的数据块(自设),并以24作为数据块的结束标志。(3)单步或断点运行所编程序,注意观察每次转移后PC及统计长度单元LON的变化,并做好记录。(4)验证运行结果。(5)改变数据块长度,重做。27.编程实现下列逻辑运算Z=(M+N)*(O+P)。设M,N,O,P为片内RAM30H33H单元,输出结果单元Z地址为34H。将下列程序输入到实习装置参考程序START:MOV A,MXRL A