51单片机总结 第1篇
单片机的存储区域有ROM和RAM两种,即程序存储器和数据存储器,由于51单片机是哈佛结构,因此其程序存储器和数据存储器是独立编址的。且两种存储器都可以选择使用片内的还是片外的存储器,因此在物理上有4个存储空间,但逻辑上只有3个存储空间,因为程序存储器片内和片外是统一编址的。这3个存储空间在汇编语言中访问的指令都不一样。
对于程序存储器来说,因为单片机有16位地址总线(P0和P2),因此最后总的扩展区域为64KB。但片内只有4KB(STC89C52是8KB)ROM,决定单片机是xxx内的ROM还是片外的ROM取决于引脚EA的输入电平。 当EA输入为高电平时,如果寻址范围为0000H~0FFFH时,xxx内存储器,当寻址范围超过这个时,单片机会自动xxx外存储器且从1000H开始;当EA输入为低电平时,单片机会自动xxx外存储器且从0000H开始。
相比于ROM,51单片机的RAM(数据存储器)要复杂得多。首先来看传统的51单片机的RAM分布,如下图所示。 从图中我们看出,传统的51单片机的RAM有256B,其中低128字节分为三个区域:寄存器工作组,位寻址区,普通的RAM;高128字节为特殊功能寄存器区(SFR),可进行位寻址。其中的寄存器位分布及其地址如下图所示: STC单片机:
注解:蓝色字体为STC单片机扩展的寄存器,方格内的8位为复位后的值。
我认为这两张图还是很重要的,编程的时候是一个重要参考。
说完了传统的51单片机,我们再来看看STC单片机,关于这一点,我表示看不懂它的数据手册,前面选型列表中明确说明STC89C52型号的RAM大小为512B,但后面又不知道怎么变成1280B了。。。 如果按照512B来说,那这512B是如何分布的呢?我根据手册上的前后验证,最终推断出一个相对合理的结论:STC单片机中的RAM区域分为两种:内部RAM和内部扩展RAM,其中,内部RAM和传统单片机一样,都是256B,但是它根据用户需要额外多了256B的内部扩展RAM。那么问题来了,这些内部扩展的RAM怎么使用呢? 根据手册,我总结出了四点:
相信一开始看C51代码的同学都会对两条指令不太理解。就是往往在程序前面的sfr和sbit指令。 对此,我的理解是,在电路板中,已经做好了固定的电路,包括寄存器的连接方式,但是此时这些寄存器只能通过地址去访问,而sfr指令的作用就是将这些寄存器进行命名,使得用户不用去记各个寄存器的地址,使用起来更加方便。 同理,指令sbit就是对可以按位操作的位进行命名,比如部分可以按位访问的寄存器中的各位名称。 下面看一个例程
另外,值得一提的是,一个项目程序中经常会包含的头文件:
其实内部的代码就是大多常用的寄存器的命名,所以它里面的代码都是sfr和sbit指令。(如何查看:点开左侧的加号,然后就可以看到包含的头文件)
51单片机总结 第2篇
一、单片机概述
1.微型计算机的硬件主要由微处理器、内存、I/O接口和外部设备组成,它们之间是用系统总线连接的。地址总线AB传送xxx发出的地址信息,是单向总线。数据总线DB传送数据信息,是双向总线。控制总线CB传送控制信息,CB中每一根线的传送方向是一定的。
2.单片机
(1)单片机就是在一片半导体硅片上,集成了中央处理单元(xxx)、存储器(RAM、ROM)、中断系统、定时器/计数器、并行I/O、串行I/O、系统时钟电路及系统总线的用于控制目的微型计算机。
(2)特点:小、全。
单片机的硬件组成
(1)8位微处理器,包括运算器和控制器两部分,还有位处理功能。
(2)数据存储器(128B RAM),片外可外扩至64KB。
(3)程序存储器(4KB Flash),片外可外扩至64KB。
(4)4个8位并行I/O口(P0口~P3口)。
(5)1个全双工异步串口,4种工作方式。
(6)2个16位定时器/计数器,4种工作方式。
(7)1个看门狗定时器,当xxx由于干扰使程序陷入死循环或跑飞时,WDT可使程序恢复正常运行。
(8)中断系统:5个中断源、5个中断向量。
(9)特殊功能寄存器(SFR)21个。
二、MCS-51存储器的结构
存储器的结构为哈佛结构
(1)xxx依曼结构是一种将程序指令存储和数据存储合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。
(2)哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。
2.存储器空间可划分为5类
(1)程序存储器空间
(2)内部数据存储器空间
(3)特殊功能寄存器
(4)位地址空间
(5)外部数据寄存器空间
3.程序存储器分为片内和片外两部分,片内4KB Flash(0000H~0FFFH),可扩展至64KB(0000H~FFFFH)。xxx内还是片外程序存储器,由EA*电平确定。程序存储器5个固定单元为各中断源中断入口
4.数据存储器分为片内和片外两部分,片内128 B RAM(00H~7FH),可扩展至64KB(0000H~FFFFH)。片内RAM与片外RAM两个空间是相互独立的,虽然低128B的地址是相同的,但由于访问指令不同,所以不会发生冲突。
(1)访问RAM(00H~7FH)可以使用直接或者间接寻址方式,访问SFR(80H~FFH),只能使用直接寻址方式。
注:8052与8051片内数据存储器相比,片内数据存储器增加了128B,对应的字节地址为80H~FFH。这高128B的RAM单元地址与特殊功能寄存器区的字节地址重合,但它们是两个不同的物理区域。对地址为80H~FFH的RAM区,只能采用间接寻址方式访问,而对地址为80H~FFH的特殊功能寄存器区访问只能采用直接寻址方式。
30H~7FH用作存数据以及作为堆栈区,只能字节寻址。
20H~2FH128位的位寻址区,可位寻址,也可字节寻址。
00H~1FH4组通用工作寄存器区,可用指令改变PSW中RS1、RS0两位来选择。每区包含8B,为R7~R0。
5.特殊功能寄存器SFR是各功能部件的控制寄存器及状态寄存器,综合反映了整个单片机基本系统内部实际的工作状态及工作方式。8051的特殊功能寄存器有21个,离散地分布在80H~FFH地址范围内。在21个特殊功能寄存器中,可以通过直接寻址方式进行字节寻址,对某些寄存器还可以进行位寻址(字节地址的末位是0H或8H)。
(1)程序计数器PC:程序计数器PC用于存放下一条要执行的指令地址,是一个16位专用寄存器,可寻址范围达64KB。由于它与SFR有密切的联系,故放在此处介绍。
(2)累加器A:8位寄存器,既可以用于存放操作数,也可用于存放运算的中间结果。
(3)寄存器B:8位寄存器,为执行乘和除而设。不执行乘、除的情况下,可把它当作一个普通寄存器来使用。
(4)数据指针寄存器DPTR: 16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器(DPH、 DPL)分开使用。
(5)堆栈指针SP:堆栈向上生长。单片机复位后,SP为07H,堆栈从08H单元开始,由于08H~1FH单元分别是属于1~3组的工作寄存器区,最好在复位后把SP值改置为60H或更大的值,避免堆栈与工作寄存器冲突。
(6)程序状态字寄存器PSW
Cy:进位标志位,可写为C。在算术和逻辑运算时,若有进位/借位,Cy=1;否则,Cy=0。在位处理器中,它是位累加器。
Ac:辅助进位标志位,在BCD码运算时,用作十进位调整。即当D3位向D4位产生进位或借位时,Ac=1;否则,Ac=0。
F0:供用户使用的标志位。
RS1、RS0:4组工作寄存器区选择控制位1和位0。
OV:溢出标志位,当执行算术指令时,用来指示运算结果是否产生溢出。若溢出,OV=1;否则,OV=0。
P:奇偶标志位,表示A中“1”的个数,P=1奇数,P=0偶数。
6.位地址空间:139个寻址位的位地址,其中00H~7FH这128位处于片内RAM字节地址20H~2FH单元中,其余的11个可寻址位分布在特殊功能寄存器SFR中。
三、MCS-51的引脚功能
1.电源引脚VCC、VSS
(1)VCC接+5V电源。
(2)VSS接数字地。
2.时钟引脚 XTAL1、XTAL2
(1)内部时钟方式:XTAL1、XTAL2接外部石英晶体和微调电容。晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,P2信号在每个状态的后半周期有效。xxx就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作的。
(2)外部时钟方式:
3.复位引脚RST
(1)复位信号输入端,高电平有效。给复位脚RST加上大于2个机器周期的高电平就使MCS-51复位。在单片机正常工作时,此引脚应为小于的电平。复位时,PC初始化为0000H,程序从0000H单元开始执行。
(2)当看门狗定时器溢出输出时,该脚将输出长达96个时钟振荡周期的高电平,从而使单片机复位。
(3)上电复位电路:电源通过电容C和RK回路给电容C充电,加给RST引脚一个短的高电平信号,此信号随着充电过程而逐渐回落,为保证系统可靠复位,RST引脚上的高电平必须维持足够长的时间。
(4)按键电平复位电路:按下按键后,通过两个电阻RS和RK的分压,在RST端产生了高电平,按键按下的时间决定了复位的时间。
*/VPP (Enable Address/Voltage Pulse of Programming)
(1)EA*:外部程序存储器访问允许控制端,低有效。
EA*=1:PC值≤0FFFH时,单片机读片内4KB Flash中的程序,PC值>0FFFH时,转向读取片外60KB(1000H~FFFFH)程序存储器中的程序。
EA*=0:只读取外部的程序存储器中的内容,读取地址范围0000H~FFFFH,片内4KB Flash无效。
(2)VPP:对片内Flash编程,接21V编程电压。
* (Address Latch Enable/PROGramming)
(1)ALE:地址锁存信号控制端,为访问外部存储器提供低8位地址锁存信号。由于单片机引脚数目有限,P0口是作为低8位地址总线与8位数据总线分时复用的,当单片机访问外部存储器时,ALE的负跳变将单片机发出的低8位地址锁存在P0口外接的地址锁存器中,然后P0口再作为数据总线使用。
(2)PROG*:对片内带有4 KB EPROM的8751固化程序时,作为编程脉冲输入端。
* (Program Strobe Enable):xxx外程序存储器读选通信号,低有效。当xxx外程序存储器读取指令码时,每个机器周期产生两次有效信号,输出两个PSEN*有效脉冲,即允许读出指令码。
7.并行I/O口引脚P0(双向口)
P0口既可以作为通用I/O口使用,也可以作为地址/数据线使用,所以在P0口的电路中有一个多路转换开关MUX。在内部控制信号的作用下,多路开关MUX可以分别接通锁存器输出和地址/数据线。
(1)当P0作为一般I/O口使用时,xxx内部发出控制电平“0”封锁与门,使输出上拉场效应管T1截止,同时使多路开关MUX把锁存器Q端与输出驱动场效应管T2的栅极接通,形成开漏结构。
当P0作为输出口时,需要外接上拉电阻。
当P0作为输入口时,具有读引脚和读端口两种情况,因而端口中设有两个三态输入缓冲器用于读操作。在端口由输出口转为输入口时,必须先向对应的锁存器写人“1”,使T2截止,P0成为高阻态的输入口。(如果T2导通,会把该端口拉为低电平,而引起输人信号误读。)
(2)在扩展外部存储器的系统中,P0口可作为低8位地址线或8位数据线来使用。
由P0引脚输出地址/数据信息时,xxx内部发出控制电平“1”,打开与门,同时多路开关MUX使xxx内部地址/数据线与驱动场效应管T2栅极反相接通,构成推挽结构,使其负载能力大大增加(可以驱动8个LS型TTL负载),因而P0口的输出驱动能力比P1~P3口大。
由P0输入数据时,xxx内部发出控制电平为“0”,封锁与门,使T1截止,同时多路开关使锁存器与T2相接。由于P0口在地址/数据复用方式时,xxx自动向P0口输出FFH,使T2截止,从而保证了引脚的高阻抗状态,这时输入信号从引脚通过输入缓冲器进入内部总线。
(3)总结:
当P0口用作通用I/O口时,需在片外接上拉电阻,端口不存在高阻状态,是一准双向口。为保证正确读入引脚,应先向锁存器写1。
当用作地址/数据复用口时,为真正双向口,作为低8位地址总线与8位数据总线分时复用口。
8. 并行I/O口引脚P1~P3(准双向口)
(1)P1口只作为通用I/O口,内部有上拉电阻,故为准双向口。作输入口时,必须先向锁存器写入1。
(2)P2口可用作通用I/O口,内部有上拉电阻,故为准双向口。作输入口时,必须先向锁存器写入1。作为地址输出线时,P2输出高8位地址,P0输出低8位地址寻址64KB地址空间。
(3)P3口可用作通用I/O口,内部有上拉电阻,故为准双向口。作输入口时,必须先向锁存器写入1。第二功能如表所示:
9.总线结构
(1)数据总线:在MCS-51单片机中由P0口来传递数据信息,且数据总线为8位,即D7~D0。
(2)地址总线:MCS-51单片机地址总线宽度为16位,表示符号A15~A0,对存储器直接进行编址的编址数有216个,寻址范围为64KB,地址从0000H~FFFFH。P0口经地址锁存器提供16位地址总线的低8位地址A7~A0,P2口直接提供高8位地址A15~A8。
(3)控制总线:MCS-51中的控制总线由第2功能下的P3口和4根独立控制线RESET、EA*、ALE和PSEN*组成。
四、MCS-51的指令周期
1.时钟周期:时钟控制信号的基本时间单位。时钟周期Tosc=1/fosc。
2.机器周期:xxx完成一个基本操作所需时间为机器周期。1个机器周期包括12个时钟周期,分6个状态:S1~S6,每个状态又分两拍:P1和P2。
ALE信号是为地址锁存而定义的,以时钟脉冲1/6的频率出现,在一个机器周期中,ALE信号两次有效,第1次出现在S1P2和S2P1期间,第2次出现在S4P2和S5P1期间。
3.指令周期:执行一条指令所需的时间。
(1)单字节和双字节指令一般为单机器周期和双机器周期;
(2)3字节指令都是双机器周期;
(3)乘、除指令占用4个机器周期。
执行一条指令时,可分为取指令阶段和指令执行阶段 。
(1)取指令阶段,PC中地址送到程序存储器,并从中取出需要执行指令的操作码和操作数.
(2)指令执行阶段,对指令操作码进行译码,以产生一系列控制信号完成指令的执行。
五、MCS-51中断系统
1.中断的概念
(1)中断:在执行程序的过程中,由于某种外界的原因,必须尽快终止当前的程序执行,而去执行相应的处理程序,待处理结束后,再回来继续执行被终止的程序。这个过程叫中断。
(2)中断之后所执行的相应处理程序通常称之为中断服务或中断处理子程序,原来正常运行的程序称为主程序。主程序被断开的位置称为断点。中断源要求服务的请求称为中断请求(或中断申请)。引起中断的原因,或能发出中断申请的来源,称为中断源,它是引起中断发生的事件、设备、部件。
个中断请求源
(1)外部中断源INT0*(请求标志为IE0)
(2)外部中断源INT1*(请求标志为IE1)
(3)定时器/计数器0溢出中断T0(请求标志为TF0)
(4)定时器/计数器1溢出中断T1(请求标志为TF1)
(5)串口发送中断TX(请求标志为TI)、串口接收中断RX(请求标志为RI)。
3.中断优先级:如同时发生多件事件,按照需响应事件的重要性选择事件处理,称之为中断优先级。MCS-51复位后,IP内容为0,各个中断源均为低优先级中断。中断优先级关系基本规则:低优先级可被高优先级中断,高优先级不能被低优先级中断,同级不能中断同级。同级中断查询顺序:外部中断0>T0溢出中断>外部中断1>T1溢出中断>串口中断。
4.相关寄存器
(1)定时器/计数器控制寄存器TCON寄存器
TF0、TF1定时器/计数器溢出中断请求标志位。
IE0、IE1外部中断请求标志位。
IT0、IT1选择外部触发方式选择位(0:电平触发,低电平有效,1:脉冲触发,负跳沿有效)。
(2)串行口控制寄存器SCON
TI串行口的发送中断请求标志位,RI串行口接收中断请求标志位。
(3)中断允许寄存器IE
EA总中断开关控制位
ES串行口中断允许位。
ET0、ET1定时器/计数器溢出中断允许位。
EX0、EX1外部中断允许位。
(4)中断优先级寄存器IP
PS串行口中断优先级控制位。
PT0、PT1定时器中断优先级控制位。
PX0、PX1外部中断优先级控制位。
5.中断请求被响应,须满足以下必要条件:
(1)总中断允许,即IE寄存器中的EA=1。
(2)该中断源发出中断请求,即对应中断请求标志为“1”。
(3)该中断源中断允许位=1,即该中断被允许。
(4)无同级或更高级中断正在被服务。
6.中断请求的撤销
(1)电平触发外部中断:中断标志位清“0”是在中断响应后由硬件自动完成的,中断响应后把中断请求信号输入引脚从低强制变高。
(2)跳沿触发外部中断:中断标志位清“0”是在中断响应后由硬件自动完成的,跳沿信号过后外中断请求信号也就自动撤销了。
(3)串口中断:只能使用软件的方法清除串口发送/接收中断标志位。
六、MCS-51定时器
1.定时器/计数器T0由特殊功能寄存器TH0、xxx构成,定时器/计数器T1由特殊功能寄存器TH1、xxx构成。
(1)两种工作模式(定时器、计数器),4种工作方式(xxx、方式1、方式2和方式3)。
(2)TMOD用于选择定时器/计数器T0、T1的工作模式和工作方式。
(3)TCON用于控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。
(4)T0、T1不论是工作在定时器模式还是计数器模式,都是对脉冲信号进行计数,只是计数信号的来源不同。
2.相关寄存器
(1)工作方式控制寄存器TMOD
门控位GATE
0:TRx=1时定时器/计数器工作。
1:TRx=1,INTx*=1时定时器/计数器工作。
工作模式的选择:C/T*为计数器模式和定时器模式选择位。
0:定时器工作模式,对单片机的晶体振荡器12分频后的脉冲进行计数。
1:计数器工作模式,计数器对外部输入引脚T0或T1的外部脉冲计数。
工作方式的选择:根据M1、M0选择
M1M0工作方式
00xxx,为13位定时器/计数器
01方式1,为16位定时器/计数器
10方式2,8位的常数自动重新装载的定时器/计数器
11方式3,仅适用于T0,此时T0分成两个8位计数器,T1停止计数
(2)定时器/计数器控制寄存器TCON
TF1、TF0计数溢出标志位,当计数器计数溢出时,该位置“1”。使用查询方式时,查询有效后,应使用软件及时将该位清0。使用中断方式时,进入中断服务程序后由硬件自动清0。
TR1、TR0计数运行控制位。
3.定时器计数初值的计算
例、系统统时钟为6MHz,编写定时器T0产生1s定时的程序,计算定时器计数初值。
选方式1,每隔100ms中断一次,中断10次为1s。因为(216-X)*2*10-6=10-1,所以X=15536=3CB0H。因此TH0=3CH,xxx=B0H。
七、MCS-51串口通信
1.并行通信与串行通信
(1)并行通信:数据的各位同时进行传送。
(2)并行通信:数据一位一位串行地顺序传送。
2.单工、半双工、全双工
(1)单工:只需要一条传输线,仅能单方向由发送端向接收端传送。收、发双方位置固定,不能互换。
(2)半双工:两个工作站之间通过传输线进行数据的交替双向传送。每个站既可发送数据也可接收数据,但任何时刻只能由其中的一方向另一方发送数据,另一方接收数据。
(3)全双工:由两条传输线连接两个工作站,两站之间的数据可同时双向传送。
3.同步通信和异步通信
(1)同步通信是按数据块传送的。把传送的字符顺序地连接起来,组成数据块,在数据块前面加上特殊的同步字符(一个或两个8位xxx制码),作为数据块的起始符号,由收、发一致的同步时钟在发送端发出,接收端接收到同步字符后,开始接收数据块,使收、发双方同步。在数据块后面加上校验字符,用于校验通信中的错误。
(2)异步通信的数据通常是以字符为单位组成字符帧传送的。每一字符帧低位在前、高位在后,由发送端一帧一帧地发送,通过传输线被接收端一帧一帧地接收。发送端和接收端由各自独立的时钟来控制数据的发送和接收。在异步通信中,接收端是依靠字符帧格式来判断发送端是何时开始发送、何时结束发送的。异步通信的优点是不需要传送同步时钟,字符帧长度不受限制,故设备简单。缺点是字符帧中因包含起始位和停止位而降低了有效数据的传输速率。
(3)波特率异步通信的一个重要指标,为每秒传送xxx制数码的位数,单位为b/s。波特率用于表征数据传输的速度,波特率越高,数据传输速度越快。
单片机具有一个全双工的串行通信接口,能同时进行发送和接收。它可以作为UART(通用异步接收和发送器)使用,也可以作为同步的移位寄存器使用。
串口的结构
(1)有两个物理上独立的接收、发送缓冲器SBUF(属于特殊功能寄存器),可同时发送、接收数据。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。
(2)两个缓冲器共用一个特殊功能寄存器字节地址(99H)。
(3)控制寄存器共有两个:特殊功能寄存器SCON和PCON。
6.相关寄存器
(1)串行口控制寄存器SCON
SM1、SM0串行口4种工作方式选择位,SM2多机通信控制位。
REN允许串行接收位。
TI发送中断标志位(发送前软件置零,发送后硬件置1),RI接收中断标志位(接收前软件置零,接收后硬件置1)。
在方式2、3中,TB8是发送机要发送的第9位数据。RB8是接收机接收到的第9位数据,该数据来自发送机的TB8。
(2)特殊功能寄存器PCON
SMOD波特率选择位。
7.串口工作方式
(1)xxx为同步移位寄存器输入/输出方式。xxx的数据格式为8位,低位在前,高位在后,波特率固定为fosc/12。该方式并不用于两个单片机之间的异步串行通信,而是用于串行口外接移位寄存器,扩展并行I/O口。串行数据通过RXD引脚输入或输出,TXD引脚输出频率为fosc/12的时钟脉冲。
发送过程以写SBUF寄存器开始,当8位数据传送完毕,TI被置为“1”方可再发送下一数据。
接收必须预先置REN=1,RI=0,当8位数据接收传送完毕,RI被置为“1”,此时,可通过读SBUF指令,将串行数据读入。
(2)方式1为10位异步通信方式。一帧数据=1个起始位+8个数据位+1个停止位,先发送或接收最低位。
(3)方式2和方式3为11位异步发送/接收方式。一帧数据=1个起始位+9个数据位+1个停止位。发送时第9个数据位由SCON寄存器的TB8位提供,接收到的第9位数据存放在SCON寄存器的RB8位。第9位数据可作为检验位,也可用于多机通信中识别传送的是地址还是数据的特征位。
方式2、方式3接收时,在接收完第9位数据后,需满足以下两个条件,才能将接收到的数据送入SBUF。
(1)RI = 0,意味着接收缓冲器为空。
(2)SM2 = 0或接收到的第9位数据位RB8 = 1。
当满足上述两个条件时,收到的数据送SBUF(接收缓冲器),第9位数据送入RB8,且RI置“1”。若不满足这两个条件,接收的信息将被丢弃。
8.串口通信接口标准概述
(1)TTL电平通信接口:如果两个单片机相距在之内,它们的串行口可直接相连。
(2)RS-232C双机通信接口:RS232是计算机与通信工业应用中最广泛一种串行接口。它以全双工方式工作,需要地线、发送线和接收线三条线。如果双机通信距离在之间时,可用RS-232C标准接口实现点对点的双机通信。缺点:传输速率低、通信距离短、接口处信号容易产生串扰等。
TTL信号通常在0V~5V,而RS232 接口信号电压通常在-15V~+15V,能够更好地抵抗长距离传输过程中的电缆衰减和电磁干扰。TTL 信号使用正逻辑,逻辑“1”为高电平,逻辑“0”为低电平。而RS232 中,逻辑“1”是负电压,而逻辑“0”是正电压。这种负逻辑有助于提高抗干扰能力。
(3)RS-422A双机通信接口:RS-422A与RS-232C的主要区别是收发双方的信号地不再共地,RS-422A采用了平衡驱动和差分接收的方法。用于数据传输的是两条平衡导线,这相当于两个单端驱动器。RS-422A能在长距离、高速率下传输数据,最大传输率为10Mbit/s,最大传输距离可达1219m。缺点:RS-422A双机通信需四芯传输线,这对长距离通信很不经济。
(4)RS-485双机通信接口:RS-485与RS-422A的区别:RS-422A为全双工,采用两对平衡差分信号线;RS-485为半双工,采用一对平衡差分信号线。与RS-422A一样,最大传输率为10Mbit/s,最大传输距离可达1219m。
51单片机总结 第3篇
内部的EEPROM,可以说是STC单片机的一个特色了吧。根据数据手册,我们可以看到STC89C52单片机不仅有8K的Flash,还配备了一个5K的EEPROM供读写使用,这样就可以在不接外设芯片的前提下存储一些掉电不会消失的数据。查阅资料得知,它的本质是通过IAP技术读写Flash来实现EEPROM的效果。
在STC单片机中,有三个掉电数据不消失的区域:一个是用户程序区(AP区),是用来存放用户编写的程序的区域;一个是叫ISP监控程序区(ISP区),这个是芯片出厂时就已经固化在单片机内部的一段程序,STC单片机之所以可以进行ISP串行下载程序,就是因为芯片在出厂时已经在内部固化了ISP引导码,程序上电复位时会首先从ISP区开始执行代码。首先单片机会检测是否有上位机下载程序的需要,若经过短暂的时间没有检测到上位机有下载程序的需求,单片机便会从用户程序区(AP区)开始执行代码,这也是为什么51单片机下载时要先下电,然后再上电就是为了使得程序从ISP区开始执行,从而实现用户程序的下载。参考链接 第三个掉电数据不消失的区域就是STC单片机自带的EEPROM了。根据数据手册,可以得知,当程序在ISP区域时,可以对用户程序(AP区)进行编程,还可以对EEPROM(也叫Data Flash区)进行编程;但是程序在AP区时,只能对EEPROM进行编程。
在使用EEPROM时,要注意地址寄存器中的值不能超出这个范围。其中,一个扇区为512字节。
首先来了解一下与EEPROM读写有关的寄存器,如下图所示。