单片机考试试题及答案(10)一填空题(共20分,每题4分)1、我们使用的单片机试验箱型号是。2、输入文件后,按F2保存程序,此时文件扩展名是。3、提示装载完毕后,使用命令进行反汇编,检查程序是否正确装入。4、将30H单元的内容#67H送R1,用最少的指令实现,指令为:。5、弹出操作,使用指令。二、程序分析题(共20分,每题10分)1、程序如下2506HM5:MOVSP,#58H;2509HMOV10H,0FH;250CHMOV11H,#0BH;250FHACALLXHD;2511HMOV20H,11H2514HM5A:SJMPM5AXHD:PUSH10HPUSH11HPOP10HPOP11HRET问:(1)执行POP10H后堆栈内容?(2)执行M5A:SJMPM5A后,(SP)=?(20H)=?2、解读下列程序,然后填写有关寄存器内容(1)MOVR1,#48HMOV48H,#51HCJNE@R1,#51H,00HJNCNEXT1MOVA,#0FFHSJMPNEXT2NEXT:MOVA,#0AAHNEXT2:SJMPNEXT2累加器A=()(2)MOVA,#0FBHMOVPSW,#10HADDA,#7FH若PSW=00,当执行完上述程序段后,将PSW各位状态填入下表:PSWACF0RS1RS0OVF1PCY11010001三、编程题(共60分,每题30分)将片内RAM-2单元(如20H)的内容分成两段,并将它们分别存入2单元和3单元。(高位清零)。输入程序。参考程序:MOVR0,#21HMOVA,20HANLA,#0FHMOV@R0,AINCR0MOVA,20HSWAPAANLA,#0FHMOV@R0在某单元(如20H)存入待分字的某数(如5BH)。单步或带断点运行该段程序。运行过程中注意检查程序的变化,并在最后检查(21H)=,(22H)=。2、编程实现字符串长度统计:设在单片机内RAM中从STR单元开始有一字符串《以ASCII码存放》,该字符串以$其值为24H结束,试统计该字符串的长度,其结果存于LON单元。(1)输入所编程序START:CLRA;计数单元清零MOVR0,#STRLOOP:CJNER0,#24H,NEXT;判断字符串是否结束SJMPCOMPNEXT:INTAINCR0SJMPLOOPCOMP:MOVLON,A;将长度存入LON单元SJMP$(2)在以STR为首的地址内部RAM单元开始存放待统计长度的数据块(自设),并以#24作为数据块的结束标志。(3)单步或断点运行所编程序,注意观察每次转移后PC及统计长度单元LON的变化,并做好记录。(4)验证运行结果。(5)改变数据块长度,重做。《单片机原理与应用》试题010答案填空题(共20分,每题4分)1、我们使用的单片机试验箱型号是TDN-MI。2、输入文件后,按F2保存程序,此时文件扩展名是.ASM。3、提示装载完毕后,使用U000命令进行反汇编,检查程序是否正确装入。4、将30H单元的内容#67H送R1,用最少的指令实现,指令为:MOV30H,#67H;MOVR1,30H。5、弹出操作,使用POPACC指令。二、程序分析题(共20分,每题10分)1、程序如下2506HM5:MOVSP,#58H;2509HMOV10H,0FH;250CHMOV11H,#0BH;250FHACALLXHD;2511HMOV20H,11H2514HM5A:SJMPM5AXHD:PUSH10HPUSH11HPOP10HPOP11HRET问:(1)执行POP10H后堆栈内容?(2)执行M5A:SJMPM5A后,(SP)=?(20H)=?解执行ACALL指令时:PC+2?PC:(SP)+1?SPPC0~PC7?(SP)(SP)+1?SPPC8~PC15?(SP)2)子程序返回时,点地址弹出,SP=58H所以(1)执行POP10H后,堆栈内容如左图所示.5C0B5B0F5A25591158(2)执行M5A:SJACF0RS1RS0OVF1PMPM5A后,(SP)=58H,(20H)=0FH2、解读下列程序,然后填写有关寄存器内容(1)MOVR1,#48HMOV48H,#51HCJNE@R1,#51H,00HJNCNEXT1MOVA,#0FFHSJMPNEXT2NEXT:MOVA,#0AAHNEXT2:SJMPNEXT2累加器A=()(2)MOVA,#0FBHMOVPSW,#10HADDA,#7FH解(1)MOVR1,#48H;48H????送R1MOV48H,#51H;51H送?(48H)CJNE@R1,#51H,00H;(R1)GN#51相比,相等,顺序执行JNCNEXT1;没借位转,NEXT1MOVA,#0FFH;有借位,FFH送ASJMPNEXT2NEXT1MOVA,#0AAH;0AAH送ANEXT2SJMPNEXT2累加器A=(0AAH)(2)MOVA,#0FBHMOVPSW,#10H00010000送PSWADDA,#7FH由11111011+01111111----____________101111010所以,有进位CY=1,C6??C7=1?1=0,OV=0;A中有奇数个1,P=1;有辅助进位位AC=1若PSW=00,当执行完上述程序段后,将PSW各位状态填入下表:PSWCY11010001三、编程题(共60分,每题30分)将片内RAM-2单元(如20H)的内容分成两段,并将它们分别存入2单元和3单元。(高位清零)。输入程序。参考程序:MOVR0,#21HMOVA,20HANLA,#0FHMOV@R0,AINCR0MOVA,20HSWAPAANLA,#0FHMOV@R0在某单元(如20H)存入待分字的某数(如5BH)。单步或带断点运行该段程序。运行过程中注意检查程序的变化,并在最后检查(21H)=,(22H)=。2、编程实现字符串长度统计:设在单片机内RAM中从STR单元开始有一字符串《以ASCII码存放》,该字符串以$其值为24H结束,试统计该字符串的长度,其结果存于LON单元。(1)输入所编程序START:CLRA;计数单元清零MOVR0,#STRLOOP:CJNER0,#24H,NEXT;判断字符串是否结束SJMPCOMPNEXT:INTAINCR0SJMPLOOPCOMP:MOVLON,A;将长度存入LON单元SJMP$(2)在以STR为首的地址内部RAM单元开始存放待统计长度的数据块(自设),并以#24作为数据块的结束标志。(3)单步或断点运行所编程序,注意观察每次转移后PC及统计长度单元LON的变化,并做好记录。(4)验证运行结果。(5)改变数据块长度,重做。《单片机原理与应用》试题011填空题(共20分,每题4分)1、开启微机电源,在软件所在目录键入命令,选择对应串口号,进入集成操作软件环境。2、对源文件进行汇编,生成浮动目标文件,文件扩展名是。3、用命令设置断点。4、将立即数3052H送数据指针DPTR,使用指令。5、两寄存器交换数据,使用指令。二、程序分析题(共20分,每题10分)1、程序存储器空间表格如下:地址2000H2001H2002H2003H...内容3FH06H5BH4FH...已知:片内RAM的20H中为01H,执行下列程序后(30H)=?MOVA,20HINCAMOVDPTR,#2000HMOVCA,@A+DPTRCPLAMOV30H,AEND:SJMPEND执行程序后,(30H)=2、分析程序段:CLRCMOVA,#91HSUBBA,61H;ADDA,61H;DAA;MOV62H,A(1)程序执行何种操作?(2)若已知初值:(60H)=24H,(61H)=72H,则运行后,(62H)=。编程题(共60分,每题30分)编程实现下列逻辑运算Z=(M+N)*(O+P)。设M,N,O,P为片内RAM30H—33H单元,输出结果单元Z地址为34H。将下列程序输入到实习装置参考程序START:MOVA,MXRLA,NMOVB,AMOVA,OORLA,PANLA,BMOVZ,A在M—P(30H—33H单元)装入待进行逻辑运算的数据(自设)。单步或带断点运行该段程序。运行过程中注意检查程序的变化,并在最后验证(Z)是否与理论值相符。2、设从内存BLOCK单元开始存放一无符号数的数据块,其长度为LEN。试找出其最小数,并存入MIN单元。(1)输入所编程序。COMP:MOVA,#0FFH;置比较的初始值MOVR2,#LEN;置数据块长度MOVR1,#BLOCK;置地址指针LOOP:CLRCSUBBA,@R1;比较JCNEXT;若小,则恢复原值MOVA,@R1SJMPNEXT1NEXT:ADDA,@R1NEXT1:INCR1;若大,则取下个数比较DJNZ:DJNZR2,LOOPMOVMN,A;存最小数SJMP$(2)确定好数据块的起始地址和长度,并在相应的内部RAM单元存入数据,同时作好记录。(3)单步或断点运行程序,注意循环次数是否等于数据块长度。(4)观察PC,A和计数单元的变化并作好记录。(5)验证运行结果。