51单片机发射38KHZ方波占空比,占空比0.5,12Mhz的晶振,可不可以这样写?

单片机输出38khz占空比50%的pwm波 检测p1.0口高电压持续时间是否大于1ms,计算的一个程序 还要控制显示_百度知道
单片机输出38khz占空比50%的pwm波 检测p1.0口高电压持续时间是否大于1ms,计算的一个程序 还要控制显示
请问单片机能实现些功能
提问者采纳
38khz占空比50%pwm波
38khz占空比50%波
通程序断实现38khz占空比50%pwm波单片机确实几乎忙用做其事
现单片机都
编程钟输前者调频率占空比者能调频率(占空比固定50%)需向特殊寄存器输入参数想要波需要改变波形频率单片机用管做其事情
比便宜STC89C52RC 5元路编程钟输
如果输出的pwm波要持续280us然后再输出720us的低电平 如此循环,那用pwm或可编程是时钟输出能达到这种效果么?
pwm波要持续280us然后再输出720us的低电平 如此循环,这算是以38khz为载波了,方法:①通过二路pwm( 或者 可编程是时钟输出+pwm)+ 简单电路(2个三极管+几个电阻)实现,
优点:单片机给特殊寄存器赋初值后就不用管它了,爱干嘛干嘛。
缺点:单片机要有2路pwm( 或者 pwm+可编程是时钟输出);要占单片机2个引脚。②通过1路pwm( 或者 可编程是时钟输出)+定时器中断实现,
优点:单片机要求不高,有一路pwm( 或者 可编程是时钟输出)即可,只占单片机1个引脚。
缺点:单片机要
定时器中断控制
38khz的280us输出,然后再输出720us的低电平,工作要忙些了。一个单片机完全是可以实现这些功能的!!!!!!!
其他类似问题
为您推荐:
其他2条回答
般51单片机都能<img class="word-replace" src="/api/getdecpic?picenc=0a007aMHz晶振工作频38khz没问题要直接带PWM接口单片机更实现;至于检测高电平间1ms没问题单片机执行条指令间1us(复杂乘除指令除外)检测1ms;至于显示更用说
要把这些功能都实现 38khz的半个周期大约是13us,即13us就有一次中断,如果执行其他的功能产生中断了就不能一直输出pwm波 这个如何解决?
你需要再理解中断的概念。在这个系统中,你所有的任务主要分三种:PWM、1ms脉宽检测和显示。脉宽检测和显示任务可以当做常规任务来执行,PWM可以采用定时器中断产生,这样就不会有任何冲突了。
C51就可以了,用定时器输入38K,再用一个定时器捕捉
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁89C52产生两路输出38khz占空比为50%的方波红外线发射信号程序,谢谢邮箱,是零贰一-中国学网-中国IT综合门户网站
> 89C52产生两路输出38khz占空比为50%的方波红外线发射信号程序,谢谢邮箱,是零贰一
89C52产生两路输出38khz占空比为50%的方波红外线发射信号程序,谢谢邮箱,是零贰一
转载 编辑:李强
为了帮助网友解决“89C52产生两路输出38khz占空比为”相关的问题,中国学网通过互联网对“89C52产生两路输出38khz占空比为”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:89C52产生两路输出38khz占空比为50%的方波红外线发射信号程序,谢谢邮箱,是零贰一,具体解决方案如下:解决方案1:单片机产生不出来很精准的38KHz,两路同时输出。另外。要想精确38khz。38462就不错了, 周期是26.3us,使用专门的晶振,就必须使用外接的振荡器,也没有必要占用两个引脚啊解决方案2:谢谢解决方案3:C语言?解决方案4:都行要稳定仿真能通过的,谢谢解决方案5:晶振多大?2 路输出 接什么IO解决方案6:晶振在12M以内,2 路输出 接红外线发射管,谢谢解决方案7:&#47;**52系列单片机,12HMz晶振**&#47;#include&reg52.h& &#47;&#47;包含52系列头文件#define th0 0xf3 &#47;&#47;0.5ms at 12MHz Foscsbit WaveOut1=P1^2; &#47;&#47;定义 方波1输出 端口sbit WaveOut2=P1^3; &#47;&#47;定义 方波2输出 端口void Timer0() interrupt 1 &#47;&#47;定时器T0 中断 函数{ WaveOut1=~WaveOut1; &#47;&#47;方波1输出 端口 电平翻转,产生38KHz方波 WaveOut2=~WaveOut2; &#47;&#47;方波2输出 端口 电平翻转,产生38KHz方波}void TimerInit() &#47;&#47;定时器初始化 函数{ TMOD=0x02; &#47;&#47;T0 8位自重装定时器 EA=1; &#47;&#47;允许系统中断 ET0=1; &#47;&#47;允许T0中断 TH0=th0; TL0=th0;; &#47;&#47;38KHz 初值 TR0=1; &#47;&#47;T0开始计时}void main() &#47;&#47;主函数{ TimerInit(); &#47;&#47;调用 定时器初始化 函数 while(1); &#47;&#47;循环系统}解决方案8:你的这个频率是38462啊,解决方案9:误差,38KHz,周期则为26.3158us,半周应该为:13.1579us,但,晶振12MHz,机械周期 1us,这是这个系统的最小时间单位了。所以只能取到13us,频率则为:38461.54Hz,想要跟精确,晶振必须加大通过对数据库的索引,我们还为您准备了:答:38khz, 周期是26.3us。 单片机产生不出来很精准的38KHz。 38462就不错了。 要想精确,就必须使用外接的振荡器,使用专门的晶振。 另外,两路同时输出,也没有必要占用两个引脚埃===========================================问:20% 40% 60% 80%的占空比,每个占空比留一点时间停顿答:#include #define uchar unsigned char #define uint unsigned int uint pwm,tper,times=0; uchar tab[4]={20,40,60,80}; sbit pulse=P1^0; void t0isr() interrupt 1 { flag=~ pulse=~ if(flag) { TH0=(65536-pwm)/256; T...===========================================问:用89C52输出高低电平的信号程序要求如下;上位机给单片机发送一个编号如0...答:不懂你说的带有编号的高电平是什么意思。通过串口向上位机发送信号,就是信号本身,比如01就是01,但高电平就不知道是什么了===========================================问:请问一个单片机能实现这些功能么?答:38khz占空比50%的pwm波 其实也就是 38khz占空比50%的方波了。 通过程序中断实现38khz占空比50%的pwm波,单片机确实几乎忙得不用做其它事了。 但是现在大多单片机都有 pwm 或者 可编程时钟输出,前者可以调频率和占空比,后者只能调频率(占空比...===========================================问:请问一个单片机能实现这些功能么?答:void delay(void) //误差 0us { unsigned char a,b; for(b=96;b&0;b--) for(a=67;a&0;a--); } output=! 如果需要精确的,可以向上面那为兄弟说的,搞个频率计调试一下。 不过这样单片机只能干这个了,为啥不用定时器呢?===========================================问:请问一个单片机能实现这些功能么?答:12M晶振 ORG 0000H LJMP MAIN ORG 0030H MAIN: SETB P2.0 MOV R2,#2 DJNZ R2,$ CLR P2.0 MOV R2,#9 DJNZ R2,$ SJMP MAIN END===========================================问:请问一个单片机能实现这些功能么?答:首先说频率是38KHz就是38000次/秒,再说三分之一的占空比就是一个脉冲周期高电平占整个周期的三分之一,低电平占一个周期的三分之二。===========================================问:我用定时器每13us产生一个溢出,就是TH0=0xff, TL0=0xf3,为什么最后输出...答:把你的程序发过来才好分析,不然只言片语真的很难发现问题所在。 还有你的单片机是 STC89C52RC 的话,可以用“定时器2可编程时钟输出”产生38khz的频率信号,STC89C52RC一共有3个定时器(定时器0、1、2),其中定时器2功能最多,可编程时钟输出就...===========================================问:我用51产生PWM脉冲,占空比是90%时,用示波器测得输出电压时1V到-4V,占...答:这个跟具体电路有关系,在电路中有时会测到负电压。 如果电路正确的话,应该不会这样。 电压表测的是被测信号的均方根值,不是真实值。 PWM信号应该用示波器来测。===========================================例如,定时器定时2S就在P1.0口输出一个脉冲,那么初始的时候P1.0是高电平的,等定时器... 也就是3.91KHZ~1MHZ之间,如果模式2产生38KHZ信号,那么没有到达允许频率的极限值...===========================================89C52的P2口,内部接有上拉电阻,P2口不加上拉电阻,应能驱动ULN2803.你置P2口为高... 输出是 500MA/50V,能耐住外加的50V电压,自己不能产生电压.===========================================1、用555等组成38K方波(占空比50%)输出。 2、用单片机产生占空比为1:4的38K方波控制红外驱动电路。===========================================89c52 的器件手册 限流电阻的目的是保护 要按最糟糕的情况来估算阻值 比如 你的器件能承受 0.01A的电流, 那么你就要找一个电阻 一旦线路的电压达到最高值时也不至于产生...===========================================哥们 最好的建议是 百度一下 stc89c52 的器件手册 限流电阻的目的是保护 要按最糟糕... 0.01A的电流, 那么你就要找一个电阻 一旦线路的电压达到最高值时也不至于产生0.01A...=========================================== 定时器中断里面用记数单元,每中断一次加1,记到三的时候就让输出引脚翻转一次,同时清零记数单元,这样就在输出引脚得到一个60K的方波. 2、产生多路不同频率的方波,可...===========================================双向稳压管6.2V.你可以用2个5.6的稳压二极管反接在一起代替。稳压二极管2个方向电压不一样会导致三角板波变成锯齿波。变成锯齿波可能性还很多,产生三角波和方波的电...=========================================== 但STC12单片机的PCA只能产生8bit的PWM波形,所以不太适合。 另外,PWM波形转变为直流电之后,占空比和直流电的电压值不是成线性的,因为在PWM占空比比较小时,滤波电...===========================================使AT89C2051的一个引脚"拉低--拉高--拉低"就是一个脉冲。 将这个引脚接到晶闸管即可(若驱动能力不够则需要在引脚上再加一个三极管,驱动之) 脉冲占空比和脉冲宽度由你...===========================================为非重载, 定义一个变量a=0 在主函数中WHILE(1) 里面写如果传感器有变化 给一个变量a赋值,几种变化就几种IF(变化1 ) a=1; if(变化2) a=2…… 在定时器中断输出函数里面重新...===========================================
本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助若单片机的晶振频率为12MHz,用51单片机内部定时&#47;计数器T0,工作方式为1,在单片机P1.0口产生周期为20ms_百度知道
若单片机的晶振频率为12MHz,用51单片机内部定时&#47;计数器T0,工作方式为1,在单片机P1.0口产生周期为20ms
若单片机晶振频率12MHz用51单片机内部定&#47;计数器T0工作式1单片机P1.0口产周期20ms波波形占空比50%试解答列问题1) 计算定器装入初值2) 用断:
提问者采纳
若单片机晶振频率12MHz用51单片机内部定/计数器T0工作式1单片机P1.0口产周期20ms波波形占空比50%试解答列问题:
1) 计算定器装入初值;
2) 用断式使用定器编写相关程序序
其他类似问题
为您推荐:
51单片机的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁单片机产生38kHz信号的问题_百度知道
单片机产生38kHz信号的问题
我用STC89C52RC<img class="word-replace" src="/api/getdecpic?picenc=0adT单片机<img class="word-replace" src="/api/getdecpic?picenc=0adM晶振定器0设置工作式1,16位定器断写入重装值并用IO口自身取反办产<img class="word-replace" src="/api/getdecpic?picenc=0a5fkHz红外调制信号相关程序:Void timer() interrupt 1{TH0=(65536-13)&#47;256;TL0=(6;IR=~IR}其IR前面定义信号输口按理要产<img class="word-replace" src="/api/getdecpic?picenc=0a5fk应该让IO口每隔13us取反即按面写代码运行接频率计显示<img class="word-replace" src="/api/getdecpic?picenc=0aHz误差莫非指令占用间种办产波信号否合适请高明指点
提问者采纳
首先楼主析确确实指令占用间且与软件编译优化关面理论析(事实其实)原:
断产瞬间TH0TL0都0由于其定计数并未停止所直重装前TL0依旧计数说直TL0=(6执行计数值才重装段间情况发呢:1、程序使用别断:定断产单片机始执行断服务程序般情况首先要执行断入口0x000B处跳转指令<img class="word-replace" src="/api/getdecpic?picenc=0adM12T跳转指令LJMP等执行周期2us重复TL0TH0已经0;执行TH0TL0赋值指令各需2us(汇编:立即数赋值给直接址)增加<img class="word-replace" src="/api/getdecpic?picenc=0a006c655fus所事实13+6=19us取反约28KHz2、同TL0赋值语句放TH0前由于式1TH0TL1相于INT型数据计数TL0低8位所事实TL0赋值基本说重装计数才恢复由于TH0赋值放面所事实减少<img class="word-replace" src="/api/getdecpic?picenc=0a006c655fus即13+4=17约30KHz3、程序断使用:编译器编译断程序<img class="word-replace" src="/api/getdecpic?picenc=0af0BH始放置少条跳转指令周期间变13+2=15约33KHz我想应该属于楼主实际情况
所所说种式指令本身占据间所产误差足奇关键TL0重装指令位置解决办外乎两种:1、初值13改<img class="word-replace" src="/api/getdecpic?picenc=0a5fTL0重装前提减掉2us赋值间2、采用式2初值设256-13由于式2初值重装自占指令间所准确
照理楼主现应该检测30K才测35K我敢妄断许其误差比频率计、晶振等、许编译器原需要看实际汇编指令才能确定
其他类似问题
为您推荐:
您可能关注的推广
单片机的相关知识
其他5条回答
TT0(1,())
//引导码:9ms
TT0(0,())
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函数:38KHz载波发射 + 延时程序
入口:(是否发射脉冲,延时约 x (uS))
说明:BT=0,不发射38KHz载波只延时;
BT=1,发射38KHz载波同时延时。
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
void TT0(bit BT,uint x)
TH0 = x&&8;
//输入T0初始值
//启动定时器0
if(BT == 0) while(!TF0);
else while(1)
//38KHz脉冲,低电平占...
你这个结果很正常的,中断响应需要一定的时间。如果你需要详细分析,要把完整程序拿出来才可以。如果只是为了完工,你可以把-13改为-12和-11,看看哪个更接近38kHz
我也正好做这个东西,定时器工作方式1的误差很大的,如果要用就用工作方式2,TH0=256-13;TL0=256-13;
学习了!看帖是享受,回帖是个美德!
算一下机器周期,运算周期没考虑进去也就是误差原因
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁单片机晶振频率12MHz 编程实现PI.0输出频率为2kHz 占空比为50%的方波 使用定时器T1工作方式2_百度知道
单片机晶振频率12MHz 编程实现PI.0输出频率为2kHz 占空比为50%的方波 使用定时器T1工作方式2
我有更好的答案
STC单片机请参考sbit OUTPUT=P1^0;void Timer1Init(void)
//250微秒@12.000MHz{ AUXR &= 0xBF;
//定器钟12T模式 TMOD &= 0x0F;
//设置定器模式 TMOD |= 0x20;
//设置定器模式 TL1 = 0x06;
//设置定初值 TH1 = 0x06;
//设置定重载值 TF1 = 0;
//清除TF1标志 TR1 = 1;
//定器1始计 IE=1;}void timer1() interrupt 3{
OUTPUT=~OUTPUT;}
其他类似问题
为您推荐:
占空比的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 占空比方波有效值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信