(2) 在31H、30H单元存入加数如3018,在41H,40H单元存入被加数如8975。 (3)输入程序首地址,(从处为2000H),然后开始单步或断点运行该段程序。
(4)运行过程中检查数据的变化,并在最后检查(32H)= ,(31H)= , (30H)= 。
2、 编程实现逻辑运算:Q=(U *(V+W))+X.Y)+Z。设U~Z的位地址为00H~05H.Q的位地址为07H。《实际中U~Z可以是外部输入端口信号或软件设定的一些控制位》。 实习步骤:
(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单元(位地址00H~07H的位在20H单元)输入某个数据(注意此时各位的状态并做好记录)。 (3)单步或断点运行所编程序,逐步检查Cy及个数据的变化情况(注意检查时也按字节读出,再观察其相应位)。 (4)验证运行结果
(5)改变20H单元的置数,重做。
《单片机原理与应用》试题010
一、 填空题(共20分,每题4分)
1、我们使用的单片机试验箱型号是 。
2、输入文件后,按F2保存程序,此时文件扩展名是 。
3、提示装载完毕后,使用 命令进行反汇编 ,检查程序是否正确装入。 4、将30H单元的内容#67H送R1,用最少的指令实现,指令为: 。 5、弹出操作,使用 指令。 二、程序分析题(共20分,每题10分) 1、程序如下
2506H M5: MOV SP,#58H;
2509H MOV 10H,0FH; 250CH MOV 11H,#0BH; 250FH ACALL XHD; 2511H MOV 20H,11H 2514H M5A: SJMP M5A XHD: PUSH 10H PUSH 11H POP 10H POP 11H
RET
问:(1)执行POP10H后堆栈内容?
(2)执行M5A:SJMP M5A后,(SP)=? (20H)=? 2、解读下列程序,然后填写有关寄存器内容
(1) MOV R1,#48H MOV 48H,#51H CJNE @R1,#51H,00H JNC NEXT1 MOV A,#0FFH SJMP NEXT2 NEXT: MOV A,#0AAH NEXT2: SJMP NEXT2 累加器 A=( )
(2) MOV A,#0FBH MOV PSW,#10H ADD A,#7FH
若PSW=00,当执行完上述程序段后,将PSW各位状态填入下表:
PSW
CY 1 AC 1 F0 0 RS1 1 RS0 0 OV 0 F1 0 P 1 三、编程题(共60分,每题30分)
1、 将片内RAM-2单元(如20H)的内容分成两段,并将它们分别存入2单元和3单元。(高位清零)。
(1) 输入程序。
参考程序: MOV R0,#21H MOV A,20H ANL A,#0FH MOV @R0,A INC R0 MOV A,20H SWAP A ANL A,#0FH MOV @R0
(2) 在某单元(如20H)存入待分字的某数(如5BH)。 (3) 单步或带断点运行该段程序。
(4) 运行过程中注意检查程序的变化,并在最后检查(21H)= , (5) (22H)= 。
2、编程实现字符串长度统计:设在单片机内RAM中从STR单元开始有一字符串《以ASC II码存放》,该字符串以$<其值为24H>结束,试统计该字符串的长度,其结果存于LON单元。 (1)输入所编程序
START: CLR A ;计数单元清零 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)改变数据块长度,重做。
《单片机原理与应用》试题010答案
二、 填空题(共20分,每题4分)
1、我们使用的单片机试验箱型号是 TDN-MI 。
2、输入文件后,按F2保存程序,此时文件扩展名是 .ASM。
3、提示装载完毕后,使用U000命令进行反汇编 ,检查程序是否正确装入。
4、将30H单元的内容#67H送R1,用最少的指令实现,指令为:MOV 30H,#67H; MOV R1,30H。 5、弹出操作,使用POP ACC指令。 二、程序分析题(共20分,每题10分) 1、程序如下
2506H M5: MOV SP,#58H; 2509H MOV 10H,0FH; 250CH MOV 11H,#0BH; 250FH ACALL XHD; 2511H MOV 20H,11H 2514H M5A: SJMP M5A XHD: PUSH 10H PUSH 11H POP 10H POP 11H
RET
问:(1)执行POP10H后堆栈内容?
(2)执行M5A:SJMP M5A后,(SP)=? (20H)=? 解
1) 执行ACALL指令时:PC+2?PC:
(SP)+1?SP PC0~PC7?(SP) (SP)+1?SP PC8~PC15?(SP)
2) 子程序返回时,点地址弹出,SP=58H
所以 (1)执行POP 10H后,堆栈内容如左图所示.
5C 0B 5B 0F 5A 25 59 11 58
(2)执行M5A:SJMP M5A后,(SP)=58H, (20H)=0FH
2、解读下列程序,然后填写有关寄存器内容
(1) MOV R1,#48H MOV 48H,#51H CJNE @R1,#51H,00H JNC NEXT1 MOV A,#0FFH SJMP NEXT2 NEXT: MOV A,#0AAH NEXT2: SJMP NEXT2 累加器(2) MOV A,#0FBH MOV PSW,#10H ADD A,#7FH 解
(1) MOV 48H,#51H ;51H CJNE @R1,#51H,00H ;(R1)GN #51 JNC NEXT1 ; MOV A SJMP NEXT2
NEXT1 MOV A,#0AAH ;0AAH NEXT2 SJMP NEXT2 累加器 (2) MOV A MOV PSW ADD A + 01111111
送 R1
送?(48H)
相比,相等,顺序执行 没借位转,NEXT1 ,#0FFH ;有借位,FFH送A 送A (0AAH) ,#0FBH
,#10H 00010000送PSW ,#7FH
A=( )
MOV R1,#48H ;48H
A=
单片机原理及应用期末考试题试卷及答案大全



