单片机复习
[TOC]
一. 单片机三总线:
- 数据总线(Data Bus):数据总线用于在单片机内部传输数据。它是双向的,用于传输来自内存、外设或其他单元的数据。数据总线的宽度决定了单片机能够同时传输的数据位数,例如8位、16位或32位数据总线。
- 地址总线(Address Bus):地址总线用于指定单片机中的内存位置或外设的地址。它是单向的,用于从单片机发送地址信号。地址总线的宽度决定了单片机的寻址能力,即可以寻址的内存或外设的数量。例如,一个16位地址总线可以寻址2^16 = 65536个不同的内存位置或外设地址。
- 控制总线(Control Bus):控制总线用于传输控制信号和命令,以控制单片机的操作。它包括各种控制信号,如读写控制信号、时钟信号、复位信号、中断信号等。控制总线通常是双向的,用于传输控制信号和接收来自外部设备的状态信号.
二. 外部中断请求标志的概念以及含义作用
- 含义:中断请求标志位表示某个外部事件或设备触发了中断请求,需要单片机暂停当前的执行任务,转而处理中断事件。
- 作用:
- 优先级控制:通过检查不同的中断请求标志位,单片机可以按照设定的优先级处理中断事件,以确保重要的中断优先得到处理。
- 及时响应:中断请求标志位的存在使得单片机能够迅速响应外部事件,而不需要不断地轮询或等待。
- 任务切换:当中断请求发生时,单片机可以通过保存当前执行任务的上下文,暂停执行当前任务,并切换到中断服务程序来处理中断事件。处理完成后,再返回到原来的任务继续执行。
- 事件处理:中断请求标志位的改变通常会触发一个中断服务程序(ISR,Interrupt Service Routine),该程序用于处理中断事件。通过检查中断请求标志位,单片机能够确定要执行哪个中断服务程序来处理特定的中断事件。
三. 中断控制的设置
- 确定中断源:首先需要确定系统中的中断源,即会触发中断请求的设备或事件。这可以是外部设备(如按键、传感器等)、定时器、通信接口或其他软件生成的中断请求。
- 分配中断向量:每个中断源需要分配一个唯一的中断向量。中断向量是一个地址,用于指示中断处理程序(中断服务例程,ISR)的入口点。通常,中断向量会在系统初始化过程中分配和设置。
- 中断控制器设置:如果系统使用中断控制器,需要对中断控制器进行相应的设置。这包括配置中断优先级、中断屏蔽和中断使能等。
- 中断处理程序编写:为每个中断源编写相应的中断处理程序(中断服务例程)。中断处理程序是在中断发生时执行的一段代码,用于处理特定的中断事件。
- 中断使能:在适当的时候,启用或禁用中断。这可以通过设置相应的中断使能位或中断屏蔽位来实现。
- 中断优先级设置:如果系统支持中断优先级,可以根据需求设置中断的优先级顺序。较高优先级的中断将在较低优先级的中断之前得到处理。
四. 复位的有效电平
复位信号的有效电平是指触发系统复位操作的电平条件。有效电平可以是高电平(通常为逻辑1)或低电平(通常为逻辑0),具体取决于系统设计和所使用的芯片或器件。
在大多数系统中,复位信号的有效电平通常是低电平(0).
五. 复位后寄存器的值
- 通用寄存器(R0-R7):复位后,通用寄存器的值为未定义或随机值。需要程序员自行初始化。
- 程序计数器(PC):复位后,程序计数器的初始值为0x0000,即程序的起始地址。
- 堆栈指针(SP):复位后,堆栈指针的初始值为0x07(若使用两个字节的堆栈则为0x1FF)。
- 特殊功能寄存器(SFR):复位后,大多数SFR的值会被设置为特定的初始值,如:
- P0:初始值为0xFF(全为高电平)。
- P1:初始值为0xFF(全为高电平)。
- P2:初始值为0xFF(全为高电平)。
- P3:初始值为0xFF(全为高电平)。
- TMOD:初始值为0x00(定时器模式寄存器,全为0)。
- TCON:初始值为0x00(定时器控制寄存器,全为0)。
- SCON:初始值为0x00(串口控制寄存器,全为0)。
- IE:初始值为0x00(中断使能寄存器,全为0)。
六. 计数器工作时,外部引脚如何工作和连接
C51系列单片机通常具有多个IO引脚,其中一些可以用于连接计数器的外部引脚。以下是在C51系列单片机中配置计数器的外部引脚的一般步骤:
- 选择计数器模式:
- C51系列单片机通常具有多个计数器模块,如定时器/计数器T0和T1。
- 首先,选择要使用的计数器模块,并确定其计数器模式(定时器模式或计数器模式)。
- 配置引脚工作模式:
- 根据所选计数器模块和计数器模式,确定要用于计数器的引脚。
- 在C51中,可以使用特殊功能寄存器(SFR)来配置引脚的工作模式。
- 例如,使用P3口的引脚作为计数器T0的外部引脚输入,可以将P3口的相应位设置为输入模式。
- 连接外部信号源:
- 将外部计数脉冲源或信号源连接到所选的计数器外部引脚。
- 例如,如果计数器T0的外部引脚为P3.4(对应8051的P3.4引脚),则可以通过将外部计数脉冲源连接到P3.4引脚来输入计数脉冲。
- 编写计数器配置代码:
- 使用C语言或汇编语言编写代码来配置计数器的工作模式和相关设置。
- 这包括设置计数器的计数模式(递增或递减)、计数器的初值、中断使能等。
- 通过编程设置相关寄存器(如TCON、TMOD等)来完成计数器的配置。
七. 串口收发时如何工作
- 串口参数设置:
- 首先,需要配置串口的参数,例如波特率(Baud Rate)、数据位数、停止位、奇偶校验等。
- 这些参数设置通过控制SCON寄存器的位来实现。具体的位设置可以参考AT89C51的技术文档或数据手册。
- 发送数据:
- 将要发送的数据存储在SBUF寄存器中。
- 设置好发送参数后,通过将数据写入SBUF寄存器来触发发送操作。
- 当发送器完成数据的发送时,会将发送完成标志(TI,Transmit Interrupt Flag)置位。
- 接收数据:
- 接收器会持续监听串口接收线上的数据,并将接收到的数据存储在SBUF寄存器中。
- 当接收到数据时,接收器会将接收完成标志(RI,Receive Interrupt Flag)置位,表示接收到了新的数据。
- 中断处理:
- 串口通信通常使用中断来处理数据的发送和接收。
- 当发送完成标志(TI)或接收完成标志(RI)被置位时,会触发相应的中断请求。
- 通过编写相应的中断处理程序(中断服务子程序,ISR),可以在中断发生时进行相应的数据处理操作。
- 数据处理:
- 在中断处理程序中,可以读取SBUF寄存器中的数据,并进行相应的数据处理操作。
- 也可以将接收到的数据存储到缓冲区中,以供主程序定期读取和处理。
八. 单片机片内ram容量
128bit
九. p0到p3的内部结构与工作原理
- P0口:
- P0口是一个8位的双向I/O口,即可以作为输入口也可以作为输出口。
- P0口的每一位(P0.0到P0.7)都与外部引脚相对应,用于连接外部设备或与外部设备进行通信。
- P0口的输入/输出特性由相应的数据方向寄存器(P0M0到P0M7)进行配置。
- P1口:
- P1口也是一个8位的双向I/O口。
- P1口的每一位(P1.0到P1.7)都与外部引脚相对应,用于连接外部设备或与外部设备进行通信。
- P1口的输入/输出特性由相应的数据方向寄存器(P1M0到P1M7)进行配置。
- P2口:
- P2口也是一个8位的双向I/O口。
- P2口的每一位(P2.0到P2.7)都与外部引脚相对应,用于连接外部设备或与外部设备进行通信。
- P2口的输入/输出特性由相应的数据方向寄存器(P2M0到P2M7)进行配置。
- P3口:
- P3口是一个特殊的I/O口,它的每一位(P3.0到P3.7)有特定的功能。
- P3.0和P3.1用作外部中断请求(INT0和INT1)的输入引脚。
- P3.2和P3.3用作定时器/计数器(T0和T1)的外部输入引脚。
- P3.4到P3.7可以作为普通的I/O口使用,与外部设备进行通信。
- P3口的输入/输出特性由相应的数据方向寄存器(P3M0到P3M7)进行配置。
十. 单工 半双工 全双工的概念
- 单工通信(Simplex):
- 单工通信是一种单向通信模式,其中通信只能在一个方向上进行,类似于广播或电视广播。
- 在单工通信中,发送方只能发送数据,而接收方只能接收数据,二者不能同时进行发送和接收。
- 这种模式不支持双向交互,因为通信通道在任何给定时间只能在一个方向上传输数据。
- 半双工通信(Half Duplex):
- 半双工通信是一种双向通信模式,但只能在一个时间段内进行发送或接收。
- 在半双工通信中,发送方和接收方可以交替地发送和接收数据,但不能同时进行发送和接收。
- 这种模式类似于对讲机或一条单行道,数据只能在一个方向上传输,需要切换发送和接收的状态。
- 全双工通信(Full Duplex):
- 全双工通信是一种双向通信模式,允许同时进行发送和接收。
- 在全双工通信中,发送方和接收方可以同时发送和接收数据,彼此之间没有时间限制或切换。
- 这种模式类似于电话通信或双向无线电,双方可以同时进行双向交互,实现实时的双向通信。
十一. bcd码进制的转换
- 十进制转BCD码:
- 将十进制数的每一位数值转换为对应的4位BCD码。
- 例如,对于十进制数37,将3转换为BCD码0011,将7转换为BCD码0111。
- 这样,十进制数37的BCD码表示为0011 0111。
- BCD码转十进制:
- 将BCD码的每一组4位数值转换为对应的十进制数。
- 例如,对于BCD码0011 0111,将前四位0011转换为十进制数3,将后四位0111转换为十进制数7。
- 这样,BCD码0011 0111表示的十进制数为37。
十二. 外部控制引脚的作用
- 复位引脚(RST):
- 复位引脚用于将C51单片机复位到初始状态。
- 当复位引脚为低电平(通常为逻辑低)时,单片机将执行复位操作,将所有寄存器和内部状态重置为默认值。
- 复位引脚通常与外部复位电路连接,以便在需要时通过将复位引脚拉低来对单片机进行复位。
- 时钟引脚(XTAL1和XTAL2):
- 时钟引脚用于提供系统时钟信号,驱动单片机的时钟和计时功能。
- 单片机的时钟引脚通常连接到一个外部晶体振荡器或时钟源。
- 时钟信号的频率决定了单片机的执行速度和定时器/计数器的计时精度。
- 中断引脚(INT0和INT1):
- 中断引脚用于连接外部中断源,例如按钮、传感器或其他外部设备。
- 当中断引脚检测到特定的电平变化(上升沿或下降沿),单片机可以触发相应的中断服务程序来处理外部事件。
- 中断引脚的设置和触发方式可以通过中断控制寄存器进行配置。
- 串行通信引脚(RXD和TXD):
- 串行通信引脚用于实现与外部设备的串行通信,例如通过UART(通用异步收发器)进行的串口通信。
- RXD引脚用于接收串行数据,而TXD引脚用于发送串行数据。
- 这些引脚通常连接到外部设备(例如计算机、传感器、显示器等),以实现数据的收发和通信。
十三. 中断请求 中断优先级
中断请求是指外部事件(例如按键按下、定时器溢出等)触发的中断信号,使单片机能够及时响应并执行相应的中断服务程序
- 优先级位:
- C51中断控制器的IP寄存器中的每个中断请求对应一个优先级位。
- IP寄存器包含多个位,每个位对应一个中断请求的优先级。
- 优先级位的编号从高位到低位依次递减,例如IP.7、IP.6、IP.5… IP.0。
- 设置优先级:
- 通过对IP寄存器的相应位进行设置,可以为每个中断请求指定优先级。
- 将优先级位设置为1表示该中断请求具有更高的优先级,而将其设置为0表示较低的优先级。
- 中断服务程序的执行顺序:
- 当多个中断请求同时发生时,C51单片机会按照中断请求的优先级来确定中断服务程序的执行顺序。
- 具有更高优先级的中断请求将中断正在执行的程序,转而执行具有更高优先级的中断服务程序。
- 低优先级的中断请求在高优先级中断服务程序执行完毕后才会被响应和处理。
十四. 51的片内存储器的分类
- 程序存储器(Program Memory):
- 程序存储器用于存储单片机的程序代码,也称为ROM(Read-Only Memory)。
- C51单片机的程序存储器通常使用闪存(Flash)或EPROM(Erasable Programmable Read-Only Memory)技术。
- 程序存储器是只读的,用于存储单片机的固件程序,其中包含指令和程序逻辑。
- 数据存储器(Data Memory):
- 数据存储器用于存储程序执行过程中的数据,也称为RAM(Random Access Memory)。
- C51单片机的数据存储器通常包括内部RAM和SFR(Special Function Register)。
- 内部RAM用于存储临时变量、函数堆栈、数据缓冲区等程序运行时的数据。
- SFR是一组特殊寄存器,用于存储特定功能的控制和状态信息,例如I/O口控制、定时器设置、中断控制等。
十五. 五个中断源的优先级
按照优先级从高到低排列:
- 外部中断0(INT0):
- 外部中断0是由P3.2引脚触发的中断源,具有最高的中断优先级。
- 当P3.2引脚上的电平发生变化时,可以触发外部中断0中断请求。
- 定时器/计数器0(T0)溢出中断:
- 定时器/计数器0的溢出中断是由T0计数器溢出触发的中断源。
- 当T0计数器从全0计数到全1时,会触发定时器/计数器0溢出中断。
- 定时器/计数器0溢出中断优先级高于其他定时器/计数器中断。
- 外部中断1(INT1):
- 外部中断1是由P3.3引脚触发的中断源,优先级高于其他中断源,但低于INT0中断。
- 当P3.3引脚上的电平发生变化时,可以触发外部中断1中断请求。
- 定时器/计数器1(T1)溢出中断:
- 定时器/计数器1的溢出中断是由T1计数器溢出触发的中断源。
- 当T1计数器从全0计数到全1时,会触发定时器/计数器1溢出中断。
- 定时器/计数器1溢出中断优先级低于外部中断1和定时器/计数器0中断。
- 串行口中断(RI/TI):
- 串行口中断是由串行通信口(UART)接收中断(RI)和发送中断(TI)触发的中断源。
- RI中断用于接收到数据时触发,TI中断用于发送完成时触发。
- 串行口中断优先级最低,优先级低于其他中断源。
十六. 定时器的使用
- 选择定时器:
- C51单片机通常具有多个定时器/计数器模块,如定时器0(T0)和定时器1(T1)。
- 根据具体需求选择适合的定时器模块。
- 配置定时器模式:
- 根据应用需求,选择定时器的工作模式,如定时模式或计数模式。
- 定时模式用于按一定时间间隔产生定时中断或触发特定事件。
- 计数模式用于计数外部事件的发生次数。
- 设置计时器初值:
- 初始化定时器的计数值,决定了定时器的计时范围和精度。
- 通过将适当的值加载到定时器的计数寄存器中,设置定时器的初值。
- 启动定时器:
- 将定时器的使能位设置为1,启动定时器开始计时或计数。
- 定时器将开始根据设定的模式和初值进行计时或计数。
- 处理定时器中断(可选):
- 如果需要定时器中断功能,可以在定时器溢出或达到特定计数值时触发中断。
- 配置中断使能位和中断优先级,编写相应的中断服务程序来处理定时器中断事件。
- 定时器停止和重置:
- 根据需要,可以在需要停止定时器的时候将定时器的使能位设置为0,停止计时或计数。
- 重置定时器可以通过将计数寄存器重新加载初值,或通过特定的复位操作来实现。
十七. 51的工作组寄存器有多少组
- Register Bank 0:
- R0-R7:工作组寄存器组0。
- 这是默认的工作组寄存器组,通常用于存储通用数据。
- Register Bank 1:
- R0’-R7’:工作组寄存器组1。
- 通过设置寄存器组选择位(RS1和RS0),可以切换到工作组寄存器组1。
- 可以使用工作组寄存器组1来保存另一组临时变量,以扩展可用的工作寄存器数量。
- Register Bank 2:
- R0’’-R7’’:工作组寄存器组2。
- 通过设置寄存器组选择位(RS1和RS0),可以切换到工作组寄存器组2。
- 可以使用工作组寄存器组2来保存另一组临时变量,以扩展可用的工作寄存器数量。
- Register Bank 3:
- R0’’’-R7’’’:工作组寄存器组3。
- 通过设置寄存器组选择位(RS1和RS0),可以切换到工作组寄存器组3。
- 可以使用工作组寄存器组3来保存另一组临时变量,以扩展可用的工作寄存器数量。
十八. 机器周期 时钟周期 概念及其计算
- 机器周期(Machine Cycle):
- 机器周期是指完成一条指令的基本时间单位,通常由若干个时钟周期组成。
- 在C51(或8051)单片机中,一个机器周期通常包含12个时钟周期。
- 在每个机器周期内,执行指令的各个阶段(如取指、译码、执行、访存、写回)会依次进行。
- 时钟周期(Clock Cycle):
- 时钟周期是指计算机系统中的基本时间单位,也称为时钟脉冲。
- 时钟周期由计算机的时钟信号产生,用于同步和驱动计算机系统的各个部件的操作。
- 在C51单片机中,时钟周期的持续时间取决于时钟频率,例如,若时钟频率为12MHz,则每个时钟周期为1/12MHz ≈ 83.3纳秒(ns)。
计算机的工作速度和性能通常与机器周期和时钟周期相关。机器周期和时钟周期之间的关系可以通过下述计算公式来确定:
机器周期 = 时钟周期 × 时钟周期数
例如,在C51单片机中,每个机器周期包含12个时钟周期,如果时钟频率为12MHz,则:
机器周期 = 1 / 12MHz × 12 = 1微秒(μs)
十九. 波特率的计算
波特率 = 时钟频率 / (分频系数 × (1 + 定时器重装值))
其中:
- 时钟频率是指系统的时钟频率,通常以赫兹(Hz)为单位。
- 分频系数是用于将时钟频率分频得到定时器的输入频率,通常是一个整数。
- 定时器重装值是用于设置定时器的初值,决定了定时器的计数范围和频率。
以C51(或8051)单片机为例,常用的定时器是定时器1(T1),计算波特率的公式如下:
波特率 = 时钟频率 / (分频系数 × (1 + TH1))
其中,TH1是定时器1的重装值(8位),分频系数可以通过设置特定的控制寄存器(如T2CON)来调整。具体的分频系数和定时器重装值取决于所使用的单片机型号和时钟配置。
二十. LED的自行口和位行口的计算
自行口(行驱动口):
- 对于普通LED灯,每个LED灯都有一个独立的控制引脚。
- 如果要控制多个LED灯,就需要使用多个GPIO口进行行驱动。
- 假设有N个LED灯需要控制,那么需要N个GPIO口,每个GPIO口控制一个LED灯。
- GPIO口的编号可以根据实际情况进行分配。
位行口(位驱动口):
- 位行口通常用于多行LED矩阵或LED显示器的驱动,将多个LED灯以矩阵形式组织起来。
- 在位行口驱动中,行的编号使用二进制编码来表示。
- 如果LED矩阵有N行,需要使用log2(N)个位行口(IO口)进行驱动。
- 每个位行口控制一个位行(即行的编号),通过控制位行的状态来控制多个LED灯的亮灭。
- 行的编号范围从0到N-1,使用二进制编码方式表示。
二十一. p2 p0口的复用
- P2口的复用:
- P2口是一个8位的I/O口,可以用于通用的输入和输出操作。
- 此外,P2口还可以作为外部数据总线(Port 2)使用,在与外部设备(如外部存储器)进行数据传输时,可以连接到数据线上。
- P0口的复用:
- P0口是一个8位的I/O口,可以用于通用的输入和输出操作。
- 此外,P0口还可以用作地址总线(Address Bus),用于与外部设备进行地址传输。
二十二. 中断优先级的处理原则
- 优先级高的中断先得到处理:具有较高优先级的中断请求应该先得到处理,以确保对紧急事件的及时响应。优先级通常由硬件或软件确定,并在中断控制器中进行配置。
- 禁止低优先级中断的嵌套:在处理较高优先级中断期间,通常应禁止或屏蔽较低优先级中断的嵌套。这样可以避免较低优先级中断的干扰,确保高优先级中断的正常执行。
- 中断优先级相同的情况下,按照请求顺序处理:如果多个中断请求具有相同的优先级,应按照它们的请求顺序进行处理。这样可以保持公平性,避免某些中断一直被抢占而无法得到处理。
- 中断服务程序尽量简短:中断服务程序应尽量保持简短,以便尽快恢复主程序的执行。这样可以减少对实时性的影响,并提高系统的响应性能。
二十三. 51内存的构成和部件
- 程序存储器(Program Memory):
- 程序存储器用于存储机器指令和程序代码。
- 在C51单片机中,程序存储器通常是以Flash存储器的形式实现,可用于存储程序代码和常量数据。
- 程序存储器的大小可以根据具体型号的单片机而有所不同,常见的容量为4 KB、8 KB、16 KB等。
- 数据存储器(Data Memory):
- 数据存储器用于存储变量、数据和临时计算结果等。
- 在C51单片机中,数据存储器包括两部分:内部RAM和特殊功能寄存器(SFR)。
- 内部RAM是用于存储变量和数据的随机访问存储器。其大小通常为128字节、256字节或更多,可以分为多个内部RAM区域。
- 特殊功能寄存器(SFR)是一组特殊用途的寄存器,用于控制和配置单片机的各种功能和外设。SFR用于存储控制、状态和配置信息等。
- 外部存储器(External Memory):
- C51单片机可以通过扩展外部存储器来增加存储容量。
- 外部存储器可以是外部RAM、外部Flash或其他存储设备,通过与单片机的外部总线进行连接。
- 外部存储器的大小和类型可以根据应用的需求进行选择和扩展。
二十四. led静态显示和动态显示的优缺点
静态显示(Static Display):
- 优点:
- 简单:静态显示只需通过适当的电路连接,将LED灯直接控制为亮或灭状态即可。
- 节能:LED灯在静态显示时只需要保持亮度不变,不需要频繁切换,因此能够节省能量。
- 可靠性高:由于没有频繁的切换,静态显示具有较高的可靠性和寿命。
- 缺点:
- 限制显示内容:静态显示无法实现复杂的动画效果或滚动显示,只能呈现固定的图案或字符。
- 空间占用:静态显示需要使用较多的LED灯来呈现完整的图案或字符,可能占据较大的物理空间。
- 信息更新困难:静态显示需要手动更换LED灯的状态,如果需要更新显示的信息,需要进行手动更换或重新布线。
动态显示(Dynamic Display):
- 优点:
- 显示灵活:动态显示可以实现复杂的动画效果、滚动显示或逐个LED点亮,可以展示更多的信息和效果。
- 空间节省:动态显示通常采用多路复用技术,将多个LED灯共享同一控制线路,节省了物理空间。
- 缺点:
- 能耗高:动态显示需要频繁地切换LED灯的状态,消耗更多的能量。
- 驱动复杂:动态显示需要使用复杂的电路和驱动器来控制多个LED灯的切换和亮度控制。
- 限制驱动频率:动态显示的刷新频率有限,如果刷新频率较低,可能会导致视觉上的闪烁或模糊。
二十五. 计数器初始化步骤
- 选择计数器模式:确定计数器是工作在定时器模式还是计数器模式。这可以通过相应的控制寄存器来设置。在定时器模式下,计数器将根据定时器的时钟源进行计时;而在计数器模式下,计数器将根据外部信号进行计数。
- 配置计数器控制寄存器:根据所选的计数器模式,配置相应的控制寄存器来设置计数器的工作模式、计数方向等参数。在C51系列单片机中,计数器使用的控制寄存器通常是TMOD(定时器/计数器模式寄存器)。
- 设置计数器初值:根据需要,设置计数器的初始值。初始值决定了计数器开始计数的起始点。在C51系列单片机中,对于定时器/计数器0和定时器/计数器1,可以使用TH0、TL0、TH1、TL1等寄存器来设置初始值。
- 配置时钟源:如果使用定时器模式,需要配置定时器的时钟源。在C51系列单片机中,可以通过设置TMOD寄存器中的相应位来选择时钟源,例如选择外部时钟源或内部时钟源。
- 使能计数器:在完成上述设置和配置后,使能计数器开始工作。在C51系列单片机中,可以通过设置相应的使能位或使能信号来启动计数器,例如启用定时器/计数器0和定时器/计数器1。
二十五. p0口为什么要加上拉电阻
保持输入的稳定性
上拉电阻的作用是将输入引脚(P0口)与正电压(一般是VCC,即电源电压)连接,在没有外部信号驱动输入引脚时,上拉电阻会将输入引脚拉高到正电压,从而确保输入引脚保持在已定义的逻辑状态。
具体原因如下:
- 防止浮空状态:当P0口没有外部信号驱动时,输入引脚处于开路状态,容易受到周围电磁干扰而产生随机电平,导致输入引脚出现浮动(floating)状态。这时,如果没有上拉电阻,P0口的电平就不确定,可能会导致错误的逻辑判断。通过使用上拉电阻,可以将输入引脚拉高到已定义的逻辑高电平,避免了浮动状态的问题。
- 定义默认状态:上拉电阻将P0口的输入引脚拉高到正电压,可以定义一个默认的逻辑状态。例如,当P0口连接到一个开关或按键时,没有按下开关时,输入引脚处于逻辑高电平;当按下开关时,输入引脚会被拉低到逻辑低电平。这样可以方便地定义默认状态,并且在按下开关时能够正常检测到逻辑状态的变化。
- 本文作者: Phquathi
- 本文链接: http://phquathi.github.io/pHq-blog/2024/05/20/单片机/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!