强化指令20:清零指令
1,CLR A ;A中内容清零
2,CLR C ;进位标志位清零
3,CLR bit;直接寻址位清零
小知识点补充65
1,在变址寻址(基址寄存器+变址寄存器间接寻址)中,以累加器A作为变址寄存器,以DPTR或PC作为基址寄存器
2,串行口扩展并行口时,串口工作在方式0
3,51单片机并行I/O口信息有读I/O口和读锁存器两种方式,读改写操作是针对并行口中的锁存器进行的
4,在中断服务程序中,至少有一条中断返回指令
5,定时器1有**三**种工作模式
6,定时器0工作在方式3时,分为两个独立的8位计数器,且TH0占用T1的状态控制位TR1和TF1(此时T0不能作为外部计数模式)
7,设 MCS-51单片机晶振频率为 12MHz,定时器作计数器使用时,其最高的输入计数频率为 500KHz
8,主程序中调用子程序后返回主程序,堆栈指针 SP的值不变
9,单片机中使用 MOVX A,@R1指令, C与 P2口配合能寻址数据存储器 1111H单元(前文有专门的例题讲解)
10,下列指令判断若 P1 口最低位为高电平就转 L00P,否则就执行下一句的是JB P1.0 ,L00P
11,MCS-51单片机在执行 MOVX A,@DPTR指令时,其寻址单元的地址是由P0口送低 8 位,P2口送高 8 位
12,使累加器 A的最高位置 1 的是:ORL A,#80H
13,使 R0的最高位置 0 的是:ANL R0,#7FH
14,使 R1的最高位取反的是XRL R1,#80H
15,MCS-51指令系统中,格式为: ORG 16位地址 的指令功能是用来定义汇编程序的起始地址
16,指令 ANL A,R0的功能是:将 A与寄存器 R0的内部容按位逻辑与
17,LJMP跳转空间最大可达到:64KB
18,在编程中使用伪指令的目的是指示和引导汇编程序进行汇编
19,8051单片机的定时器 T1用作定时方式时是由内部时钟频率定时,一个机器周期加1
20,8051单片机的定时器 T0用作计数方式时是由外部计数脉冲计数,下降沿加1
程序阅读填空题22
执行下列程序后,累加器 A的内容为:
ORG 0000H
MOV A , #00H
ADD A , #02H
MOV DPTR, #0030H
MOVC A, @A+DPTR
MOV @R0, A
SJMP $
ORG 0030H
TAB: DB 00H ,08H,51H,6H,09H,0CH
END
强化指令21:传送指令
1,MOV @Ri,direct
2,MOV @Ri,A
3,MOV @Ri,#data
例题1:
执行如下三条指令后, 30H和31H单元的内容分别是
MOV R1,#30H
CLR A
MOV 66H,#66H
MOV 40H,#0EH
MOV @R1,40H
MOV A,R1
ADDC A,#66H
INC R1
MOV @R1,A
答案:
(30H)=0EH (31H)=96H
判断溢出方法:最高位进位状态异或次高位进位状态=1,则结果溢出
程序阅读填空题23
执行下列程序后,内部 RAM 40H单元的内容是?,A中的内容是?
ORG 0000H
MOV 40H,#00H
MOV R0,#40H
MOV A,40H
ADD A,#07H
MOVC A,@A+PC
MOV @R0,A
ORL A,#0AAH
SJMP $
TDB:DB 00H ,01H ,02H,03H,05H
END
强化指令22:LJMP跳转指令
LJMP add16 无条件长转移 3 2
执行过程:
add16 -> PC
例题:
MCS-51指令系统中,执行下列程序后,程序计数器 PC的内容为:
ORG 000H
MOV DPDR,#1000
MOV A , #00H
MOV 20H ,A
LJMP 1500
END
答案:(PC)=1500
小知识点补充67
1,8051单片机的定时器 T1用作计数方式时计数脉冲是由 T1(P3.5)输入
2,8051 单片机的机器周期为1.5μs, 则其晶振频率 fosc为8MHz
3,用 8051 的定时器,若用软启动,应使 TOMD中的GATE位置 0
4,MCS-51单片机在同一级别里除 INT0 外,级别最高的中断源是定时器 T0
5,用8051的定时器T0 定时,用模式 2,则应启动T0前向TH0、TL0置入相同的计数初值,以后不再置入
6,MCS-51单片机定时器 T0的溢出标志 TF0,若计满数在 CPU响应中断后由硬件清零
7,8051响应中断后,中断的一般处理过程是关中断,保护现场,开中断,中断服务,关中断,恢复现场,开中断,
中断返回
8,执行中断处理程序最后一句指令 RETI后程序返回到响应中断时一句的下一句
9,MCS-51单片机响应中断矢量地址是中断服务程序的入口地址
10,ADC 0809芯片是 m路模拟输入的 n 位 A/D转换器, m=8,n=8
11,当 DAC 0832 D/A转换器的 CS接 8031 的 P2.0 时,程序中 0832 的地址指针DPTR寄存器应置为:
0832H或FE00H或FEF8H等
12,8051的定时 /计数器 T0 的有几种工作模式,对各工作模式作简单的叙述:
答:
定时/计数器 T0 的模式 :
0:13 位计数器;
1:16 位计数器;
2:8 位循环计数器;
3:2 个独立的 8 位计数器 串行通信模式
13,8051的串行通信的有几种工作模式,请对各工作模式作简单的叙述:
答:
串行通信共有 4 种工作模式 ,分别是:
模式 0:同步移位寄存器;
模式 1:波特率可变的8位两机异步通信;
模式 2:波特率固定的9位可多机的异步通信;
模式 3:波特率可变的9位可多机的异步通信
程序阅读填空题24
执行下列程序段后:
ORG 0000H
MOV 10H,#5AH
MOV 2EH,#1FH
MOV 40H,2EH
MOV 60H,#3DH
MOV 20H,60H
MOV R1,20H
MOV A,40H
XCH A, R1
XCH A,60H
XCH A,@R1
MOV R0,#10H
XCHD A, @R0
END
问:
(A)= (10H)= (2EH)=
(40H)= (60H)=
强化指令23:取反指令
CPL A:累加器取反
CPL C:进位标志位取反
CPL bit:直接寻址位取反
强化指令24:置1指令
1,SETB C
2,SETB bit
强化指令25:比较指令
1,CJNE A,direct,rel
2,CJNE A,#data,rel
3,CJNE Rn,#data,rel
4,CJNE @Ri,#data,rel
强化指令26:转移指令
1,AJMP addr11
2,SJMP rel
3,LJMP addr16
4,JMP @A+DPTR
程序阅读填空题25
已知(A)=83H,(R0)=17H,(17H)=34H,执行下列程序段后:
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A
问:(A)= (R0)= (17H)=
程序阅读填空题26
ORG 0000H
MOV B,#3
MOV R0,#20H
MOV A,#0FH
INC A
MUL AB
MOV @R0,A
SETB 00H
MOV DPTR,#3000H
MOV A,@R0
MOVX @DPTR,A
DEC B
MOV DPH,B
SETB 03H
MOV A,@R0
SWAP A
DEC A
END
上述程序执行完后,回答如下问题:
(A)= (Cy)=
(DPTR)= (3000H)= (R0)=
程序阅读填空题27
ORG 0000H
LJMP START
ORG 30H
START:
MOV SP,#66H
CLR A
MOV R2,#16
MOV R0,#20H
LOOP:
MOV @R0,A
DEC A
INC R0
DJNZ R2,LOOP
SETB 03H
MOV A,R2
MOV R0,#20H
SETB C
SUBB A,@R0
MOV P1,A
PUSH ACC
PUSH 23H
POP 23H
END
上述程序执行完后,回答如下问题:
(P1)= (Cy)=
(R0)= (23H)= (SP)=
程序阅读填空题28
ORG 0000H
MOV SP,#65H
CLR A
MOV R0,#21H
CPL A
MOV @R0,A
DEC @R0
MOV DPTR,#1200H
DEC 21H
MOV A,@R0
MOV B,#4
INC A
DIV AB
INC B
MOV DPH,B
MOVX @DPTR,A
PUSH ACC
POP DPL
MOV A,@R0
MOVX @DPTR,A
END
上述程序执行完后,回答如下问题:
(A)= (R0)= P=
(DPTR)= (0300H)= (SP)=
8051 单片机应用系统的晶体振荡器频率为 6MHz,请利用定时器 T1 编程实现在 P1.0 和 P1.1 引脚输出互补(互为反相)的、频率为 20Hz的方波。要求:采用中断方式, T1 工作在方式 2 下。
解析: 20Hz方波的半周期为 25ms,一个机器周期=2us。设定时器时间为500us,即定时器初值=256-250=6,设置一个变量保存定时器溢出次数,当定时器溢出次数达到50次进行电平翻转,从而实现50ms的波形输出。
程序源码:
PULSE BIT P1.0
PULSENOT BIT P1.1
ORG 0000H
LJMP START
ORG 001BH
LJMP ADDRT1
ORG 0030H
START:
MOV SP,#66H
MOV R7,#50
MOV TMOD,#20H
MOV TL1,#6
MOV TH1,#6
SETB ET1
SETB EA
SETB PULSE
CLR PULSENOT
SETB TR1
SJMP $
ADDRT1:
MOV TL1,#6
MOV TH1,#6
DEC R7
CJNE R7,#00,RETURN
CPL PULSE
CPL PULSENOT
MOV R7,#50
RETURN:
RETI
END