Ⅰ 如何用单片机输出脉冲信号
利用单片机产生脉冲信号有多种方法。最简单的方法,就是在单片机的程序中对一个引脚反复置1,清0,置1,清0....,这个引脚上就会出现脉冲信号。
当需要产生指定周期和宽度的脉冲信号时,通常使用单片机中的计数器来实现:给计数器赋于不同的计数初值,在计数到0时产生中断去置1或清0某引脚即可。
Ⅱ 单片机采集电压,电流,频率可以用哪几种方法来实现
电压直接用ADC来测量。
电流通过电阻转换为电压,再由ADC测量。
频率通过计数器或者定时器测量。
当然通过V/F变换,把电压电流信号转换为频率信号,也能完成测量。
串行口采集频率的说法还没听说过。
Ⅲ 单片机的使用方法
传统51单片机IO接口只可以作为标准双向IO接口,如果用其来驱动LED只能用灌电流的方式或是用三极管外扩驱动电路。
点击放大图片
灌电流方式:LED正极接VCC,负极接IO口。IO为高电平是LED两极电平相同,没有电流,LED熄灭;IO为低电平时,电流从VCC流入IO,LED点亮。但是当你吧LED正极接在IO接口,负极接GND时,将IO接口置于高电平,LED会亮,但因为IO接口上拉能力不足而使亮度不理想,可以用下面介绍的方式解决这个问题。
推挽工作方式:LED正负极分别接在两个IO口上,然后设置正极IO接口为推挽输出,负极IO接口为标准双向灌电流输入。推挽方式具有强上拉能力,可以实现高电平驱动LED。
IO口的四种使用方法
从I/O口的特性上看,标准51的P0口在作为I/O口使用时,是开漏结构,在实际应用中通常要添加上拉电阻;P1、P2、P3都是准双向I/O,内部有上拉电阻,既可作为输入又可以作为输出。而LPC900系列单片机的I/O口特性有一定的不同,它们可以被配置成4种不同的工作模式:准双向I/O、推挽输出、高阻输入、开漏。
准双向I/O模式与标准51相比,虽然在内部结构上是不同的,但在用法上类同,比如要作为输入时都必须先写“1”置成高电平,然后才能去读引脚的电平状态。!!!!!为什么是这样子?见下面分析。
推挽输出的特点是不论输出高电平还是低电平都能驱动较大的电流,比如输出高电平时可以直接点亮LED(要串联几百欧限流电阻),而在准双向I/O模式下很难办到。
高阻输入模式的特点是只能作为输入使用,但是可以获得比较高的输入阻抗,这在模拟比较器和ADC应用中是必需的。
开漏模式与准双向模式相似,但是没有内部上拉电阻。开漏模式的优点是电气兼容性好,外部上拉电阻接3V电源,就能和3V逻辑器件接口,如果上拉电阻接5V电源,又可以与5V逻辑器件接口。此外,开漏模式还可以方便地实现“线与”逻辑功能。
对于上面疑问的解释,有这样一个资料:
高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定。
电路分析时高阻态可做开路理解。你可以把它看作输出(输入)电阻非常大。他的极限可以认为悬空。
高阻态的典型应用:
1、在总线连接的结构上。总线上挂有多个设备,设备与总线以高阻的形式连接。这样在设备不占用总线时自动释放总线,以方便其他设备获得总线的使用权。
2、大部分单片机I/O使用时都可以设置为高阻输入,如凌阳,AVR等等。高阻输入可以认为输入电阻是无穷大的,认为I/O对前级影响极小,而且不产生电流(不衰减),而且在一定程度上也增加了芯片的抗电压冲击能力。
Ⅳ 单片机之间如何实现通信
两个单片机之间串口通信,如果是用proteus仿真,最简单了,两个单片机的rxd,txd交叉连接就行了。要是实物最好用rs232连接通信,距离可以达到几十米。再远点距离,用rs485连接通信。总之,方法很多的,也很灵活的。
Ⅳ 单片机实现延时一般有几种方法,比较它们之间的优缺点
一般两种:
1,直接让单片机做空循环,死等。
2,利用定时器的溢出间隔,如果时间上不够,可以在溢出中断中配合软件计数器来实现。
前者浪费cpu,后者比较高效,但是占用一个定时器
Ⅵ 单片机的具体应用例子
1、节能控制:
单片机可以控制能耗的节奏,例如:收集睡眠和运动步数等数字,以分钟级的频率进行上报;信息未上报时,设备处于低能耗的状态,信息上报时,会出现一些网络传输方面的消耗,单片机可以控制能耗的节奏,将大部分时间控制在低能耗的状态下,可以使得待机时间长达七十二小时以上。
2、智能语音设备:
例如:在导航智能电子设备中,可以将其中的一些道路名称、距离等进行提取,然后进行播报;同时,还可以选择不同的名人口吻进行播报,真正实现智能化的定制操作,更好地满足用户的需求;
3、报警控制:
例如:家里经常使用的火灾报警器,就是在外界环境达到一定条件下开启智能报警的设备,如果室内的烟雾浓度到达某种水平,或者是收集外界的数据达到某种状态时,就会自动触发报警设置,从而实现智能报警的功能。
4、工厂生产检测:
例如:在一些工厂中,经常会安装一些设备,对工厂的生产环境进行监控,当出现某些异常数据时,就会发生报警,为确保设备的正常运作,设备维护人员需要及时进行处理,避免产生较大的故障。
5、家电领域:
其中家用电器就是其应用中的一个领域,用单片机取代传统的家用电器中机械控制部件,并实现家电智能化。由此确定了单片机在家用电器中的重要地位。如:智能电饭煲、智能洗衣机、智能电视等都有单片机的应用。
Ⅶ 如何用单片机实现单击 + 双击 + 长按
这是三种键有效方法,可按下面思路设计供你参考;
1、单击有效,可以采用弹起有效。如选择上升沿有效。
2、双击有效,要采用在一定的定时时间内两次计数的方法,也就是先设定一个有效时间,在第一次键有效后在这个有效时间内键再次有效就可以认定最终有效,否则无效。
3、长按有效,也要采用计时的方法。也就是键有效后在一定的时间内连续检测有效性,如检测时间内连续保持有效可以认定最终有效,否则无效。
后两种方法要求设计一个专门的判断程序才能完成。
Ⅷ 如何利用单片机实现对正玄波信号频率的测量
一楼的方法基本可行,不过有缺陷。
直接利用门电路整形,然后输入单片机的引脚,这种方法只能检测频率不高的信号。对于标准51来说,最高也只能检测几百K的信号,上M就很为难了。
最好的办法是,先把信号进行放大,然后进行过零比较和整形,把信号变成标准的方波,然后用一到两级的计数器,把频率降低,然后再输入单片机。这种方法可以实现对10MHz级别信号的测频。
Ⅸ 如何用单片机做流水灯
因为电路用单片机控制,所以电路非常简洁。其电路原理图见下图,印制板图如下图所示。
电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组I/O口,我们这里只用到Pl口,共8个引脚。图中Cl、R9组成典型的上电复位(即在加电时单片机复位)电路,XTAL、C2、C3与AT89C2051片内振荡电路组成时钟振荡器。值得注意的是,C2、C3的容量不能与图中数值偏差太大,否则可能引起不起振或振荡不稳定。XTAL的频率可以在4-20MHz之间,不过,频率的变化会导致程序运行速度的变化,这样就需要调整延时子函数的参数。事实上,不调整参数亦可,只是此时延迟时间不再是1秒,其延迟时间会随着XTAL频率的降低而增加。
二、软件部分
本程序包含两个函数,一个是主函数,另一个是延时子函数。源程序如下(为了便于讲解,我们为每行程序加上了编号):
程序各行作用如下:
00行:把AT89C2051的头文件“AT89x051.H”包含进来。
01行:声明Delay()延时子函数,该函数有一个无符号整型参数k,同时函数前面的void表明函数不返回函数值。
02行:延时子函数的开始,同时声明两个无符号整型变量i和j。
不过请注意,这里没有象上期的程序一样,把表示函数开始的“{”单独成行,而是把下一行写在一起了。事实上,写C程序的时候,可以把多行写作一行,C编译器只要遇到分号就认为是一行语句的结束。
当然,我们不能因为C程序有这个特点,就随意把多行合作一行书写,实际书写C程序的时候,还是要养成良好的程序书写习惯,按照约定俗成的原则来书写。
03行:声明for()循环。这个循环的初始条件是i=0,终止条件是i<k,循环计数是每循环一次,用手计数的变量i加1。因此,这个循环的循环次数就是k次。这样,只要改变k的值(即改变Delay()延时子函数的参数k的值),就可以很容易地控制循环次数,从而获得不同的延时时间。
04行:声明嵌套在03循环中的一个新的for()循环,这个循环与上一个循环相似,其循环次数是120次。本循环与上一个循环嵌套后,使得总的循环次数达120×k次。
05行:第一个分号,表示L条空语句,占用一个机器时间,以实现延时的目的。后面的两个“}”中,第一个“}”是04行for()循环的结束标志,程序遇到它时,将自动返回04行,使用于循环计数的变量j加1,同时判断j是否小于120,如果否,则转入05行;第二个是03行for()循环的结束标志,程序遇到它则会返回03行
Ⅹ 如何利用单片机进行过零检测
用单片机进行过零检测。1,查询方法,用单片机的A/D转换,不断地对电压信号进行查询,查询过零点电压后,进行程序运行处理。2,中断方法,外部电路用比较器检测过零点电压信号,有了过零点电压信号,比较器输出触发单片机外部中断口,单片机中断后,进行程序运行处理。