答:AT89C51单片机中XTAL1和XTAL2的功能是单片机的时钟输入和输出引脚;当采用外部时钟时,XTAL1引脚接地, XTAL2接外部时钟源。
16.什么是时钟周期、机器周期和指令周期?
答:时钟周期即石英晶体振荡周期,等于1/fosc、机器周期为时钟周期的12倍,即1机器周期=12时钟周期;指令周期为执行一条单片机指令所需要的时间,根据指令类型的不同,一指令周期可以等于1或2或4机器周期。
17.AT89C51单片机所使用的晶振频率为6MHz,时钟周期,机器周期为多少?
1答:时钟周期为微秒;机器周期为2微秒。
618.AT89C51单片机运行出错或出现死循环,如何摆脱困境? 答:对单片机应用系统进行复位操作。
19.AT89C51单片机复位后,PC、A、PSW、SP、P3~P0的状态各是什么?复位后内部RAM中的数据有何影响?
答:
(PC)=0000H (A)=00H (PSW)=00H (SP)=07H
(P0)~(P3)=FFH
复位后内部RAM中的数据依然被保存,但某些特殊功能寄存器中的数据可能有所改变。
6
项目二
1.什么是计算机的指令和指令系统? 答:指令是用于指导计算机工作的命令;所有的计算机所能够执行指令的集合称为指令系统。
2.简述AT89C51汇编指令格式。
答:[标号:]操作码[操作数][;注释]。
3.简述8051的寻址方式和所能涉及的空间。
答:共有七种寻址方式,分别为:寄存器寻址、立即寻址、寄存器间接寻址、直接寻址、相对寻址、变址寻址和位寻址。分别对应的空间是:内部RAM、ROM、内部RAM和外部RAM;内部RAM、ROM、ROM和内部RAM的位地址空间。
4.要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式? 答:对于特殊功能寄存器的访问只能采用直接寻址方式,对于片外数据存储器的访问要采用寄存器间接寻址方式。
5.编写程序,把片外RAM从2000H开始存放的8个数传送到片内30H开始的单元中。
答:
MOV DPTR,#2000H MOV R0,#30H MOV R2,#08H
LOOP: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0
DJNZ R2,LOOP SJMP $
6.下列程序段经汇编后,从1000H开始的各有关存储单元的内容是什么? ORG 1000H TAB1 EQU 1234H TAB2 EQU 3000H DB “START”
DW TAB1,TAB2,70H 答:如下表所示。
地址 数据 1000H 53H 1001H 54H 1002H 41H 1003H 52H 1004H 54H 1005H 12H 1006H 34H
7
1007H 1008H 1009H 100AH 30H 00H 00H 70H 7.查表指令是在什么空间上的寻址操作? 答:查表指令是在ROM空间上进行的寻址操作
8
项目三
1.指出以下程序每一条指令的执行结果。 MOV A,#0F0H ;答:(A)=F0H CPL A ;答:(A)=0FH ANL 30H,#00H ;答:(30H)=00H ORL 30H,#BDH ;答:(30H)=BDH XRL A,#44H ;答:(A)=4BH
2.指出以下程序每一条指令的执行结果(假设CY=1)。 MOV A,#0AAH ;答:(A)=AAH CPL A ;答:(A)=55H RLC A ;答:(A)=ABH,C=0 RL A ;答:(A)=57H CPL A ;答:(A)=A8H RRC A ;答:(A)=54H,C=0 RR A ;答:(A)=2AH
3.若(A)=7AH,分别执行下列指令后,(A)的值是多少? (1)ANL A,#0FFH ;答:(A)=7AH (2)ORL A,#0FFH ;答:(A)=FFH (3)ANL A,#00H ;答:(A)=00H (4)ORL A,#00H ;答:(A)=7AH (5)XRL A,#0FFH ;答:(A)=85H (6)XRL A,#00H ;答:(A)=7AH 4.设(A)=83H,(R0)=17H,(17H)=34H,分析当执行完下面指令段后累加器A、(R0)、(17H)的值各是多少?
ANL A,#17H ORL 17H,A XRL A,@R0 CPL A 答:(A)=CBH、(R0)=17H、(17H)=37H 5.写出完成下列要求的指令。
(1)累加器A的低2位清0,其余位不变。 答:ANL A,#FCH
(2)累加器A的高2位置1,其余位不变。 答:ORL A,#C0H
(3)累加器A的高4位到反,其余位不变。 答:XRL A,#F0H
(4)累加器A的第0位、2位、4位、6位取反,其余位不变。 答:XRL A,#55H
6.试分析下列程序段,当程序执行完毕后,位地址00H、01H中的内容将为何值?P1口的8条I/O线为何状态?
CLR C
9
MOV A,#66H JC LOOP1 CPL C SETB 01H
LOOP1:ORL C,ACC.0
JB ACC.2,LOOP2 CLR 00H
LOOP2:MOV P1,A 答:(P1)=66H,位地址00H保持原值,位地址01H的内容为“1”。 7.阅读下面程序,分析执行结果。
MOV A,#67H ;答:(A)=67H=0110,0111B SETB ACC.7 ;答:ACC.7=1,(A)=1110,0111B MOV C,ACC.2 ;答:C=1 CPL A ;答:(A)=18H=0001,1000B MOV ACC.6,C ;答:ACC.6=1,(A)=0101,1000B=58H CLR C ;答:C=0
SETB ACC.0 ;答:ACC.0=1,(A)=0101,1001B=59H MOV ACC.4,C ;答:ACC.4=0,(A)=0100,1001B=49H
8.编程实现把外部RAM中8000H开始的连续30个字节的数据传送到外部RAM中8100H开始的连续单元中。
答:
MOV R4,#14H MOV DPTR,#8000H PUSH DPH PUSH DPL MOV DPTR,#8100H MOV R2,DPH MOV R3,DPL
LOOP: POP DPL
POP DPH
MOVX A,@DPTR INC DPTR PUSH DPH PUSH DPL MOV DPL,R3 MOV DPH,R2 MOVX @DPTR,A INC DPTR MOV R2,DPH MOV R3,DPL DJNZ R4,LOOP SJMP $
9.编程统计从外部RAM的2000H开始的连续100个单元中“0”的个数,并将结果存放于R2中。
10