请问stc单片机1个定时器怎么控制两个设备?

作者&投稿:勾田 (若有异议请与网页底部的电邮联系)
51单片机的3个定时器怎样使用?~

51单片机只有T0,T1。52才有T2的。
定时器设置方法:
做定时用一般采用16位模式,也就是TMOD=0x11(10或01单独一个定时器的话),初值的计算是这样的:
假设时间是X毫秒,晶振为YMhz,那么:THn=(65536-1000*X*Y/12)/256
TLn=(65536-1000*X*Y/12)%256
之后就是TRn=1(开启定时器)
ETn=1(开启定时器中断)
EA=1

  两个定时器使用没有什么特殊设置,但是有一个经验必须明白,中断里面重新对定时器赋值的操作必须放在中断处理的头端,否则会有一个整个中断处理的时间延时。如:
  void timer1()interupt3 using1
  {
  ... //如果这里的...程序段太长,那么每次中断就慢了处理这段程序的时间
  TH1=0X..
  TL1=0X..
  ... //如果把处理程序放在这里,那么慢的是2个指令周期(重载)
  }
  所以时间要求特别严格的程序,一般建议使用方式2自动载入。
  可以同时运行,但存在优先级问题,即如果中断同时发生,先执行优先级的。
  如果有一个中断已经在执行,则其他中断发生时也不会执行。
  可以 通过设置中断优先寄存器IP,使选的中断可以在其他中断还没完成时,发生二次中断。

如果是循环工作就 好办,可以定时50ms,然后各个灯的开启或关闭时间都 是50ms的倍数
每次中断查询设定的时间点,然后同时输出两个灯的状态。
如3S时(中断次数60), A灯亮,B灯灭,5S时,A灯亮,B灯也亮 10秒时AB灯都灭
过一个周期,如60s 回到0秒时的状态
如果灯亮灯灭的规律你自己都 找不出,编程序也就 很难了
如设备A启动后灯延时20秒熄灭 如设备B启动后另一灯灯延时30秒熄灭,可以用两 个变量分别计A B的延时时间,每次中断同时判断两 个变量的值

光靠一个定时器怎么行啊,你可以设置定时器0和1的方式1一控制两个设备!

你程序最大的问题是,串口中断打开了,却没有串口中断服务程序,所以一旦有串口接受数据或发送数据,就会混乱的。

关于stc单片机做LED点亮和灭的时间控制程序问题?
答:设置芯片的时钟和计数器,以便实现时间控制。例如,可以使用定时器或延时函数来控制时间。在主函数中编写程序,实现LED点亮和灭的时间控制。可以使用if语句或while语句来判断时间是否达到要求,然后控制LED灯的点亮和灭。在main函数中添加延时函数,以实现上电后30秒后LED灯开始点亮的要求。下面是一个简单的...

单片机STC8G1K08如何输出50ms的脉冲?
答:要在STC8G1K08单片机上输出50ms的脉冲,你可以使用定时器和中断来实现。以下是一个简单的示例代码:include <STC8G1K08S2.H>void delay_ms(unsigned int ms) { unsigned int i, j;for (i = ms; i > 0; i--) { for (j = 112; j > 0; j--); // 这里的延时值需要根据实际...

stc单片机溢出率计算公式是什么?
答:对于STC单片机(以及许多8051系列相兼容的单片机),定时器/计数器的溢出率可以通过以下公式来计算:这意味着,该定时器大约每256个计数周期溢出一次,频率大约为3906.25Hz。重要的是要认识到这个公式给出了理论上的溢出率。实际应用中还要考虑单片机在实际工作环境中的性能,以及其他可能影响定时器精度的因素...

sTC单片机 用定时器定时 来控制步进电机 驱动器L298求 源码 可调速...
答:unsigned char code table1[]="A:"; //电机1正转加减速等级 unsigned char code table2[]="B:"; //电机1反转加减速等级 uint count=0; //外部中断0计脉冲定义变量 uchar temp1=0; //定时器1计数定义变量 long int v1; //电机1的速度 void Init_Timer0(void); //...

求单片机用定时器产生PWM的汇编语言,单片机型号STC90C516RD+,谢谢...
答:MOV TL0,#38H ;定时器每200us产生一次溢出 MOV TH0,#38H ;自动重装的值 SETB ET0 ;使能定时器0中断 SETB EA ;使能总中断 SETB TR0 ;开始计时 MOV PWMH1,#2 ; PWM 1 占空比 可以修改 MOV PWMH2,#5 ; PWM 2 占空比 可以修改 MOV PWM...

STC单片机定时器输出频率不对
答:一、你用1T模式可能准确点。二、你要准确需要扣除进入中断后重新赋初值的时间。TH0=(65536-500000/4000+3)/256;TL0=(65536-500000/4000+3)%256;

关于STC15单片机定时器产生PWM的问题。官方例程如下。
答:貌似确实如此,if...else里面应该再加一个P_PWM置位、清零语句。

毕业设计中使用STC12C5A60S2单片机。做双串口通信时候。串口1使用定 ...
答:如果你的数据是时好时坏的丢失,我建议你考虑清楚2个定时器之间中断优先级的问题,有个能串口1把串口2正在处理的数据优先屏蔽了 如果你的数据都是非正常的,我建议你做个协议进行数据校对,不过我觉得优先级的可能性比较大

本人采用单片机STC89C54RD+做了一个设计,其中定时器0和1已经用了,现在...
答:本人采用单片机STC89C54RD+做了一个设计,其中定时器0和1已经用了,现在还想加一个霍尔传感器做测速用,将传感器的信号线接外部中断0,这个决定非常正确!问题是只用一个外部中断0可以实现测速吗?完全可以,一点不打折。如果不行要怎么改?肯定能行。定时器可以叠加使用吗?加一个定时器2可以实现吗?