关于单片机输出正负脉冲端口输出脉冲。

单片机编写程序,要求使用T0,采用方式2,在P1.0输出周期为400us,占空比为3:1的矩形脉冲。? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。2被浏览<strong class="NumberBoard-itemValue" title="分享邀请回答114 条评论分享收藏感谢收起写回答&>&STC15W系列单片机的定时器0和定时器2以16位自动重装模式分别在两个端口输出脉冲
STC15W系列单片机的定时器0和定时器2以16位自动重装模式分别在两个端口输出脉冲
上传大小:55KB
使用STC15W系列单片机的定时器0和定时器2以16位自动重装模式分别在两个端口输出脉冲,以LCD12864液晶显示定时器开启和关闭状态。
综合评分:0
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
STC15W系列单片机的定时器0和定时器2以16位自动重装模式分别在两个端口输出脉冲
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
STC15W系列单片机的定时器0和定时器2以16位自动重装模式分别在两个端口输出脉冲atmel89S52单片机输出脉冲程序,为什么错误呢?
[问题点数:40分]
本版专家分:0
CSDN今日推荐
本版专家分:0
本版专家分:100
本版专家分:100
本版专家分:0
本版专家分:0
匿名用户不能发表回复!|
CSDN今日推荐哈罗CQ火腿社区 - 单片机与自动控制 - 51单片机输出脉冲,求思路,急! - Powered by phpwind
查看完整版本: [--
51单片机输出脉冲,求思路,急!
以51单片机为例,要求p1.0&&.p1.1&& p1.2分别输出如图所示脉冲 ,新手求思路,谢谢! [attachment=597929]
p1.0&&.p1.1&& p1.2循环输出图示脉冲信号,p1.0&&p1.1同步,p1.2滞后上述两者15ms
p1.2循环输出图示脉冲信号,p1.0
p1.1同步,p1.2滞后上述两者15ms ( 15:37) while()&&{P1.0 P1.1置1delay 15msP1.2&&置1delay 15msP1.0 P1.1置0delay 15msP1.2&&置0delay 15msP1.0 P1.1置1delay 15msP1.2&&置1delay 15msP1.0 P1.1置0delay 15msP1.2&&置0delay&&XXms&& //间隔}
不知道我理解的对不, 以15ms 为一个单位,看看一个周期有多少个单位,然后做个循环就好了。 假设需要N个单位。假设脉冲的宽度是15ms的倍数。 做个时序表比如 MAP10[N]= {0,0,1,1,0,0,1,1,.........};MAP11[N]= {0,0,1,1,0,0,1,1,.........};MAP12[N]= {1,0,0,1,1,0,0,1.........};for(;;){&&&&for (i=0; i&N;i++)&&&&{&&&&&&&&p1^0= MAP10[i];&&&&&&&&p1^1= MAP11[i];&&&&&&&&p1^2= MAP12[i];&&&&&&&&delay15ms();&&&&}}
上面不是类C不能编译的,仅是描述供参考。
时序要求如果比较严格,最好用定时器。
单片机对引脚进行动作,除非整个一组引脚同时动作,否则,肯定会有一个在先一个在后。上面说的要P1.0和P1.1输出同步的脉冲,若在时序时间真的要求必须同步,这里给个建议,就是不要用二个引脚输出,而是改用一个引脚输出,这个引脚外接一块数字门电路,单片机去控制数字门电路的输入端,数字门电路的二个输出端会同时受控的,不过这样需要一块外数字门电路。而P1.2要求与P1.0、P1.1之间延时15ms是可以做到的,可以用定时器比较精确时间。
楼主应该说出用途。可能更好办,就你图片的问题不难。
用定时器做!计数翻转就是了!
这个 精度要求不高的话 用定时器 就OK了
查看完整版本: [--
Powered by
Time 0.028120 second(s),query:5 Gzip enabled单片机I/O口推挽与开漏输出详解(力荐)
单片机&嵌入式
单片机应用
嵌入式操作系统
学习工具&教程
学习和开发单片机的必备工具
(有问必答)
(带你轻松入门)
电子元件&电路模块
当前位置: >>
>> 浏览文章
单片机I/O口推挽与开漏输出详解(力荐)
推挽输出:可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.
开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).
我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为&0&时,输出也为&0&)。对于图1,当左端的输入为&0&时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为&1&时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。
& & &&我们将图1简化成图2的样子。图2中的开关受软件控制,&1&时断开,&0&时闭合。很明显可以看出,当开关闭合时,输出直接接地,所以输出电平为0。而当开关断开时,则输出端悬空了,即高阻态。这时电平状态未知,如果后面一个电阻负载(即使很轻的负载)到地,那么输出端的电平就被这个负载拉到低电平了,所以这个电路是不能输出高电平的。
再看图三。图三中那个1K的电阻即是上拉电阻。如果开关闭合,则有电流从1K电阻及开关上流过,但由于开关闭其它三个口带内部上拉),当我们要使用输入功能时,只要将输出口设置为1即可,这样就相当于那个开关断开,而对于P0口来说,就是高阻态了。
对于漏极开路(OD)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,OC就变成了OD,原理分析是一样的。
另一种输出结构是推挽输出。推挽输出的结构就是把上面的上拉电阻也换成一个开关,当要输出高电平时,上面的开关通,下面的开关断;而要输出低电平时,则刚好相反。比起OC或者OD来说,这样的推挽结构高、低电平驱动能力都很强。如果两个输出不同电平的输出口接在一起的话,就会产生很大的电流,有可能将输出口烧坏。而上面说的OC或OD输出则不会有这样的情况,因为上拉电阻提供的电流比较小。如果是推挽输出的要设置为高阻态时,则两个开关必须同时断开(或者在输出口上使用一个传输门),这样可作为输入状态,AVR单片机的一些IO口就是这种结构。
开漏电路特点及应用
在电路设计时我们常常遇到开漏(open drain)和开集(open collector)的概念。
所谓开漏电路概念中提到的&漏&就是指MOSFET的漏极。同理,开集电路中的&集&就是指三极管的集电极。开漏电路就是指以MOSFET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。如图1所示:
&组成开漏形式的电路有以下几个特点:
& &&1. 利用外部电路的驱动能力,减少IC内部的驱动(或驱动比芯片电源电压高的负载)。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。如图1。
& & 2. 可以将多个开漏输出的Pin,连接到一条线上。形成 &与逻辑& 关系。如图1,当PIN_A、PIN_B、PIN_C任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。如果作为输出必须接上拉电阻。接容性负载时,下降延是芯片内的晶体管,是有源驱动,速度较快;上升延是无源的外接电阻,速度慢。如果要求速度高电阻选择要小,功耗会大。所以负载电阻的选择要兼顾功耗和速度。
& &&3. 可以利用改变上拉电源的电压,改变传输电平。如图2, IC的逻辑电平由电源Vcc1决定,而输出高电平则由Vcc2(上拉电阻的电源电压)决定。这样我们就可以用低电平逻辑控制输出高电平逻辑了(这样你就可以进行任意电平的转换)。(例如加上上拉电阻就可以提供TTL/CMOS电平输出等。)
4. 开漏Pin不连接外部的上拉电阻,则只能输出低电平(因此对于经典的51单片机的P0口而言,要想做输入输出功能必须加外部上拉电阻,否则无法输出高电平逻辑)。一般来说,开漏是用来连接不同电平的器件,匹配电平用的。
& & 5. 标准的开漏脚一般只有输出的能力。添加其它的判断电路,才能具备双向输入、输出的能力。
6.正常的CMOS输出级是上、下两个管子,把上面的管子去掉就是OPEN-DRAIN了。这种输出的主要目的有两个:电平转换、线与。
7.线与功能主要用于有多个电路对同一信号进行拉低操作的场合,如果本电路不想拉低,就输出高电平,因为OPEN-DRAIN上面的管子被拿掉,高电平是靠外接的上拉电阻实现的。(而正常的CMOS输出级,如果出现一个输出为高另外一个为低时,等于电源短路。)
8.OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。
应用中需注意:&1.&& 开漏和开集的原理类似,在许多应用中我们利用开集电路代替开漏电路。例如,某输入Pin要求由开漏电路驱动。则我们常见的驱动方式是利用一个三极管组成开集电路来驱动它,即方便又节省成本。如图4。&
&&2. 上拉电阻R pull-up的阻值决定了逻辑电平转换的沿的速度。阻值越大,速度越低功耗越小。反之亦然。
& &&&Push-Pull输出就是一般所说的推挽输出,在CMOS电路里面应该较CMOS输出更合适,因为在CMOS里面的push-pull输出能力不可能做得双极那么大。输出能力看IC内部输出极N管P管的面积。和开漏输出相比,push-pull的高低电平由IC的电源低定,不能简单的做逻辑操作等。push-pull是现在CMOS电路里面用得最多的输出级设计方式。
& &&当然open drain也不是没有代价,这就是输出的驱动能力很差。输出的驱动能力很差的说法不准确,驱动能力取决于IC中的末级晶体管功率。OD只是带来上升沿的延时,因为上升沿是通过外接上拉无源电阻对负载充电的,当电阻选择小时延时就小、但功耗大,反之延时大功耗小。OPEN DRAIN提供了灵活的输出方式,但也是有代价的,如果对延时有要求,建议用下降沿输出。
& &&电阻小延时小的前提条件是电阻选择的原则应在末级晶体管功耗允许范围内,有经验的设计者在使用逻辑芯片时,不会选择1欧姆的电阻作为上拉电阻。在脉冲的上升沿电源通过上拉无源电阻对负载充电,显然电阻越小上升时间越短,在脉冲的下降沿,除了负载通过有源晶体管放电外,电源也通过上拉电阻和导通的晶体管对地 形成通路,带来的问题是芯片的功耗和耗电问题。电阻影响上升沿,不影响下降沿。如果使用中不关心上升沿,上拉电阻就可选择尽可能的大点,以减少对地通路的 电流。如果对上升沿时间要求较高,电阻大小的选择应以芯片功耗为参考。
【】【】【】【】
上一篇:下一篇:
CopyRight @
单片机教程网 51hei.com , All Rights Reserved

我要回帖

更多关于 fx3u脉冲输出端口 的文章

 

随机推荐