纯输入或纯输出口:这种IO口是由MCU硬件设计决定的,只能输入或输出,不能通过软件实时设置 。
直接读写IO口:如MCS-51的IO口就属于这种IO口 。执行读取IO口的指令时,为输入口;当执行写IO端口指令时,它将自动成为输出端口 。
编程设置输入输出方向:这类IO口的输入或输出由程序根据实际需要设置,应用灵活,可以实现一些总线级的应用,如I2C总线、各种LCD和LED驱动控制总线等 。
对于IO口的使用,一定要记住:对于输入口,一定要有明确的电平信号,保证不能浮空(可以通过增加上拉或下拉电阻来实现);对于输出端口,其输出的状态电平必须考虑其外部连接,要保证待机或静态时没有拉电流或吸电流 。
外部中断:外部中断也是大多数单片机的基本功能,一般用于信号的实时触发、数据采样和状态检测 。中断模式由上升沿、下降沿和电平触发触发 。外部中断一般通过输入端口实现 。如果是IO口,其中断功能只有设置为输入时才会开启 。如果是输出口,外部中断功能会自动关闭(ATMEL的ATiny系列有一些例外,使用输出口时也可以触发中断功能) 。外部中断的应用如下:
外部触发信号的检测:一是基于实时性的要求,比如可控硅的控制,突发信号的检测,二是省电的需要 。
在测量频率时,为了保证信号不被遗漏,外部中断是最理想的选择 。
数据解码:在遥控应用领域,为了降低设计成本,往往需要使用软件对各种编码数据进行解码,如曼彻斯特和PWM编码 。
按键检测和系统唤醒:一般进入睡眠状态的MCU需要通过外部中断唤醒,最基本的形式是按键,通过按键的动作产生电平的变化 。
通信接口:单片机提供的通信接口一般有SPI接口、UART、I2C接口等 。,分别描述如下:
SPI接口:这种接口是大多数单片机提供的最基本的通信方式,其数据传输受同步时钟控制 。信号包括SDI(串行数据输入)、SDO(串行数据输出)、SCLK(串行时钟)和就绪信号;在某些情况下,可能没有就绪信号;这种接口可以在主模式或从模式下工作 。通俗点说,就是看谁提供时钟信号 。提供时钟的是主设备,另一个是从设备 。
UART(通用异步接收发送):属于最基本的异步传输接口,信号线只有Rx和Tx 。基本数据格式为:起始位数据位(7位/8位)奇偶校验位(偶数、奇数或无)停止位(1 ~ 2位) 。一位数据占用的时间称为波特率 。
对于大多数MCU,数据长度、数据校验模式(奇数校验、偶数校验或无校验)、停止位长度和波特率可以通过编程灵活设置 。这种接口最常见的方式是与PC机的串口进行数据通信 。
接口:I2C是飞利浦公司开发的数据传输协议 。它也由两个信号实现:SDAT(串行数据输入和输出)和SCLK(串行时钟) 。它最大的优点是可以在这条总线上连接多个设备,并且可以通过地址来识别和访问它们 。I2C总线最大的一个优点就是通过IO口用软件实现非常方便 。I2C总线传输的数据速率完全由SCLK控制,可快可慢 。与UART接口不同,I2C总线有严格的速度要求 。
看门狗(看门狗定时器):看门狗也是大部分MCU的基本配置(有些4位MCU可能没有这个功能) 。大多数MCU的看门狗只能允许程序复位它,而不能关闭它(有些是在程序烧入时设置的,比如Microchip PIC系列MCU) 。而有些MCU则以特定的方式决定是否开启,比如三星的KS57系列 。只要程序访问看门狗寄存器,就会自动开启,不能再关闭 。一般来说,看门狗的复位时间可以通过程序设置 。Watchdog最基本的应用是为MCU提供因意外故障而崩溃的自我恢复能力 。
单片机的学习技巧
任何MCU的基本原理和功能都是相似的 。唯一不同的是其外围功能模块的配置、数量和指令系统 。
推荐阅读
- 奥迪tt有敞篷的吗
- 儿童室内游戏项目有哪些
- apple论坛有哪些 apple论坛
- 更新中
- 谁能告诉我 坚果手机质量有问题客服不鸟我我该怎...
- 坚果手机突然充不上电也开不了机的进来有办法了,我的独家黑科技绝对解决
- 已经把坚果卖掉了~
- 锤子是不是和浏览器有合作
- 你们最爱的大屏手机来了 2020巨屏手机有哪些
- 搭载的天玑1200跑分有点狠 红米k40天玑1200跑分