《微机原理及应用》(A卷)此试题是上次考试题目,禁止将此试题原本打印带进考场!!!一、单项选择题:(每小题1分,共10分)1.十进制数102转换为十六进制为C。A64HB65HC66HD67H2.十进制数52用8421BCD码表示为B。A32HB34HC50HD52H3.MCS-51单片机复位以后堆栈指针SP的内容是B。A00HB07HC80HDFFH4.MCS-51单片机的位寻址区位于内部RAM的哪个范围B。A00H~1FHB20H~2FHC30H~7FHD0000H~FFFFH5.指令“ADDA,R2”中,源操作数的寻址方式是A。A寄存器寻址,B直接寻址,C寄存器间接寻址,D立即寻址6.指令“MOV30H,#20H”中,源操作数的寻址方式是D。A寄存器寻址,B直接寻址,C寄存器间接寻址,D立即寻址7.指令“DEC30H”的寻址方式是B。A寄存器寻址,B直接寻址,C寄存器间接寻址,D立即寻址8.设(SP)=30H,(PSW)=80H,则执行“PUSHPSW”指令以后堆栈指针SP的内容是B。A30HB31HC40HD41H9.汇编语言程序中表示汇编结束的伪指令是D。ADB,BEQU,CORG,DEND10.如果8051采用12MHZ的石英晶体振荡器,则具有一个机器周期的指令的执行时间BA0.5μsB1μsC2μsD4μs二、阅读程序并回答问题(15分)。ORG3000HMOVR0,#60HMOVR1,#70HMOVR2,#10HLOOP:MOVA,@R0CJNEA,#24H,LOOP1;24H为“$”的ASCII码LOOP2:MOVA,#20H;20H为“空格”的ASCII码LOOP1:MOV@R1,AINCR0INCR1DJNZR2,LOOPHERE:SJMPHERE1)该程序功能是:数据传送:把内部RAM60H开始的16个数据传送到70H开始的单元,遇到“$”换成“空格”2)程序第一次执行到标号LOOP时,(R0)=60H(R1)=70H(R2)=10H3)程序执行到标号LOOP2时,(A)=24H三、阅读程序并回答问题(20分)。ORG2000HMOVR0,#50HMOVR1,#16MOVR2,#0LOOP:MOVA,@R0CJNEA,#30H,NEXT;32H为“0”的ASCII码INCR2NEXT:INCR0DJNZR1,LOOPHERE:SJMPHEREEND1)源程序中用到了哪些伪指令?ORG2)该程序功能是:用R2统计内部RAM50H开始的16个单元中有多少个字符“0”。3)程序第一次执行到标号LOOP时,(R0)=50H(R1)=10H(R2)=00H4)程序执行结束时,(R0)=60H(R1)=00H四、程序设计(35分):1.已知被加数从内部RAM50H单元开始,4个字节,其中50H单元为低位,加数从60H单元开始,长度为4个字节,其中60H单元为低位,编一个程序实现多字节加法运算,要求把运算结果放回到50H单元开始的存储区,其中50H单元为低位字节。(15分)MOVR0,#50HMOVR1,#60HMOVR2,#4CLRCLOOP:MOVA,@R0ADDCA,@R1MOV@R0,AINCR0INCR1DJNZR2,LOOPHERE:SJMPHERE2.编写程序,将内部RAM30H单元开始的10个无符号数累加,结果存入R2、R3(低字节)中,要求程序从程序存储器2000H单元开始。(20分)ORG2000HMOVR0,#30HMOVR2,#00HMOVR3,#00HMOVR7,#10NEXT:MOVA,@R0ADDA,R3MOVR3,AMOVA,R2ADDCA,#00HMOVR2,AINCR0DJNZR7,NEXTSJMP$五、接口应用题(20分)。应用定时器T0的模式1进行1ms定时,以中断方式使P1.0输出周期为2ms的方波。已知晶振频率fosc为12MHZ。(1)求计数个数、计数初值(十进制形式)(2)求TH0初值、TL0初值(十进制形式或十六进制形式)(3)编写应用程序答案:略,计算方法详见应用举例例题