资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机原理及应用习 题 解 答,第一章 绪 论,练习题,1,:,(,1,)将下列十进制数转换为二进制数,51D=110011B,67D=1000011B,35D=100011B,(,2,)将下列二进制数转换为十进制或十六进制,11111010B=250D=FAH,10101010B=170D=AAH,10000110B=134D=86H,11100110B=230D=E6H,11101110B=238D=EEH,练习题,2,:,(,1,)写出,10100101,与,11110000,的加法运算结果以及逻辑与、逻辑或、逻辑异或和逻辑与非的结果。,10100101,11110000,110010101,10100101,11110000,10100000,10100101,11110000,11110101,10100101,11110000,01010101,与非结果 ,01011111,(,2,)写出,10101010,的逻辑非运算结果。,10101010,的逻辑非运算结果,01010101,(有,0,为,0,,全,1,为,1,),(有,1,为,1,,全,0,为,0,),(相同取低,不同取高),(相同取反,不同取高),练习题,3,:,(,1,)已知原码如下,写出各数的反码和补码。,01100110,反,01100110,,,01100110,补,01100110,10100110,反,11011001,,,10100110,补,11011010,10000010,反,11111101,,,10000010,补,11111110,11111111,反,10000000,,,11111111,补,10000001,11111100,反,10000011,,,11111100,补,10000100,(,2,)已知,X,补,,求,X,的真值。,X,补,01001010,,,X,真值为:,74D,X,补,11001011,,,X,真值为:,53D,X,补,01011011,,,X,真值为:,91D,X,补,10010110,,,X,真值为:,106D,练习题,4,:,对于一个有,16,条地址线和,8,条数据线的,ROM,存储器,其存储容量为多大?,存储容量为:,2,16,65536,64KB,,,地址范围为:,0000H,FFFFH,第二章,MCS-51,系列单片机的结构及原理,练习题,1,:,程序执行前,F0=0,,,RS1RS0=00B,,问机器执行如下程序后,,PSW,中各位状态是多少?,(,1,),MOV A,,,#79H,ADD A,,,#58H,PSW,:,44H,(,2,),MOV A,,,#7FH,ADD A,,,#47H,PSW,:,44H,第三章,MCS-51,指令系统,练习题,1,:,1,、区别下列指令的寻址方式:,(,1,),MOV A,,,00H,;,立即寻址,MOV A,,,00H,;,直接寻址,(,2,),MOV A,,,R0,;,寄存器寻址,MOV A,,,R0,;,寄存器间接寻址,(,3,),MOV A,,,R0,;,寄存器间接寻址,MOVC A,,,A,DPTR,;,变址寻址,练习题,2,:,1,、设(,R6,),30H,,(,70H,),40H,,(,R0,),50H,,(,50H,),60H,,(,R1,),66H,,(,66H,),45H,,写出指令执行后的执行结果和寻址方式。,MOV A,,,50H,;,(,A,),=60H,,直接寻址,MOV 50H,,,66H,;,(,50H,),45H,,直接寻址,MOV 66H,,,R0,;,(,66H,),60H,,寄存器间接寻址,MOV A,,,40H,;,(,A,),=40H,,立即寻址,MOV A,,,R0,;,(,A,),50H,,寄存器寻址,MOV R5,,,50H,;,(,R5,),60H,,直接寻址,2,、将片内,RAM30H,单元的内容送入累加器,A,中,写出相应的指令。,MOV A,,,30H,MOV R0,,,30H,MOV A,,,R0,3,、将片内,RAM30H,单元的内容送入片内,RAM50H,单元中,写出相应的指令。,MOV R0,#30H,MOV 50H,R0,MOV 50H,,,30H,MOV A,,,30H,MOV 50H,,,A,练习题,3,:,1,、设(,R0,),30H,,(,30H,),76H,,(,A,),35H,,分析下列各条指令执行的结果(单独看每条指令)。,XCH A,,,R0,;,(,A,),30H,,(,R0,),35H,XCH A,,,R0,;,(,A,),76H,,(,30H,),35H,XCH A,,,30H,;,(,A,),76H,,(,30H,),35H,XCHD A,,,R0,;,(,A,),36H,,(,30H,),75H,SWAP A,;,(,A,),53H,2,、试根据下列程序段,写出指令执行结束后,,R0,中的内容是什么?,MOV R0,,,72H,;,(,R0,),72H,XCH A,,,R0,;,(,A,),72H,SWAP A,;,(,A,),27H,XCH A,,,R0,;,(,R0,),27H,3,、设内部数据存储器,2AH,,,2BH,单元中连续存放有,4,个,BCD,码数符,试编写程序将这,4,个,BCD,码字符倒序排列。,a3 a2,a1 a0,a0 a1,a2 a3,法,:,MOV R0,,,#2AH,MOV A,,,R0,SWAP A,MOV R0,,,A,MOV R1,,,2BH,MOV A,,,R1,SWAP A,XCH A,,,R0,MOV R1,,,A,2AH,2AH,2BH,2BH,法,:,MOV A,,,2AH,SWAP A,MOV 2AH,,,A,MOV A,,,2BH,SWAP A,XCH A,,,2AH,MOV 2BH,,,A,练习题,4,:,1,、设(,20H,)(,48,),BCD,,(,21H,)(,69,),BCD,,作,BCD,码相加,写出加法程序,并对其工作过程进行分析。,解:,MOV A,,,20H,ADD A,,,21H,DA A,0100 1000B,0110 1001B,1011 0001B,0000 0110B,1011 0111B,0110 0000B,10001 0111B,(,117BCD,),2,、已知两个,8,位无符号乘数分别放在,30H,和,31H,单元中,试编写程序,将它们相乘并把积的低,8,位放入,32H,单元,高,8,位放入,33H,单元。,解:,MOV R0,,,30H,MOV A,,,R0,INC R0,MOV B,,,R0,MUL AB,INC R0,MOV R0,,,A,INC R0,MOV R0,,,B,练习题,5,:,1,、已知(,A,),83H,,(,R0,),17H,,(,17H,),34H,,写出执行下列程序后,A,中内容。(看成整段程序),ANL A,,,17H,;,(,A,),=03H,ORL 17H,,,A,;,(,17H,),37H,,(,A,),03H,XRL A,,,R0,;,(,A,),34H,CPL A,;,(,A,),CBH,2,、已知(,A,),40H,,试问通过何种移位方式可以使,A,中内容乘以,2,或除以,2,?,解:(,A,),40H,01000000B,则乘以,2,:左移一位,RL A,;(,A,),10000000B,80H,除以,2,:右移一位,RR A,;(,A,),00100000B,20H,练习题,6,:,1,、设,X,、,Y,、,Z,、,F,均为位单元地址,试利用位操作指令,模拟右图电路功能。,解:,F,(,X,),(,Y,),+,(,Y,),(,Z,),MOV C,,,X,ANL C,,,Y,MOV F,,,C,MOV C,,,Y,ORL C,,,Z,ORL C,,,F,CPL C,MOV F,,,C,第四章 汇编语言程序设计,练习题,1,:,1,、下列程序段经汇编后,从,1000H,开始的各有关存储单元的内容是什么?,ORG 1000H,TAB1 EQU 1234H,TAB2 EQU 3000H,DB “START”,DW TAB1,,,TAB2,,,70H,从,1000H,单元开始,分别存放:,S,、,T,、,A,、,R,、,T,的,ASCII,码和,TAB1,、,TAB2,和,70H,的字内容。即:,1000H ,100AH,53H,、,54H,、,41H,、,52H,、,54H,、,12H,、,34H,、,30H,、,00H,、,00H,、,70H,。,2,、在下面程序中,,3,个标号所代表的意义是什么?,ORG 1000H,FIRST,:,DB 01H,,,02H,,,03H,,,04H,SECOND,:,DW 0001H,,,0002H,THIRD,:,DS 10H,END,解:,FIRST,:,1000H,SECOND,:,1004H,THIRD,:,1008H,练习题,2,:,1,、已知(,40H,),35H,,(,41H,),20H,,阅读下列程序,说明程序功能的同时,写出相关寄存器的最后结果。,MOV R0,,,40H,MOV A,,,R0,INC R0,ADD A,,,R0,INC R0,MOV R0,,,A,CLR A,ADDC A,,,0,INC R0,MOV R0,,,A,指令功能是:,将,RAM,中,40H,和,41H,单元内容相加,送入,42H,单元,相加后产生的进位位,C,内容送入,43H,单元。,2,、阅读程序,说明程序功能,并写出相关寄存器及片内,RAM,单元最后结果。,MOV A,,,61H,MOV B,,,02H,MUL AB,ADD A,,,62H,MOV 63H,,,A,CLR A,ADDC A,,,B,MOV 64H,,,A,指令功能是:,将,RAM,中,61H,单元内容左移,1,位后,与,62H,单元内容相加,送入,63H,单元中,相加后的进位位送入,64H,单元中。,练习题,3,:,1,、设有,20,个单字节数,存放在片内,RAM,从,30H,开始的单元,求累加和(考虑进位位),将结果存放在,60H,和,61H,单元中。(高位字节在高地址、低位字节在低地址),解:,ORG 2000H,START:MOV R0,#30H,MOV R7,#14H,MOV 60H,#00H,MOV 61H,#00H,LOOP:MOV A,R0,ADD A,60H,MOV 60H,A,JNC NEXT,INC 61H,NEXT:INC R0,DJNZ R7,LOOP,SJMP$,END,说明:循环次数已知,可采用循环次数减,1,来判断循环是否结束。,2,、设一个无符号的数据块,起始地址为片内,RAM3000H,单元,其长度未知,只知道结束字节为,00H,。求这个数据块中的最大值,结果存入片内,RAM,的,MAX,单元。,解:,ORG 1000H,START,:,MOV DPTR,,,3000H,MOV MAX,,,00H,LOOP,:,MOVX A,,,DPTR,JZ QUIT,;,(,A,),0,时,转移,CJNE A,,,MAX,,,NEXT,;,(,A,)(,MAX,),转移,NEXT,:,JC DONE,;,C,1,时,转移,MOV MAX,,,A,DONE,:,INC DPTR,SJMP LOOP,QUIT,:,SJMP$,END,说明:本题目以(,A,)中内容是否为,00H,来控制循环的结束。,第五章 中断系统及其应用,练习题,1,:,1,、试编写一段对中断系统进行初始化的程序,使之允许,INT0,、,INT1,、,T0,和串行口中断,且使串行口中断为高优先级中断,,INT0,为电平触发方式,,INT1,为边沿触发方式。,解:初始化程序包括对与中断相关的,4,个控制寄存器的设置。,法:,字节操作指令,MOV IE,,,97H,;,MOV IP,,,10H,;,ANL TCON,,,0FEH,;,设定中断允许寄存器为,10010111B,,即打开,INT0,、,INT1,、,T0,、串行口中断及总中断,设定中断优先级寄存器为,00010000B,,即使串行口中断为高优先级中断,设定,INT0,为电平触发方式,,INT1,为边沿触发方式,法,:位操作指令,SETB EA,;,SETB ES,;,SETB EX1,;,SETB EX0,;,SETB ET0,;,SETB PS,;,CLR IT0,;,SETB IT1,;,打开中断总允许位,允许串行口中断,允许外部中断,INT1,中断,允许外部中断,INT0,中断,允许定时,/,计数器,T0,溢出中断,设定串行口中断为高优先级,设定外部中断,0,为电平触发方式,设定外部中断,1,为边沿触发方式,本章结束!谢谢大家!,
展开阅读全文