51单片机学习笔记

目录

51MCU

1.1.1初识单片机

单片机硬件系统

MCS-51单片机内部结构

引脚及其功能

三总线

单片机最小系统

单片机的时序周期

单片机内部存储器

片内RAM

常用寄存器介绍

片内ROM

2.1.1并口

P0(双向口)

P1(准双向口)

P2(准双向口)

P3(准双向口)

补充

3.1.1中断系统

中断概念

中断内部结构

中断源

中断标志

TCON(定时控制寄存器)

SCON(串口控制寄存器)

中断控制

IE中断允许控制寄存器

中断响应及处理

中断优先级

IP寄存器

中断嵌套

4.1.1定时/计数器

定时器的组成

控制寄存器

TCON

TMOD

工作方式

0

1

2

3

5.1.1串口

通信概念

并行通信

串行通信

传输方式

同步传输

异步传输

通信方式

单工通信

半双工通信

全双工通信

常见的通信标准的通信方式

波特率

通信校验

单片机串行接口的结构

控制串口寄存器

串行数据缓冲器(SBUF)

串行控制器(SCON)

电源控制器(PCON)

串行中断控制寄存器

串口工作方式

0

1

2

3

6.1.1并口扩展

总线拓展方式

串行拓展方式

7.1.1ADC转换

A-D转换

主要性能指标

A-D转换分类

ADC0809结构分析

引脚功能

接口电路

读取方法

D-A转换

主要性能指标

D-A转换分类

DAC0832结构分析

引脚功能

接口电路

直通

单缓冲

双缓冲


51MCU

1.1.1初识单片机

单片机又称单片微控制器(Single Chip Microcomputer),采用大规模集成电路技术把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O口、中断系统和定时/计数器等功能部件集成到一块电路芯片上的一个小而完善的计算机系统。

单片机硬件系统

1980年Inter推出的MCS-51系列单片机成为了单片机家族的典型代表。以此为基核,推出很多与MCS-51有极好兼容性的CHMOS单片机。如,宏晶 STC89CXX系列,Atmel AT89CXX系列等

MCS-51单片机内部结构

(1)CPU:中央处理器,由运算器和控制器等部件组成,能够完成运算和控制操作

(2)存储器:51单片机包括空间大小为4KB[可扩展]的片内ROM和空间大小为256B的片内RAM

(3)并行I/O口:51单片机共有4个8位的并行I/O口(P0 P1P2 P3 P4)可独立用于输入和输出控制

(4)定时/计数器:51单片机包括两个16位的定时/计数器。用于定时、延时又可以对外部事件进行计数和检测等

(5)中断控制:51单片机内部含有5个中断源和2个中断优先级,用于满足实时控制的需要。

(6)串行接口:51单片机采用通用异步全双工串行通信接口

引脚及其功能

补充:

控制信号引脚

(1)RST/VPD:RST复位信号输入端。当此端保持两个机械周期以上的高电平时,单片机完成复位操作,VPD为内部RAM的备用输入电源。当VCC断电,可以通过VPD为内部RAM供电,以保证信息的不丢失,且上电后能够正常运行

(2)ALE:地址锁存信号。在访问片外内存时,ALE用于控制P0口输出8位地址送入锁存器锁存起来,以实现地位地址的分时传送。在不访问外部地址时,ALE以1/6晶振频率的固定频率来输出正脉冲,可以作为外部时钟或者外部定时脉冲使用。

(3)/PSEN:外部程序内存读选通信号。在访问外ROM时,PSEN会产生负脉冲信号作为外ROM的读选通信号。

(4)/EA:程序内存的控制信号。当此端保持低电平时,CPU只访问片外ROM,保持高电平时,执行片内ROM指令(除非PC计数值超过0FFFH)

三总线

单片机最小系统

(1)电源接口电路:采用+5V供电,接入VCC引脚,同时VSS接地,为了有更好的抗干扰性,一般在VCC和VSS间接入高频和低频滤波电容。

(2)复位电路:复位是指单片机内部各寄存器的值变为初识状态。复位条件:当RST端接入高电平并保持两个机械周期以上时,单片机完成复位操作。复位电路有两种实现方式:

1)上电复位:RST内置下拉电阻,上电瞬间RST和VCC电位相同,随电容充电

,RST端电压逐渐下降,经T=RC后完成复位。

2)按键复位:完成上电复位后,电容充电完成,电路断路,此时RST电位为0,按下开关短路电容,电容放电,RST电压升高,完成复位。

(3)时钟电路:单片机内部有一个用于构成振荡器的高增益放大器,XTAL1和XTAL2分别是放大器的输入端和输出端,只需外接一个晶振和两个电容就可构成自激振荡器。

单片机的时序周期

单片机在CPU的统一指挥下协调工作,CPU根据不同的指令,产生相应的定时信号和控制信号,各部分和各控制信号之间要满足一定的时间顺序

(1)振荡周期(时钟周期):时钟周期就是为单片机提供定时信号的振荡源的周期,即晶振、RC振荡器等提供给单片机的频率的倒数。时钟周期又可以称为节拍或拍,用P表示。一般来说,提供给51单片机的晶振是12MHz或者11.0592MHz,12MHz的周期就是1/12 us。

(2)状态周期:CPU从一个状态转变到另一个状态所需要的时间为状态周期。两个时钟周期为一个状态周期,可以用S表示。第一个时钟周期(节拍)定义为P1,第二个时钟周期(节拍)定义为P2。

(3)机械周期:计算机完成一次完整的、基本的操作所需要的时间为机械周期。8051规定一个机器周期有6个状态周期,分别表示为S1、S2……S6。一个状态周期包含两个时钟周期,所以一个机器周期包含12个时钟周期,即机器周期是时钟周期的12分频。如果使用12MHz的时钟频率,一个机器周期就是1微秒。

(4)指令周期:执行一条指令所需要的时间为指令周期。指令周期以机器周期为单位,不同的指令按指令周期的不同,分为单机器周期指令,双机器周期指令和四机器周期指令。注意,没有三机器周期指令。对于单机器周期指令来说,如果单片机使用12MHz晶振,那么指令周期就是1us。注意,ARM是没有指令周期这一说法的。

单片机内部存储器

片内RAM

主要用于数据缓冲和中间数据的暂存,RAM使用过程中可以随时写入和读取信息。51单片机内部RAM共256字节(字节地址00H~FFH),可分为3个部分:低128字节RAM(与传统8051兼容)、高128字节RAM(lntel在8052中扩展了高128字节RAM)及特殊功能寄存器区。低128字节的数据存储器既可直接寻址也可间接寻址。高128字节RAM与特殊功能寄存器区貌似共用相同的地址范围,都使用80H~FFH,地址空间虽然貌似重叠,但物理上是独立的,使用时通过不同的寻址方式加以区分。高128字节RAM只能间接寻址,特殊功能寄存器区只可直接寻址一部分可按位寻址。

1)低128字节RAM也称通用RAM区。通用RAM区又可分为工作寄存器组区,可位寻址区,用户RAM区和堆栈区。工作寄存器组区地址从00H~1FH共32B(字节)单元,分为4组(每一组称为一个寄存器组),每组包含8个8位的工作寄存器,编号均为R0~R7,但属于不同的物理空间。通过使用工作寄存器组,可以提高运算速度。RO~R7是常用的寄存器。程序状态字PSW寄存器中的RS1和RS0组合决定当前使用的工作寄存器组。可位寻址区的地址从20H~2FH共16个字节单元。20H~2FH单元既可向普通RAM单元一样按字节存取,也可以对单元中的任何一位单独存取,共128位,所对应的位地址范围是00H~7FH。位地址范围是00H~7FH,内部RAM低128字节的地址也是00H~7FH:从外表看,二者地址是一样的,实际上二者具有本质的区别:位地址指向的是一个位,而字节地址指向的是一个字节单元,在程序中使用不同的指令区分。内部RAM中的30H~FFH单元是用户RAM和堆栈区。一个8位的堆栈指针(SP),用于指向堆栈区。单片机复位后,堆栈指针SP为07H,指向了工作寄存器组0中的R7,因此,用户初始化程序都应对SP设置初值,一般设置在80H以后的单元为宜。

2)高128字节RAM(字节地址80H~FFH),在这128个单元中离散分布这若干个特殊功能寄存器(SFR),专用于控制、选择、管理、存放单片机内部各部分的工作状态、条件、状态和结果。

SFR字节地址如果可以被8整除则可按位寻址

常用寄存器介绍

①程序计数器PC:PC是一个16位的计数器,其内容为将要执行的指令地址,寻址范围达64KB。PC在物理上是独立的,不属于SFR。PC没有地址,是不可寻址的,无法进行读写。执行指令时能自动改变内容,以改变程序的执行顺序。单片机上电或复位后,PC=0000H,强制单片机从程序的零单元开始执行程序。

②累加器ACC及B寄存器:ACC寄存器简称A寄存器。常用于存放参加算数或逻辑运算的操作数及运算结果。B寄存器主要用于乘法和除法运算,必须搭配A寄存器使用。

③数据指针DPTR:数据指针(DPTR)是一个16位专用寄存器,由DPL(低8位)和DPH(高8位)组成。DPTR是传统8051机中唯一可以直接进行16位操作的寄存器也可分别对DPL和DPH按字节进行操作。DPTR通常用于存放外部数据存储器的存储单元地址。

④堆栈指针SP:堆栈指针是一个8位专用寄存器。它指示出堆栈顶部在内部RAM块中的位置。系统复位后,SP初始化位07H,使得堆栈由08H单元开始,08H~1FH单元分别属于工作寄存器组1~3,若在程序设计中用到这些区,则最好把SP值改变为80H或更大的值为宜。51系列单片机的堆栈是向上生长的,即将数据压入堆后,SP内容增大。当数据被压栈时,SP+1;数据出栈时SP-1。

⑤I/O口寄存器:P0、P1、P2、P3寄存器,用于锁存通过端口的数据

⑥程序状态字寄存器PSW:

CY:标志位。进行加法运算时,当最高位即B7位有进位,或执行减法运算最高位有借位时,CY为1,反之为0

AC:进位辅助位。进行加法运算时,当B3位有进位,或执行减法运算B3有借位时,AC为1;AC :反之为0。设置辅助进位标志AC的目的是为了便于BCD码加法、减法运算的调整。

F0 :用户定义标志位,可通过为操作指令将其置位或清零。

RS1、RS0:工作寄存器组的选择位。

OV : 溢出标志位。在计算机内,带符号的数一律用补码表示。在8位二进制中补码能表示的范围为-128~+127,当运算结果超出范围时,OV置1;否则清零。

B1:保留位

P:奇偶标志位。用于指示ACC中1的个数的奇偶性。奇数置1,偶数置0。

片内ROM

主要用来存放计算机中所事先编制好的程序和表格常数。51单片机中有4KB的片内ROM单元,地址为0000H~0FFFH。

地址0000~0002H的3个单元时系统的启动单元,在单片机复位后会自动从0000H开始执行程序,但实际上这三个单元不存放任何程序,用户在使用时,需要在单元中房一条无条件的跳转指令,跳转到指定程序地址执行。

地址0003H~002AH的40个单元则被平均分为5段,每段8个单元,分别用做5个中断源的中断地址区。由于相邻中断入口地址的间隔区间(8个字节)有限,一般情况下无法保有完整的中断服务程序,因此,一般在中断响应的地址区域存放一条无条件转移指令,指向真正存放中断服务程序的空间去执行。

2.1.1并口

P0(双向口)

P0端口有P0.0~P0.7共8个引脚,这些引脚除了可用作输入引脚和输出引脚外,在外接存储器时,还可用作地址(低8位)/数据总线引脚。P0端口每个引脚的内部电路结构都相同,其内部电路结构如图所示。

控制线为“1”时P0当地址/数据总线引脚;为“0”时作输入引脚和输出引脚

当P0口需要输出可靠的“1”时必须在外部加上拉电阻,因为当“1”输出时VT1与VT2都处于关闭状态,此时引脚浮空无法输出可靠的“1”。

P1(准双向口)

 P1端口有P1.0~P1.7共8个引脚,这些引脚可作输入引脚和输出引脚。P1端口每个引脚的内部电路结构都相同,其内部电路结构如图所示。P1端口的结构较P0端口简单很多,其输出电路采用了一个晶体管,在晶体管的漏极接了一只内部上拉电阻,所以在 P1端口引脚外部可以不接上拉电阻。

P2(准双向口)

P2端口有P2.0~P2.7共8个引脚,这些引脚除了可用作输入引脚和输出引脚外,在外接存储器时,还可用作地址总线(高8位)引脚。P2端口每个引脚的内部电路结构都相同,其内部电路结构如图所示。

P3(准双向口)

P3端口有P3.0~P3.7共8个引脚,P3端口除了可用作输入引脚和输出引脚外,还具有第二功能。P3端口每个引脚的内部电路结构都相同,其内部电路结构如图所示。

当P3作为第二功能使用时,不能同时使用输入输出功能。

补充

当IO引脚当作输入时,要区分读引脚和读锁存器(端口)。读引脚时必须预先在锁存器中输入“1”,不然会使晶体管导通,读入一直为“0”(51单片机IO端口复位值为“1”)

IO详细工作原理:51单片机I/O端口的结构和工作原理_51单片机引脚读写原理-CSDN博客

3.1.1中断系统

中断概念

当CPU正在执行程序时,由单片机外部或内部的原因引起的随机事件,要求CPU暂时停止正在执行的程序,转向执行一个处理该随机事件的程序,处理完成后又返回继续执行断点处程序,这一过程就是中断,而引起中断的随机事件叫做中断源。

中断内部结构

中断系统有5个中断请求源(简称中断源),2个中断优先级,可实现2级中断服务程序嵌套,4个控制中断的寄存器TCON、SCON、IE、和IP。

中断源

(1)两个外部中断源:INT0和INT1,由P3.2和P3.3引入。

(2)两个定时/计数器中断源:T0和T1是两个16位的定时/计数器。当计数溢出时向CPU发出中断请求。

(3)一个串口中断源:51单片机内部有一个全双工的串行端口,可以与外部通信,当接受或发送一帧数据就会向CPU发送中断请求。

51单片机为每个中断源都设置了中断标志位。当检测当中断请求信号后,先将相应的中断标志位置位,以便在后续机器周期里进行下一步的控制和处理。中断标志位集中锁存在TCON和SCON中。

中断标志

TCON(定时控制寄存器)

IT0:外部中断INT0的触发方式控制位。由软件进行置位和复位,“0”时,为低电平触发;“1”时,为下降沿触发(负跳变触发)。

IE0:外部外部中断INT0的中断请求标志位。当INT0有信号时,该位由硬件自动置1,CPU响应中断后由硬件自动置0。

IT1:外部中断INT1的触发方式控制位。由软件进行置位和复位,“0”时,为低电平触发;“1”时,为下降沿触发(负跳变触发)。

IE1:外部外部中断INT1的中断请求标志位。当INT1有信号时,该位由硬件自动置1,CPU响应中断后由硬件自动置0。

TR0:定时/计数器T0的启动控制位。由软件进行设定,当TR0=0时,停止T0定时(计数);TR0=1时,启动定时(计数)。

TF0:定时/计数器T0的溢出中断标志位。当T0定时(计数)结束时,由硬件自动置1,在CPU响应中断后,由硬件自动清零。也可由软件查询该标志,并由软件清0。

TR1:定时/计数器T1的启动控制位。由软件进行设定,当TR1=0时,停止T1定时(计数);TR1=1时,启动定时(计数)。

TF1:定时/计数器T1的溢出中断标志位。当T1定时(计数)结束时,由硬件自动置1,在CPU响应中断后,由硬件自动清零。也可由软件查询该标志,并由软件清0。

SCON(串口控制寄存器)

串口控制寄存器的低两位与中断控制有关

RI:当串口接受完一帧数据后由硬件置位,但标志必须由软件清零。

TI:当串口发送完一帧数据后由硬件置位,但标志必须由软件清零。

中断控制

IE中断允许控制寄存器

EA:中断总允许控制位。EA=0,中断总关闭;EA=1,中断总允许。

ES:串口中断允许位。ES=1,允许串口中断;ES=0,禁止串口中断。

ET1:定时/计数器T1中断允许位。ET1=1,允许定时/计数器T1中断;ET1=0,禁止定时/计数器T1中断。

EX1:外部中断INT1中断允许位。EX1=1,允许外部INT1中断;EX1=0,禁止外部INT1中断。

ET0:定时/计数器T1中断允许位。ET0=1,允许定时/计数器T0中断;ET0=0,禁止定时/计数器T0中断。

EX0:外部中断INT1中断允许位。EX0=1,允许外部INT0中断;EX0=0,禁止外部INT0中断。

中断响应及处理

(1)中断请求:

当CPU收到中断请求信号时,会停止当前正在执行的程序转而执行中断程序。为了保证CPU可以接收到中断信号,中断请求标志一个保持到CPU响应中断后才能取消,CPU会不断的查询中断标志。

(2)中断响应:
中断响应的条件:

①有中断源发出的中断请求。

②EA置位。

③申请中断的中断源的中断允许位置位。

中断受阻情况:

①CPU正在执行同级中断或更高级的中断。

②正在执行的指令尚未完成。

中断响应操作:

①保护断点地址。

②撤销中断源的中断请求标志。CPU响应中断后,会在执行每一条指令的最后一个机械周期查询各中断请求标志位是否置位。对于51单片机,除串口中断必须在响应后软件置0,其他由硬件置0。

③关闭同级中断

④将对应中断的入口地址送入PC。当中断响应后,CPU能按中断种类,自动转到各中断的单元入口地址处去执行程序,但是每个中断的8个单元放不下完整的中断程序,所以在使用时,可以在各中断地址存放一条无条件跳转指令,将实际的中断服务程序存放在其他单元空间。

(3)中断处理

①保护现场。现场是指单片机中某些寄存器和存储器单元中的数据或状态。为使中断服务子程序的执行不破坏这些数据或状态,要送入堆栈保存起来,这就是现场保护。(保护现场不是中断服务程序的必需部分,可根据需要编写)

②关中断和开中断。现场保护前和现场恢复前关中断,是为防止此时有高一级的中断进入,避免现场被破坏。在现场保护和现场恢复之后的开中断是为下一次的中断做好准备,也为了允许有更高级的中断进入。这样,中断处理可以被打断,但原来的现场保护和现场恢复不允许更改,除了现场保护和现场恢复的片刻外,仍然保持着中断嵌套的功能。但有时候,一个重要的中断必须执行完毕,不允许被其他的中断嵌套。可在现场保护前先关闭总中断开关位,待中断处理完毕后再开总中断开关位。

③执行中断服务程序。

④恢复现场(非必需)。

⑤中断返回。逻辑上,一个中断服务程序,不能传递参数进去,也不可返回值。当中断发生时,编译器插入的代码被运行,它将累加器,B,DPTR和PSW(程序状态字)入栈。最后,在退出中断程序时,预先存储在栈中 被恢复。最后的"}"结束符号将插入RETI到中断程序的最后,为了用 Keil C语言创建一个ISR,利用 interrupt 关键词和正确的中断号声明一个static void函数。Keil C编译器自动生成中断向量,以及中断程序的进口、出口代码。Interrupt 函数属性标志着该函数为ISR。可用using属性指定ISR使用哪一个寄存器区,这是可选的。有效的寄存器区范围为1到3。

中断优先级

IP寄存器

相应位置1为高优先,单片机复位IP各位清零,可按位寻址。

自然优先权

中断源具有自然优先权,当CPU需要响应多个同级中断时,按照自然优先级响应。自然优先权由硬件本身决定,距离CPU越近优先级越高。

中断嵌套

当CPU在执行某个中断时,如果有更高级的中断给CPU中断请求,CPU将停止当前中断转向更高级的中断,当完成高级中断后继续执行低级中断,这就是中断嵌套。

补充(外部中断的触发方式)

①低电平触发。当单片机中断请求输入端上采样到有效的低电平时,就会启动外部中断。此时,中断标志位会随着CPU在每个机器周期采样到的电平变化而变化。这样提高了响应速度,但是有效电平必须保持到中断响应为止,不然中断无法响应;而且必须在中断服务程序结束前撤销有效信号,否则会连续触发中断。电平触发方式适合能够手动清除外部中断请求的系统。

②边沿脉冲触发方式。如果在一个机械周期采样到高电平,下一个周期采样到低电平,则认为中断请求有效。

4.1.1定时/计数器

定时器的组成

51单片机内部有两个16位定时/计数器T0和T1都具有计数方式和定时方式两种工作方式。对每个定时器/计数器(T0和T1),在特殊功能寄存器TMOD中都有控制位来选择TO或T1为定时器还是计数器。定时器/计数器的核心部件是一个加法(也有减法)的计数器,其本质是对脉冲进行计数。只是计数脉冲来源不同:如果计数脉冲来自系统时钟,则为定时方式,此时定时器/计数器每12个时钟或者每6个时钟得到一个计数脉冲,计数值加1:如果计数脉冲来自单片机外部引脚(T0为P3.4,T1为P3.5),则为计数方式,如果前一个机器周期采样值为1,后一个机器周期采样值为0 ,则说明有一个脉冲,计数器加1。此种方式需要两个机器周期来检测一个负跳变信号,因此最高的计数频率为时钟频率的1/24。

当加到全1时再来一个脉冲使加1计数器归零,同时加1计数器的溢出使TCON寄存器中的TF0(或TF1)置1,向CPU发出中断请求。

在计数允许范围内计数器可以从任意值来计数,只需要设置相应初值即可。初值 = 最大计数值 - 计数值

定时/计数器有4种工作方式(0、1、2、3),两种启动方式(软启动和软硬启动)

控制寄存器

TCON

IT0:外部中断INT0的触发方式控制位。由软件进行置位和复位,“0”时,为低电平触发;“1”时,为下降沿触发(负跳变触发)。

IE0:外部外部中断INT0的中断请求标志位。当INT0有信号时,该位由硬件自动置1,CPU响应中断后由硬件自动置0。

IT1:外部中断INT1的触发方式控制位。由软件进行置位和复位,“0”时,为低电平触发;“1”时,为下降沿触发(负跳变触发)。

IE1:外部外部中断INT1的中断请求标志位。当INT1有信号时,该位由硬件自动置1,CPU响应中断后由硬件自动置0。

TR0:定时/计数器T0的启动控制位。由软件进行设定,当TR0=0时,停止T0定时(计数);TR0=1时,启动定时(计数)。

TF0:定时/计数器T0的溢出中断标志位。当T0定时(计数)结束时,由硬件自动置1,在CPU响应中断后,由硬件自动清零。也可由软件查询该标志,并由软件清0。

TR1:定时/计数器T1的启动控制位。由软件进行设定,当TR1=0时,停止T1定时(计数);TR1=1时,启动定时(计数)。

TF1:定时/计数器T1的溢出中断标志位。当T1定时(计数)结束时,由硬件自动置1,在CPU响应中断后,由硬件自动清零。也可由软件查询该标志,并由软件清0。

TMOD

工作方式

0

1

2

3

5.1.1串口

通信概念

并行通信

并行通信通常是将数据字节的各位用多条数据线同时进行传送,通常是 8 位、16 位、32 位等数据一起传输。

特点:速度快、效率高;但需要传送数据线多,传输成本大;

串行通信

串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度;

特点:传输线少,长距离传送时成本低,但速度慢,适合大数据传输和远距离的数据通信;

传输方式
同步传输

同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。

异步传输

异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程,为使双方的收发协调,通信双方应该各自约定通信速率;异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“ 位间隔”的整数倍。

通信方式

单工通信

单工是指数据传输仅能沿一个方向,不能实现反向传输。

半双工通信

半双工是指数据传输可以沿两个方向,但需要分时进行。

全双工通信

全双工是指数据可以同时进行双向传输。

常见的通信标准的通信方式

波特率

串行通信的传送速率是指数据传送的速度,一般用波特率进行表示。波特率定义为串行通信时每秒传送“位”的个数。例如:1s传送1bit,就是1波特,即n波特=n b/s。

通信校验

在通信过程中往往要对数据传送的正确与否进行校验。校验是保证准确无误传输数据的关键,常用的校验方法有奇偶校验、和校验等。

奇偶校验:奇偶校验是检验串行通信双方传输的数据正确与否的一个措施,并不能保证通信数据的传输一定正确。即,如果奇偶校验发生错误,表明数据传输一定出错了;而如果奇偶校验没有出错,那么数据传输也不一定完全正确。

奇校验:8位有效数据连同1位附加位(RB0)中,二进制“1”的个数为奇数。

偶校验:8位有效数据连同1位附加位(RB0)中,二进制“1”的个数为偶数。

和校验:所谓和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据,同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无错,否则即认为传送过程中出现了错误。

单片机串行接口的结构

控制串口寄存器

串行数据缓冲器(SBUF

SBUF串行口缓冲寄存器。包括发送寄存器和接收寄存器,以便能以全双工方式进行通信。此外,在接收寄存器之前还有移位寄存器,从而构成了串行接收的双缓冲结构,以避免在数据接收过程中出现帧重迭错误。与接收数据情况不同,发送数据时,由于CPU是主动的,不会发生帧重迭错误,因此发送电路就不需要双缓冲结构。
在逻辑上,SBUF只有一个,即表示发送寄存器,又表示接收寄存器。具有同一个单元地址99H。而在物理上,SBUF是两个,一个是发送缓冲寄存器,另一个是接收缓冲寄存器。
在完成串行初始化后,发送时,只需要将发送数据输入SBUF,CPU将自动启动和完成串行数据的发送;接收时,CPU 将自动把接收到的数据存入SBUF,用户只需从SBUF中读取出接收的数据。

串行控制器(SCON

电源控制器(PCON

串行中断控制寄存器

EA、ES位控制串行中断的允许

串口工作方式

0

1

2

3

补充

6.1.1并口扩展

所有扩展的IO口或相当于IO口的外设以及通过 IO口连接的外设,均与片外数据存储器统一编址,访问IO口的指令就是访问外部数据存储器的指令(MOVX)。对于数据存储器来说,或者是单片机读取存储器的数据,或者是单片机将数据写入存储器,而单片机与外设所能进行的无非是数据的输入或输出,也就是说,单片机与外设进行的只是数据的传输,所以,外设或 IO 口可当做数据存储器进行扩展。

总线拓展方式

总线扩展的方法是将扩展的并行IO口芯片连接到MCS-51单片机的总线上,即数据总线使用PO口,地址总线使用P2和PO口,控制总线使用部分P3口。这种扩展方法基本上不影响总线上其他扩展芯片的连接,在51系列单片机应用系统的IO扩展中被广泛应用。

串行拓展方式

51单片机串行口工作方式0时,提供一种IO扩展方法。串行口方式0是移位寄存器工作方式,可借助外接串入并出的移位寄存器扩展并行输出口,也可通过外接并入串出的移位寄存器扩展并行输入口。这种扩展方法不占用并行总线且可以通过多个并行O扩展,由于采用串行输入输出的方法,所以数据传输速度较慢。

7.1.1ADC转换

A-D转换

在单片机应用系统中,经常需要将其检测到的模拟量如电压、温度、压力和流量等转换成单片机可以接受的数字信号,才能输入到单片机中处理,此过程称为A-D转换。

主要性能指标

A-D转换分类

按照信号传输形式分为:串行A-D、并行A-D

按照转换原理分为:

ADC0809结构分析

引脚功能

接口电路

读取方法

(1)延时:EOC悬空,启动转换后,延时100us读取转换结果

(2)查询:EOC接IO口,当查的EOC变高时,读入转换结果

(3)中断:EOC取反后接入单片机中断请求端,转换结束作为中断请求信号向单片机发出中断申请,在中断服务函数中读取转换结果

D-A转换

DAC(数/模转换器)是将数字量转换成相应的模拟量,每一个数字量都是二进制代码按位组合,每一位数字代码都对应着一定大小的模拟量。为了将数字量转换成模拟量,应将其每一位转换成相应的模拟量,然后求和即得到与数字量成正比的模拟量

主要性能指标

精度与分辨率是两个不同的概念。精度是指转换后所得的实际值对于理想值的接近程度;而分辨率是指能够对转换结果发生影响的最小输入量。对于分辨率很高的 D-A 转换器并不一定具有很高的精度。

D-A转换分类

D-A 转换器按数据传送形式来分,可以分为并行和串行两种。并行输入方式的DAC占用的单片机 IO口资源较多,但转换的时间较快,如果系统对DAC的转换速度要求很高时,一般可直接采用并行输入的DAC。

串行DAC占用的数据线少,待转换的数据逐位输入,影响转换速度,但在转换位数较多时,在转换位数较多时,有较高的性价比。

DAC0832结构分析

引脚功能

接口电路
直通

单缓冲

双缓冲

  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值