①8位微处理器CPU ②数据存储器 128B RAM ③程序存储器
④4个8位可编程并行I/O口 ⑤1个全双工的异步串行口 ⑥2个可编程的16位定时器/计数器
⑦1个看门狗定时器WDT ⑧中断系统具有五个中断源 五个中断向量 ⑨特殊功能寄存器SFR 26个
⑩ 低功耗节电模式有空闲模式和掉电保持模式且具有掉电模式下的中断恢复模式
? 3个程序加密锁定位
①增加了可编程功能 ②数据指针增加到两个 ③增加了看门狗定时器 ④增加了断电标志 ⑤增加了掉电模式下的中断恢复模式
微处理器、微处理机、CPU它们都是中央处理器的不同称谓。微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上用于测控目的的单片微计算机。
嵌入式系统是指被嵌入到其他设备或系统中,专门用于完成特定功能的计算机系统
广义的来说,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”
P0口:当AT89S51扩展外部存储器或者IO芯片的时候,P0口作为地址总线(低八位)以及数据总线的分时复用端口。P0也可以作通用的IO口使用,此时需要加上上拉电阻,这个时候它为准双向口,作为输入的时候需要先向端口锁存器写1。P0口可以驱动8个LS型负载
P1口:P1口是专门为了用户使用的准双向口,作为输入的时候需要先向端口锁存器写1。P1口可以驱动4个LS型的负载。
P1.5、P1.6、P1.7也可以用于对片内Flash串行编程和校验,它们分别是串行数据输入、输出和移位脉冲引脚。
P2口:当AT89S51扩展外部存储器及IO口的时候,P2口作为**地址总线(高八位)**使用。作为普通的IO口的时候也是准双向口,输入的时候也需要提前写1。P2口可以驱动4个LS型的负载。
P3口:作为普通的IO口的时候也是准双向口,输入的时候也需要提前写1。P3口可以驱动4个LS型的负载。P3口还提供了第二功能:
①位变量 bit ②特殊功能寄存器 sfr ③特殊功能寄存器 sfr16 ④特殊功能位 sbit
①bit是定义的普通的位变量,并且只能是二进制位
②sbit是特殊功能位,可以定义为可寻址的特殊功能寄存器的某位的绝对地址
扩展的数据类型有: data , idata , bdata , xdata , pdata , code
idata在片内RAM的256字节,必须间接寻址的存储区
code在程序存储区,使用DPTR寻址
xdata在片外64KB的RAM空间,需要用@DPTR寻址
pdata在片外RAM的256字节,使用@Ri间接寻址
(1) 总中断的允许位,即EA位置为1
(2) 该中断源发出中断请求,即该中断源对应的中断请求标志位置为1
(3) 该中断源的中断请求被允许,即该中断的中断允许标志位置为1
(4) 没有同级或者更高级的中断正在被服务
当CPU正在处理某件事情的时候,外部发声的某一事件请求CPU迅速去处理,于是CPU暂停中止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方,继续原来的工作。这样的工作被称为中断
定时器/计数器的方式0是一个无法自动重载的13位计数器,根据公式 定时时间 = (2^n-初值)*(12/fosc) 可以得到
Max_Time = (2^13-0)*(12/3) = 32768us
定时器/计数器的方式1是一个无法自动重载的16位计数器,同上计算
Max_Time = (2^16-0)*(12/3) = 262144us
定时器/计数器的方式2是一个可以自动重载的8位计数器,同上计算
Max_Time = (2^8-0)*(12/3) = 1024us
计数脉冲由系统的振荡器12分频提供
定时时间取决于以下几个因素:
①外部计数脉冲的高电平和低电平时间持续时间都必须在一个机器周期以上
②由于确认一个负脉冲需要两个机器周期,即24个系统振荡器周期,所以外部的计数频率的最大频率不能超过系统振荡器的1/24
51单片机定时器/计数器的工作方式2是一种8位自动重装载计数器模式。在该模式下,定时器的计数器从一个初始值开始计数,每当计数器溢出时,它会自动重新装载计数器初值,并发出一个中断请求。
工作方式2的特点如下:
工作方式2适合于需要高精度、自动循环定时的应用场合,如定时测量、定时调度、脉冲宽度调制等。
①主从机工作在方式2和方式3,主机置SM2 = 0,REN = 1;从机置SM2 = 1,REN = 1;
②主机置TB8 = 1,向从机发送寻址地址帧
③从机接受主机发送来的地址,并与本机地址作比较。地址一致的从机将SM2=0,地址不一样的从机保持SM2=1
④主机向从机发送数据,此时主机的TB8=0,只有被选中的那台从机能接收到数据。其他的从机则舍弃该数据
⑤通信结束后,从机重新置SM2=1,等待下一次通信
当接收方检测到RXD端从1到0的跳变的时候就启动检测器,接收的值是连续3次采样,取其中2次相同的值,取其中两次相同的值,已确认是否真正起始位的开始。
方式1:①RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已经被响应,SBUF中的数据已经被取走。
②SM2=0,或者接收的停止位等于=1(方式1中,停止位已进入RB8),则将接收到的数据装入SBUF和RB8(装入的是停止位),且中断标志RI置为1
方式2、方式3:①RI=0,意味着SBUF已经空了
②SM2=0或接收到的第九位数据位RB8=1
需要注意的是,上面三种方式的②都是对于多机通信而讨论的,多机通信中,如果SM2=1,则必须要RB8=1才可以接收数据
有四种工作方式:方式0、方式1、方式2、方式3
有三种帧结构:方式2和方式3是同一种帧结构,都是11位的帧结构,其中1位起始位0,8位数据位,1位可控程为1或0的第九位数据和1位停止位 。方式0的帧结构是8位数据为一帧,没有起始位和停止位 。方式1的帧结构与是10位,1个起始位(0),1个停止位(1),8个数据位
定时器T1的溢出率为
定时器
T
1
的溢出率
=
计数速率
256
?
X
=
f
o
s
c
/
12
256
?
X
定时器T1的溢出率 = \frac{计数速率}{256-X} = \frac{fosc/12}{256-X}
定时器T1的溢出率=256?X计数速率?=256?Xfosc/12?
方式0的波特率固定位fos/12
方式1的波特率为
波特率
=
2
S
M
O
D
×
T
1
的溢出率
32
波特率 = \frac{2^{SMOD}×T1的溢出率}{32}
波特率=322SMOD×T1的溢出率?
方式2的波特率为
波特率
=
2
S
M
O
D
?
f
o
s
c
64
波特率 = \frac{2^{SMOD}*fosc}{64}
波特率=642SMOD?fosc?
方式3的波特率为
波特率
=
2
S
M
O
D
×
T
1
的溢出率
32
波特率 = \frac{2^{SMOD}×T1的溢出率}{32}
波特率=322SMOD×T1的溢出率?
动态扫描的原理是利用人眼的视觉暂留,让人觉得所有LED同时点亮一样。实际上是逐位轮流点亮各个LED,每一位保持1ms,在10-20ms之内再点亮一次,重复不止,就可以实现动态扫描
静态:显示期间,锁存器输出的段码不变;亮度大,各位LED的段选分别控制;位数多硬件电路复杂
动态:所有段位码并连一起,各位的亮灭靠片选控制端控制,亮度较低,多位控制电路简单
静态显示的时候,想要显示的数据是分开送给每一位LED上的。而动态显示是同时送到每一个LED,再根据位选线来确定是哪一位LED要显示。
静态显示的亮度很高,但是口线占用较多。动态显示口线占用较少,但是变成需要进行动态扫描,适合用在显示位数较多的场合
使用的开发板也是共阴的数码管
段码的顺序为 h g f e d c b a
0的段码为 0011 1111 也就是0x3F 1的段码为0000 0110 也就是0x03
2的段码为0101 1011 也就是0x5B 3的段码为0100 1111 也就是0x4F
4的段码为0110 0110 也就是0x66 5的段码为0110 1101 也就是0x6D
…
①P1.0~P1.3为行线 P1.4~P1.7为列线
②列线作为输出线输出低电平;行线作为输入线,行线中电平由高变低变化的行为按键所在行
③行线作为输出线输出低电平;列线作为输入线,列线中电平由高变低变化的列为按键所在列
④电平变化的行和列交叉的位置即为按键位置
①首先判断有无按键按下:将列线全部置0,若P1.0~P1.3全部为1,则说明没有按键按下,若出现电平为0,则由键按下,记录下行号为i
②如果有键按下,判断具体键号:逐列为低,其他为高,再读行线状态,如果哪一行出现低电平,记录列号j,则证明第i行第j列的按键被按下,完成键盘的行列式扫描
读外部数据存储器时,RD信号有效,写外部数据存储器时,WR信号有效
而读外部程序存储器时,PSEN信号有效
发出的控制信号不同
主要性能指标:①分辨率:分辨率指输入的单位数字量变化引起的,模拟量输出的变化,是对输入量敏感程度的描述
②建立时间:建立时间是描述D/A转换速度快慢的一个参数,用于表明转换速度。其值为从输入数字量到输出达到终位误差±(1/2)GB(最低有效位)时所需要的时间
③转换精度:理想情况下,转换精度和分辨率基本一致,位数越高,精度越高。严格的来说精度和分辨率并不完全一致。只要位数相同,分辨率则相同;但相同位数的不同转换器的精度不同
分辨率的公式为:
分辨率
=
满量程
(
v
)
2
n
分辨率 =\frac{满量程(v)}{2^n}
分辨率=2n满量程(v)?
分辨率的单位和电压的单位一致,或用1LSB表示,根据上面的公式,n = 12 ,满量程电压 = 5v
所以计算 分辨率 = 5/2^12 = 5/4096 = 1.22mv
并且如果数字信号的变化量小于1.22mv,那么这个变化量就无法杯DAC转换器所标识出来了
①转换时间和转换速率:转换时间是A/D完成一次转换所需要的时间。转换时间的倒数位转换速率。
②分辨率:A/D转换器的分辨率习惯上用输出二进制或者BCD码数来表示
量化误差是由于有限位数字量对模拟量进行量化引起的误差。
量化误差的最大值等于分辨率的一半
分辨率 = 5 / 2^8 = 5/256 = 0.0195v
那么最大量化误差等于 = 0.00975v
①量化误差:量化误差是由ADC的有限分辨率产生的误差,但量化误差只适用于ADC,不适用于DAC
②分辨率:对DAC来说,分辨率反映了输出模拟电压的最小变化量;而对于ADC来说,分辨率表示输出数字量变化一个相邻数码所需输入的模拟电压的变化量
③精度:精度和分辨率基本一致位数越高精度越高。严格的来说精度和分辨率并不完全一致。只要位数相同,分辨率则相同。但相同位数的不同转换器的精度可能不同,比如由于制作工艺的不同
1.srf PSW 0xD0,这串代码表示PSW的地址为0xD0,而不是PSW的值为0xD0
2.波特率的计算中,常见波特率的值需要记忆
3.处理器的位数指的是处理器数据总线的位数,而不是地址总线
4.定时器中,如果GATE位等于1的话,开启定时器除了TR1=1之外,还需要对应的外部中断引脚共同控制,也就是INT1=1
5.外部数据存储器和程序存储器都和P0和P2相连
6.ADC0809为8位8通道的A/D转换器,其数据线可直接与单片机的数据总线相接。
DAC0832为8位的D/A转换器,它与单片机的接口可采用单缓和双缓与直接数字输入三种方式
7.中断响应时,单片机能自动保护断点和现场,这句话并不准确 ,因为还有的寄存器需要人为的手动恢复
8.P1或者其他的并行口,对P1编程的时候顺序都是P1.7-P1.6-P1.5…-P1.3-P1.2_P1.1-P1.0,并且P1.7是最高位
9.A/D转换的精度不取决于参考电压,取决于量化位数
有关AD/DA的公式:
分辨率
=
满刻度值
2
n
分辨率 = \frac{满刻度值}{2^n}
分辨率=2n满刻度值?
输出电压 = ? V R E F × B 2 n 输出电压 = -V_{REF}×\frac{B}{2^n} 输出电压=?VREF?×2nB?
B为数字量
10.各个中断源发出的中断请求信号,都会标记在AT89S51单片机的TCON和SCON寄存器中
11.PSW是在AT89S51的CPU内部,反映程序运行状态的寄存器
12.RAM的结构
13.位地址空间,一共有211个位地址,从00HFFH,其中00H7FH映射到RAM的20H~2FH单元中
并且一个RAM的字节地址对应8个位地址,计算方法:把位地址转换为10进制后除以8,只要整数部分,整数部分是几,字节地址就是二十几
当字节地址超过2开头的时候,字节地址就是当前位地址的最小的一位
14.数码管的段码顺序为 dp g f e d c b a
15.PC寄存器中装的是下一条执行的指令
16.区分外部程序存储器和数据存储器最可靠的方法是看其被WR还是被PSEN信号连接
17.由AT89S51组成的单片机系统在工作时,EA的引脚应该接地
18.有关于P0口和P2口和P3口:
P0口:低八位地址总线/数据总线
P2口:高八位地址总线
P3口:双功能口,除了通用IO口还可以做其他功能接口
需要注意的是,只有P3口是双功能口
19.必须有中断源发出中断请求,并且CPU开中断,还需要没有服务同级或者更高级的中断,CPU才可能响应中断
20.半导体存储器分为ROM和RAM,其中RAM有易失性,常用来存储临时数据
21.单片机的CPU是由运算器和控制器构成,而不是分为运算器和控制器
其中运算器的主要组成部分为:运算单元(ALU)、累加器A、PSW
22.中断处理的全过程为:中断请求、中断响应、中断服务
中断在现场保护和恢复现场的过程中,中断系统应该处于关闭状态
23.RAM的00H~1FH的32个单元,不仅为工作寄存器区,还可以作为通用的RAM区进行读写
24.AT89S51单片机的工作频率的上限为24MHZ
25.专用单片机已经让系统结构最简化、软硬件资源利用最优化,从而大大降低成本和提高可靠性
26.ROM中存放着中断源的入口地址
27.AT89S51的最小应用系统包括:单片机、时钟电路、复位电路
并且单片机使用片外振荡器作为时钟信号的时候,XTAL1接片外振荡器的输入信号,引脚XTAL2的接法是悬空
28.AT89S52不是微处理器,而是微控制器
29.通过堆栈操作实现子程序调用时,首先要把PC的内容入栈,以进行断点保护。调用子程序返回指令的时候,在进行出栈,把保护的断点送到PC,先弹出的是**PCH(PC的高位)**中的内容
30.单片机内部数据之所以用二进制来表示,主要原因是:受器件的物理性能限制
31.堆栈的主要功能是断点保护和恢复现场,而不是SP的主要功能
32.AT89S51单片机任何一个端口想要获得较大的驱动能力,要采用低电平驱动
33.使用并行接口方式连接键盘的时候,对于独立式键盘而言,8根IO线可以连接8个按键,而对于矩阵式键盘而言,8根IO线最多可以接64个按键
34.同一级别的中断按时间顺序先后响应。如果同时,那么则按照INT0-T0-INT1-T1-串口的顺序
35.定时器/计数器T1测量某正单脉冲的宽度,采用定时器1定时可以获得最大量程
若时钟的频率为6MHZ,求允许测量的最大脉冲宽度为131072us
实际上就是计算定时时间
36.对于电流输出的D/A转换器,为了得到电压输出,应使用有运算放大器构成的电流/电压转换电路
37.使用双缓冲同步方式的D/A转换器,可以实现多路模拟信号的同步输出
38.四个并行的IO口(P0、P1、P2、P3)都属于特殊功能寄存器