跳转到主要内容

单片机

关于单片机上拉电阻、下拉电阻的详解

editor /

<strong>一、定义</strong>

1、上拉就是将不确定的信号通过一个电阻嵌位在高电平!“电阻同时起限流作用”!下拉同理!

2、上拉是对器件注入电流,下拉是输出电流。

3、弱强只是上拉电阻的阻值不同,没有什么严格区分。

4、对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。

<strong>二、拉电阻作用</strong>

1、一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。

2、数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定!

单片机中关键字data、idata、xdata、pdata的区别

editor /

<strong>data</strong>

固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。

<strong>idata</strong>

固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好)

<strong>xdata</strong>

外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。 pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG, 建议少用。但也有他的优点,具体用法属于中级问题,这里不提。

<strong>startup.a51的作用</strong>

单片机控制板的三大设计原则

editor /

本文将为您详解单片机控制板在设计过程中需遵循的三大原则及一些注意事项。

单片机控制板在设计过程中,需要遵循的如下原则:

1、在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些,例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声,在放置的时候应把它们靠近些。对于那些易产生噪声的器件、小电流电路、大电流电路开关电路等,应尽量使其远离单片机的逻辑控制电路和存储电路(ROM、RAM),如果可能的话,可以将这些电路另外制成电路板,这样有利于抗干扰,提高电路工作的可靠性。

2、尽量在关键元件,如ROM、RAM等芯片旁边安装去耦电容。实际上,印制电路板走线、引脚连线和接线等都可能含有较大的电感效应。大的电感可能会在Vcc走线上引起严重的开关噪声尖峰。防止Vcc走线上开关噪声尖峰的唯一方法,是在VCC与电源地之间安放一个0.1uF的电子去耦电容。如果电路板上使用的是表面贴装元件,可以用片状电容直接紧靠着元件,在Vcc引脚上固定。最好是使用瓷片电容,这是因为这种电容具有较低的静电损耗(ESL)和高频阻抗,另外这种电容温度和时间上的介质稳定性也很不错。尽量不要使用钽电容,因为在高频下它的阻抗较高。

在安放去耦电容时需要注意以下几点:

中断驱动多任务--- 单片机(MCU) 下的一种软件设计结构

editor /

MCU由于内部资源的限制,软件设计有其特殊性,程序一般没有复杂的算法以及数据结构,代码量也不大, 通常不会使用 OS (Operating System), 因为对于一个只有若干K ROM、一百多byte RAM 的MCU来说,一个简单OS 也会吃掉大部分的资源。

对于无OS的系统,流行的设计是主程序(主循环 )+(定时)中断,这种结构虽然符合自然想法,不过却有很多不利之处,首先是中断可以在主程序的任何地方发生,随意打断主程序。其次主程序与中断之间的耦合性(关联度)较大,这种做法 使得主程序与中断缠绕在一起,必须仔细处理以防不测。

那么换一种思路,如果把主程序全部放入(定时)中断中会怎么样?这么做至少可以立即看到几个好处:系统可以处于低功耗的休眠状态,将由中断唤醒进入主程序;如果程序跑飞,则中断可以拉回;没有了主从之分(其他中断另计),程序易于模块化。

为了把主程序全部放入(定时)中断中,必须把程序化分成一个个的模块,即任务,每个任务完成一个特定的功能,例如扫描键盘并检测按键。 设定一个合理的时基 (tick),例如 5、10 或 20 ms,每次定时中断,把所有任务执行一遍,为减少复杂性,一般不做动态调度(最多使用固定数组以简化设计,做动态调度就接近 OS了),这实际上是一种无优先级时间片轮循的变种。来看看主程序的构成:

如何提高单片机系统的抗干扰能力?!

editor /

随着单片机的发展,单片机在家用电器、工业自动化、生产过程控制、智能仪器仪表等领域的应用越来越广泛。然而处于同一电力系统中的各种电气设备通过电或磁的联系彼此紧密相连,相互影响,由于运行方式的改变,故障,开关操作等引起的电磁振荡会波及很多电气设备。

随着单片机的发展,单片机在家用电器、工业自动化、生产过程控制、智能仪器仪表等领域的应用越来越广泛。然而处于同一电力系统中的各种电气设备通过电或磁的联系彼此紧密相连,相互影响,由于运行方式的改变,故障,开关操作等引起的电磁振荡会波及很多电气设备。这对我们单片机系统的可靠性与安全性构成了极大的威胁。单片机测控系统必须长期稳定、可靠运行,否则将导致控制误差加大,严重时会使系统失灵,甚至造成巨大损失。因此单片机的抗干扰问题已经成为不容忽视的问题。

<strong><font size="5">1、干扰对单片机应用系统的影响</font></strong>

<strong>1.1测量数据误差加大</strong>

干扰侵入单片机系统测量单元模拟信号的输入通道,叠加在测量信号上,会使数据采集误差加大。特别是检测一些微弱信号,干扰信号甚至淹没测量信号。

【连载3】单片机小白学步之模拟电路、传统数字电路与单片机

editor /

大家都用过计算器,有没有想过它是怎么实现的呢?这里我不详述计算器的原理,而只对思路进行简单介绍。等我们学会了单片机,也可以亲手制作一个计算器。

<strong><font size="5">用电路进行数学计算</font></strong>

通过电路进行数学计算,应该怎么做呢?为了便于理解,下面我举个很简单的例子。

<center><img src="http://mm32.eetrend.com/files/2016-07/wen_zhang_/100002137-6514-1.png&q…; alt="" width="600"></center>

浅谈单片机程序设计中的“分层思想”

editor /

“分层思想”并不是什么神秘的东西,事实上很多做项目的工程师本身自己也会在用。看了不少帖子都发现没有提及这个东西,然而分层结构确是很有用的东西,参透后会有一种恍然大悟的感觉。如果说我不懂LCD怎么驱动,那好办,看一下datasheet,参考一下别人的程序,很快就可以做出来。但是如果不懂程序设计的思想的话,会给你做项目的过程中带来很多很多的困惑。

参考了市面上各种各样的嵌入式书籍,MCS-51,AVR ,ARM 等都有看过,但是没有发现有哪本是介绍设计思想的,就算有也是凤毛麟角。写程序不难,但是程序怎么样才能写的好,写的快,那是需要点经验积累的。结构化模块化的程序设计的思想,是最基本的要求。然而怎么将这个抽象的概念运用到工程实践当中呢?那需要在做项目的过程中经历磨难,将一些东西总结出来,抽象升华为理论,对经验的积累和技术的传播都大有裨益。所以在下出来献丑一下,总结一些东西。就我个人的经验而谈,有两个设计思想是非常重要的。

一个就是“时间片轮的设计思想”,这个对实际中解决多任务问题非常有用,通常可以用这个东西来判断一个人是单片机学习者,还是一个单片机工程师。这个必须掌握。由于网上介绍这个的帖子也不少,所以这里就不多说了。

第二个就是我今天想说的主题“分层屏蔽的设计思想”。下面用扫描键盘程序例子作为引子,引出今天说的东西。

单片机开发涉及到的几个概念

editor /

很多学习电子电路设计的朋友都会涉及到单片机的开发,网络上有很多关于单片学习开发的资料,但是这些资料当中或多或少都会涉及一些比较专业的名词和概念,电路设计初学者看不明白,学习起来也比较困难,本篇文章就对单片机开发过程中所要涉及到的几个概念进行介绍,希望能对新手有所帮助。

<strong> 1、什么是DSP中的“内部上拉”和“内部下拉”?</strong>

DSP中介绍引脚时,注明PU,PD说是“内部上拉”和“内部下拉”,就是说内部已经配置了接电源的上拉电阻或是接地的下拉电阻。这样,当作为输入端口连接OC或COMS芯片或浮空时。信号线平是确定的高/低电平。而不是不确定的浮地电平。内部上拉,相当于输入和电源之间接了一个几十K的电阻;下拉,相当于用电阻和地相连。

<strong> 2、VCC,VDD,VSS是什么?</strong>

在电子电路中,VCC是电路的供电电压,C = circuit,表示电路的意思;VDD是芯片的工作电压,D = device,表示器件的意思;VSS是接地或是负极,S = series,表示公共连接的意思。

单片机远程控制步进电机、LED灯和蜂鸣器

editor /

作者:NK_test

通过采用C#语言实现的上位机控制单片机的步进电机模块、LED灯和蜂鸣器模块,使步进电机进行正、反转和停止并控制转速;LED灯模块进行有选择的呼吸式表达;蜂鸣器模块的开始和终止。

上位机通过串口和自定义的通信协议(8字节)控制单片机的步进电机、LED灯和蜂鸣器模块。其中在控制步进电机的过程中,为了使操作能够及时响应,使用了INT0中断来进行及时性速度响应;LED灯使用位运算控制灯的闪烁位置,合理利用了单片机的模块和操作。

注意:由于定时器个数的限制,没能控制更多的模块。

#include<reg52.h>

sbit WEI=P2^7;
sbit DUAN=P2^6;
#define DataPort P0