当前位置:文档之家› 广东海洋大学单片微型计算机原理与应用作业讲评

广东海洋大学单片微型计算机原理与应用作业讲评


11
中断例程
ORG 0000H LJMP MAIN ORG 0013H LJMP AAA ORG 0100H MAIN: MOV TMOD,#10H ;设置定时器T0工作于方式1 MOV TL1,#18H MOV TH1,#0FCH ;装入定时初值 CLR P1.1 ;初始化 Setb ET1 ;允许T1中断 Setb EA ;CPU开中断 SETB TR1 ;启动定时器工作 HERE:SJMP HERE ;等待中断 ORG 0300H AAA: MOV TL1,#18H MOV TH1,#0FCH ;重新装入初始值,为下一次循环做准备 CPL P1.0 ;输出反相 RETI END
5
(5)外部ROM2000H单元内容传送到内部RAM20H单元 MOV DPTR,#2000H 或 : MOV DPTR,#2000H MOV A,#0 CLR A MOVC A,@A+DPTR MOVC A,@A+DPTR MOV 20H,A MOV 20H,A
6
3-7 已知(20H)=X,(21H)=Y,(22H)=Z,请用图示 说明下列程序执行后,堆栈中的内容是什么? MOV SP,#70H PUSH 20H
12
13
课程考试时间:5月13日(周二)晚上
祝大家在考试中取得好成绩!
00H
FFH 00H FDH 00H
P
200FH
2010H 2011H
20H
00H 20H
4
3-5 写出能完成如下数据传送的指令或程序 (1)R1中内容传送到R0 MOV A,R1 或 : MOV R0,R1 MOV R0,A (2)内部RAM20H单元内容传送到内部RAM30H单元 MOV 30H,20H (3)外部RAM20H单元内容传送到内部RAM20H单元 MOV R0,#20H 或 : MOV R0,#20H MOVX A,@R0 MOVX A,@R0 MOV 20H,A MOV @R0,A (4)外部RAM2000H单元内容传送到内部RAM20H单元 MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A
x 216 N 65536 1000 64536 0FC18H
查询例程
ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV TMOD,#10H ;设置定时器T1工作于方式1 MOV TL1,#18H MOV TH1,#0FCH ;装入定时初值 SETB P1.0 ;初始化 SETB TR1 ;启动定时器工作 DELAY:JNB TF1,DELAY ;查询TF0直到定时结束 CLR TF1 ;软件清除TF0标志 MOV TL1,#18H MOV TH1,#0FCH ;重新装入初始值,为下一次循环做准备 CPL P1.0 ;输出反相 SJMP DELAY END
答:SP=72H,(71H)=48H,(72H)=23H;机器将调用3456H处的子程序。 执行RET指令后,PC=2348H,SP=70H
10
5-9 设单片机时钟为12MHz,利用定时器T1,使P1.0 引脚输出周期为2ms的矩形波,要求占空比为1:2, 试编写程序。
说明:占空比指高电平(正脉冲)在一个周期内所占的时 间比率,其是数字电路中的一个重要概念,今后务必掌握。
PUSH 21H PUSH 22H
7
3-8 已知SP=73H,(71H)=X,(72H)=Y,(73H)=Z, 试问下列程序执行后,20H,21H,22H单元的内容各是什么? 请用图示说明堆栈指针的指向,和堆栈中数据的变化? POP 20H
POP 21H POP 22H
(20H)=Z
(21H)=Y (22H)=X
9
3-11 已知SP= 70H, PC=2345H。试问8031执行调用指令 LCALL 3456H后,堆栈指针和堆栈中的内容是什么?此时机 器调用何处的子程序?当8031执行完子程序末尾一条RET指令 时,堆栈指针SP和程序计数器PC变为多少? 2345H LCALL SUB1(3456H) 2348H MOV…… 3456H SUB1:MOV...... .. .. RET
部义为 ORG 2000H S1: DB 1,2,3,4,5 S2:‘ABCD’ N EQU $-DAT2 NW: DW 120,-256,-2 P: DW S1,S2 (1)画出上述数据或地址的存储形式 (2)写出各标号的地址 N=2009H-2005H=04H
8
3-9 已知A=7AH,R0=30H,内部RAM 30H 单元的内容为A5H, 请写出下列程序段执行后累加器A的内容. ANL A,#17H ORL 30H,A XRL A,@R0 CPL A
解 (1)因7AH ∧17H=0111 1010B∧ 0001 0111B=0001 0010B=12H 故A=12H (2)因A5H∨ 12H=1010 0101B∨ 0001 0010B=1011 0111B=B7H 故(30H)=B7H;A=12H (3)因12H B7H=0001 0010B 1011 0111B=1010 0101B=A5H 故A=A5H (4)对A5H求反,得5AH。所以A=5AH。
标号 S1
地址 2000H 2001H 2002H 2003H 2004H
内容 01H 02H 03H 04H 05H
3
S2
2005H
2006H 2007H 2008H
41H (‘A’)
42H (‘B’) 43H (‘C’) 44H (‘D’) 78H
NW
2009H
200AH
200BH 200CH 200DH 200EH
相关主题