微控制器技术应用试卷答案.docx
单片机原理及应用工程式教程12345678自测题答案邹显圣 主编目 录绪论2工程一3工程二3工程三3工程四3工程五3工程六3工程七3工程八3工程九3绪论1单片机开展分为哪几个阶段?各阶段的特点是什么?答:共分为四个阶段,分别如下:1第一代单片机19751976年。这个时期生产的单片机其特点是制造工艺落后,集成度低,而且采用双片形式。2第二代单片机19761978年。其性能低、品种少、寻址范围有限、应用范围也不广。3第三代单片机19791982年。存储容量大、寻址范围广,而且中断源、并行I/O口、定时器/计数器的个数都有了不同程度的增加,同时它还新集成了全双工的串行通信接口电路;在指令系统方面普遍增设了乘除法和比拟指令。4第四代单片机1983年以后。出现了工艺先进、集成度高、内部功能更强和运算速度更快的16位单片机,它允许用户采用面向工业控制的专用语言,如C语言等。2AT89系列单片机分为几类?各类的主要技术特点是什么?都有哪些型号?答:型 号AT89C51AT89C52AT89C1051AT89C2051AT89S8252档次标准型低档型高档型Flash/KB48128片内RAM/KB12825664128256I/O条3232151532定时器/个23123中断源/个68369串行口/个11111M加密/级33223片内振荡器有有有有有E2PROM/KB无无无无23微型计算机中常用的数制有几种?计算机内部采用哪种数制?答:二进制、八进制、十进制和十六进制。内部采用二进制4十六进制数能被计算机直接执行吗?为什么要用十六进制数?答:不能。引入十六进制数是为了表示或者书写上的方便,因为一位十六进制数可以代表四位二进制数。5单片机的应用领域主要有哪些?答:智能化产品、智能化接口、智能化测控系统、智能化仪表6将以下十进制数转换为二进制数和十六进制数。1125D 20.525D 3121.678D 447.945D答:11111101B、7DH20.1000011B、0.86H31111001.101011B、79.ACH4101111.1111B、2F.F0H7将以下二进制数转换为十进制数和十六进制数。110110101B 20.101100100B 30.1010B 41101.0101B答:1181D、B5H20.695D、0.B2H30.625D、0.AH413.3125D、D.5H8将以下十六进制数转换为二进制数和十进制数。1ABH 228.07H 3ABC.DH 40.35FH答:110101011B、171D2101000.00000111B、40.027D3101010111100.1101B、2748.8125D40.001101011111B、0.875D9在8位二进制计算机中,正、负数如何表示?答:8位二进制的正数其最高位为“0;负数最高位为“110写出以下各十进制数的原码、反码和补码。1+28D 2+69D 3-125D 4-54D答:1原码:00011100B;反码:00011100B;补码:00011100B2原码:01000101B;反码:01000101B;补码:01000101B3原码:11111101B;反码:10000010B;补码:10000011B4原码:10110110B;反码:11001001B;补码:11001010B11写出以下各十进制数的BCD码。134D 259D 31983D 4270D答:1110100B2010101001B31100110000011B4100110000B工程一1AT89C51单片机的信号有何功能?答:引脚用于决定CPU从哪个ROM中读取程序,当=0时,CPU只从外部ROM中读取程序;当=1时,CPU先从内ROM中读取程序,当地址超过0FFFH时,继续从外部ROM中读取程序。2AT89C51单片机只用内部flash存储器时,引脚应该如何处理?答:应接在电源端上,即保持引脚为高电平。3AT89C51单片机的P3P0口各有什么功能?答:P3P0均为8位并行I/O口,当进展外部扩展时,P3口兼作控制总线,提供系统的各种控制信号;P2口用于提供最多高8位地址总线;P1口为纯粹的数据口;P0口分时复用,兼作低8位地址总线和数据复用端口。4简述AT89C51单片机的存储器组织构造和内部RAM的地址空间分配。答:AT89C51单片机的存储器组织构造采用哈弗构造;内部RAM地址空间分配如下:00H1FH为存放器区;20H2FH为位寻址区;30H7FH为用户RAM区,即堆栈区;80HFFH为特殊功能存放器区。5内部RAM的低128单元划分为哪三个主要局部?各局部的主要功能是什么?答:存放器区、位寻址区、用户RAM区;各局部功能为:存放器区:用于存储程序执行过程中的存放器中的数据;位寻址区:即可以字节寻址,又可以位寻址,主要用于位寻址;用户RAM区:用于存储堆栈过程中的各项数据。6位地址7CH及字节地址7CH如何区别?位地址7CH具体在内部RAM中的什么位置?答:存储容易不一样,位地址只能存储一位二进制数据,而字节地址可以存储八位二进制数据;位地址7CH位于字节地址2FH.4。7AT89C51单片机有哪些特殊功能存放器?这些特殊功能存放器分别在单片机中哪些功能部件中?答:见表2-3,主要包括ACC、B、PSW、P0等;见表2-3,分别位于累加器、B存放器、中央处理器、0号并行I/O口等。8特殊功能存放器中哪些存放器可以位寻址?它们的字节地址是什么?答:存放器符号地址*ACCE0H*BF0H*PSWD0H*IEA8H*IPB8H*P080H*P190H*P2A0H*P3B0H*SCON98H*TCON88H9程序计数器PC的功能和特点是什么?答:PC的功能是ROM中的程序指针,用于表示ROM中程序的存放位置;其特点是:PC为十六位二进制,但其本身无地址,不能对其赋值,也不能读取PC值。10PC及DPTR各有哪些特点?有何异同?答:PC为程序指针,DPTR为数据指针;一样为:均为十六位二进制,不同点是PC不能赋值,而DPTR可以赋值。11AT89C51单片机是如何确定和改变当前工作存放器区的?答:改变当前工作存放器区主要由PSW中的RS1和RS0决定,具体如下:RS1RS0存放器组R0R7地址00组000H07H01组108H0FH10组210H17H11组318H1FH12AT89C51单片机复位后,CPU使用了哪一区工作存放器?工作存放器R0R7对应的单元地址是什么?答:AT89C51单片机复位后,CPU使用了0号区工作存放器,R0R7为00H07H。13程序状态字存放器PSW的作用是什么?简述各位的作用是什么?答:程序状态字PSW是一个8位存放器,用于存放程序运行的状态信息;各位的作用如下:位序PSW7PSW6PSW5PSW4PSW3PSW2PSW1PSW0位标志CYACF0RS1RS0OV/PCY:进位标志位。AC:辅助进位标志位。F0:用户标志位。RS1和RS0:存放器组选择位。用于设定通用存放器的组号。OV:溢出标志位。P:奇偶标志位。14在AT89C51单片机ROM空间中,0003H、000BH、0013H、001BH、0023H有什么特殊用途?答:分别为外部中断0、定时中断0、外部中断1,定时中断1和串行中断的入口地址。15AT89C51单片机中XTAL1和XTAL2的功能是什么?采用外部时钟源的情况下,如何处理这两个引脚?答:AT89C51单片机中XTAL1和XTAL2的功能是单片机的时钟输入和输出引脚;当采用外部时钟时,XTAL1引脚接地, XTAL2接外部时钟源。16什么是时钟周期、机器周期和指令周期?答:时钟周期即石英晶体振荡周期,等于1/fosc、机器周期为时钟周期的12倍,即1机器周期=12时钟周期;指令周期为执行一条单片机指令所需要的时间,根据指令类型的不同,一指令周期可以等于1或2或4机器周期。17AT89C51单片机所使用的晶振频率为6MHz,时钟周期,机器周期为多少?答:时钟周期为微秒;机器周期为2微秒。18AT89C51单片机运行出错或出现死循环,如何摆脱困境?答:对单片机应用系统进展复位操作。19AT89C51单片机复位后,PC、A、PSW、SP、P3P0的状态各是什么?复位后内部RAM中的数据有何影响?答:PC=0000HA=00HPSW=00HSP=07HP0P3=FFH复位后内部RAM中的数据依然被保存,但某些特殊功能存放器中的数据可能有所改变。工程二1什么是计算机的指令和指令系统?答:指令是用于指导计算机工作的命令;所有的计算机所能够执行指令的集合称为指令系统。2简述AT89C51汇编指令格式。答:标号:操作码操作数;注释。3简述8051的寻址方式和所能涉及的空间。答:共有七种寻址方式,分别为:存放器寻址、立即寻址、存放器间接寻址、直接寻址、相对寻址、变址寻址和位寻址。分别对应的空间是:内部RAM、ROM、内部RAM和外部RAM;内部RAM、ROM、ROM和内部RAM的位地址空间。4要访问特殊功能存放器和片外数据存储器,应采用哪些寻址方式?答:对于特殊功能存放器的访问只能采用直接寻址方式,对于片外数据存储器的访问要采用存放器间接寻址方式。5编写程序,把片外RAM从2000H开场存放的8个数传送到片内30H开场的单元中。答:MOVDPTR,#2000HMOVR0,#30HMOVR2,#08HLOOP:MOVXA,DPTRMOV R0,AINCDPTRINCR0DJNZR2,LOOPSJMP$6以下程序段经汇编后,从1000H开场的各有关存储单元的内容是什么?ORG 1000HTAB1EQU1234HTAB2EQU3000HDB “STARTDWTAB1,TAB2,70H答:如下表所示。地址数据1000H53H1001H54H1002H41H1003H52H1004H54H1005H12H1006H34H1007H30H1008H00H1009H00H100AH70H7查表指令是在什么空间上的寻址操作?答:查表指令是在ROM空间上进展的寻址操作工程三1指出以下程序每一条指令的执行结果。MOVA,#0F0H;答:A=F0HCPLA;答:A=0FHANL30H,#00H;答:30H=00HORL30H,#BDH;答:30H=BDHXRLA,#44H;答:A=4BH2指出以下程序每一条指令的执行结果假设CY=1。MOVA,#0AAH;答:A=AAHCPLA;答:A=55HRLCA;答:A=ABH,C=0RLA;答:A=57HCPLA;答:A=A8HRRCA;答:A=54H,C=0RRA;答:A=2AH3假设A=7AH,分别执行以下指令后,A的值是多少?1ANLA,#0FFH;答:A=7AH2ORLA,#0FFH;答:A=FFH3ANLA,#00H;答:A=00H4ORLA,#00H;答:A=7AH5XRLA,#0FFH;答:A=85H6XRLA,#00H;答:A=7AH4设A=83H,R0=17H,17H=34H,分析当执行完下面指令段后累加器A、R0、17H的值各是多少?ANLA,#17HORL17H,AXRLA,R0CPLA答:A=CBH、R0=17H、17H=37H5写出完成以下要求的指令。1累加器A的低2位清0,其余位不变。答:ANLA,#FCH2累加器A的高2位置1,其余位不变。答:ORLA,#C0H3累加器A的高4位到反,其余位不变。答:XRLA,#F0H4累加器A的第0位、2位、4位、6位取反,其余位不变。答:XRLA,#55H6试分析以下程序段,当程序执行完毕后,位地址00H、01H中的内容将为何值?P1口的8条I/O线为何状态?CLRCMOVA,#66HJCLOOP1CPLCSETB01HLOOP1:ORLC,ACC0JBACC2,LOOP2CLR00HLOOP2:MOVP1,A答:P1=66H,位地址00H保持原值,位地址01H的内容为“1。7阅读下面程序,分析执行结果。MOVA,#67H;答:A=67H=0110,0111BSETBACC7;答:ACC7=1,A=1110,0111BMOVC,ACC2;答:C=1CPLA;答:A=18H=0001,1000BMOVACC6,C;答:ACC.6=1,A=0101,1000B=58HCLRC;答:C=0SETBACC0;答:ACC.0=1,A=0101,1001B=59HMOVACC4,C;答:ACC.4=0,A=0100,1001B=49H8编程实现把外部RAM中8000H开场的连续30个字节的数据传送到外部RAM中8100H开场的连续单元中。答:MOVR4,#14HMOVDPTR,#8000HPUSHDPHPUSHDPLMOVDPTR,#8100HMOVR2,DPHMOVR3,DPLLOOP:POPDPLPOPDPHMOVXA,DPTRINCDPTRPUSHDPHPUSHDPLMOVDPL,R3MOVDPH,R2MOVXDPTR,AINCDPTRMOVR2,DPHMOVR3,DPLDJNZR4,LOOPSJMP$9编程统计从外部RAM的2000H开场的连续100个单元中“0”的个数,并将结果存放于R2中。答:MOVR2,#64HMOVR3,#00HMOVDPTR,#2000HLOOP1:MOVXA,DPTRCJNEA,#00H,LOOPINCR3LOOP:INCDPTRDJNZR2,LOOP1SJMP$10将内部RAM的30H单元中的中间4位、31H的低2位、32H的高2位按顺序排成一个新的字节,存入33H单元中。答:MOVA,30HANLA,#3CHMOVB,AMOVA,31HANLA,#03HORLA,BMOVB,AMOVA,32HANLA,#C0HORLA,BMOV33H,A11将DPTR中间8位取反,其余位不变。答:MOVA,DPLXRLA,#F0HMOVDPL,AMOVA,DPHXRLA,#0FHMOVDPH,A12试编写程序完成以内部RAM的30H为首地址的20个数据传送,目的地址为外部RAM以3000H为首地址的区域。答:MOVR0,#30HMOVDPTR,#3000HMOVR2,#14HLOOP:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR2,LOOPSJMP$13试编写条件转移程序,当存放器R3的内容分别满足以下条件时能转移到LOOP处执行程序,条件不满足时停机。1R315 2R315 3R315 4R315答:1CJNER3,#0FH,LOOP1SJMPLOOPLOOP1:JC LOOPSJMP$LOOP:2CJNER3,#0FH,LOOP1SJMP$LOOP1:JNC LOOPSJMP$LOOP:3CJNER3,#0FH,LOOP1SJMPLOOPLOOP1:JNC LOOPSJMP$LOOP:4CJNER3,#0FH,LOOP1SJMP$LOOP1:JC LOOPSJMP$LOOP:14试编写程序将内部RAM以40H为首地址的数据块传送到以BUF为起始地址的内部RAM区域,直到遇到所传送的数据不为0时停顿。答:MOVR0,#40HMOVR1,#BUFLOOP:MOVA,R0JNZLOOP1INCR0INCR1SJMPLOOPLOOP1:SJMP$15编写一程序将数00H存入内部RAM的20H单元,存入后,通过读操作来检查是否确实存入?然后再将数FFH存入内部RAM的21H单元,检查是否确实存入。如果两次检查结果都正确,将内部RAM的60H单元置00H,否那么置11H。答:MOV20H,#00HMOVA,20HCJNEA,#00H,LOOPMOV21H,#FFHMOVA,21HCJNEA,#FFH,LOOPMOV60H,#OOHLOOP:MOV60H,#11HSJMP$16设内部RAM的60H单元有一个8位二进制数,该数8位中的某位为“1,编写程序检查“1在哪一位。如果“1在第0位,那么在内部RAM的30H单元写入数“00H, 如果“1在第1位,那么在内部RAM的31H单元写入数“01H,以此类推。答:MOVA,60HLOOP:JBACC.0,L0JBACC.1,L1JBACC.2,L2JBACC.3,L3JBACC.4,L4JBACC.5,L5JBACC.6,L6JBACC.7,L7SJMPLOOPL0:MOV30H,#00HSJMP$L1:MOV31H,#01HSJMP$L2:MOV32H,#02HSJMP$L3:MOV33H,#03HSJMP$L4:MOV34H,#04HSJMP$L5:MOV35H,#05HSJMP$L6:MOV36H,#06HSJMP$L7:MOV37H,#07HSJMP$工程四1算术运算指令包括如下指令:答:1不带进位的加法指令ADD;2带进位加法指令ADDC;3加1指令INC;4十进制调整指令DA ;带进位减法指令;减指令;乘法指令;除法指令。2BCD码进展加法运算后,为什么要进展十进制调整?答:因为码是用位二进制数表示一位十进制数,当两个码相加时,对应位相加超过十时,就应该有进位了,可用来表示它的数码是十六进制的,也就是说只有超过十六才能进位,这样就造成所对结果不是对应的码了。为了得到正确的码结果,所以要对加法运算的结果进展调整,且这条指令必须紧跟或指令使用,它不能用于十进制数减法的调整。3编程求外部RAM3000H、3001H单元数据的平均值,并传送给外部RAM的3002H单元。答:MOVDPTR,3000MOVXA,DPTRMOVR0,AINCDPTRMOVXA,DPTRADDA,R0MOVB,#02DIVABINCDPTRMOVXDPTR,A4写出下面这段程序的运行结果。MOVA,#79HMOV20H,#18HADDA,20HDAASWAPA答:运行结果为:A=79H。5根据以下要求写出指令序列。1求25×4的乘积,结果存入数据指针DPTR之中。2设计计算255÷12的程序,将商和余数分别保存在50H和51H。3判断内部RAM20H单元的内容,假设为正数程序转向2100H;假设为负数程序转向2200H;假设为0程序转向2300H。4A=192,编程求A及立即数88的和,将结果存入31H高位和30H低位单元。答:1MOVA,#25 MOVB,#4 MULAB MOVDPH,B MOV DPL,A 2MOV A,#255MOV B,#12DIV ABMOV 50H,AMOV 51H,B 3ORG0100HMOVA,20HJZL3JBACC.7 ,L2LJMPL1ORG2100HL1:ORG2200HL2:ORG2300HL3:END4MOV A,#192ADD A,#88JC L1MOV 30H,AMOV 31H,#00SJMP$L1:MOV 30H,AMOV 31H,#01END6编写程序段,实现两个8位无符号数的乘法程序,积存放在R2、R3中R2存放高位。答:MOVA,#78MOVB,#56MULABMOVR2,BMOVR3,AEND730H=17H,31H=38H,分析下面这段程序的运行过程,在每条语句右边的空格中写出在执行完该语句后相应单元的结果。MOVA,30HA= ADDA,31HA= DAAA= 答:1A= 17H 2A= 4FH 3A= 55H 8两个16位无符号数分别存放在内部RAM40H、41H和50H、51H中低位在低字节单元,编写程序段,实现两个16位数的减法程序,差存放在R6、R7中R6存放高位。答:MOVA,40HSUBB A,50H MOV R7,A MOV A,41H SUBB A,51H MOV R6,AEND工程五1什么是中断,采用中断方式有哪些优点?答:中断是计算机的CPU暂停正在运行的程序,转而执行提出中断的那个外部设备或事件的效劳程序即中断效劳程序,当效劳程序处理完毕后,CPU再回到原来的“断点继续原来的程序。优点:引入中断技术,解决了CPU及外设的速度匹配问题,提高CPU的运行效率,计算机具有中断功能后,还有如下优点:1分时处理功能2实时处理功能3故障处理功能2在AT89C51单片机系统中,有哪些中断源?响应这些中断的效劳程序入口地址分别是多少?怎样合理安排中断效劳程序?答:1有5个中断源,分别为:外部中断0、定时器T0、外部中断1、定时器T1、串行口中断。2 中断源 中断效劳程序入口地址外部中断0: 0003H定时器T0 : 000BH外部中断1: 0013H定时器T1 : 001BH串行口中断: 0023H由于各中断效劳程序的入口地址相隔仅8个单元,如果整个中断效劳程序的长度少于或等于8个字节,那么可以将这个中断效劳程序存放在从入口地址开场的8个单元中,但如果中断效劳程序的长度大于8个字节,那么通常在入口地址处安排一条转移指令,而转移指令要跳转的地址才开场真正存放中断效劳程序。3在单片机复位后,IP和IE为何值?如果当前单片机系统中只允许开放和T1中断源,且要求和T1为高级中断源,其余为低级中断源,怎样设置IP和IE的值?答:(1)单片机复位后,IP为XX000000B;IE为0X000000B(2)IP为:XXX01001B ;IE为:1XX01001B4定时器0和定时器1各有几种工作方式?简述之。答:定时器0有4种工作方式:方式0、方式1、方式2、方式3定时器1有3种工作方式:方式0、方式1、方式25单片机系统时钟频率为12MHz,假设要求定时时间分别为05ms、1ms、10ms,定时器0工作在方式0、方式1、方式2的情况下,定时初值TH0、TL0分别是多少?答:1方式0:定时0.5ms时: TH0=1EH; TL0=0CH;定时1ms时: TH0=1CH; TL0=18H;定时10ms时:采用定时1ms时的初值,循环10次。2方式1:定时0.5ms时:TH0=0FEH; TL0=0CH;定时1ms时:TH0=0FCH; TL0=18H;定时10ms时:TH0=0DAH; TL0=1CH;2方式2:定时0.1ms时:TH0=9CH; TL0=9CH;定时0.5ms时:采用0.1ms的初值,循环5次定时1ms时: 采用0.1ms的初值,循环10次定时10ms时: 采用0.1ms的初值,循环100次6要求将定时器T0和T1的外部信号输入断作为新增的二个外部中断请求信号,如何设置计数初值?答:TH0和TF0的初值均设置为FFH7要求在P1.5脚输出周期为15ms的方波,设单片机系统时钟频率为6MHz。试编写定时器初始化程序和中断效劳程序。答:定时器初始化程序:MOV TMOD, #01HMOV TH0, #0F1HMOV TL0, #5AH中断效劳程序: ORG 0000H LJMPSTARTORG000BHLJMPTOINTORG1000HSTART: MOVTMOD, #01HSETBTR0MOVTH0,#0F1HMOVTL0,#5AHSJMP $ORG2000HTOINT: CPL P1.5MOVTH0,#0F1H MOVTL0,#5AHRET1END8请编写程序:在T1每计满100个外部输入脉冲后,使P0口输出0F0H的数据。答:ORG 0000H LJMPSTARTORG000BHLJMPLOOPORG1000HSTART:MOVTMOD, #01HSETBTR1MOVTH0,#0F1HMOVTL0,#5AHSJMP $ORG2000HLOOP: MOVP0,#0F0H工程六1及8255比拟,8155接口芯片有何特点?答:8155是一种通用的多功能可编程RAM/IO扩展器,片内除有三个可编程并行I/O端口两个8位的端口A和B及一个6位是我端口C外,还带有256B放入静态RAM及一个可编程的14位定时器、计数器。2为什么说P0口是真正的双向I/O口,而P1P3口是准双向口?答:P0口是三态双向口,每位能驱动8个LSTTL电路;P1、P2、P3口是准双向口,每个引脚可驱动4个LSTTL输入。3扩展存储器时常用哪些片选方法?答:线选法和译码法4什么是地址空间重叠现象?答:存储器中多个单元地址空间重叠在一起却仅表示一个单元,这种现象称为地址空间重叠现象。5扩展存储器时,低8位地址为什么要锁存,而高8位地址不需要锁存?答:P0口作为低8位地址线、数据线,分时提供低8位地址信号和数据信号,在扩展系统中,要将P0口传送的信号进展别离,以便构成16位地址信号,因此需要增加一个8位锁存器,先由锁存器将地址总线中的低8位地址信号所存,锁存器的输出作为地址线A7-A0,其后P0口作为数据线使用;P2口在整个机器周期内提供的都是高8位地址信号,因此不用锁存。6设某打印接口电路中有两个端口:一个是数据端口,其地址为1FFFH;一个是状态端口,其地址为1FFEH,状态端口的最高位D7表示打印机当前状态,即D7=0表示打印机“空闲、D7=1表示打印机“忙,试将片内RAM40H4FH中的内容由打印机打印输出。答: MOVDPTR,#1FFEH LP1:MOVXA,DPTRJBACC.7,LP1MOVR0,#40HMOVR2,#10HLP2:MOVA,R0INCDPTRMOVXDPTR,ALP3:MOVDPTR,#1FFEHMOVXA,DPTRJBACC.7,LP3INCR0DJNZR2,LP2END7试用两片2764扩展16KB程序存储器,根据以下要求,画出电路图,并确定各自的地址范围。答:1用P2.7和P2.6片选。地址范围:1#为:8000H9FFFH或A000HBFFFH 2#为:4000H5FFFH或6000H7FFFH2用74LS138译码后片选。地址范围:1#为:0000H1FFFH 2#为:2000H3FFFH8有一个单片机应用系统,需要8K字节的程序存储器、两个8位输入口、两个8位输出口、四个外部中断源,试设计电路图。答:工程七1在一个AT89C51系统中扩展一片8155,8155外接2位LED显示器和2位BCD拨盘,试画出该局部的接口电路,并编写相应的显示子程序和读拨盘的子程序。答:显示子程序:START:MOVA,#03HMOVDPTR,#7F00HMOVXDPTR,ALOOP1:MOVR0,#38HMOVR3,#7FHMOVA,R3LOOP2:MOVDPTR,#7F01HMOVXDPTR,AINC DPTRMOVA,R0ADDA,#0DHMOVCA,A+PCMOVXDPTR,AACALLDELAY1msMOV A,R3JNB ACC.0,LOOP1RRAMOVR3,AINCR0AJMPLOOP2DATA:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67HRET读拨盘子程序:MOVR0,#30HMOVP1,#0DFHMOVA,P1SWAPAXCHA,R0 MOVP1,#0EFHMOVA,P1XCHDA,R0RET2在一个AT89C51系统中,试画出6×6键盘接口电路,并编制一个子程序,用查询的方法将键盘上键入的键号送内RAM区。答:程序:SCAN:LCALLKEYDOWNJNZKEY1RETKEY1:LCALLSWLAY10msLCALLKEYDOWNJNZKEY3KEY2:MOVA,#FFHRETKEY3:MOVA,#3FHMOVP2,AMOVA,P2ANLA,#3FHMOVR2,#00HMOVR3,#06HKEY4:RRCAJNCKEY5INCR2INCR2INCR2INCR2INCR2INCR2DJNZR3,KEY4LJMPKEY2KEY5:MOVA,#3HMOVP1,AMOVA,P1ANLA,#3FHMOVR1,#00HMOVR3,#06HKEY6:RRCAJNCKEY7INCR1DJNZR3,KEY6LJMPKEY2KEY7:MOVA,R1ADDA,R2PUSHALCALLKEYDOWNKEY8:JNZKEY8POPARETKEYDOWN:MOVA,#FFHMOVP1,AMOVA,P1XRLA,#3FHRET工程八1说明AT89C51系列单片机的通信方式。答:AT89C51系列单片机以全双工串口进展串行通信2什么是串行通信,并说明其特点?答: