3、波特率的设置
方式0、方式2固定。
方式1,方式3可变。波特率 = 2SMOD / 32 ×(T1的溢出率)
T1溢出率 = 单位时间内溢出次数 = 1 /(T1的定时时间)
而T1的定时时间t就是T1溢出一次所用的时间。此情况下,一般设T1工作在模式2(8位自动重装初值)。
N = 28- t / T, t = (28-N)T =(28-N)×12 / fosc 所以,T1溢出率 = 1/t = fosc / 12(28-N),
故, 波特率 = 2SMOD / 32 × fosc / 12(256-N)。 若已知波特率,则可求出T1的计数初值:
y = 256-2SMOD×fosc / (波特率×32×12)
例、若fosc = 6MHz,波特率为2400波特,设SMOD = 1,则定时/计数器T1的计数初值为多少?并进行初始化编程。
解:y = 256-2SMOD×fosc / (2400×32×12)= 242.98≈243 = F3H 同理,fosc = 11.0592MHz,波特率为2400,设SMOD = 0,则 y = F4H 初始化编程:
MOV TMOD,#20H
MOV PCON,#80H MOV TH1,#0F3H MOV TL1,#0F3H SETB TR1
MOV SCON,#50H
指令系统
指令按寻址方式分有 7种寻址方式,直接寻址(direct)、立即寻址(#20H) 、寄存器寻址(Rn)、寄存器间接寻址(@Ri)、相对寻址(rel)、寄存器变址寻址(@A+PC)、位寻址 ( ACC.1)
指令按功能上分有5种 ,传送类指令 、算术运算类指令、逻辑运算及移位类指令、控制转移类指令、位操作类指令
指令三大属性。功能属性、空间属性(指令站用的字节数)、时间属性(指令执行的机器周期数)
传送类指令 有四种寻址方式 对A的数据传送只影响状态标志位P 访问片内RAM和SFR 指令格式 MOV
唯一的一条16位传送指令 MOV DPTR,#DATA16 访问 片外 RAM 4条指令
MOVX A,@Ri MOVX A,@DPTR( 这两条指令是读片外RAM的数据伴随着控制信号RD*有效)
MOVX @Ri,A MOVX @DPTR,A ( 这两条指令是写片外RAM的数据伴随着控制信号WR*有效)
访问 程序存储器ROM 2条指令
MOVC A,@A+PC MOVC A,@A+DPTR ( 这两条指令是读程序ROM的数据伴随着控制信号PSEN*有效)
2、栈操作指令 PUSH direct POP direct
不影响任何标志位。Direct 可以是内存RAM 128个单元任意一个单元 也可以特殊功能寄存器 这里注意 PUSH ACC ( ACC是直接地址,不能写A) PUSH direct 指令执行中,机器自动进行两步操作: (1)(SP) (SP)+ 1 (2)((SP)) (direct)
例1、设分析:
执行 PUSH DPL PUSH DPH
后,各单元中的内容。(0AH)=23H (0BH)=01H (SP)=0BH
POP direct 指令执行中,机器也自动进行两步操作: (1)(direct) ((SP)) (2)(SP) (SP)- 1
例2、设(SP)= 40H,(40H)= 12H,(3FH)= 34H 执行 POP DPH POP DPL
后,各单元中的内容。(SP) = 3EH,(DPTR)= 1234H, 结论:1)PUSH 与 POP 操作过程刚好相反; 2)进、出栈规则:
先进后出,后进先出。应注意指令书写先后顺序; 3)可用于“保护现场,恢复现场” 3、字节交换指令 XCH A,Rn
XCH A,direct 整字节交换 XCH A,@Ri XCHD A,@Ri SWAP A 半字节交换 不影响任何标志位。 算术运算类指令
包括:加、 减、乘、除;加一、减一。 一、加法指令
ADD A,Rn ;(A) (A)+ (Rn)以下类同。 ADD A,direct ADD A,@Ri ADD A,#data
无符号数相加时:若C = 1,说明有溢出(其值 > 255)。 带符号数相加时:若OV = D7c⊕D6c = 1,说明有溢出。
影响 C OV AC这三个标志位 奇偶标志P由累加器A的值决定
INC A ;(A) (A)+1 ,以下类同。 INC Rn INC direct INC @Ri INC DPTR
不影响 C OV AC这三个标志位 奇偶标志P由累加器A的值决定
逻辑操作类指令
共分两大类:单字节逻辑操作,双字节逻辑操作,共24条。 一、单字节逻辑操作指令 CLR A ;(A) 0
CPL A A中8位按位求反。
循环左移、右移指令: RL A RLC A RR A RRC A
二、双字节逻辑操作指令 “与操作”:
ANL A,Rn ; (A) (A)∧(Rn),以下类同。 ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data
例1、(P1)= 35H,使其高4位输出0,低4位不变。 解; ANL P1,#0FH 此做法称为“屏蔽”位。