51单片机怎样用一个定时器输出两路方波

作者&投稿:鲍荣 (若有异议请与网页底部的电邮联系)
51单片机利用定时器中断输出方波怎么做?~

楼主的电路,描述的不清,特别是显示电路。

所以,就没有办法按照你的电路编程。

最好,你能给出一个例程,可以在你的板子上,正常显示的。

大家再帮你增加其它的功能。

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-25000)
MOV TL0,#LOW(65536-25000)
SETB TR0
SETB ET0
SETB EA
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-25000)
MOV TL0,#LOW(65536-25000)
SETB TR0
CPL P1.0
RETI
END

你的程序只有一处错误,我已通过测试,
请将mian改为main.
另外,如果方便请将#include <AT89X51.H>改为#include "regx52.h"
请采纳,谢谢。

只要你有定时器 输出几路都可以啊
如果你这是完整程序 肯定会报错。。P1_0 P1_1 没有定义
应加上
sbit P1_0 =P1^0;
sbit P1_1=P1^1;

另外 进入中断 TR0可以不用关闭
你再试试。。

兄弟,你有没有编译通过?1、主函数mian()->main();2、P1_0、P1_1->P1^0、P1^1;试试!


单片机中怎样用一个按键按一下实现一种功能,连续按2下实现一种功能
用计数器,每点一下计数器中加1,将计数器中的值转到另一个,再对这个处理。

如何用51单片机用一位数码管显示对应数字?
首先你要把0到9的数字对应的七段码放在一个数组中,然后用一个变量计按键的次数或序号,把该序号的七段码输出到对应的端口即可。

c51单片机如何使用一个按钮就能实现数码管从0~9的循环并且还能实现数 ...
从你的仿真图中没有看到P1.0接什么,看程序也看不出来那个 t 是怎么能控制数码管循环显示和暂停的,都不能实现哪,只能是不停的循环显示,根本停不下来。数码管的段码表只有11个数,可数组却声明了70个元素,smg[70] ,这是根据什么确定的70,应该是smg[11] 就行。按理,一个按键是不可能...

51单片机如何用一个按键控制一段程序的运行与停止
在51单片机编程中,通过一个按键实现程序的运行与停止功能,操作步骤如下:首先,你需要为你的项目创建一个新的文件,这是基础步骤,它将承载你的代码逻辑(1、在51单片机项目中,新建一个文件用于存放程序代码。)。接着,配置你的按键和LED。假设你选择的按键S1连接到P3的第2引脚,当按键按下时,可...

51单片机如何用一个按键控制一段程序的运行与停止
1、创建项目文件。2、按键:S1=P3^2,点亮: led=P1^5。3、创建C语言主函数。4、创建循环效果,检测效果。while(1) {}。5、选择输出的效果。6、当按下一个按键时,关闭灯,整个程序运行,再按一次,程序停止。

我想用一个单片机去控制另外一个单片机,如何连接以及相应的数据处理...
TR1=1; \/* 启动定时器1*\/ RI=0;TI=0;} void CollectData(void) \/*数据采集程序*\/ {;\/\/ 此程序将采集的温度数据送入Temperature变量,限于篇幅,省去该程序代码。} void Delay() \/*延时子程序*\/ { int i;for(i=0;i<10000;i++);} void main(void){ InitSystem();while(...

怎样用单片机的一个IO口识别三种电平状态并分别执行不同输出:(1)高...
缺少条件,信号没有格式则无法检测到正确数据。假设:每个数据周期为2S,自电平变化后开始计时,0.2S采样一次,5次后记录电平类型。高电平为1,低电平为0。每两次采样为一组,若组数据为11则为高电平,00为低电平,其他为脉冲。此方法,接收特定数据时会出现错误。自己完善吧。

两个单片机如何用一个io口通信?
可以的,曾经做过一个项目用1个IO通信。把协议定好,分好主从机。好像有标准的1线通信协议,不过当初做的是非标的。

C51单片机中怎么写一个中断程序,可以用一个温度传感器来实现。当温...
bit tmpreadbit(void) \/\/read a bit 读一位 { uint i;bit dat;DS=0;i++; \/\/i++ for delay 小延时一下 DS=1;i++;i++;dat=DS;i=8;while(i>0)i--;return (dat);} uchar tmpread(void) \/\/read a byte date 读一个字节 { uchar i,j,dat;dat=0;for(i=1;i<=8;i++...

51单片机中怎样位选一个端口出来单独使用,而不受其它端口的影响?_百度...
sbit P1_1=P1^1;选择p1.1出来。

碌曲县18245766425: 51单片机如何用一个定时器当多个延时电路用, 就是按下开关一,灯泡亮三秒. 按下开关二,灯泡亮五秒. -
乘肺血凝: 可以的,定时器先定时出一个秒周期,然后对秒进行计数,得变量M.这个M,可以从1计数到一万、一百万等,也可以循环计数,即计数到100就又从1开始;然后按下开关一时,就取当前的M值=K1,并且使灯泡亮,当M=K1+3时,使灯泡灭就是了.同理,按下开关二时,就取当前的M值=K2,并使灯泡亮,当M=K2+5时,使灯泡灭就是了.

碌曲县18245766425: 51单片机如何用一个定时器当多个延时电路用, 就是按下开关,一,灯泡,一,亮三秒. 按下开关,二, -
乘肺血凝: 没想法就不会有创新,你的想法就很好.像这种亮灯的程序,对时间要求不是那么严格(如果极其严格就没法实现),那么可以采用如下方法实现你的要求://假设晶振12MHZ,按键输入P1.0,P1.1,P1.2;LED控制P2.0,P2.1,P2.2,都是低电平有...

碌曲县18245766425: 51单片机怎样用定时器做两个输出循环交替 -
乘肺血凝: ORG 0000H LJMP START ; ORG 001BH ;T1中断入口地址 PUSH PSW ;保护现场 MOV TL0,#18H; MOV TH0,#0FCH;定时器0定时时间=1000X2uS CPL MYBIT MOV C,MYBIT MOV P1.0,C CPL C MOV P1.1,C POP PSW RETI ; ; ORG 0100H ...

碌曲县18245766425: 51单片机两个io口同时输出两个占空比不同的方波?以下程序希望给点灵感. -
乘肺血凝: 首先89C52内部没有硬件PWM发生器,只能通过定时器模拟!你可以通过两个定时器,T0控制周期,T1控制占空比.例如:实现周期为1000us,占空比为20%的PWM,用P1.0实现 首先你设置T0为65536-1000 (12M晶振) T1为65536-200 首先...

碌曲县18245766425: 单片机定时器控制LM29N产生2路PWM的程序 -
乘肺血凝: 是LM298N 电路吧,直接拿飞思卡尔的mc9s12xs128 做就可以,直接分频出两路PWM波,控制电机就可以了.如果是51单片机,没有PWM 产生的寄存器,就用中断写一个pwm方波.void timer0() interrupt 1 { d_count++; if(d_count==d_num) duoji=0; if(d_count==480) { d_count=0; duoji=1; } TH0=(65536-10)/256;TL0=(65536-10)%256; } 这是一个舵机的中断,输出50hz的方波

碌曲县18245766425: 51单片机怎么利用两个定时器调制两路PWM波控制两个直流减速电机 -
乘肺血凝: 利用定时器到时间就会进入中断函数,这就可以判断是否到标志时间,这是就可以然输出pwm引脚的电平发生偏转

碌曲县18245766425: 51单片机一个定时器怎样控制两个超声波 -
乘肺血凝: 同时去控制是不可能的,51单片机的定时器不像STM32的定时器分四个通道,最好的办法就是先控制一个再控制另一个

碌曲县18245766425: 51单片机同时控制两个发射头时间怎么弄?只用一个定时器行吗? -
乘肺血凝: 51单片机同时控制两个发射头时间怎么弄?只用一个定时器行吗?可以只用一个定时器,因为红外发射与接收已经标准化,基本都是38KHz载波,所以可用一个定时器产生38KHz载波,然后根据输出标志和数据格式分别控制不同的IO口线驱动红外发射二极管就可以了.

碌曲县18245766425: 51单片机的一个定时器控制两个超声波怎么控制? -
乘肺血凝: 分时复用 先开启一个再开启第二个 在时间上错开

碌曲县18245766425: 单片机如何同时模拟输出两路PWM波形? -
乘肺血凝: 用定时计数器啊,如果你片内的没用完就更好啦,用完了外接两个定时计数器.控制下占空比不是小CASE吗

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网