外部触发信号的检测:一是基于实时性的要求,比如可控硅的控制,突发信号的检测,二是省电的需要 。
在测量频率时 , 为了保证信号不被遗漏,外部中断是最理想的选择 。
数据解码:在遥控应用领域 , 为了降低设计成本,往往需要使用软件对各种编码数据进行解码 , 如曼彻斯特和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的基本原理和功能都是相似的 。唯一不同的是其外围功能模块的配置、数量和指令系统 。
对于指令系统来说,虽然看起来形式不同,但实际上只是符号不同而已 。它们的含义、要完成的功能和寻址方式基本相似 。
要了解一个MCU,首先需要知道它的ROM空室、RAM空室、IO口数量、定时器数量和定时方式、提供的外围电路、中断源、工作电压和功耗等 。
了解了这些MCU的特性之后,接下来就是将所选MCU的功能与实际项目开发所需要的功能进行对比,明确目前需要哪些资源,哪些资源在本项目中没有用到 。
对于项目中需要用到但所选MCU没有提供的功能,需要仔细了解MCU的相关信息 , 以便用间接的方法实现 。例如,如果开发的项目需要与PC的COM口通信 , 而选用的MCU没有提供UART口,可以通过外部中断来实现 。
对于项目开发所需的资源,需要仔细理解和阅读其手册 , 不必要的功能模块可以忽略或浏览 。对于单片机学习来说,应用是关键 , 也是主要目的 。
定义好MCU的相关功能后,就可以开始编程了 。
对于初学者或者第一次使用这款单片机的设计师来说,可能会有很多对单片机功能的模糊描述 。对于这样的问题,有两种方法可以解决 。一种是编写专门的验证程序,理解数据中描述的功能;另一个可以暂时忽略,单片机程序设计按其目前的理解写,留待调试时修改完善 。前一种方法适合时间比较宽松的项目和初学者,后一种方法适合有一定单片机开发经验的人或者项目进度比较紧迫的时候 。
千万不要花特别的时间去理解说明书 。指令系统只是一个逻辑描述的符号 。编程时只能根据自己的逻辑和程序的逻辑要求去查相关指令 。而且随着编程的进展,你会对指令系统越来越熟练,甚至不自觉的背下来 。
单片机编程
单片机的编程和PC机的编程有很大的不同 。虽然基于C的单片机开发工具越来越流行,但是对于一个高效的程序代码和喜欢用汇编的设计人员来说,汇编语言仍然是最简洁有效的编程语言 。
推荐阅读
- 鲁迅的三个写在文章里的老师
- 方法 美容方法有哪些
- 胡萝卜算不算萝卜
- 松饼中间黏是没熟吗
- 无主之地2新DLC头像一览 无主之地2全角色新头像图鉴 GUNZERKER
- 防晒指数30好还是50好
- 跑100公里 百公里多少油
- 爱耳日是什么节日 爱耳日是啥节日
- 家里有空花瓶怎么破解风水 家里放空花瓶好吗