第一章
1.1 原码反码与补码的转换
原码: 第一位表示符号,其余位表示数值。
反码: 正数的反码是其原码本身,负数符号位不变其余取反。
补码: 正数的补码是其原码本身,负数符号位不变其余取反加1.
第二章
2.1 专用寄存器组
- 程序计数器PC 16位寄存器,存放下一条将要执行的指令代码所在ROM单元的地址。自动加1功能。
- 累加器A 8位寄存器,存放操作数或运算结果。
- 通用寄存器B 用来存放乘数或除数,完成后存放乘积的高8位或除法的余数。
- 程序状态字PSW 8位寄存器 ,Cy AC F0 RS1 RS0 OV - P ,OV为Cy异或AC。
- 堆栈指针SP 8位寄存器,能自动加1或减1,存放堆栈的栈顶地址。
- 数据指针DPTR 16位寄存器,DPH和DPL,DPTR主要用于存放片外RAM的地址。
8051标准的内存是有限的,只有128字节的RAM,地址范围为0-127,或者是00H-7FH,因此需要经常进行内存管理和优化以保证程序的正确运行。
2.2 8051端口线功能(32条)
- P0:通用I/O口使用,输入输出数据,可以作为数据总线和地址总线(低八位)。
- P1:通用I/O口使用,输入输出数据。
- P2:通用I/O口使用,输入输出数据,可以作为数据总线和地址总线(高八位)。
- P3:通用I/O口使用,输入输出数据,第二功能用作控制如中断,计数等。
2.3 8051的控制线
- ALE地址锁存允许线: 当单片机访问外部存储器时,输出地址锁存信号。用以锁存P0口送出的低八位地址。
- /EA允许访问片外存储器: 为1时允许使用内部ROM,0时允许使用外部ROM。
- /PSEN片外ROM选通线: 执行访问片外ROM指令MOVC时产生一个负脉冲。
- RST复位: 初始化工作状态。
- XTAL1和XTAL2:片内震荡电路输入线。
复位后内部寄存器状态:PC和DPTR为0000H,ACC、B、PSW为00H,SP为07H.
2.4 节电方式和编程校验
只有CHMOS型器件才有这种节电工作方式。
只有EPROM型器件才有编程和校验方式。
2.5 单片机时序
机器周期: CPU执行一条指令所需要的时间的基本单位,51单片机中的机器周期由12个震荡周期构成,分为6个状态周期(S1-S6)。
指令周期: CPU执行一条指令所需要的时间,以机器周期为单位。
指令的运算速度与它所包含的机器周期数有关:机器周期数越少,执行的速度就越快。
eg:
- 程序计数器是用于存放执行指令的地方;
- 8051标准只有128字节的RAM,地址范围0-127、00H-7FH;
- 指令的运算速度和指令的机器周期有关,机器周期数越少,速度越快;
- RESET复位的要求?接收到大于两个机器周期的高电平;
第三章
3.1 寻址方式
直接寻址: 指令中直接给出操作数所在存储单元的字节地址dir。
立即寻址: 直接在指令中给出操作数#data。
寄存器寻址: 操作数为某一寄存器的内容,指令中指定寄存器Rn/A。
寄存器间接寻址方式: 指令中给出寄存器,寄存器名称前面加前缀标志“@”,片外RAM时要用MOVX。
变址寻址: 以DPTR或PC作为基址寄存器,
以累加器A作为变址寄存器,以两者内容相加形成的16位地址作为操作数所在存储单元的地址,访问ROM。
相对寻址: 偏移量rel
位寻址: 对二进制比特位进行位处理。
3.2 数据传送类
MOV <目的操作数>,<源操作数>
不影响标志位:Cy、Ac和OV,可能影响奇偶标志位P。
进栈指令 PUSH direct SP先加1
出栈指令 POP direct SP后减1
字节交换指令XCH 将累加器A的内容和源操作数的内容相互交换。
半字节交换指令 累加器的低4位与内部RAM低4位交换。
3.3 算术运算类
加法指令ADD
带进位加法指令ADDC
增1指令INC
带借位的减法指令SUBB
减1指令DEC
乘法指令MUL
除法指令DIV
3.4 逻辑操作类
累加器A清0 CLA A
累加器A求反指令 CPL A
左环移指令 RL A 位7循环移入位0,不影响标志位
带进位左环移指令 RLC A 将Cy一起向左环移一位
右环移指令 RR A
带进位右环移指令 RRC A
累加器半字节交换指令 SWAP A 高半字节和低半字节互换
逻辑与ANL用于使某些位置清0
逻辑或ORL用于使某些位置置1
逻辑异XRL或使某些位置取反
3.5 控制转移类
长转移指令 LJMP addr16
绝对转移指令AJMP addr11
相对转移指令SJMP rel 目标转移地址=源地址+2+rel
JZ rel 如果累加器内容为0,则执行转移
JNZ rel如果累加器内容非0,则执行转移
比较不相等转移指令CJNE 前小于后Cy=1
减1不为0转移指令DJNZ
子程序的返回指令RET
中断返回指令RETI
3.6 位操作类
JZ JNZ
eg:
单片机对SFR的寻址方式是什么?直接寻址
内部RAM向外部RAM传送数据的寄存器是?A
子程序的返回指令是? RET
R1内容传向R0
MOV A,R1
MOV R0,A
外部RAM 2000H 内容向内部RAM20H
MOV DPTR,#2000H
MOVX A,DPTR
MOV 20H,A
把内部RAM 10H 11H 12H内容传向内部RAM 2FH 2EH 2DH
MOV 2FH,10H
MOV 2EH,11H
MOV 2DH,12H
第五章
eg:
编写中断初始化程序:开放外部中断0、开放外部中断1、串行口中断、设置外部中断为高优先级。当外部中断上同时有中断请求时,先响应谁?为什么?
1 | SETB EA |
响应外部中断0,因为同一优先级下应按照自然优先级顺序响应。
子程序和中断程序的区别是?
子程序是一种独立的程序,可以被其他程序调用,是固定的,指令调用的。
中断程序是由操作系统触发的程序,用于处理异常情况或改善系统性能,是随机的。
第六章
第七章
外部I/O接口是否可以和外部存储器地址重叠,为什么? 因为单片机访问外部程序存储器与访问外部数据存储器(包括外部 I/O 口)时,会分别产生PSEN与RD/WR两类不同的控制信号,因此外接程序存储器和数据存储器的地址空间允许重叠而不会发生冲突
静态显示就是每个数码管的驱动电平不会改变,知道这个数码管的数值发生变化。
动态显示就是利用人眼反应迟钝,数码管轮流显示一段时间,比如都是20ms,效果看起来是几个数码管同时亮(实际是只有一个在点亮,其他的是余晖)。
什么是窜键? 即相同信号线上的按键相互影响
控制定时计数器的两个特殊功能寄存器叫什么名字? TMOD和TCON
计算定时 50ms的方式1下的初值。
晶振12M 12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次 机器周期。65536-50000=15536(3cb0) TH0=0x3c,TL0=0xb0
晶振11.0592M 11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期。65536-46080=19456(4c00) TH0=0x4c,TL0=0x00
第八章
DAC0832 与单片机的连接方式?
ADC0809的工作过程?
首先确定ADDA、ADDB、ADDC三位地址,决定选择哪一路模拟信号;
使ALE端接受一正脉冲信号,使该路模拟信号经选择开关到达比较器的输入端;
使START端接受一正脉冲信号,START的上升沿将逐次逼近寄存器复位,下降沿启动A/D转换;
EOC输出信号变低,指示转换正在进行。
A/D转换结束,EOC变为高电平,指示A/D转换结束。此时,数据已保存到8位三态输出锁存器中。此时CPU就可以通过使OE信号为高电平,打开ADC0809三态输出,由ADC0809输出的数字量传送到CPU。
写出 DAC0832 与单片机的连接时的锯齿波程序
1 | ORG 1000H |
写出学过的 A/D 和 D/A的型号及功能。
八位adc0809 12位adc574
八位dac0832 12位dac1208
第九章
串行通信的制式
单工、半双工、全双工
异步通信的指标有?
字符帧格式和波特率
8051串行口具体是哪个管脚?
P3口的P3.0和P3.1分别接串行口的RXD(串行数据接收)和TXD(串行数据发送)
8051串行口的四种工作方式有什么区别?
方式0 是同步移位寄存器方式,帧格式8位,波特率固定:fosc/12;
方式1 是8位异步通信方式,帧格式10位,波特率可变:T1溢出率/n(n=32或16);
方式2 是9位异步通信方式,帧格式样11位,波特率固定:fosc/n(n=64或32);
方式3 是9位异步通信方式,帧格式11位,波特率可变:T1溢出率/n(n=32或16);
方式1,2,3的区别方要表现在帧格式及波特率两个方面.
方式1与方式2帧格式相同波特率不同:方式1波特率可变与T1溢出率有关;方式2波特率固定.
方式1与方式3波特率相同帧格式不同:方式1帧格式10位;方式3帧格式11位.
方式1,2,3通信过程完全相同,均为异步通信方式.