本篇文章给大家谈谈嵌入式技术洞察:单片机系列深度解析,以及对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
【嵌入式牛简介】:各种电子设备、自动化等已经在我们的生活中普及起来。我们可以通过小芯片实现对世界更加精准的控制。
【嵌入式牛鼻子】:51个单片机基础知识
【嵌入式牛问】:芯片如何识别命令才能达到想要的效果?
【嵌入牛文】:
1、STC89C51单片机外部引脚介绍
电源和时钟引脚:Vcc(引脚40)、GND(引脚20)、XTAL1(引脚19)、XTAL2(引脚18)。
Vcc、GND——单片机电源引脚。不同型号的单片机连接到相应电压的电源。正常电压为+5V,低电压为+5V。
+3.3V。
XTAL1、XTAL2——外部时钟引脚。 XTAL1是片内振荡电路的输入端子,XTAL2是片内振荡电路的输出端子。 8051的时钟有两种方式。一种是片内时钟振荡方式,需要在这两个引脚上外接石英晶体和振荡电容。振荡电容的值一般为10p~30p;另一种是外部时钟模式,需要XTAL1接地,外部时钟信号从XTAL2引脚输入。
编程控制引脚。如RST(复位)、PSEN(引脚29)、ALE/PROG(引脚30)、EA/Vpp(引脚31)。
RST(引脚9)——微控制器复位引脚。通常在连续两个以上机器周期的高点输入时有效,用于完成单片机的复位初始化操作。复位后,程序计数器PC=0000H,单片机从程序存储器的0000H单元读取第一条指令代码。也就是说,微控制器从头开始执行程序。
PSEN(引脚29)——程序存储器允许输出控制端。读外部程序存储器时,PSEN低电平有效,实现外部程序存储器单元的读操作(理解即可)。
ALE/PROG(引脚30)—— 当单片机扩展外部RAM时,ALE用于控制P0口输出的低8位地址送到锁存器锁存器,实现地址和数据的隔离。 (只要理解就可以了)。
EA/Vpp(引脚31) —— 当EA接高电平时,单片机读取内部程序存储器。当扩展有外部ROM时,读取内部ROM后自动读取外部ROM。当EA接低电平时,单片机直接读取外部ROM。
I/O 端口引脚—— 端口P0、端口P1、端口P2、端口P3。
端口P0(引脚39-32) —— 双向8 位I/O 端口。每个端口都可以独立控制。它没有上拉电阻,处于高阻状态,所以不能正常输出高低电平。因此,这组IO口正在使用中。请务必连接上拉电阻,通常为10 k。
P1口(引脚1-8) ——准双向8位IO口。每个端口均可独立控制,并内置上拉电阻。该接口的输出不具有高阻状态,输入无法锁存,因此它不是真正的双向IO。嘴。之所以称为准双向,是因为在端口作为输入之前,必须先向端口写入1操作,然后单片机内部才能正确读取外部信号,即首先必须有一个“准确”的准备过程,因此它是一个准双向接口。
P2 口(引脚21-28) —— 准双向8 位I/O 口,每个口可独立控制,内置上拉电阻,与P1 口类似。
P3口(引脚10-17)是——准双向8位IO口。每个端口均可独立控制,并内置上拉电阻。作为第一个功能,它可以用作普通I/O端口,类似于P1端口。 P3 端口可用作第二功能。参考下表:
2. 等级特征
单片机的输入输出电平均为TTL电平,其中高电平为+5V,低电平为0V。计算机串口为RS-232电平,高电平为-12V,低电平为+12V。请注意,RS-232 具有负逻辑电平。
3.单片机的几个周期介绍
时钟周期:也叫振荡周期,定义为时钟频率的倒数(可以这样理解,时钟周期就是单片机外部晶振的倒数,比如12Mhz晶振,它的时钟周期为1/12us),是单片机中最长的周期。基本的、最小的时间单位。在一个时钟周期内,CPU只完成这个最基本的动作
状态周期:时钟周期的两倍
机器周期:微控制器的基本操作周期。在一个操作周期内,单片机完成一次基本操作,如取指令、读写存储器等。它由12个时钟周期(6个状态周期)组成。
指令周期:指CPU执行一条指令所花费的时间。一般一个指令周期包含14个机器周期。
4. 移位操作
左移。 C51运算符为“”,最低位补零
向右移动。与上面相同
循环左移,最高位移入最低位,其他依次左移一位。
5、数码管显示原理
从电路上来说,有共阴极和共阳极之分。要让数码管显示不同的数字,首先要定义一个数组来存储十六进制数,然后在程序中将这个十六进制数赋给相应的引脚。
6. 中断概念
51单片机共有6个中断源。
INT0—— 外部中断0
INT1—— 外部中断1
T0/1/2——定时器/定时器中断,由计数器归零引起。
T1/R1——串口中断是串口端完成一帧字符的发送/接收后引起的。
7、单片机定时器中断
51单片机内部有两个16位可编程定时器/计数器,即定时器T0和定时器T1。它们具有计时和计数功能。定时器/计数器的本质是一个加1计数器(16位),它由两个寄存器组成:高8位和低8位。 TMOD寄存器是定时器/计数器的工作模式寄存器,决定了工作模式和功能; TCON是控制寄存器,控制T0、T1的启动和停止以及设置溢出标志。
加一计数器的输入计数脉冲有两个来源。一是系统时钟振荡器的输出脉冲除以12后发送;另一种是由T0或T1引脚输入的外部脉冲源。如果定时器/计数器工作在定时模式,则表示时间已到;如果工作在计数模式,则表示计数值已满。
定时器初始化过程如下:
给TMOD赋值,决定T0和T1如何工作。
计算初始值并将初始值写入TH0、TL0 或TH1、TL1。
中断模式下,给IE赋值,使能中断。
设置TR0或TR1启动定时器/计数器计时或计数
8.并行和串行基本通信方式
1.并行通信方式:使用多条数据线同时传输每一位数据字节。每条数据都需要一条传输线。
2、串行通信方式:串行通信是将数据字节分成各位,在传输线上一位一位地传输。此时只需要一根数据线即可。
3、异步串行通信方式:是指通信接收和发送设备利用自己的时钟来控制数据的发送和接收过程。其特点是:不要求发送双方的时钟严格一致,实现容易,设备开销小,但每个字符需要23个附加位,用于起始位、校验位、停止位位,并且每帧之间有间隙。所以传输效率不高。单片机与单片机之间、单片机与计算机之间进行通信时,通常采用异步串行通信。
4、同步串行通信方式:同步通信时,必须建立发送方时钟对接收方时钟的直接控制,使双方完全同步。
9、RS-232电平与TTL电平的转换
一般采用MAX232实现电平转换
10、波特率与定时器初值的关系
1、波特率:单片机或计算机在串行通信时的速度用波特率来表示。定义为每秒传输的二进制码的位数,即1波特=1位/秒,单位为bps。
2、波特率的计算:在串行通信中,接收方和发送方对发送或接收数据的速率有一个约定。通过编程可以为单片机的串口设置四种工作模式。模式0和模式2的波特率是固定的,而模式1和模式3的波特率是可变的。波特率由定时器T1的溢出决定。率来决定。
3、为什么51系列单片机普遍采用11.0592MHz晶振设计?常用的波特率根据规格通常有1200、2400、4800、9600…。如果使用12Mhz或6Mhz的晶振,则计算出的T1时序初始值将不是整数,这会导致通信过程中的累积误差。
11、串口结构说明
1、串口结构:51单片机的串口是可编程的全双工通信接口。它具有UART(通用异步接收器-发送器)的所有功能,并且可以同时发送和接收数据。串口主要由两个独立的串行数据缓冲寄存器SBUF(发送缓冲寄存器和接收缓冲寄存器)、发送控制器、接收控制器、输入移位寄存器和几个控制门电路组成。当执行写指令时,访问串行发送寄存器;当执行读指令时,访问串行接收寄存器。与串口关系密切的一个特殊功能寄存器是串口控制寄存器SCON,用于设置串口的工作模式、接收/发送控制、设置状态标志等。
2、串口模式介绍:重点关注模式1:模式1是十位数据的异步通信口,其中1为起始位,8为数据位,1为停止位。 TXD为数据发送引脚,RXD为数据接收引脚。其传输的波特率是可变的。对于51单片机来说,波特率是由定时器1的溢出率决定的。通常在做单片机与单片机之间、单片机与计算机之间的串行通信、计算机与计算机之间的串行通信时,基本都选择模式1。
3、在具体操作串口之前,需要对单片机串口相关的一些特殊功能寄存器进行初始化和设置,主要是设置生成波特率的定时器1、串口控制和中断控制。 确定T1 的工作模式(编程TMOD 寄存器) 计算T1 的初始值,加载TH1、TL1 启动T1(编程TCON 寄存器的TR1 位) 确定串口的工作模式(编程TCON 寄存器) SCON寄存器) 串口工作在中断模式,必须进行中断设置(编程IE和IP寄存器)
12.I2C总线概述
1、I2C具有接线端口少、控制简单、器件封装小、通信速度高等优点。 I2C总线由两条线组成:数据线SDA和时钟线SCL。它可以发送数据和接受数据。
2、单片机模拟I2C总线通信,因为很多单片机没有I2C总线接口,比如51单片机。不过,我们可以在单片机应用系统中通过软件模拟I2C总线的工作时序。使用时我们只需要正确调用各个函数即可。方便扩展I2C总线接口设备。
3、单片机模拟I2C通信时,需要编写以下程序关键部分:总线初始化、启动信号、响应信号、停止信号、写一个字节、读一个字节。
13. MCU空闲和掉电模式
1. 空闲模式:除CPU处于睡眠状态外,其他硬件均处于活动状态。
2、掉电模式:也变成睡眠模式,外部晶振停止,CPU、定时器、串口全部停止工作,只有外部中断继续工作。
14.看门狗概念
在单片机组成的系统中,由于单片机的工作可能会受到外界电磁场的干扰,导致程序跑飞,陷入死循环,程序的正常运行被中断,所以为了实时监控单片机的运行状态,经过思考,制作了一款专门用于监控单片机程序运行状态的芯片,俗称看门狗。工作过程如下:看门狗芯片连接到单片机的IO引脚。 IO引脚由单片机程序控制,使其定期向看门狗的引脚发送高电平(或低电平)。 ),该程序语句分散在微控制器的其他控制语句中。一旦单片机陷入某个程序段,因干扰导致程序跑飞而进入死循环,程序就会向看门狗引脚发送一个电平。那么就无法执行了。此时,由于看门狗电路无法获取单片机的信号,因此会向与单片机复位引脚相连的引脚发送复位信号,使单片机复位。
15.SPI接口
1. 概述
SPI=Serial Peripheral Interface,即串行外设接口,是一种高速、全双工、同步通信总线。传统上它只占用四根线,节省了芯片引脚和PCB布局空间。现在越来越多的芯片集成了这种通信协议,常见的有EEPROM、FLASH、AD转换器等。
优势:
1.支持全双工,推挽驱动性能优于开漏信号完整性;
2.支持高速(100MHz以上);
3、协议支持字长不限于8位,消息字长可根据应用特点灵活选择;
4、硬件连接简单;
缺点:
1、比IIC多了两根线;
2、没有寻址机制,只能通过片选来选择不同的器件;
3、没有收到从设备的ACK,主设备不知道传输是否成功;
4. 典型应用仅支持单master;
5、与RS232、RS485、CAN总线相比,SPI传输距离短;
2、硬件结构
SPI 总线定义两个或多个设备之间的数据通信。提供时钟的设备为主设备,接收时钟的设备为从设备。
该信号定义如下:
SCK : 串行时钟串行时钟
MOSI : 主输出,从输入主发送和从接收信号
嵌入式技术洞察:单片机系列深度解析的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、嵌入式技术洞察:单片机系列深度解析的信息别忘了在本站进行查找哦。
【嵌入式技术洞察:单片机系列深度解析】相关文章:
用户评论
想看点具体的项目案例分析!
有5位网友表示赞同!
终于有人发文讲单片机了,期待深入了解。
有6位网友表示赞同!
我刚开始学习单片机,这篇文章对我很有帮助哦!
有12位网友表示赞同!
希望这篇文章能涵盖不同类型的单片机。
有10位网友表示赞同!
单片机的应用场景实在太多,这个系列好生动!
有8位网友表示赞同!
感觉很专业,一定会有很多干货!
有16位网友表示赞同!
好久没关注了,来看看现在最新的单片机进展。
有7位网友表示赞同!
希望能讲解一下编程方面的知识。
有11位网友表示赞同!
学习单片机的基础知识确实挺不容易的,希望能有更直观的教程。
有19位网友表示赞同!
期待看到一些实战应用案例,例如智能家居的例子。
有9位网友表示赞同!
这个系列能帮我掌握单片机的基本原理吗?
有14位网友表示赞同!
我最近在玩一套单片机的开发板,看看能不能帮到我!
有11位网友表示赞同!
喜欢这样的科普文,可以让我更加清楚地了解单片机。
有6位网友表示赞同!
之前对单片机一直很陌生,希望这篇文章能让我入门。
有6位网友表示赞同!
学习单片机编程真是一点也不简单啊~!
有5位网友表示赞同!
想要深入学习单片机的驱动和接口知识!
有15位网友表示赞同!
期待作者能分享一些自己设计的单片机项目作品!
有20位网友表示赞同!
这篇文章能让我了解现在的单片机技术现状吗?
有18位网友表示赞同!
希望文章能涵盖不同类型的单片机编程语言。
有9位网友表示赞同!
学习单片机可以拓展我的技能,期待更多精彩内容!
有5位网友表示赞同!