单片机p0口的工作原理解析


学习ARM嵌入式的时候,发现自己对以前学过的数模器件的知识遗忘了不少,按照我的进度本来应该继续学习ARM微处理器控制的课程,但想着后来势必还会遇到相同的问题所以就准备中断一下,杀回来把汇编和一些电路知识再总结一下,查漏补缺。
单片机(Microcontroller, MCU)是一种集成了计算机功能的微型计算机,通常由一个微处理器(CPU)、存储器(ROM、RAM)、输入/输出接口、定时器/计数器等功能模块集成在同一芯片上。单片机是一种常用于嵌入式系统中的控制器,它被广泛应用于家电、汽车、工业自动化、医疗设备、消费电子、物联网(IoT)设备等多个领域。
学习ARM嵌入式的时候,发现自己对以前学过的数模器件的知识遗忘了不少,按照我的进度本来应该继续学习ARM微处理器控制的课程,但想着后来势必还会遇到相同的问题所以就准备中断一下,杀回来把汇编和一些电路知识再总结一下,查漏补缺。
任何一款单片机,其实学习步骤都是一样的,不管是8位的入门芯片,还是32位的高速芯片。以下这些步骤是必须的,你得一步步来!
1、数字I/O的使用
在实际项目中,选择什么样的单片机作为系统的控制核心,是非常重要的工作。因为选择恰到好处的单片机,对降低项目开发难度、提高产品维护方便性、降低设备生产成本、提升系统运行性能、降低系统功耗、提升产品运行稳定性、提高产品生存周期、方便产品升级性等指标有着至关重要的作用。
那么如何在成千上万的单片机里挑选合适的单片机呢?
一、根据项目的需求,评估项目规模,并根据项目未来发展规划,确定项目需要的硬件资源要求。比如:通讯方式、是否需要A/D设备(具体的精度与转换速率等要求)、是否需要显示界面(具体的显示内容要求等等)、是否需要RTC、日后升级需要添加的功能需要什么样的硬件资源等等,如此基本可确定系统硬件资源。有了硬件资源要求,就可限定一个单片机类型范围,硬件资源一定要够用,一定要不能少,同时也不能选择资源过多的导致资源浪费;
二、根据项目需求,基本上可以确定软件需要的RAM与Flash资源容量,RAM资源一般要比实际应用要求多20%-30%的裕量,同样Flash的资源也要多出20%-30%的裕量,方便日后软件升级,随着芯片片设集成度的提高,RAM与Flash资源的单位成本在大幅降低,所以,在不大幅提升成本的前提下,RAM与Flash的容量越多越好;
学计算机和电子的人们都学过单片机和CPU,你知道单片机、ARM、DSP都是CPU吗,它们之间又有什么不同?本文进行了整理,一起来看看吧!
CPU:中央处理器
CPU 包括运算逻辑部件、寄存器部件和控制部件等,其本质就是一个集成电路,实现的功能就是从一个地方读出一个指令,从另一个地方读出数据,然后根据指令的不同对数据做不同的处理,然后把结果存回某个地方,而不同架构的CPU会有不同的指令、不同的存取方式、不同的速度、不同的效率等差异。从实现运算的角度,单片机、ARM、DSP都可以称之为CPU。
1、单片机:微控制器MCU
目前,单片机已广泛称作微控制器(MCU),单片机是一块类似PC的芯片,只是没PC强大,但它可以嵌入到其它设备中从而对其进行操控。单片机的多机应用系统可分为功能集散系统、并行多机处理及局部网络系统。
2、ARM:高效能RISC
ARM内核是一个嵌入式系统。RISC架构的指令,寄存器和流水线特征使它非常适合于并行计算。
3、DSP:通用数字信号处理器
标准的 51 单片机内部有 T0 和 T1 这两个定时器,T 就是 Timer 的缩写,现在很多 51 系列单片机还会增加额外的定时器,在这里我们先讲定时器 0 和 1。前边提到过,对于单片机的每一个功能模块,都是由它的 SFR,也就是特殊功能寄存器来控制。
前几天调试ZigBee程序时,因为要用到全局变量,所以在一个全局文件定义了两个全局变量,如下:
首先焊接之前要把主板清洁干净,所有单片机引脚孔都必须贯通,并把单片机引脚孔周围全部处理干净。然后把单片机引脚同样处理干净上好焊锡,焊锡不能上厚,多用松香就可以很薄了,否则不能插入单片机的安装孔。然后把上好焊锡的单片机再插入主板的单片机安装位置,(注意单片机引脚方向一定不能安装反了)否则一旦焊上去难于拆下来。把I单片机插入单片机安装位置检查无误后将开始焊接,烙铁头一定要很清洁,用一个毫米的焊锡丝,在每一个引脚位置熔一下马上就可以把引脚焊接好,烙铁停留时间不要长,松香要及时跟上。焊接时可以采取跳跃式焊接,假如是64引脚的,那么可以采取1、32、33、64、2、31、34、63分布热量,过于集中焊接某一部分引脚会超温,对于单片机不利。如果担心焊接质量,可以焊接完用万用表测试每一个引脚没有短路为止。
板子和元件腿应该先处理干净,再涂一层松香酒精溶液,烙铁应该接地。烙铁温度不应过高(最好采用恒温烙铁),每个腿的焊接时间应该控制2秒之内,以防止高温烧坏元器件和使铜箔脱离,焊点应小、圆而且有光泽,注意不要使相邻两焊点之间短路。焊接完毕用硬刷子刷一遍板子,以防止有锡粒掉落在板子上,再用万用表电阻档检查电源接入端及单片机电源和地之间有无短路,最好用放大镜仔细检查一遍板子,看看有无因焊点过大而使相邻焊点短路。
焊接过程之中注意以下几点:
编程器就是工具,在进行单片机开发时,你可以编程写了许多代码,只要执行此代码,单片机便依你的指示工作了,但如何将这些代码(或数据)写进单片机内,这就用到编程器了。简单来说:编程器就是代码烧写工具。它既可将代码写进单片机内,也可将代码从单片机内读出(加密情况除外)。
单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,就谈谈本人对这两个概念的理解和感悟。
中断响应时间:从外部中断请求有效(外部中断请求标志置1)到转向中断入口地址所需要的响应时间。每个机器周期的S5P2时刻,INTx引脚的电平被锁存到内部寄存器中,待下一个周期查询。
1. 最短时间:中断请求有效,查询后在下一个周期便开始执行一条硬件的子程序的调用(时间是两个周期),然后开始执行服务程序的第一条指令。这样从锁存电平的周期到执行中断服务程序,中间相隔3个机器周期。
2. 最长时间:如果中断信号发生在前面所说的3种情况时,响应时间就要变长:
(1)响应时间取决于正在执行的同级或高级中断的执行时间;
(2)指当前CPU执行的指令是多周期指令,如乘除法指令(4个周期),最坏情况,还要等3个周期。这样响应周期变为3+3=6个周期;
(3)CPU当前执行的指令是RETI或访问IE、IP寄存器时,本指令(1个周期)没有响应,且下一条指令执行完后才能响应,这样附加的等待时间最长不会超过5个周期(1+4)。整个响应为5+3=8个周期。